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.
    • jh537
      jh537 @ArnoD last edited by

      @arnod Kann es auch ein Kopier- oder Tippfehler im Script sein? Vielleicht sollten wir mal mit einer älteren Version testen, ob es da läuft. Ich habe schon versucht, die Versionen zu vergleichen-kenne mich aber zu wenig aus.

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

        @jh537

        An dem Teil vom Script hat sich nichts geändert und die Berechnung stimmt ja, nur die Globalstrahlung von Proplanta wurde am 22.5 generell reduziert.
        Die Formel ist gleich geblieben:
        (Globalstrahlung * Modulfläche) * (WirkungsgradModule/100)
        Das würde dann für heute bei mir so aussehen:
        (2.1 * 73)*(21/100) = 32,193 kWh und bei Solcast ist die Prognose bei 86,51 kWh

        Man könnte jetzt mit dem Wirkungsgrad der Module das ausgleichen, was für mich aber keine optimale Lösung ist.

        bluebean 1 Reply Last reply Reply Quote 1
        • bluebean
          bluebean @ArnoD last edited by

          Gestern wurde bei Proplanta offenbar korrigiert - die Werte liegen jetzt wieder auf Normalniveau...

          Zwischenablage01.jpg

          1 Reply Last reply Reply Quote 1
          • D
            DrDoc last edited by

            Kurze Frage, hat mir ggf. jemand die Info, wie ich die Daten vom History automatisch aktualisieren kann?
            Wert (wie z.B. Time-Intervall) einfach ändern? 30 Sek. warten und wieder zurück ändern?

            Danke für eure Unterstützung

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

              @drdoc
              Die PV Leistungswerte aktualisieren sich bereits automatisch und die Prognosedaten von Solcast einmal am Tag oder Scriptstart und Proplanta dreimal am Tag, öfter macht auch keinen Sinn.

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

                @arnod
                @Robbi12
                Die Modbus Register wurden ja mittlerweile gepostet - sorry, war offline im Urlaub 😉

                Ich habe mir mangels JavaScript-Skills ein Blockly gebaut, welches sich den Überschuss nimmt und damit den Heizstab per Modbus steuert. Ist noch nicht perfekt und kollidiert manchmal mit ChargeControl, aber es ist schon mal besser als nichts. Die Steuerung über das HKW hilft hier tatsächlich nicht, da hierbei erstmal der Akku voll (oder fast voll) sein muss, bevor überhaupt Wasser erwärmt wird - bei Nutzung von CC wird dadurch tagsüber dann schön eingespeist und kurz vor Sonnenuntergang minimal Warmwasser bereitet.

                A 1 Reply Last reply Reply Quote 0
                • J
                  jans_ios @Georg Hermann last edited by

                  @georg-hermann
                  @ArnoD
                  Seid Ihr hier weitergekommen? Die Ladeleistung der Wallbox kann mit E3DC-RSCP tatsächlich wie von Arno vermutet über den "PowerLimitation"-Wert gesetzt werden. Ich fänd's klasse, wenn das umgesetzt werden könnte 😉

                  A Georg Hermann 2 Replies Last reply Reply Quote 0
                  • A
                    ArnoD @jans_ios last edited by

                    @jans_ios sagte in E3DC Hauskraftwerk steuern:

                    @georg-hermann
                    @ArnoD
                    Seid Ihr hier weitergekommen? Die Ladeleistung der Wallbox kann mit E3DC-RSCP tatsächlich wie von Arno vermutet über den "PowerLimitation"-Wert gesetzt werden. Ich fänd's klasse, wenn das umgesetzt werden könnte 😉

                    Habe es noch nicht getestet, aber wenn du es bereits getestet hast, werde ich das Wallbox Script auch auf den Adpter e3dc-rscp umstellen.
                    Kann jetzt aber etwas dauern. 🙂

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

                      @jans_ios sagte in E3DC Hauskraftwerk steuern:

                      @arnod
                      @Robbi12
                      Die Modbus Register wurden ja mittlerweile gepostet - sorry, war offline im Urlaub 😉

                      Ich habe mir mangels JavaScript-Skills ein Blockly gebaut, welches sich den Überschuss nimmt und damit den Heizstab per Modbus steuert. Ist noch nicht perfekt und kollidiert manchmal mit ChargeControl, aber es ist schon mal besser als nichts. Die Steuerung über das HKW hilft hier tatsächlich nicht, da hierbei erstmal der Akku voll (oder fast voll) sein muss, bevor überhaupt Wasser erwärmt wird - bei Nutzung von CC wird dadurch tagsüber dann schön eingespeist und kurz vor Sonnenuntergang minimal Warmwasser bereitet.

                      Dachte mir schon, dass es über Modbus funktionieren müsste.
                      Steuere meine Wärmepumpe auch so.
                      Ich schicke einfach den Wert der aktuellen Einspeiseleistung an meine WP und die regelt dann automatisch die Leistung bis zu diesem Wert. Wenn E3DC-Control dann die Ladeleistung der Batterie begrenzt, steigt die Einspeiseleistung und meine WP schaltet sich ein.

                      // Adapter e3dc-rscp
                      const sID_Netzleistung_W = 'e3dc-rscp.0.EMS.POWER_GRID'
                      // Modbus Eingang der Wärmepumpe
                      const sID_WP_Aktuelle_Leistung = `modbus.2.holdingRegisters.40103_Aktuelle_Leistung`
                      
                      // Netzleistung an Modbus Schnittstelle LW-Pumpe Schreiben um über PV-Leistung zu regeln.
                      on({id: sID_Netzleistung_W, change: "ne"}, async function (obj) {
                          await setStateAsync(sID_WP_Aktuelle_Leistung,obj.state.val);
                      });
                      
                      J 1 Reply Last reply Reply Quote 0
                      • Georg Hermann
                        Georg Hermann @jans_ios last edited by

                        @jans_ios
                        Hmm. Ich konnte bisher die Ladeleistung mit "e3dc-rscp.0.WB.WB_1.Control.PowerLimitation" nicht beeinflussen. deshalb gehe ich immer noch über den Tesla-Adapter und steuere das über den Wagen. Aber Vielleicht mache ich mit "e3dc-rscp.0.WB.WB_1.Control.PowerLimitation" irgendetwas falsch?

                        Hast Du das schon erfolgreich ausprobiert?

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

                          @georg-hermann
                          Ja, also bei mir klappt das - ich kann das Laden starten, stoppen und die Power-Limitation setzen

                          Georg Hermann 1 Reply Last reply Reply Quote 0
                          • Georg Hermann
                            Georg Hermann @jans_ios last edited by

                            Ich habe wohl gestern ein Update von P10_2022_046 auf P10_2023_022 für den S10E Pro eingespielt bekommen.

                            Jetzt fällt mir bei der Wallbox-Nutzung folgendes auf: Wenn die Ladeschwelle erreicht ist, und der Regelbeginn noch nicht (=Akku-LADEsperre), funktioniert das Entladen des Akkus über die Wallbox (easy connect) nicht mehr. Dann wird immer aus dem Netz bezogen, falls sich mal eine Wolke dazwischen schiebt.

                            Ist das ein neues Verhalten in Verbindung mit der neuen HKW-Software-Version, oder ist mir das nur noch nie aufgefallen?

                            Versionen:
                            Charge-Control: 1.2.12
                            e3dc-rscp: 1.2.2
                            Javascript: 7.0.3

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

                              @georg-hermann
                              Ich habe die neue Version noch nicht, aber ich denke nicht das es davon abhängig ist.
                              Ich muss mir das mal ansehen, eigentlich sollte entladen werden, wenn der Eigenverbrauch ansteigt und die Wallbox ist ja nichts anderes.
                              Außer, die Ladeleistung der Wallbox wird jetzt nicht mehr beim Eigenverbrauch mit angezeigt, sondern von diesem abgezogen.

                              J Georg Hermann 2 Replies Last reply Reply Quote 0
                              • J
                                jans_ios @ArnoD last edited by

                                @arnod
                                Wenn die Wallbox nicht am HKW angemeldet ist und wie bei Dir per Modbus gesteuert wird, dann landet der Wallbox-Verbrauch im Hausverbrauch. Wird die Wallbox vom HKW gesteuert, taucht der Verbrauch nicht im Hausverbrauch auf, sondern wird separat erfasst.

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

                                  @arnod
                                  Funktioniert das so einfach? Was, wenn der Parameter "e3dc-rscp.0.EMS.POWER_GRID" negativ ist, also Netzbezug vorliegt? Muss man das nicht irgendwie abfangen?
                                  Außerdem: Kann man dem Wert einen Max-Wert mitgeben? Mein Heizstab kann bspw. max. 3000W ab. Ich habe noch nicht getestet, was er mit einem höheren Wert macht, aber in meinem Blockly-Skript fange ich das ab.
                                  Mein Blockly sieht aber sehr sehr viel komplizierter aus 😉 Daher würde ich gerne auf diesen sehr übersichtlichen Ansatz wechseln...
                                  4956f0ce-1bcc-4d8e-99b9-48b7695448da-image.png

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

                                    @jans_ios

                                    Funktioniert das so einfach? Was, wenn der Parameter "e3dc-rscp.0.EMS.POWER_GRID" negativ ist, also Netzbezug vorliegt? Muss man das nicht irgendwie abfangen?

                                    Bei meiner WB kann ich einstellen, ob bei positiven oder negativen Werten in das Netz eingespeist wird. Wenn der Wert dann negativ ist, weiß die WP somit das ich in das Netz einspeise und schaltet sich ein. Die Leistung der WP wird dann so geregelt, dass die Einspeiseleistung nicht überstiegen wird. Der Wert wird somit nur als max. Leistung für die WP verwendet und die WP regelt den Rest.
                                    Wenn du das beim Heizstab nicht einstellen kannst, musst du das natürlich im Script berücksichtigen.
                                    Das könnte dann so aussehen (e3dc-rscp.0.EMS.POWER_GRID = negativ, wenn eingespeist wird) :

                                    // Adapter e3dc-rscp
                                    const sID_Netzleistung_W = 'e3dc-rscp.0.EMS.POWER_GRID'
                                    
                                    // Modbus Eingang der Wärmepumpe
                                    const sID_WP_Aktuelle_Leistung = `modbus.2.holdingRegisters.40103_Aktuelle_Leistung`
                                    
                                    // Netzleistung an Modbus Schnittstelle LW-Pumpe Schreiben um über PV-Leistung zu regeln.
                                    on({id: sID_Netzleistung_W, change: "ne"}, async function (obj) {
                                        let n_Einspeiseleistung=0;
                                        // obj.state.val in einen positiven Wert ändern, wenn dieser negativ ist ansonsten ist n_Einspeiseleistung=0
                                        if (obj.state.val < 0) {n_Einspeiseleistung =Math.abs(obj.state.val)}; 
                                        // Prüfen ob n_Einspeiseleistung > 3000W ist
                                        if (n_Einspeiseleistung > 3000){n_Einspeiseleistung = 3000}
                                       await setStateAsync(sID_WP_Aktuelle_Leistung,n_Einspeiseleistung);
                                    });
                                    
                                    J 1 Reply Last reply Reply Quote 0
                                    • A
                                      ArnoD last edited by

                                      Ich habe heute versucht, die Wallbox über den e3dc-rscp Adapter zu steuern.
                                      Das Ergebnis ist, dass es nicht funktioniert und wahrscheinlich auch nie möglich sein wird, außer E3DC ändert noch mal die Schnittstelle.

                                      Mit e3dc-rscp.0.WB.WB_0.Control.PowerLimitation kann man zwar die Ladeleistung begrenzen, aber ich befürchte das jede Änderung auf die SSD geschrieben wird, um die Einstellung zu sichern.
                                      Damit hätte man das gleiche Problem wie mit e3dc-rscp.0.EMS.MAX_CHARGE_POWER wo E3DC davon abgeraten hat diesen Wert ständig zu ändern, da es die Lebensdauer der SSD verkürzt.

                                      Zweites Problem ist, dass man das Laden nicht stoppen kann, wenn es mal gestartet wurde. Wenn man e3dc-rscp.0.WB.WB_0.Control.PowerLimitation auf 0 setzt, wird das ignoriert und eine andere Möglichkeit habe ich nicht gefunden.

                                      Ich werde somit erstmal beim Modbus Adapter bleiben, was die Wallbox betrifft.

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

                                        @jans_ios sagte in E3DC Hauskraftwerk steuern:

                                        @arnod
                                        Wenn die Wallbox nicht am HKW angemeldet ist und wie bei Dir per Modbus gesteuert wird, dann landet der Wallbox-Verbrauch im Hausverbrauch. Wird die Wallbox vom HKW gesteuert, taucht der Verbrauch nicht im Hausverbrauch auf, sondern wird separat erfasst.

                                        Ja, da war was 🙂

                                        @Georg-Hermann
                                        Da das Script Charge_Control der Master ist, berücksichtige ich die Ladeleistung der Wallbox nicht.
                                        Das Script E3DC_Wallbox passt die Ladeleistung Wallbox der Einspeiseleistung an, deswegen muss ich das bei Charge_Control nicht berücksichtigen.

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

                                          @arnod
                                          Hallo Arno!

                                          Cool, das geht in die richtige Richtung 😉 Der Heizstab selbst regelt gar nichts, der würde jetzt stumpf die übermittelte Wattzahl einsetzen und Warmwasser bereiten - das wiederum erhöht jedoch dann den Hausverbrauch und verringert logischerweise die Einspeisung. Das wiederum kommt zu einem geringeren Wert, der jetzt an den Heizstab übermittelt wird und den Hausverbrauch sinken und die Einspeisung erhöhen würde - dann ginge es wieder hoch mit dem Wert für den Heizstab.

                                          Irgendwie müsste man also den aktuell bereits am Heizstab anliegenden Wert berücksichtigen, also quasi einen um die Heizleistung des Heizstabs korrigierten Überschuss berechnen, verstehst Du?

                                          Danke!

                                          Viele Grüße, Jan

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

                                            @jans_ios sagte in E3DC Hauskraftwerk steuern:

                                            Irgendwie müsste man also den aktuell bereits am Heizstab anliegenden Wert berücksichtigen, also quasi einen um die Heizleistung des Heizstabs korrigierten Überschuss berechnen, verstehst Du?

                                            Müsste so funktionieren, aber nicht getestet:

                                            const sID_LeistungHeizstab_W = ``                                   // 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 = ``                              // Soll Leistung Heizstab an Schnittstelle
                                            
                                            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;
                                                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);
                                                }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);                                    
                                                }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}    
                                                // Vorgabe Heizleistung an Schnittstelle übermitteln
                                                await setStateAsync(sID_Soll_LeistungHeizstab_W,HeizstabLadeleistung_W);
                                            });
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3270
                                            1102590
                                            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