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 @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
                                    • smartboart
                                      smartboart @stevie77 last edited by

                                      @stevie77 ich kenne das auch... Denke das hat mim Browser zu tun... Neu laden dann geht's meistens oder mal den Browser Cache leeren.. Ist nicht wirklich nachvollziehbar....

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

                                        Guten Abend!
                                        Ich bin durch Zufall auf diesen Faden gestossen und beeindruckt mit welcher Qualität hier diskutiert und Lösungen angeboten werden.
                                        Da meine E3DC-Anlage auf dem Transportweg ist und ich einiges vorbereiten möchte, habe ich folgende Frage:
                                        Meine PC-Anlage liegt auf 4 Dächern mit jeweils einem String. Wie kann ich die Ertragsberechnung (Vorhersage) auf diese 4 Dächer erweitern? Reicht es im Scriptteil die Abfrage nach Anzahl der Dächer auf 4 zu erweitern und entsprechende Variablen hinzufügen? Falls ja, wird durch folgende Updates dieser Scriptpart überschrieben?

                                        Für Eure Bemühungen dankend.

                                        smartboart M A 3 Replies Last reply Reply Quote 0
                                        • smartboart
                                          smartboart @goelectric last edited by

                                          @goelectric
                                          die Frage müsstest du an Arno stellen, da er der Entwickler des Projekts ist.

                                          Du müsstest, grob drüber geschaut, die Einstellung forcast solar , Create states , user eingabe prüfen , InterrogateForecast und die function Prognosen_kWh_Berechnen erweitern.

                                          Da die Dachfläschen im Userteil konfigurierbar sind , wäre es auch bei Updates des scriptes kein Problem...

                                          Da Arno das Script geschrieben hat , kann er das im Detail bestimmt schneller beantworten und mich korriegieren wenn ich Käse erzähle...

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

                                            @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                            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.

                                            Hi Arno, wie verhält sich dein neues Update? Noch Batterieaussetzer? Welcher Version hast du?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            810
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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