FHEM - Hausautomations-Systeme > MQTT

[gelöst: ]Tasmota-BLE BridgeRegex für FlowerCare

(1/3) > >>

JensS:
Stehe mal wieder auf dem Schlauch...
--- Code: ---tele/BTtoMQTT/SENSOR {"Time":"2022-01-10T18:14:19","Flora6ab3c3": "mac":"c47c8d6ab3c3","Temperature":22.3,"Illuminance":43,"Moisture":73,"Fertility":1004,"RSSI":-86},"Flora6aab20": "mac":"c47c8d6aab20","Temperature":23.2,"Illuminance":74,"Moisture":44,"Fertility":931,"RSSI":-66}}
--- Ende Code ---
Wie setzt man ein BridgeRegex nicht auf ein Topic, sondern auf eine Message an?
Herauskommen sollen Devices nach dem Schema "Flora_<mac>".

Gruß Jens

JensS:
Hab's hinbekommen. Zwar etwas eingeschränkt in der Namensgebung aber extra Devices.
--- Code: ---BTtoMQTT:tele/BTtoMQTT/SENSOR:.*?Flora6(.*?)\".* "Flora_$1"
--- Ende Code ---
Nun sind die Readings auch nicht die Schönsten, aber brauchbar.
--- Code: ---defmod MQTT2_Flora_aab20 MQTT2_DEVICE Flora_aab20
attr MQTT2_Flora_aab20 readingList tele/BTtoMQTT/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_Flora_aab20 room neue-Geräte

setstate MQTT2_Flora_aab20 2022-01-10 19:04:19 ESP32_Temperature 43.9
setstate MQTT2_Flora_aab20 2022-01-10 19:04:18 Flora6aab20_Moisture 44
setstate MQTT2_Flora_aab20 2022-01-10 19:04:18 Flora6aab20_RSSI -70
setstate MQTT2_Flora_aab20 2022-01-10 19:04:18 Flora6aab20_mac c47c8d6aab20
setstate MQTT2_Flora_aab20 2022-01-10 19:04:18 IODev MQTT2Server
setstate MQTT2_Flora_aab20 2022-01-10 19:04:19 TempUnit C
setstate MQTT2_Flora_aab20 2022-01-10 19:04:19 Time 2022-01-10T19:04:19
setstate MQTT2_Flora_aab20 2022-01-10 19:04:18 associatedWith MQTT2_BTtoMQTT

--- Ende Code ---

MadMax-FHEM:
Gibt es einen Grund für die Einbindung per mqtt statt dem fhem Modul BTFlowerSens (oder so ähnlich)?

Gruß, Joachim

JensS:
Ich hatte zuvor ein Python-Script auf einen RPI3+ erfolgreich zu laufen, wollte das aber auf einen ESP32 portieren.
OpenMQTT war ein Versuch aber dort gab es Schwierigkeiten bei der Abfrage. Entweder die Sensoren zu häufig oder nicht vollständig gescannt.
Dann bin ich auf Tasmota-BLE gestoßen, welches zuverlässig scannt und das Abfrage-Intervall gut definierbar ist.

Gerade dachte ich "Heureka" - nun bin ich wieder etwas ernüchtert, da die Log für eine durch die Bridge angelegtes Device so aussieht:
--- Code: ---2022-01-10_19:04:18 MQTT2_Flora_aab20 Flora6aab20_mac: c47c8d6aab20
2022-01-10_19:04:18 MQTT2_Flora_aab20 Time: 2022-01-10T19:04:18
2022-01-10_19:04:18 MQTT2_Flora_aab20 Flora6aab20_RSSI: -70
2022-01-10_19:04:18 MQTT2_Flora_aab20 Flora6aab20_Moisture: 44
2022-01-10_19:04:19 MQTT2_Flora_aab20 TempUnit: C
2022-01-10_19:04:19 MQTT2_Flora_aab20 ESP32_Temperature: 43.9
2022-01-10_19:04:19 MQTT2_Flora_aab20 Time: 2022-01-10T19:04:19
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6c8ea4_mac: c47c8d6c8ea4
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6c8ea4_Fertility: 231
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6ab2f4_Temperature: 23.3
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6c8ea4_Temperature: 25.5
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6ab2f4_Fertility: 459
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6ab2f4_mac: c47c8d6ab2f4
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6ab2f4_RSSI: -61
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6ab2f4_Moisture: 41
2022-01-10_19:09:11 MQTT2_Flora_aab20 Time: 2022-01-10T19:09:11
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6ab2f4_Illuminance: 35
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6c8ea4_Illuminance: 172
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6c8ea4_Moisture: 31
2022-01-10_19:09:11 MQTT2_Flora_aab20 Flora6c8ea4_RSSI: -68
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6ab3c3_mac: c47c8d6ab3c3
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6ab3c3_Fertility: 998
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6c9084_Illuminance: 324
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6ab3c3_Temperature: 22.3
2022-01-10_19:09:12 MQTT2_Flora_aab20 Time: 2022-01-10T19:09:12
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6c9084_Moisture: 2
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6c9084_RSSI: -83
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6c9084_mac: c47c8d6c9084
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6c9084_Fertility: 31
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6ab3c3_Moisture: 73
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6ab3c3_RSSI: -89
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6ab3c3_Illuminance: 60
2022-01-10_19:09:12 MQTT2_Flora_aab20 Flora6c9084_Temperature: -0.7
2022-01-10_19:09:13 MQTT2_Flora_aab20 Flora6aab20_Temperature: 23.1
2022-01-10_19:09:13 MQTT2_Flora_aab20 Flora6aab20_Moisture: 44
2022-01-10_19:09:13 MQTT2_Flora_aab20 Flora6aab20_RSSI: -71
2022-01-10_19:09:13 MQTT2_Flora_aab20 Flora6aab20_Illuminance: 53
2022-01-10_19:09:13 MQTT2_Flora_aab20 Time: 2022-01-10T19:09:13
2022-01-10_19:09:13 MQTT2_Flora_aab20 Flora6aab20_mac: c47c8d6aab20
2022-01-10_19:09:13 MQTT2_Flora_aab20 Flora6aab20_Fertility: 920
2022-01-10_19:09:19 MQTT2_Flora_aab20 ESP32_Temperature: 44.4
2022-01-10_19:09:19 MQTT2_Flora_aab20 TempUnit: C
2022-01-10_19:09:19 MQTT2_Flora_aab20 Time: 2022-01-10T19:09:19
--- Ende Code ---

rudolfkoenig:
Soweit ich sehe, ist das gezeigte Message kein gueltiges JSON, speziell die Stelle "Flora6ab3c3": "mac":"c47c8d6ab3c3" stoert mich.

Die Aufgabe hier ist eine MQTT-Message mehreren Geraeten zuzuweisen, wo man jeweils Teile auswertet.

bridgeRegexp kann das nicht, sie reagiert allergisch (vulgo meldet Fehler), wenn ein Message mehreren clientIDs zugeordnet werden kann.

Man kann aber fuer jeden Sensor ein MQTT2_DEVICE manuell anlegen, jedem das gleiche readingsList mit diesem einem Topic vergeben, und sie im json2nameValue Aufruf unterschiedlich filtern bzw. mit unterschiedlichen jsonMap umbenennen.

Vorausgesetzt, dass meine Theorie, wie man aus dem kaputten JSON was Korrektes macht, stimmt.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln