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. Skripten / Logik
  4. JavaScript
  5. E3DC Hauskraftwerk steuern

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    945

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

E3DC Hauskraftwerk steuern

Geplant Angeheftet Gesperrt Verschoben JavaScript
3.5k Beiträge 70 Kommentatoren 1.6m Aufrufe 61 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.
  • A ArnoD

    @jh537 sagte in E3DC Hauskraftwerk steuern:

    Also gegen 4 wurde das Script iwie neu gestartet, das man. Laden wurde sicher vom Script aufgerufen. Vielleicht findest du ja noch etwas @ArnoD Mich wundert, dass ich das früh alles nicht im Log gesehen habe.

    Bei dir wird um 4:03 Uhr die Javascript Instanz beendet: Stop script script.js.common.Charge_Control

    Ein bekannter Grund dafür ist eine Backupfunktion, die um diese Zeit startet und alle laufenden Instanzen dafür beendet.

    A Offline
    A Offline
    as
    schrieb am zuletzt editiert von
    #2418

    @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

    peterk34P 1 Antwort Letzte Antwort
    0
    • A as

      @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

      peterk34P Offline
      peterk34P Offline
      peterk34
      schrieb am zuletzt editiert von
      #2419

      @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 Antwort Letzte Antwort
      0
      • A ArnoD

        @zelkin
        Die Kurve wird sich stark abflachen.
        Wenn ich daheim bin, kann ich dir mein Diagramm über drei Jahre hochladen.
        Ich habe auch nachträglich drei Batterien nachgerüstet.

        Z Offline
        Z Offline
        Zelkin
        schrieb am zuletzt editiert von
        #2420

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

        A 1 Antwort Letzte Antwort
        0
        • A ArnoD

          @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 Offline
          A Offline
          Abyss
          schrieb am zuletzt editiert von
          #2421

          @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 Antwort Letzte Antwort
          0
          • Z Zelkin

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

            A Offline
            A Offline
            ArnoD
            schrieb am zuletzt editiert von
            #2422

            @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 Antwort Letzte Antwort
            0
            • A Abyss

              @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 Offline
              A Offline
              ArnoD
              schrieb am zuletzt editiert von
              #2423

              @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 Antwort Letzte Antwort
              0
              • A ArnoD

                @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 Offline
                Z Offline
                Zelkin
                schrieb am zuletzt editiert von
                #2424

                @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 Antwort Letzte Antwort
                0
                • A ArnoD

                  @jh537
                  Die 50W könnte ich mir durch den Verbrauch vom WR erklären, aber das sollte eigentlich aus dem Netz gezogen werden und erklärt auch nicht das Pulsieren.

                  jh537J Offline
                  jh537J Offline
                  jh537
                  schrieb am zuletzt editiert von
                  #2425

                  @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 Antwort Letzte Antwort
                  0
                  • Z Zelkin

                    @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 Offline
                    A Offline
                    ArnoD
                    schrieb am zuletzt editiert von
                    #2426

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

                    1 Antwort Letzte Antwort
                    0
                    • jh537J jh537

                      @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 Offline
                      A Offline
                      ArnoD
                      schrieb am zuletzt editiert von
                      #2427

                      @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?

                      jh537J 1 Antwort Letzte Antwort
                      0
                      • A ArnoD

                        @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?

                        jh537J Offline
                        jh537J Offline
                        jh537
                        schrieb am zuletzt editiert von jh537
                        #2428

                        @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 Antwort Letzte Antwort
                        0
                        • A ArnoD

                          @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 Offline
                          A Offline
                          Abyss
                          schrieb am zuletzt editiert von
                          #2429

                          @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 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            Abyss
                            schrieb am zuletzt editiert von
                            #2430

                            @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 Antwort Letzte Antwort
                            0
                            • A Abyss

                              @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 Offline
                              A Offline
                              ArnoD
                              schrieb am zuletzt editiert von ArnoD
                              #2431

                              @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 Antwort Letzte Antwort
                              0
                              • A ArnoD

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

                                • Kleinere Optimierungen und Fehler behoben bei der Berechnung der soll Ladeleistung.
                                A Offline
                                A Offline
                                ArnoD
                                schrieb am zuletzt editiert von
                                #2432

                                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 Antwort Letzte Antwort
                                0
                                • A 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 Offline
                                  A Offline
                                  Abyss
                                  schrieb am zuletzt editiert von
                                  #2433

                                  @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 Antworten Letzte Antwort
                                  0
                                  • A Abyss

                                    @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 Offline
                                    A Offline
                                    ArnoD
                                    schrieb am zuletzt editiert von ArnoD
                                    #2434

                                    @abyss
                                    Jetzt kommen wir der Sache schon näher :-)
                                    Es reicht somit dem Heizstab den Überschuss mitzuteilen und man muss sich nicht um Temperaturen oder sonstige Begrenzungen kümmern, da es der Heizstab sowieso bereits macht.
                                    Jetzt habe ich noch drei Fragen :-)

                                    • Wie groß darf der Zeitabstand sein, vom letzten übermittelten Wert, bis der Heizstab wieder auf 0 regelt?
                                    • Regelt der Heizstab von 0W bis 3500W stufenlos oder in z. B. 100W Schritten.
                                    • Was wird an min. Leistung benötigt, damit überhaupt eine spürbare Heizleistung erzeugt wird. Wenn der Heizstab nur mit 5W laufen würde, vermute ich das er dann nicht wirklich was aufheizen kann.
                                    A 1 Antwort Letzte Antwort
                                    0
                                    • J Offline
                                      J Offline
                                      jans_ios
                                      schrieb am zuletzt editiert von
                                      #2435

                                      @ArnoD und @Abyss

                                      Moin Ihr beiden!

                                      Ich habe in dem Skript die am Heizstab eingestellte Max-Temp ausgelesen und abzgl. einer Reserve dann weiter verwendet - wenn man sie im Skript nicht berücksichtigt und ggfs. über den eingestellten Max-Wert steuert, kommt es zu einem wilden hin-und-her - Das Script sagt "Heize", der Heizstab sagt "Heize nicht". Er geht dann immer wieder an und aus, das kann nicht gut sein. Daher würde ich davon abraten, den Wert nicht zu nutzen.

                                      Der Heizstab regelt stufenlos von 0 bis 3000W. (MyPV Elwa-E), der neuere von Abysss scheint 3500W zu können.

                                      Das mit den Ausschlüssen muss ich mir mal ansehen, da arbeite ich im Kopf auch schon länger dran. Ich hatte mal versucht, mir den Wert "M_Power" in eine Variable unter 0_userdata.0.Charge_Control.Allgemein zu schreiben, um ihn im Heizstab-Skript verwenden zu können - dann wird immer so viel von der PV-Leistung "reserviert" wie für die Akku-Ladung sinnvoll ist. Im Falle des Falles, dass einfach alles in den Akku soll (wenig PV-Leistung zu erwarten), steht der Wert dann ja auf der max. Ladeleistung des HKW - in meinem Fall 9000.

                                      Viele Grüße erstmal, Jan

                                      J 1 Antwort Letzte Antwort
                                      0
                                      • J jans_ios

                                        @ArnoD und @Abyss

                                        Moin Ihr beiden!

                                        Ich habe in dem Skript die am Heizstab eingestellte Max-Temp ausgelesen und abzgl. einer Reserve dann weiter verwendet - wenn man sie im Skript nicht berücksichtigt und ggfs. über den eingestellten Max-Wert steuert, kommt es zu einem wilden hin-und-her - Das Script sagt "Heize", der Heizstab sagt "Heize nicht". Er geht dann immer wieder an und aus, das kann nicht gut sein. Daher würde ich davon abraten, den Wert nicht zu nutzen.

                                        Der Heizstab regelt stufenlos von 0 bis 3000W. (MyPV Elwa-E), der neuere von Abysss scheint 3500W zu können.

                                        Das mit den Ausschlüssen muss ich mir mal ansehen, da arbeite ich im Kopf auch schon länger dran. Ich hatte mal versucht, mir den Wert "M_Power" in eine Variable unter 0_userdata.0.Charge_Control.Allgemein zu schreiben, um ihn im Heizstab-Skript verwenden zu können - dann wird immer so viel von der PV-Leistung "reserviert" wie für die Akku-Ladung sinnvoll ist. Im Falle des Falles, dass einfach alles in den Akku soll (wenig PV-Leistung zu erwarten), steht der Wert dann ja auf der max. Ladeleistung des HKW - in meinem Fall 9000.

                                        Viele Grüße erstmal, Jan

                                        J Offline
                                        J Offline
                                        jans_ios
                                        schrieb am zuletzt editiert von
                                        #2436

                                        @ArnoD und @Abyss

                                        Ach und eins noch - teilt man dem Heizstab den am HKW auslesbaren Überschuss direkt mit, springt der Heizstab an und der Überschuss wird geringer, da er ja auch nur ein Stromverbraucher ist. Liegen bspw. 2800W Überschuss vor und man steuern den Heizstab direkt damit an, steigt der Hausverbrauch um 2800W, der Überschuss ist 0 und der Heizstab wird wieder abgeschaltet - danach beginnt das Spiel von vorn.

                                        A 1 Antwort Letzte Antwort
                                        0
                                        • J jans_ios

                                          @ArnoD und @Abyss

                                          Ach und eins noch - teilt man dem Heizstab den am HKW auslesbaren Überschuss direkt mit, springt der Heizstab an und der Überschuss wird geringer, da er ja auch nur ein Stromverbraucher ist. Liegen bspw. 2800W Überschuss vor und man steuern den Heizstab direkt damit an, steigt der Hausverbrauch um 2800W, der Überschuss ist 0 und der Heizstab wird wieder abgeschaltet - danach beginnt das Spiel von vorn.

                                          A Offline
                                          A Offline
                                          ArnoD
                                          schrieb am zuletzt editiert von
                                          #2437

                                          @jans_ios

                                          Das kann eigentlich nur passieren, wenn man vom Hausverbrauch die aktuelle Leistung vom Heizstab nicht abzieht.
                                          Der Heizstab darf die Leistung, über die er gesteuert wird, natürlich nicht beeinflussen.

                                          Das mit der Max Temp Heizstab habe ich noch nicht verstanden, wenn über das Script immer die Überschussleistung an den Heizstab übermittelt wird, muss dieser doch solange heizen, bis die eingestellte Temperatur erreicht ist.
                                          Nachdem die eingestellte Temperatur erreicht ist, sollte dieser doch automatisch abschalten und die Leistungsvorgaben über die Modbus Schnittstelle ignorieren, wenn das nicht der Fall ist, muss natürlich die eingestellte Temperatur mit ausgewertet werden.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          379

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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