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

    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 & 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:

        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

                                590

                                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