Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.17k stars 1.68k forks source link

Xiaomi LLKZMK11LM not updating certain exposes after firmware update #7112

Closed snippem closed 3 years ago

snippem commented 3 years ago

What happened

Updated the switch when new firmware was reported by zigbee2mqtt Going from version 9-20-2018 to 8-6-2020.

What did you expect to happen

To work better with the new firmware :-) But now the power meter works but the energy meter , temperature meter and voltage readout doesn't work anymore. Also noted when the update completed some of the switches sometimes turn on and off without telling them to do so. I overcome this problem by resetting the switch. This doesn't had any effect on the missing exposes.

Debug info

Zigbee2MQTT version: latest developer version. Adapter hardware: Slae.sh cc2652rb Adapter firmware version: Couldn't find it

McGiverGim commented 3 years ago

@snippem maybe can you put your logs in debug mode and paste it here? Maybe it shows something about this problem.

snippem commented 3 years ago

@snippem maybe can you put your logs in debug mode and paste it here? Maybe it shows something about this problem.

Okay here is the debug log:

Debug Received MQTT message on 'zigbee2mqtt/Daan plafondlamp/l1/set' with data 'ON' Debug Publishing 'set' 'state' to 'Daan plafondlamp' Info MQTT publish: topic 'zigbee2mqtt/Daan plafondlamp', payload '{"energy":null,"interlock":true,"linkquality":45,"power":0.06,"state_l1":"ON","state_l2":"OFF","temperature":null,"update":{"state":"idle"},"update_available":false,"voltage":null}' Debug Received Zigbee message from 'Daan plafondlamp', type 'attributeReport', cluster 'genOnOff', data '{"61440":248397568,"onOff":0}' from endpoint 2 with groupID 0 Info MQTT publish: topic 'zigbee2mqtt/Daan plafondlamp', payload '{"energy":null,"interlock":true,"linkquality":45,"power":0.06,"state_l1":"ON","state_l2":"OFF","temperature":null,"update":{"state":"idle"},"update_available":false,"voltage":null}' Debug Received Zigbee message from 'Daan plafondlamp', type 'attributeReport', cluster 'genOnOff', data '{"61440":117440745,"onOff":1}' from endpoint 1 with groupID 0 Info MQTT publish: topic 'zigbee2mqtt/Daan plafondlamp', payload '{"energy":null,"interlock":true,"linkquality":45,"power":0.06,"state_l1":"ON","state_l2":"OFF","temperature":null,"update":{"state":"idle"},"update_available":false,"voltage":null}' Debug Received Zigbee message from 'Daan plafondlamp', type 'attributeReport', cluster 'genAnalogInput', data '{"presentValue":2.3317694664001465}' from endpoint 1 with groupID 0 Info MQTT publish: topic 'zigbee2mqtt/Daan plafondlamp', payload '{"energy":null,"interlock":true,"linkquality":45,"power":2.33,"state_l1":"ON","state_l2":"OFF","temperature":null,"update":{"state":"idle"},"update_available":false,"voltage":null}' Debug Received Zigbee message from 'Daan plafondlamp', type 'attributeReport', cluster 'genAnalogInput', data '{"presentValue":10.66430950164795}' from endpoint 1 with groupID 0 Info MQTT publish: topic 'zigbee2mqtt/Daan plafondlamp', payload '{"energy":null,"interlock":true,"linkquality":57,"power":10.66,"state_l1":"ON","state_l2":"OFF","temperature":null,"update":{"state":"idle"},"update_available":false,"voltage":null}'

this is for one off 6 all behave the same after the update off the firmware

McGiverGim commented 3 years ago

It seems it receives only the on/off switch information and one analog that z2m maps to power. Nothing more appears. At least in this log.

I don't know if when pairing it can give more information. If you have time do the pairing or the device again with debug enabled.

Which clusters show the UI of Z2M for you? This are the clusters of the original device, without OTA: image

snippem commented 3 years ago

Hopefully will find some time to add the device and log these are the cluster with the updateScreenshot_20210428-102711.jpg

leroyloren commented 3 years ago

Hi, the same issue since OTA 8-6-2020 does not show energy related values.

obrazek

McGiverGim commented 3 years ago

@leroyloren are you able to take some debug logs with the device repairing/joining the network? To see if something appears there...

Here we have two options:

McGiverGim commented 3 years ago

I've seen that the original post that started the Xiaomi updates https://github.com/Koenkk/zigbee2mqtt/issues/6906, there are four older firmware versions:

+---lumi.relay.c2acn01
|   +---0.0.0_0036_8691F18B_e92ad148ac2de53568745a44a594007f
|   |       OTA_lumi_relay_c2acn01_V1.3.36.20190308_94007F.20191009160743.ota
|   |
|   +---0.0.0_0042_6CD27E92_33ff98239d745a64cbe3e0408768389c
|   |       OTA_lumi_relay_c2acn01_V1.3.42.20191230_68389C.20200429113233.ota
|   |
|   +---30_0000001E_c0e78b9c_86ffab33d58a29a8cee396c363870c94
|   |       OTA_withCRC_LMES_DualController_V1.3.30_20170801.20181024095320.ota
|   |
|   \---35_3b451bb3_2b39856873feffe89987e517ce06c78a
|           OTA_lumi_relay_c2acn01_V1.3.35.20180920.20181008170031.ota`

I don't know if they can be installed "manually" to see if some of them fixes the problem. But I will do that with caution, maybe the result is worse...

leroyloren commented 3 years ago
Debug Received Zigbee message from 'Zebrik', type 'read', cluster 'genTime', data '["time"]' from endpoint 1 with groupID 0
Debug Received MQTT message on 'zigbee2mqtt/bridge/request/device/ota_update/check' with data '{"id":"Zebrik","transaction":"433su-1"}'
Info Checking if update available for 'Zebrik'
Info MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Checking if update available for 'Zebrik'","meta":{"device":"Zebrik","status":"checking_if_available"},"type":"ota_update"}'
Debug Check if update available for '0x00158d00062694c3' (lumi.relay.c2acn01)
Debug Using endpoint '1'
Debug Received Zigbee message from 'Zebrik', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":46,"imageType":257,"manufacturerCode":4447}' from endpoint 1 with groupID 0
Debug Got OTA request '{"fieldControl":0,"manufacturerCode":4447,"imageType":257,"fileVersion":46}'
Debug Is new image available for '0x00158d00062694c3', current '{"fieldControl":0,"manufacturerCode":4447,"imageType":257,"fileVersion":46}', latest meta '{"fileVersion":46,"fileSize":179502,"url":"https://github.com/Koenkk/zigbee-OTA/raw/master/images/Xiaomi/20201218113852_lumi.relay.c2acn01_0.0.0_0046_20201216_6BB0FD.ota","sha512":"ea9f9d74c65b2828e6417b525502bfc9d2f75c220b2504927e2b515c340503bc03e2612ad4c2b2ee8d1ff75d1328db8efa743c07c21a82f4ebd15f8ddac40a0b"}'
Debug Update available for '0x00158d00062694c3': NO
Info No update available for 'Zebrik'
McGiverGim commented 3 years ago

This does not seem a "join" or "repair" to the network. Maybe it is an OTA check? What I ask for is enable join the zigbee network, and press the relay button five seconds to join the network. Like the first time it join the network. Is then when the device publishes all this capabilities if I'm not wrong. I don't know if you have the device "more or less" accesible.

leroyloren commented 3 years ago
Device 'Zebrik' joined
Info MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"Zebrik","ieee_address":"0x00158d00062694c3"},"type":"device_joined"}'
Info Starting interview of 'Zebrik'
Info MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"Zebrik","ieee_address":"0x00158d00062694c3","status":"started"},"type":"device_interview"}'
Info MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":{"friendly_name":"Zebrik"},"type":"device_connected"}'
Info MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_started","meta":{"friendly_name":"Zebrik"},"type":"pairing"}'
Debug Device 'Zebrik' announced itself
Info MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"Zebrik","ieee_address":"0x00158d00062694c3"},"type":"device_announce"}'
Info MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"announce","meta":{"friendly_name":"Zebrik"},"type":"device_announced"}'
Debug Device 'Roleta pokoj 2' announced itself
Info MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"Roleta pokoj 2","ieee_address":"0x5c0272fffec20a57"},"type":"device_announce"}'
Info MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"announce","meta":{"friendly_name":"Roleta pokoj 2"},"type":"device_announced"}'
Debug Received Zigbee message from 'Zebrik', type 'readResponse', cluster 'genBasic', data '{"modelId":"lumi.relay.c2acn01"}' from endpoint 1 with groupID 0
Debug Received Zigbee message from 'Zebrik', type 'raw', cluster 'genBasic', data '{"data":[28,95,17,0,10,1,255,66,68,3,40,0,5,33,25,0,8,33,46,18,9,33,0,1,100,16,0,101,16,0,110,32,0,111,32,0,148,32,25,149,57,10,215,3,61,150,57,123,248,21,69,151,57,136,229,200,59,152,57,240,108,192,62,155,33,0,0,156,32,1,10,33,0,0,12,40,0,0],"type":"Buffer"}' from endpoint 1 with groupID 0
Debug Received Zigbee message from 'Zebrik', type 'attributeReport', cluster 'genBasic', data '{"appVersion":1,"modelId":"lumi.relay.c2acn01"}' from endpoint 1 with groupID 0
Debug Received Zigbee message from 'Zebrik', type 'readResponse', cluster 'genBasic', data '{"manufacturerName":"LUMI"}' from endpoint 1 with groupID 0
Debug Received Zigbee message from 'Zebrik', type 'readResponse', cluster 'genBasic', data '{"powerSource":4}' from endpoint 1 with groupID 0
Debug Received Zigbee message from 'Zebrik', type 'readResponse', cluster 'genBasic', data '{"zclVersion":0}' from endpoint 1 with groupID 0
Debug Received Zigbee message from 'Zebrik', type 'readResponse', cluster 'genBasic', data '{"stackVersion":2}' from endpoint 1 with groupID 0
Debug Received Zigbee message from 'Zebrik', type 'readResponse', cluster 'genBasic', data '{"hwVersion":18}' from endpoint 1 with groupID 0
Debug Received Zigbee message from 'Zebrik', type 'readResponse', cluster 'genBasic', data '{"dateCode":"8-6-2020"}' from endpoint 1 with groupID 0
Debug Received Zigbee message from 'Zebrik', type 'readResponse', cluster 'genBasic', data '{}' from endpoint 1 with groupID 0
Info Successfully interviewed 'Zebrik', device has successfully been paired
Info Device 'Zebrik' is supported, identified as: Xiaomi Aqara wireless relay controller (LLKZMK11LM)
Info MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":{"description":"Aqara wireless relay controller","exposes":[{"access":5,"description":"Instantaneous measured power","name":"power","property":"power","type":"numeric","unit":"W"},{"access":1,"description":"Sum of consumed energy","name":"energy","property":"energy","type":"numeric","unit":"kWh"},{"access":1,"description":"Measured temperature value","name":"temperature","property":"temperature","type":"numeric","unit":"°C"},{"access":1,"description":"Measured electrical potential value","name":"voltage","property":"voltage","type":"numeric","unit":"V"},{"endpoint":"l1","features":[{"access":7,"description":"On/off state of the switch","endpoint":"l1","name":"state","property":"state_l1","type":"binary","value_off":"OFF","value_on":"ON","value_toggle":"TOGGLE"}],"type":"switch"},{"endpoint":"l2","features":[{"access":7,"description":"On/off state of the switch","endpoint":"l2","name":"state","property":"state_l2","type":"binary","value_off":"OFF","value_on":"ON","value_toggle":"TOGGLE"}],"type":"switch"},{"access":3,"description":"Enabling prevents both relais being on at the same time","name":"interlock","property":"interlock","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"LLKZMK11LM","supports_ota":true,"vendor":"Xiaomi"},"friendly_name":"Zebrik","ieee_address":"0x00158d00062694c3","status":"successful","supported":true},"type":"device_interview"}'
Info MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_successful","meta":{"description":"Aqara wireless relay controller","friendly_name":"Zebrik","model":"LLKZMK11LM","supported":true,"vendor":"Xiaomi"},"type":"pairing"}'
McGiverGim commented 3 years ago

I thought that the debug will show other clusters, but only genBasic is shown... I think I can't help much more. @Koenkk some idea about this? If the problem is with the firmware file, a lot of users will update using the OTA function to this version and lost some features... is a very popular device.

EDIT: I've one idea, maybe the new "firmware" changes the way it sends the information, and is more similar to the one of the new relays (https://www.zigbee2mqtt.io/devices/SSM-U01.html or https://www.zigbee2mqtt.io/devices/SSM-U02.html). Maybe is a stupid idea, I suppose we will see some error/warning message in the logs.

Koenkk commented 3 years ago

Have you already tried reconfiguring the device by clicking on the device in the frontend and pressing the yellow refresh icon?

snippem commented 3 years ago

Have you already tried reconfiguring the device by clicking on the device in the frontend and pressing the yellow refresh icon?

Hi tried that and is say's the device cannot be reconfigured.

Koenkk commented 3 years ago

Can someone check if energy metering still works with the original gateway when on this firmware?

leroyloren commented 3 years ago

photo_2021-05-04_21-02-52 photo_2021-05-04_21-04-55

If you really stop showing this information in the latest firmware, is there any way to downgrade?

McGiverGim commented 3 years ago

The screen captures are from your relay (the one with the problem) with the official hub? The accessory ID seems the MAC address and is different from the one of your logs.

leroyloren commented 3 years ago

yeah, it's Aqara hub (and relay) from a friend.

pilmrc commented 3 years ago

I’ve upgraded my unit too, before reading about this problem, and now it is not sending anymore measures. Only when asking to switch on or off, but reporting only the current power. Is there a way to downgrade firmware? My unit is produced on Jan 2021 and loading 2019 firmware. I suppose the 2020 version is not ok. The date code is the only information I have to trace the firmware. Any test or validation let me know.

McGiverGim commented 3 years ago

@Koenkk maybe is better to remove the OTA for this device? Is clear that it has some kind of problem, while investigating is better to not let others update and loose functionality.

pilmrc commented 3 years ago

Doing more investigation with log debug mode on. In reality the device is sending data. every minute (quite regular) is sending the following:

debug 2021-05-11 19:04:40: Received Zigbee message from 'switch1', type 'read', cluster 'genTime', data '["time"]' from endpoint 1 with groupID 0

And every 2-5 minutes, there is no fixed time data like the following

debug 2021-05-11 19:03:29: Received Zigbee message from 'switch1', type 'raw', cluster 'genBasic', data '{"data":[28,95,17,1,10,1,255,66,68,3,40,32,5,33,42,0,8,33,46,18,9,33,0,2,100,16,1,101,16,1,110,32,1,111,32,1,148,32,2,149,57,10,215,35,58,150,57,126,200,22,69,151,57,240,41,164,59,152,57,0,65,205,60,155,33,0,0,156,32,1,10,33,0,0,12,40,0,0],"type":"Buffer"}' from endpoint 1 with groupID 0

debug 2021-05-11 19:08:54: Received Zigbee message from 'switch1', type 'raw', cluster 'genBasic', data '{"data":[28,95,17,8,10,1,255,66,68,3,40,32,5,33,42,0,8,33,46,18,9,33,0,2,100,16,1,101,16,1,110,32,1,111,32,1,148,32,6,149,57,10,215,35,58,150,57,113,38,23,69,151,57,240,41,164,59,152,57,96,11,163,61,155,33,0,0,156,32,1,10,33,0,0,12,40,0,0],"type":"Buffer"}' from endpoint 1 with groupID 0

At this point I suppose the upgrade is changing the way the data is formatted. Not expert on this. Can I help in any other way? Can pairing the device in debug mode give more details?

Koenkk commented 3 years ago

@McGiverGim good point, disabled the OTA

Looking at the logs of @pilmrc it seems Xiaomi changed to yet another proprietary format, currently have no clue how to decode this.

snippem commented 3 years ago

@McGiverGim good point, disabled the OTA

Looking at the logs of @pilmrc it seems Xiaomi changed to yet another proprietary format, currently have no clue how to decode this.

Is it a option to set the previous working firmware as an update. This so my switches have all the functions that i had with the older firmware? And also because my switches with the new firmware sometimes turn on and off all happening within a second.

Koenkk commented 3 years ago

@snippem we don't have to OTA file of the previous firmware, otherwise it should be possible.

snippem commented 3 years ago

Oke is there any chance the new firmware will have the same functionality as the old firmware?

Koenkk commented 3 years ago

@snippem someone has to figure out how the new data should be parsed, but I currently have no clue how to do it.

ALaDoffe commented 3 years ago

@Koenkk Hello since OTA update was removed for this device, i get this in HA logs :

WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'update_available' when rendering '{{ value_json.update_available}}'

More on FrontEnd, i have still references of Ota Update:

image

I tested : remove/rejoin the devices, remove mosquitto retain messages

Thx

EDIT : Removing ota: ota.zigbeeOTA from zigbee-herdsman-converters/devices/xiaomi.js solved the issue : { zigbeeModel: ['lumi.relay.c2acn01'], model: 'LLKZMK11LM', vendor: 'Xiaomi', description: 'Aqara wireless relay controller', fromZigbee: [fz.xiaomi_switch_basic, fz.xiaomi_power, fz.ignore_multistate_report, fz.on_off], meta: {multiEndpoint: true}, toZigbee: [tz.on_off, tz.LLKZMK11LM_interlock, tz.xiaomi_power], endpoint: (device) => { return {'l1': 1, 'l2': 2}; }, exposes: [e.power().withAccess(ea.STATE_GET), e.energy(), e.temperature(), e.voltage().withAccess(ea.STATE), e.switch().withEndpoint('l1'), e.switch().withEndpoint('l2'), exposes.binary('interlock', ea.STATE_SET, true, false) .withDescription('Enabling prevents both relais being on at the same time')], ota: ota.zigbeeOTA, },

Koenkk commented 3 years ago

@ALaDoffe done!

snippem commented 3 years ago

@snippem someone has to figure out how the new data should be parsed, but I currently have no clue how to do it.

Just interested. With the previous firmware the data has to be parsed to I presume? How did they do it with the previous firmware version . And this new firmware version would this be shipped with new devices ?

stickpin commented 3 years ago

I don't know if anyone interested, but for me personally, new firmware solved a very annoying issue.

With old firmware Zigbee Groups was not working for L2, only L1 was working. After the upgrade, everything is working as expected. Yes, I've also lost the energy meter, temperature meter and voltage, which I've never used with those relays, but I've got properly working Zigbee groups.

@Koenkk I don't know if it's possible but maybe to allow people to do an update manually somehow?

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

McGiverGim commented 3 years ago

Please don't close, I think this will bite us later if new products start to come with this firmware...

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

Galorhallen commented 3 years ago

I've the same problem, with another device Aquara smart plug EU. A similar issue is #7745

olylak commented 2 years ago

I'm facing the same issue with DLKZMK11LM. But my device was not working OOTB in terms of null values like energy, temp and voltage. I assume it was already flashed with a newer firmare that couses those issues. Any updates on this topic?

olylak commented 2 years ago

Any solution?

egolfeld commented 2 years ago

how to manually update?

McGiverGim commented 2 years ago

@egolfeld To do a manual upgrade you have this instructions: https://www.zigbee2mqtt.io/guide/usage/ota_updates.html#local-ota-index-and-firmware-files

To all the other, there is a new firmware available, but the OTA function is disabled in the device until verified if this new firmware works. Maybe you want to upgrade manually to see if it fixes the issues.

Koenkk commented 2 years ago

since there is a new fw available I've enabled OTA again. Can someone check if the device is working correctly again after upgarding the firmware while on the latest z2m dev branch?

Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)

leroyloren commented 2 years ago

No, still same.

obrazek

stickpin commented 2 years ago

For those who use this relay with Zigbee Group, after an update to version 9-22-2021 Zigbee groups still functioning as expected. Energy, Voltage and Temperature are still not present.

McGiverGim commented 2 years ago

Someone has tested if others, like ZHA, have the same problem?

leroyloren commented 2 years ago

@Koenkk Would it not be possible to display otherwise current FW versions for Aqara devices? At the moment, there is a date that has nothing to do with the release of the update, or strings like "2020www." For Aqara, build as fileVersion versions are listed everywhere.

debug 2022-02-03 20:50:04: Device 'Zebrik' requested OTA debug 2022-02-03 20:50:04: Got OTA request '{"fieldControl":0,"manufacturerCode":4447,"imageType":257,"fileVersion":47}' debug 2022-02-03 20:50:04: ZigbeeOTA: downloaded main index debug 2022-02-03 20:50:04: Is new image available for '0x00158d0006c8fb74', current '{"fieldControl":0,"manufacturerCode":4447,"imageType":257,"fileVersion":47}', latest meta '{"fileVersion":47,"fileSize":182206,"url":"https://github.com/Koenkk/zigbee-OTA/raw/master/images/Xiaomi/lumi.relay.c2acn01_20211201_v0047.ota","sha512":"66380db41c6f9cc8d4c74809caff46c0cb1b691046c3e490fe8d98f2fa2a5c6acceb1d27456a3d7efd50cde92ef150c5adbc0287538a7218540400385bd2956d"}'

For example from Aqara Home app: obrazek

vs Z2M obrazek

Koenkk commented 2 years ago

Added another possible fix, can someone check if it works?

Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)

stickpin commented 2 years ago

Added another possible fix, can someone check if it works?

Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)

Nothing is changed on my side. Looks exactly the same.

Screenshot 2022-02-04 at 19 59 17

Let me know if I can help somehow to debug this problem.

leroyloren commented 2 years ago

It is strange that the Aqara app offers only (see. picture), no voltage can be found anywhere. Is it not possible that they simply removed these values?

photo_2022-02-05_11-21-54

z-x-f commented 2 years ago

It is strange that the Aqara app offers only (see. picture), no voltage can be found anywhere. Is it not possible that they simply removed these values?

aqara app does not provide voltage display.

Koenkk commented 2 years ago

@z-x-f but could it be that aqara entirely removed it in the latest fw?

leroyloren commented 2 years ago

Sure, but min. it shows the total consumption and Z2M also does not provide it.

stickpin commented 2 years ago

Sure, but min. it shows the total consumption and Z2M also does not provide it.

@leroyloren Z2M showing current consumption, exactly as Aqara app:

Screenshot 2022-02-04 at 19 59 17
z-x-f commented 2 years ago

@z-x-f but could it be that aqara entirely removed it in the latest fw?

@Koenkk Ah, i mean in aqara app, any device doesn't provide voltage display. As for this device, I might buy one in the future to test if it doesn't display properties like voltage.