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

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

Community Forum

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

NEWS

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

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

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

Aqualink Pool Automation in iobroker integrieren

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

    @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

    Danke

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

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

    @negalein

    ORP Wert entspricht bereits dem Chlorinator

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

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

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

    NegaleinN 1 Antwort Letzte Antwort
    0
    • H Hexagon

      @negalein

      ORP Wert entspricht bereits dem Chlorinator

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

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

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

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

      @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

      ORP Wert entspricht bereits dem Chlorinator

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

      Meinte Salzelektrolysegerät (Pumpe)

      sns_3 ist dann die Temp?

      oder wie finde ich das raus?

      ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
      ° Node.js Fixer ---> iob nodejs-update
      ° Fixer ---> iob fix

      H 1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

        @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

        ORP Wert entspricht bereits dem Chlorinator

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

        Meinte Salzelektrolysegerät (Pumpe)

        sns_3 ist dann die Temp?

        oder wie finde ich das raus?

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

        @negalein

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

        Dort sollten alle Daten ersichtlich sein:

        Beispiel Temperatur:

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

          @negalein

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

          Dort sollten alle Daten ersichtlich sein:

          Beispiel Temperatur:

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

          @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

          Dort sollten alle Daten ersichtlich sein:

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

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

          ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
          ° Node.js Fixer ---> iob nodejs-update
          ° Fixer ---> iob fix

          1 Antwort Letzte Antwort
          0
          • H Hexagon

            @negalein

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

            Dort sollten alle Daten ersichtlich sein:

            Beispiel Temperatur:

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

            @hexagon

            die Pumpe scheint so auf:

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

            Binde ich die dann so ein?

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

            Und alle 4 in 1 Script?

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

            ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
            ° Node.js Fixer ---> iob nodejs-update
            ° Fixer ---> iob fix

            1 Antwort Letzte Antwort
            0
            • H Hexagon

              @negalein

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

              Dort sollten alle Daten ersichtlich sein:

              Beispiel Temperatur:

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

              @hexagon

              Guten Morgen

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

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

              ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
              ° Node.js Fixer ---> iob nodejs-update
              ° Fixer ---> iob fix

              H 1 Antwort Letzte Antwort
              0
              • NegaleinN Negalein

                @hexagon

                Guten Morgen

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

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

                @negalein

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

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

                NegaleinN 1 Antwort Letzte Antwort
                0
                • H Hexagon

                  @negalein

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

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

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

                  @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                  Danke

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

                  ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                  ° Node.js Fixer ---> iob nodejs-update
                  ° Fixer ---> iob fix

                  H 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

                    @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                    Danke

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

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

                    @negalein

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

                    NegaleinN 1 Antwort Letzte Antwort
                    1
                    • H Hexagon

                      @negalein

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

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

                      @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                      es kommt noch immer der Error

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

                      EDIT: das steht im ioB Log

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

                      muss da zwischen Token und sns Abfrage eine Pause rein?

                      ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                      ° Node.js Fixer ---> iob nodejs-update
                      ° Fixer ---> iob fix

                      NegaleinN 1 Antwort Letzte Antwort
                      0
                      • NegaleinN Negalein

                        @hexagon sagte in Aqualink Pool Automation in iobroker integrieren:

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

                        es kommt noch immer der Error

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

                        EDIT: das steht im ioB Log

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

                        muss da zwischen Token und sns Abfrage eine Pause rein?

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

                        @Hexagon

                        kannst du dir das noch anschaun?

                        @negalein sagte in Aqualink Pool Automation in iobroker integrieren:

                        es kommt noch immer der Error

                        @negalein sagte in Aqualink Pool Automation in iobroker integrieren:

                        muss da zwischen Token und sns Abfrage eine Pause rein?

                        ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                        ° Node.js Fixer ---> iob nodejs-update
                        ° Fixer ---> iob fix

                        1 Antwort Letzte Antwort
                        0

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

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

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

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


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        574

                        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