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

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    E3DC Hauskraftwerk steuern

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

      @smartboart
      Habe jetzt eine Rückmeldung von E3DC wegen den Batterieaussetzer.
      Sie haben bei mir ein Update aufgespielt und beobachten das Ganze die nächsten Tage.

      smartboart 2 Replies Last reply Reply Quote 0
      • M
        michael74 @ArnoD last edited by

        @ArnoD
        Im Protokoll finden ich nur einen Eintrag für Dachfläche 2
        Sonst keine Einträge.

        javascript.0	2020-09-11 06:10:05.008	info	(1575) script.js.common.E3DC.E3DC-Control_0_2_13: Prognose Proplanta in kWh = 68.2182
        javascript.0	2020-09-11 06:10:05.007	info	(1575) script.js.common.E3DC.E3DC-Control_0_2_13: Prognose Forecast in kWh = 0
        javascript.0	2020-09-11 06:10:00.382	info	(1575) script.js.common.E3DC.E3DC-Control_0_2_13: Gespeichert wurde Dachfläche =2/2 : 30346 :29826
        javascript.0	2020-09-11 06:10:00.382	info	(1575) script.js.common.E3DC.E3DC-Control_0_2_13: Rueckmeldung :{"result":{"2020-09-11":30346,"2020-09-12":29826},"message":{"code":0,"type":"success","text":"","info":{"place":"36251 Bad Hersfeld, H
        javascript.0	2020-09-11 05:10:05.008	info	(1575) script.js.common.E3DC.E3DC-Control_0_2_13: Berechneter Unload SoC ist = -44
        javascript.0	2020-09-11 05:10:05.008	info	(1575) script.js.common.E3DC.E3DC-Control_0_2_13: Bewölkungsgrad 15 Uhr Proplanta 0
        javascript.0	2020-09-11 05:10:05.008	info	(1575) script.js.common.E3DC.E3DC-Control_0_2_13: Bewölkungsgrad 12 Uhr Proplanta 0
        javascript.0	2020-09-11 05:10:05.007	info	(1575) script.js.common.E3DC.E3DC-Control_0_2_13: Ueberschuss in Prozent = 100
        
        A 1 Reply Last reply Reply Quote 0
        • smartboart
          smartboart @ArnoD last edited by

          @ArnoD sagte in E3DC Hauskraftwerk steuern:

          @smartboart
          Habe jetzt eine Rückmeldung von E3DC wegen den Batterieaussetzer.
          Sie haben bei mir ein Update aufgespielt und beobachten das Ganze die nächsten Tage.

          krass.... bei mir gabs auch ein update aber weil ich ein ticket aufgemacht habe, weil mein display dunkel blieb...Nach dem update war es wieder gut...
          Mein Ticket wegen Batterie ist noch offen...

          S 1 Reply Last reply Reply Quote 0
          • S
            stevie77 @smartboart last edited by

            @smartboart Du hast also schon das Update für das Update, das die Batterieprobleme lösen soll und Displayprobleme geschaffen hat?! Ist das dann vermutlich höher als .... oh, seit heute habe ich auch P10_2020_066, gerade beim Nachsehen bemerkt (alt 064). Hatte ich Glück, bei mir fiel das Display nicht aus und Batterieruckler habe ich auch nicht mehr, seit bei mir das Kabel getauscht wurde.

            @ArnoD Was sagt die 10:00 Uhr hier eigentlich genau aus? Die scheint gefühlt immer da zu stehen, wenn ich drauf sehe...

            6fa8f0a6-f35d-44bb-a465-0849dcbaa602-image.png

            Noch ne Frage zur Berechnungsgrundlage: Datum und Uhrzeit geben den Zeitpunkt der Hochrechnung an, nehme ich mal stark an, die Berechnungsgrundlage ist die angepasste zu der Uhrzeit? Also abzüglich der bis dato an dem Tag schon erzeugten Leistung (da die Auto-Prognose nochmals höher ist und den gesamten Tag betrifft)?

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

              @michael74 sagte in E3DC Hauskraftwerk steuern:

              @ArnoD
              Im Protokoll finden ich nur einen Eintrag für Dachfläche 2
              Sonst keine Einträge.

              Hast du am Script was geändert ?
              Vor Dachfläche2 wird immer Dachfläche1 abgerufen wenn die Variable nDachflaechen = 2 ist.

              Kopier bitte nochmal das Script aus meinem ersten Post nach der Zeile Ende User Anpassungen.

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

                @stevie77 sagte in E3DC Hauskraftwerk steuern:

                Was sagt die 10:00 Uhr hier eigentlich genau aus? Die scheint gefühlt immer da zu stehen, wenn ich drauf sehe...

                Hat da wieder jemand was gelöscht 🙂
                Das ist die Zeit von Proplanta wann ihre Webseite das nächste mal aktualisiert wird.
                Sollte eigentlich so aussehen:
                1.png

                Noch ne Frage zur Berechnungsgrundlage: Datum und Uhrzeit geben den Zeitpunkt der Hochrechnung an, nehme ich mal stark an, die Berechnungsgrundlage ist die angepasste zu der Uhrzeit? Also abzüglich der bis dato an dem Tag schon erzeugten Leistung (da die Auto-Prognose nochmals höher ist und den gesamten Tag betrifft)?

                Richtig

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

                  @ArnoD sagte in E3DC Hauskraftwerk steuern:

                  Hat da wieder jemand was gelöscht 🙂

                  Ach, hast ja recht... 🙂
                  Gerade nochmal das Original importiert, da sieht das so aus:

                  14ed2313-7121-4d35-af07-368b1934be84-image.png

                  Da hab' ich das wohl dummerweise entfernt, weil es mich optisch gestört hat, ohne bei der Nachtaktion über dessen tiefere Bedeutung im Sinne der möglichen neuen Funktionalität nachzudenken. 🙄

                  Jetzt wird's insgesamt langsam klarer...gerade SourceAnaytix entfernt und meine Summenfunktion auch (speichere jetzt nen eigenen State, der deinen State 0_userdata.0.E3DC-Control.Allgemein.IstSummePvLeistung_kWh auf eine Nachkommastelle kürzt zur Anzeige in meiner Statuszeile).
                  Gefällt mir sehr gut, wie das jetzt alles funktioniert! Bin mal gespannt, ob ich dieses Jahr nochmals Einstellung 2 aktiviert bekomme, momentan nur 4 und 5, was vor meinem Urlaub gar nie der Fall war.

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

                    @ArnoD Hab das Script nochmal neu kopiert. Hat leider auch keine Änderung gebracht. Dann hatte ich den Aufruf der Dachfläche 2 auskommentiert in Bereich
                    // Daten Forecast einmal beim Programmstart aktualisieren case=2
                    jetzt kam Dachfläche 1
                    Dann habe ich die Zeile mit Dachfläche in folgende geändert, jetzt läuft es

                    setTimeout(function(){InterrogateForecast (1,2);;}, 2000);
                    
                    javascript.0	2020-09-13 16:56:34.834	info	(6611) script.js.common.E3DC.E3DC-Control_0_2_13: Prognose Forecast in kWh = 24.727
                    javascript.0	2020-09-13 16:56:32.033	info	(6611) script.js.common.E3DC.E3DC-Control_0_2_13: Gespeichert wurde Dachfläche =1/2 : 9949 :9251
                    javascript.0	2020-09-13 16:56:32.032	info	(6611) script.js.common.E3DC.E3DC-Control_0_2_13: Rueckmeldung :{"result":{"2020-09-13":9949,"2020-09-14":9251},"message":{"code":0,"type":"success","text":"","info":{"place":"36251 Bad Hersfeld, Her
                    javascript.0	2020-09-13 16:56:30.057	info	(6611) script.js.common.E3DC.E3DC-Control_0_2_13: Gespeichert wurde Dachfläche =2/2 : 14778 :12162
                    javascript.0	2020-09-13 16:56:30.054	info	(6611) script.js.common.E3DC.E3DC-Control_0_2_13: Rueckmeldung :{"result":{"2020-09-13":14778,"2020-09-14":12162},"message":{"code":0,"type":"success","text":"","info":{"place":"36251 Bad Hersfeld, H
                    javascript.0	2020-09-13 16:56:29.836	info	(6611) script.js.common.E3DC.E3DC-Control_0_2_13: registered 19 subscriptions and 7 schedules
                    javascript.0	2020-09-13 16:56:29.823	info	(6611) script.js.common.E3DC.E3DC-Control_0_2_13: Jetzt sind alle States abgearbeitet
                    
                    A 1 Reply Last reply Reply Quote 0
                    • M
                      michael74 last edited by

                      Hier noch mal ein Hinweis:

                          if (nDachflaechen == 2 && ForecastDach1_heute != 0 && ForecastDach2_heute !=0 ){
                              PrognoseForecas_kWh_heute = ForecastDach1_heute + ForecastDach2_heute;
                              PrognoseForecas_kWh_morgen = ForecastDach1_morgen + ForecastDach1_morgen;
                              
                          }
                      

                      In der Zeile Prognose_kwh_morgen muss es da nicht am Ende ForecastDach2_morgen heißen

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

                        @michael74 sagte in E3DC Hauskraftwerk steuern:

                        Dann habe ich die Zeile mit Dachfläche in folgende geändert, jetzt läuft es

                        Kannst du mal die Zeilen die du geändert hast hier posten. Bin mir nicht sicher ob ich deine Änderung richtig verstanden habe.

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

                          @michael74 sagte in E3DC Hauskraftwerk steuern:

                          In der Zeile Prognose_kwh_morgen muss es da nicht am Ende ForecastDach2_morgen heißen

                          👍 Ja da hast du recht, ist ein Kopierfehler. Habe ich geändert.
                          Danke.

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

                            @ArnoD Wollte den Code eigentlich kopiert haben...

                                // Daten Forecast einmal beim Programmstart aktualisieren
                                if(getState(sID_PrognoseAnwahl).val != 1) {
                                    switch (nDachflaechen){
                                    case 1:
                                        InterrogateForecast (1,2);
                                        setTimeout(function(){main();},5000);//Zeit geben bevor main ausgeführt wird
                                        break;
                                    case 2:
                                        //InterrogateForecast (1,2);
                                        setTimeout(function(){InterrogateForecast (1,2);;}, 2000);
                                        InterrogateForecast (2,2);
                                        setTimeout(function(){main();},5000);//Zeit geben bevor main ausgeführt wird
                                        break;
                                    };
                            

                            Änderung nur in Zeile 10. Muss jetzt noch in dem Bereich Timer die gleiche Änderung machen.

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

                              @michael74
                              OK konnte den Fehler reproduzieren.
                              Würde gerne beide Aufrufe etwas verzögern.
                              Kannst du mal bei dir folgende Änderung testen:

                              // Daten Forecast einmal beim Programmstart aktualisieren
                                  if(getState(sID_PrognoseAnwahl).val != 1) {
                                      switch (nDachflaechen){
                                      case 1:
                                          InterrogateForecast (1,2);
                                          setTimeout(function(){main();},5000);//Zeit geben bevor main ausgeführt wird
                                          break;
                                      case 2:
                                          setTimeout(function(){InterrogateForecast (1,2);},1000);
                                          setTimeout(function(){InterrogateForecast (2,2);},2000);
                                          setTimeout(function(){main();},5000);//Zeit geben bevor main ausgeführt wird
                                          break;
                                      };
                                  }
                              
                              S M 2 Replies Last reply Reply Quote 0
                              • S
                                stevie77 @ArnoD last edited by

                                @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                @michael74
                                OK konnte den Fehler reproduzieren.
                                Würde gerne beide Aufrufe etwas verzögern.
                                Kannst du mal bei dir folgende Änderung testen:

                                // Daten Forecast einmal beim Programmstart aktualisieren
                                    if(getState(sID_PrognoseAnwahl).val != 1) {
                                        switch (nDachflaechen){
                                        case 1:
                                            InterrogateForecast (1,2);
                                            setTimeout(function(){main();},5000);//Zeit geben bevor main ausgeführt wird
                                            break;
                                        case 2:
                                            setTimeout(function(){InterrogateForecast (1,2);},1000);
                                            setTimeout(function(){InterrogateForecast (2,2);},2000);
                                            setTimeout(function(){main();},5000);//Zeit geben bevor main ausgeführt wird
                                            break;
                                        };
                                    }
                                

                                Mit dieser Lösung sehe ich jetzt auch erstmals Dachfläche 1 im Log ("Gespeichert wurde Dachfläche =1/2 : 29494 :64200")...

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

                                  @ArnoD Ja so funktioniert es.

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

                                    Danke euch beiden für die Rückmeldung.

                                    Neue Version: 0.2.14 hochgeladen.

                                    Änderungen: Fehler in der Function Prognosen_kWh_Berechnen() korrigiert. Verzögerung für Aufruf der Function InterrogateForecast(). Danke an michael74.

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

                                      @ArnoD Heute mal endlich wieder mit 73,3 kWh ne nennenswerte Produktion. Es zeigt sich: Auch bei 3/4 der möglichen maximalen Erzeugung meiner PV-Anlagen geht der Produktionszähler über dein Skript mit nur 0,3 kWh Abweichung gegenüber dem Portal verdammt genau. Bei 100 kWh erwarte ich dann nicht mehr als 0,4 kWh Abweichung. Naja, nächstes Jahr dann wieder. 🙂

                                      Das führt mich zu der Frage, ob es für dich vielleicht Sinn macht evtl. auch die Netzeinspeisung (modbus.0.holdingRegisters.40074_Netz_Leistung) und den Hausverbrauch (modbus.0.holdingRegisters.40072_Hausverbrauch_Leistung) über die entsprechenden Modbus-Register aufzusummieren, auch wenn sie nicht direkt nötig sind zur Steuerung von E3DC-Control. Ich würde die beiden Werte gerne in meiner immer sichtbaren Statuszeile visualisieren.

                                      Falls diese Zusatzfunktion am Rande Sinn macht in dein Skript aufzunehmen, würde ich mich freuen, ansonsten müsste ich wohl on(sID_PvLeistungLM0_W, function(obj) {..} und function Wh_Leistungsmesser0(){..} kopieren und adaptieren, korrekt?

                                      A smartboart 2 Replies Last reply Reply Quote 0
                                      • A
                                        ArnoD @stevie77 last edited by

                                        @stevie77

                                        Der Scriptteil Produktionszähler kommt von smartboart, habe ich nur übernommen.
                                        Ich will nicht zu viel in das Script integrieren, um es nicht unnötig aufzublasen.
                                        Das Script soll ja nicht sourceanalytix ersetzen, was generell für genau diese Aufgabe gedacht ist und auch dafür besser geeignet ist.

                                        Aber es steht natürlich jedem frei das Script nach seinen Wünschen anzupassen.

                                        ansonsten müsste ich wohl on(sID_PvLeistungLM0_W, function(obj) {..} und function Wh_Leistungsmesser0(){..} kopieren und adaptieren, korrekt?

                                        Ja das ist richtig.

                                        1 Reply Last reply Reply Quote 0
                                        • smartboart
                                          smartboart @stevie77 last edited by

                                          @stevie77
                                          https://forum.iobroker.net/topic/32976/e3dc-hauskraftwerk-steuern/393
                                          hier kannst es rauskopieren... Dann musst du es nicht aus Arnos Script entflechten.

                                          S 1 Reply Last reply Reply Quote 0
                                          • S
                                            stevie77 @smartboart last edited by

                                            @smartboart Hi, danke für den Extrakt. 🙂
                                            Ich habe es jetzt eben mal eingepflegt und leicht angepasst (Variablennamen zum Anwendungszweck passend und die Pfade für das Modbus-Register etc.). Dabei fiel mir mal wieder folgendes auf, vielleicht kann mir das jemand beantworten.

                                            Im Menüpunkt Log des ioBrokers funktioniert das Logging (debug und logging true). In der Konsole zum Skript funktioniert das oft nicht. Jetzt war es eben so, dass lange nichts geloggt wurde, und dann habe ich wohl den Fokus ein paar Mal innerhalb ioBroker gewechselt und irgendwann fing es an unterhalb des Skripts zu loggen. Ist aber manchmal eher zufällig. Eben hatte ich das Gefühl es ging los, nachdem ich ein anderes Skript geöffnet und wieder geschlossen hatte. Kennt ihr das auch oder woran kann das liegen?

                                            smartboart 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            797
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3331
                                            1363284
                                            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