Sonoff SNZB-04PR2: missed updates, multiple triggers and wrong contact state, anyone else?

Hi everyone,

I’ve already raised this in the Zigbee2MQTT repo on GitHub, but I’m still looking for others who see the same behaviour, or, better yet, have a solution. The more I dig into it, the less it looks like a Z2M problem and the more it looks like a Sonoff problem. So I thought this forum would be more appropriate than the Z2M Repo.

I bought a batch of 44 Sonoff SNZB-04PR2 contact sensors, hoping to finally get rid of the IKEA window sensors that have caused nothing but trouble.

Three problems keep coming up.

1. Missed updates at lower LQI: Below an LQI of roughly 100, you are lucky to get an update at all after a longer period of inactivity. After that, it remains VERY responsive for a while.

2. Multiple reports when the magnet slides past the sensor:
If the magnet does not move straight away from the sensor but slides along or past it, the sensor reports several times in a row and, in the worst case, ends up stuck in the wrong state.

3. Wrong contact state: You open the door, the sensor sends an update and reports the door as still closed.

On the positive side: pairing works really well, the devices stay on the network instead of dropping off, and battery life looks stable for the short time I have been testing. All of that is still infinitely better than the IKEA sensors.

I run two separate Home Assistant systems with different coordinators, a Sonoff P and an SLZB-06p10. Both Zigbee2Mqrr and both show the same behaviour.


Problem 1 in detail

This one is hard to demonstrate. If nothing comes in, nothing comes in.

Problem 2 in detail

I recorded a short video: https://youtu.be/FH2OD0Sem2g

The orientation of the sensor relative to the magnet makes no difference. At 1:07 you can see me changing it, and I tested further orientations off camera with the same result every time.

Why this matters: if the magnet sits on a window frame, you can close the window and the sensor will still show it as open. Or you get so many messages that the actual “window is open” event is buried among them.

What makes it worse is that exactly this type of installation is shown on the Sonoff website.

The installation on the right can lead directly to that problem:

Problem 3 in detail

Yesterday I opened my garage, which has one of these sensors on it. No notification arrived, and I assumed the sensor had simply stayed quiet again. When I checked the Zigbee2MQTT log shortly afterwards, I saw that it had in fact sent something, namely that the garage door was still closed.

For reference: contact: true = closed, contact: false = open.

  • 15:37:25 — garage opened, sensor reports contact: true
  • 15:42:10 — garage closed, sensor reports contact: true
  • 15:42:14 — garage opened again, sensor reports contact: false (notification received)
  • 15:42:30 — garage closed again, sensor reports contact: true

So the open event at 15:37:25 was reported as closed and never corrected until I opened the door a second time.

[2026-08-08 15:37:25] info: z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/GarageDoor', payload '{"battery":100,"battery_low":false,"contact":true,"last_seen":"2026-08-08T13:37:25.869Z","linkquality":61,"tamper":false,"update":{"installed_version":4097,"latest_release_notes":null,"latest_source":null,"latest_version":4097,"state":"idle"},"voltage":3200}'

[2026-08-08 15:42:10] info: z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/GarageDoor', payload '{"battery":100,"battery_low":false,"contact":true,"last_seen":"2026-08-08T13:42:10.468Z","linkquality":65,"tamper":false,"update":{"installed_version":4097,"latest_release_notes":null,"latest_source":null,"latest_version":4097,"state":"idle"},"voltage":3200}'

[2026-08-08 15:42:14] info: z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/GarageDoor', payload '{"battery":100,"battery_low":false,"contact":false,"last_seen":"2026-08-08T13:42:14.868Z","linkquality":65,"tamper":false,"update":{"installed_version":4097,"latest_release_notes":null,"latest_source":null,"latest_version":4097,"state":"idle"},"voltage":3200}'

[2026-08-08 15:42:30] info: z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/GarageDoor', payload '{"battery":100,"battery_low":false,"contact":true,"last_seen":"2026-08-08T13:42:30.149Z","linkquality":65,"tamper":false,"update":{"installed_version":4097,"latest_release_notes":null,"latest_source":null,"latest_version":4097,"state":"idle"},"voltage":3200}'

All sensors are on firmware version 4097.


So here I am with a pile of sensors that report when they feel like it, or simply report the wrong thing.

Does anyone else run these sensors and see the same problems, or have experience to share?

Have a great Sunday,
Andre

Sonoff zigbee battery sensors don’t have a great rep. If you search these forums you’ll find plenty of threads complaining about them. The fact that you went out & bought 44 without trying a sample first is… courageous.

Having said that, I can think of some ways to fix (or at least improve) your issues.

Problem 1: Add more zigbee routers close to the sensors with low lqi. Might be a good idea to remove the affected sensors from Z2M & re-pair them via the new routers. I know it should happen automatically but this way you can do it immediately.

Problem 2: Move the magnet away from the sensor so it only just registers as contact: true when the window is closed. If that still doesn’t work, try playing around with debounce or X* settings in Z2M.

Problem 3: seems to be caused by a combination of the other 2 problems above. Hopefully it’ll resolve itself once you handle the other 2.

*There’s another setting in Z2M similar to debounce but I’ve forgotten the name & Z2M site isn’t loading for me on mobile today.
Will come back with an edit once I can access the docs on PC

Just call me stupid, that’s fine with me :sweat_smile:

In my defence, though: I did test them, eight units over two months. Unfortunately that test ran in a spot with excellent reception and with the magnet in the correct position, so none of the failure modes ever showed up. My frustration with the IKEA sensors probably played a part as well. I just wanted some peace and quiet at last.

Sonoff has always impressed me otherwise. The SNZB-02D and SNZB-02LD temperature sensors have run for many months without a single problem, unlike the Aqara sensors we used before, and the ZBMINIL2 works flawlessly as well, although that one is not battery powered.

We used to have two SNZB-04 units, the ones without the “P”, and they ran forever without any issues. Sadly they are no longer available. We also have four SNZB-04P in use right now and those work very well too, but the housing is on the thicker side and does not fit every window we have.

What appealed to me about the 04PR2 was the two AAA batteries instead of a coin cell, and the long battery life that comes with them.

I will do some more testing and rearrange a few installations. That is not an option for the garage door, though, and in the end it should not have to be the solution anyway. The sensor should report the correct state regardless of how the magnet approaches it.

I did find the debounce option, but the documentation page will not load for me at the moment. I will take another look later.

So, to ask the obvious question: are there any window contacts you would genuinely recommend? It seems like such a simple problem, and yet it turns out to be this complicated.

Nah, we all have a drawer of shame. In my case, I have about 2 large shopping basket’s worth, so definitely not gonna judge.

Z2M doc page seems down at the moment. Not sure what happened, but I hope it comes back up soon.

Heh, you’re not gonna like my answer, but it’s the old Aqara window sensors (model MCCGQ11LM for when Z2M comes back up). One of those is the farthest device on my ZigBee network, yet it has performed reliability and always detects my front door opening & closing. Oh, and it’s still on its original coin battery since 2021!
It’s Zigbee 1.2, so it won’t switch to a different router automatically if it loses comms, but I’m happy with the tradeoff.

I bought a 4-pack and I’m seeing the same issues. I just had to reopen a door again because it was reporting incorrect values even though it’s got an LQI of 144. They’re clearly not reliable, I’ve seen multiple issues with them.

Cheaper than the aqara sensors, but definitely not as good. We can hope for a firmware update, but I’m not holding my breath…