Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Aqualink Pool Automation in iobroker integrieren

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

Aqualink Pool Automation in iobroker integrieren

Geplant Angeheftet Gesperrt Verschoben Entwicklung
38 Beiträge 9 Kommentatoren 4.4k Aufrufe 6 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.
  • H Hexagon

    @negalein

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

    NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    schrieb am zuletzt editiert von
    #23

    @hexagon

    ich bekomm einen Fehler.
    Ist nicht ersichtlich woher.

    javascript.0	14:59:13.580	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
    javascript.0	14:59:13.589	info	registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
    javascript.0	14:59:14.322	error	Fehler:
    

    ° Node.js: 20.17.0 NPM: 10.8.2
    ° Proxmox, Ubuntu 22.04.3 LTS
    ° Fixer ---> iob fix

    H 1 Antwort Letzte Antwort
    0
    • NegaleinN Negalein

      @hexagon

      ich bekomm einen Fehler.
      Ist nicht ersichtlich woher.

      javascript.0	14:59:13.580	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
      javascript.0	14:59:13.589	info	registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      javascript.0	14:59:14.322	error	Fehler:
      
      H Offline
      H Offline
      Hexagon
      schrieb am zuletzt editiert von
      #24

      @negalein

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

      NegaleinN 1 Antwort Letzte Antwort
      0
      • H Hexagon

        @negalein

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

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        schrieb am zuletzt editiert von
        #25

        @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

        ahhhhh, übersehn

        jetzt kommen Daten, aber mit Warn.

        DP werden befüllt

        javascript.0	15:35:55.780	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
        javascript.0	15:35:55.789	info	registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
        javascript.0	15:35:56.600	info	Daten erfolgreich in ioBroker gespeichert.
        javascript.0	15:35:56.600	info	idToken extrahiert:
        javascript.0	15:35:56.886	info	
        {
          state: {
            reported: {
              aws: [Object],
              vr: 'V85E4',
              vr_esp: 'V85E4',
              equipment: [Object],
              schedules: [Object]
            }
          },
          deviceId: 'JT22008430',
          ts: 1747056956
        }
        javascript.0	15:35:56.889	warn    at script.js.Pool.iAqualink:45:5
        

        ° Node.js: 20.17.0 NPM: 10.8.2
        ° Proxmox, Ubuntu 22.04.3 LTS
        ° Fixer ---> iob fix

        H 1 Antwort Letzte Antwort
        0
        • NegaleinN Negalein

          @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

          ahhhhh, übersehn

          jetzt kommen Daten, aber mit Warn.

          DP werden befüllt

          javascript.0	15:35:55.780	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
          javascript.0	15:35:55.789	info	registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
          javascript.0	15:35:56.600	info	Daten erfolgreich in ioBroker gespeichert.
          javascript.0	15:35:56.600	info	idToken extrahiert:
          javascript.0	15:35:56.886	info	
          {
            state: {
              reported: {
                aws: [Object],
                vr: 'V85E4',
                vr_esp: 'V85E4',
                equipment: [Object],
                schedules: [Object]
              }
            },
            deviceId: 'JT22008430',
            ts: 1747056956
          }
          javascript.0	15:35:56.889	warn    at script.js.Pool.iAqualink:45:5
          
          H Offline
          H Offline
          Hexagon
          schrieb am zuletzt editiert von Hexagon
          #26

          @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);
              }
          });
          
          
          NegaleinN 1 Antwort Letzte Antwort
          0
          • H Hexagon

            @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);
                }
            });
            
            
            NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            schrieb am zuletzt editiert von
            #27

            @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

            Danke

            hast du auch noch für pH, Chlorination und Temp?

            ° Node.js: 20.17.0 NPM: 10.8.2
            ° Proxmox, Ubuntu 22.04.3 LTS
            ° Fixer ---> iob fix

            H 1 Antwort Letzte Antwort
            0
            • NegaleinN Negalein

              @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

              Danke

              hast du auch noch für pH, Chlorination und Temp?

              H Offline
              H Offline
              Hexagon
              schrieb am zuletzt editiert von Hexagon
              #28

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

              NegaleinN 1 Antwort Letzte Antwort
              0
              • H Hexagon

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

                NegaleinN Offline
                NegaleinN Offline
                Negalein
                Global Moderator
                schrieb am zuletzt editiert von
                #29

                @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

                ORP Wert entspricht bereits dem Chlorinator

                schaut in der App so aus
                166845d5-78e8-42a5-939f-3e2c67a6a0d2-image.png

                Meinte Salzelektrolysegerät (Pumpe)

                sns_3 ist dann die Temp?

                oder wie finde ich das raus?

                ° Node.js: 20.17.0 NPM: 10.8.2
                ° Proxmox, Ubuntu 22.04.3 LTS
                ° Fixer ---> iob fix

                H 1 Antwort Letzte Antwort
                0
                • NegaleinN Negalein

                  @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

                  ORP Wert entspricht bereits dem Chlorinator

                  schaut in der App so aus
                  166845d5-78e8-42a5-939f-3e2c67a6a0d2-image.png

                  Meinte Salzelektrolysegerät (Pumpe)

                  sns_3 ist dann die Temp?

                  oder wie finde ich das raus?

                  H Offline
                  H Offline
                  Hexagon
                  schrieb am zuletzt editiert von Hexagon
                  #30

                  @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
                  
                  NegaleinN 3 Antworten Letzte Antwort
                  0
                  • H Hexagon

                    @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
                    
                    NegaleinN Offline
                    NegaleinN Offline
                    Negalein
                    Global Moderator
                    schrieb am zuletzt editiert von
                    #31

                    @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

                    Dort sollten alle Daten ersichtlich sein:

                    ahhh, ich war blind. hab nur die ersten paar zeilen gesehn.

                    und die gewünschten pack ich alle in das Script von dir?

                    ° Node.js: 20.17.0 NPM: 10.8.2
                    ° Proxmox, Ubuntu 22.04.3 LTS
                    ° Fixer ---> iob fix

                    1 Antwort Letzte Antwort
                    0
                    • H Hexagon

                      @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
                      
                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      schrieb am zuletzt editiert von
                      #32

                      @hexagon

                      die Pumpe scheint so auf:

                                "filter_pump": {
                                  "state": 1,
                                  "type": 1
                                },
                      

                      Binde ich die dann so ein?

                      // 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_Pumpe";
                      // 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.filter_pump.value;
                              if (sns_2) {
                                  console.log("sns_2 extrahiert:", filter_pump);
                                  // sns_2 in das neue ioBroker-Objekt speichern
                                  setState(targetObject, filter_pump, true);
                              } else {
                                  console.log("Kein filter_pump gefunden!");
                              }
                          } catch (error) {
                              console.log("Fehler beim Parsen des JSON-Strings:", error);
                          }
                      });
                      

                      Und alle 4 in 1 Script?

                      const axios = require('axios');
                      // Daten für die POST-Anfrage
                      const daten = {
                          api_key: "EOOEMOW4YR6QNB11",
                          email: "xxxxxxxx@xxxxxx.xx",
                          password: "xxxxxxxxxxx"
                      };
                      // 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('0_userdata.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('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                              // Zweite Anfrage unter Verwendung des idTokens
                              const options = {
                                  method: 'GET',
                                  url: 'https://prod.zodiac-io.com/devices/v1/JT22005060/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.iAquaLink.Pooldata', response.data, true);
                      }).catch(error => {
                          console.error('Fehler:', error);
                      });
                      
                      // 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);
                          }
                      });
                      
                      // 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);
                          }
                      });
                       
                      // 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_Pumpe";
                      // 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.filter_pump.value;
                              if (sns_2) {
                                  console.log("sns_2 extrahiert:", filter_pump);
                                  // sns_2 in das neue ioBroker-Objekt speichern
                                  setState(targetObject, filter_pump, true);
                              } else {
                                  console.log("Kein filter_pump gefunden!");
                              }
                          } catch (error) {
                              console.log("Fehler beim Parsen des JSON-Strings:", error);
                          }
                      });
                      

                      ° Node.js: 20.17.0 NPM: 10.8.2
                      ° Proxmox, Ubuntu 22.04.3 LTS
                      ° Fixer ---> iob fix

                      1 Antwort Letzte Antwort
                      0
                      • H Hexagon

                        @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
                        
                        NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        schrieb am zuletzt editiert von
                        #33

                        @hexagon

                        Guten Morgen

                        hab einen Fehler.
                        Kannst du bitte mal drüberschaun?

                        javascript.0	08:51:34.699	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
                        javascript.0	08:51:34.700	error script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                        
                        const axios = require('axios');
                        // Daten für die POST-Anfrage
                        const daten = {
                            api_key: "EOOEMOW4YR6QNB11",
                            email: "xxxxxxxxx@xxxxxxx.at",
                            password: "xxxxxxxxx"
                        };
                        // 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('0_userdata.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('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                                // Zweite Anfrage unter Verwendung des idTokens
                                const options = {
                                    method: 'GET',
                                    url: 'https://prod.zodiac-io.com/devices/v1/JT22005060/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.iAquaLink.Pooldata', response.data, true);
                        }).catch(error => {
                            console.error('Fehler:', error);
                        });
                        
                        // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                        let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                        // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                        let targetObject = "0_userdata.0.iAquaLink.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);
                            }
                        });
                        
                        // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                        let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                        // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                        let targetObject = "0_userdata.0.iAquaLink.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);
                            }
                        });
                         
                        // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                        let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                        // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                        let targetObject = "0_userdata.0.iAquaLink.Pooldata_Pumpe";
                        // 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.filter_pump.value;
                                if (sns_2) {
                                    console.log("sns_2 extrahiert:", filter_pump);
                                    // sns_2 in das neue ioBroker-Objekt speichern
                                    setState(targetObject, filter_pump, true);
                                } else {
                                    console.log("Kein filter_pump gefunden!");
                                }
                            } catch (error) {
                                console.log("Fehler beim Parsen des JSON-Strings:", error);
                            }
                        });
                         
                        
                        

                        ° Node.js: 20.17.0 NPM: 10.8.2
                        ° Proxmox, Ubuntu 22.04.3 LTS
                        ° Fixer ---> iob fix

                        H 1 Antwort Letzte Antwort
                        0
                        • NegaleinN Negalein

                          @hexagon

                          Guten Morgen

                          hab einen Fehler.
                          Kannst du bitte mal drüberschaun?

                          javascript.0	08:51:34.699	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
                          javascript.0	08:51:34.700	error script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                          
                          const axios = require('axios');
                          // Daten für die POST-Anfrage
                          const daten = {
                              api_key: "EOOEMOW4YR6QNB11",
                              email: "xxxxxxxxx@xxxxxxx.at",
                              password: "xxxxxxxxx"
                          };
                          // 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('0_userdata.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('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                                  // Zweite Anfrage unter Verwendung des idTokens
                                  const options = {
                                      method: 'GET',
                                      url: 'https://prod.zodiac-io.com/devices/v1/JT22005060/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.iAquaLink.Pooldata', response.data, true);
                          }).catch(error => {
                              console.error('Fehler:', error);
                          });
                          
                          // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                          let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                          // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                          let targetObject = "0_userdata.0.iAquaLink.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);
                              }
                          });
                          
                          // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                          let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                          // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                          let targetObject = "0_userdata.0.iAquaLink.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);
                              }
                          });
                           
                          // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                          let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                          // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                          let targetObject = "0_userdata.0.iAquaLink.Pooldata_Pumpe";
                          // 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.filter_pump.value;
                                  if (sns_2) {
                                      console.log("sns_2 extrahiert:", filter_pump);
                                      // sns_2 in das neue ioBroker-Objekt speichern
                                      setState(targetObject, filter_pump, true);
                                  } else {
                                      console.log("Kein filter_pump gefunden!");
                                  }
                              } catch (error) {
                                  console.log("Fehler beim Parsen des JSON-Strings:", error);
                              }
                          });
                           
                          
                          
                          H Offline
                          H Offline
                          Hexagon
                          schrieb am zuletzt editiert von
                          #34

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

                          NegaleinN 1 Antwort Letzte Antwort
                          0
                          • H Hexagon

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

                            NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            schrieb am zuletzt editiert von
                            #35

                            @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

                            Es gibt unter filter_pump kein "value" sondern nur "state" oder "type"

                            Danke

                            muss ich dann let filter_pump = jsonObject.state.reported.equipment.swc_0.filter_pump.state; verwenden, um zu sehen, ob die Pumpe läuft?

                            ° Node.js: 20.17.0 NPM: 10.8.2
                            ° Proxmox, Ubuntu 22.04.3 LTS
                            ° Fixer ---> iob fix

                            H 1 Antwort Letzte Antwort
                            0
                            • NegaleinN Negalein

                              @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

                              Es gibt unter filter_pump kein "value" sondern nur "state" oder "type"

                              Danke

                              muss ich dann let filter_pump = jsonObject.state.reported.equipment.swc_0.filter_pump.state; verwenden, um zu sehen, ob die Pumpe läuft?

                              H Offline
                              H Offline
                              Hexagon
                              schrieb am zuletzt editiert von
                              #36

                              @negalein

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

                              NegaleinN 1 Antwort Letzte Antwort
                              1
                              • H Hexagon

                                @negalein

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

                                NegaleinN Offline
                                NegaleinN Offline
                                Negalein
                                Global Moderator
                                schrieb am zuletzt editiert von Negalein
                                #37

                                @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                                es kommt noch immer der Error

                                javascript.0	15:35:21.966	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
                                javascript.0	15:35:21.967	error	script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                                
                                const axios = require('axios');
                                // Daten für die POST-Anfrage
                                const daten = {
                                    api_key: "EOOEMOW4YR6QNB11",
                                    email: "mail",
                                    password: "pwd"
                                };
                                // 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('0_userdata.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('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                                        // Zweite Anfrage unter Verwendung des idTokens
                                        const options = {
                                            method: 'GET',
                                            url: 'https://prod.zodiac-io.com/devices/v1/JT22008430/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.iAquaLink.Pooldata', response.data, true);
                                }).catch(error => {
                                    console.error('Fehler:', error);
                                });
                                
                                // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                                let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                                let targetObject = "0_userdata.0.iAquaLink.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);
                                    }
                                });
                                
                                // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                                let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                                let targetObject = "0_userdata.0.iAquaLink.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);
                                    }
                                });
                                 
                                // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                                let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                                let targetObject = "0_userdata.0.iAquaLink.Pooldata_Pumpe";
                                // 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);
                                        
                                        // `filter_pump` extrahieren
                                        let filter_pump = jsonObject.state.reported.equipment.swc_0.filter_pump.value;
                                        if (filter_pump) {
                                            console.log("filter_pump extrahiert:", filter_pump);
                                            // filter_pump in das neue ioBroker-Objekt speichern
                                            setState(targetObject, filter_pump, true);
                                        } else {
                                            console.log("Kein filter_pump gefunden!");
                                        }
                                    } catch (error) {
                                        console.log("Fehler beim Parsen des JSON-Strings:", error);
                                    }
                                });
                                 
                                // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                                let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                                let targetObject = "0_userdata.0.iAquaLink.Pooldata_Temp";
                                // 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);
                                        
                                        // `Water temp` extrahieren
                                        let Water temp = jsonObject.state.reported.equipment.swc_0.Water temp.value;
                                        if (Water temp) {
                                            console.log("Water temp extrahiert:", Water temp);
                                            // Water temp in das neue ioBroker-Objekt speichern
                                            setState(targetObject, Water temp, true);
                                        } else {
                                            console.log("Kein Water temp gefunden!");
                                        }
                                    } catch (error) {
                                        console.log("Fehler beim Parsen des JSON-Strings:", error);
                                    }
                                });
                                

                                EDIT: das steht im ioB Log

                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	at processImmediate (node:internal/timers:485:21)
                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1732:17)
                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2322:17
                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2224:37)
                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1956:21)
                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	at new Script (node:vm:117:7)
                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	SyntaxError: Identifier 'sourceObject' has already been declared
                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	^
                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                
                                javascript.0
                                2025-05-13 15:39:33.464	error	script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                                

                                muss da zwischen Token und sns Abfrage eine Pause rein?

                                ° Node.js: 20.17.0 NPM: 10.8.2
                                ° Proxmox, Ubuntu 22.04.3 LTS
                                ° Fixer ---> iob fix

                                NegaleinN 1 Antwort Letzte Antwort
                                0
                                • NegaleinN Negalein

                                  @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                                  es kommt noch immer der Error

                                  javascript.0	15:35:21.966	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
                                  javascript.0	15:35:21.967	error	script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                                  
                                  const axios = require('axios');
                                  // Daten für die POST-Anfrage
                                  const daten = {
                                      api_key: "EOOEMOW4YR6QNB11",
                                      email: "mail",
                                      password: "pwd"
                                  };
                                  // 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('0_userdata.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('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                                          // Zweite Anfrage unter Verwendung des idTokens
                                          const options = {
                                              method: 'GET',
                                              url: 'https://prod.zodiac-io.com/devices/v1/JT22008430/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.iAquaLink.Pooldata', response.data, true);
                                  }).catch(error => {
                                      console.error('Fehler:', error);
                                  });
                                  
                                  // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                                  let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                  // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                                  let targetObject = "0_userdata.0.iAquaLink.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);
                                      }
                                  });
                                  
                                  // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                                  let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                  // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                                  let targetObject = "0_userdata.0.iAquaLink.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);
                                      }
                                  });
                                   
                                  // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                                  let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                  // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                                  let targetObject = "0_userdata.0.iAquaLink.Pooldata_Pumpe";
                                  // 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);
                                          
                                          // `filter_pump` extrahieren
                                          let filter_pump = jsonObject.state.reported.equipment.swc_0.filter_pump.value;
                                          if (filter_pump) {
                                              console.log("filter_pump extrahiert:", filter_pump);
                                              // filter_pump in das neue ioBroker-Objekt speichern
                                              setState(targetObject, filter_pump, true);
                                          } else {
                                              console.log("Kein filter_pump gefunden!");
                                          }
                                      } catch (error) {
                                          console.log("Fehler beim Parsen des JSON-Strings:", error);
                                      }
                                  });
                                   
                                  // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                                  let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                  // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                                  let targetObject = "0_userdata.0.iAquaLink.Pooldata_Temp";
                                  // 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);
                                          
                                          // `Water temp` extrahieren
                                          let Water temp = jsonObject.state.reported.equipment.swc_0.Water temp.value;
                                          if (Water temp) {
                                              console.log("Water temp extrahiert:", Water temp);
                                              // Water temp in das neue ioBroker-Objekt speichern
                                              setState(targetObject, Water temp, true);
                                          } else {
                                              console.log("Kein Water temp gefunden!");
                                          }
                                      } catch (error) {
                                          console.log("Fehler beim Parsen des JSON-Strings:", error);
                                      }
                                  });
                                  

                                  EDIT: das steht im ioB Log

                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	at processImmediate (node:internal/timers:485:21)
                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1732:17)
                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2322:17
                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2224:37)
                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1956:21)
                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	at new Script (node:vm:117:7)
                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	SyntaxError: Identifier 'sourceObject' has already been declared
                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	^
                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                                  
                                  javascript.0
                                  2025-05-13 15:39:33.464	error	script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                                  

                                  muss da zwischen Token und sns Abfrage eine Pause rein?

                                  NegaleinN Offline
                                  NegaleinN Offline
                                  Negalein
                                  Global Moderator
                                  schrieb am zuletzt editiert von
                                  #38

                                  @Hexagon

                                  kannst du dir das noch anschaun?

                                  @negalein sagte in Aqualink Pool Automation in iobroker integrieren:

                                  es kommt noch immer der Error

                                  @negalein sagte in Aqualink Pool Automation in iobroker integrieren:

                                  muss da zwischen Token und sns Abfrage eine Pause rein?

                                  ° Node.js: 20.17.0 NPM: 10.8.2
                                  ° Proxmox, Ubuntu 22.04.3 LTS
                                  ° Fixer ---> iob fix

                                  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

                                  398

                                  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
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe