Ich hatte das ganze schon länger geplant umzusetzen, bisher aber keine Lust gehabt den eigenen Sketch zu ersetzen.
Mit der ESP32 Bluetooth Gateway Umsetzung beseitigt Ihr das Problem der begrenzten Bluetooth Reichweite. Die Sensordaten werden dann vom ESP32 per MQTT ans Smarthome System gesendet.
ESP32 Vorbereitung
- ESP32 mit Tasmota32-Bluetooth flashen http://ota.tasmota.com/tasmota32/rele…2-bluetooth.bin und ins Netzwerk bringen
- die Xiaomi Miflora Sensoren werden automatisch erkannt und in der Liste auf der Startseite als "Flora" gelistet
- Sensoren können mit einem Alias-Namen versehen werden um sie später in der Liste leichter identifizierbar zu machen. beispiel mit 2 Sensoren (die Zahlen sind die MAC-Adressen der Sensoren und die Rule, welche in der Tasmota Konsole eingegeben werden muss, kann natürlich mit noch mehr Sensoren erweitert werden)
Backlog Rule1 ON System#Boot DO BLEAlias C47C8D6AF5D9=WZ_Efeu_links C47C8D65BEDF=WZ_Efeu_rechts endon; Rule1 1
Die Batteriewerte werden NICHT automatisch abgefragt, da dadurch die Laufzeit der Sensoren leidet. Für die Batteriedaten folgende Rule bei Tasmota eingeben. In diesem Beispiel erfolgt die Abfrage 02.00Uhr...also Minute 120
Rule2 ON Time#Minute=120 DO MI32Battery endon; Rule2 1
Openhab Integration
Transformation Addons notwendig: Regex, Jsonpath
things (in den mqtt bereich einfügen)
Topic und bezeichnung (Flora65e57c) muss auf eure Werte angepasst werden. Den generierten "Flora-Wert" findet ihr im Tasmota Log.
Thing topic Palme_Bu "Pflanzen Palme Büro" @ "Büro" {
Channels:
Type number : Palme_Bu_Licht "Palme Büro Licht" [stateTopic="tele/bluetooth_gateway/SENSOR", transformationPattern="REGEX:(.*Flora65e57c.*)∩JSONPATH:$.Flora65e57c.Illuminance"]
Type number : Palme_Bu_Temperatur "Palme Büro Temperatur" [stateTopic="tele/bluetooth_gateway/SENSOR", transformationPattern="REGEX:(.*Flora65e57c.*)∩JSONPATH:$.Flora65e57c.Temperature"]
Type number : Palme_Bu_Feuchtigkeit "Palme Büro Feuchtigkeit" [stateTopic="tele/bluetooth_gateway/SENSOR", transformationPattern="REGEX:(.*Flora65e57c.*)∩JSONPATH:$.Flora65e57c.Moisture"]
Type number : Palme_Bu_Duenger "Palme Büro Dünger" [stateTopic="tele/bluetooth_gateway/SENSOR", transformationPattern="REGEX:(.*Flora65e57c.*)∩JSONPATH:$.Flora65e57c.Fertility"]
Type number : Palme_Bu_Batterie "Palme Büro Batterie" [stateTopic="stat/bluetooth_gateway/SENSOR", transformationPattern="REGEX:(.*Flora65e57c.*)∩JSONPATH:$.Flora65e57c.Battery"]
}
items
Number:Illuminance Palme_Bu_Licht "Helligkeit [%d Lux]" <sun> {channel="mqtt:topic:embedded-mqtt-broker:Palme_Bu:Palme_Bu_Licht"}
Number:Temperature Palme_Bu_Temperatur "Temperatur [%.1f °C]" <temperature> {channel="mqtt:topic:embedded-mqtt-broker:Palme_Bu:Palme_Bu_Temperatur"}
Number:Dimensionless Palme_Bu_Feuchtigkeit "Büro Palme [%d %%]" <flow> {channel="mqtt:topic:embedded-mqtt-broker:Palme_Bu:Palme_Bu_Feuchtigkeit"}
Number Palme_Bu_Duenger "Nährstoffe [%d µS/cm]" <status> {channel="mqtt:topic:embedded-mqtt-broker:Palme_Bu:Palme_Bu_Duenger"}
Number Palme_Bu_Batterie "Pflanzensensor Palme Büro [%d %%]" <batterylevel> {channel="mqtt:topic:embedded-mqtt-broker:Palme_Bu:Palme_Bu_Batterie"}
sitemaps
Text item=WZ_Palme_Feuchtigkeit label="Bodenfeuchte" valuecolor=[WZ_Palme_Feuchtigkeit < 20 = "red"]
Text item=WZ_Palme_Duenger
Text item=WZ_Palme_Licht
Text item=WZ_Palme_Temperatur
Der Tasmota Befehl MI32Period legt die Häufigkeit der Aktualisierungen fest. Standard sind 3000 Sekunden, also 50min.
Das kann bspw mit MI32Period 21600 auf 6 Stunden geändert werden.