Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. E3DC Hauskraftwerk steuern

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    E3DC Hauskraftwerk steuern

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      ArnoD @ArnoD last edited by

      Neue Version Charge-Control auf GitHub hochgeladen.
      Version: 1.2.15
      Änderungen:

      • Kleinere Optimierungen und Fehler behoben bei der Berechnung der soll Ladeleistung.
      A 1 Reply Last reply Reply Quote 0
      • A
        ArnoD @jans_ios last edited by

        @jans_ios
        Die soll Ladeleistung kannst du nur bedingt, wenn überhaupt zum Regeln von deinem Heizstab verwenden.
        Es wird eigentlich nur berechnet, welche Leistung nötig wäre, um die Batterie bis Ladeende auf SOC Ladeende zu laden.
        Je nach Einstellung kann dieser Wert vom tatsächlichen Wert, was CC berechnet, abweichen.
        z. B. die eingestellte Ladeschwelle ist noch nicht erreicht, dann wird die gesamte PV-Leistung zum Laden verwendet, aber die soll Ladeleistung würde nur die berechnete Ladeleistung anzeigen und die wäre natürlich geringer.

        J 1 Reply Last reply Reply Quote 0
        • J
          jans_ios @ArnoD last edited by

          @arnod
          In dem Moment wäre der Wert meiner Meinung nach sinnvollerweise auf die Max. Ladekapazität des HKW zu setzen. Dann würde mein Skript in meinem Gerät erst dann den Heizstab ansteuern, wenn mehr als 9kW + Hausverbrauch + Wallbox vorhanden ist.

          Welchen Wert könnte ich alternativ abfragen, ob gerade alles Vorhandene in den Akku sollte?

          A 1 Reply Last reply Reply Quote 0
          • A
            ArnoD @jans_ios last edited by

            @jans_ios
            Der einzige Wert wo du sicher sein kannst, dass die Leistung nicht benötigt wird, ist die Einspeiseleistung.
            Ich mache das bei der Steuerung der Wallbox auch so.
            In dem Script prüfe ich, ob gerade in das Netz eingespeist wird und berechne die maximale Ladeleistung für das Auto.
            Vom Hausverbrauch wird in einem anderen Script die Ladeleistung der Wallbox abgezogen und diesen Wert verwende ich als Hausverbrauch in meinem Wallbox Script.
            Mit deinem Heizstab müsste es eigentlich genauso funktionieren.
            z.B so :

            
                    if (NetzLeistung_W <= -500 && BatterieLeistung_W <= 0){
                        HeizstabLeistung_W = (PV_Leistung_W-(Hausverbrauch_W-Heizstableistung_Aktuell)+BatterieLeistung_W-NetzLeistung_W)-2500; // Wenn der Heizstab min. 2000 W benötigt 
                    }else if (NetzLeistung_W > -500 && BatterieLeistung_W <= 0) {
                        HeizstabLeistung_W = (PV_Leistung_W-(Hausverbrauch_W-Heizstableistung_Aktuell)+BatterieLeistung_W)-2500;                 
                    }else if (NetzLeistung_W > -500 && BatterieLeistung_W > 0) {
                       HeizstabLeistung_W = (PV_Leistung_W-(Hausverbrauch_W-Heizstableistung_Aktuell)-BatterieLeistung_W);                                    
                    }else if (NetzLeistung_W <= -500 && BatterieLeistung_W > 0){
                        HeizstabLeistung_W = (PV_Leistung_W-(Hausverbrauch_W-Heizstableistung_Aktuell)-BatterieLeistung_W-NetzLeistung_W);
                    }                  
                    // Prüfen ob Hausverbrauch und Leistung Heizstab die max. WR-Leistung-500W übersteigt
                    if (HeizstabLeistung_W+(Hausverbrauch_W-Heizstableistung_Aktuell) > MaxLeistungWR_W-500){HeizstabLeistung_W = (MaxLeistungWR_W-500)-(Hausverbrauch_W-Heizstableistung_Aktuell)}
            
            A 1 Reply Last reply Reply Quote 0
            • A
              as @ArnoD last edited by

              @arnod gibt es Veränderungen der Steuerung des E3DC systems
              Hab im letzten Herbst Winter gelegentlich die Batterie zwischendurch geladen bei geringem Strompreis
              Das funktioniert aber aktuell nicht mehr
              Per pscp geb ich Befehl in iob ans Gerät er schaltet um mit eingestellten Leistung jedoch nach paar Sekunden geht das System zurück auf entladen der Batterie
              Unabhängig von dem Skript chargeControl das weiß ich dazu abzuschalten
              Was kann man nu tun oder wurde diese Steuerungsmöhlichkeit entfernt

              Bitte um Hilfe und hinweise

              peterk34 1 Reply Last reply Reply Quote 0
              • peterk34
                peterk34 @as last edited by

                @as ich habe es gerade getestet ... scheint wieder zu funktionieren, dauert aber länger bis die Werte im Portal ankommen (rd 3 Minuten)

                A 1 Reply Last reply Reply Quote 0
                • Z
                  Zelkin @ArnoD last edited by

                  @arnod
                  Danke für die Rückmeldung 🙂
                  Die Diagramme wäre in jedem Fall Interressant ..... und zur beruhigung 😉

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    Abyss @ArnoD last edited by

                    @arnod
                    @jans_ios
                    Hallo ArnoD, jans_ios,

                    ich verfolge eure "Heizstab-Diskussion" jetzt schon eine Weile, da ich auch sehnsüchtig auf die Lieferung von meinem MyPV-ELWA2 warte.
                    Dieser soll nun endlich kommende Woche geliefert und montiert werden, weswegen ich mich schon darauf vorbereite diesen in Kombi mit dem Charge-Control-Script zu steuern.

                    @ArnoD
                    Du erwähntest in deiner letzten Antwort ein "anderes" Script welches die Ladeleistung der Wallbox vom Hausverbrauch abzieht um diesen Wert im Wallbox-Script zu nutzen.
                    Dieses Script hast du aber nicht zufällig im Github hinterlegt? zumindest hätte ich es nicht gesehen.

                    Auch hattes du hier: https://forum.iobroker.net/post/1009779 bereits einen Scriptansatz gepostet.
                    Wenn ich die letzte Diskussion richtig verstanden hatte, hat dies aber zu einem Jo-Jo-Effekt geführt?

                    Da ich nicht so tief im scripten drin bin hoffe ich etwas auf euren Rat und Unterstützung wie ich das Thema am besten angehen könnte. 😉
                    Danke schon mal für jeden Tipp.

                    Grüße

                    A 1 Reply Last reply Reply Quote 0
                    • A
                      ArnoD @Zelkin last edited by

                      @zelkin
                      Upps, habe dich doch glatt vergessen 🙂
                      Bei meinem Diagramm fehlen leider zwei Jahre, da es den e3dc-rscp Adapter noch nicht gab.
                      Aber die abflachende Kurve ist trotzdem zu erkennen.

                      4a655162-8887-451e-bb6c-e87048bc7f9d-grafik.png

                      Z 1 Reply Last reply Reply Quote 0
                      • A
                        ArnoD @Abyss last edited by

                        @abyss
                        Wusste ich doch, dass ich da schon mal was gebastelt habe. Hatte ich schon wieder vergessen. 🙂
                        Wenn das nicht funktioniert, müsste man noch mal optimieren.
                        @jans_ios hattest du mit dem Script von mir das Problem mit dem Jo-Jo-Effekt?

                        const sID_LeistungHeizstab_W = 'modbus.2.holdingRegisters.1000_Power'       // Aktueller Verbrauch Heizstab in W
                        const sID_PV_Leistung = 'e3dc-rscp.0.EMS.POWER_PV';                         // PV_Leistung
                        const sID_Eigenverbrauch = 'e3dc-rscp.0.EMS.POWER_HOME';                    // Hausverbrauch_Leistung
                        const sID_Netz_Leistung = 'e3dc-rscp.0.EMS.POWER_GRID';                     // Einspeiseleistung            
                        const sID_Batterie_Leistung = 'e3dc-rscp.0.EMS.POWER_BAT';	                // Batterie_Leistung
                        const sID_Soll_LeistungHeizstab_W = 'modbus.2.holdingRegisters.1000_Power'  // Soll Leistung Heizstab an Schnittstelle
                        const sID_IstTempHeizstab = 'modbus.2.holdingRegisters.1001_Temp1'          // Aktuelle Temperatur am Heizstab
                        const sID_MaxTempHeizstab = 'modbus.2.holdingRegisters.1002_WW1_Temp_max'   // Maximal-Temperatur lt. Drehregler am Heizstab, Skript peil 5 Grad weniger an, da Heizstab sonst selbst abregelt und sich Skript und Heizstab streiten
                        
                        
                        on({id: sID_PV_Leistung, change: "ne"}, async function (obj) {
                        
                            let BatterieLeistung_W = (await getStateAsync(sID_Batterie_Leistung)).val; 
                            let PV_Leistung_W = (await getStateAsync(sID_PV_Leistung)).val;
                            let LeistungHeizstab_W = (await getStateAsync(sID_LeistungHeizstab_W)).val;
                            let Hausverbrauch_W = (await getStateAsync(sID_Eigenverbrauch)).val 
                            let HeizstabLadeleistung_W= 0;
                            let NetzLeistung_W = (await getStateAsync(sID_Netz_Leistung)).val;
                            let MaxTempHeizstab = (await getStateAsync(sID_MaxTempHeizstab)).val;
                            let IstTempHeizstab = (await getStateAsync(sID_IstTempHeizstab)).val;
                        
                            Hausverbrauch_W =Hausverbrauch_W - LeistungHeizstab_W; //Hausverbrauch ohne Leistung Heizstab
                        
                             // Prüfen ob Werte Netz oder Batterie negativ sind
                            if (NetzLeistung_W <= -500 && BatterieLeistung_W <= 0){
                                HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W+BatterieLeistung_W-NetzLeistung_W) - 3000;
                            }else if (NetzLeistung_W > -500 && BatterieLeistung_W <= 0) {
                                HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W+BatterieLeistung_W) - 3000;                 
                            }else if (NetzLeistung_W > -500 && BatterieLeistung_W > 0) {
                                HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W-BatterieLeistung_W);                                    
                            }else if (NetzLeistung_W <= -500 && BatterieLeistung_W > 0){
                                HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W-BatterieLeistung_W-NetzLeistung_W);
                            }                  
                        
                            // Prüfen ob HeizstabLadeleistung_W > 3000W ist
                            if (HeizstabLadeleistung_W > 3000){HeizstabLadeleistung_W = 3000}    
                            // Prüfen ob MaxTempHeizstab - 5 Grad Reserve erreicht sind
                            if (IstTempHeizstab >= MaxTempHeizstab-5){HeizstabLadeleistung_W = 0}
                            // Vorgabe Heizleistung an Schnittstelle übermitteln
                            await setStateAsync(sID_Soll_LeistungHeizstab_W,HeizstabLadeleistung_W);
                        
                        });
                        
                        A 1 Reply Last reply Reply Quote 0
                        • Z
                          Zelkin @ArnoD last edited by

                          @arnod
                          Vielen Dank 🙂

                          Ich hätte noch einen Vorschlag.
                          könntest du einen DP mit der Versionsnummer des Script anlegen?

                          Iss jetzt kein großes ding, kann man auch jedes mal manuell nachpflegen. Könnte mir aber vorstellen, dass dies doch einige nutzen würden.
                          Alleine wegen der Übersichtlichkeit, weil du extrem schnell auf Probleme ein Update bringst.
                          So kann man in der Übersicht anzeigen lassen welche aktuell läuft und hat einen Fehler Indikator wenn mal 2 Versionen gleichzeitig laufen --> vorausgesetzt der DP wird jedes mal geschrieben wenn das script durchrennt.
                          Man könnte es sogar auf die Spitze Treiben und dann per Script nach einem Update auf Git suchen lassen ....... falls man mal nicht die Zeit hat ins Forum zu guggen bekommt man es dann immerhin mit 😉

                          A 1 Reply Last reply Reply Quote 0
                          • jh537
                            jh537 @ArnoD last edited by

                            @arnod E3DC hat wahrscheinlich nachjustiert (ohne Info). Die starken Schwankungen der Batt sind verschwunden. Ein Wert in Modbus war im Sommer mal ewig falsch gewesen (Notstrom). Der ist jetzt auch wieder auf 0. Allerdings schaltet das Relais immer noch beim Aktivieren der CC-Laderegelung iVm Notstromreserve zyklisch weiter. In den Registern konnte ich keine Änderungen sehen. Standby ist möglich aber nicht aktiv.

                            A 1 Reply Last reply Reply Quote 0
                            • A
                              ArnoD @Zelkin last edited by

                              @zelkin
                              kann ich ja mal auf meine To-do-Liste schreiben. Aktuell habe ich aber nur wenig Zeit für mein Hobby.

                              1 Reply Last reply Reply Quote 0
                              • A
                                ArnoD @jh537 last edited by

                                @jh537
                                Das Script verwendet die Modbus Schnittstelle nicht mehr, sondern nur noch e3dc-rscp Adapter.
                                Was meinst du mit Standby ist möglich aber nicht aktiv?

                                jh537 1 Reply Last reply Reply Quote 0
                                • jh537
                                  jh537 @ArnoD last edited by jh537

                                  @arnod Modbus schon klar, ich meinte nur, dass der Wert halt korrigiert wurde, ich nutze Modbus zum Auslesen der Werte. Standby: Standby schalten ist freigeschaltet aber nicht aktiv. Ich hatte heute nacht wieder CC laufen.

                                  Das schalten kommt sehr wahrscheinlich tatsächlich vom Powersave, man sieht es in der App und im Display. Dazu gibt es aber keinen Wert der sich ändert.
                                  e3dc-rscp.0.EMS.POWERSAVE_ENABLED sagt ja nur ob es möglich ist oder verhindert wird. Vielleicht gibt es ja doch Unterschiede in der Hardware.

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    Abyss @ArnoD last edited by

                                    @arnod
                                    Vielen Dank schon mal.
                                    Mein ELWA-2 ist heut gekommen und muss nur noch angeschlossen werden.
                                    Aktuell warte ich noch auf die Infos zum Holding-Register von MYPV um den dann in den iobroker zu bringen.
                                    Sollte das irgenwann laufen und mal wieder die Sonne scheinen, werde ich dein Script testen und berichten.

                                    Bis dahin Grüße und schönen Abend. 😉

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      Abyss last edited by

                                      @ArnoD
                                      Der Heizstab ist mittlerweile angeschlossen um im iobroker integriert.
                                      Erstes Feedback zu deinem Script:

                                      • bei zu niedriger PV-Leistung (aktuell schlechtes Wetter) werden Minuswerte errechnet und der Heizstab ständig mit Minuswerten beschrieben welcher der Heizstab dann mit 0-Werten gegenregelt.
                                        0caba6b0-0e7f-4225-b95a-9adee44b77f1-image.png
                                      • sobald die Batterieleistung =0 wird auch nichts mehr in den Heizstab umgeleitet sondern alles eingespeißt. Das tritt auf sobald die Batterie =100% oder eben die Be-/Entladung der Batterie durch E3DC oder Charge-Control verhindert wird.

                                      Ich habe mal versucht mit meinen Anfänger-Scripting-Skills dein Script dahingehend anzupassen, dass:

                                      • Minuswerte abgefangen werden und dafür eine 0 geschrieben wird.
                                      • im Script Ausschlusswerte definiert, wann keine Energie in den Heizstab fließen darf:
                                        a: PV-Leistung ist zu gering
                                        b: Netzeinspeisung ist zu gering
                                        c : Batterie wird gerade entladen
                                        d: MaxTemp ist bereits erreicht

                                      Ist der Ansatz plausibel oder habe ich hier irgendwo einen Denkfehler bzw. etwas nicht bedacht?

                                      Script würde dann so aussehen:

                                      const sID_LeistungHeizstab_W = 'modbus.1.holdingRegisters.41001_Power'       // Aktueller Verbrauch Heizstab in W
                                      const sID_PV_Leistung = 'e3dc-rscp.0.EMS.POWER_PV';                         // PV_Leistung
                                      const sID_Eigenverbrauch = 'e3dc-rscp.0.EMS.POWER_HOME';                    // Hausverbrauch_Leistung
                                      const sID_Netz_Leistung = 'e3dc-rscp.0.EMS.POWER_GRID';                     // Einspeiseleistung            
                                      const sID_Batterie_Leistung = 'e3dc-rscp.0.EMS.POWER_BAT';	                // Batterie_Leistung
                                      const sID_Soll_LeistungHeizstab_W = 'modbus.1.holdingRegisters.41001_Power'  // Soll Leistung Heizstab an Schnittstelle
                                      const sID_IstTempHeizstab = 'modbus.1.holdingRegisters.41002_Temp1'          // Aktuelle Temperatur am Heizstab
                                      const sID_MaxTempHeizstab = 'modbus.1.holdingRegisters.41003_WW1_Temp_max'   // Maximal-Temperatur lt. Drehregler am Heizstab, Skript peil 5 Grad weniger an, da Heizstab sonst selbst abregelt und sich Skript und Heizstab streiten
                                       
                                      on({id: sID_PV_Leistung, change: "ne"}, async function (obj) {
                                      
                                          let BatterieLeistung_W = (await getStateAsync(sID_Batterie_Leistung)).val; 
                                          let PV_Leistung_W = (await getStateAsync(sID_PV_Leistung)).val;
                                          let LeistungHeizstab_W = (await getStateAsync(sID_LeistungHeizstab_W)).val;
                                          let Hausverbrauch_W = (await getStateAsync(sID_Eigenverbrauch)).val 
                                          let HeizstabLadeleistung_W= 0;
                                          let NetzLeistung_W = (await getStateAsync(sID_Netz_Leistung)).val;
                                          let MaxTempHeizstab = (await getStateAsync(sID_MaxTempHeizstab)).val;
                                          let IstTempHeizstab = (await getStateAsync(sID_IstTempHeizstab)).val;
                                       
                                       Hausverbrauch_W =Hausverbrauch_W - LeistungHeizstab_W; //Hausverbrauch ohne Leistung Heizstab
                                       
                                          // Prüfen ob Werte PV-Leistung und Netzeinspeißung zu gering, Batterie wird entladen oder MaxTemp erreicht; Ansonsten leite alles in Heizstab
                                          if (PV_Leistung_W < 100 || BatterieLeistung_W < 0 || NetzLeistung_W > -100 || IstTempHeizstab >= MaxTempHeizstab-5){
                                              HeizstabLadeleistung_W = 0;   
                                          }else {
                                              HeizstabLadeleistung_W = PV_Leistung_W-Hausverbrauch_W-BatterieLeistung_W -10;
                                          }
                                                 
                                          // Prüfen ob HeizstabLadeleistung_W > 3500W ist
                                          if (HeizstabLadeleistung_W > 3500){HeizstabLadeleistung_W = 3500}   
                                          // Prüfen ob HeizstabLadeleistung_W < 0W ist
                                          if (HeizstabLadeleistung_W < 0){HeizstabLadeleistung_W = 0}  
                                          // Prüfen ob MaxTempHeizstab - 5 Grad Reserve erreicht sind
                                          if (IstTempHeizstab >= MaxTempHeizstab-5){HeizstabLadeleistung_W = 0}
                                          // Vorgabe Heizleistung an Schnittstelle übermitteln
                                          await setStateAsync(sID_Soll_LeistungHeizstab_W,HeizstabLadeleistung_W);
                                       
                                      //log(HeizstabLadeleistung_W);
                                      });
                                      

                                      Mir fehlt aktuell noch das passende Wetter um das ganze in der Realität zu sehen ob das funktioniert oder nicht. 😉
                                      Grüße

                                      A 1 Reply Last reply Reply Quote 0
                                      • A
                                        ArnoD @Abyss last edited by ArnoD

                                        @abyss

                                        Das sieht doch gut aus 🙂

                                        Da ich keinen Heizstab habe um das zu testen, habe ich ein paar Fragen zur Funktionsweise.

                                        • Wofür wird die Max und Ist-Temperatur benötigt? Schaltet der Heizstab nicht ab, wenn die eingestellte Temperatur erreicht ist? Dachte das der Heizstab dann alle Werte über Modbus ignoriert, wenn die eingestellte Temperatur erreicht ist.

                                        • Was passiert, wenn größere Werte als 3500 W über Modbus an den Heizstab übertragen werden? Werden die dann ignoriert?

                                        • Was passiert, wenn als letzter Wert vom Script in das Register modbus.1.holdingRegisters.41001_Power z.B 1000 W eingetragen wird und dann keine neuen Werte geschrieben werden? Läuft dann der Heizstab ständig mit 1000W oder muss dieser Eintrag alle x Sek. wiederholt werden?

                                        So wie es jetzt programmiert ist, wird der Heizstab ständig ein und ausschalten bei Bewölkung oder wenn die Batterie mal ausgleichen muss, wenn der Hausverbrauch kurz ansteigt, ich denke, dass es nicht gut ist für den Heizstab. 😉

                                        Hier mal dein Script mit einer Haltezeit:

                                        const sID_LeistungHeizstab_W = 'modbus.1.holdingRegisters.41001_Power'       	// Aktueller Verbrauch Heizstab in W
                                        const sID_PV_Leistung = 'e3dc-rscp.0.EMS.POWER_PV';                         	// PV_Leistung
                                        const sID_Eigenverbrauch = 'e3dc-rscp.0.EMS.POWER_HOME';                    	// Hausverbrauch_Leistung
                                        const sID_Netz_Leistung = 'e3dc-rscp.0.EMS.POWER_GRID';                     	// Einspeiseleistung            
                                        const sID_Batterie_Leistung = 'e3dc-rscp.0.EMS.POWER_BAT';	                	// Batterie_Leistung
                                        const sID_Soll_LeistungHeizstab_W = 'modbus.1.holdingRegisters.41001_Power'  	// Soll Leistung Heizstab an Schnittstelle
                                        const sID_IstTempHeizstab = 'modbus.1.holdingRegisters.41002_Temp1'          	// Aktuelle Temperatur am Heizstab
                                        const sID_MaxTempHeizstab = 'modbus.1.holdingRegisters.41003_WW1_Temp_max'   	// Maximal-Temperatur lt. Drehregler am Heizstab, Skript peil 5 Grad weniger an, da Heizstab sonst selbst abregelt und sich Skript und Heizstab streiten
                                        const Haltezeit = 10								// Haltezeit in min.
                                        
                                        let HaltezeitHeizstab = null;
                                        clearTimeout(HaltezeitHeizstab); 
                                         
                                         
                                        on({id: sID_PV_Leistung, change: "ne"}, async function (obj) {
                                        
                                            let BatterieLeistung_W = (await getStateAsync(sID_Batterie_Leistung)).val; 
                                            let PV_Leistung_W = (await getStateAsync(sID_PV_Leistung)).val;
                                            let LeistungHeizstab_W = (await getStateAsync(sID_LeistungHeizstab_W)).val;
                                            let Hausverbrauch_W = (await getStateAsync(sID_Eigenverbrauch)).val 
                                            let HeizstabLadeleistung_W= 0;
                                            let NetzLeistung_W = (await getStateAsync(sID_Netz_Leistung)).val;
                                            let MaxTempHeizstab = (await getStateAsync(sID_MaxTempHeizstab)).val;
                                            let IstTempHeizstab = (await getStateAsync(sID_IstTempHeizstab)).val;
                                         
                                        
                                        	Hausverbrauch_W =Hausverbrauch_W - LeistungHeizstab_W; //Hausverbrauch ohne Leistung Heizstab
                                        
                                        
                                            // Prüfen ob Werte PV-Leistung und Netzeinspeißung zu gering, Batterie wird entladen oder MaxTemp erreicht; Ansonsten leite alles in Heizstab
                                            if (IstTempHeizstab >= MaxTempHeizstab-5 || (PV_Leistung_W < 100 || BatterieLeistung_W < 0 || NetzLeistung_W > -500) && !HaltezeitHeizstab){
                                                HeizstabLadeleistung_W = 0;   
                                            }else {
                                                HeizstabLadeleistung_W = PV_Leistung_W-Hausverbrauch_W-BatterieLeistung_W -10;
                                        	
                                                if (HaltezeitHeizstab){clearTimeout(HaltezeitHeizstab)}
                                                HaltezeitHeizstab = setTimeout(function () {HaltezeitHeizstab = null;}, Haltezeit*60000);
                                        		
                                        	// Prüfen ob HeizstabLadeleistung_W > 3500W ist
                                        	if (HeizstabLadeleistung_W > 3500){HeizstabLadeleistung_W = 3500}   
                                        	// Prüfen ob HeizstabLadeleistung_W < 0W ist
                                        	if (HeizstabLadeleistung_W < 0){HeizstabLadeleistung_W = 0}  
                                        	
                                             }
                                         	
                                        	await setStateAsync(sID_Soll_LeistungHeizstab_W,HeizstabLadeleistung_W);
                                        
                                        	//log(HeizstabLadeleistung_W);
                                        
                                        });
                                        
                                        A 1 Reply Last reply Reply Quote 0
                                        • A
                                          ArnoD @ArnoD last edited by

                                          Neue Version Charge-Control auf GitHub hochgeladen.
                                          Version: 1.3.0

                                          Änderungen:

                                          • Script musste an die neue Version vom Adapter e3dc-rscp 1.2.5 angepasst werden. Bitte zuerst den Adapter e3dc-rscp 1.2.5 installieren und nur dann diese Script Version verwenden.
                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            Abyss @ArnoD last edited by

                                            @arnod
                                            Danke für dein Feedback.
                                            Aktuell warte ich immer noch auf den ersten sonnigen Tag um das ganze mal im Einsatz zu sehen.
                                            Aber was ich bis jetzt schon gesehen habe verhält sich der Heizstab wie folgt.

                                            • Maxtemperatur wird am Heizstab eingestellt und wird vom Heizstab genutzt um sich bei der Erreichung der Max Temp dann abzuschalten.
                                            • wenn Werte größer 3500W geschrieben werden regelt der Heizstab automatisch auf seine erlaubte W runter.
                                              Man kann den Heizstab in %-Schritte begrenzen. Diese Werte verwendet er dann und nicht das was vom Modbus übermittelt wird.
                                              Sprich die im Heizstab eingestellten Werte gewinnen am Ende, egal was vom Modbus kommt.

                                            Wenn kein Wert mehr an den Heizstab übermittelt wird, dann fährt er auf 0 runter. Sprich er benötigt ständig Werte über Modbus um aktiv zu bleiben.
                                            Zumindest verhält es sich so über den 41001_Power Register.
                                            Man kann im Heizstab selbst im Webinterface auch auf einen "Knopf" drücken für die Warmwassersicherstellung, dann heizt der permanent mit voller erlaubter Leistung drauf los bis MaxTemp erreicht ist.
                                            Welcher HoldingRegister das aber wäre hab ich noch nicht gefunden.

                                            Mein Hintergedanke bei der ganzen Sache war, dass wenn soviel PV-Leistung vorhanden ist, dass die Anlage das Einspeisen anfängt, dann möchte ich die Einspeisung in den Heizstab umleiten bis das Wasser die MaxTemp erreicht hat.

                                            Ich pfleg mal deine Haltezeit bei mir direkt mit ein und hoffe auf etwas mehr Sonne. 😉

                                            Danke für deine Unterstützung.
                                            Grüße

                                            A F 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            967
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3272
                                            1104202
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo