Smarte Bewässerungssteuerung mit dem Orbit B-hyve Ventil und FHEM

Begonnen von FreddieK, 10 Juli 2020, 20:22:44

Vorheriges Thema - Nächstes Thema

FreddieK

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.

offebaescher

Hi FreddieK,
danke für dein Modul. Ich bin auch daran interessiert diese Bhyve Ventile bei mir einzusetzen aus den gleichen Überlegungen die du angestellt hattest in deiner Auflistung der Optionen 1-4. Auch habe ich keinen Strom verlegt im Garten um irgendwelche 24V Ventile anzusteuern. Solarbetriebene Lösungen wie ich sie etwa bei Myio gefunden habe (https://miyo.garden/collections/alle-produkte), sind sehr vielversprechend, aber auch hier sehe ich keine API und der Preis pro Ventil ist auch sehr knackig.

Bislang habe ich das Gardena Pipeline System und manuelle Regulierventile, dann Wassersteckdosen an denen auch Microdrip hängt. Bevor ich 200 Meter Kabel lege für 24V Ventile finde ich diese B-hyve Ventile eigentlich ganz passend.

Wie ist bei dir nun so 1 Jahr später die Bilanz? Taugen die Geräte was, haben die eine Saison / den Winter überlebt? Und hast du an dem Modul zwischenzeitlich noch weitergearbeitet?

Reicht zum Start also so ein Orbit B-hyve 94990 und der B-hyve Hub, damit das mit Wifi funktioniert?

Danke für eine Rückmeldung und viele Grüße aus Offenbach

Der Offebaescher

FreddieK

Hallo Offebaescher,

freut mich, dass ich dir bei deinen Überlegungen vielleicht ein Stück weiterhelfen kann.

Ich hatte das B-hyve-Ventil die ganze letzte Saison im Einsatz und bin sehr zufrieden. Das Ventil braucht nur zwei AA-Batterien, die zum Ende der Saison (bei 2 mal 20 Minuten Sprengen am Tag) noch zu ca. 80% geladen waren. Am Ende des Sommers habe ich das Ventil dann zum Frostschutz reingenommen und witterungsbedingt bislang noch nicht wieder in Betrieb genommen.

Die folgenden Komponenten habe ich im Einsatz:
-Orbit B-hyve 94995 Hose Tap
-Orbit B-hyve with European Transformer WiFi-Hub

Bitte beachte, dass die Verbindung zwischen dem Ventil und dem Hub über Bluetooth erfolgt. Das heißt, die Distanz sollte nicht zu groß sein. Bei mir ist das Ventil am Wasserhahn an der Hauswand und direkt im Raum hinter der Wand der Hub, welcher dann im Wlan eingebunden ist.

Das Modul an sich habe ich noch nicht weiter entwickelt, da mir der Funktionsumfang soweit erstmal ausreicht.

Beste Grüße,
FreddieK

m311331

Hallo FreddieK,

Ich wollte dein Modul mal testen, aber anscheinend benögt es noch AnyEvent/WebSocket/Client.pm
finde diese nicht in fhem, kann mir da einer helfen ?

Error:Modul 98_Bhyve deactivated:
Can't locate AnyEvent/WebSocket/Client.pm in @INC (you may need to install the AnyEvent::WebSocket::Client module) (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at ./FHEM/98_Bhyve.pm line 33.
BEGIN failed--compilation aborted at ./FHEM/98_Bhyve.pm line 33.


Gruß m

FreddieK

Hallo m,

ich hatte mir das benötigte Modul im Internet heruntergeladen. Ich glaube hier im Forum gibt es auch eine generelle Anleitung, wie man fehlende Module am besten nachinstallieren kann.

Beste Grüße,
Freddie

rufus999

Hallo zusammen,

ich habe grade dieses wunderschöne Modul gefunden und wollte es verwenden. Doch leider bekomme ich beim Device anlegen folgende Fehlermeldung:

2022.05.20 10:16:59 1: reload: Error:Modul 98_Bhyve deactivated:
Bareword "true" not allowed while "strict subs" in use at ./FHEM/98_Bhyve.pm line 244.
Bareword "true" not allowed while "strict subs" in use at ./FHEM/98_Bhyve.pm line 259.

2022.05.20 10:16:59 0: Bareword "true" not allowed while "strict subs" in use at ./FHEM/98_Bhyve.pm line 244.
Bareword "true" not allowed while "strict subs" in use at ./FHEM/98_Bhyve.pm line 259.


Kann mir jemand sagen was das Problem ist?

Vielen Dank im Voraus,

und viele Grüße

rufus999

FreddieK

Hi rufus999,

probiere mal bitte die beigefügte aktualisierte Version des Moduls.

Beste Grüße,
Freddie

rufus999

Hallo Freddie,

vielen Dank für deine Antwort. Ich teste Mal und melde mich
wieder.

Gruß rufus999

rufus999

Moin Freddie,

also ich habe getestet und es sieht schon mal besser aus als vorher. Ich konnte das device erstellen und mit einem Passwort versehen.
Danach habe ich eine "get Wasserventil update" nachgeschoben. Im screenshot kannst du sehen was er bekommen hat.

Als ich das device erstellte kamen noch folgende Meldungen im LOG:
2022.05.23 07:54:53 1: PERL WARNING: Subroutine Bhyve_Define redefined at ./FHEM/98_Bhyve.pm line 48.
2022.05.23 07:54:53 1: PERL WARNING: Subroutine Bhyve_Undef redefined at ./FHEM/98_Bhyve.pm line 63.
2022.05.23 07:54:53 1: PERL WARNING: Subroutine Bhyve_Get redefined at ./FHEM/98_Bhyve.pm line 68.
2022.05.23 07:54:53 1: PERL WARNING: Subroutine Bhyve_Set redefined at ./FHEM/98_Bhyve.pm line 109.
2022.05.23 07:54:53 1: PERL WARNING: Subroutine Bhyve_HttpRequest redefined at ./FHEM/98_Bhyve.pm line 152.
2022.05.23 07:54:53 1: PERL WARNING: Subroutine Bhyve_ParseHttpResponse redefined at ./FHEM/98_Bhyve.pm line 219.


Das eigentliche Problem ist jetzt dass ich das Ventil über "set Wasserventil startWatering Timer1 10" nicht einschalten kann.

Er schreibt dann in die Logs folgendes fhem-log:
2022.05.23 07:57:24 1: Wasserventil: ReadKeyValue could not find key passwd in file
2022.05.23 07:57:24 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/98_Bhyve.pm line 57.


device-log:
2022-05-23_08:16:40 Wasserventil startWatering Timer1 10

Das Ventil öffnet sich auch nicht. Über die Smartphone App funktioniert aber alles wunderbar.

Hast du noch eine Idee?

Gruß rufus999