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
    435

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

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

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

                      577

                      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