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
    964

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

  • 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

    @jans_ios
    Nach Anleitung handelt es sich um Wh und da würde der Faktor stimmen, aber wie gesagt, hat bei mir auch nicht funktioniert und deswegen habe ich ja auch modbus.1.inputRegisters.128_total_kwh verwendet.
    Jetzt wäre natürlich interessant zu wissen warum da bei dir nichts übertragen wird.

    M Offline
    M Offline
    Modulo-N
    schrieb am zuletzt editiert von
    #2459

    @arnod : Bei mir wird im Register 128 auch stur 0 angezeigt, während die Zahlen im register 904 irgendwie keinen Sinn ergeben. Allerdings ist dafür Reg. 3376 für den aktuellen Ladevorgang einigermaßen stimmig, während das entsprechende Register deines Skriptes auch 0 zeigt...
    Irgendwie seltsam das Ganze...

    A 1 Antwort Letzte Antwort
    0
    • M Modulo-N

      @arnod : Bei mir wird im Register 128 auch stur 0 angezeigt, während die Zahlen im register 904 irgendwie keinen Sinn ergeben. Allerdings ist dafür Reg. 3376 für den aktuellen Ladevorgang einigermaßen stimmig, während das entsprechende Register deines Skriptes auch 0 zeigt...
      Irgendwie seltsam das Ganze...

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

      @modulo-n
      Kann dir gerade nicht folgen, :-) welche Register meinst du?

      1 Antwort Letzte Antwort
      0
      • A ArnoD

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

        • Fehler behoben, dass die neue Objekt-ID "0_userdata.0.Charge_Control.Allgemein.Akt_Berechnete_Ladeleistung_W" nach Ladeende nicht auf 0 gesetzt wurde. Die Ladeleistung wird jetzt auch berechnet, wenn „Automatik Laderegelung“ ausgeschaltet wird.
        A Offline
        A Offline
        ArnoD
        schrieb am zuletzt editiert von
        #2461

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

        • Parameter in VIS können jetzt auch einzeln unter „Einstellung manuell“ geändert werden.
        • Regelung Charge-Control wird gestoppt, wenn manuelles Laden der Batterie beim E3DC aktiviert wird
        A 1 Antwort Letzte Antwort
        0
        • O Offline
          O Offline
          OliverR 0
          schrieb am zuletzt editiert von
          #2462

          Guten Abend alle zusammen,
          frohes neues Jahr und allen viel Gesundheit.
          Ich bin neu im Forum und habe auch seit Anfang 2023 einen E3DC S10 Pro mit MyPV Heizstab.

          Von Beruf Systemintegrator und DevOps Engineer.

          Gerne würde ich die Integrationen und Views, die hier eingestellt wurden, unterstützen, aber sehe auch das nicht alles in @ArnoD seinem Github Repo hinterlegt ist.

          Wie kann ich die Unterstützung am Besten einbringen ?

          Beste Grüße

          A 1 Antwort Letzte Antwort
          0
          • O OliverR 0

            Guten Abend alle zusammen,
            frohes neues Jahr und allen viel Gesundheit.
            Ich bin neu im Forum und habe auch seit Anfang 2023 einen E3DC S10 Pro mit MyPV Heizstab.

            Von Beruf Systemintegrator und DevOps Engineer.

            Gerne würde ich die Integrationen und Views, die hier eingestellt wurden, unterstützen, aber sehe auch das nicht alles in @ArnoD seinem Github Repo hinterlegt ist.

            Wie kann ich die Unterstützung am Besten einbringen ?

            Beste Grüße

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

            @oliverr-0
            Hi, bin für Hilfe immer dankbar :-)
            Es sollte eigentlich alles auf GitHub zu finden sein oder habe ich was vergessen hochzuladen?

            O 1 Antwort Letzte Antwort
            0
            • A ArnoD

              @oliverr-0
              Hi, bin für Hilfe immer dankbar :-)
              Es sollte eigentlich alles auf GitHub zu finden sein oder habe ich was vergessen hochzuladen?

              O Offline
              O Offline
              OliverR 0
              schrieb am zuletzt editiert von
              #2464

              @arnod was ich aktuell nicht finde

              • das Heizstab Script
              • die aktuellen Views für "Energie" Tabs ( 01_Batterie, 28_E3DC_WR_Diagramm, 17_Stromzähler_Tag, 17_Stromzähler_Monat, 21_Energieverbrauch, 28_E3DC_PV_Diagramm )

              Gibt es eine offene Punkteliste, woran wir alle aktuell arbeiten möchten ? In den Github Issues finde ich aktuell keine Themen :-)

              A 1 Antwort Letzte Antwort
              0
              • O OliverR 0

                @arnod was ich aktuell nicht finde

                • das Heizstab Script
                • die aktuellen Views für "Energie" Tabs ( 01_Batterie, 28_E3DC_WR_Diagramm, 17_Stromzähler_Tag, 17_Stromzähler_Monat, 21_Energieverbrauch, 28_E3DC_PV_Diagramm )

                Gibt es eine offene Punkteliste, woran wir alle aktuell arbeiten möchten ? In den Github Issues finde ich aktuell keine Themen :-)

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

                @oliverr-0
                Ok, jetzt verstehe ich, was du meinst. :-)
                Hier geht es eigentlich nur um ein Script "Charge-Control" um die Batterieladung vom E3DC etwas optimaler zu gestalten.
                Der Heizstab ist da nicht enthalten, genauso wenig eine Wallbox oder Wärmepumpe.

                Die Views, was dir fehlen, habe auch nur bedingt was mit dem E3DC zu tun.
                01_Batterie z.B ist eine Liste aller Homematic Geräte mit Batterie wie der aktuelle Ladezustand ist.
                28_E3DC_WR_Diagramm fehlt tatsächlich noch und werde ich hochladen.
                17_Stromzähler_Tag und 17_Stromzähler_Monat ist ein Script von smartboart um eine tabellarische Übersicht über den Eigenverbrauch, Einspeisung, Bezugszähler, PV Zähler usw. zu erstellen. Problem dabei ist aber, dass die Hardware vorhanden sein muss, um seine Zählerstände abrufen zu können, was auch nicht jeder hat.

                Da jeder unterschiedlichen Kombinationen und damit Anforderungen hat, habe ich mich hier auf den kleinsten gemeinsamen Nenner, das E3DC-Hauskraftwerk konzentriert. :-)

                Was soll noch alles umgesetzt werden:

                • Wenn die Wallbox Laderegelung über den e3dc-rscp Adapter jetzt funktioniert, werde ich diese auch integrieren, aktuell sind es noch zwei unterschiedliche Scripte, da eine Steuerung aktuell nur über Modbus sauber funktioniert.
                • Bei der Integration Heizstab bin ich noch am überlegen, da ich eine Lambda-Wärmepumpe und kein Heizstab habe. Da könntest du aber unterstützen oder übernehmen. :-)
                • LOG Ausgabe überarbeiten, um alle nötigen Informationen zu haben bei Problemen.
                • Generell Code aufräumen und optimieren. Da immer wieder was dazugekommen ist, was nicht vorgesehen war. :-)
                • Laden der Batterie, wenn der Preis an der Strombörse am billigsten ist (Awattar usw.)

                Es können natürlich noch weitere Vorschläge gemacht werden.
                Ich bin mir auch nicht sicher, ob es sinnvoll ist alles in ein Script zu packen, kann man gerne diskutieren. :-)

                O 1 Antwort Letzte Antwort
                0
                • A ArnoD

                  @oliverr-0
                  Ok, jetzt verstehe ich, was du meinst. :-)
                  Hier geht es eigentlich nur um ein Script "Charge-Control" um die Batterieladung vom E3DC etwas optimaler zu gestalten.
                  Der Heizstab ist da nicht enthalten, genauso wenig eine Wallbox oder Wärmepumpe.

                  Die Views, was dir fehlen, habe auch nur bedingt was mit dem E3DC zu tun.
                  01_Batterie z.B ist eine Liste aller Homematic Geräte mit Batterie wie der aktuelle Ladezustand ist.
                  28_E3DC_WR_Diagramm fehlt tatsächlich noch und werde ich hochladen.
                  17_Stromzähler_Tag und 17_Stromzähler_Monat ist ein Script von smartboart um eine tabellarische Übersicht über den Eigenverbrauch, Einspeisung, Bezugszähler, PV Zähler usw. zu erstellen. Problem dabei ist aber, dass die Hardware vorhanden sein muss, um seine Zählerstände abrufen zu können, was auch nicht jeder hat.

                  Da jeder unterschiedlichen Kombinationen und damit Anforderungen hat, habe ich mich hier auf den kleinsten gemeinsamen Nenner, das E3DC-Hauskraftwerk konzentriert. :-)

                  Was soll noch alles umgesetzt werden:

                  • Wenn die Wallbox Laderegelung über den e3dc-rscp Adapter jetzt funktioniert, werde ich diese auch integrieren, aktuell sind es noch zwei unterschiedliche Scripte, da eine Steuerung aktuell nur über Modbus sauber funktioniert.
                  • Bei der Integration Heizstab bin ich noch am überlegen, da ich eine Lambda-Wärmepumpe und kein Heizstab habe. Da könntest du aber unterstützen oder übernehmen. :-)
                  • LOG Ausgabe überarbeiten, um alle nötigen Informationen zu haben bei Problemen.
                  • Generell Code aufräumen und optimieren. Da immer wieder was dazugekommen ist, was nicht vorgesehen war. :-)
                  • Laden der Batterie, wenn der Preis an der Strombörse am billigsten ist (Awattar usw.)

                  Es können natürlich noch weitere Vorschläge gemacht werden.
                  Ich bin mir auch nicht sicher, ob es sinnvoll ist alles in ein Script zu packen, kann man gerne diskutieren. :-)

                  O Offline
                  O Offline
                  OliverR 0
                  schrieb am zuletzt editiert von OliverR 0
                  #2466

                  @ArnoD okay weiß ich Bescheid. Danke für die Erläuterung, dann nehme ich da auch nur E3DC Themen auf.
                  Eure Arbeit an dem Script ist schon beeindruckend , habt euch sehr viel Mühe gegeben und gut dokumentiert im Quelltext.

                  Möchtest du Ideen hier im Forum diskutieren oder soll ich lieber Github Issue dafür aufmachen ? Ich denke im Github wäre es besser, da du dir dann auch die Codeanderungen anschauen und vergleichen kannst, damit deine persönliche Hausautomation keinen Schaden erleidet :-)

                  Folgende Views habe ich ebenfalls noch gesehen, die fehlen:
                  28_E3DC_Zell_Temp_Diagramm
                  28_E3DC_SOH_Diagramm

                  Bei dem Heizstab gibt es ja mehrere Möglichkeiten der Handhabung.

                  • über Modbus und Script manuell
                  • E3DC übernimmt bei Ladeende Variable die Kontrolle und speist automatisch überschüssige einzuspeisende Energie in den Pufferspeicher.

                  Eine Anfrage, die Informationen aus dem E3DC bereitzustellen, habe ich bereits Juni 2023 gestellt und habe nochmal nachgefragt, ob da was kommen wird.

                  ITSMSD-105350
                  ist die alte Ticketnummer, falls jemand das Feature pushen möchte.

                  Thema des Support Tickets
                  ###################################
                  Sehr geehrtes Support Team,

                  gerne würde ich diesen Request nochmal aufgreifen und das Entwicklungsteam darum bitten, die im E3DC bereitgestellten Informationen auch über den Modbus und RSCP bereitzustellen.

                  Beispiel :

                  Leistungsinformationen
                  Temperatur
                  Warmwasserregelung
                  Ladefunktion für Warmwasser
                  Boost Funktion
                  etc.
                  ###################################

                  A 1 Antwort Letzte Antwort
                  0
                  • O OliverR 0

                    @ArnoD okay weiß ich Bescheid. Danke für die Erläuterung, dann nehme ich da auch nur E3DC Themen auf.
                    Eure Arbeit an dem Script ist schon beeindruckend , habt euch sehr viel Mühe gegeben und gut dokumentiert im Quelltext.

                    Möchtest du Ideen hier im Forum diskutieren oder soll ich lieber Github Issue dafür aufmachen ? Ich denke im Github wäre es besser, da du dir dann auch die Codeanderungen anschauen und vergleichen kannst, damit deine persönliche Hausautomation keinen Schaden erleidet :-)

                    Folgende Views habe ich ebenfalls noch gesehen, die fehlen:
                    28_E3DC_Zell_Temp_Diagramm
                    28_E3DC_SOH_Diagramm

                    Bei dem Heizstab gibt es ja mehrere Möglichkeiten der Handhabung.

                    • über Modbus und Script manuell
                    • E3DC übernimmt bei Ladeende Variable die Kontrolle und speist automatisch überschüssige einzuspeisende Energie in den Pufferspeicher.

                    Eine Anfrage, die Informationen aus dem E3DC bereitzustellen, habe ich bereits Juni 2023 gestellt und habe nochmal nachgefragt, ob da was kommen wird.

                    ITSMSD-105350
                    ist die alte Ticketnummer, falls jemand das Feature pushen möchte.

                    Thema des Support Tickets
                    ###################################
                    Sehr geehrtes Support Team,

                    gerne würde ich diesen Request nochmal aufgreifen und das Entwicklungsteam darum bitten, die im E3DC bereitgestellten Informationen auch über den Modbus und RSCP bereitzustellen.

                    Beispiel :

                    Leistungsinformationen
                    Temperatur
                    Warmwasserregelung
                    Ladefunktion für Warmwasser
                    Boost Funktion
                    etc.
                    ###################################

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

                    @oliverr-0 sagte in E3DC Hauskraftwerk steuern:

                    Möchtest du Ideen hier im Forum diskutieren oder soll ich lieber Github Issue dafür aufmachen ?

                    Github ist für mich in Ordnung.

                    Folgende Views habe ich ebenfalls noch gesehen, die fehlen:
                    28_E3DC_Zell_Temp_Diagramm
                    28_E3DC_SOH_Diagramm

                    Ich habe jetzt alle mal auf Github hochgeladen.
                    Die Diagramme müssen alle erst im Flot Editor erstellt werden und dann die Links im VIS Editor angepasst werden, deswegen hatte ich die Views nicht hochgeladen, da diese so keinen Sinn machen.

                    Bei dem Heizstab gibt es ja mehrere Möglichkeiten der Handhabung.

                    • über Modbus und Script manuell
                    • E3DC übernimmt bei Ladeende Variable die Kontrolle und speist automatisch überschüssige einzuspeisende Energie in den Pufferspeicher.

                    Eine Anfrage, die Informationen aus dem E3DC bereitzustellen, habe ich bereits Juni 2023 gestellt und habe nochmal nachgefragt, ob da was kommen wird.

                    Im ersten Step wird es wohl nur über Modbus funktionieren und sollte dann E3DC die RSCP Schnittstelle erweitern und endlich eine neue ausführlichere Dokumentation dieser Schnittstelle veröffentlichen, dann kann Uli seinen e3dc-rscp Adapter anpassen.

                    O 1 Antwort Letzte Antwort
                    0
                    • A ArnoD

                      @oliverr-0 sagte in E3DC Hauskraftwerk steuern:

                      Möchtest du Ideen hier im Forum diskutieren oder soll ich lieber Github Issue dafür aufmachen ?

                      Github ist für mich in Ordnung.

                      Folgende Views habe ich ebenfalls noch gesehen, die fehlen:
                      28_E3DC_Zell_Temp_Diagramm
                      28_E3DC_SOH_Diagramm

                      Ich habe jetzt alle mal auf Github hochgeladen.
                      Die Diagramme müssen alle erst im Flot Editor erstellt werden und dann die Links im VIS Editor angepasst werden, deswegen hatte ich die Views nicht hochgeladen, da diese so keinen Sinn machen.

                      Bei dem Heizstab gibt es ja mehrere Möglichkeiten der Handhabung.

                      • über Modbus und Script manuell
                      • E3DC übernimmt bei Ladeende Variable die Kontrolle und speist automatisch überschüssige einzuspeisende Energie in den Pufferspeicher.

                      Eine Anfrage, die Informationen aus dem E3DC bereitzustellen, habe ich bereits Juni 2023 gestellt und habe nochmal nachgefragt, ob da was kommen wird.

                      Im ersten Step wird es wohl nur über Modbus funktionieren und sollte dann E3DC die RSCP Schnittstelle erweitern und endlich eine neue ausführlichere Dokumentation dieser Schnittstelle veröffentlichen, dann kann Uli seinen e3dc-rscp Adapter anpassen.

                      O Offline
                      O Offline
                      OliverR 0
                      schrieb am zuletzt editiert von
                      #2468

                      @arnod said in E3DC Hauskraftwerk steuern:

                      Folgende Views habe ich ebenfalls noch gesehen, die fehlen:
                      28_E3DC_Zell_Temp_Diagramm
                      28_E3DC_SOH_Diagramm

                      Ich habe jetzt alle mal auf Github hochgeladen.
                      Die Diagramme müssen alle erst im Flot Editor erstellt werden und dann die Links im VIS Editor angepasst werden, deswegen hatte ich die Views nicht hochgeladen, da diese so keinen Sinn machen.

                      Wenn du möchtest, kann ich gerne für dich die Dokumentation dahin gehend erweitern. Ist es für dich in Ordnung, wenn ich die PDFs umwandle und anpasse ?

                      So hast du erstmal ein wenig mehr aufgeräumt. Vielleicht macht es auch Sinn, nicht benötigte Dateien zu archivieren.

                      Entschuldige, wenn ich zu forsch bin und ggf. zu schnell bin. Habe aktuell noch ein wenig Zeit, was sich zu Mitte Januar wieder ändern wird :-)

                      Wenn etwas nicht passt immer gerne frei raus sprechen.

                      A 1 Antwort Letzte Antwort
                      0
                      • O OliverR 0

                        @arnod said in E3DC Hauskraftwerk steuern:

                        Folgende Views habe ich ebenfalls noch gesehen, die fehlen:
                        28_E3DC_Zell_Temp_Diagramm
                        28_E3DC_SOH_Diagramm

                        Ich habe jetzt alle mal auf Github hochgeladen.
                        Die Diagramme müssen alle erst im Flot Editor erstellt werden und dann die Links im VIS Editor angepasst werden, deswegen hatte ich die Views nicht hochgeladen, da diese so keinen Sinn machen.

                        Wenn du möchtest, kann ich gerne für dich die Dokumentation dahin gehend erweitern. Ist es für dich in Ordnung, wenn ich die PDFs umwandle und anpasse ?

                        So hast du erstmal ein wenig mehr aufgeräumt. Vielleicht macht es auch Sinn, nicht benötigte Dateien zu archivieren.

                        Entschuldige, wenn ich zu forsch bin und ggf. zu schnell bin. Habe aktuell noch ein wenig Zeit, was sich zu Mitte Januar wieder ändern wird :-)

                        Wenn etwas nicht passt immer gerne frei raus sprechen.

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

                        @oliverr-0
                        Kein Problem, kannst du gerne machen.
                        Ich kann dir aber auch die original Word Datei schicken. ;-)

                        O 1 Antwort Letzte Antwort
                        0
                        • A ArnoD

                          @oliverr-0
                          Kein Problem, kannst du gerne machen.
                          Ich kann dir aber auch die original Word Datei schicken. ;-)

                          O Offline
                          O Offline
                          OliverR 0
                          schrieb am zuletzt editiert von
                          #2470

                          @arnod dann pack gerne die Word Datei rein, dann brauche ich ggf. nicht die Formatierung zu korrigieren :-)

                          A 1 Antwort Letzte Antwort
                          0
                          • O OliverR 0

                            @arnod dann pack gerne die Word Datei rein, dann brauche ich ggf. nicht die Formatierung zu korrigieren :-)

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

                            @oliverr-0
                            Anleitung E3DC-Control.docx
                            Anleitung Charge-Control.docx

                            1 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              Abyss
                              schrieb am zuletzt editiert von Abyss
                              #2472

                              @ArnoD
                              Danke nochmal für deine Unterstützung mit dem Heizstabscript.

                              Ich pack hier mal das aktuelle Heizstabscript mit rein.
                              Evtl. kannst du das ja auch in deiner Github Sammlung gebrauchen.

                              Bis jetzt läuft das sehr gut.
                              Ich bin noch am testen ob die lineare Abregelung notwendig ist, oder ob man das einfach dem Heizstab überlässt.
                              Der Heizstab schaltet sich bei erreichen der MaxTemp automatisch ab, bei mir 60° und kühlt dann ab bis 57°, danach aktiviert er sich wieder.
                              Hab noch zu wenig sonnige Tage um zu sagen was effektiver ist.

                              //MyPV Version v.0.06
                              					 
                              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_Batterie_SOC = 'e3dc-rscp.0.EMS.BAT_SOC';                         	// Batterie_Ladezustand
                              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_IstTempExtFuehler = 'modbus.1.holdingRegisters.41031_Temp2'           // Temp_2 externer Fühler																										  
                              const sID_MaxTempHeizstab = 'modbus.1.holdingRegisters.41003_WW1_Temp_max'; 	// Maximal-Temperatur lt. Drehregler am Heizstab
                              const sID_MaxHeizstableistung_W = 'modbus.1.holdingRegisters.41015_max_Power'   // Maximale Heizstableistung
                              const sID_HeizstabStatus = 'modbus.1.holdingRegisters.41004_Status'             // Heizstab Status (R)
                              const Haltezeit = 10;                                                       	// Haltezeit in min.
                              
                               
                              let HaltezeitHeizstab = null;
                              clearTimeout(HaltezeitHeizstab); 
                               
                              // schedule('{"time":{"start":"10:00","end":"16:00","mode":"minutes","interval":1},"period":{"days":1}}', async function (obj) {
                              schedule('*/20 * * * * *', async function () {
                              // 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 NetzLeistung_W = (await getStateAsync(sID_Netz_Leistung)).val;
                                  let MaxTempHeizstab = (await getStateAsync(sID_MaxTempHeizstab)).val;
                                  let IstTempHeizstab = (await getStateAsync(sID_IstTempHeizstab)).val;
                              	let IstTempExtFuehler = (await getStateAsync(sID_IstTempExtFuehler)).val;																		 
                                  let Batterie_SOC = (await getStateAsync(sID_Batterie_SOC)).val;
                                  let MaxHeizstableistung_W = (await getStateAsync(sID_MaxHeizstableistung_W)).val;
                                  let HeizstabStatus = (await getStateAsync(sID_HeizstabStatus)).val;
                                  let HeizstabLadeleistung_W = 0;
                               
                                  Hausverbrauch_W =Hausverbrauch_W - LeistungHeizstab_W; //Hausverbrauch ohne Leistung Heizstab
                                  NetzLeistung_W = 0 - PV_Leistung_W + Hausverbrauch_W + BatterieLeistung_W; //Netzleistung ohne Heizstab
                                  
                                  // PV_Leistung_W = 8000
                                  // NetzLeistung_W = -1000
                              
                                  // Prüfen ob Werte Netz oder Batterie negativ sind um Überschuss richtig zu berechnen
                                  if (NetzLeistung_W <= -1000 && BatterieLeistung_W <= 0){
                                      HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W+BatterieLeistung_W);
                                  }else if (NetzLeistung_W <= -1000 && BatterieLeistung_W > 0){
                                      HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W-BatterieLeistung_W);																				
                                  }                  
                               
                                  // Lineare Interpolation abhängig der mind.Temperatur am Heizstab
                                  // lineare Interpolation Leistung Heizstab 
                              
                                  let LinIntp_HeizstabLadeleistung_W = MaxHeizstableistung_W+(0-MaxHeizstableistung_W)*((IstTempHeizstab-57)/(MaxTempHeizstab-57))
                                  log(`NetzLeistung_W = ${NetzLeistung_W} Hausverbrauch_W = ${Hausverbrauch_W} LeistungHeizstab_W = ${LeistungHeizstab_W} PV_Leistung_W =${PV_Leistung_W} BatterieLeistung_W = ${BatterieLeistung_W} IstTempHeizstab = ${IstTempHeizstab} MaxTempHeizstab = ${MaxTempHeizstab} HeizstabLadeleistung_W = ${HeizstabLadeleistung_W} Interpolation Leistung = ${LinIntp_HeizstabLadeleistung_W}`);
                               
                                  if (HeizstabLadeleistung_W > LinIntp_HeizstabLadeleistung_W){
                                      HeizstabLadeleistung_W = LinIntp_HeizstabLadeleistung_W;
                                      if (HaltezeitHeizstab){clearTimeout(HaltezeitHeizstab)}
                                      HaltezeitHeizstab = setTimeout(function () {HaltezeitHeizstab = null;}, Haltezeit*60000);
                                  }else if (HeizstabLadeleistung_W <= 0 && HaltezeitHeizstab){
                                     HeizstabLadeleistung_W = LinIntp_HeizstabLadeleistung_W;
                                  }
                              
                              
                                  // Prüfen ob HeizstabLadeleistung_W > 3500W ist
                                  if (HeizstabLadeleistung_W > MaxHeizstableistung_W){HeizstabLadeleistung_W = MaxHeizstableistung_W}   
                                  // Prüfen ob HeizstabLadeleistung_W < 0W ist
                                  if (HeizstabLadeleistung_W < 0){HeizstabLadeleistung_W = 0}  
                                  // Prüfen ob Batterie SOC < 20% ist
                                  if (Batterie_SOC < 20){HeizstabLadeleistung_W = 0}
                                  // Prüfen ob Heizstab auf Status "Heizen Beendet" steht
                                  if (HeizstabStatus == 5){HeizstabLadeleistung_W = 0}  
                                  // Prüfen ob max.Temp 60° oben erreicht
                                  if (IstTempExtFuehler >= 61 && IstTempHeizstab > 50){HeizstabLadeleistung_W = 0}
                               
                                  if( (await getStateAsync(sID_LeistungHeizstab_W)).val != HeizstabLadeleistung_W) {
                                          await setStateAsync(sID_LeistungHeizstab_W,HeizstabLadeleistung_W);
                                      };
                                  // await setStateAsync(sID_Soll_LeistungHeizstab_W,HeizstabLadeleistung_W);
                              							 
                              });
                               
                              
                              

                              Grüße

                              J 1 Antwort Letzte Antwort
                              0
                              • A Abyss

                                @ArnoD
                                Danke nochmal für deine Unterstützung mit dem Heizstabscript.

                                Ich pack hier mal das aktuelle Heizstabscript mit rein.
                                Evtl. kannst du das ja auch in deiner Github Sammlung gebrauchen.

                                Bis jetzt läuft das sehr gut.
                                Ich bin noch am testen ob die lineare Abregelung notwendig ist, oder ob man das einfach dem Heizstab überlässt.
                                Der Heizstab schaltet sich bei erreichen der MaxTemp automatisch ab, bei mir 60° und kühlt dann ab bis 57°, danach aktiviert er sich wieder.
                                Hab noch zu wenig sonnige Tage um zu sagen was effektiver ist.

                                //MyPV Version v.0.06
                                					 
                                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_Batterie_SOC = 'e3dc-rscp.0.EMS.BAT_SOC';                         	// Batterie_Ladezustand
                                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_IstTempExtFuehler = 'modbus.1.holdingRegisters.41031_Temp2'           // Temp_2 externer Fühler																										  
                                const sID_MaxTempHeizstab = 'modbus.1.holdingRegisters.41003_WW1_Temp_max'; 	// Maximal-Temperatur lt. Drehregler am Heizstab
                                const sID_MaxHeizstableistung_W = 'modbus.1.holdingRegisters.41015_max_Power'   // Maximale Heizstableistung
                                const sID_HeizstabStatus = 'modbus.1.holdingRegisters.41004_Status'             // Heizstab Status (R)
                                const Haltezeit = 10;                                                       	// Haltezeit in min.
                                
                                 
                                let HaltezeitHeizstab = null;
                                clearTimeout(HaltezeitHeizstab); 
                                 
                                // schedule('{"time":{"start":"10:00","end":"16:00","mode":"minutes","interval":1},"period":{"days":1}}', async function (obj) {
                                schedule('*/20 * * * * *', async function () {
                                // 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 NetzLeistung_W = (await getStateAsync(sID_Netz_Leistung)).val;
                                    let MaxTempHeizstab = (await getStateAsync(sID_MaxTempHeizstab)).val;
                                    let IstTempHeizstab = (await getStateAsync(sID_IstTempHeizstab)).val;
                                	let IstTempExtFuehler = (await getStateAsync(sID_IstTempExtFuehler)).val;																		 
                                    let Batterie_SOC = (await getStateAsync(sID_Batterie_SOC)).val;
                                    let MaxHeizstableistung_W = (await getStateAsync(sID_MaxHeizstableistung_W)).val;
                                    let HeizstabStatus = (await getStateAsync(sID_HeizstabStatus)).val;
                                    let HeizstabLadeleistung_W = 0;
                                 
                                    Hausverbrauch_W =Hausverbrauch_W - LeistungHeizstab_W; //Hausverbrauch ohne Leistung Heizstab
                                    NetzLeistung_W = 0 - PV_Leistung_W + Hausverbrauch_W + BatterieLeistung_W; //Netzleistung ohne Heizstab
                                    
                                    // PV_Leistung_W = 8000
                                    // NetzLeistung_W = -1000
                                
                                    // Prüfen ob Werte Netz oder Batterie negativ sind um Überschuss richtig zu berechnen
                                    if (NetzLeistung_W <= -1000 && BatterieLeistung_W <= 0){
                                        HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W+BatterieLeistung_W);
                                    }else if (NetzLeistung_W <= -1000 && BatterieLeistung_W > 0){
                                        HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W-BatterieLeistung_W);																				
                                    }                  
                                 
                                    // Lineare Interpolation abhängig der mind.Temperatur am Heizstab
                                    // lineare Interpolation Leistung Heizstab 
                                
                                    let LinIntp_HeizstabLadeleistung_W = MaxHeizstableistung_W+(0-MaxHeizstableistung_W)*((IstTempHeizstab-57)/(MaxTempHeizstab-57))
                                    log(`NetzLeistung_W = ${NetzLeistung_W} Hausverbrauch_W = ${Hausverbrauch_W} LeistungHeizstab_W = ${LeistungHeizstab_W} PV_Leistung_W =${PV_Leistung_W} BatterieLeistung_W = ${BatterieLeistung_W} IstTempHeizstab = ${IstTempHeizstab} MaxTempHeizstab = ${MaxTempHeizstab} HeizstabLadeleistung_W = ${HeizstabLadeleistung_W} Interpolation Leistung = ${LinIntp_HeizstabLadeleistung_W}`);
                                 
                                    if (HeizstabLadeleistung_W > LinIntp_HeizstabLadeleistung_W){
                                        HeizstabLadeleistung_W = LinIntp_HeizstabLadeleistung_W;
                                        if (HaltezeitHeizstab){clearTimeout(HaltezeitHeizstab)}
                                        HaltezeitHeizstab = setTimeout(function () {HaltezeitHeizstab = null;}, Haltezeit*60000);
                                    }else if (HeizstabLadeleistung_W <= 0 && HaltezeitHeizstab){
                                       HeizstabLadeleistung_W = LinIntp_HeizstabLadeleistung_W;
                                    }
                                
                                
                                    // Prüfen ob HeizstabLadeleistung_W > 3500W ist
                                    if (HeizstabLadeleistung_W > MaxHeizstableistung_W){HeizstabLadeleistung_W = MaxHeizstableistung_W}   
                                    // Prüfen ob HeizstabLadeleistung_W < 0W ist
                                    if (HeizstabLadeleistung_W < 0){HeizstabLadeleistung_W = 0}  
                                    // Prüfen ob Batterie SOC < 20% ist
                                    if (Batterie_SOC < 20){HeizstabLadeleistung_W = 0}
                                    // Prüfen ob Heizstab auf Status "Heizen Beendet" steht
                                    if (HeizstabStatus == 5){HeizstabLadeleistung_W = 0}  
                                    // Prüfen ob max.Temp 60° oben erreicht
                                    if (IstTempExtFuehler >= 61 && IstTempHeizstab > 50){HeizstabLadeleistung_W = 0}
                                 
                                    if( (await getStateAsync(sID_LeistungHeizstab_W)).val != HeizstabLadeleistung_W) {
                                            await setStateAsync(sID_LeistungHeizstab_W,HeizstabLadeleistung_W);
                                        };
                                    // await setStateAsync(sID_Soll_LeistungHeizstab_W,HeizstabLadeleistung_W);
                                							 
                                });
                                 
                                
                                

                                Grüße

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

                                @abyss
                                Sehr cool, was da draus geworden ist!

                                @ArnoD und @OliverR-0
                                Vielleicht sollte es eine generelle Schnittstelle geben. Ich stelle mir vor, dass Charge-Control einen Wert "freigegebene W" in ein Objekt bspw. unter "0_userdata\0\Charge_Control" schreibt und diese immer wieder aktualisiert. Ein Skript bspw. für eine Wärmepumpe oder einen Heizstab könnte diesen Wert nutzen und einen Verbraucher mit einer Wattzahl ansteuern - die genutzte Wattzahl hat dieses Skript dann in einen Wert "genutzte W" zu schreiben, damit Charge-Control diesen bei seiner nächsten Berechnung nutzen kann.

                                Für so ein externes Skript könnte man dann eine Vorlage bauen. Einen Bereich, der die zur Verfügung stehende Wattzahl abgreift, einen zu befüllenden Teil für die Nutzung und einen Teil, der die genutzten W zurückschreibt.

                                Was meint Ihr?

                                A 1 Antwort Letzte Antwort
                                0
                                • J jans_ios

                                  @abyss
                                  Sehr cool, was da draus geworden ist!

                                  @ArnoD und @OliverR-0
                                  Vielleicht sollte es eine generelle Schnittstelle geben. Ich stelle mir vor, dass Charge-Control einen Wert "freigegebene W" in ein Objekt bspw. unter "0_userdata\0\Charge_Control" schreibt und diese immer wieder aktualisiert. Ein Skript bspw. für eine Wärmepumpe oder einen Heizstab könnte diesen Wert nutzen und einen Verbraucher mit einer Wattzahl ansteuern - die genutzte Wattzahl hat dieses Skript dann in einen Wert "genutzte W" zu schreiben, damit Charge-Control diesen bei seiner nächsten Berechnung nutzen kann.

                                  Für so ein externes Skript könnte man dann eine Vorlage bauen. Einen Bereich, der die zur Verfügung stehende Wattzahl abgreift, einen zu befüllenden Teil für die Nutzung und einen Teil, der die genutzten W zurückschreibt.

                                  Was meint Ihr?

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

                                  @jans_ios
                                  Das müsste @OliverR-0 testen, da ich keinen Heizstab habe und mich da echt schwertue was zu programmieren, dass ich dann nicht testen kann.
                                  Das eigentliche Problem ist, dass die Leistungswerte vom Heizstab anscheinend verzögert kommen und somit dann nicht verwendet werden können. Bedeutet, wenn der Heizstab sich einschaltet, bekommt das Script verzögert die Verbrauchswerte vom Heizstab und würde davon ausgehen das kein Überschuss mehr vorhanden ist. Das würde zum Ein- und Ausschalten vom Heizstab führen.

                                  1 Antwort Letzte Antwort
                                  0
                                  • A Offline
                                    A Offline
                                    Abyss
                                    schrieb am zuletzt editiert von
                                    #2475

                                    @ArnoD

                                    Hallo Arno,

                                    ich stell mich vermutlich mal wieder zu doof....aber ich bin grad drübergestolpert das in der "Prognose-View" komplett die Daten aus dem Vorjahr schon drinstehen.
                                    Muss man hier den History-Daten-Ordner löschen und das Script legt den neu an?
                                    Oder hätte das automatisch passieren müssen und bei mir is da was schiefgelaufen?
                                    Steh grad auf dem Schlauch. ;)

                                    Danke und Grüße

                                    A 1 Antwort Letzte Antwort
                                    0
                                    • A Abyss

                                      @ArnoD

                                      Hallo Arno,

                                      ich stell mich vermutlich mal wieder zu doof....aber ich bin grad drübergestolpert das in der "Prognose-View" komplett die Daten aus dem Vorjahr schon drinstehen.
                                      Muss man hier den History-Daten-Ordner löschen und das Script legt den neu an?
                                      Oder hätte das automatisch passieren müssen und bei mir is da was schiefgelaufen?
                                      Steh grad auf dem Schlauch. ;)

                                      Danke und Grüße

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

                                      @abyss
                                      Die Daten werden automatisch am 1 eines jeden Monats nur für den aktuellen Monat gelöscht.
                                      Ab dem 01.01 solltest du somit keine Werte mehr vom Vorjahr in der Ansicht Januar haben.
                                      Wenn du am 01.01. auf Februar umschaltest, siehst du noch die Werte Februar vom Vorjahr.

                                      A 1 Antwort Letzte Antwort
                                      0
                                      • A ArnoD

                                        @abyss
                                        Die Daten werden automatisch am 1 eines jeden Monats nur für den aktuellen Monat gelöscht.
                                        Ab dem 01.01 solltest du somit keine Werte mehr vom Vorjahr in der Ansicht Januar haben.
                                        Wenn du am 01.01. auf Februar umschaltest, siehst du noch die Werte Februar vom Vorjahr.

                                        A Offline
                                        A Offline
                                        Abyss
                                        schrieb am zuletzt editiert von
                                        #2477

                                        @arnod
                                        Danke für dein Feedback.
                                        So etwas hatte ich gehofft/befürchtet.
                                        Musste diese Woche ein Backup meiner iobroker-VM restoren und seitdem ist mir das Problem aufgefallen.
                                        Sprich zum Monatswechsel zum 1.2. wird sich das wieder bereinigen und normal weiterlaufen?

                                        Danke dir ;)

                                        A 1 Antwort Letzte Antwort
                                        0
                                        • A Abyss

                                          @arnod
                                          Danke für dein Feedback.
                                          So etwas hatte ich gehofft/befürchtet.
                                          Musste diese Woche ein Backup meiner iobroker-VM restoren und seitdem ist mir das Problem aufgefallen.
                                          Sprich zum Monatswechsel zum 1.2. wird sich das wieder bereinigen und normal weiterlaufen?

                                          Danke dir ;)

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

                                          @abyss sagte in E3DC Hauskraftwerk steuern:

                                          Sprich zum Monatswechsel zum 1.2. wird sich das wieder bereinigen und normal weiterlaufen?

                                          Ja

                                          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

                                          730

                                          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