Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Hexagon

    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

    H
    • Profile
    • Following 0
    • Followers 1
    • Topics 0
    • Posts 8
    • Best 1
    • Groups 1

    Hexagon

    @Hexagon

    Starter

    1
    Reputation
    8
    Profile views
    8
    Posts
    1
    Followers
    0
    Following
    Joined Last Online

    Hexagon Follow
    Starter

    Best posts made by Hexagon

    • RE: Aqualink Pool Automation in iobroker integrieren

      @negalein

      genau, und darunter ebenfalls alles noch umbenennen wo sns_2 auftaucht.

      posted in Entwicklung
      H
      Hexagon

    Latest posts made by Hexagon

    • RE: Aqualink Pool Automation in iobroker integrieren

      @negalein

      genau, und darunter ebenfalls alles noch umbenennen wo sns_2 auftaucht.

      posted in Entwicklung
      H
      Hexagon
    • RE: Aqualink Pool Automation in iobroker integrieren

      @negalein

      Der Pfad in Zeile 120 stimmt nicht.
      Es gibt unter filter_pump kein "value" sondern nur "state" oder "type"

      Zudem hast du im Rest vom script alles auf "sns_2" belassen. sns_2 verwendest du bereits für ORP. Du willst aber jetzt den Status der Pumpe auslesen. Also => sns_2 in filter_pump umbenennen.

      posted in Entwicklung
      H
      Hexagon
    • RE: Aqualink Pool Automation in iobroker integrieren

      @negalein

      Schau dir die Werte im DP Pooldata an:
      0_userdata.0.Pool.Pooldata

      Dort sollten alle Daten ersichtlich sein:

      Beispiel Temperatur:

      "sns_3": {
                  "sensor_type": "Water temp",
                  "state": 1,
                  "value": 25
      
      posted in Entwicklung
      H
      Hexagon
    • RE: Aqualink Pool Automation in iobroker integrieren

      @negalein

      ORP Wert entspricht bereits dem Chlorinator

      Für PH Wert ist es genau das gleiche nur der Sensor 1 => sns_1:
      Die Kommastelle kannst du dann mit dem VIS Editor entsprechend setzen.

      // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
      let sourceObject = "0_userdata.0.Pool.Pooldata";
      // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
      let targetObject = "0_userdata.0.Pool.Pooldata_PH";
      // JSON-String aus ioBroker-Objekt abrufen
      getState(sourceObject, function (err, state) {
          if (err || !state || !state.val) {
              console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
              return;
          }
          try {
              // JSON-String in ein Objekt konvertieren
              let jsonObject = JSON.parse(state.val);
              
              // `sns_1` extrahieren
              let sns_1 = jsonObject.state.reported.equipment.swc_0.sns_1.value;
              if (sns_1) {
                  console.log("sns_1 extrahiert:", sns_1);
                  // sns_1 in das neue ioBroker-Objekt speichern
                  setState(targetObject, sns_1, true);
              } else {
                  console.log("Kein sns_1 gefunden!");
              }
          } catch (error) {
              console.log("Fehler beim Parsen des JSON-Strings:", error);
          }
      });
      

      Nach diesem Muster kannst du dir auch die Temp Werte bauen.

      posted in Entwicklung
      H
      Hexagon
    • RE: Aqualink Pool Automation in iobroker integrieren

      @negalein

      ok prima, jetzt kannst du mit entsprechenden Filterungen weitere Datenpunkte befüllen, je nachdem was du benötigst:

      Beispiel für ORP Werte:

      // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
      let sourceObject = "0_userdata.0.Pool.Pooldata";
      // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
      let targetObject = "0_userdata.0.Pool.Pooldata_ORP";
      // JSON-String aus ioBroker-Objekt abrufen
      getState(sourceObject, function (err, state) {
          if (err || !state || !state.val) {
              console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
              return;
          }
          try {
              // JSON-String in ein Objekt konvertieren
              let jsonObject = JSON.parse(state.val);
              
              // `sns_2` extrahieren
              let sns_2 = jsonObject.state.reported.equipment.swc_0.sns_2.value;
              if (sns_2) {
                  console.log("sns_2 extrahiert:", sns_2);
                  // sns_2 in das neue ioBroker-Objekt speichern
                  setState(targetObject, sns_2, true);
              } else {
                  console.log("Kein sns_2 gefunden!");
              }
          } catch (error) {
              console.log("Fehler beim Parsen des JSON-Strings:", error);
          }
      });
      
      
      posted in Entwicklung
      H
      Hexagon
    • RE: Aqualink Pool Automation in iobroker integrieren

      @negalein

      Zeile 29: Richtige bzw. eigene Serien Nr. verwendet ?

      posted in Entwicklung
      H
      Hexagon
    • RE: Aqualink Pool Automation in iobroker integrieren

      @negalein

      Alle DPs => Typ: "String" und Rolle: "State"
      Am besten alle DP in 0_userdata.0.xxxx vorab anlegen.

      posted in Entwicklung
      H
      Hexagon
    • RE: Aqualink Pool Automation in iobroker integrieren

      @qlink

      Besten Dank für die Info.
      Anhand dieser konnte ich per Javascript die Pool-Daten auslesen und im iobroker als object ablegen. Danach habe ich mit weiteren scripts die entsprechenden Daten ausgefiltert und diese ebenfalls in ein Object abgelegt.

      const axios = require('axios');
      // Daten für die POST-Anfrage
      const daten = {
          api_key: "EOOEMOW4YR6QNB11",
          email: "xxxxxxxxxxxx",
          password: "xxxxxxxxxxxx"
      };
      // Erste Anfrage zur Authentifizierung
      axios.post('https://prod.zodiac-io.com/users/v1/login', daten, {
          headers: {
              'Host': 'prod.zodiac-io.com',
              'accept': 'application/json',
              'Content-Type': 'application/json',
              'accept-encoding': 'gzip',
              'user-agent': 'okhttp/3.12.0'
          }
      }).then((response) => {
          setState('javascript.0.iAquaLink.IdToken', JSON.stringify(response.data), true);
          console.log('Daten erfolgreich in ioBroker gespeichert.');
          // Extrahieren des idTokens
          let jsonObject = response.data;
          let idToken = jsonObject.userPoolOAuth.IdToken;
          if (idToken) {
              console.log("idToken extrahiert:", idToken);
              setState('javascript.0.iAquaLink.IdToken_clean', idToken, true);
              // Zweite Anfrage unter Verwendung des idTokens
              const options = {
                  method: 'GET',
                  url: 'https://prod.zodiac-io.com/devices/v1/serialnumberxxxxxx/shadow',
                  headers: {
                      'Host': 'prod.zodiac-io.com',
                      'accept': 'application/json',
                      'authorization': idToken,
                      'accept-encoding': 'gzip',
                      'user-agent': 'okhttp/3.12.0'
                  }
              };
              return axios.request(options);
          } else {
              throw new Error("Kein idToken gefunden!");
          }
      }).then(response => {
          console.log(response.data);
          setState('0_userdata.0.Pool.Pooldata', response.data, true);
      }).catch(error => {
          console.error('Fehler:', error);
      });
      
      posted in Entwicklung
      H
      Hexagon
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo