Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Hydrawise RESTful API

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    209

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    7.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

Hydrawise RESTful API

Hydrawise RESTful API

Scheduled Pinned Locked Moved Entwicklung
hydrawisebewässerunghunter
5 Posts 3 Posters 609 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • graubi77G Offline
    graubi77G Offline
    graubi77
    wrote on last edited by
    #1

    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
    0
    • graubi77G graubi77

      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 Online
      I Online
      intruder7
      wrote on last edited by
      #2

      @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)

      KusselinK 1 Reply Last reply
      0
      • I intruder7

        @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)

        KusselinK Offline
        KusselinK Offline
        Kusselin
        wrote on last edited by Kusselin
        #3

        @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
        0
        • KusselinK 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 Online
          I Online
          intruder7
          wrote on last edited by
          #4

          @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
          0
          • KusselinK Offline
            KusselinK Offline
            Kusselin
            wrote on last edited by
            #5

            @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
            0
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            Support us

            ioBroker
            Community Adapters
            Donate

            103

            Online

            32.4k

            Users

            81.3k

            Topics

            1.3m

            Posts
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            ioBroker Community 2014-2025
            logo
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Recent
            • Tags
            • Unread 0
            • Categories
            • Unreplied
            • Popular
            • GitHub
            • Docu
            • Hilfe