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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Bayrol Webportal

NEWS

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

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

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

Bayrol Webportal

Geplant Angeheftet Gesperrt Verschoben Visualisierung
100 Beiträge 14 Kommentatoren 16.4k Aufrufe 13 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.
  • S Offline
    S Offline
    SegaPro
    schrieb am zuletzt editiert von
    #85

    Hallo zusammen,

    danke für die tolle Arbeit. Ich habe das Script nun ein paar Tage eingesetzt und war sehr zufrieden.

    Ich hatte nur das Problem, dass manchmal einfach keine Daten mehr kamen und ich das Script ca. 1 x am Tag neu starten musste. Am Internet kann es nicht liegen, denn ich habe keine Zwangstrennungen.

    Ich hatte dann noch die Idee, dass es ja irgendwie sinnvoll wäre, wenn man die Abfrage ein bisschen an die Pumpenlaufzeit anpasst. Wenn diese nämlich nicht läuft, dann sind die Werte ja ohnehin verfälscht.

    Daher jetzt eine Anpassung des Scripts, welches das Abfrageintervall nach dem Status der Filterpumpe richtet - zudem hoffe ich, dass damit auch die "Hänger" besser werden.

    Und da ich ein ehrlicher Mensch bin: Ich kann nur sehr wenig JavaScript - das Script habe nicht ich gemacht, sondern es ist ein Produkt einer KI. Ich habe das originale Script verwendet und der KI halt noch mitgeteilt, was meine Probleme sind und wie ich es gerne hätte.

    Ohne die tolle Vorarbeit hier wäre das nicht möglich gewesen, weil ich der KI sonst niemals hätte sagen können, was ich eigentlich will. Dafür ein großes Dankeschön!!!

    In Zeile "91" müsst ihr noch den Datenpunkt zur Abfrage des Zustandes der Pumpe eintragen. Bei mir ist es ein openknx-Pfad. Zur besseren Auffindbarkeit, habe ich "openknx.blabla" geschrieben. Und natürlich oben eure Logindaten nicht vergessen.

    const fetch = require('node-fetch');
    
    let user = "USERNAME (Mailadresse)";
    let password = "PASSWORT";
    let dpPH = "0_userdata.0.bayrol.ph";
    let dpMV = "0_userdata.0.bayrol.mv";
    let dpCC = "0_userdata.0.bayrol.cc";
    let requesttimeRunning = 30 * 1000; // 30 Sekunden
    let requesttimeIdle = 15 * 60 * 1000; // 15 Minuten
    
    const useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
    
    let intervalID;
    
    async function main() {
        console.log('Starte das Bayrol-Datenabfrage-Skript...');
        let sessionid = await getSession();
        let cid = await login(user, password, sessionid);
    
        if (cid) {
            console.log('Prüfe den Status der Filterpumpe...');
            checkFilterPumpStatus(sessionid, cid);
        }
    }
    
    async function getSession() {
        try {
            const response = await fetch("https://www.bayrol-poolaccess.de/webview/index.php", {
                headers: {
                    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
                    "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
                    "cache-control": "no-cache",
                    "pragma": "no-cache",
                    "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
                    "sec-ch-ua-mobile": "?0",
                    "sec-ch-ua-platform": "\"Windows\"",
                    "sec-fetch-dest": "document",
                    "sec-fetch-mode": "navigate",
                    "sec-fetch-site": "none",
                    "sec-fetch-user": "?1",
                    "upgrade-insecure-requests": "1",
                    "User-Agent": useragent
                },
                method: "GET"
            });
            let headers = await response.headers;
            console.log(`Session-ID erhalten: ${getSessionId(headers.get("set-cookie"))}`);
            return getSessionId(headers.get("set-cookie"));
        } catch (error) {
            console.error(`Fehler beim Abrufen der Session-ID: ${error.message}`);
        }
    }
    
    async function login(user, password, sessionid) {
        try {
            let body = `username=${encodeURIComponent(user)}&password=${encodeURIComponent(password)}&login=Anmelden`;
            const response = await fetch("https://www.bayrol-poolaccess.de/webview/p/login.php?r=reg", {
                headers: {
                    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
                    "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
                    "cache-control": "no-cache",
                    "content-type": "application/x-www-form-urlencoded",
                    "pragma": "no-cache",
                    "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
                    "sec-ch-ua-mobile": "?0",
                    "sec-ch-ua-platform": "\"Windows\"",
                    "sec-fetch-dest": "document",
                    "sec-fetch-mode": "navigate",
                    "sec-fetch-site": "same-origin",
                    "sec-fetch-user": "?1",
                    "upgrade-insecure-requests": "1",
                    "cookie": `PHPSESSID=${sessionid}`,
                    "Referer": "https://www.bayrol-poolaccess.de/webview/p/login.php",
                    "Referrer-Policy": "strict-origin-when-cross-origin",
                    "User-Agent": useragent
                },
                body: body,
                method: "POST"
            });
            let text = await response.text();
            console.log(`CID erhalten: ${getCID(text)}`);
            return getCID(text);
        } catch (error) {
            console.error(`Fehler beim Login: ${error.message}`);
        }
    }
    
    async function checkFilterPumpStatus(sessionid, cid) {
        try {
            // Hier prüfen wir den Status der Filterpumpe
            const filterPumpStatus = getState('openknx.blabla').val;
            console.log(`Status der Filterpumpe: ${filterPumpStatus}`);
    
            if (filterPumpStatus) {
                console.log('Filterpumpe läuft. Abfrageintervall auf 30 Sekunden gesetzt.');
                if (intervalID) clearInterval(intervalID);
                intervalID = setInterval(() => getData(sessionid, cid), requesttimeRunning);
            } else {
                console.log('Filterpumpe nicht aktiv. Abfrageintervall auf 15 Minuten gesetzt.');
                if (intervalID) clearInterval(intervalID);
                intervalID = setInterval(() => {
                    checkFilterPumpStatus(sessionid, cid); // Erneut den Status prüfen
                }, requesttimeIdle);
            }
        } catch (error) {
            console.error(`Fehler beim Prüfen des Filterpumpenstatus: ${error.message}`);
        }
    }
    
    async function getData(sessionid, cid) {
        try {
            const response = await fetch(`https://www.bayrol-poolaccess.de/webview/getdata.php?cid=${cid}`, {
                headers: {
                    "accept": "*/*",
                    "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
                    "cache-control": "no-cache",
                    "pragma": "no-cache",
                    "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
                    "sec-ch-ua-mobile": "?0",
                    "sec-ch-ua-platform": "\"Windows\"",
                    "sec-fetch-dest": "empty",
                    "sec-fetch-mode": "cors",
                    "sec-fetch-site": "same-origin",
                    "x-requested-with": "XMLHttpRequest",
                    "cookie": `PHPSESSID=${sessionid}`,
                    "Referer": "https://www.bayrol-poolaccess.de/webview/p/plants.php",
                    "Referrer-Policy": "strict-origin-when-cross-origin",
                    "User-Agent": useragent
                },
                method: "GET"
            });
            let text = await response.text();
            let data = extractValues(text);
            writeData(data);
            console.log(`Daten erfolgreich abgerufen: ${JSON.stringify(data)}`);
        } catch (error) {
            console.error(`Fehler beim Abrufen der Daten: ${error.message}`);
        }
    }
    
    function writeData(obj) {
        try {
            setState(dpCC, parseFloat(obj.CC));
            setState(dpMV, parseFloat(obj.MV));
            setState(dpPH, parseFloat(obj.PH));
        } catch (error) {
            console.error(`Fehler beim Schreiben der Daten: ${error.message}`);
        }
    }
    
    function extractValues(text) {
        const regexPH = /\[pH\]<\/span><h1>([\d\.]+)<\/h1>/gm;
        const regexMV = /\[mV\]<\/span><h1>([\d\.]+)<\/h1>/gm;
        const regexCC = /\[°C\]<\/span><h1>([\d\.]+)<\/h1>/gm;
        let data = {
            PH: (regexPH.exec(text) || [])[1] || 0,
            MV: (regexMV.exec(text) || [])[1] || 0,
            CC: (regexCC.exec(text) || [])[1] || 0,
        };
        return data;
    }
    
    function getSessionId(setcookie) {
        const match = setcookie.match(/PHPSESSID=([^;]+)/);
        return match ? match[1] : '';
    }
    
    function getCID(html) {
        const match = html.match(/var clients = \[(\d+)\];/);
        return match ? match[1] : null;
    }
    
    // Start des Scripts
    main();
    
    

    Ich hoffe, es hilft dem einen oder anderen. :)

    OliverIOO 1 Antwort Letzte Antwort
    0
    • S SegaPro

      Hallo zusammen,

      danke für die tolle Arbeit. Ich habe das Script nun ein paar Tage eingesetzt und war sehr zufrieden.

      Ich hatte nur das Problem, dass manchmal einfach keine Daten mehr kamen und ich das Script ca. 1 x am Tag neu starten musste. Am Internet kann es nicht liegen, denn ich habe keine Zwangstrennungen.

      Ich hatte dann noch die Idee, dass es ja irgendwie sinnvoll wäre, wenn man die Abfrage ein bisschen an die Pumpenlaufzeit anpasst. Wenn diese nämlich nicht läuft, dann sind die Werte ja ohnehin verfälscht.

      Daher jetzt eine Anpassung des Scripts, welches das Abfrageintervall nach dem Status der Filterpumpe richtet - zudem hoffe ich, dass damit auch die "Hänger" besser werden.

      Und da ich ein ehrlicher Mensch bin: Ich kann nur sehr wenig JavaScript - das Script habe nicht ich gemacht, sondern es ist ein Produkt einer KI. Ich habe das originale Script verwendet und der KI halt noch mitgeteilt, was meine Probleme sind und wie ich es gerne hätte.

      Ohne die tolle Vorarbeit hier wäre das nicht möglich gewesen, weil ich der KI sonst niemals hätte sagen können, was ich eigentlich will. Dafür ein großes Dankeschön!!!

      In Zeile "91" müsst ihr noch den Datenpunkt zur Abfrage des Zustandes der Pumpe eintragen. Bei mir ist es ein openknx-Pfad. Zur besseren Auffindbarkeit, habe ich "openknx.blabla" geschrieben. Und natürlich oben eure Logindaten nicht vergessen.

      const fetch = require('node-fetch');
      
      let user = "USERNAME (Mailadresse)";
      let password = "PASSWORT";
      let dpPH = "0_userdata.0.bayrol.ph";
      let dpMV = "0_userdata.0.bayrol.mv";
      let dpCC = "0_userdata.0.bayrol.cc";
      let requesttimeRunning = 30 * 1000; // 30 Sekunden
      let requesttimeIdle = 15 * 60 * 1000; // 15 Minuten
      
      const useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
      
      let intervalID;
      
      async function main() {
          console.log('Starte das Bayrol-Datenabfrage-Skript...');
          let sessionid = await getSession();
          let cid = await login(user, password, sessionid);
      
          if (cid) {
              console.log('Prüfe den Status der Filterpumpe...');
              checkFilterPumpStatus(sessionid, cid);
          }
      }
      
      async function getSession() {
          try {
              const response = await fetch("https://www.bayrol-poolaccess.de/webview/index.php", {
                  headers: {
                      "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
                      "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
                      "cache-control": "no-cache",
                      "pragma": "no-cache",
                      "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
                      "sec-ch-ua-mobile": "?0",
                      "sec-ch-ua-platform": "\"Windows\"",
                      "sec-fetch-dest": "document",
                      "sec-fetch-mode": "navigate",
                      "sec-fetch-site": "none",
                      "sec-fetch-user": "?1",
                      "upgrade-insecure-requests": "1",
                      "User-Agent": useragent
                  },
                  method: "GET"
              });
              let headers = await response.headers;
              console.log(`Session-ID erhalten: ${getSessionId(headers.get("set-cookie"))}`);
              return getSessionId(headers.get("set-cookie"));
          } catch (error) {
              console.error(`Fehler beim Abrufen der Session-ID: ${error.message}`);
          }
      }
      
      async function login(user, password, sessionid) {
          try {
              let body = `username=${encodeURIComponent(user)}&password=${encodeURIComponent(password)}&login=Anmelden`;
              const response = await fetch("https://www.bayrol-poolaccess.de/webview/p/login.php?r=reg", {
                  headers: {
                      "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
                      "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
                      "cache-control": "no-cache",
                      "content-type": "application/x-www-form-urlencoded",
                      "pragma": "no-cache",
                      "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
                      "sec-ch-ua-mobile": "?0",
                      "sec-ch-ua-platform": "\"Windows\"",
                      "sec-fetch-dest": "document",
                      "sec-fetch-mode": "navigate",
                      "sec-fetch-site": "same-origin",
                      "sec-fetch-user": "?1",
                      "upgrade-insecure-requests": "1",
                      "cookie": `PHPSESSID=${sessionid}`,
                      "Referer": "https://www.bayrol-poolaccess.de/webview/p/login.php",
                      "Referrer-Policy": "strict-origin-when-cross-origin",
                      "User-Agent": useragent
                  },
                  body: body,
                  method: "POST"
              });
              let text = await response.text();
              console.log(`CID erhalten: ${getCID(text)}`);
              return getCID(text);
          } catch (error) {
              console.error(`Fehler beim Login: ${error.message}`);
          }
      }
      
      async function checkFilterPumpStatus(sessionid, cid) {
          try {
              // Hier prüfen wir den Status der Filterpumpe
              const filterPumpStatus = getState('openknx.blabla').val;
              console.log(`Status der Filterpumpe: ${filterPumpStatus}`);
      
              if (filterPumpStatus) {
                  console.log('Filterpumpe läuft. Abfrageintervall auf 30 Sekunden gesetzt.');
                  if (intervalID) clearInterval(intervalID);
                  intervalID = setInterval(() => getData(sessionid, cid), requesttimeRunning);
              } else {
                  console.log('Filterpumpe nicht aktiv. Abfrageintervall auf 15 Minuten gesetzt.');
                  if (intervalID) clearInterval(intervalID);
                  intervalID = setInterval(() => {
                      checkFilterPumpStatus(sessionid, cid); // Erneut den Status prüfen
                  }, requesttimeIdle);
              }
          } catch (error) {
              console.error(`Fehler beim Prüfen des Filterpumpenstatus: ${error.message}`);
          }
      }
      
      async function getData(sessionid, cid) {
          try {
              const response = await fetch(`https://www.bayrol-poolaccess.de/webview/getdata.php?cid=${cid}`, {
                  headers: {
                      "accept": "*/*",
                      "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
                      "cache-control": "no-cache",
                      "pragma": "no-cache",
                      "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
                      "sec-ch-ua-mobile": "?0",
                      "sec-ch-ua-platform": "\"Windows\"",
                      "sec-fetch-dest": "empty",
                      "sec-fetch-mode": "cors",
                      "sec-fetch-site": "same-origin",
                      "x-requested-with": "XMLHttpRequest",
                      "cookie": `PHPSESSID=${sessionid}`,
                      "Referer": "https://www.bayrol-poolaccess.de/webview/p/plants.php",
                      "Referrer-Policy": "strict-origin-when-cross-origin",
                      "User-Agent": useragent
                  },
                  method: "GET"
              });
              let text = await response.text();
              let data = extractValues(text);
              writeData(data);
              console.log(`Daten erfolgreich abgerufen: ${JSON.stringify(data)}`);
          } catch (error) {
              console.error(`Fehler beim Abrufen der Daten: ${error.message}`);
          }
      }
      
      function writeData(obj) {
          try {
              setState(dpCC, parseFloat(obj.CC));
              setState(dpMV, parseFloat(obj.MV));
              setState(dpPH, parseFloat(obj.PH));
          } catch (error) {
              console.error(`Fehler beim Schreiben der Daten: ${error.message}`);
          }
      }
      
      function extractValues(text) {
          const regexPH = /\[pH\]<\/span><h1>([\d\.]+)<\/h1>/gm;
          const regexMV = /\[mV\]<\/span><h1>([\d\.]+)<\/h1>/gm;
          const regexCC = /\[°C\]<\/span><h1>([\d\.]+)<\/h1>/gm;
          let data = {
              PH: (regexPH.exec(text) || [])[1] || 0,
              MV: (regexMV.exec(text) || [])[1] || 0,
              CC: (regexCC.exec(text) || [])[1] || 0,
          };
          return data;
      }
      
      function getSessionId(setcookie) {
          const match = setcookie.match(/PHPSESSID=([^;]+)/);
          return match ? match[1] : '';
      }
      
      function getCID(html) {
          const match = html.match(/var clients = \[(\d+)\];/);
          return match ? match[1] : null;
      }
      
      // Start des Scripts
      main();
      
      

      Ich hoffe, es hilft dem einen oder anderen. :)

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #86

      @segapro

      in zeile 174 siehst du main()
      das ruft die eigentliche funktion auf.
      wenn du sonst nix machst, führt das skript alles genau einmal aus
      und ist dann beendet.

      um es nur zu bestimmten zeiten oder rythmus auszuführen
      musst du das main innerhalb einer schedule funktion aufrufen
      https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#schedule
      mit schedule kannst du dann als pattern die zeitpunkte definieren.
      wenn dann noch ein pumpenstatus dazukommt, dann da mit if auch noch den datenpunk abfragen und mit dem gewünschten status abgleichen.

      im link siehst du ein einfaches beispiel.
      wenn du nicht weiterkommst, dann kannst du hier nochmal fragen

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      S 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @segapro

        in zeile 174 siehst du main()
        das ruft die eigentliche funktion auf.
        wenn du sonst nix machst, führt das skript alles genau einmal aus
        und ist dann beendet.

        um es nur zu bestimmten zeiten oder rythmus auszuführen
        musst du das main innerhalb einer schedule funktion aufrufen
        https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#schedule
        mit schedule kannst du dann als pattern die zeitpunkte definieren.
        wenn dann noch ein pumpenstatus dazukommt, dann da mit if auch noch den datenpunk abfragen und mit dem gewünschten status abgleichen.

        im link siehst du ein einfaches beispiel.
        wenn du nicht weiterkommst, dann kannst du hier nochmal fragen

        S Offline
        S Offline
        SegaPro
        schrieb am zuletzt editiert von
        #87

        @oliverio
        Das wundert mich jetzt ein bisschen, denn ich habe es nun seit einigen Stunden erfolgreich laufen.

        Also ich zweifele keinesfalls deine Einwände an - du bist mir um Welten überlegen - und Dein Einwand ist sogar duch mich nachvollziehbar.

        Allerdings läuft das Script:

        javascript.0	18:11:14.976	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"732","CC":"50.0"}
        javascript.0	18:11:44.974	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"732","CC":"50.0"}
        javascript.0	18:12:14.975	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"730","CC":"50.0"}
        javascript.0	18:12:44.976	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"730","CC":"50.0"}
        javascript.0	18:13:15.091	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"730","CC":"50.0"}
        

        Pünktlich alle 30 Sekunden wird abgerufen.

        Einen Temperaturfühler habe ich nicht - daher stehen da 50°C

        Viele Grüße

        OliverIOO 1 Antwort Letzte Antwort
        0
        • S SegaPro

          @oliverio
          Das wundert mich jetzt ein bisschen, denn ich habe es nun seit einigen Stunden erfolgreich laufen.

          Also ich zweifele keinesfalls deine Einwände an - du bist mir um Welten überlegen - und Dein Einwand ist sogar duch mich nachvollziehbar.

          Allerdings läuft das Script:

          javascript.0	18:11:14.976	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"732","CC":"50.0"}
          javascript.0	18:11:44.974	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"732","CC":"50.0"}
          javascript.0	18:12:14.975	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"730","CC":"50.0"}
          javascript.0	18:12:44.976	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"730","CC":"50.0"}
          javascript.0	18:13:15.091	info	script.js.Pool.Bayrol: Daten erfolgreich abgerufen: {"PH":"7.4","MV":"730","CC":"50.0"}
          

          Pünktlich alle 30 Sekunden wird abgerufen.

          Einen Temperaturfühler habe ich nicht - daher stehen da 50°C

          Viele Grüße

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #88

          @segapro
          ja,
          da in der Mitte ist ja ein Intervall
          Die Zeiten sind eigentlich okay. Wenn das Gerät nicht immer antwortet, könntest du die Zeiten mal etwas vergrößern.
          ansonsten sieht doch alles gut aus?

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          H 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @segapro
            ja,
            da in der Mitte ist ja ein Intervall
            Die Zeiten sind eigentlich okay. Wenn das Gerät nicht immer antwortet, könntest du die Zeiten mal etwas vergrößern.
            ansonsten sieht doch alles gut aus?

            H Offline
            H Offline
            Habedere
            schrieb am zuletzt editiert von
            #89

            Hallo,
            hat jemand schon mal die Abfrage lokal über die iP versucht?
            Versuche auch meine Bayrol Relax Power (ohne Umwege) in iObroker zu bekommen.

            Mfg

            Q 1 Antwort Letzte Antwort
            0
            • H Habedere

              Hallo,
              hat jemand schon mal die Abfrage lokal über die iP versucht?
              Versuche auch meine Bayrol Relax Power (ohne Umwege) in iObroker zu bekommen.

              Mfg

              Q Offline
              Q Offline
              qwertz
              schrieb am zuletzt editiert von
              #90

              @habedere Ich habe die Bayrol automatic ph/cl. Ich wüsste nicht, dass die eine lokale API hat. Deine Bayrol Relax Power ist jedoch ein gänzlich anderes Gerät.

              H 1 Antwort Letzte Antwort
              0
              • Q qwertz

                @habedere Ich habe die Bayrol automatic ph/cl. Ich wüsste nicht, dass die eine lokale API hat. Deine Bayrol Relax Power ist jedoch ein gänzlich anderes Gerät.

                H Offline
                H Offline
                Habedere
                schrieb am zuletzt editiert von
                #91

                @qwertz
                Wusste ich auch nicht - klappt aber…

                844d6355-bd36-4f96-8bc2-0f97194a5608-image.png

                Q 1 Antwort Letzte Antwort
                0
                • H Habedere

                  @qwertz
                  Wusste ich auch nicht - klappt aber…

                  844d6355-bd36-4f96-8bc2-0f97194a5608-image.png

                  Q Offline
                  Q Offline
                  qwertz
                  schrieb am zuletzt editiert von
                  #92

                  @habedere wie ist denn die url dieser seite ?

                  OliverIOO Q H 3 Antworten Letzte Antwort
                  0
                  • Q qwertz

                    @habedere wie ist denn die url dieser seite ?

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von
                    #93

                    @qwertz

                    https://www.bayrol-poolaccess.de

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    1 Antwort Letzte Antwort
                    0
                    • Q qwertz

                      @habedere wie ist denn die url dieser seite ?

                      Q Offline
                      Q Offline
                      qwertz
                      schrieb am zuletzt editiert von
                      #94

                      @qwertz Ich bezog mich auf die lokale API, die Habedere als Screenshot gezeigt hat.

                      1 Antwort Letzte Antwort
                      0
                      • Q qwertz

                        @habedere wie ist denn die url dieser seite ?

                        H Offline
                        H Offline
                        Habedere
                        schrieb am zuletzt editiert von
                        #95

                        @qwertz
                        Einfach nur die IP im Heimnetz eingeben

                        H 1 Antwort Letzte Antwort
                        0
                        • H Habedere

                          @qwertz
                          Einfach nur die IP im Heimnetz eingeben

                          H Offline
                          H Offline
                          Habedere
                          schrieb am zuletzt editiert von
                          #96

                          @habedere
                          Zur Info - hab die Werte jetzt mit dem Parser ausgelesen.

                          d12bb99f-3dc8-4ba4-ae37-4abc7d16fe50-image.png

                          J 1 Antwort Letzte Antwort
                          0
                          • H Habedere

                            @habedere
                            Zur Info - hab die Werte jetzt mit dem Parser ausgelesen.

                            d12bb99f-3dc8-4ba4-ae37-4abc7d16fe50-image.png

                            J Offline
                            J Offline
                            james4711
                            schrieb am zuletzt editiert von
                            #97

                            @habedere
                            Hast du das als Alternative für das WebPortal-Skript verwendet?
                            Für meine Automatic Salt 7 bekomme ich immer Zugriffsfehler:
                            2025-04-23 17:18:17.820 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                            2025-04-23 17:18:17.821 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                            2025-04-23 17:18:20.855 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                            2025-04-23 17:18:20.856 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                            2025-04-23 17:18:23.930 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                            2025-04-23 17:18:23.931 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                            2025-04-23 17:18:26.797 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                            2025-04-23 17:18:26.798 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80

                            OliverIOO 1 Antwort Letzte Antwort
                            0
                            • J james4711

                              @habedere
                              Hast du das als Alternative für das WebPortal-Skript verwendet?
                              Für meine Automatic Salt 7 bekomme ich immer Zugriffsfehler:
                              2025-04-23 17:18:17.820 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                              2025-04-23 17:18:17.821 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                              2025-04-23 17:18:20.855 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                              2025-04-23 17:18:20.856 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                              2025-04-23 17:18:23.930 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                              2025-04-23 17:18:23.931 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                              2025-04-23 17:18:26.797 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80
                              2025-04-23 17:18:26.798 - info: parser.0 (11135) Cannot read link "http://xxx.xxx.xxx.xxx/": Error: connect ECONNREFUSED xxx.xxx.xxx.xxx:80

                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von OliverIO
                              #98

                              @james4711

                              lässt sich die seite im browser aufrufen?
                              muss man sich dort zuvor einloggen(am besten mal im inkognito modus prüfen)?

                              der parser adapter hat nur beschränkte möglichkeiten sich wo einzuloggen

                              die fehlermeldung bedeutet das er die verbindung abgelehnt hat. die adresse ist zwar generell erreichbar, aber entweder stimmt was mit dem port oder der anfrage art nicht

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              M 1 Antwort Letzte Antwort
                              0
                              • OliverIOO OliverIO

                                @james4711

                                lässt sich die seite im browser aufrufen?
                                muss man sich dort zuvor einloggen(am besten mal im inkognito modus prüfen)?

                                der parser adapter hat nur beschränkte möglichkeiten sich wo einzuloggen

                                die fehlermeldung bedeutet das er die verbindung abgelehnt hat. die adresse ist zwar generell erreichbar, aber entweder stimmt was mit dem port oder der anfrage art nicht

                                M Offline
                                M Offline
                                mameier1234
                                schrieb am zuletzt editiert von
                                #99

                                Falls sich jemand wundert... aktuell kommen keine Daten. Ist bei Bayrol bekannt und sie arbeiten an einer Lösung.

                                Grüße,

                                Martin

                                M 1 Antwort Letzte Antwort
                                1
                                • M mameier1234

                                  Falls sich jemand wundert... aktuell kommen keine Daten. Ist bei Bayrol bekannt und sie arbeiten an einer Lösung.

                                  M Offline
                                  M Offline
                                  mameier1234
                                  schrieb am zuletzt editiert von
                                  #100

                                  Wenn man sich auf der Bayrol-poolaccess Seite anmeldet, dann kommt ein Hinweise, dass es aktuell zu Kommunikationsproblemen kommt.

                                  Wenn man dies mit "nicht mehr anzeigen" quitiert, dann geht auch das Script wieder :-)

                                  Grüße,

                                  Martin

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


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  611

                                  Online

                                  32.4k

                                  Benutzer

                                  81.5k

                                  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