OpenSprinkler Smart-Home-Integration, kostenlos und Open Source

OpenSprinkler-Bewässerung: Stationen, Programme, Regenpause und Sensoren im lokalen Netz.
Steuere deine Bewässerungssteuerung OpenSprinkler oder OpenSprinkler Pi aus Gladys, im lokalen Netzwerk: Sieh, welche Stationen bewässern und wie lange noch, bewässere ein Beet sofort, starte ein Programm, setze den Zeitplan mit einer Regenpause aus, lies die Regen-, Boden- und Durchflusssensoren.
Ohne die Hardware entwickelt: Rückmeldungen sind willkommen. Diese Integration wurde nach der Dokumentation der OpenSprinkler-API und mit Antworten geschrieben, die auf der offiziellen Firmware (Demo-Version) aufgezeichnet wurden, nicht auf einer echten Steuerung. Melde auf GitHub, was funktioniert und was nicht.
Diese Integration steht in keiner Verbindung zu OpenSprinkler oder OpenThings Inc.
Voraussetzungen
- Eine Steuerung OpenSprinkler (2.x, 3.x, 4.x) oder OpenSprinkler Pi mit einer Firmware 2.x (2.1.9 oder neuer empfohlen, geprüft mit 2.2.1(6)).
- Die Steuerung und Gladys im selben lokalen Netzwerk. Die Integration spricht direkt mit der Steuerung (keine Cloud, kein OpenThings-Cloud-Konto).
- Das Gerätepasswort der Steuerung: das Passwort, das du in der OpenSprinkler-App eingibst (Werkseinstellung:
opendoor). - Gladys 5.2.0 oder neuer (die Tasten des Widgets öffnen Formulare).
Konfiguration
Öffne in Gladys Integrationen → OpenSprinkler → Konfiguration:
- Adresse: die IP-Adresse oder der Name der Steuerung, z. B.
192.168.1.20. Ergänze:Port, wenn der Webserver nicht auf Port 80 lauscht (ein OpenSprinkler Pi lauscht oft auf:8080). Gib der Steuerung in deinem Router eine feste IP-Adresse. - Gerätepasswort: das Passwort der OpenSprinkler-App. Es wird als MD5-Hash an die Steuerung gesendet, wie es die offizielle App tut, und nie in die Protokolle geschrieben.
- Name (optional): der Name des Geräts in Gladys; leer wird der auf der Steuerung eingestellte Name verwendet.
- Bis zu drei Steuerungen (zweiter und dritter Abschnitt).
- Aktualisierungsintervall: 30 Sekunden oder 1 Minute. Nach jedem Befehl wird die Steuerung außerdem sofort neu gelesen.
- Bewässerungsdauer eines Stationsschalters: wie lange eine Station bewässert, wenn du ihren Schalter in Gladys einschaltest (standardmäßig 10 Minuten). Die Steuerung stoppt sie am Ende selbst.
- Einheit der Durchflussimpulsrate: Liter oder US-Gallonen, die Einheit des Volumens pro Impuls aus den OpenSprinkler-Optionen (nur mit Durchflusssensor).
- Sprache der Funktionsnamen: die Namen der Funktionen beim Hinzufügen des Geräts und die Texte der Szenen-Ereignisse.
Nutze dann Verbindung testen: Die Integration liest jede Steuerung und meldet Firmware, Stationen und Programme. Öffne zum Schluss den Reiter Erkennung und füge die Steuerung zu Gladys hinzu.
Geräte und Funktionen
Ein Gerät pro Steuerung, erkannt an ihrer MAC-Adresse: Eine neue IP-Adresse oder ein anderer Platz in der Konfiguration behält das Gerät und seinen Verlauf.
| Funktion | Typ | Was sie tut |
|---|---|---|
| Steuerung aktiv | Schalter | Aktiviert oder deaktiviert den Betrieb der Steuerung (kein Programm läuft, solange sie deaktiviert ist). |
| Ein Schalter pro Station, mit dem Namen der Station | Schalter | Ein, solange die Station bewässert. Einschalten bewässert die Station für die eingestellte Dauer; Ausschalten stoppt sie. |
| Programm: … | Schalter | Ein, solange das Programm aktiv ist. Ausschalten deaktiviert das Programm (es läuft nicht mehr nach seinem Zeitplan). |
| Bewässerungsstufe | Pegel (%) | Der Bewässerungsprozentsatz der Programme (0 bis 250 %), von der Wetteranpassung oder von Hand eingestellt. |
| Regenpause | Dauer (Stunden) | Die Stunden, bis die Programme wieder laufen, 0 ohne Regenpause. |
| Regensensor | Regensensor | Nur mit einem Regensensor an einem Sensoreingang: 1, wenn Regen erkannt wird. |
| Bodensensor (feucht) | Eingang | Nur mit einem Bodensensor: 1, wenn der Boden feucht ist. |
| Wasserdurchfluss | Durchfluss (m³/h) | Nur mit einem Durchflusssensor: der aktuelle Durchfluss. |
| Wasserzähler | Volumen (Liter) | Nur mit einem Durchflusssensor: das verbrauchte Wasser seit dem Hinzufügen des Geräts. Die Steuerung zählt die Impulse seit dem Einschalten; die Integration addiert sie über ihre Neustarts hinweg und speichert die Summe in /data. |
Die Namen werden beim Hinzufügen des Geräts festgelegt. Eine umbenannte Station, ein neues Programm oder ein später angeschlossener Sensor: Der Reiter Erkennung bietet Aktualisieren für das Gerät an.
Master-Stationen (Pumpe, Hauptventil) erscheinen wie die anderen und zeigen, wann sie laufen, lassen sich aber nicht allein starten: Die Steuerung öffnet sie mit den Stationen, die sie versorgen.
Dashboard-Widget
Füge das Widget OpenSprinkler zu einem Dashboard hinzu (wähle die Steuerung in seinen Einstellungen oder lass das Feld leer für die erste). Es zeigt:
- die Bewässerungsstufe, die Regenpause und den Durchfluss (mit Durchflusssensor) als Kacheln;
- den Zustand der Steuerung (Bereit, Bewässert, Pausiert, Deaktiviert, Regenpause), den Regensensor, wenn er Regen erkennt, und jede Station, die bewässert, mit ihrer Restzeit oder die in der Warteschlange wartet;
- vier Tasten: Bewässern… (Station und Dauer wählen), Programm… (ein Programm wählen, mit oder ohne Bewässerungsstufe), Alles stoppen (mit Bestätigung) und Regenpause… (eine Anzahl Stunden), die während einer Regenpause zu Regenpause beenden wird.
Szenen-Auslöser
- OpenSprinkler-Station fertig: Eine Station hat die Bewässerung beendet. Filter: die Steuerung und der Auslöser (manueller Start, Zeitplan eines Programms oder von Hand gestartetes Programm / Einmallauf). Variablen: Nummer und Name der Station, Bewässerungsdauer in Minuten, der Auslöser, der Name der Steuerung.
- OpenSprinkler nicht erreichbar: Die Steuerung antwortet nicht mehr im Netzwerk (zwei Lesungen hintereinander). Variablen: der Name der Steuerung und der Grund.
Szenen-Aktionen
- OpenSprinkler-Station bewässern: öffnet eine Station (Nummer 1 = die erste) für einige Minuten (1 bis 1080), nach den Stationen, die schon bewässern.
- OpenSprinkler-Bewässerung stoppen: stoppt alle Stationen, die bewässern oder warten.
- OpenSprinkler-Programm starten: startet ein Programm sofort (Nummer 1 = das erste), mit oder ohne Bewässerungsstufe. Was gerade bewässert, stoppt, und das Programm übernimmt.
- OpenSprinkler-Regenpause setzen: setzt die Programme für einige Stunden aus (0 bis 720; 0 beendet die Pause).
Szenen-Beispiele
- Regen im Anmarsch: Wenn deine Wetter-Integration eine Regenwarnung meldet, OpenSprinkler-Regenpause setzen auf 24 Stunden.
- Das Gemüsebeet vom Wandtablet aus bewässern: die Taste Bewässern… des Widgets oder eine Szene, die über eine Taste gestartet wird und OpenSprinkler-Station bewässern für 15 Minuten ausführt.
- Bewässerungsbericht: bei OpenSprinkler-Station fertig eine Nachricht „{{triggerEvent.data.station_name}} hat {{triggerEvent.data.duration_minutes}} min bewässert“ senden.
- Kinder im Garten: Wenn im Garten eine Anwesenheit erkannt wird, OpenSprinkler-Bewässerung stoppen.
- Steuerung offline: bei OpenSprinkler nicht erreichbar eine Benachrichtigung senden.
Fehlerbehebung
- „antwortet nicht“: Prüfe Adresse und Port (öffne
http://<Adresse>im Browser: Die OpenSprinkler-Seite muss erscheinen). Die Integration läuft in einem Docker-Container: Die Steuerung muss vom Gladys-Server aus erreichbar sein. - „Passwort abgelehnt“: Gib das Passwort der OpenSprinkler-App erneut ein (Groß- und Kleinschreibung zählt). Die Werkseinstellung ist
opendoor. - „kein OpenSprinkler unter dieser Adresse“: Unter dieser Adresse antwortet etwas, aber nicht die OpenSprinkler-API (ein anderes Gerät, eine Webseite).
- Ein Stationsschalter schaltet sich von selbst wieder aus: Die Steuerung hat den Start abgelehnt. Eine Station, die schon bewässert oder wartet, eine Master-Station oder eine deaktivierte Steuerung lassen sich nicht starten; die Fehlermeldung nennt den Grund.
- Mehr Details: Setze die Umgebungsvariable
LOG_LEVELin den Einstellungen der Integration aufdebug; die Protokolle zeigen dann jede Lesung. Das Passwort steht nie darin.
Grenzen
- Lesehäufigkeit und Last der Steuerung: Die Steuerung (ein ESP8266 im OpenSprinkler 2.3 / 3.x) bedient eine Anfrage nach der anderen. Die Integration liest sie alle 30 Sekunden oder jede Minute mit einer einzigen
/ja-Anfrage (fünf Anfragen nacheinander bei Firmwares vor 2.1.6), dazu eine Lesung nach jedem Befehl. Es wird kein Cloud-Dienst genutzt, also gibt es kein Kontingent; geh bitte nicht unter 30 Sekunden. - Stationen und Programme werden über ihre Nummer auf der Steuerung erkannt, die einzige Kennung, die die API liefert: Programme in der OpenSprinkler-App zu löschen oder umzusortieren verschiebt die Programmschalter (die Namen bleiben die vom Hinzufügen bis Aktualisieren).
- Ein von Hand gestartetes Programm läuft auf der Steuerung als „Einmallauf“ (run-once): Sein Schalter zeigt nur, ob es aktiv ist, und der Auslöser „Station fertig“ meldet es als von Hand gestartet.
- Der Auslöser Station fertig liest bei jeder Lesung den letzten beendeten Lauf der Steuerung: Wenn zwei Stationen zwischen zwei Lesungen fertig werden, wird nur die letzte gemeldet.
- Der Wasserzähler beginnt beim Hinzufügen des Geräts bei 0 und verliert das Wasser, das verbraucht wird, während die Integration über einen Neustart der Steuerung hinweg gestoppt ist.
- Erweiterte Sensoren (analoge Sensoren der Firmware 2.2.1), Sonderstationen und das Bearbeiten von Programmen werden nicht unterstützt: Nutze dafür die OpenSprinkler-App.
- Die Integration spricht HTTP mit der Steuerung, wie die offizielle App im lokalen Netzwerk; der Passwort-Hash läuft unverschlüsselt durch das lokale Netzwerk.
Konfigurationseinstellungen
Diese Einstellungen fragt OpenSprinkler in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Dein OpenSprinkler | section | Nein | OpenSprinkler oder OpenSprinkler Pi mit Firmware 2.x in deinem lokalen Netzwerk. Bis zu drei Steuerungen. |
| Adresse | string | Ja | IP-Adresse oder Name der Steuerung, mit :Port, falls nicht 80 (OpenSprinkler Pi: oft :8080). |
| Gerätepasswort | secret | Nein | Das Passwort der OpenSprinkler-App (Werkseinstellung: opendoor). Wird als MD5-Hash an die Steuerung gesendet. |
| Name | string | Nein | Name des Geräts in Gladys. Leer: der auf der Steuerung eingestellte Name. |
| Zweiter OpenSprinkler (optional) | section | Nein | Dieselben Felder, für eine weitere Steuerung in deinem Netzwerk. |
| Adresse | string | Nein | IP-Adresse oder Name der Steuerung, mit :Port, falls nicht 80 (OpenSprinkler Pi: oft :8080). |
| Gerätepasswort | secret | Nein | Das Passwort der OpenSprinkler-App (Werkseinstellung: opendoor). Wird als MD5-Hash an die Steuerung gesendet. |
| Name | string | Nein | Name des Geräts in Gladys. Leer: der auf der Steuerung eingestellte Name. |
| Dritter OpenSprinkler (optional) | section | Nein | Dieselben Felder, für eine weitere Steuerung in deinem Netzwerk. |
| Adresse | string | Nein | IP-Adresse oder Name der Steuerung, mit :Port, falls nicht 80 (OpenSprinkler Pi: oft :8080). |
| Gerätepasswort | secret | Nein | Das Passwort der OpenSprinkler-App (Werkseinstellung: opendoor). Wird als MD5-Hash an die Steuerung gesendet. |
| Name | string | Nein | Name des Geräts in Gladys. Leer: der auf der Steuerung eingestellte Name. |
| Optionen | section | Nein | |
| Aktualisierungsintervall | select | Nein | Wie oft die Steuerungen gelesen werden. Nach jedem Befehl werden sie sofort neu gelesen. |
| Bewässerungsdauer eines Stationsschalters | select | Nein | Eine Station in Gladys einzuschalten bewässert sie so lange, dann stoppt die Steuerung sie. |
| Einheit der Durchflussimpulsrate | select | Nein | Nur mit Durchflusssensor: die Einheit des Volumens pro Impuls aus den OpenSprinkler-Optionen. |
| Sprache der Funktionsnamen | select | Nein | Namen der Funktionen beim Hinzufügen eines Geräts und Texte der Szenen-Ereignisse. |
So installierst du OpenSprinkler in Gladys
- Öffne in Gladys Integrationen: OpenSprinkler erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-opensprinkler:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-opensprinkler.
OpenSprinkler benötigt Gladys >=5.2.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
OpenSprinkler ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation