Danielhiversen / PyXiaomiGateway

PyXiaomiGateway
MIT License
152 stars 55 forks source link

Add switch.l3acn3 and switch.n3acn3 support #183

Closed nov30th closed 3 years ago

nov30th commented 3 years ago

Home Assistant release with the issue (if applicable): 114.0

Last working Home Assistant release (if known): none

Operating environment (Hass.io/Docker/Windows/etc.): Hass.io Vmware Image

Description of the bug: l3acn3 is not supported. And I searched for all the issues:

https://github.com/Danielhiversen/PyXiaomiGateway/issues/162 https://github.com/Danielhiversen/PyXiaomiGateway/pull/174

There is no answer if this device will be supported or not.

Currently, I am using the ZHA(XBee) in HA which directly connects these l3acn3 devices and it working normally.

Is it possible to support this l3acn3 or it is a limitation to the gateway device? Thanks.

syssi commented 3 years ago

Could you provide the error message of the xiaomi_aqara component? This would help to identify the device is already supported by the aqara firmware or not.

nov30th commented 3 years ago

Hello @syssi , The error message was something like "not support" and I did look into the source code that there is no "l3acn3" model before I post this issue. The device Chinese name of the device is "D1单火三键". The three keys switch is a new product in 2020. I haven't tested it with the Xiaomi gateway with model insert into the source as it is quite busy these months, once I got free time I would look into this issue as the Zigbee is a workaround. As there are devices model dict in python, if there is no l3acn3, it would always output the unsupported in my experience.

tyjtyj commented 3 years ago

Here is the debug logs

2020-11-16 16:30:30 DEBUG (SyncWorker_9) [xiaomi_gateway] Discovery attempt 1/5
2020-11-16 16:30:30 DEBUG (SyncWorker_9) [xiaomi_gateway] _send_cmd >> b'{"cmd":"read","sid":"4cf8cdf3c7a6f3c"}'
2020-11-16 16:30:30 DEBUG (SyncWorker_9) [xiaomi_gateway] _send_cmd resp << {'cmd': 'read_ack', 'model': '', 'sid': '4cf8cdf3c7a6f3c', 'short_id': 22567, 'data': '{"voltage":3600}'}
2020-11-16 16:30:30 ERROR (SyncWorker_9) [xiaomi_gateway] The device with sid 4cf8cdf3c7xxxx isn't supported of the used gateway firmware. Please update the gateway firmware if possible! This is the only way the issue can be solved.
syssi commented 3 years ago

@tyjtyj The device with sid 4cf8cdf3c7xxxx isn't supported of the used gateway firmware. Please update the gateway firmware if possible! This is the only way the issue can be solved.

We can only handle the device if 'model': '' isn't empty.

tyjtyj commented 3 years ago

@tyjtyj The device with sid 4cf8cdf3c7xxxx isn't supported of the used gateway firmware. Please update the gateway firmware if possible! This is the only way the issue can be solved.

We can only handle the device if 'model': '' isn't empty.

It was showing l3acn3 before last update on PyXiaomiGateway. The gateway already upgrade to latest

nov30th commented 3 years ago

I just tested with the latest dev version of HA, it seems the model is empty from Xiaomi gateway response. image

My gateway is v3 with version 1.4.1_176.0220 which shows the latest version, it seems the only way is waiting for the update from Xiaomi gateway firmware.

nov30th commented 3 years ago

I've also tested the l3acn3 with added it to Xiaomi entities forcibly from "channel_0" to "channel_2" that it works with controllable. The only problem is there is no status feedback from Xiaomi gateway, no switch status updates.

2020-12-23 20:47:30 WARNING (SyncWorker_2) [xiaomi_gateway] _send_cmd >> b'{"cmd": "write", "sid": "4cf8cdf3c7902ec", "data": {"channel_1": "off", "key": "**secret**"}}'
2020-12-23 20:47:30 WARNING (SyncWorker_2) [xiaomi_gateway] _send_cmd resp << {'cmd': 'write_ack', 'model': '', 'sid': '4cf8cdf3c7902ec', 'short_id': 52600, 'data': '{"voltage":3600}'}
2020-12-23 20:47:30 WARNING (SyncWorker_2) [xiaomi_gateway] write_ack << {'cmd': 'write_ack', 'model': '', 'sid': '4cf8cdf3c7902ec', 'short_id': 52600, 'data': '{"voltage":3600}'}

It could be like a workaround that someone doesn't have the Zigbee hub device to direct control and not care about status feedback.