Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

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

NEWS

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

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

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

Aqualink Pool Automation in iobroker integrieren

Geplant Angeheftet Gesperrt Verschoben Entwicklung
38 Beiträge 9 Kommentatoren 4.4k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • NegaleinN Negalein

    @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

    ahhhhh, übersehn

    jetzt kommen Daten, aber mit Warn.

    DP werden befüllt

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

    @negalein

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

    Beispiel für ORP Werte:

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

      @negalein

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

      Beispiel für ORP Werte:

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

      @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

      Danke

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

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

      H 1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

        @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

        Danke

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

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

        @negalein

        ORP Wert entspricht bereits dem Chlorinator

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

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

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

        NegaleinN 1 Antwort Letzte Antwort
        0
        • H Hexagon

          @negalein

          ORP Wert entspricht bereits dem Chlorinator

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

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

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

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

          @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

          ORP Wert entspricht bereits dem Chlorinator

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

          Meinte Salzelektrolysegerät (Pumpe)

          sns_3 ist dann die Temp?

          oder wie finde ich das raus?

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

          H 1 Antwort Letzte Antwort
          0
          • NegaleinN Negalein

            @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

            ORP Wert entspricht bereits dem Chlorinator

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

            Meinte Salzelektrolysegerät (Pumpe)

            sns_3 ist dann die Temp?

            oder wie finde ich das raus?

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

            @negalein

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

            Dort sollten alle Daten ersichtlich sein:

            Beispiel Temperatur:

            "sns_3": {
                        "sensor_type": "Water temp",
                        "state": 1,
                        "value": 25
            
            NegaleinN 3 Antworten Letzte Antwort
            0
            • H Hexagon

              @negalein

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

              Dort sollten alle Daten ersichtlich sein:

              Beispiel Temperatur:

              "sns_3": {
                          "sensor_type": "Water temp",
                          "state": 1,
                          "value": 25
              
              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von
              #31

              @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

              Dort sollten alle Daten ersichtlich sein:

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

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

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

              1 Antwort Letzte Antwort
              0
              • H Hexagon

                @negalein

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

                Dort sollten alle Daten ersichtlich sein:

                Beispiel Temperatur:

                "sns_3": {
                            "sensor_type": "Water temp",
                            "state": 1,
                            "value": 25
                
                NegaleinN Offline
                NegaleinN Offline
                Negalein
                Global Moderator
                schrieb am zuletzt editiert von
                #32

                @hexagon

                die Pumpe scheint so auf:

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

                Binde ich die dann so ein?

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

                Und alle 4 in 1 Script?

                const axios = require('axios');
                // Daten für die POST-Anfrage
                const daten = {
                    api_key: "EOOEMOW4YR6QNB11",
                    email: "xxxxxxxx@xxxxxx.xx",
                    password: "xxxxxxxxxxx"
                };
                // Erste Anfrage zur Authentifizierung
                axios.post('https://prod.zodiac-io.com/users/v1/login', daten, {
                    headers: {
                        'Host': 'prod.zodiac-io.com',
                        'accept': 'application/json',
                        'Content-Type': 'application/json',
                        'accept-encoding': 'gzip',
                        'user-agent': 'okhttp/3.12.0'
                    }
                }).then((response) => {
                    setState('0_userdata.0.iAquaLink.IdToken', JSON.stringify(response.data), true);
                    console.log('Daten erfolgreich in ioBroker gespeichert.');
                    // Extrahieren des idTokens
                    let jsonObject = response.data;
                    let idToken = jsonObject.userPoolOAuth.IdToken;
                    if (idToken) {
                        console.log("idToken extrahiert:", idToken);
                        setState('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                        // Zweite Anfrage unter Verwendung des idTokens
                        const options = {
                            method: 'GET',
                            url: 'https://prod.zodiac-io.com/devices/v1/JT22005060/shadow',
                            headers: {
                                'Host': 'prod.zodiac-io.com',
                                'accept': 'application/json',
                                'authorization': idToken,
                                'accept-encoding': 'gzip',
                                'user-agent': 'okhttp/3.12.0'
                            }
                        };
                        return axios.request(options);
                    } else {
                        throw new Error("Kein idToken gefunden!");
                    }
                }).then(response => {
                    console.log(response.data);
                    setState('0_userdata.0.iAquaLink.Pooldata', response.data, true);
                }).catch(error => {
                    console.error('Fehler:', error);
                });
                
                // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                let sourceObject = "0_userdata.0.Pool.Pooldata";
                // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                let targetObject = "0_userdata.0.Pool.Pooldata_PH";
                // JSON-String aus ioBroker-Objekt abrufen
                getState(sourceObject, function (err, state) {
                    if (err || !state || !state.val) {
                        console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                        return;
                    }
                    try {
                        // JSON-String in ein Objekt konvertieren
                        let jsonObject = JSON.parse(state.val);
                        
                        // `sns_1` extrahieren
                        let sns_1 = jsonObject.state.reported.equipment.swc_0.sns_1.value;
                        if (sns_1) {
                            console.log("sns_1 extrahiert:", sns_1);
                            // sns_1 in das neue ioBroker-Objekt speichern
                            setState(targetObject, sns_1, true);
                        } else {
                            console.log("Kein sns_1 gefunden!");
                        }
                    } catch (error) {
                        console.log("Fehler beim Parsen des JSON-Strings:", error);
                    }
                });
                
                // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                let sourceObject = "0_userdata.0.Pool.Pooldata";
                // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                let targetObject = "0_userdata.0.Pool.Pooldata_ORP";
                // JSON-String aus ioBroker-Objekt abrufen
                getState(sourceObject, function (err, state) {
                    if (err || !state || !state.val) {
                        console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                        return;
                    }
                    try {
                        // JSON-String in ein Objekt konvertieren
                        let jsonObject = JSON.parse(state.val);
                        
                        // `sns_2` extrahieren
                        let sns_2 = jsonObject.state.reported.equipment.swc_0.sns_2.value;
                        if (sns_2) {
                            console.log("sns_2 extrahiert:", sns_2);
                            // sns_2 in das neue ioBroker-Objekt speichern
                            setState(targetObject, sns_2, true);
                        } else {
                            console.log("Kein sns_2 gefunden!");
                        }
                    } catch (error) {
                        console.log("Fehler beim Parsen des JSON-Strings:", error);
                    }
                });
                 
                // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                let sourceObject = "0_userdata.0.Pool.Pooldata";
                // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                let targetObject = "0_userdata.0.Pool.Pooldata_Pumpe";
                // JSON-String aus ioBroker-Objekt abrufen
                getState(sourceObject, function (err, state) {
                    if (err || !state || !state.val) {
                        console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                        return;
                    }
                    try {
                        // JSON-String in ein Objekt konvertieren
                        let jsonObject = JSON.parse(state.val);
                        
                        // `sns_2` extrahieren
                        let sns_2 = jsonObject.state.reported.equipment.swc_0.filter_pump.value;
                        if (sns_2) {
                            console.log("sns_2 extrahiert:", filter_pump);
                            // sns_2 in das neue ioBroker-Objekt speichern
                            setState(targetObject, filter_pump, true);
                        } else {
                            console.log("Kein filter_pump gefunden!");
                        }
                    } catch (error) {
                        console.log("Fehler beim Parsen des JSON-Strings:", error);
                    }
                });
                

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

                1 Antwort Letzte Antwort
                0
                • H Hexagon

                  @negalein

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

                  Dort sollten alle Daten ersichtlich sein:

                  Beispiel Temperatur:

                  "sns_3": {
                              "sensor_type": "Water temp",
                              "state": 1,
                              "value": 25
                  
                  NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  schrieb am zuletzt editiert von
                  #33

                  @hexagon

                  Guten Morgen

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

                  javascript.0	08:51:34.699	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
                  javascript.0	08:51:34.700	error script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                  
                  const axios = require('axios');
                  // Daten für die POST-Anfrage
                  const daten = {
                      api_key: "EOOEMOW4YR6QNB11",
                      email: "xxxxxxxxx@xxxxxxx.at",
                      password: "xxxxxxxxx"
                  };
                  // Erste Anfrage zur Authentifizierung
                  axios.post('https://prod.zodiac-io.com/users/v1/login', daten, {
                      headers: {
                          'Host': 'prod.zodiac-io.com',
                          'accept': 'application/json',
                          'Content-Type': 'application/json',
                          'accept-encoding': 'gzip',
                          'user-agent': 'okhttp/3.12.0'
                      }
                  }).then((response) => {
                      setState('0_userdata.0.iAquaLink.IdToken', JSON.stringify(response.data), true);
                      console.log('Daten erfolgreich in ioBroker gespeichert.');
                      // Extrahieren des idTokens
                      let jsonObject = response.data;
                      let idToken = jsonObject.userPoolOAuth.IdToken;
                      if (idToken) {
                          console.log("idToken extrahiert:", idToken);
                          setState('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                          // Zweite Anfrage unter Verwendung des idTokens
                          const options = {
                              method: 'GET',
                              url: 'https://prod.zodiac-io.com/devices/v1/JT22005060/shadow',
                              headers: {
                                  'Host': 'prod.zodiac-io.com',
                                  'accept': 'application/json',
                                  'authorization': idToken,
                                  'accept-encoding': 'gzip',
                                  'user-agent': 'okhttp/3.12.0'
                              }
                          };
                          return axios.request(options);
                      } else {
                          throw new Error("Kein idToken gefunden!");
                      }
                  }).then(response => {
                      console.log(response.data);
                      setState('0_userdata.0.iAquaLink.Pooldata', response.data, true);
                  }).catch(error => {
                      console.error('Fehler:', error);
                  });
                  
                  // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                  let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                  // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                  let targetObject = "0_userdata.0.iAquaLink.Pooldata_PH";
                  // JSON-String aus ioBroker-Objekt abrufen
                  getState(sourceObject, function (err, state) {
                      if (err || !state || !state.val) {
                          console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                          return;
                      }
                      try {
                          // JSON-String in ein Objekt konvertieren
                          let jsonObject = JSON.parse(state.val);
                          
                          // `sns_1` extrahieren
                          let sns_1 = jsonObject.state.reported.equipment.swc_0.sns_1.value;
                          if (sns_1) {
                              console.log("sns_1 extrahiert:", sns_1);
                              // sns_1 in das neue ioBroker-Objekt speichern
                              setState(targetObject, sns_1, true);
                          } else {
                              console.log("Kein sns_1 gefunden!");
                          }
                      } catch (error) {
                          console.log("Fehler beim Parsen des JSON-Strings:", error);
                      }
                  });
                  
                  // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                  let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                  // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                  let targetObject = "0_userdata.0.iAquaLink.Pooldata_ORP";
                  // JSON-String aus ioBroker-Objekt abrufen
                  getState(sourceObject, function (err, state) {
                      if (err || !state || !state.val) {
                          console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                          return;
                      }
                      try {
                          // JSON-String in ein Objekt konvertieren
                          let jsonObject = JSON.parse(state.val);
                          
                          // `sns_2` extrahieren
                          let sns_2 = jsonObject.state.reported.equipment.swc_0.sns_2.value;
                          if (sns_2) {
                              console.log("sns_2 extrahiert:", sns_2);
                              // sns_2 in das neue ioBroker-Objekt speichern
                              setState(targetObject, sns_2, true);
                          } else {
                              console.log("Kein sns_2 gefunden!");
                          }
                      } catch (error) {
                          console.log("Fehler beim Parsen des JSON-Strings:", error);
                      }
                  });
                   
                  // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                  let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                  // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                  let targetObject = "0_userdata.0.iAquaLink.Pooldata_Pumpe";
                  // JSON-String aus ioBroker-Objekt abrufen
                  getState(sourceObject, function (err, state) {
                      if (err || !state || !state.val) {
                          console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                          return;
                      }
                      try {
                          // JSON-String in ein Objekt konvertieren
                          let jsonObject = JSON.parse(state.val);
                          
                          // `sns_2` extrahieren
                          let sns_2 = jsonObject.state.reported.equipment.swc_0.filter_pump.value;
                          if (sns_2) {
                              console.log("sns_2 extrahiert:", filter_pump);
                              // sns_2 in das neue ioBroker-Objekt speichern
                              setState(targetObject, filter_pump, true);
                          } else {
                              console.log("Kein filter_pump gefunden!");
                          }
                      } catch (error) {
                          console.log("Fehler beim Parsen des JSON-Strings:", error);
                      }
                  });
                   
                  
                  

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

                  H 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

                    @hexagon

                    Guten Morgen

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

                    javascript.0	08:51:34.699	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
                    javascript.0	08:51:34.700	error script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                    
                    const axios = require('axios');
                    // Daten für die POST-Anfrage
                    const daten = {
                        api_key: "EOOEMOW4YR6QNB11",
                        email: "xxxxxxxxx@xxxxxxx.at",
                        password: "xxxxxxxxx"
                    };
                    // Erste Anfrage zur Authentifizierung
                    axios.post('https://prod.zodiac-io.com/users/v1/login', daten, {
                        headers: {
                            'Host': 'prod.zodiac-io.com',
                            'accept': 'application/json',
                            'Content-Type': 'application/json',
                            'accept-encoding': 'gzip',
                            'user-agent': 'okhttp/3.12.0'
                        }
                    }).then((response) => {
                        setState('0_userdata.0.iAquaLink.IdToken', JSON.stringify(response.data), true);
                        console.log('Daten erfolgreich in ioBroker gespeichert.');
                        // Extrahieren des idTokens
                        let jsonObject = response.data;
                        let idToken = jsonObject.userPoolOAuth.IdToken;
                        if (idToken) {
                            console.log("idToken extrahiert:", idToken);
                            setState('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                            // Zweite Anfrage unter Verwendung des idTokens
                            const options = {
                                method: 'GET',
                                url: 'https://prod.zodiac-io.com/devices/v1/JT22005060/shadow',
                                headers: {
                                    'Host': 'prod.zodiac-io.com',
                                    'accept': 'application/json',
                                    'authorization': idToken,
                                    'accept-encoding': 'gzip',
                                    'user-agent': 'okhttp/3.12.0'
                                }
                            };
                            return axios.request(options);
                        } else {
                            throw new Error("Kein idToken gefunden!");
                        }
                    }).then(response => {
                        console.log(response.data);
                        setState('0_userdata.0.iAquaLink.Pooldata', response.data, true);
                    }).catch(error => {
                        console.error('Fehler:', error);
                    });
                    
                    // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                    let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                    // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                    let targetObject = "0_userdata.0.iAquaLink.Pooldata_PH";
                    // JSON-String aus ioBroker-Objekt abrufen
                    getState(sourceObject, function (err, state) {
                        if (err || !state || !state.val) {
                            console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                            return;
                        }
                        try {
                            // JSON-String in ein Objekt konvertieren
                            let jsonObject = JSON.parse(state.val);
                            
                            // `sns_1` extrahieren
                            let sns_1 = jsonObject.state.reported.equipment.swc_0.sns_1.value;
                            if (sns_1) {
                                console.log("sns_1 extrahiert:", sns_1);
                                // sns_1 in das neue ioBroker-Objekt speichern
                                setState(targetObject, sns_1, true);
                            } else {
                                console.log("Kein sns_1 gefunden!");
                            }
                        } catch (error) {
                            console.log("Fehler beim Parsen des JSON-Strings:", error);
                        }
                    });
                    
                    // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                    let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                    // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                    let targetObject = "0_userdata.0.iAquaLink.Pooldata_ORP";
                    // JSON-String aus ioBroker-Objekt abrufen
                    getState(sourceObject, function (err, state) {
                        if (err || !state || !state.val) {
                            console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                            return;
                        }
                        try {
                            // JSON-String in ein Objekt konvertieren
                            let jsonObject = JSON.parse(state.val);
                            
                            // `sns_2` extrahieren
                            let sns_2 = jsonObject.state.reported.equipment.swc_0.sns_2.value;
                            if (sns_2) {
                                console.log("sns_2 extrahiert:", sns_2);
                                // sns_2 in das neue ioBroker-Objekt speichern
                                setState(targetObject, sns_2, true);
                            } else {
                                console.log("Kein sns_2 gefunden!");
                            }
                        } catch (error) {
                            console.log("Fehler beim Parsen des JSON-Strings:", error);
                        }
                    });
                     
                    // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                    let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                    // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                    let targetObject = "0_userdata.0.iAquaLink.Pooldata_Pumpe";
                    // JSON-String aus ioBroker-Objekt abrufen
                    getState(sourceObject, function (err, state) {
                        if (err || !state || !state.val) {
                            console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                            return;
                        }
                        try {
                            // JSON-String in ein Objekt konvertieren
                            let jsonObject = JSON.parse(state.val);
                            
                            // `sns_2` extrahieren
                            let sns_2 = jsonObject.state.reported.equipment.swc_0.filter_pump.value;
                            if (sns_2) {
                                console.log("sns_2 extrahiert:", filter_pump);
                                // sns_2 in das neue ioBroker-Objekt speichern
                                setState(targetObject, filter_pump, true);
                            } else {
                                console.log("Kein filter_pump gefunden!");
                            }
                        } catch (error) {
                            console.log("Fehler beim Parsen des JSON-Strings:", error);
                        }
                    });
                     
                    
                    
                    H Offline
                    H Offline
                    Hexagon
                    schrieb am zuletzt editiert von
                    #34

                    @negalein

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

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

                    NegaleinN 1 Antwort Letzte Antwort
                    0
                    • H Hexagon

                      @negalein

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

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

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

                      @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                      Danke

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

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

                      H 1 Antwort Letzte Antwort
                      0
                      • NegaleinN Negalein

                        @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                        Danke

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

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

                        @negalein

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

                        NegaleinN 1 Antwort Letzte Antwort
                        1
                        • H Hexagon

                          @negalein

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

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

                          @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                          es kommt noch immer der Error

                          javascript.0	15:35:21.966	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
                          javascript.0	15:35:21.967	error	script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                          
                          const axios = require('axios');
                          // Daten für die POST-Anfrage
                          const daten = {
                              api_key: "EOOEMOW4YR6QNB11",
                              email: "mail",
                              password: "pwd"
                          };
                          // Erste Anfrage zur Authentifizierung
                          axios.post('https://prod.zodiac-io.com/users/v1/login', daten, {
                              headers: {
                                  'Host': 'prod.zodiac-io.com',
                                  'accept': 'application/json',
                                  'Content-Type': 'application/json',
                                  'accept-encoding': 'gzip',
                                  'user-agent': 'okhttp/3.12.0'
                              }
                          }).then((response) => {
                              setState('0_userdata.0.iAquaLink.IdToken', JSON.stringify(response.data), true);
                              console.log('Daten erfolgreich in ioBroker gespeichert.');
                              // Extrahieren des idTokens
                              let jsonObject = response.data;
                              let idToken = jsonObject.userPoolOAuth.IdToken;
                              if (idToken) {
                                  console.log("idToken extrahiert:", idToken);
                                  setState('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                                  // Zweite Anfrage unter Verwendung des idTokens
                                  const options = {
                                      method: 'GET',
                                      url: 'https://prod.zodiac-io.com/devices/v1/JT22008430/shadow',
                                      headers: {
                                          'Host': 'prod.zodiac-io.com',
                                          'accept': 'application/json',
                                          'authorization': idToken,
                                          'accept-encoding': 'gzip',
                                          'user-agent': 'okhttp/3.12.0'
                                      }
                                  };
                                  return axios.request(options);
                              } else {
                                  throw new Error("Kein idToken gefunden!");
                              }
                          }).then(response => {
                              console.log(response.data);
                              setState('0_userdata.0.iAquaLink.Pooldata', response.data, true);
                          }).catch(error => {
                              console.error('Fehler:', error);
                          });
                          
                          // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                          let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                          // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                          let targetObject = "0_userdata.0.iAquaLink.Pooldata_PH";
                          // JSON-String aus ioBroker-Objekt abrufen
                          getState(sourceObject, function (err, state) {
                              if (err || !state || !state.val) {
                                  console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                                  return;
                              }
                              try {
                                  // JSON-String in ein Objekt konvertieren
                                  let jsonObject = JSON.parse(state.val);
                                  
                                  // `sns_1` extrahieren
                                  let sns_1 = jsonObject.state.reported.equipment.swc_0.sns_1.value;
                                  if (sns_1) {
                                      console.log("sns_1 extrahiert:", sns_1);
                                      // sns_1 in das neue ioBroker-Objekt speichern
                                      setState(targetObject, sns_1, true);
                                  } else {
                                      console.log("Kein sns_1 gefunden!");
                                  }
                              } catch (error) {
                                  console.log("Fehler beim Parsen des JSON-Strings:", error);
                              }
                          });
                          
                          // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                          let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                          // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                          let targetObject = "0_userdata.0.iAquaLink.Pooldata_ORP";
                          // JSON-String aus ioBroker-Objekt abrufen
                          getState(sourceObject, function (err, state) {
                              if (err || !state || !state.val) {
                                  console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                                  return;
                              }
                              try {
                                  // JSON-String in ein Objekt konvertieren
                                  let jsonObject = JSON.parse(state.val);
                                  
                                  // `sns_2` extrahieren
                                  let sns_2 = jsonObject.state.reported.equipment.swc_0.sns_2.value;
                                  if (sns_2) {
                                      console.log("sns_2 extrahiert:", sns_2);
                                      // sns_2 in das neue ioBroker-Objekt speichern
                                      setState(targetObject, sns_2, true);
                                  } else {
                                      console.log("Kein sns_2 gefunden!");
                                  }
                              } catch (error) {
                                  console.log("Fehler beim Parsen des JSON-Strings:", error);
                              }
                          });
                           
                          // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                          let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                          // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                          let targetObject = "0_userdata.0.iAquaLink.Pooldata_Pumpe";
                          // JSON-String aus ioBroker-Objekt abrufen
                          getState(sourceObject, function (err, state) {
                              if (err || !state || !state.val) {
                                  console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                                  return;
                              }
                              try {
                                  // JSON-String in ein Objekt konvertieren
                                  let jsonObject = JSON.parse(state.val);
                                  
                                  // `filter_pump` extrahieren
                                  let filter_pump = jsonObject.state.reported.equipment.swc_0.filter_pump.value;
                                  if (filter_pump) {
                                      console.log("filter_pump extrahiert:", filter_pump);
                                      // filter_pump in das neue ioBroker-Objekt speichern
                                      setState(targetObject, filter_pump, true);
                                  } else {
                                      console.log("Kein filter_pump gefunden!");
                                  }
                              } catch (error) {
                                  console.log("Fehler beim Parsen des JSON-Strings:", error);
                              }
                          });
                           
                          // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                          let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                          // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                          let targetObject = "0_userdata.0.iAquaLink.Pooldata_Temp";
                          // JSON-String aus ioBroker-Objekt abrufen
                          getState(sourceObject, function (err, state) {
                              if (err || !state || !state.val) {
                                  console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                                  return;
                              }
                              try {
                                  // JSON-String in ein Objekt konvertieren
                                  let jsonObject = JSON.parse(state.val);
                                  
                                  // `Water temp` extrahieren
                                  let Water temp = jsonObject.state.reported.equipment.swc_0.Water temp.value;
                                  if (Water temp) {
                                      console.log("Water temp extrahiert:", Water temp);
                                      // Water temp in das neue ioBroker-Objekt speichern
                                      setState(targetObject, Water temp, true);
                                  } else {
                                      console.log("Kein Water temp gefunden!");
                                  }
                              } catch (error) {
                                  console.log("Fehler beim Parsen des JSON-Strings:", error);
                              }
                          });
                          

                          EDIT: das steht im ioB Log

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

                          muss da zwischen Token und sns Abfrage eine Pause rein?

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

                          NegaleinN 1 Antwort Letzte Antwort
                          0
                          • NegaleinN Negalein

                            @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                            es kommt noch immer der Error

                            javascript.0	15:35:21.966	info	Start JavaScript script.js.Pool.iAqualink (Javascript/js)
                            javascript.0	15:35:21.967	error	script.js.Pool.iAqualink compile failed: at script.js.Pool.iAqualink:79
                            
                            const axios = require('axios');
                            // Daten für die POST-Anfrage
                            const daten = {
                                api_key: "EOOEMOW4YR6QNB11",
                                email: "mail",
                                password: "pwd"
                            };
                            // Erste Anfrage zur Authentifizierung
                            axios.post('https://prod.zodiac-io.com/users/v1/login', daten, {
                                headers: {
                                    'Host': 'prod.zodiac-io.com',
                                    'accept': 'application/json',
                                    'Content-Type': 'application/json',
                                    'accept-encoding': 'gzip',
                                    'user-agent': 'okhttp/3.12.0'
                                }
                            }).then((response) => {
                                setState('0_userdata.0.iAquaLink.IdToken', JSON.stringify(response.data), true);
                                console.log('Daten erfolgreich in ioBroker gespeichert.');
                                // Extrahieren des idTokens
                                let jsonObject = response.data;
                                let idToken = jsonObject.userPoolOAuth.IdToken;
                                if (idToken) {
                                    console.log("idToken extrahiert:", idToken);
                                    setState('0_userdata.0.iAquaLink.IdToken_clean', idToken, true);
                                    // Zweite Anfrage unter Verwendung des idTokens
                                    const options = {
                                        method: 'GET',
                                        url: 'https://prod.zodiac-io.com/devices/v1/JT22008430/shadow',
                                        headers: {
                                            'Host': 'prod.zodiac-io.com',
                                            'accept': 'application/json',
                                            'authorization': idToken,
                                            'accept-encoding': 'gzip',
                                            'user-agent': 'okhttp/3.12.0'
                                        }
                                    };
                                    return axios.request(options);
                                } else {
                                    throw new Error("Kein idToken gefunden!");
                                }
                            }).then(response => {
                                console.log(response.data);
                                setState('0_userdata.0.iAquaLink.Pooldata', response.data, true);
                            }).catch(error => {
                                console.error('Fehler:', error);
                            });
                            
                            // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                            let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                            // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                            let targetObject = "0_userdata.0.iAquaLink.Pooldata_PH";
                            // JSON-String aus ioBroker-Objekt abrufen
                            getState(sourceObject, function (err, state) {
                                if (err || !state || !state.val) {
                                    console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                                    return;
                                }
                                try {
                                    // JSON-String in ein Objekt konvertieren
                                    let jsonObject = JSON.parse(state.val);
                                    
                                    // `sns_1` extrahieren
                                    let sns_1 = jsonObject.state.reported.equipment.swc_0.sns_1.value;
                                    if (sns_1) {
                                        console.log("sns_1 extrahiert:", sns_1);
                                        // sns_1 in das neue ioBroker-Objekt speichern
                                        setState(targetObject, sns_1, true);
                                    } else {
                                        console.log("Kein sns_1 gefunden!");
                                    }
                                } catch (error) {
                                    console.log("Fehler beim Parsen des JSON-Strings:", error);
                                }
                            });
                            
                            // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                            let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                            // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                            let targetObject = "0_userdata.0.iAquaLink.Pooldata_ORP";
                            // JSON-String aus ioBroker-Objekt abrufen
                            getState(sourceObject, function (err, state) {
                                if (err || !state || !state.val) {
                                    console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                                    return;
                                }
                                try {
                                    // JSON-String in ein Objekt konvertieren
                                    let jsonObject = JSON.parse(state.val);
                                    
                                    // `sns_2` extrahieren
                                    let sns_2 = jsonObject.state.reported.equipment.swc_0.sns_2.value;
                                    if (sns_2) {
                                        console.log("sns_2 extrahiert:", sns_2);
                                        // sns_2 in das neue ioBroker-Objekt speichern
                                        setState(targetObject, sns_2, true);
                                    } else {
                                        console.log("Kein sns_2 gefunden!");
                                    }
                                } catch (error) {
                                    console.log("Fehler beim Parsen des JSON-Strings:", error);
                                }
                            });
                             
                            // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                            let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                            // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                            let targetObject = "0_userdata.0.iAquaLink.Pooldata_Pumpe";
                            // JSON-String aus ioBroker-Objekt abrufen
                            getState(sourceObject, function (err, state) {
                                if (err || !state || !state.val) {
                                    console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                                    return;
                                }
                                try {
                                    // JSON-String in ein Objekt konvertieren
                                    let jsonObject = JSON.parse(state.val);
                                    
                                    // `filter_pump` extrahieren
                                    let filter_pump = jsonObject.state.reported.equipment.swc_0.filter_pump.value;
                                    if (filter_pump) {
                                        console.log("filter_pump extrahiert:", filter_pump);
                                        // filter_pump in das neue ioBroker-Objekt speichern
                                        setState(targetObject, filter_pump, true);
                                    } else {
                                        console.log("Kein filter_pump gefunden!");
                                    }
                                } catch (error) {
                                    console.log("Fehler beim Parsen des JSON-Strings:", error);
                                }
                            });
                             
                            // Name des Quell-Objekts im ioBroker, das den JSON-String enthält
                            let sourceObject = "0_userdata.0.iAquaLink.Pooldata";
                            // Name des Ziel-Objekts, in das das idToken gespeichert werden soll
                            let targetObject = "0_userdata.0.iAquaLink.Pooldata_Temp";
                            // JSON-String aus ioBroker-Objekt abrufen
                            getState(sourceObject, function (err, state) {
                                if (err || !state || !state.val) {
                                    console.log("Fehler beim Abrufen des JSON-Strings oder Objekt ist leer.");
                                    return;
                                }
                                try {
                                    // JSON-String in ein Objekt konvertieren
                                    let jsonObject = JSON.parse(state.val);
                                    
                                    // `Water temp` extrahieren
                                    let Water temp = jsonObject.state.reported.equipment.swc_0.Water temp.value;
                                    if (Water temp) {
                                        console.log("Water temp extrahiert:", Water temp);
                                        // Water temp in das neue ioBroker-Objekt speichern
                                        setState(targetObject, Water temp, true);
                                    } else {
                                        console.log("Kein Water temp gefunden!");
                                    }
                                } catch (error) {
                                    console.log("Fehler beim Parsen des JSON-Strings:", error);
                                }
                            });
                            

                            EDIT: das steht im ioB Log

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

                            muss da zwischen Token und sns Abfrage eine Pause rein?

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

                            @Hexagon

                            kannst du dir das noch anschaun?

                            @negalein sagte in Aqualink Pool Automation in iobroker integrieren:

                            es kommt noch immer der Error

                            @negalein sagte in Aqualink Pool Automation in iobroker integrieren:

                            muss da zwischen Token und sns Abfrage eine Pause rein?

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

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


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            804

                            Online

                            32.4k

                            Benutzer

                            81.4k

                            Themen

                            1.3m

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

                            • Du hast noch kein Konto? Registrieren

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