xiaomi термометр tasmota mqtt ESP32

Ответить
tornado
Рядовой
Сообщения: 30
Зарегистрирован: 14.04.2020{, 21:17}
Репутация: 1
Имя: Ivan

xiaomi термометр tasmota mqtt ESP32

#1

Сообщение tornado » 26.03.2022{, 09:10}

1.Xiaomi термометр Mijia 2 с кастомная прошивка
2.ESP32 с Tasmota
ESP32 подключается через BT к термометр и через WiFi k MQTT сервер.На топике "tele/tasmota/SENSOR" на каждом 5 мин. посылает:

Код: Выделить всё

07:45:26.871 MQT: tele/tasmota/STATE = {"Time":"2022-03-26T07:45:26","Uptime":"0T00:00:11","UptimeSec":11,"Heap":89,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":34,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":43},"Wifi":{"AP":1,"SSId":"ExTrEaM","BSSId":"C4:6E:1F:31:6D:92","Channel":11,"Mode":"11n","RSSI":88,"Signal":-56,"LinkCount":1,"Downtime":"0T00:00:05"}}
07:45:26.903 MQT: tele/tasmota/SENSOR = {"Time":"2022-03-26T07:45:26","ESP32":{"Temperature":35.0},"TempUnit":"C"}
07:45:28.659 MQT: tele/tasmota/BLE = {"Time":"2022-03-26T07:45:28","BLEDevices":{"total":2,"D0D00322A235":{"i":0,"r":-91},"A4C1387869D5":{"i":1,"r":-57}}}
07:45:28.679 MQT: tele/tasmota/BLE = {"Time":"2022-03-26T07:45:28","BLE":{"scans":0,"adverts":6,"devices":2,"resets":0}}
07:45:28.697 MQT: tele/tasmota/SENSOR = {"Time":"2022-03-26T07:45:28","ATC7869d5":{"mac":"a4c1387869d5","Temperature":20.6,"Humidity":46.0,"DewPoint":8.6,"Btn":1,"Battery":84,"RSSI":-57},"TempUnit":"C"}
07:50:17.897 MQT: tele/tasmota/SENSOR = {"Time":"2022-03-26T07:50:17","ATC7869d5":{"mac":"a4c1387869d5","Temperature":20.7,"Humidity":45.6,"DewPoint":8.5,"Btn":1,"Battery":85,"RSSI":-69},"TempUnit":"C"}
07:50:26.894 MQT: tele/tasmota/STATE = {"Time":"2022-03-26T07:50:26","Uptime":"0T00:05:11","UptimeSec":311,"Heap":83,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":43},"Wifi":{"AP":1,"SSId":"ExTrEaM","BSSId":"C4:6E:1F:31:6D:92","Channel":11,"Mode":"11n","RSSI":96,"Signal":-52,"LinkCount":1,"Downtime":"0T00:00:05"}}
07:50:26.928 MQT: tele/tasmota/SENSOR = {"Time":"2022-03-26T07:50:26","ESP32":{"Temperature":53.3},"TempUnit":"C"}
07:50:26.938 MQT: tele/tasmota/BLE = {"Time":"2022-03-26T07:50:26","BLEDevices":{"total":2,"D0D00322A235":{"i":0,"r":-93},"A4C1387869D5":{"i":1,"r":-61}}}
07:50:26.955 MQT: tele/tasmota/BLE = {"Time":"2022-03-26T07:50:26","BLE":{"scans":15,"adverts":362,"devices":2,"resets":0}}
Как извлечь только
"Temperature":20.6,"Humidity":46.0
,для дальнейшей обработки ?
Спасибо!

zhulen820
Сержант
Сообщения: 193
Зарегистрирован: 29.08.2016{, 22:44}
Репутация: 6
Откуда: Серпухов
Имя: Александр

xiaomi термометр tasmota mqtt ESP32

#2

Сообщение zhulen820 » 27.03.2022{, 19:54}

Были блоки на форуме JSON. Там есть блоки РАспарсить JSON

starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05.04.2016{, 23:30}
Репутация: 29
Откуда: Санкт-Петербург
Имя: Илья

xiaomi термометр tasmota mqtt ESP32

#3

Сообщение starshoy81 » 28.03.2022{, 10:08}

tornado,
я в нодереде после преобразования json, извлекаю через функцию

Код: Выделить всё

var temp=msg.payload.AM2301.Humidity;

msg.payload = temp;
return msg;
в консоли тасмоты вот так пишет:

Код: Выделить всё

08:05:41 MQT: tasmota/tele/ventvan/SENSOR = {"Time":"2022-03-28T08:05:41","AM2301":{"Temperature":25.3,"Humidity":24.3},"TempUnit":"C"}

tornado
Рядовой
Сообщения: 30
Зарегистрирован: 14.04.2020{, 21:17}
Репутация: 1
Имя: Ivan

xiaomi термометр tasmota mqtt ESP32

#4

Сообщение tornado » 03.04.2022{, 13:23}

zhulen820 писал(а):
27.03.2022{, 19:54}
Были блоки на форуме JSON. Там есть блоки РАспарсить JSON
Сработало с этим блоком,НО на топике есть две строки "tele/tasmota/SENSOR",первая для встроенный датчик,а на вторая из термометр.
Это уже выглядит так :

Код: Выделить всё

t= 20.9*C   H= 59.4%
t= null*C   H= null%
Как игнорировать вторая строка? Спасибо.

Ответить

Вернуться в «ESP32»