devbis / ble2mqtt

Bluetooth to MQTT bridge, add your bluetooth-capable (including controllable) devices to your smart home
MIT License
125 stars 26 forks source link

If sensor is out of range the MQTT msg still sends the last value #66

Open khongpt opened 8 months ago

khongpt commented 8 months ago

I have been using Xiaomi LYWSD_ATC sensor for a while and noticed a problem. When the sensor is out of range or runs out of battery, the MQTT message still sends the last value - an unchanged value to the MQTT server. If the sensor is within range, everything works fine.

Please take some time to fix this. Thank you.

Here is apart of log

2023-10-13 08:19:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:20:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:21:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:22:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:23:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:24:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:25:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:26:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:27:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:28:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:29:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:30:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:31:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:32:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:33:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:34:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:35:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:36:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:37:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:38:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:39:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:40:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:41:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:42:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:43:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:44:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:45:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:46:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:47:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:48:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:49:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)
2023-10-13 08:50:43 INFO: [Xiaomi_ATC_C21074_a4c138c21074] send state=SensorState(battery=68, temperature=30.2, humidity=77, sends_custom=False)

Illustrated when using ble2mqtt with Domoticz image

khongpt commented 5 months ago

Today I tried again with the Mijia2 sensor running ATC firmware. The sensor ran out of battery, but the old values continued to be updated through MQTT messages. Please review and help fix this issue.