Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Aqualink Pool Automation in iobroker integrieren

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    431

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    358

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    959

Aqualink Pool Automation in iobroker integrieren

Geplant Angeheftet Gesperrt Verschoben Entwicklung
38 Beiträge 9 Kommentatoren 5.0k Aufrufe 6 Beobachtet
  • Ä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.
  • 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 & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
      ° Node.js Fixer ---> iob nodejs-update
      ° 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 & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
          ° Node.js Fixer ---> iob nodejs-update
          ° 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 & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
              ° Node.js Fixer ---> iob nodejs-update
              ° 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 & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                ° Node.js Fixer ---> iob nodejs-update
                ° 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 & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                  ° Node.js Fixer ---> iob nodejs-update
                  ° 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 & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                      ° Node.js Fixer ---> iob nodejs-update
                      ° 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 & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                          ° Node.js Fixer ---> iob nodejs-update
                          ° 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 & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                            ° Node.js Fixer ---> iob nodejs-update
                            ° Fixer ---> iob fix

                            1 Antwort Letzte Antwort
                            0

                            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                            Registrieren Anmelden
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            591

                            Online

                            32.8k

                            Benutzer

                            82.8k

                            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