Weiter zum Inhalt
  • Home
  • Aktuell
  • 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. Tester
  4. Test Adapter PoolControl

NEWS

  • Mitmachen: Sprich „ioBroker“ ein – fĂŒr ein lokales Aktivierungswort
    BluefoxB
    Bluefox
    0
    1
    75

  • Neuer Blogbeitrag: KI in ioBroker, vom Helfer im Admin bis zum eigenen Smart Assistant
    BluefoxB
    Bluefox
    4
    1
    141

  • Neues Video: Der KI-Assistent im ioBroker Admin
    BluefoxB
    Bluefox
    7
    1
    205

Test Adapter PoolControl

Geplant Angeheftet Gesperrt Verschoben Tester
testerpoolpoolcontrolsolar
536 BeitrÀge 19 Kommentatoren 97.8k Aufrufe 18 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.
  • DasBo1975D DasBo1975

    @DennisMenger sagte:

    @DasBo1975 Heute erst wieder zum Testen gekommen. Leider kann ich bei mir noch keine Entwarnung bezĂŒglich des PV-Modus geben.

    Er schaltet noch immer nach ein paar Sekunden ab, obwohl weiter PV-Überschuss vorhanden ist.

    Was ich beobachtet habe ist, dass zeitgleich zum Ausschalten der Pumpe die Werte
    photovoltaic/last_update
    photovoltaic/power_generated_w
    photovoltaic/power_house_w
    photovoltaic/power_surplus_w
    photovoltaic/status_text

    vom Zeitstempel her aktualisiert werden. Das macht ja auch eigentlich Sinn. Aber irgendwie scheint er sich da immer zu verschlucken. Ich habe keine Ahnung wo ich noch gucken kann.

    Sag mir gerne wenn ich noch was testen, ĂŒberprĂŒfen oder bereitstellen kann.

    Vielen Dank

    Schaue ich mir natĂŒrlich an. Gib mir ein bisschen.

    Eine Frage noch. Deine Schalt-/Messsteckdose ist von HM?

    D
    D
    DennisMenger
    schrieb am zuletzt editiert von
    #526

    Schaue ich mir natĂŒrlich an. Gib mir ein bisschen.

    Eine Frage noch. Deine Schalt-/Messsteckdose ist von HM?

    Moin, ja HmIP

    1 Antwort Letzte Antwort
    0
    • D
      D
      DennisMenger
      schrieb am zuletzt editiert von
      #527

      Habe nochmal einen Test gemacht, dass ich die Datenpunkte der HmIP-Steckdose direkt ausgewĂ€hlt habe und nicht ĂŒber den Alias-Datenpunkt. Brachte aber keine VerĂ€nderung.

      DasBo1975D 1 Antwort Letzte Antwort
      0
      • D DennisMenger

        Habe nochmal einen Test gemacht, dass ich die Datenpunkte der HmIP-Steckdose direkt ausgewĂ€hlt habe und nicht ĂŒber den Alias-Datenpunkt. Brachte aber keine VerĂ€nderung.

        DasBo1975D
        DasBo1975D
        DasBo1975
        Developer
        schrieb am zuletzt editiert von
        #528

        @DennisMenger sagte:

        Habe nochmal einen Test gemacht, dass ich die Datenpunkte der HmIP-Steckdose direkt ausgewĂ€hlt habe und nicht ĂŒber den Alias-Datenpunkt. Brachte aber keine VerĂ€nderung.

        Hallo Dennis,

        danke dir erst einmal, dass du weiterhin so geduldig mit testest.

        Da das Problem trotz der bisherigen Änderungen weiterhin auftritt, möchte ich jetzt bewusst nicht noch einmal auf Verdacht etwas an PoolControl Ă€ndern. Die bisherigen Analysen haben zwar tatsĂ€chlich zwei Fehler im Auto-PV-Bereich aufgedeckt, die inzwischen behoben sind, aber offensichtlich waren diese nicht die eigentliche Ursache fĂŒr das von dir beobachtete Abschalten.

        Deshalb möchte ich jetzt einen anderen Weg gehen und den Ablauf auf deinem System wesentlich genauer protokollieren.

        Ich habe dafĂŒr ein kleines Diagnose-Skript vorbereitet, das du bitte temporĂ€r im ioBroker-JavaScript-Adapter laufen lĂ€sst.

        Wichtig: Das Skript steuert nichts. Es verĂ€ndert weder PoolControl noch deine Pumpe oder irgendwelche anderen Datenpunkte. Es beobachtet ausschließlich die fĂŒr den Auto-PV-Betrieb relevanten ZustĂ€nde und schreibt das Ergebnis gesammelt in einen eigenen Diagnose-Datenpunkt unter 0_userdata.0.

        Du musst im Skript auch keine Datenpunkte anpassen. Es liest die von dir in PoolControl eingestellten Datenpunkte fĂŒr Pumpenschalter, Pumpenleistung, PV-Erzeugung und Hausverbrauch automatisch aus der Konfiguration von poolcontrol.0 aus.

        Bitte geh folgendermaßen vor:

        Im JavaScript-Adapter ein neues Skript anlegen.
        Den folgenden Code vollstÀndig hineinkopieren.
        Skript starten.
        Danach den Auto-PV-Modus so testen, wie du es bisher gemacht hast.
        Warten, bis die Pumpe wieder unerwartet ausgeht.
        Anschließend bitte den Inhalt dieses Datenpunktes kopieren:

        0_userdata.0.PoolControlDebug.AutoPVTrace

        Dort werden die letzten 400 relevanten Ereignisse mit Zeitstempeln im Millisekundenbereich gesammelt.

        Mich interessiert dabei vor allem die genaue Reihenfolge: Kommt zuerst der Ausschaltzustand von der HmIP-Steckdose? Setzt PoolControl zuerst seinen internen Pumpenschalter auf AUS? Ändert sich vorher die PV-Berechnung? Oder passiert noch etwas ganz anderes?

        ZusĂ€tzlich werden unter anderem ack, die Quelle der StateĂ€nderung, Pumpenmodus, aktiver Helper, Pumpenleistung, PV-Erzeugung, Hausverbrauch, Überschuss und der aktuelle Auto-PV-Status festgehalten.

        Damit sollten wir beim nÀchsten Auftreten wesentlich genauer erkennen können, was tatsÀchlich die Ursache und was nur die Folge des Abschaltens ist.

        Hier das Skript:

        // PoolControl Auto-PV Diagnose-Trace fuer ioBroker JavaScript-Adapter
        // Read-only gegenueber PoolControl und Hardware.
        // Schreibt nur nach 0_userdata.0.PoolControlDebug.AutoPVTrace.
        
        const PC = 'poolcontrol.0';
        const TRACE_ID = '0_userdata.0.PoolControlDebug.AutoPVTrace';
        const MAX_EVENTS = 400;
        
        let trace = [];
        let ids = {
          pumpSwitch: '',
          pumpPower: '',
          pvPower: '',
          housePower: ''
        };
        
        const pcStates = [
          `${PC}.pump.mode`,
          `${PC}.pump.active_helper`,
          `${PC}.pump.pump_switch`,
          `${PC}.pump.current_power`,
          `${PC}.pump.pump_max_watt`,
          `${PC}.pump.error`,
          `${PC}.photovoltaic.power_generated_w`,
          `${PC}.photovoltaic.power_house_w`,
          `${PC}.photovoltaic.power_surplus_w`,
          `${PC}.photovoltaic.surplus_active`,
          `${PC}.photovoltaic.status_text`,
          `${PC}.photovoltaic.afterrun_min`,
          `${PC}.photovoltaic.last_update`,
          `${PC}.circulation.daily_remaining`,
          `${PC}.status.season_active`
        ];
        
        function v(id) {
          if (!id) return null;
          const s = getState(id);
          return s ? s.val : null;
        }
        
        function nowMs() {
          const d = new Date();
          return d.toTimeString().slice(0, 8) + '.' + String(d.getMilliseconds()).padStart(3, '0');
        }
        
        function short(id) {
          return String(id || '').replace(`${PC}.`, '');
        }
        
        function add(src, s) {
          const ev = {
            rt: nowMs(),
            src: short(src),
            v: s ? s.val : null,
            ack: s ? s.ack : null,
            ts: s ? s.ts : null,
            lc: s ? s.lc : null,
            from: s ? s.from : null,
            q: s && s.q !== undefined ? s.q : null,
        
            mode: v(`${PC}.pump.mode`),
            owner: v(`${PC}.pump.active_helper`),
            pump: v(`${PC}.pump.pump_switch`),
            hwPump: v(ids.pumpSwitch),
            pumpW: v(`${PC}.pump.current_power`),
            hwPumpW: v(ids.pumpPower),
            maxW: v(`${PC}.pump.pump_max_watt`),
        
            pv: v(`${PC}.photovoltaic.power_generated_w`),
            house: v(`${PC}.photovoltaic.power_house_w`),
            surplus: v(`${PC}.photovoltaic.power_surplus_w`),
            surplusActive: v(`${PC}.photovoltaic.surplus_active`),
            pvText: v(`${PC}.photovoltaic.status_text`),
            afterrun: v(`${PC}.photovoltaic.afterrun_min`),
        
            error: v(`${PC}.pump.error`),
            dailyRemaining: v(`${PC}.circulation.daily_remaining`),
            season: v(`${PC}.status.season_active`)
          };
        
          if (ids.pvPower) ev.hwPv = v(ids.pvPower);
          if (ids.housePower) ev.hwHouse = v(ids.housePower);
        
          trace.push(ev);
          while (trace.length > MAX_EVENTS) trace.shift();
        
          setState(TRACE_ID, JSON.stringify(trace), true);
        }
        
        createState(TRACE_ID, '[]', {
          name: 'PoolControl Auto-PV Trace',
          type: 'string',
          role: 'json',
          read: true,
          write: true
        }, () => {
          setState(TRACE_ID, '[]', true);
        
          getObject(`system.adapter.${PC}`, (err, obj) => {
            const cfg = obj && obj.native ? obj.native : {};
        
            ids.pumpSwitch = String(cfg.pump_switch || '').trim();
            ids.pumpPower = String(cfg.pump_current_power_id || '').trim();
            ids.pvPower = String(cfg.power_generated_id || '').trim();
            ids.housePower = String(cfg.power_house_id || '').trim();
        
            const watchIds = Array.from(new Set([
              ...pcStates,
              ids.pumpSwitch,
              ids.pumpPower,
              ids.pvPower,
              ids.housePower
            ].filter(Boolean)));
        
            add('script.start', {
              val: {
                pumpSwitch: ids.pumpSwitch || null,
                pumpPower: ids.pumpPower || null,
                pvPower: ids.pvPower || null,
                housePower: ids.housePower || null
              },
              ack: true,
              ts: Date.now(),
              lc: Date.now(),
              from: 'javascript',
              q: 0
            });
        
            watchIds.forEach(id => {
              on({ id, change: 'any' }, obj => add(id, obj.state));
            });
        
            log(
              `PoolControl Auto-PV Trace gestartet. Beobachte ${watchIds.length} States. Ausgabe: ${TRACE_ID}`,
              'info'
            );
          });
        });
        

        Wenn die Pumpe ausgegangen ist, brauchst du mir anschließend nur den kompletten Inhalt von

        0_userdata.0.PoolControlDebug.AutoPVTrace

        zu schicken.

        Danach kannst du das Diagnose-Skript wieder stoppen oder löschen.

        Ich möchte diesmal wirklich erst sehen, was beim Abschalten auf deinem System genau passiert, bevor ich noch einmal etwas an PoolControl Àndere.

        Vielen Dank nochmals fĂŒr deine Geduld und vor allem fĂŒrs Testen und Bereitstellen der Informationen. Das hilft mir wirklich sehr bei der Fehlersuche. 🙂

        • Entwickler des Adapters PoolControl / BertinSoft-Sprachassistent

        • Einfach macht aus einem Problem keine Lösung

        • universelle GerĂ€tedatenstruktur mit kontextueller Funktionszuordnung. Oder einfach gesagt: Jedes GerĂ€t spricht dieselbe Sprache - nur nicht jedes sagt alles!

        D 1 Antwort Letzte Antwort
        0
        • DasBo1975D DasBo1975

          @DennisMenger sagte:

          Habe nochmal einen Test gemacht, dass ich die Datenpunkte der HmIP-Steckdose direkt ausgewĂ€hlt habe und nicht ĂŒber den Alias-Datenpunkt. Brachte aber keine VerĂ€nderung.

          Hallo Dennis,

          danke dir erst einmal, dass du weiterhin so geduldig mit testest.

          Da das Problem trotz der bisherigen Änderungen weiterhin auftritt, möchte ich jetzt bewusst nicht noch einmal auf Verdacht etwas an PoolControl Ă€ndern. Die bisherigen Analysen haben zwar tatsĂ€chlich zwei Fehler im Auto-PV-Bereich aufgedeckt, die inzwischen behoben sind, aber offensichtlich waren diese nicht die eigentliche Ursache fĂŒr das von dir beobachtete Abschalten.

          Deshalb möchte ich jetzt einen anderen Weg gehen und den Ablauf auf deinem System wesentlich genauer protokollieren.

          Ich habe dafĂŒr ein kleines Diagnose-Skript vorbereitet, das du bitte temporĂ€r im ioBroker-JavaScript-Adapter laufen lĂ€sst.

          Wichtig: Das Skript steuert nichts. Es verĂ€ndert weder PoolControl noch deine Pumpe oder irgendwelche anderen Datenpunkte. Es beobachtet ausschließlich die fĂŒr den Auto-PV-Betrieb relevanten ZustĂ€nde und schreibt das Ergebnis gesammelt in einen eigenen Diagnose-Datenpunkt unter 0_userdata.0.

          Du musst im Skript auch keine Datenpunkte anpassen. Es liest die von dir in PoolControl eingestellten Datenpunkte fĂŒr Pumpenschalter, Pumpenleistung, PV-Erzeugung und Hausverbrauch automatisch aus der Konfiguration von poolcontrol.0 aus.

          Bitte geh folgendermaßen vor:

          Im JavaScript-Adapter ein neues Skript anlegen.
          Den folgenden Code vollstÀndig hineinkopieren.
          Skript starten.
          Danach den Auto-PV-Modus so testen, wie du es bisher gemacht hast.
          Warten, bis die Pumpe wieder unerwartet ausgeht.
          Anschließend bitte den Inhalt dieses Datenpunktes kopieren:

          0_userdata.0.PoolControlDebug.AutoPVTrace

          Dort werden die letzten 400 relevanten Ereignisse mit Zeitstempeln im Millisekundenbereich gesammelt.

          Mich interessiert dabei vor allem die genaue Reihenfolge: Kommt zuerst der Ausschaltzustand von der HmIP-Steckdose? Setzt PoolControl zuerst seinen internen Pumpenschalter auf AUS? Ändert sich vorher die PV-Berechnung? Oder passiert noch etwas ganz anderes?

          ZusĂ€tzlich werden unter anderem ack, die Quelle der StateĂ€nderung, Pumpenmodus, aktiver Helper, Pumpenleistung, PV-Erzeugung, Hausverbrauch, Überschuss und der aktuelle Auto-PV-Status festgehalten.

          Damit sollten wir beim nÀchsten Auftreten wesentlich genauer erkennen können, was tatsÀchlich die Ursache und was nur die Folge des Abschaltens ist.

          Hier das Skript:

          // PoolControl Auto-PV Diagnose-Trace fuer ioBroker JavaScript-Adapter
          // Read-only gegenueber PoolControl und Hardware.
          // Schreibt nur nach 0_userdata.0.PoolControlDebug.AutoPVTrace.
          
          const PC = 'poolcontrol.0';
          const TRACE_ID = '0_userdata.0.PoolControlDebug.AutoPVTrace';
          const MAX_EVENTS = 400;
          
          let trace = [];
          let ids = {
            pumpSwitch: '',
            pumpPower: '',
            pvPower: '',
            housePower: ''
          };
          
          const pcStates = [
            `${PC}.pump.mode`,
            `${PC}.pump.active_helper`,
            `${PC}.pump.pump_switch`,
            `${PC}.pump.current_power`,
            `${PC}.pump.pump_max_watt`,
            `${PC}.pump.error`,
            `${PC}.photovoltaic.power_generated_w`,
            `${PC}.photovoltaic.power_house_w`,
            `${PC}.photovoltaic.power_surplus_w`,
            `${PC}.photovoltaic.surplus_active`,
            `${PC}.photovoltaic.status_text`,
            `${PC}.photovoltaic.afterrun_min`,
            `${PC}.photovoltaic.last_update`,
            `${PC}.circulation.daily_remaining`,
            `${PC}.status.season_active`
          ];
          
          function v(id) {
            if (!id) return null;
            const s = getState(id);
            return s ? s.val : null;
          }
          
          function nowMs() {
            const d = new Date();
            return d.toTimeString().slice(0, 8) + '.' + String(d.getMilliseconds()).padStart(3, '0');
          }
          
          function short(id) {
            return String(id || '').replace(`${PC}.`, '');
          }
          
          function add(src, s) {
            const ev = {
              rt: nowMs(),
              src: short(src),
              v: s ? s.val : null,
              ack: s ? s.ack : null,
              ts: s ? s.ts : null,
              lc: s ? s.lc : null,
              from: s ? s.from : null,
              q: s && s.q !== undefined ? s.q : null,
          
              mode: v(`${PC}.pump.mode`),
              owner: v(`${PC}.pump.active_helper`),
              pump: v(`${PC}.pump.pump_switch`),
              hwPump: v(ids.pumpSwitch),
              pumpW: v(`${PC}.pump.current_power`),
              hwPumpW: v(ids.pumpPower),
              maxW: v(`${PC}.pump.pump_max_watt`),
          
              pv: v(`${PC}.photovoltaic.power_generated_w`),
              house: v(`${PC}.photovoltaic.power_house_w`),
              surplus: v(`${PC}.photovoltaic.power_surplus_w`),
              surplusActive: v(`${PC}.photovoltaic.surplus_active`),
              pvText: v(`${PC}.photovoltaic.status_text`),
              afterrun: v(`${PC}.photovoltaic.afterrun_min`),
          
              error: v(`${PC}.pump.error`),
              dailyRemaining: v(`${PC}.circulation.daily_remaining`),
              season: v(`${PC}.status.season_active`)
            };
          
            if (ids.pvPower) ev.hwPv = v(ids.pvPower);
            if (ids.housePower) ev.hwHouse = v(ids.housePower);
          
            trace.push(ev);
            while (trace.length > MAX_EVENTS) trace.shift();
          
            setState(TRACE_ID, JSON.stringify(trace), true);
          }
          
          createState(TRACE_ID, '[]', {
            name: 'PoolControl Auto-PV Trace',
            type: 'string',
            role: 'json',
            read: true,
            write: true
          }, () => {
            setState(TRACE_ID, '[]', true);
          
            getObject(`system.adapter.${PC}`, (err, obj) => {
              const cfg = obj && obj.native ? obj.native : {};
          
              ids.pumpSwitch = String(cfg.pump_switch || '').trim();
              ids.pumpPower = String(cfg.pump_current_power_id || '').trim();
              ids.pvPower = String(cfg.power_generated_id || '').trim();
              ids.housePower = String(cfg.power_house_id || '').trim();
          
              const watchIds = Array.from(new Set([
                ...pcStates,
                ids.pumpSwitch,
                ids.pumpPower,
                ids.pvPower,
                ids.housePower
              ].filter(Boolean)));
          
              add('script.start', {
                val: {
                  pumpSwitch: ids.pumpSwitch || null,
                  pumpPower: ids.pumpPower || null,
                  pvPower: ids.pvPower || null,
                  housePower: ids.housePower || null
                },
                ack: true,
                ts: Date.now(),
                lc: Date.now(),
                from: 'javascript',
                q: 0
              });
          
              watchIds.forEach(id => {
                on({ id, change: 'any' }, obj => add(id, obj.state));
              });
          
              log(
                `PoolControl Auto-PV Trace gestartet. Beobachte ${watchIds.length} States. Ausgabe: ${TRACE_ID}`,
                'info'
              );
            });
          });
          

          Wenn die Pumpe ausgegangen ist, brauchst du mir anschließend nur den kompletten Inhalt von

          0_userdata.0.PoolControlDebug.AutoPVTrace

          zu schicken.

          Danach kannst du das Diagnose-Skript wieder stoppen oder löschen.

          Ich möchte diesmal wirklich erst sehen, was beim Abschalten auf deinem System genau passiert, bevor ich noch einmal etwas an PoolControl Àndere.

          Vielen Dank nochmals fĂŒr deine Geduld und vor allem fĂŒrs Testen und Bereitstellen der Informationen. Das hilft mir wirklich sehr bei der Fehlersuche. 🙂

          D
          D
          DennisMenger
          schrieb am zuletzt editiert von DennisMenger
          #529

          @DasBo1975 Moin und vielen Dank.

          Wie soll ich dir den Inhalt schicken? Hier fĂŒr das Forum sind es zu viele Zeichen.

          EDIT: habe dir eine Nachricht mit der Datei geschickt

          1 Antwort Letzte Antwort
          1
          • DasBo1975D
            DasBo1975D
            DasBo1975
            Developer
            schrieb am zuletzt editiert von
            #530

            Hallo Dennis,

            erst einmal vielen Dank, dass du das kleine Diagnose-Skript so schnell ausprobiert und mir die Aufzeichnung zur VerfĂŒgung gestellt hast.

            Die Daten daraus waren fĂŒr mich mehr als hilfreich. Ohne diesen detaillierten Mitschnitt hĂ€tte ich diesen Fehler vermutlich noch sehr lange gesucht – oder vielleicht ĂŒberhaupt nicht gefunden. Im normalen Log waren Ursache und Folge einfach nicht eindeutig genug voneinander zu unterscheiden.

            Mit dem Diagnose-Skript konnte ich zum ersten Mal ganz genau sehen, was beim Abschalten passiert: Auto-PV hatte die Pumpe korrekt gestartet, ausreichend PV-Überschuss war vorhanden und auch die Haltebedingung war erfĂŒllt. Trotzdem kam der Ausschaltbefehl direkt aus PoolControl. Die HmIP-Steckdose war damit endgĂŒltig aus dem Verdacht raus – sie hat nur brav das gemacht, was PoolControl ihr gesagt hat.

            Danach ließ sich der eigentliche ÜbeltĂ€ter finden. 😉

            PoolControl besitzt fĂŒr seine verschiedenen Helper bewusst eine Art ZustĂ€ndigkeits- und Vorrangsteuerung. Vereinfacht gesagt soll jeder Helper wissen, wann er die Pumpe steuern darf und – mindestens genauso wichtig – wann er die Finger davon lassen muss.

            Einer hat sich dabei allerdings ein wenig danebenbenommen: Solar Extended.

            Solar Extended hat vollkommen richtig erkannt, dass im Modus Auto-PV gerade nicht seine Stunde geschlagen hat. Anstatt sich danach aber einfach zurĂŒckzulehnen und Auto-PV seine Arbeit machen zu lassen, hat er sinngemĂ€ĂŸ gesagt:

            „Ich soll die Pumpe gerade nicht einschalten? Na gut, dann mache ich sie eben aus.“ 😄

            Genau das war der Fehler.

            Dadurch konnte Solar Extended bei seinem nĂ€chsten Durchlauf eine von Auto-PV korrekt laufende Pumpe wieder ausschalten – obwohl Auto-PV weiterhin ausreichend Überschuss erkannt hatte und die Pumpe ausdrĂŒcklich weiterlaufen lassen wollte.

            Das erklĂ€rt auch, warum ich das Problem auf meinem eigenen System nicht reproduzieren konnte: Ich verwende die normale Solarsteuerung. Du verwendest Solar Extended – und genau in dieser Kombination mit Auto-PV lag der Fehler.

            Ich habe das Verhalten inzwischen gezielt in einer Testumgebung mit deinen Werten nachgestellt und konnte die Abschaltung reproduzieren. Anschließend wurde die ZustĂ€ndigkeit von Solar Extended korrigiert und derselbe Test erneut durchgefĂŒhrt. Auto-PV bleibt jetzt unangetastet. Gleichzeitig wurde geprĂŒft, dass Solar Extended im normalen Automatikmodus weiterhin wie vorgesehen die Pumpe ein- und ausschalten kann.

            Die Version 1.4.5 mit dieser Korrektur sollte in den nĂ€chsten Stunden verfĂŒgbar sein.

            Und an dieser Stelle auch noch einmal ein großes Dankeschön an dich und natĂŒrlich an alle anderen, die PoolControl testen, RĂŒckmeldungen geben, Logs bereitstellen und auch bei solchen hartnĂ€ckigen Fehlern dranbleiben.

            Gerade dieser Fall zeigt ziemlich schön, wie wertvoll solche RĂŒckmeldungen sind. Ohne deinen Test mit dem Diagnose-Skript hĂ€tten wir zwar einige andere echte Schwachstellen gefunden und behoben – aber der eigentliche Fehler, wegen dem wir ursprĂŒnglich angefangen hatten zu suchen, hĂ€tte sich weiterhin sehr erfolgreich vor uns versteckt. 😉

            Vielen Dank fĂŒr deine UnterstĂŒtzung!

            • Entwickler des Adapters PoolControl / BertinSoft-Sprachassistent

            • Einfach macht aus einem Problem keine Lösung

            • universelle GerĂ€tedatenstruktur mit kontextueller Funktionszuordnung. Oder einfach gesagt: Jedes GerĂ€t spricht dieselbe Sprache - nur nicht jedes sagt alles!

            D 1 Antwort Letzte Antwort
            0
            • DasBo1975D DasBo1975

              Hallo Dennis,

              erst einmal vielen Dank, dass du das kleine Diagnose-Skript so schnell ausprobiert und mir die Aufzeichnung zur VerfĂŒgung gestellt hast.

              Die Daten daraus waren fĂŒr mich mehr als hilfreich. Ohne diesen detaillierten Mitschnitt hĂ€tte ich diesen Fehler vermutlich noch sehr lange gesucht – oder vielleicht ĂŒberhaupt nicht gefunden. Im normalen Log waren Ursache und Folge einfach nicht eindeutig genug voneinander zu unterscheiden.

              Mit dem Diagnose-Skript konnte ich zum ersten Mal ganz genau sehen, was beim Abschalten passiert: Auto-PV hatte die Pumpe korrekt gestartet, ausreichend PV-Überschuss war vorhanden und auch die Haltebedingung war erfĂŒllt. Trotzdem kam der Ausschaltbefehl direkt aus PoolControl. Die HmIP-Steckdose war damit endgĂŒltig aus dem Verdacht raus – sie hat nur brav das gemacht, was PoolControl ihr gesagt hat.

              Danach ließ sich der eigentliche ÜbeltĂ€ter finden. 😉

              PoolControl besitzt fĂŒr seine verschiedenen Helper bewusst eine Art ZustĂ€ndigkeits- und Vorrangsteuerung. Vereinfacht gesagt soll jeder Helper wissen, wann er die Pumpe steuern darf und – mindestens genauso wichtig – wann er die Finger davon lassen muss.

              Einer hat sich dabei allerdings ein wenig danebenbenommen: Solar Extended.

              Solar Extended hat vollkommen richtig erkannt, dass im Modus Auto-PV gerade nicht seine Stunde geschlagen hat. Anstatt sich danach aber einfach zurĂŒckzulehnen und Auto-PV seine Arbeit machen zu lassen, hat er sinngemĂ€ĂŸ gesagt:

              „Ich soll die Pumpe gerade nicht einschalten? Na gut, dann mache ich sie eben aus.“ 😄

              Genau das war der Fehler.

              Dadurch konnte Solar Extended bei seinem nĂ€chsten Durchlauf eine von Auto-PV korrekt laufende Pumpe wieder ausschalten – obwohl Auto-PV weiterhin ausreichend Überschuss erkannt hatte und die Pumpe ausdrĂŒcklich weiterlaufen lassen wollte.

              Das erklĂ€rt auch, warum ich das Problem auf meinem eigenen System nicht reproduzieren konnte: Ich verwende die normale Solarsteuerung. Du verwendest Solar Extended – und genau in dieser Kombination mit Auto-PV lag der Fehler.

              Ich habe das Verhalten inzwischen gezielt in einer Testumgebung mit deinen Werten nachgestellt und konnte die Abschaltung reproduzieren. Anschließend wurde die ZustĂ€ndigkeit von Solar Extended korrigiert und derselbe Test erneut durchgefĂŒhrt. Auto-PV bleibt jetzt unangetastet. Gleichzeitig wurde geprĂŒft, dass Solar Extended im normalen Automatikmodus weiterhin wie vorgesehen die Pumpe ein- und ausschalten kann.

              Die Version 1.4.5 mit dieser Korrektur sollte in den nĂ€chsten Stunden verfĂŒgbar sein.

              Und an dieser Stelle auch noch einmal ein großes Dankeschön an dich und natĂŒrlich an alle anderen, die PoolControl testen, RĂŒckmeldungen geben, Logs bereitstellen und auch bei solchen hartnĂ€ckigen Fehlern dranbleiben.

              Gerade dieser Fall zeigt ziemlich schön, wie wertvoll solche RĂŒckmeldungen sind. Ohne deinen Test mit dem Diagnose-Skript hĂ€tten wir zwar einige andere echte Schwachstellen gefunden und behoben – aber der eigentliche Fehler, wegen dem wir ursprĂŒnglich angefangen hatten zu suchen, hĂ€tte sich weiterhin sehr erfolgreich vor uns versteckt. 😉

              Vielen Dank fĂŒr deine UnterstĂŒtzung!

              D
              D
              DennisMenger
              schrieb am zuletzt editiert von
              #531

              @DasBo1975 Super, vielen Dank. Es sieht tatsÀchlich so aus, dass es aktuell so funktioniert wie es soll. Ich werde das weiter beobachten und Info geben.

              Vielen Dank fĂŒr die immer weitere Entwicklung des Adapters.

              DasBo1975D 1 Antwort Letzte Antwort
              1
              • D DennisMenger

                @DasBo1975 Super, vielen Dank. Es sieht tatsÀchlich so aus, dass es aktuell so funktioniert wie es soll. Ich werde das weiter beobachten und Info geben.

                Vielen Dank fĂŒr die immer weitere Entwicklung des Adapters.

                DasBo1975D
                DasBo1975D
                DasBo1975
                Developer
                schrieb am zuletzt editiert von
                #532

                @DennisMenger sagte:

                @DasBo1975 Super, vielen Dank. Es sieht tatsÀchlich so aus, dass es aktuell so funktioniert wie es soll. Ich werde das weiter beobachten und Info geben.

                Vielen Dank fĂŒr die immer weitere Entwicklung des Adapters.

                Das freut mich doch schon mal zu hören

                • Entwickler des Adapters PoolControl / BertinSoft-Sprachassistent

                • Einfach macht aus einem Problem keine Lösung

                • universelle GerĂ€tedatenstruktur mit kontextueller Funktionszuordnung. Oder einfach gesagt: Jedes GerĂ€t spricht dieselbe Sprache - nur nicht jedes sagt alles!

                1 Antwort Letzte Antwort
                0
                • C
                  C
                  claus1993
                  schrieb am zuletzt editiert von
                  #533

                  @dasbo1975,
                  wie hast du das mit dem Frostschutz geregelt?
                  HĂ€lt der Frostschutz die Temperatur des Beckens auf +2° oder berĂŒcksichtigst er auch Wasserleitungen die teilweise schneller gefrieren als das grĂ¶ĂŸere Becken?

                  DasBo1975D 1 Antwort Letzte Antwort
                  0
                  • C claus1993

                    @dasbo1975,
                    wie hast du das mit dem Frostschutz geregelt?
                    HĂ€lt der Frostschutz die Temperatur des Beckens auf +2° oder berĂŒcksichtigst er auch Wasserleitungen die teilweise schneller gefrieren als das grĂ¶ĂŸere Becken?

                    DasBo1975D
                    DasBo1975D
                    DasBo1975
                    Developer
                    schrieb am zuletzt editiert von
                    #534

                    @claus1993 sagte:

                    @dasbo1975,
                    wie hast du das mit dem Frostschutz geregelt?
                    HĂ€lt der Frostschutz die Temperatur des Beckens auf +2° oder berĂŒcksichtigst er auch Wasserleitungen die teilweise schneller gefrieren als das grĂ¶ĂŸere Becken?

                    Hallo Claus,

                    ich habe den Frostschutz bewusst nicht an der Beckentemperatur festgemacht, sondern an der Außentemperatur.

                    Sobald die Außentemperatur den eingestellten Frostschutzwert erreicht bzw. unterschreitet, wird die UmwĂ€lzpumpe eingeschaltet. Es geht also nicht darum, das komplette Becken auf z. B. +2 °C zu halten, sondern darum, bei Frostgefahr das Wasser in Bewegung zu halten und damit auch die Leitungen und wasserfĂŒhrenden Anlagenteile mit einzubeziehen.

                    Die Rohrleitungen selbst werden dabei allerdings nicht separat temperaturmĂ€ĂŸig ĂŒberwacht. PoolControl reagiert auf die Außentemperatur als Auslöser fĂŒr den Frostschutz.

                    Die zusĂ€tzlichen +2 °C sind nur der Abstand zum spĂ€teren Abschalten. Wenn der Frostschutz zum Beispiel bei +2 °C anspringt, wird er erst wieder beendet, wenn die Außentemperatur ungefĂ€hr +4 °C erreicht hat. Damit soll verhindert werden, dass die Pumpe stĂ€ndig an und aus schaltet, wenn die Temperatur genau um den Grenzwert herum schwankt.

                    • Entwickler des Adapters PoolControl / BertinSoft-Sprachassistent

                    • Einfach macht aus einem Problem keine Lösung

                    • universelle GerĂ€tedatenstruktur mit kontextueller Funktionszuordnung. Oder einfach gesagt: Jedes GerĂ€t spricht dieselbe Sprache - nur nicht jedes sagt alles!

                    1 Antwort Letzte Antwort
                    1
                    • DasBo1975D
                      DasBo1975D
                      DasBo1975
                      Developer
                      schrieb am zuletzt editiert von
                      #535

                      Nicht, dass ihr denkt, bei PoolControl geht es nicht weiter. 😉

                      Aktuell lÀuft der Adapter bewusst weiter im Latest-Repository, weil ich die laufende Poolsaison noch komplett als Testphase nutzen möchte.

                      Mein nĂ€chstes grĂ¶ĂŸeres Ziel steht aber schon fest: Wenn die Saison durch ist und alles weiterhin sauber lĂ€uft, möchte ich ĂŒber die Wintermonate die Aufnahme von PoolControl ins Stable-Repository von ioBroker vorbereiten und anschließend beantragen.

                      Bis dahin bleibt Latest weiterhin die Teststrecke fĂŒr die laufende Saison und natĂŒrlich auch fĂŒr alles, was noch auffĂ€llt oder dazukommt.

                      Es geht also weiter – nur im Moment ganz bewusst ohne unnötige Hektik. 🙂

                      • Entwickler des Adapters PoolControl / BertinSoft-Sprachassistent

                      • Einfach macht aus einem Problem keine Lösung

                      • universelle GerĂ€tedatenstruktur mit kontextueller Funktionszuordnung. Oder einfach gesagt: Jedes GerĂ€t spricht dieselbe Sprache - nur nicht jedes sagt alles!

                      1 Antwort Letzte Antwort
                      2
                      • DasBo1975D
                        DasBo1975D
                        DasBo1975
                        Developer
                        schrieb am zuletzt editiert von
                        #536

                        PoolControl 1.4.6 veröffentlicht – nĂ€chster Schritt Stable
                        Hallo zusammen,
                        ich habe heute die Version 1.4.6 von PoolControl veröffentlicht.
                        Große neue Funktionen sind diesmal bewusst nicht dazugekommen. Der Schwerpunkt der letzten Arbeiten lag vielmehr darauf, den bestehenden Adapter vor dem geplanten ersten Stable-Release noch einmal technisch grĂŒndlich zu ĂŒberprĂŒfen und weiter zu stabilisieren.
                        Unter anderem habe ich den bestehenden Code umfangreicher mit einer TypeScript-PrĂŒfung durchlaufen lassen und dabei einige kleinere Stellen bereinigt und robuster gemacht. ZusĂ€tzlich sind ein paar Fehler aufgefallen, die im normalen Betrieb kaum bzw. nur unter bestimmten Bedingungen sichtbar waren – beispielsweise bei den Temperaturstatistiken und bei der Berechnung des tĂ€glichen UmwĂ€lzvolumens bei Pumpen mit schwankender Leistung bzw. schwankendem Durchfluss. Auch diese Punkte sind in 1.4.6 korrigiert.
                        An den grundlegenden Funktionen und der Bedienung von PoolControl hat sich dadurch nichts Wesentliches geÀndert. Es handelt sich hauptsÀchlich um StabilitÀts-, QualitÀts- und ZuverlÀssigkeitsverbesserungen unter der Haube.
                        Mein Plan ist, die Version 1.4.6 nach einigen Tagen Testzeit in Latest als erste Stable-Version von PoolControl vorzuschlagen.
                        Deshalb wĂ€re es natĂŒrlich klasse, wenn diejenigen von euch, die PoolControl bereits testen, in den nĂ€chsten Tagen ein bisschen darauf achten, ob euch mit 1.4.6 noch etwas Ungewöhnliches auffĂ€llt. Wenn etwas nicht so funktioniert wie erwartet, meldet euch bitte hier im Thread – auch vermeintliche Kleinigkeiten sind interessant.
                        Wenn alles weiterhin so ruhig lĂ€uft wie bisher, geht PoolControl damit den nĂ€chsten großen Schritt Richtung Stable Repository.
                        Vielen Dank euch allen fĂŒrs Testen und fĂŒr eure RĂŒckmeldungen! 🙂

                        • Entwickler des Adapters PoolControl / BertinSoft-Sprachassistent

                        • Einfach macht aus einem Problem keine Lösung

                        • universelle GerĂ€tedatenstruktur mit kontextueller Funktionszuordnung. Oder einfach gesagt: Jedes GerĂ€t spricht dieselbe Sprache - nur nicht jedes sagt alles!

                        1 Antwort Letzte Antwort
                        1

                        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

                        243

                        Online

                        33.1k

                        Benutzer

                        84.1k

                        Themen

                        1.4m

                        BeitrÀge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2026
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

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