Sprinklers_Pi mit openHAB 2 steuern
In diesem Beitrag geht es darum wie ihr mittels openHAB Sprinklers_Pi steuert. Sprinklers_Pi nutze ich um mit einem Raspberry Pi meine Hunter Ventile für die Gartenbewässerung zu steuern. Im Beitrag Raspberry Pi Gartenbewässerung mit Sprinklers_Pi (GreenIQ Hack) könnt ihr lesen, wie ihr eine Gartenbewässerung auf einem Raspberry Pi umsetzt. Zum Glück bietet Sprinklers_Pi eine Schnittstelle (API). Mit dieser kann direkt auf Sprinklers_Pi zugegriffen werden. Im folgenden lest ihr welche Befehle per Schnittstelle steuerbar sind. In einem Beispiel zeige ich wie ihr die Steuerung von Sprinklers_pi mittels Items, Regel und Sitemap realisiert.
Sprinklers_Pi API Übersicht
Über die API von Sprinklers_Pi lassen sich einige Befehl direkt per HTTP Link ausführen. Alle Befehle werden mit http://sprinkler:8080/bin/eingeleitet. Hierbei ist sprinkler euer Hostname. Im Anschluss folgt der Zugriff per API. Wichtig hierbei ist, dass die Zone 1 mit zb angesprochen wird und nicht wie man vielleicht erwartet mit za oder z1. In der folgenden Tabelle ein paar Befehle und Beispiele.
Zweck | Schnittstellenaufruf (API) | Erläuterung |
---|
openHAB Sprinklers_pi Item Konfiguration
Zur Steuerung von sprinklers_pi benötigt ihr als erstes Items. Ich habe mir zum manuellen aktivieren für die einzelnen Zonen jeweils ein Item definiert. Mittels Expire Binding stelle ich sicher, dass die Ventile automatisch nach 30 Minuten wieder geschlossen werden. Wollt ihr dies auch installiert bitte das Expire Binding. Alternativ könnt ihr auch die zeitlich begrenzte Bewässerung nutzen.
//Bewässerung Switch ga_l_sprenger_hochbeet "Hochbeet" <water> (gHaus,gGarten) { expire="30m,command=OFF" } Switch ga_l_sprenger_vorne "Sprenger Vorne" <water> (gHaus,gGarten) { expire="30m,command=OFF" } Switch ga_l_sprenger_hinten "Sprenger Hinten" <water> (gHaus,gGarten) { expire="30m,command=OFF" }
openHAB Sprinklers_pi Regeln zur Steuerung
Die folgenden Regeln werden ausgeführt sobald eines der Items an oder ausgeschaltet wird. Wenn der Zustand an ist, wird per HTTP Request das Ventil ausgeschaltet und umgekehrt.
rule "Hochbeet an/aus" when Item ga_l_sprenger_hochbeet received command then if (ga_l_sprenger_hochbeet.state == ON) { sendHttpGetRequest("http://sprinkler:8080/bin/manual?zone=zb&state=on") } else { sendHttpGetRequest("http://sprinkler:8080/bin/manual?zone=zb&state=off") } end rule "Sprenger hinten" when Item ga_l_sprenger_hinten received command then if (ga_l_sprenger_hinten.state == ON) { sendHttpGetRequest("http://sprinkler:8080/bin/manual?zone=zc&state=on") } else { sendHttpGetRequest("http://sprinkler:8080/bin/manual?zone=zc&state=off") } end rule "Sprenger vorne" when Item ga_l_sprenger_vorne received command then if (ga_l_sprenger_vorne.state == ON) { sendHttpGetRequest("http://sprinkler:8080/bin/manual?zone=zh&state=on") } else { sendHttpGetRequest("http://sprinkler:8080/bin/manual?zone=zh&state=off") } end
openHAB Sprinklers_Pi Sitemap
Als letztes erweitert eure Sitemap um die Items der Gartenbewässerung. Weiterhin habe ich mir zusätzlich noch ein Webview Item angelegt, sodass ich direkt auf die Oberfläche von Sprinklers_pi gelange um so z. B. die Zeitpläne zu ändern.
Frame label="Bewässerung" icon="rain" { Switch item=ga_l_sprenger_hochbeet mappings=[OFF="Aus", ON="An"] Switch item=ga_l_sprenger_hinten mappings=[OFF="Aus", ON="An"] Switch item=ga_l_sprenger_vorne mappings=[OFF="Aus", ON="An"] Text label="Bewässerungseinstellungen" icon="rain" { Webview url="http://sprinkler:8080" height=40 } }
Bei mir sieht das ganze wie folgt aus.
Ich hoffe wie immer der Beitrag hat euch gefallen. Falls es irgendwelche Fragen gibt, nutzt die Kommentare.
Falls ihr mehr Beiträge wünscht, könnt ihr den Blog auf verschiedene Weise unterstützen. Kaffeespende, Dauerauftrag, teilen… Mehr dazu findet ihr per Klick auf den grünen Knopf mit Herz oben rechts. Danke.