Wireless temperature sensor with frequent updates

I’m looking for wireless temperature sensor (either wifi or Zigbee/Conbee II compatible) which sends temperature updates frequently, even if there is no change. The reason for this is that I want to build a automation for controlling HVAC in quite small room where the built-in control system of my heat pump is not precise enough, causing huge overshoot to cold or hot side of target temperature.

Currently I am using Xiaomi Mi zigbee sensors and the problem with these are that their temperature update interval is unpredictable and they react too slowly to changes in room temperature, causing just the same kind of behaviour than with the built-in control of heat pump.

The sensor can be mains powered so wifi ones compatible with Home Assistant are also suitable for my use case, the important thing is that they react quickly and send frequent updates.

EDIT: I chose Xiaomi LYWSD03MMC sensor (a BLE sensor) with display for this. I flashed it with Telink Flasher Telink Flasher (atc1441.github.io) and using excellent Passive BLE Monitor integration I am now getting constant updates on temperature. The only thing worth considering is that you might need to filter the sensor’s output with Home Assistant lowpass filter to get smoother output.

I have an ESP home driven ESP with a dallas sensor that updates every second.
I have it set to internal to not load HA and only a toggle boolean, but you could have it send the data to HA every second.
Dallas Temperature Sensor — ESPHome

1 Like

The problem with most of the off the shelf wifi, bluetooth and zigbee sensors is that you have no control over the sampling rate. I have found a couple of off the shelf ble sensors that yield frequent updates, the Govee 5074 is still in production. There is great custom software for the Xiaomi LYWSD03MMC-ATC on github that lets you vary its reporting rate, these Xiaomi’s are super sensors for the price. Humidity reading a not as good on the Xiaomi as the Govee 5074. Below is a link to a couple of charts I did comparing a couple of sensors reporting rates. The best I’ve found of zigbee is the Sonoff eWeLink TH01, but it has a number of connectivity issues.

The pluses of the ble sensors are their battery life, the minuses are that you have to do some work to get good reception of ble. This is why I have a rpi dedicated to receiving my ble sensors, which I can centrally located for good reception. If you look on the HA forums, there are several ble receiver setups. It is pretty easy to setup a test with these sensors and HA.

I am using a Shelly 1PM with the temp probe addon, it sends updates around every 2 minutes

I too use Shelly 1PM and Shelly Plug US units, but I have been having a lot of lockups especially with the Shelly Plugs. Be careful of some of their recent firmware revisions. I have reverted my units to firmware from before mid-year 2020 and stability I was experiencing last year seems to be back. I see that others are experiencing problems as well. I really would like them to move their support off of Facebook as well, not a good place to support a commercial product IMHO. Also they are not keeping their release notes updated on their web site. I did like their products, but I am having questions now.

Thank you for the tips, all of you. It seems like there is no off-the-self solution for this, which is really annoying.

It just came to my mind that Bluetooth or Bluetooth Low Energy (BLE) temperature sensors might be OK also, as I have RPI in boiler room just behind the wall of the room which temperature I need to monitor for heat pump control. Do those Xiaomi BLE temperature sensors with displays update the temperature regularly?

You can work with Zigbee. The PTVO firmware has an option to set the update frequency. Please have a look at my little project : DIY Zigbee 4x DS18B20 temperature measurement

Actually it looks like Xiami Mijia BLE sensor might be a solution. When taking a look at the Home Assistant documentation Xiaomi Mijia BLE Temperature and Humidity Sensor - Home Assistant (home-assistant.io)

there is a configuration option

force_update boolean (optional, default: false)

Sends update events even if the value hasn’t changed.

For xiaomi BLE sensors, you can use BLE monitor, which is passively listening to BLE messages of a lot of sensors. Works with the custom ATC firmware as well.

Passively listening is better for your battery life. The build in component is actively listening. It updates on every unique message.

Thanks for the suggestion. I installed your ble_monitor as it looks really be the right solution for me. However, I can’ get it working properly. In the HA logs there are some errors:

2021-04-23 11:38:00 ERROR (Thread-3) [root] Uncaught thread exception
Traceback (most recent call last):
File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/home/homeassistant/.homeassistant/custom_components/ble_monitor/__init__.py", line 802, in run
mysocket[hci] = aiobs.create_bt_socket(hci)
File "/home/homeassistant/.homeassistant/custom_components/ble_monitor/aioblescan_ext.py", line 1688, in create_bt_socket
family=socket.AF_BLUETOOTH, type=socket.SOCK_RAW, proto=socket.BTPROTO_HCI
AttributeError: module 'socket' has no attribute 'AF_BLUETOOTH'

My platform is Raspberry Pi and using hcitool lescan on command line I can see my Xiaomi BLE sensor.

The solution for this error is explained in the FAQ. In short, you are probably using a venv installation of HA, but you’ve installed python without support for Bluetooth. A step by step procedure to fix this is in the FAQ

1 Like

Thanks for the pointer, I got it working following the steps in the FAQ. Now it is working like a charm!