Liebe FHEM-Community,
ich bin mittlerweile ein großer FHEM-Fan geworden und habe viel von den Einträgen in diesem Forum profitiert. Heute möchte ich gerne etwas zurückgeben, indem ich den folgenden Use-Case vorstelle:
Ausgangssituation/Anforderung:
Steuerung der Bewässerung über FHEM, kein Stromanschluss am Wasserhahn vorhanden, mittleres Budget
Lösungsoptionen:
1. Standardmagnetventil mit "FHEM-kompatiblem" Schalter -> kein Stromanschluss, keine batteriebetrieben Lösungen gefunden
2. Bewässerungscomputer von Gardena -> zu teuer
3. Nutzung eines alternativen Bewässerungscomputers -> kein FHEM Modul
4. Nutzung eines alternativen Bewässerungscomputers und Programmerung eines FHEM Moduls
Umsetzung
Nachdem Optionen 1.-3. ausschieden, habe ich mich für 4. entschieden und mir ein Orbit B-hyve Bewässerungsventil sowie ein passendes Gateway gekauft. Leider stellt der Hersteller keine offizielle API zur Verfügung. Es gibt aber eine WebApp, die man auslesen kann (siehe hierzu
https://community.home-assistant.io/t/integration-with-orbit-b-hyve-irrigation-system/39688/24). Auf dieser Basis habe ich dann das FHEM-Modul programmiert, welches ich anbei zur Verfügung stelle. Da es mein ersten Modul ist, bitte ich um Nachsicht, falls nicht alle Konventionen richtig eingehalten wurden.
Erläuterungen zum Modul
Die Initialisierung erfolgt über "define <devicename> Bhyve <B-hyve-User>". Dabei ist <B-hyve-User> der Benutzername, den man durch Registierung im B-hyve Dashboard erhält. Anschließend kann mit "set <devicename> password <password>" das Passwort des B-hyve Accounts hinterlegt werden. Über "get <devicename> Update" können sämtliche Informationen zum Bewässerungsventil abgerufen werden (im Moment nur das Nötigste programmiert). Über "set <devicename> startWatering x-y" wird das Ventil x für y Minuten geöffnet. Weitere noch nicht programmierte Informationsabrufe sind dann noch: getSprinklerTimerPrograms, getDeviceHistory, getZoneReports, getWateringEvents.
Technische Details
Die Authetifizierung erfolgt zunächst über einen POST-Request. Dieser liefert dann einen Token. Mit diesem Token können anschließend sämtliche Informationen per GET-Requests abgerufen werden. Um Befehle abzusetzen ist eine Websocket Verbindung erforderlich. Auch hier erfolgt die Authentifizierung über den zuvor erhaltenen Token.
Nutzung in FHEM
Ich habe das Modul mit einem eigenen Wettermodul im Einsatz, das mir die Niederschlagswerte (Vergangenheit und Prognose) liefert. Auf dieser Basis wird dann die automatische Bewässerung gesteuert.
Ich würde mich freuen, wenn ich jemanden weiterhelfen kann, der vor einer ähnlichen Herausforderung steht.