Koenkk / zigbee2mqtt

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

Aqara TVOC sensor (VOCKQJK11LM) stops updating #9454

Closed JDrewes closed 2 years ago

JDrewes commented 2 years ago

What happened

I have 3 Aqara TVOC devices (VOCKQJK11LM). At first, all three worked fine for about a week. Then, no more updates were reported for one device through Z2M, a few days later also for another. Re-pairing devices worked - but only at the cost of one of the other three randomly "falling of the network" (stopping to update and LQI being marked as unavailable). While working, LQI is usually from 80 to 110.

I have done many repairings (sometimes close to a zigbee router, sometimes at the coordinator), and I cannot get all three devices to keep updating at the same time for longer than a day. I don't know if they would all stop if I just waited long enough, or if they are somehow in conflict with each other?

Sometimes, when pressing the single button on the device for a long time to reconnect, it actually won't do so unless I do one of the following: unplug/replug the zigbee coordinator and retart zigbee2mqtt or repair next to a different device (if it was connected through the router before, re-pair at the coordinator and vice versa).

I have a total of 8-9 devices connected, all Aqara (except for the coordinator, which is a CC2531 Sonoff-type USB stick). None of them have ever "gone off the network" or stopped reporting, only the TVOCs do that.

I found that changing the channel of my 2.4GHz wifi has changed things a little (it now takes a bit longer for the first device to stop updating), but the problem still persists. I don't believe it is simply related to interference because the other Aqara-zigbees have no problems.

Thanks for reading and thanks for Z2M in the first place!

What did you expect to happen

devices should keep updating

How to reproduce it (minimal and precise)

just pair and wait a few days

Debug info

Zigbee2MQTT version: 1.21.0 (commit #70891eec) Adapter hardware: CC2531 Adapter firmware version: Coordinator firmware version: '{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201127,"transportrev":2},"type":"zStack12"}'

JDrewes commented 2 years ago

See also discussion #9171 Aqara TVOC does not publish changes

ocso commented 2 years ago

I can confirm the same issue with my device.

Fafitude commented 2 years ago

J'ai le même problème avec une conbee 2 et en version 1.22.0. Une idée du problème ?

hb020 commented 2 years ago

Voting up here, same issue. On CC2652RB from slaesh, with 88 average link quality. Zigbee2MQTT version 1.21.2 commit: 4492212 Coordinator type zStack3x0 Coordinator revision 20210120 Frontend version 0.6.12.

Often, when the sensor is no longer reporting, it is also unresponsive to button presses. I need to do a long press for it to reboot, after which it gains contact again.

What seems to matter:

github-actions[bot] commented 2 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

kovacsbalu commented 2 years ago

I can confirm the same issue with my device also I have slaesh CC2652 coordinator and 30+ device which works perfectly.

Bobbyhax commented 2 years ago

There is a firmware update for the VOCKQJK11LM. I updated from 0024 to 0026, that addresses this issue. To get the update, I connected the sensor to a Aqara G2H camera, and sign in with a Aqara account in the app, then I could update (didn't get the update in Homekit mode)

After the update was done, I reconnected the sensor to my Z2M, and it works fine for now

IMG_0816

hb020 commented 2 years ago

now I'm not used to aqara/mijia/xiaomi devices in general, but that seems to indicate that the various other aqara hub devices (Camera G3, E1, M2, M1S, Camera G2H and Aqara Hub) could also work. But I don't have any. Anyone care to confirm? I feel more like getting a E1 or M2 if needed.

gyver commented 2 years ago

I have the same model and unfortunately the same problems with updates stopping very quickly. It is usually a matter of minutes or around 1 hour after adding it to the network before all updates stop.

I tried letting the network decide the router used to connect or forcing 3 different ones and get the same result : usually I get updates for some of the 3 main attributes (humidity, temperature, voc). The updated attributes are not always the same ones but until now there was never a try were all of them were reported and on all tries eventually all of them stop being updated altogether.

I don't have any Aqara hub/account to update the firmware like @Bobbyhax. Is there a workaround to get this device working or a way to update it without an Aqara hub/account ?

gyver commented 2 years ago

Note for reference : I use the git master version of zigbee2mqtt (recently updated, just checked and it is in sync with this repository) on pi4 with a pizigate+ managing 49 devices among them 15 routers from various manufacturers. The only non default configurations are for the pizigate, compatibility with homeassistant and choosing channel 25 to avoid nearby Wifi networks interference.

MansM commented 2 years ago

I wonder if it should be removed from the supported list or at least have a note... as the current situation has made it useless (I wouldn't have bought it if I knew about this issue before)

Bobbyhax commented 2 years ago

Here is an update: They day after the firmware updated, I lost connection to the sensor again, and I needed to press on the button to get it connected. I do not recommend this sensor, and would buy it again! I read on Reddit that it is many others that have the same problems as we have. Someone suggests that the sensor have bad connection to the battery, and have placed cardboard between the battery and lid, and has solved the issue for them.

https://www.reddit.com/r/Aqara/comments/p03684/no_response_on_my_brand_new_tvoc_sensor/

patrykwojtynski commented 2 years ago

Unfortunately I also experience missing values after pairing (nothing in logs) and I can't find a way of updating it without Aqara hub.

Screenshot 2022-01-04 at 21 44 58

I tried with TuYa ethernet hub, no luck so far.

leoluk commented 2 years ago

It should be possible for someone with an Aqara hub to sniff the upgrade and dump the OTA file. Would be greatly appreciated!

Fafitude commented 2 years ago

Bonjour, ça serait top en effet de pouvoir le mettre à jour par OTA via Z2M. Est-ce possible ?

gyver commented 2 years ago

I've had what seemed initially like a totaly separate problem with a SonOff SNZB-02 temperature/humidity sensor. It suddenly stopped updating and I couldn't make it work by either :

When I looked at the logs I saw problems with the reporting configuration of the temperature measure (I can dig up logs on demand if needed).

Until I found a procedure that worked, which is :

Restarting zigbee2mqtt is mandatory so there's something done on restart that solves the configuration step of the interview to fail. I verified that adding the restart is the key by testing the procedure again with another SonOff SNZB-02 that was outside (and believed to have been damaged months ago by the weather as they are not rated for outside use) and it worked, this other device came back properly on the first try.

Finally I remembered my problems with the Aqara TVOC sensor and the force-remove, z2m restart, repair seems to work with it too ! At least it is working correctly for more than 9 hours now (at least 9x more uptime than anything I got before and with all values reported instead of at best 2 out of 3).

Hope it can help others and maybe point to at least one source of the problem.

patrykwojtynski commented 2 years ago

Thanks @gyver. I was sceptical about it but I gave it a try and followed your instructions right after I saw them.

And... It's working. What a surprise, so far 12h.

Previously I also added cardboard on battery because it felt loose, but it didn't change anything.

gyver commented 2 years ago

Unfortunately it might not have been a complete fix for me @patrykwojtynski. I just checked, my SonOff are still working as expected, but the Aqara TVOC didn't update for 9 hours now. It worked correctly for 16-17 hours.

I have a very small hope that it might be "normal" as the display shows nearly the same values as the one last reported (so it could be a case of nothing new to report, but 9 hours is very surprising and I know from another sensor that at least humidity and temperature had small changes over the last 9 hours only one meter from it in the same room). Current display vs last report 9 hours ago :

I'll let it sit like that to find out more. At least if it is a fail the failure symptoms are totally different so there might be several underlying causes to our problems with the Aqara.

Fafitude commented 2 years ago

Bonjour,

quand ça se bloque comme dit ci dessus, j'appuie sur le bouton qui se trouve au dessus de l'appareil et c'est reparti pour plusieurs jours (ou heures ...). Suite à la mise à la dernière mise à jour de Z2M, il ne captait plus rien. J'ai fait une manipulation similaire à Gyver et c'est reparti. Je suis vraiment déçu de cet appareil

maximilian1001 commented 2 years ago

Bonjour,

quand ça se bloque comme dit ci dessus, j'appuie sur le bouton qui se trouve au dessus de l'appareil et c'est reparti pour plusieurs jours (ou heures ...). Suite à la mise à la dernière mise à jour de Z2M, il ne captait plus rien. J'ai fait une manipulation similaire à Gyver et c'est reparti. Je suis vraiment déçu de cet appareil

@Fafitude Hello,

when it hangs as said above, I press the button on the top of the device and it's gone for several days (or hours ...). Following the update of the last Z2M update, it no longer received anything. I did a similar manipulation to Gyver and it's off again. I am really disappointed with this device

gyver commented 2 years ago

I can confirm that pressing the button on top of the device unfreezes it in my case (after force unpair/z2m restart/pair which led to a freeze ~16 hours later).

When I pressed the button, it forced an e-ink display refresh (blinking full black/white for people not familiar with e-ink displays), and immediately refreshed the values both on display and to zigbee2mqtt.

Note that the TVOC values where largely overestimated just after the refresh (6000+ instead of the usual 15-100 range) and went down relatively quickly after : seems like a bug in the TVOC estimation on the device. One probable explanation for that bug is that it uses a low energy accumulator that it periodically fetch and reset (waking a microcontroller to do it that needs more energy and is sleeping most of the time), dividing the value by time spent since last evaluation. When the device freezes I suspect the clock freezes too but not the accumulator...

gyver commented 2 years ago

Follow-up: my sensor is working fine for 5 days straight now. So since the re-pairing procedure (see my earlier messages) I had to press the button on top one time over ~6 days to keep it working.

It is a bother to not know if/when it will fail to send updates again and need manual intervention but at least it has been useful for nearly a week.

leoluk commented 2 years ago

I bought two of these recently to give it a try, and they've been working perfectly for more than a week now! (with ZHA, but that shouldn't make much of a difference).

The temperature readings are accurate down to 0.1 °C, it's a very nice device.

nicjansma commented 2 years ago

I've had a similar issue with 3x VOCKQJK11LM devices not reliably reporting. After upgrading them to the 0026 firmware with a Aqara hub, I switched them back to my Conbee II.

At that point I could not reliably get them to send updates beyond the initial join. They might send a few updates, then nothing more, no matter how often I pushed the button or had them rejoin.

I've finally found one issue that may be affecting others, so I thought I'd share. In the Reporting tab in Z2M, I found the Min rep change interval for Temp and Humidity had been set to 100, which my understanding means 10*C.

image

After I changed these down to 0 (with a 60 second min interval), I'm now reliably getting data from them each minute. (I may bump them up to 5 mins or something soon).

image

I'm not sure if the Min rep change of 100 came from the factory, or firmware update to 0026, or something with Z2M, but all 3 devices had this issue and I had to fix it.

Might not be an issue for anyone else here! But since this pops up in Google for VOCKQJK11LM maybe others will see this and this could be a fix.

gyver commented 2 years ago

My device has now being working for 8 days with the same settings @nicjansma had before adjusting. So they are probably the defaults for at least our firmware versions.

I don't think the min rep change is in 1/10th of a °C or humidity %. The unit used is more probably 1/1000th to match the precision that can be selected up to 1/1000th. I'd guess this is something documented in the Zigbee protocol and common across all temp/humidity sensors.

@nicjansma : note that simply changing the values triggers a reconfiguration that might have helped unrelated to the values used (my problems were clearly linked to failures in the device reporting configuration), you can check this by reverting your change or trying other values to find out if you need these values or simply to change them once. If the min rep change is low, this probably means that the device will need to wake up more often and it will probably negatively affect the battery life so you might want to be less aggressive.

For reference, my device has :

Anonymenet77 commented 2 years ago

Hello,

I tried this method it worked for 5 days then nothing

force-remove it, restart zigbee2mqtt, repair the device.

leroyloren commented 2 years ago

v0.0.0_0027

http://cdn.aqara.com/cdn/opencloud-product/mainland/product-firmware/prd/lumi.airmonitor.acn01/20211223104612_OTA_lumi.airmonitor.acn01_0.0.0_0027_20211222_3BA1AA.ota

20211223104612_OTA_lumi.airmonitor.acn01_0.0.0_0027_20211222_3BA1AA.zip (rename ".ZIP" to ".OTA")

Screenshot (20  1

Anonymenet77 commented 2 years ago

@leroyloren how to update without hub aqara?

leroyloren commented 2 years ago

Hi,

you need to do an OTA for the device via https://github.com/Koenkk/zigbee-OTA

@Koenkk

nsuresh81 commented 2 years ago

@Anonymenet77 I have the same problem too. the TVOS is freezing. the display not being updated.

I just ordered an E1 hub for the sole purpose of updating the firmware. I'm not sure if I should cancel the order or try using the OTA method. I'm using HA with zigbee2MQTT on a CC2652R stick from Electrolama.

My TVOC using this version of the firmware:

Firmware build date 20210204 Firmware version 2020www.

What does Create a PR mean ? as per the Readme instruction.

If it's too complex I'll just get it done via the hub.

hb020 commented 2 years ago

Just created the PR. Also created a PR in herdsman to add OTA capability to the sensor. However, still trying to figure out how to go from here.

Edit: both PRs got accepted. Now waiting for the release, and see what else is needed. Other option: build from the dev branch, but haven't yet found how to do that.

Otnow commented 2 years ago

Other option: build from the dev branch, but haven't yet found how to do that.

Try this: https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html

elratt0r commented 2 years ago

Has anyone the OTA file for 0.0.0_26? Would like to try that one. 0027 is messing with the simple connector response, 0022 works mostly reliable with bind of 0x000c/0x0055 to coordinator but has battery issues.

TheLordVader commented 2 years ago

Been struggling with two of these sensors for a few days now. I hated them until I found this thread! @hb020 does this mean that OTA will be implemented in a future release of ZigBee2MQTT?

hb020 commented 2 years ago

@hb020 does this mean that OTA will be implemented in a future release of ZigBee2MQTT?

It should be indeed. When? Depends on when koenkk brings out a new release. And still no guarantee that this solves the issue.

patrykwojtynski commented 2 years ago

I was able to do OTA from dev branch. Before doing it I followed one more time the repairing steps with Force Remove and reboot. Took 55min to do it.

Hopefully now will be more stable. Thanks for the PRs and all advices.

TheLordVader commented 2 years ago

I was able to do OTA from dev branch. Before doing it I followed one more time the repairing steps with Force Remove and reboot. Took 55min to do it.

Hopefully now will be more stable. Thanks for the PRs and all advices.

Great! Please let us know the outcome, and thanks for all the efforts put into this annoying issue.

hb020 commented 2 years ago

Installed the new firmware (via latest zigbee2mqtt release, and full reinstall of the sensor), but the sensor still drops out. So that was not the solution.

leroyloren commented 2 years ago

I don't think it's a drop, but the device is completely unusable like a ZigBee. It's more like a VOC & thermometer/hygrometer with a display. Zigbee communication of this device makes no sense at all.

If you really need to measure VOC, buy one Frient (Develco) AQSZB-110

TheLordVader commented 2 years ago

Well, I have updated to the latest firmware as well, both via Zigbee2MQTT and via a newly bought Aqara E1 hub just for this purpose. I have two of these units, one of them is connected directly my CC2652P and works well after the update. The other one however, is connected via a IKEA Trådfri bulb, and drops/loses connection after a while.

leroyloren commented 2 years ago

Even so, the device is unusable. To compare the picture.

The value with the gauge is Develco (updates every few minutes) Aqara, for example, last time before approx. hour (the value on its display is the same)

fsd

TheLordVader commented 2 years ago

Yes, I agree with that. The Aqara has a very, very sluggish interval. I have one of my units close to my monitor with HA, and 9 times out of 10 there are different values on the Aqara display vs in HA.

amaciuc commented 2 years ago

Yes, I agree with that. The Aqara has a very, very sluggish interval. I have one of my units close to my monitor with HA, and 9 times out of 10 there are different values on the Aqara display vs in HA.

Idem here

elratt0r commented 2 years ago

Keep in mind that the EInk is not updated that often. Same applies for temperature and humidity values. I have two TVOC running now. One with deconz on FW0026 and one with Z2M/CC2531 with FW0027 (Z2M does not care about the missing simple descriptors and reads all the values from the respective clusters/sets the matching report intervals).

The values seem to be accurate so far (compared to each other and a temp/hum sensor from Aqara right next to them).

The TVOC does not seem to like being connected to a router (I tried IKEA Repeater, OSRAM Smart+ and Aqara Power Plug). In that constellation I loose connectivity dependig on the report interval after 1-2 days (the shorter the report interval the sooner it looses the connection).

elratt0r commented 2 years ago

ls12 is a Frient Device ls13 is TVOC@FW0026 via deconz ls19 is TVOC@FW0027 via Z2M

The dots show the update intervals, so far all looks good. I modified the report intervals and that helped with the continuity of the reports.

TVOC Values

JornDL commented 2 years ago

Hi @elratt0r

what was the actuals changes you did to the intervals. I would like to make the same changes

elratt0r commented 2 years ago

Hi @JornDL

all min/max/change: genAnalogInput: 10/300/30 Temperature: 10/300/20 Humidity: 10/300/100

When writing the values I pressed the button on top once before sending, so the device would be awake. (Found out by sniffing the traffic that this seemed to be necessary to make a successful write).

Anonymenet77 commented 2 years ago

Hello,

since the upgrade from firmware to 0.0.0_0027

image

I no longer lose connection

JornDL commented 2 years ago

Hi @JornDL

all min/max/change: genAnalogInput: 10/300/30 Temperature: 10/300/20 Humidity: 10/300/100

When writing the values I pressed the button on top once before sending, so the device would be awake. (Found out by sniffing the traffic that this seemed to be necessary to make a successful write).

Hi @elratt0r

How did you write the rep change to 30 on the genAnalogInput ?

When I try this and read it back, it is just empty.

amaciuc commented 2 years ago

Hi @JornDL all min/max/change: genAnalogInput: 10/300/30 Temperature: 10/300/20 Humidity: 10/300/100 When writing the values I pressed the button on top once before sending, so the device would be awake. (Found out by sniffing the traffic that this seemed to be necessary to make a successful write).

Hi @elratt0r

How did you write the rep change to 30 on the genAnalogInput ?

When I try this and read it back, it is just empty.

image

I changed the min rep interval to 3000, that means the sensor will forcibly update at every 30 minutes.

@elratt0r thank you for your feedback. You just saved my day. Now, I have no longer issues with the update of values.