Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Hydrawise (Bewässerungsseuerung)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Hydrawise (Bewässerungsseuerung)

    This topic has been deleted. Only users with topic management privileges can see it.
    • integer63
      integer63 last edited by

      Hallo zusammen, mit der Suche bin ich bisher nicht fündig geworden, daher meine Frage, ob sich schon jemand mit der Einbindung von Hydrawise beschäftigt (hat). Ich habe in einem anderen Forum etwas dazu gefunden: https://mediola.answerbase.com/2301313/ … ems-in-NEO

      Allerdings bin ich selber nicht in der Lage, einen Adapter dafür zu bauen 😞

      Ist bestimmt etwas exotisch, aber evtl. bin ich mit Hydrawise ja nicht ganz alleine ... 🙂

      Gruß

      Thomas

      1 Reply Last reply Reply Quote 0
      • M
        micha68 last edited by

        Hi!
        Leider kann ich keinen Adapter bauen, habe aber ein Skript zusammengewürfelt, dass die Daten aus der Api zieht. Leider gibt API1 nicht viel her - zb nicht die Wassermenge meines Sensors "Wasseruhr". Ich habe Hunter mal angemailt, ob es für API2 eine Doku gibt.

        schedule('* * * * *', function(){
        
        var url="https://app.hydrawise.com/api/v1/statusschedule.php?api_key=xxxx-xxxx-xxxx-xxxx"
        request({url : url}, function (error, response, body) {
                        CreateRelays(JSON.parse(body));
        });
        
        var url="https://app.hydrawise.com/api/v1/customerdetails.php?api_key=xxxx-xxxx-xxxx-xxxx"
        request({url : url}, function (error, response, body) {
                        CreateCustomer(JSON.parse(body));
        });
        
        })
        
        function CreateCustomer(data){
        //log(data.controllers);
        if (existsState('javascript.0.hydrawise.user_lastcontact')==false)
            {
            createState('javascript.0.hydrawise.user_lastcontact');
            }
            setState('javascript.0.hydrawise.user_lastcontact', data.controllers[0].last_contact );
        
        if (existsState('javascript.0.hydrawise.user_status')==false)
            {
            createState('javascript.0.hydrawise.user_status');
            }
            setState('javascript.0.hydrawise.user_status', data.controllers[0].status );
        }
        
        function CreateRelays(data){
         
        if ("undefined" !== typeof  data.relays){    
            //log(data.relays);
        
        var i;
            for (i = 0; i < data.relays.length; i++) 
        {
        
            if (existsState('javascript.0.hydrawise.relay'+i+'_id')==false)
            {
            createState('javascript.0.hydrawise.relay'+i+'_id');
            }
            setState('javascript.0.hydrawise.relay'+i+'_id', data.relays[i].relay_id );
        
            if (existsState('javascript.0.hydrawise.relay'+i+'_time')==false)
            {
            createState('javascript.0.hydrawise.relay'+i+'_time');
            }
            setState('javascript.0.hydrawise.relay'+i+'_time', data.relays[i].time );
        
            if (existsState('javascript.0.hydrawise.relay'+i+'_run')==false)
            {
            createState('javascript.0.hydrawise.relay'+i+'_run');
            }
            setState('javascript.0.hydrawise.relay'+i+'_run', data.relays[i].run );
        
            if (existsState('javascript.0.hydrawise.relay'+i+'_run_min')==false)
            {
            createState('javascript.0.hydrawise.relay'+i+'_run_min');
            }
            setState('javascript.0.hydrawise.relay'+i+'_run_min', Math.round(data.relays[i].run/60) );
        
            if (existsState('javascript.0.hydrawise.relay'+i+'_name')==false)
            {
            createState('javascript.0.hydrawise.relay'+i+'_name');
            }
            setState('javascript.0.hydrawise.relay'+i+'_name', data.relays[i].name );
        
            if (existsState('javascript.0.hydrawise.relay'+i+'_period')==false)
            {
            createState('javascript.0.hydrawise.relay'+i+'_period');
            }
            setState('javascript.0.hydrawise.relay'+i+'_period', data.relays[i].period );
        
            if (existsState('javascript.0.hydrawise.relay'+i+'_timestr')==false)
            {
            createState('javascript.0.hydrawise.relay'+i+'_timestr');
            }
            setState('javascript.0.hydrawise.relay'+i+'_timestr', data.relays[i].timestr );    
        }
          
        if ("undefined" !== typeof  data.sensors){    
        log (data.sensors);
        var i;
            for (i = 0; i < data.sensors.length; i++) 
        {
            //log(data.sensors);
        }
        }
        
        }
        else{console.warn('Response in JSON nicht gefunden ! ')}
         
        }
        
        1 Reply Last reply Reply Quote 0
        • integer63
          integer63 last edited by

          @micha68 Oh, ich hatte nicht erwartet, dass auf meinen Post vom Juni 2017 noch mal jemand reagieren würde 😳
          Ich habe dein Skript gleich mal ausprobiert und es füllt die Datenpunkte mit dem, was die Hydrawise API halt an Daten liefert. Ich hatte noch ein veraltetes Skript laufen, bei dem ursprünglich mal mehr Datenpunkte ausgelesen wurden, aber die API hat sich wohl zwischenzeitlich geändert und wurde abgespeckt ☹
          Kannst du mir sagen was für eine Zeitangabe hinter "period" steckt? Der Wert hat sich heute noch nicht geändert 🤔

          1 Reply Last reply Reply Quote 0
          • M
            micha68 last edited by micha68

            Hi!

            Period habe ich noch nicht heraus gefunden.
            Bei mir steht da 259200. Wenn man das herunter rechnet, kommt man auf 72h. Das hat aber nichts mit meinen Beregnungszeiten zu tun.

            Es gibt auch noch mehr Datenpunkte, wie zB Deinen Namen etc. - die habe ich aber aus Mangel an Bedarf nicht ausgewertet. Bei Bedarf kann ich das aber erweitern. Welche fehlen Dir denn?

            Wenn du die log-Anweisungen mal reinkommentierst im Skript (also die // weg machen) dann siehst du unten im log, was da an Daten von der API kommt.

            Es gibt auch ein pdf über die API1 von Hydrawise, das ist aber nicht aktuell.

            Was mich interessiert: Wie viele Ventile hast Du denn verbaut? Ich drei, und die werden auch ausgelesen. Sollten es mehr oder weniger sein, sollte das Script auch funktionieren (also egal ob 1 oder 2 oder sogar 12)

            Gruß
            Micha

            1 Reply Last reply Reply Quote 0
            • integer63
              integer63 last edited by

              @micha68 ja, bei mir steht da auch 259200 und auch ich kann damit (72h) so gar nichts anfangen. Früher gab es mal die Info, wie lange die letzte Bewässerung her war:
              2020-04-23 15_12_08-Window.png
              Aber der ist nicht mehr dabei. Wenn man einfach den HTTP Aufruf im Browser eingibt, sieht man ja auch, welche Daten zurückkommen.

              Ich habe insgesamt 6 Ventile (5 Kreise + Master) und alle 5 werden ausgelesen. Die fehlenden Daten wie Name, Seriennummer und Device ID habe ich schon reingebastelt, aber da sie diese Daten normalerweise nicht ändern (zumindest bei mir nicht), ist das recht sinn befreit 🙄

              Das es ein Master Ventil gibt, wird auch angezeigt:
              2020-04-23 15_24_42-Window.png

              1 Reply Last reply Reply Quote 0
              • integer63
                integer63 last edited by integer63

                @micha68 ... und ich habe hier noch die alte (v1.3) API Doku gefunden - da waren schon ein paar interessante Infos drin:
                2020-04-23 15_42_11-Window.png

                PS: und vieles mehr - hier ist einfach die ganze Doku:
                Hydrawise API.pdf

                Echt schade, dass das alles weg ist 😭

                M 1 Reply Last reply Reply Quote 0
                • M
                  micha68 @integer63 last edited by

                  @integer63

                  Ohja, die Daten wären super. Auch Wetter und so...schade

                  Ich hatte ja Hunter angefragt wegen API2, habe aber keine Antwort bisher...

                  Schaumerma...

                  1 Reply Last reply Reply Quote 0
                  • E
                    Erstam Developer last edited by

                    Hallo zusammen!

                    Da ich vor der gleichen Herausforderung stehe, habe ich auch nach der API2 gefragt, allerdings folgendeInfo erhalten: "The GraphQL API will not provide any more detail than the RestAPI, the only difference is that it allows for commercial connection to multiple controllers." Sieht also nicht gut aus.

                    Viele Grüße!

                    Marc

                    1 Reply Last reply Reply Quote 0
                    • M
                      micha68 last edited by

                      Hi!

                      Die gleiche Antwort habe ich vorhin auch bekommen.
                      Schade. Ich hatte die Hoffnung, da noch mehr Daten raus zu holen.

                      Könnte man die Website parsen? Ich weiß halt nicht, wie man da den Login per skript realisiert 😞

                      Gruß
                      Micha

                      1 Reply Last reply Reply Quote 0
                      • D
                        DSLMann last edited by

                        API2 ist wohl jetzt möglich ?
                        https://support.hydrawise.com/hc/en-us/articles/360008965753-Account-API-Information

                        1 Reply Last reply Reply Quote 0
                        • MassiveAttack
                          MassiveAttack last edited by

                          tut sich da noch was? wäre auch interessant für mich...

                          1 Reply Last reply Reply Quote 0
                          • S
                            sunny9999 last edited by

                            Wäre auch noch daran interessiert, die Bewässerungssaison naht und wäre schön meine Hydrawise in den IO zu integrieren...
                            Ist da noch jemand dran bzw. hat da etwas am laufen ?

                            1 Reply Last reply Reply Quote 0
                            • Q
                              qwertz last edited by

                              Hi Micha !

                              Das Skript läuft mit meinem PRO-HC12 und holt den Relaystatus. Besten Dank !

                              Steuern kann man mit dem Skript nicht, richtig ?

                              Das klappt bei mir manuell über einen PHP-Aufruf gut, z.B.: https://api.hydrawise.com/api/v1/setzone.php?action=run&api_key=meinKEY&period_id=999&relay_id=3004643&custom=120

                              Wenn ich die Lese-JSON im Browser aufrufe bekomme ich noch mehr Daten zu meinen Sensoren (Hunter Wasserzähler und Hunter Regensensor). Kann bei Bedarf hier die JSON-Daten zur Verfügung stellen, wenn jemand Muße hat, die in die Abfrage einzubauen.

                              Bildschirmfoto 2021-02-23 um 16.06.57.png Bildschirmfoto 2021-02-23 um 16.06.57.png

                              Besten Gruß,
                              Sebastian

                              M 1 Reply Last reply Reply Quote 0
                              • J
                                Janne16 last edited by

                                So wie ich es in der Beschreibung lese, sollte es gehen... der Wert ist allerdings im obigen Script noch nicht definiert.

                                Jaywalker 1 Reply Last reply Reply Quote 0
                                • Jaywalker
                                  Jaywalker @Janne16 last edited by Jaywalker

                                  @janne16 Moin zusammen, ich bin als Autor ganz neu hier. Vergebt mir, wenn ich noch manches suchen muss, aber ich freue mich, wenn ich der Community endlich mal was zurückgeben kann 😊 Mitgelesen (und abgeschrieben) habe ich schon sooft 😂

                                  ich hab das Skript von Micha68 oben ergänzt bei mir und nun werden auch Sensordaten vom Regensensor abgerufen. Ich kann zwar mit den Daten noch nichts anfangen, habe auch noch keine Testberegnung durchgeführt um zu schauen, was sich ändert, aber ich wollte schonmal die Chance zum Testen geben:
                                  Im obigen Skript kann die Zeile 87 durch folgendes ersetzt werden:

                                      if (existsState('javascript.0.hydrawise.sensor'+i+'_input')==false)
                                      {
                                      createState('javascript.0.hydrawise.sensor'+i+'_input');
                                      }
                                      setState('javascript.0.hydrawise.sensor'+i+'_input', data.sensors[i].input );
                                  
                                      if (existsState('javascript.0.hydrawise.sensor'+i+'_mode')==false)
                                      {
                                      createState('javascript.0.hydrawise.sensor'+i+'_mode');
                                      }
                                      setState('javascript.0.hydrawise.sensor'+i+'_mode', data.sensors[i].mode );
                                  
                                      if (existsState('javascript.0.hydrawise.sensor'+i+'_timer')==false)
                                      {
                                      createState('javascript.0.hydrawise.sensor'+i+'_timer');
                                      }
                                      setState('javascript.0.hydrawise.sensor'+i+'_timer', data.sensors[i].timer );
                                  
                                      ```
                                  if (existsState('javascript.0.hydrawise.sensor'+i+'_offtimer')==false)
                                      {
                                      createState('javascript.0.hydrawise.sensor'+i+'_offtimer');
                                      }
                                      setState('javascript.0.hydrawise.sensor'+i+'_offtimer', data.sensors[i].offtimer );
                                  

                                  PS: ich verstehe nicht, warum, aber ich musste einmal den Hydrawise-Objektbaum unterhalb des Javaskript-Ordners löschen und dann wurde alles inkl. Sensordaten neu aufgebaut.
                                  PS2: ich habe einen Regensensor, ich weiß nicht, ob es weitere Sensoren gibt bzw. welche Art und welche Parameter diese dann haben. Bei Qwertz sieht es aus, als gibt es noch einen Parameter "Rate" für den Sensor 0. Dafür müsste es reichen, wenn diese drei Zeilen ergänzt werden. Das kann ich aber nicht testen (Sensoren, die diesen Parameter nicht haben, behalten dort Wert=(null) ) :

                                    if (existsState('javascript.0.hydrawise.sensor'+i+'_rate')==false)
                                      {
                                      createState('javascript.0.hydrawise.sensor'+i+'_rate');
                                      }
                                      setState('javascript.0.hydrawise.sensor'+i+'_rate', data.sensors[i].rate );
                                  

                                  Gruß
                                  Jaywalker

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mpenno @qwertz last edited by

                                    Hi @qwertz ,

                                    Ich hätte Interesse an Deine Abfrage, da ich auch einen Wasserzähler angeschlossen habe.

                                    Viele Grüße
                                    Michael

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate
                                    FAQ Cloud / IOT
                                    HowTo: Node.js-Update
                                    HowTo: Backup/Restore
                                    Downloads
                                    BLOG

                                    433
                                    Online

                                    31.9k
                                    Users

                                    80.2k
                                    Topics

                                    1.3m
                                    Posts

                                    10
                                    16
                                    4307
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo