Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Hydrawise RESTful API

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Hydrawise RESTful API

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

      Hallo,

      ich habe als Steuergerät für meine Bewässerung ein Hydrawise HC12. Ich möchte dieses nun in meine IOBroker Oberfläche einbinden und habe mir einen API Key für die Restful API von Hydrawise generiert. Laut Doku sollte ich ja nun über den Link:

      https://api.hydrawise.com/api/v1/setzone.php?action=run&api_key=meinkey&period_id=999&relay_id=5&custom=30
      (meinen Key habe ich natürlich eingesetzt ;-))

      Ventil 5 für 30 Sekunden laufen lassen (als Test).

      Habs im Firefox abgesetzt. Es kommt eine weiße Seite zurück und Ventil 5 macht nichts. Im Chrome kommt ein 500er.

      1. Habe ich einen Denkfehler und hat jemand aktuelle Erfahrungen mit der API?

      2. Wie kann ich den API-Call korrekt absetzen, wenn nicht über den Browser?

      3. Kennt jemand eine andere Alternative mit dem Steuergerät zu kommunizieren?

      Danke im Voraus!

      I 1 Reply Last reply Reply Quote 0
      • I
        intruder7 @graubi77 last edited by

        @graubi77 die relayid ist nicht gleich der relay Nummer.
        am besten hiermit die Relay ID auslesen
        [Übersicht](https://api.hydrawise.com/api/v1/statusschedule.php?api_key=dein API Key)

        Kusselin 1 Reply Last reply Reply Quote 0
        • Kusselin
          Kusselin @intruder7 last edited by Kusselin

          @intruder7 hi, wenn ich deinen Link nehme udn meine API einsetze bekomme ich eine json Antwort...

          Frage: Was kann ich damit jetzt machen? Bin noch nicht so in der Materie udn muss viel fragen...
          Gruss

          und...hat jemand auch eine Hydrawise in iobroker eingebunden? Wenn ja kann derjenige hier mal screenshots posten udn mir erklären wie ich das auch umsetzen kann mit meiner?

          I 1 Reply Last reply Reply Quote 0
          • I
            intruder7 @Kusselin last edited by

            @kusselin
            Hier dazu mein Skript

            API eintragen bei den xxxxx
            und hydrawise wird regelmäßig abgefragt und die Datenpunkte gefüllt

            const praefix = "0_userdata.0.Bewaesserung.Hunter_Hydrawise."; //Grundpfad
            
            
            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(praefix + 'Costumer_JSON') == false) {
                    createState(praefix + 'Costumer_JSON');
                }
                setState(praefix + 'Costumer_JSON', JSON.stringify(data), true);
            
                if (existsState(praefix + 'user_lastcontact') == false) {
                    createState(praefix + 'user_lastcontact');
                }
                setState(praefix + 'user_lastcontact', data.controllers[0].last_contact, true);
            
                if (existsState(praefix + 'user_status') == false) {
                    createState(praefix + 'user_status');
                }
                setState(praefix + 'user_status', data.controllers[0].status, true);
            }
            
            function CreateRelays(data) {
                if (existsState(praefix + 'Relays_JSON') == false) {
                    createState(praefix + 'Relays_JSON');
                }
                setState(praefix + 'Relays_JSON', JSON.stringify(data), true);
            
                if ("undefined" !== typeof data.relays) {
                    //log(data.relays);
            
                    var i;
                    for (i = 0; i < data.relays.length; i++) {
            
                        if (existsState(praefix + 'relay.' + i + '.id') == false) {
                            createState(praefix + 'relay.' + i + '.id');
                        }
                        setState(praefix + 'relay.' + i + '.id', data.relays[i].relay_id, true);
            
                        if (existsState(praefix + 'relay.' + i + '.time') == false) {
                            createState(praefix + 'relay.' + i + '.time');
                        }
                        setState(praefix + 'relay.' + i + '.time', data.relays[i].time, true);
            
                        if (existsState(praefix + 'relay.' + i + '.run') == false) {
                            createState(praefix + 'relay.' + i + '.run');
                        }
                        setState(praefix + 'relay.' + i + '.run', data.relays[i].run, true);
            
                        if (existsState(praefix + 'relay.' + i + '.run_min') == false) {
                            createState(praefix + 'relay.' + i + '.run_min');
                        }
                        setState(praefix + 'relay.' + i + '.run_min', Math.round(data.relays[i].run / 60), true);
            
                        if (existsState(praefix + 'relay.' + i + '.name') == false) {
                            createState(praefix + 'relay.' + i + '.name');
                        }
                        setState(praefix + 'relay.' + i + '.name', data.relays[i].name, true);
            
                        if (existsState(praefix + 'relay.' + i + '.period') == false) {
                            createState(praefix + 'relay.' + i + '.period');
                        }
                        setState(praefix + 'relay.' + i + '.period', data.relays[i].period, true);
            
                        if (existsState(praefix + 'relay.' + i + '.timestr') == false) {
                            createState(praefix + 'relay.' + i + '.timestr');
                        }
                        setState(praefix + 'relay.' + i + '.timestr', data.relays[i].timestr, true);
            
                        if (existsState(praefix + 'relay.' + i + '.stop') == false) {
                            createState(praefix + 'relay.' + i + '.stop');
                        }
                        setState(praefix + 'relay.' + i + '.stop', data.relays[i].stop, true);
            
                        if (existsState(praefix + 'relay.' + i + '.type') == false) {
                            createState(praefix + 'relay.' + i + '.type');
                        }
                        setState(praefix + 'relay.' + i + '.type', data.relays[i].type, true);
                    }
            
                    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
            • Kusselin
              Kusselin last edited by

              @intruder7 Hi, hab ich gemacht.. DP werden auch befällt... wie kann ich sowas jetzt noch grafisch in VIS zb darstellen?
              Gruss

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

              Support us

              ioBroker
              Community Adapters
              Donate

              860
              Online

              31.6k
              Users

              79.5k
              Topics

              1.3m
              Posts

              bewässerung hunter hydrawise
              3
              5
              462
              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