Remix.run Logo
▲ Testing 12 different Zigbee temperature/humidity sensors(smarthomescene.com)
88 points by walrus01 2 days ago | 29 comments
▲rpcope1 5 hours ago | parent | next [-]

One of the things I never see in reports like this is what sensor is being used (is it a Bosch unit? Sensiron? Plain thermistor? Pixies and Fairy Dust? Some bodged together 1wire deal?) and what MCU (Nordic? Espresif? Microchip? Something else?) as those have a huge bearing on what the sensor is actually capable of, and would say a lot about precision/accuracy and battery life.

▲lmz 3 hours ago | parent | next [-]

How is that relevant for the average buyer (as much as these things have an average buyer anyway)? Precision, accuracy, and battery life is helpful info but the inner components are an irrelevant detail. It's not like having a high quality part prevents them from using it wrong anyway.

▲andruby an hour ago | parent | prev | next [-]

I think buyers care more about accuracy and resolution than which sensor. If it’s accurate, with hugh resolution and has good battery life, do you care if it’s Bosch or A Chinese name you’ve not encountered before?

▲morsch an hour ago | parent [-]

Maybe none of the tested devices is available but another one with similar hardware is.

▲sam1714 3 hours ago | parent | prev [-]

Chipset models only form a weak lower bound on crappiness.

You can certainly wreck connectivity with bad and old firmware. Similarly, housing design, PCB thermal isolation, not putting the sensor next to the MCU, measurement averaging settings, etc. all are going to affect accuracy even with the same sensor (particularly dynamic accuracy).

▲DocG 37 minutes ago | parent | prev | next [-]

Sadly it's missing Ikea one. They are cheap and most importantly, use AAA standard batteries instead of the coin cell type.

Ikea selle rechargable ones for really cheap additionally.

▲Gys 35 minutes ago | parent | next [-]

Ikea stopped with the Zigbee sensors I think? It is all Matter now?

▲zishha1b0njq 12 minutes ago | parent [-]

Some Ikea sensors can be switched back to zigbee mode by turning on / off quickly many times (6? 10? not sure).

▲Hamuko 35 minutes ago | parent | prev [-]

I think IKEA has discontinued its Zigbee sensors. The new ones are Matter.

▲Gigachad 5 hours ago | parent | prev | next [-]

I put the Ikea Thread sensor in my fridge a while back and it's been a lot more useful than I expected. My fridge had been periodically getting too cold or too hot, I suspect the issue is that the captive touch buttons that control the temp get occasionally bumped, changing the set temperature. With the thread sensor I can have Home Assistant send me an alert when the fridge leaves the safe zone for too long so I can manually correct it.

It's also been interesting to see when placing hot food in the fridge how long the temperature stays elevated for. I put the sensor in a ziplock bag and sucked the air out of it so it has weatherproofing.

▲askvictor 2 hours ago | parent | next [-]

And it communicates OK to outside the fridge? I would have thought a fridge is pretty close to a Faraday cage

▲Gigachad 2 hours ago | parent [-]

Yeah I thought this might be an issue but it's been running flawless for months without ever dropping out.

▲tacomagick an hour ago | parent | prev [-]

Did you make sure those hot peaks are not your fridge's defrost cycle?

▲Gigachad an hour ago | parent [-]

What would normally happen is I’d start seeing things freeze so I’d adjust it hotter until one time some things went mouldy sooner than I’d expect so I put the sensor in the fridge to get a better idea what is going on. Seeing the data, the fridge seems to once every couple months just move to a colder temp and stay there until I adjust it back again which is why I think it’s just the button getting bumped.

Being able to see the fridge temp to a tenth of a degree and getting alerted when it’s wrong has been much more useful than I expected. The safe fridge temp is a fairly narrow band that’s basically impossible to hit without a proper temp sensor.

▲kadoban a day ago | parent | prev | next [-]

Do _not_ get the Aqara ones. The things will not stay connected for shit.

I have a couple of the Tuya ones and I'm pleased with them. The humidity accuracy is questionable, but it's fine.

I also have an airgradient (not zigbee, uses wifi) for high accuracy the one place I care about that. Works great in Home Assistant with esphome.

▲nijave 6 hours ago | parent | next [-]

Hmm interesting I have 4-5 of them and quite like them. They've all stayed connected over a year except 1 which I just replaced the battery in and I think that fixed it. It was reporting 40% battery but would drop off shortly after connecting.

Aqara might be the ones with a crappy ZigBee implementation that doesn't roam right so if you move them or your topology changes, they'll drop off.

▲jaggederest 3 hours ago | parent [-]

Same, I have scads of them (~8) and have never had connection issues with any of them. I made sure to only pull the battery tab and turn them on for the first time in their target location, maybe that makes a difference, and my zigbee network is quite dense, so there's no lack of mesh for them to connect to.

I'm 2 years in, I think, and I have never noticed any issues.

▲akifbayram 2 hours ago | parent | prev | next [-]

Agreed. After the headache of getting them paired and dealing with repeated disconnections, I tried out a few bluetooth sensors and was pleasantly surprised. Specifically Govee H5074 and similar. No pairing troubles. They just work. Battery life is definitely over a year, possibly 2. A pack of three can be had for <$40.

▲ddeck 4 hours ago | parent | prev | next [-]

I have to agree. Aqara make some excellent hardware, but their Zigbee firmware is typically awful. Their battery-powered switches also drop off the network at random.

I have several E1 wired switches and had to resort to replacing the firmware on them[0]. They don't drop off the network as their sleepy end devices tend to, but they also can't be bound to other devices.

[0] https://www.ducktoast.com/blog/electronics-projects/aqara-e1...

▲cmckn 6 hours ago | parent | prev [-]

> Do _not_ get the Aqara ones. The things will not stay connected for shit.

+1, complete waste of time and money. I thought my Zigbee network or HA was the problem, but the sensors are just garbage.

▲parineum 6 hours ago | parent [-]

It's a known issue with them that they don't ever change their routing. If you connect them in a different place than you use them, you're going to have suboptimal to unusable routes.

▲tzs an hour ago | parent | prev | next [-]

> To get an accurate base for benchmarks, I decided to calibrate it against a lab-certified thermometer at a friend’s butcher shop, as weirdly as that sounds. His particular thermometer gets checked and calibrated by the state on a schedule (every 3 months) because it sits inside a commercial meat refrigerator and it is required by law. After calibration, my MHO-C401 needed an offset of minus 0.5°C and plus 4% humidity to match the reference reading exactly.

> It is worth clarifying from the start that my setup does not represent typical room comfort conditions, since the calibration was done at a much lower temperature, around 4°C. Sensors do not always respond in a perfectly straight line across a wide temperature range, so this fixed point is not a guarantee of the exact same accuracy at room temperature.

This can be fixed pretty easily if you are up to a little simple DIY.

Instead of using the MHO-C401, calibrated at one point against a lab-certified thermometer, build on a solderless breadboard your own temperature/humidity sensor using an ESP32 or ESP8266 dev board and a Sensiron SHT45 temperature/humidity sensor and program it using Arduino.

The SHT45 communicates with the ESP over I2C. The wiring is simple: ESP 3.3V, GND, SDA, SCL to SHT45 VCC, GND, SDA, SCL, in that order. Just 4 wires. The ESP dev board will be powered by USB. (If you need it to be battery powered, just use a small USB power bank).

The SHT45 has an accuracy of ±1% RH and ±0.1℃ out of the box.

If you want even better temperature accuracy add a tmp119 temperature sensor. This too uses I2C so the hookup is the same as the SHT45 hookup. It has a temperature accuracy of ±0.08℃ max and it typically is ±0.03℃ and is NIST-traceable out of the box. This is across a range of 0℃ to 45℃. (Outside that range it is ±0.2℃ from -55℃ to 150℃).

Adafruit has all the sensors [1][2]. Those have JST connectors using a standard pinout for daisy chaining I2C devices, which would be good for this application so when measuring temperature in the fridge or freeze you don't have to put the whole breadboard assembly in there. They have cables up to 400mm long [3].

You know what...you don't even actually need the breadboard! Here's a JST to female socket cable [4] that could connect one of the sensors to the pins on the ESP dev board.

ESP, that cable to the sensor, and if using two sensors, the sensors daisy chained with JST to JST cable.

Adafruit has ESPs also, but they seem to be out of stock on most of them. There are plenty of suitable ones on Amazon that are pretty inexpensive.

I'd say go for an ESP32 C5 or C6. They both support 2.4 GHz wifi and Zigbee, so your have the choice of reporting reading to a web server or making your DIY reference temp/humidity sensor use Zigbee. The Arduino library from ESP includes built in classes to make making Zigbee sensors easy.

Oh, they also support Matter over wifi, so you could make this a Matter device.

The C5 adds 5 GHz wifi.

Just remember that an ESP32 generates enough heat due to the radio that these sensors will pick it up if the are too close. If you build on a breadboard don't be the sensors right next to the ESP.

This is a fairly reasonable first project if you've not done any MCU stuff before but do have programming experience, especially nowadays with LLMs. They seem to have a pretty good grasp of Arduino stuff. (Don't just vibe code it! Just use them when you get stuck on something or want some documentation clarified or things like that. That will be a lot more interesting).

[1] https://www.adafruit.com/product/5665

[2] https://www.adafruit.com/product/6482

[3] https://www.adafruit.com/product/5385

[4] https://www.adafruit.com/product/4397

▲quasarj 2 hours ago | parent | prev | next [-]

No mention of models that can survive outside. I'm not sure how useful an indoor sensor is??

▲Squealer2642 an hour ago | parent [-]

It can replace expensive thermostat sensors. For example an Ecobee Smart Sensor two pack has an MSRP of $100. You can connect the Zigbee sensors to Home Assistant and adjust your thermostat based on your bedroom if it gets too hot when you sleep. Or turn on your whole house fan.

▲rkagerer 4 hours ago | parent | prev | next [-]

It's not Zigbee, but I've been very happy with Yolink and several of the products in their ecosystem.

▲Marsymars 4 hours ago | parent [-]

I seriously looked at yolink for fridge/freezer sensors, but just couldn’t stomach their pricing in Canada. (e.g. the Local Hub is 200 USD in the US, or 285 USD in Canada.)

I ended up with some Ecowitt (hardware sold under the Ambient Weather brand in the US) sensors and they’ve been working great for some months now. (900mhz RF has good penetration and the sensor hardware is generally appropriate for -20C operation.)

▲cyberax 6 hours ago | parent | prev | next [-]

Hah. I did something similar a while ago, but I also did full saturated salt solution humidity calibration. It's very simple to do: get several different salts, create a saturated solution in a sealed container, and observe the humidity there.

The best sensor in my tests was CentraLite 3310-G. It was the only one actually precise to 1% of RH and 0.1C They are also pretty robust and long-lasting.

▲nh2 7 hours ago | parent | prev [-]

> you absolutely must press the pairing button on the sensor first to wake it up before sending the new reporting configuration. Sending the payload while the device is asleep just gets ignored

This stuff is still so user unfriendly.

Why cannot the software just save the desired setting to set it when the device comes online next? I feel like many things in zigbee2mqtt are like that: I click something, it fires off some message and it often isn't clear if that worked, if it'll work later, and so on.

▲zishha1b0njq 16 minutes ago | parent [-]

Because the sensors are not listening their radio transceiver (RX), only transmitting (TX), by default, to save battery.