Shelly Flood Gen4 in openHAB 4.3.3 integrieren: Dein Smart Home wird wasserfest!
Wer kennt es nicht: Man hat sein Smart Home mühsam aufgebaut und möchte nun auch wirklich alle Eventualitäten abdecken. Wasserschäden gehören definitiv zu den Dingen, die niemand erleben möchte. Darum schauen wir uns heute an, wie du den neuen Shelly Flood Gen4 Wassersensor in dein openHAB 4.3.3 System integrieren kannst. Spoiler: Das Shelly-Binding hatte bei mir noch Schwierigkeiten mit der Gen4-Version, aber keine Sorge – mit MQTT geht es kinderleicht!
Shelly Flood Gen4 technisch in Betrieb nehmen
Zuerst muss der Sensor natürlich einsatzbereit sein. Lege die Batterien ein und platziere ihn an der gewünschten Stelle, zum Beispiel unter der Spüle, in der Nähe der Waschmaschine oder im Keller. Der Shelly Flood Gen4 ist bekannt für seine einfache Handhabung und lange Batterielaufzeit.
MQTT auf dem Sensor aktivieren und Nachrichten an den Broker senden
Da das Shelly-Binding für die Gen4-Modelle noch etwas hinterherhinkt (ein Update deines openHAB-Systems könnte hier zukünftig helfen!), nutzen wir den direkten Weg über MQTT. Logge dich in das Web-Interface deines Shelly Flood Gen4 ein. Gehe zu den „Internet & Security“-Einstellungen und aktiviere dort MQTT. Gib die IP-Adresse oder den Hostnamen deines MQTT-Brokers (z.B. Mosquitto) sowie den Port ein. Wichtig ist, dass der Sensor seine Statusmeldungen an den Broker senden kann.
MQTT.things erstellen
Jetzt geht es ans Eingemachte in openHAB. Wir erstellen eine .things-Datei, um den MQTT-Broker und den Shelly Flood als Gerät zu definieren.
Thing topic Shelly_Flood_Gen4_e8f60a61e880 "Shelly - Flood (Gen4) - e8f60a61e880" @ "MQTT" {
Channels:
Type switch : online "Online Status" [stateTopic="shellyfloodg4-e8f60a61e880/online", on="true", off="false" ]
Type datetime : System_Time "Zeitstempel" [stateTopic="shellyfloodg4-e8f60a61e880/events/rpc", transformationPattern="JSONPATH:$.params.sys.time" ]
Type switch : alarm "Wasser Alarm" [stateTopic="shellyfloodg4-e8f60a61e880/events/rpc", transformationPattern="JSONPATH:$.params['flood:0'].alarm", on="true", off="false" ]
Type number : battery_V "Batterie Spannung" [stateTopic="shellyfloodg4-e8f60a61e880/events/rpc", transformationPattern="JSONPATH:$.params['devicepower:0'].battery.V" ]
Type number : battery_percent "Batteriestand" [stateTopic="shellyfloodg4-e8f60a61e880/events/rpc", transformationPattern="JSONPATH:$.params['devicepower:0'].battery.percent" ]
}
Hinweis: Ersetze shellyfloodg4-e8f60a61e880 durch den tatsächlichen Topic-Präfix deines Shelly Flood Gen4. Diesen findest du in den MQTT-Einstellungen des Sensors.
MQTT.items erstellen
Als Nächstes definieren wir die Items, die den Status des Sensors in openHAB abbilden.
Switch ShellyFloodGen4_online "Online Status" (gShellyFloodInfo) { channel="mqtt:topic:myMQTTBroker:Shelly_Flood_Gen4_e8f60a61e880:online"}
DateTime ShellyFloodGen4_time "Zeitstempel [%1$tH:%1$tM]" (gShellyFloodInfo) { channel="mqtt:topic:myMQTTBroker:Shelly_Flood_Gen4_e8f60a61e880:System_Time" }
Switch ShellyFloodGen4_alarm "Wasser Alarm [%s]" (gShellyFloodInfo) { channel="mqtt:topic:myMQTTBroker:Shelly_Flood_Gen4_e8f60a61e880:alarm"}
Number ShellyFloodGen4_battery_V "Batterie Spannung (V) [%s]" (gShellyFloodInfo) { channel="mqtt:topic:myMQTTBroker:Shelly_Flood_Gen4_e8f60a61e880:battery_V" }
Number ShellyFloodGen4_battery_percent "Batteriestand (%) [%s]" (gShellyFloodInfo) { channel="mqtt:topic:myMQTTBroker:Shelly_Flood_Gen4_e8f60a61e880:battery_percent" }
MQTT.rules erstellen (Telegram-Benachrichtigung)
Damit du auch wirklich sofort informiert wirst, wenn Wasser detektiert wird, erstellen wir eine Regel, die dir eine Telegram-Nachricht sendet. Stelle sicher, dass du das Telegram-Binding in openHAB eingerichtet hast.
rule "Wasserstand - Alarm"
when
Item ShellyFloodGen4_alarm changed from OFF to ON
then
var lMessageText = "Wasserstandswarnung im Elektroraum wurde ausgelöst!"
val telegramAction = getActions("telegram","telegram:telegramBot:HA_Bot")
telegramAction.sendTelegram(Long::parseLong(TELEGRAM_CHANNEL_SMARTHOME.label), lMessageText)
logInfo("ALARM", lMessageText)
end
Haus.sitemap (Integration in die Visualisierung)
Damit du den Status des Sensors auch in deiner openHAB-Visualisierung (z.B. der Basic UI) siehst, fügst du ihn deiner *.sitemap hinzu.
Frame label="Shelly Flood Gen4 (MQTT)" {
Text item=ShellyFloodGen4_online label="Online Status" icon="switch"
Text item=ShellyFloodGen4_time label="Zeitstempel [%1$tH:%1$tM]" icon=""
Text item=ShellyFloodGen4_alarm label="Wasser Alarm [%s]" icon="Water"
Text item=ShellyFloodGen4_battery_V label="Batterie Spannung (V) [%s]" icon="energy"
Text item=ShellyFloodGen4_battery_percent label="Batteriestand (%) [%s]" icon="energy"
}
Fazit
Auch wenn das Shelly-Binding für die Gen4-Sensoren noch etwas Zeit braucht, um vollständig kompatibel zu sein, ist die Integration des Shelly Flood Gen4 über MQTT eine hervorragende und zuverlässige Lösung für dein openHAB 4.3.3 System. Mit nur wenigen Schritten hast du einen weiteren wichtigen Schutzbaustein in dein Smart Home integriert und bist dank Telegram-Benachrichtigung immer auf dem Laufenden. So kannst du beruhigt deinen sportlichen Aktivitäten nachgehen, während dein Zuhause sicher ist. Viel Erfolg beim Nachbauen!




Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!