Testing 12 different Zigbee temperature/humidity sensors
smarthomescene.com
smarthomescene.com
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.
+1, complete waste of time and money. I thought my Zigbee network or HA was the problem, but the sensors are just garbage.
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.
I'm 2 years in, I think, and I have never noticed any issues.
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...
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.
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.
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.
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.
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).
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.)
> 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
Ikea selle rechargable ones for really cheap additionally.