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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Aqualink Pool Automation in iobroker integrieren

NEWS

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

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

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

Aqualink Pool Automation in iobroker integrieren

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

    @negalein

    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

                      525

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

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

                      • Du hast noch kein Konto? Registrieren

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