Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Hydrawise RESTful API

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Hydrawise RESTful API

Geplant Angeheftet Gesperrt Verschoben Entwicklung
hydrawisebewässerunghunter
5 Beiträge 3 Kommentatoren 609 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • graubi77G Offline
    graubi77G Offline
    graubi77
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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 Offline
      I Offline
      intruder7
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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 Offline
          I Offline
          intruder7
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • KusselinK Offline
            KusselinK Offline
            Kusselin
            schrieb am zuletzt editiert von
            #5

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

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            759

            Online

            32.4k

            Benutzer

            81.4k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe