Hunter Hydrawise - Bewässerungssystem

Begonnen von omnior, 11 Juni 2018, 14:08:16

Vorheriges Thema - Nächstes Thema

omnior

Die Hydrawise Controller von Hunter sind ja über eine API (https://support.hydrawise.com/hc/en-us/article_attachments/205632298/Hydrawise_API.pdf) ansprechbar. Ich würde diese gerne in FHEM anbinden, vielleicht kann mir einer der Erfahreneren von Euch einen Anstoß geben wie man die Sache am besten anfängt?

rudolfkoenig

Vermutlich ist das ein Fall fuer HTTPMOD

omnior

Ja damit geht auf jeden Fall was. Wäre somit die Empfehlung (auch weil die Zielgruppe vermutlich recht klein) kein Modul oder sowas zu bauen?

rudolfkoenig

Du kannst gerne auch ein Modul bauen, dann wuerde ich es auf HttpUtils_NonblockingGet aufbauen. Je nach Zeit und Lust :)

omnior

Ok, ich schau mir das mal an. Dachte vielleicht gibt es außer dem Wiki noch irgendeine andere Hilfe für das Schreiben des "ersten" Moduls  ;)

Gerhard

Hallo omnior,

ich hatte so ein Modul 70_HYDRAWISE.pm angefangen zu schreiben, aber
aus Zeitgründe musste ich es bis Herbst zurückstellen.

Wenn du lust hast kannst du weitermachen.

Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

Gerhard

Hallo omnior,

ist das für dich brauchbar, wolltest du so etwas umsetzten?

Wir könnte es auch zusammen umsetzen?!
Was hältst du davon?

Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

xasher

Hallo zusammen,

auch wenn es schon etwas älter hier ist. Ich finde es voll toll, dass es ein Ansatz für Hunter-Systeme gibt. Vermutlich passiert hier aber gerade wenig. Ich konnte eine Verbindung herstellen, allerdings steige ich noch nicht ganz durch, da immer "unknown argument" etc. kommt.
Gibt es noch die API Doku von oben irgendwo. Der Link scheint nicht mehr aktuell zu sein.

Grüße,
Alex

Tobias

das sind ja ordentliche Preise ...
aber sicherlich interessant für Leute die nicht basteln wollen.

Für ein bischen (nicht viel) Bastelinteresse kann ich folgendes Projekt empfehlen:
https://github.com/tobiasfaust/ESP8266_PumpControl
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

xasher

Hi,

mir gings zunächst mal um die Doku, die es nicht mehr zum Download gibt.

Grüße und Danke,
Alex

clown

Die Doku ist mit einem Account verfügbar, aber du brauchst ja auch den API Key aus dem Hunter Controller.
Schick mir eine PN wenn Du noch Interesse hast.

teufelchen

Bald kommt bei mir auch eine Hunter Steuerung.  Wäre super wenn es irgendwann so ein Modul gibt. Mir fehlt leider das Wissen um soetwas aufzubauen.
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

samsmooth

#12
Aus gegebenem Anlass wärme ich den alten Fred mal wieder auf.

Habe gerade festgestellt, dass die Doku online ist und die API funktioniert.

https://support.hydrawise.com/hc/en-us/articles/360008965753-Account-API-Information

API-Dokumentation anbei.
RPi3B+, HM-MOD-RPI-PCB USB, nanoCUL868 CC1101, Z-Wave USB

ramses

hmmm, habe mich zu früh gefreut. Das ist ja eine Cloud Lösung was Hunter anbietet.
Das mag ich gar nicht...

Hat jemand andere Hersteller die WLAN oder ähnlicher anbieten, was man in FHEM einbinden könnte?
(abgesehen von Bastellösungen - das ist klar dass es funktioniert oder OpenSprinkler - das mag ich nicht so).

xasher

#14
Hallo zusammen,

ich habe mal das vorhandene Modul etwas angepasst auf die neue Hydrawise API.
Status immer noch beta!

Vielleicht kanns ja jemand brauchen.

Grüße,
Alex

99schneider

Ich kann es gebrauchen! Danke, funktioniert  :)

teufelchen

Danke, erster Test sieht sehr gut aus.
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

Gerhard

#17
Hallo xasher,

freut mich, dass du das Modul angepasst hast!!, nützt du selber Hydrawiese?

Ich habe leider keine Zeit mehr zu programieren, aber es sind sowie ich weiss auch andere Interresenten.

Du könntest das Modul gerne übernehmen und einchecken, wenn es fertig ist.

Gerhard

P.S bitte API-Key unkenntlich machen!
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

xasher

Hallo Gerhard,

vielen Dank für deine Antwort. Ich denke, ich kann aktuell am Modul nichts mehr machen.
Für mich ist es so in Ordnung. Ich habe den Status Beta gelassen, falls du noch etwas machen willst - es ist ja im Wesentliche deine Arbeit

Selber verwende ich Hydrawise auch im Garten. Die Bewässerung fängt langsam wieder an. Ich habe es im TabletUI eingebaut für die Anzeige des nächsten Starts und einen manuellen Start.

Wie man ein Modul eincheckt weiß ich nicht - bin da ziemlich unerfahren.

Viele Grüße,
Alex

BM030

#19
Hi,

ich habe Euer Modul mal eingebaut und bekomme folgende Meldung im Log:
PERL WARNING: Use of uninitialized value $state in hash element at ./FHEM/70_HYDRAWISE.pm line 662.

die readings sehen so aus:

presence absent 2020-04-03 12:30:08
state                 2020-04-03 13:01:59


state hat also gar keinen Wert.

Fehlt mir noch was?

Mit Verbose5 erhalten ich noch folgende Meldung:
HYDRAWISE myHydrawise: called function HYDRAWISE_ReceiveCommand() rc: HASH(0x6a0377c) err:  data:

dannach kommen die ausgelesenen Daten, die man auch im Browser über die URL: https://app.hydrawise.com/api/v1/statusschedule.php?api_key= sieht

Gerhard

#20
Hallo xasher,

wie gesagt, ich habe momentan keine Zeit für Weierentwicklungen,
aber wenn das Modul stabil läuft, und vllt. noch Beispiele für FTUI und FUIP,
dann sollte es eingechekt werden als offizieles Modul über update werteilt werden.
Du könntest/solltest als Eigner des Moduls die Pflege, Erweiterungen, Doku übernehmen.
Es wäre für Alle von Vorteil!!

Gerhard

P.S. Zwecks Eicheken, hilft dir Rudi, er muss dir eh die Rechte vergeben,
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

xasher

Hallo BM030,

vielen Dank für deine Rückmeldung. Ich habe an einigen Punkten nachgearbeitet:

Zitat von: BM030 am 03 April 2020, 13:03:06
ich habe Euer Modul mal eingebaut und bekomme folgende Meldung im Log:
PERL WARNING: Use of uninitialized value $state in hash element at ./FHEM/70_HYDRAWISE.pm line 662.
Ja, da war noch eine nicht verwendete Subrutine. Die habe ich mal entfernt.

Zitat von: BM030 am 03 April 2020, 13:03:06
Mit Verbose5 erhalten ich noch folgende Meldung:
HYDRAWISE myHydrawise: called function HYDRAWISE_ReceiveCommand() rc: HASH(0x6a0377c) err:  data:

dannach kommen die ausgelesenen Daten, die man auch im Browser über die URL: https://app.hydrawise.com/api/v1/statusschedule.php?api_key= sieht
Prima, ist doch gut. Hinter err: (error) steht nichts, hinter data kommen die Daten.

Dein anderes Problem kann ich gerade nicht beantworten. Nimm bitte mal das neue Modul und sende mir, wenn du möchtest, eine PM mit der json-Ausgabe hinter Data. Die Dateninhalte kannst du verfremden. Dann werfe ich mal einen Blick darauf.

Viele Grüße,
Alex

BM030

Hallo Alex,

es werden alle Kreise angezeigt, Vielen Dank dafür.

Könntest Du mir Deinen Code für Tabletui zur Verfügung stellen?

xasher

Hallo BM030,

ja, den kannst du gerne haben. Ist nichts besonderes. Nur die Anzeige des nächsten Starts und einen manuellen Start:

<section>
<div class="big">Manuelle Bewässerung (10 Min)
</div>
<div style="display:inline-block;height:1px;width:80%;background-color:#0088CC;"></div>
<table>
<tr>
<td>
  &nbsp;
</td>
<td>
<div data-type="switch"
data-device="myHydrawise"
data-get="rl4_next"
data-get-on="Running"
data-get-off="^(?!Running).*$"
data-set=""
data-set-on="run 1049579 600"
data-set-off="stop 1049579"
data-icon="ai-beet"
data-background-icon="fa-circle-thin"
data-on-color="#0088CC"
data-off-color="#888"
data-on-background-color="#0088CC"
data-off-background-color="#3D4C66"
class="">
</div>
<div class="">Beet Parkplatz/Hecke
</div>
<div data-type="classchanger"
     data-device="myHydrawise"
     data-get="rl4_next"
     data-get-on="(.+)"
     data-get-off=""
     data-off-class="hide"
data-on-class="inline">
<div class="inline" style="color:#0088CC;">Nächste Ausführung:</div>
<div data-type="label"
data-device="myHydrawise"
data-get="rl4_next"
data-unit=""
data-color="#0088CC"
class="inline">
</div>
    </div>
</td>
<td>
<div data-type="switch"
data-device="myHydrawise"
data-get="rl3_next"
data-get-on="Running"
data-get-off="^(?!Running).*$"
data-set=""
data-set-on="run 1049571 600"
data-set-off="stop 1049571"
data-icon="ai-beet"
data-background-icon="fa-circle-thin"
data-on-color="#0088CC"
data-off-color="#888"
data-on-background-color="#0088CC"
data-off-background-color="#3D4C66"
class="">
</div>
<div class="">Rasen
</div>
<div data-type="classchanger"
     data-device="myHydrawise"
     data-get="rl3_next"
     data-get-on="(.+)"
     data-get-off=""
     data-off-class="hide"
data-on-class="inline">
<div class="inline" style="color:#0088CC;">Nächste Ausführung:
</div>
    <div data-type="label"
data-device="myHydrawise"
data-get="rl3_next"
data-unit=""
data-color="#0088CC"
class="inline">
    </div>
    </div>
</td>
<td>
<div data-type="switch"
data-device="myHydrawise"
data-get="rl2_next"
data-get-on="Running"
data-get-off="^(?!Running).*$"
data-set=""
data-set-on="run 1049566 600"
data-set-off="stop 1049566"
data-icon="ai-beet"
data-background-icon="fa-circle-thin"
data-on-color="#0088CC"
data-off-color="#888"
data-on-background-color="#0088CC"
data-off-background-color="#3D4C66"
class="">
</div>
<div class="">Cortenstahlbox
</div>
<div data-type="classchanger"
     data-device="myHydrawise"
     data-get="rl2_next"
     data-get-on="(.+)"
     data-get-off=""
     data-off-class="hide"
data-on-class="inline">
<div class="inline" style="color:#0088CC;">Nächste Ausführung:
</div>
    <div data-type="label"
data-device="myHydrawise"
data-get="rl2_next"
data-unit=""
data-color="#0088CC"
class="inline">
    </div>
    </div>
</td>
<td>
<div data-type="switch"
data-device="myHydrawise"
data-get="rl1_next"
data-get-on="Running"
data-get-off="^(?!Running).*$"
data-set=""
data-set-on="run 1049555 600"
data-set-off="stop 1049555"
data-icon="ai-beet"
data-background-icon="fa-circle-thin"
data-on-color="#0088CC"
data-off-color="#888"
data-on-background-color="#0088CC"
data-off-background-color="#3D4C66"
class="">
</div>
<div class="">Beet/Leuchten
</div>
<div data-type="classchanger"
     data-device="myHydrawise"
     data-get="rl1_next"
     data-get-on="(.+)"
     data-get-off=""
     data-off-class="hide"
data-on-class="inline">
<div class="inline" style="color:#0088CC;">Nächste Ausführung:
</div>
    <div data-type="label"
data-device="myHydrawise"
data-get="rl1_next"
data-unit=""
data-color="#0088CC"
class="inline">
    </div>
    </div>
</td>
<td>
  &nbsp;
</td>
</tr>

</table>
</section>


Grüße,
Alex

Gerhard

Hallo xasher,

läuft doch gut?!
welchen rasenmeher hast du?
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

xasher

Hallo Gerhard,

ja läuft wirklich gut. Ich habe einen worx landroid s500i. Bin mit dem Gerät halbswegs zufrieden. Manchmal macht er seine eigene Spritztouren und ich muss ihn abends wieder einfangen. Aber ist in Ordnung. Das Nachfolgemodell ist da bestimmt besser - das hat "Augen" vorne drin.

Mit Rudolf hatte ich auch Kontakt. Demnach muss ein erfahrener Programmierer der ersten Stunde drüberschauen und ich muss mich in die Voraussetzungen der Developer einlesen. Das mache ich dann nächste Woche mal.

Viele Grüße,
Alex

Gerhard

das ist gut so alex! (neue Leute braucht das Land!)

im Bereich Developers Corner aus FHEMWiki, findest du genug Material, was aber auch notwendig ist.
ich denke aber, dass Rudi dir alle wichtigne Quellen gennant hat. (werde ein Developer!)

Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

xasher

Hallo zusammen,

so, das Modul ist eingecheckt - schwere Geburt. Ich wurde aber gut unterstützt.
Sollte dann morgen vielleicht im update sein - wenn ich alles richtig gemacht habe.

Grüße,
Alex

Gerhard

Hallo Alex,

großen Dank, dass du das Modul übernohmen hast!!
Für den Rest einen großen Lob!!, weiter so.

Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

jocamel

Hi!
Habe alles soweit eingerichtet.
Ich habe 2 Steuerungen. Kann ich da auch die Ventile starten?
Ich habe es versucht mit set run "Name Steuerung" "Ventil-ID" "Zeit". Das funktionierte aber nicht

xasher

Hallo jocamel,

kannst du mir bitte ein paar Infos mehr geben. Schön wäre das Reading, das bei dir ausgegeben wird sowie dein genauer Befehl.
Eigentlich ist es vom Syntax andersrum: set "Name der Steuerung" run RelayID Zeit

Danke dir,
Alex

Sailor

Hallo xascher
Zitat von: xasher am 07 April 2020, 17:08:07
so, das Modul ist eingecheckt - schwere Geburt. Ich wurde aber gut unterstützt.
Sollte dann morgen vielleicht im update sein - wenn ich alles richtig gemacht habe.

Ist drin aber es ist als "fhem-Befehl"  gekennzeichnet und nicht als "Gerät"
Ändere mal im "pod" - Bereich "=item command" in "=item device"

Gruß
    Sailor
******************************
Man wird immer besser...

xasher

Hallo Sailor,

danke für den Hinweis. Ich werde das gleich ändern.

Grüße,
Alex

jpst

Hallo xasher,
ich bin gestern über das Modul gestolpert und hab's heute mal ausprobiert. Soweit so gut. Auch wenn die Frage etwas blöd klingt und nur um wirklich sicher zu sein:

- Das Modul arbeitet via API direkt mit dem Hydrawise Cloud-Service und nicht mit dem Steuercomputer von Hunter (?)  und ist damit eine Alternative zur Web-Applikation bzw. App von Hunter.

Ich werde das Modul mal laufen lassen und in einem FileLog protokollieren, was passiert. Das Steuern über das Modul werde ich mal nicht anfassen.

Danke für die Arbeit, Jean-Pierre

PS: Achtung Commandref Schreibfehler : Definition of the module

    define <name> HYDAWISE <API-KEY> <Interval>

...sollte wohl HYDRAWISE heissen.

xasher

Hall jpst,

danke dir für den Hinweis. Ja. Dei Computer ist mit Hunter connected. Das Modul ist die Umsetzung des API-Handbuches für FHEM.

Viel Erfolg.
Grüße,
Alex

jpst

Lieber Alex
Danke für die Bestätigung - hier meine ersten Beobachtungen. Da es momentan regnet, blockiert meine Wetterstation die Bewässerung. Ich habe die Abfrage des APIs deshalb auf 900/15 Minuten gestellt. Weiterhin habe ich die Attr des HYDRAWISE Devices auf:
event-min-interval.*:3600
event-on-change-reading .*
gesetzt. Ich hätte so erwartet, dass im LogFile des Devices (es werden alle Ereignisse .* protokolliert)
1. alle 15 Minuten das Reading ct1_last_contact erscheint
2. jede Stunde alle Readings protokolliert werden.
Im Event Monitor und auch im FileLog fehlt jedoch jeder Eintrag nach einer Stunde und alle 15 Minuten kommen total 7 Readings:
2 mal customer_id (einmal ohne Wert, einmal mit Wert)
2 mal cur-controller_id  (einmal ohne Wert, einmal mit Wert)
2 mal cur_controller_name (einmal ohne Wert, einmal mit Wert)
1 mal ct1_last_contact inkl. Wert

Habe ich Tomaten auf den Augen - was mache ich falsch?
Gruss, Jean-Pierre

xasher

Hallo Jean-Pierre,

ich denke nicht, dass du etwas falsch machst. Die zwei Werte habe ich bei mir noch nicht verändert - kann ich aber mal auch so machen.
Beschreib mir bitte nochmals dein Problem. Ist es, dass die Werte teilweise nicht kommen?
Das stimmt, die API liefert in diesen Bereichen manchmal ein leeres json. Das bekomme ich aber auch "nur" rein. Meistens ist es das nächstes Mal wieder gefüllt.


Viele Grüße,
Alex

xasher

Hallo Jean-Pierre,

ich glaub ich weiß was du meinst: Zwei Logeintrage zum selben Zeitstempel...
Lass mich das noch ewas untersuchen - melde mich dann.

Grüße,
Alex

xasher

Hallo Jean-Pierre,

ich habe die Logfunktion überarbeitet. Sollte dann morgen mit dem Update verteilt werden.
Schau nochmals drüber, dann können wir nochmals sprechen.

Viele Grüße,
Alex

jpst

Lieber Alex, danke - ich werde dann die neue Modulversion einspielen und testen. Gruss, JP

jpst

Lieber Alex

Das sieht soweit gut aus, auch bei den "event-min-interval" bewegt sich nun etwas. Ich muss das Log allerdings noch weiter beobachten... und es regnet weiterhin, also wird die Bewässerung durch den Sensor blockert.
Hierzu eine Frage: Wie hast Du die, über das REST API gelieferten Werte, ausgewählt? An meinem Controller hängen noch zwei Sensoren (Regensensor und Durchflussmesser), die nicht in den Readings auftauchen.

Gruss, JP

xasher

Hallo JP,

einen Regensensor habe ich auch. Allerdings sehe ich ihn so nicht in den API Werten.
Siehst du sie?

Gib mal das die URLs mit deinem API Key ein:


https://api.hydrawise.com/api/v1/statusschedule.php?api_key=XXX...
https://api.hydrawise.com/api/v1/customerdetails.php?api_key=XXX...


Grüße,
Alex

jpst

Lieber Alex,

Ich habe HTTPMOD mit dem Request für den "statusschedule.php" inkl. meinem API-Key:

define DEV_NAME HTTPMOD https://api.hydrawise.com/api/v1/statusschedule.php?api%20key=<API-Key> 60

gefüttert und bekomme das folgende json zurück:

{"time":1588259576,"nextpoll":60,"message":"","simRelays":1,"options":1,"master":6,"master_timer":0,"master_post_timer":0,"expanders":[],"sensors":[{"input":0,"type":3,"mode":0,"timer":0,"offtimer":0,"rate":5,"relays":[{"id":527991},{"id":527993},{"id":527998},{"id":528000}]},{"input":1,"type":1,"mode":1,"timer":0,"offtimer":0,"relays":[{"id":527991},{"id":527993},{"id":527998},{"id":528000}]}],"relays":[{"relay_id":527991,"time":1576800000,"type":110,"run":0,"relay":1,"name":"Tappeto lato es","period":259200,"timestr":""},{"relay_id":527993,"time":1576800000,"type":110,"run":0,"relay":2,"name":"Tappeto central","period":259200,"timestr":""},{"relay_id":527998,"time":1576800000,"type":110,"run":0,"relay":3,"name":"Tappeto lato ov","period":259200,"timestr":""},{"relay_id":528000,"time":1576800000,"type":110,"run":0,"relay":4,"name":"Goccia goccia","period":259200,"timestr":""}]}

Die Sensoren sind mit dabei ... bei HTTPMOD bekommst Du mit dem

attr jsonALLJSON 1

alle Readings einzeln ausfgelistet. Achtung, die Zonen wurden von einem Gärner aus dem Tessin eingerichtet und werden vom API nicht vollständig übertragen. Tappeto lato es = tappeto last est (Osten)...

Morgen geht's weiter.
Gruss, JP

jpst

Lieber Alex

Ich habe mal eine Liste aller Readings erstellt, welche von vom Device HYDRAWISE automatisch generiert werden. Diese habe ich versucht den Readings gegenüberzustellen, welche von HTTPMOD via statusschedule und customerdetails automatisch aus dem gelieferten JSON erzeugt werden. Ich hoffe, dass ich die von HYDRAWISE z.T gekürzten Reading-Bezeichnungen alle richtig zu den, via API gelieferten Readings, gemappt habe. Aus der Tabelle (CSV-Attachment) sollte ersichtlich sein, welche Readings durch das HYDRAWISE Device zusätzlich erzeugt werden und welche Readings des APIs im HYDRAWISE-Dev fehlen. Es kann ja schon sein, dass nicht alle vorhandenen API-Daten benötigt werden aber auf die Sensordaten könnte ich für die Überwachung nicht verzichten.

Gruss, JP

samsmooth

#44
Hallo. Ich beschäftige mich auch gerade wieder mit der API. Ich möchte die Gartenpumpe komplett vom Strom trennen, wenn der Regensensor geöffnet ist. Leider finde ich keinen Eintrag in der API bzw. Reading. Wird der Sensorstatus wirklich geliefert?

"message":"","simRelays":1,"options":1,"expanders":[],"sensors":[{"input":0,"type":1,"mode":1,"timer":0,"offtimer":0,"relays":

"relay_id":1362813,"time":1576800000,"type":110,"run":0,"relay":1,"name":"","period":259200,"timestr":""

Was haben diese Werte zu bedeuten?

Interessant wäre auch die Wetterprognose abfragen zu können, bzw. ob eine Bewässerung erfolgen wird - egal ob über Wettervorhersage oder Sensor.
RPi3B+, HM-MOD-RPI-PCB USB, nanoCUL868 CC1101, Z-Wave USB

jpst

Hallo

Ich verstehe Deinen Set-Up nicht wirklich ... meine bescheidene Hydrawise Anlage hat keine Pumpen, sondern nur Hunter-Ventile (5 Ventile für 4 Zonen und 1 Hauptventil), einen Hunter Durchflussmesser zur Ueberwachung der Wassermenge und einen HC 6 Steuercomputer. Der Steuercomputer ist an die Hydrawise-Cloud angebunden und die Cloud-Software hat ein API. Eine Dokumentation der Software des HC 6 Steuercomputers habe ich bisher nicht gefunden.

Das Cloud-API kann mit FHEM HTTPMOD oder mit dem speziellen FHEM HYDRAWISE Device angesteuert werden und liefert Daten (Readings) zurück. Mein Stand ist, dass via HTTPMOD Sensordaten zurückkommen aber (noch ?) nicht via dem HYDRAWISE Device. Die Interpretation der gelieferten Sensordaten ist mir allerdings bisher nicht wirlich gelungen und ich habe dies vorläufig aufgegeben. Der HC 6 hat in der Grundkonfiguration maximal 6 Bewässerungszonen und 2 Sensoreingänge. Diese Sensoreingänge können mit der Hydrawise Software unterschiedlich konfiguriert ein, in meinem Fall
1) als ein/aus Eingang für Bewässerung via Homematic Wetterstation und HM Funkrelais für Kurzschluss des HC 6 Eingangs. Eigentlich ist damit egal, woher die Daten für die Bewässerung ein/aus kommen aber in meinem Fall liefert der Regenmesser von Meteo-Schweiz in 3 km Entfernung (Luftlinie) keine guten Daten für meinen Rasen. Nätürlich lässt sich die Bewässerung auch via FHEM manuell steuern.
2) als Zähler für den Durchflussmesser, der ein/aus Signale liefert und via Umrechnung die verbrauchte Wassermenge liefert. Theoretisch müsste das Hunter-Hauptventil automatisch schliessen, wenn ein Wasserleck erkannt wird ... die verbrauchte Wassermenge lässt sich so pro Zone auf der Clound graphisch überwachen.
Diese individuelle und flexible Konfiguration der Sensoreingänge macht es nicht gerade einfach, ein fixfertiges FHEM-Device zu bauen. Möglicherweise können die Sensoreingänge via Hydrawise Cloud-Software auch gesetzt und für Steuerzwecke (Pumpensteuerung ?) verwendet werden.

Ich hoffe, dass diese Erklärungen nicht allzu viel Verwirrung stiften.
Jean-Pierre

samsmooth

#46
Danke dir. Ein bisschen hat's mich dann doch verwirrt, warum ich jetzt erst antworte...  ;D

Ich habe eine unterdruckgesteuerte Hauswasserwerkspumpe vor der Hydrawise und vor anderen per Gardena gesteuerten Ventilen sitzen.
Bewässerung erfolgt nachts, wenn der Börsenstrom günstig ist. ;)
Die Steuerung der Pumpe schalte ich mit einer DECT-Steckdose aus, wenn der Wetterbericht meint, dass mehr als 4 l/m2 Niederschlag fallen wird.

Zusätzlich möchte ich jetzt noch mit einfliessen lassen, ob die Hydrawise beregnen wird, bzw. ob der Regensensor(NC) der Hydrawise geöffnet ist.

Bislang verwende ich das Modul. Per HTTPMOD bekomme ich jetzt aber pro Zone auch die Dauer bis zur nächsten Beregnung in Sekunden. Bei geöffnetem Regensensor, bzw. wenn keine Beregnung geplant ist, liegt der Zeitpunkt der nächsten Beregnung bei +1576800000 Sek = 50 Jahren. :) Darüber werde ich jetzt ansetzen.

Edith: Hat gepasst! Lustigerweise war genau letzte Nacht laut DWD zu wenig Niederschlag zum Aussetzen. Die Hydrawise-API hat aufgrund des Regensensors aber die Pumpe pausiert.
RPi3B+, HM-MOD-RPI-PCB USB, nanoCUL868 CC1101, Z-Wave USB

Sailor

#47
Ein herzerfrischendes "Moin" vom achtern Diek vorweg!

Besteht eigentlich die Möglichkeit

a) den Zählerstand des Flow-Sensors aus der API zu lesen?
b) den aktiven Bewässerungskanal anzuzeigen?

Gruß
    Sailor
******************************
Man wird immer besser...

Phili

Hi!

Danke für das Modul. Es läuft super bei mir. Eine Frage: Gibt es die Möglichkeit den Bewässerungsstatus global abzufragen. Bei mir ist state immer ,,on" auch bei laufender Bewässerung. Die einzelnen Relais ändern ihre Zustände von ,,idle" auf ,,Running" wenn sie laufen. Ich habe mir über einen dummy und ein doif ein status dummy gebastelt der sich auf running stellt sobald einer meiner 6 Kreise auf ,,Running" steht. Der Hintergrund meiner Frage ist, dass ich mittels einer WLAN Steckdose meine Zisternenpumpe schalten möchte, sobald die Bewässerung läuft. Es funktioniert auch bis auf die Tatsache, dass das umschalten von Kreis zu Kreis dafür sorgt, dass kurzzeitig alle Relais wieder auf ,,idle" stehen und mein dummy entsprechend auf ,,idle" setzt und die Pumpe ausgeht. Sie geht danach direkt wieder an, weil der nächste Kreis wieder ein Relais auf ,,Running" stellt. Aber auf Dauer ist das glaube ich nicht cool, wenn die Pumpe in einem Zyklus 6-mal ein und aus geht. Über ein globales status reading, welches die gesamte Zeit über auf ,,Running" o.ä. steht wäre cool.

Hat jemand eine Idee?

Vg,
Philipp

teufelchen

@Phili:
Du kannst bei DoIf ein wait setzen.
Damit könntest Du eine kurzfristige Statusänderung puffern.
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

Phili

Zitat von: teufelchen am 05 April 2021, 14:56:28
@Phili:
Du kannst bei DoIf ein wait setzen.
Damit könntest Du eine kurzfristige Statusänderung puffern.

Mhh wir meinst du das genau? Über wait kann ich doch nur den setter im DOIF etwas rauszögern.

bbg41crew

Servus zusammen,

der Regensensor wäre über GraphQL wohl grundsätzlich auslesbar:

https://app.hydrawise.com/api/v2/graph/explore

Mit der Controller ID aus dem entsprechenden Hydrawise Fhem Device einfach folgenden Code eingeben:

{
  controller(controllerId: <ID hier einfügen>) {
    id
    name
    zones {
      id
      name
      scheduledRuns {
        nextRun {
          id
          startTime {
            value
          }
          duration
        }
      }

    }
    sensors {
      id
      name
      status {
        active
      }
    }
  }
}


Dann gibt die API unter anderem den Status der Sensoren zurück:

        {
          "id": XXXXX,
          "name": "Regensensor",
          "status": {
            "active": true
          }


Wenn der Regensensor keinen Regen detektiert springt active auf "null". Mein Idee war jetzt das ganze über ein HTTPMOD in FHEM zu integrieren. Ich scheitere aber schon dabei einen CURL-Befehl zu schreiben der mir Daten zurückliefert. Ist irgendjemand von euch hier schon weiter gekommen als ich?

Herzliche Grüße und Danke vorab für eure Antworten.



Sailor

Hallo xasher

Basierend auf meinen Erfahrungen würde ich sagen, dass Hunter/Hydrawise ihre API suboptimal "zusammengeschustert" hat.
Ernsthaft: Wie kann HYDRAWISE nur so viele Doppelnutzungen eines Parameters mit so vielen unterschiedlichen Fällen integrieren???

Aus diesem Grunde würde ich gerne folgende Änderungen in diesem Modul vorschlagen und dich fragen, ob du dies umsetzen kannst?

  • ) Einführung eines weiteren Readings mit dem Namen "_status" welches ausschließlich "running / idle" oder besser "on / off" als Werte hat und Aufschluss ueber das offene oder geschlossene Ventil gibt.
  • ) Das Reading "_next" soll nur den Zeitpunkt der naechsten Bewaesserung im fhem - Format "YYYY-MM-DD hh:mm:ss" beinhalten. Im Falle keiner hinterlegten Planungszeit sollte es leer "" bleiben. Das liesse sich mit der der Addition der UNIX-time Funktion "time()" und dem API Feld "time" sehr einfach realisieren.
  • ) Das Reading "_run_minutes" sollte aufgespalten werden und in zwei Readings uebergehen:
       "_run_minutes_planned"   welches die geplante Dauer in Minuten zur naechsten geplanten Bewaesserung anzeigt und leer "" bleiben, wenn keine Bewaesserung geplant ist.
       "_run_minutes_remaining" welches die noch verbleibenden Minuten der aktiven Bewaesserung anzeigt (_status = running oder on) bzw. 0 (_status = idle oder off)
  • ) Beide Readings unter c) wuerde ich mit sprintf auf 1 max 2 Stellen nach dem Komma kuerzen.
  • ) Eventuell kann man ueber unterschiedliche Abfrageintervalle nachdenken
       60s solange alle der Relays auf off.
        5s sobald eines der Relays auf on.

   
Erst damit kann man sinnvoll im ftui mit den Werten sinnvoll arbeiten.

Danke vorab das in Erwägung zu ziehen.

Gruß
    Sailor
******************************
Man wird immer besser...

Phili

Hi,

ich würde mich auch sehr über die vorgeschlagenen Ergänzungen freuen! :)

Vg,
Philipp

Michael

Moin

Auch ich würde mich sehr über die Ergänzungen freuen!

Habe den Hunter X2 401e Controller und das Rain-Clik Modul.
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

dyna

Moin xasher,

danke für das Model. Es leistet hier schon lange sehr gute Dienste.
Seit gestern bekomme ich für ct1_controller_message den Wert Unknown. Das Setup habe ich nicht geändert. Ein renewContext hat auch nichts geändert. Sonst scheint die Funktion weiter gegeben.

Grüße
Jens

dyna

#56
Moin Zusammen,

ich habe Hunter angeschrieben wegen des Wertes "Unknown" für den Controller-Status. Gemäß Aussage Hunter ist dieser Wert aktuell über die API nicht abrufbar.
Sie haben keine Aussage getroffen, ob und wenn ja, wann der Wert wieder verfügbar gemacht wird.

Grüße
Jens

is2late

#57
Hoppla,

wird gerade an dem Modul gearbeitet?
Vor meinen Augen hat das Reading next gerade den Inhalt "idle" verloren, scheinbar ersetzt durch die Startzeit in der App.
Pech, wenn man das "idle" als Bedingung genutzt hat...

Aktualisierung: Idle ist wieder da....

LG
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox