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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    E3DC Hauskraftwerk steuern

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

      @smartboart
      Eberhard sein Programm prüft laufend die Ladung der Batterie und korrigiert selbstständig die Ladung der Batterie wenn die berechneten Werte nicht erreicht werden. Einziger Schwachpunkt ist dein Beschriebener Fall, das am Nachmittag bei schlechtem Wetter keine ausreichende PV-Leistung mehr da ist um die Batterie voll zu laden.
      Die Wetterdaten von Proplanta sollen genau das verhindern.
      Wenn ich deinen Vorschlag umsetzen würde, hätte das zur Folge das bei einem SoC unter 30% ein gleichmäßiges Laden der Batterie über den Tag ausgeschlossen wäre. Das kann man mit den Parameter von E3DC-Control auch bereits jetzt erreichen, indem man als Einstellung 2 als ladeschwelle 50% einstellt, dann wird bis zu einem SoC von 50% alles in die Batterie geladen.

      Heute hatte ich das Problem das die Werte von Forecast falsch waren und bei mir um 5:00 Uhr mit der Einstellung 1 gestartet wurde. Bei der Überprüfung um 10:10 Uhr wurde das auf Einstellung2 korrigiert. Da war aber meine Batterie bereits zu 86% geladen. Ist jetzt noch kein Problem da noch genügend Reserve da ist für die Regelung so das ich nicht in die Abregelung komme.
      Ich habe jetzt im Script aber eine neue Aktualisierung der Forecast Daten um 8:00 Uhr eingefügt und somit auch eine neu Berechnung der Einstellung um 8:10 Uhr.

      Es wird jetzt alle 2 Stunden, um 5:45 die erste Berechnung , um 8:10 Uhr die zweite und dann wieder um 10:10 Uhr neu berechnet.
      Die letzte Berechnung die sinn macht ist dann um 15:30 mit den neuen Daten von Proplanta.

      Hier die Ladekurve von heute:

      bild1.png

      Ursache war die falsche Prognose Forecast von 5:15 Uhr:
      bild2.png

      Nachdem ich manuell noch mal um 11:45 die Daten von Forecast aktualisiert hatte, sieht die Prognose so aus:
      bild3.png

      Mit der Neu Berechnung um 8:10 Uhr wird eine falsche Prognose früher erkannt und hat auch den Vorteil das die Forecast Daten für den Rest des Tages aktueller sind.

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

        @ArnoD ja das macht auf jeden Fall Sinn....

        Bei mir stimmen die Prognosen generell nicht so gut..die letze Woche lag komplett daneben... Denke eine weiter aktualisierung macht auf jedenfall sinn...

        Screenshot_20200819_124546_com.android.keyguard.jpg

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

          @smartboart sagte in E3DC Hauskraftwerk steuern:

          Nachdem gestern mein Ergebnis mit 1s pollzeit ne Punktlandung war habe ich heute mit 2s gepollt und das Ergebnis ist immer noch sehr gut..
          Portal 34,33kwh
          Script 34,51kwh
          Morgen gehe ich auf 3 s..

          Ab 3 Sekunden wirds ungenau!

          jetzt schon 1 kw zu viel gezählt..Also entweder 1 fürs ganz genaue oder der kompromiss zum resourcen sparen auf 2 sekunden pollen...

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

            Habe mir jetzt das Abruflimit von Forecast noch mal angesehen für die kostenlose Version.
            Demnach kann man pro Stunde maximal 12 Abrufe der Daten pro IP durchführen.
            Wir könnten somit jede Stunde die Forecast Daten aktualisieren. Bei Proplanta werden nur ca, alle 4 Stunden die Daten aktualisiert.
            Proplanta wird bereits jetzt alle 4 Stunden abgerufen und aktualisiert, für Forecast könnte ich eine Stündliche Aktualisierung integrieren. Weiß nur noch nicht ob das Sinn macht. Werde ich jetzt einfach mal testen.

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

              @smartboart gibt es eine Möglichkeit eine schedule Stündlich, aber nur von 5 - 21 Uhr zu programmieren ?

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

                @smartboart hat sich erledigt, die Antwort hast du ja bereits in deiner Änderung umgesetzt 🙂

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

                  @ArnoD sagte in E3DC Hauskraftwerk steuern:

                  @smartboart gibt es eine Möglichkeit eine schedule Stündlich, aber nur von 5 - 21 Uhr zu programmieren ?

                  ja im Prinzip ist das ja schon in Teilen was ich oben gemacht habe vorhanden ..

                  Man kann jetzt das kombinieren mit IsTimeinRange...
                  Ist ein Script aus dem Forum und ich lasse es global laufen..
                  weil ich es in mehreren Scripten verwende...

                  Damit kannst ne if Bedingung aufbauen..Wenn du es Global installierst , reicht dann in jedem Script das hier...

                  if(IsTimeInRange('05:00:00', '21:00:00')) {
                  losgehts();
                  }

                  function currentDate() {
                      var d = new Date();
                      return new Date(d.getFullYear(), d.getMonth(), d.getDate());
                  }
                  function addTime(strTime) {
                      var time = strTime.split(':');
                      var d = currentDate();
                      d.setHours(time[0]);
                      d.setMinutes(time[1]);
                      d.setSeconds(time[2]);
                      return d;
                  }
                  function isTimeInRange(strLower, strUpper) {
                      var now = new Date();
                      var lower = addTime(strLower);
                      var upper = addTime(strUpper);
                      var inRange = false;
                      if (upper > lower) {
                          // opens and closes in same day
                          inRange = (now >= lower && now <= upper) ? true : false;
                      } else {
                          // closes in the following day
                          inRange = (now >= upper && now <= lower) ? false : true;
                      }
                      return inRange;
                  }
                  
                  
                  smartboart 1 Reply Last reply Reply Quote 0
                  • smartboart
                    smartboart @smartboart last edited by smartboart

                    Aber ja wie es schon oben ist reicht es auch...mit 5 Uhr triggern zum setzen und mit 21 triggern zum zurück setzen..

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

                      @smartboart
                      Musste mich jetzt über Funktionen im Modul Javascript aufklären lassen 🙂
                      Im Editor ist oben links ein Button mit einer Uhr:
                      bild1.png

                      Wen man den Bereich im Code markiert wo man die Zeit einfügen will und dann auf diesen Button klickt, kann man ganz bequem einstellen wie man es haben will.
                      bild2.png

                      Wenn man dann auf ok klickt wird automatisch der richtige Code im Script eingetragen.
                      Großes Lob an die Entwickler 👍 😁
                      Man sollte sich doch mal die Anleitungen durchlesen.

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

                        @ArnoD krass .....wusste ich auch nicht....🙄

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

                          @smartboart
                          Das Ganze sieht dann in einer Zeile so aus:
                          Timer3 = schedule('{"time":{"start":"04:10","end":"15:20","mode":"hours","interval":1},"period":{"days":1}}', function(){}

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

                            @ArnoD sagte in E3DC Hauskraftwerk steuern:

                            @smartboart
                            Das Ganze sieht dann in einer Zeile so aus:
                            Timer3 = schedule('{"time":{"start":"04:10","end":"15:20","mode":"hours","interval":1},"period":{"days":1}}', function(){}

                            krass das ersetzt das Time in Range script komplett...

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

                              Neue Version 0.2.10 hochgeladen.

                              Änderungen:
                              Version: 0.2.10 Forecast Daten werden jede Stunde von 4:10 Uhr bis 15:20 aktualisiert.Fehler in der function Ueberschuss_Prozent() behoben, die zu einer falschen Berechnung vom Eigenverbrauch geführt hat.

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

                                @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                Neue Version 0.2.10 hochgeladen.

                                Änderungen:
                                Version: 0.2.10 Forecast Daten werden jede Stunde von 4:10 Uhr bis 15:20 aktualisiert.Fehler in der function Ueberschuss_Prozent() behoben, die zu einer falschen Berechnung vom Eigenverbrauch geführt hat.

                                langt es diesmal nur den Teil unter konfig ende zu tauschen. dann muss ich nicht alles durchforsten...

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

                                  @smartboart
                                  Ja, User Einstellungen sind gleich geblieben.

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

                                    @ArnoD heute ist das Skript zwischendurch wieder auf 1 gesprungen..irgendwann nachmittag...
                                    Gibt es noch ein Thema mit der Überschussberechnung?
                                    Wie / Wo startest du die Funktion

                                    function Ueberschuss_Prozent()
                                    

                                    ...Kann ich nicht nachvollziehen...

                                        Ueberschuss = Ueberschuss_Prozent();
                                    
                                    

                                    was macht das

                                    irgendwo muss ja so die Funktion eingeleitet werden...

                                    Ueberschuss_Prozent();
                                    
                                    smartboart A 2 Replies Last reply Reply Quote 0
                                    • smartboart
                                      smartboart @smartboart last edited by smartboart

                                      @ArnoD
                                      Und nach meinem Verständnis müsste eben diese Funktion auch nochmal aufgerufen werden jedesmal bevor main gestartet wird...

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

                                        @smartboart
                                        Ja war bei mir auch so.
                                        Das liegt an der Stündlichen neu Berechnung und das irgendwann die Prognose von der Realität eingeholt wird. Bedeute wenn für den Tag die Prognose z.B. 10 kWh vorhersagt und der tatsächliche PV Ertrag 10 kWh erreicht, ergibt die Berechnung das nur noch 0 kWh zu erwarten sind und das bedeutet Einstellung 1 anwählen.
                                        Habe mir das ganze heute noch mal überlegt und bin zu dem Schluss gekommen das ich einen Denkfehler bei der Aktualisierung hatte.
                                        Eberhards Programm ist so intelligent das es eigentlich nicht viel zu ändern gibt. 🙂
                                        Das Script muss nur zwei dinge feststellen , nämlich ob die PV Leistung am Tag ausreicht um die Batterie voll zu laden und ob am Nachmittag schlechtes Wetter ist um die richtige Einstellung zu wählen.
                                        Das wiederum bedeutet das man spätestens bis 10 Uhr, besser bis 9:00 Uhr wissen muss ob die PV Leistung ab 12:00Uhr noch ausreicht um noch was entscheiden zu können.
                                        Alle neu Berechnungen die nach 10:00 Uhr gemacht werden kann man sich somit sparen, denn wenn ich um 11:Uhr durch die Prognose erst mitbekomme das die PV Leistung wegen schlechtem Wetter nicht ausreicht, habe ich bereits bis dahin ins Netz eingespeist.
                                        Werde die letzte Abfrage und Berechnung somit versuchsweise um 10:00 Uhr machen, weil da auch die Proplanta Daten nochmal aktualisiert werden.

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

                                          @smartboart sagte in E3DC Hauskraftwerk steuern:

                                          @ArnoD heute ist das Skript zwischendurch wieder auf 1 gesprungen..irgendwann nachmittag...
                                          Gibt es noch ein Thema mit der Überschussberechnung?
                                          Wie / Wo startest du die Funktion

                                          function Ueberschuss_Prozent()
                                          

                                          ...Kann ich nicht nachvollziehen...

                                              Ueberschuss = Ueberschuss_Prozent();
                                          
                                          

                                          was macht das

                                          Das ruft die Funktion auf und erhält als Ergebnis den gerundeten Überschuss oder null wenn was nicht berechnet werden kann.

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

                                            @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                            Ueberschuss = Ueberschuss_Prozent();
                                            

                                            was macht das

                                            Das ruft die Funktion auf und erhält als Ergebnis den gerundeten Überschuss oder null wenn was nicht berechnet werden kann.

                                            ok also hier wird sowohl dir Funktion gestartet als auch die Information für die variable Ueberschuss geholt in einer Zeile? war mir nicht bewusst das das geht..wird doch dann auch bei scriptstart ausgeführt oder?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            798
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3333
                                            1363921
                                            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