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. Hausspeicher laden, dynamisch, tibberlink, Scripte

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

Hausspeicher laden, dynamisch, tibberlink, Scripte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
blockly
187 Beiträge 28 Kommentatoren 48.7k Aufrufe 41 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.
  • B Offline
    B Offline
    babl
    schrieb am zuletzt editiert von
    #155

    Nur mal so zur veranschaulichung.

    Protokoll vom 5.2.24 um 3 Uhr (laut tibber der günstigste Preis) laut Grundlast der letzten Woche reichte für heute 49% user Soc es waren 6,9kwh pv forecast vorhergesagt, reell kamen 7,7kwh runter, meine schmerzgrenze vom pv forecast habe ich auf 3kwh gestellt, das heißt keine volladung da über 3kwh und nur soviel laden wie 18h mal Grundlast = 49%

    Speicher um 17 Uhr heute Abend bei 76% user soc

    protokoll für das laden.jpg

    Screenshot von Grafana Batterie laden begonnen:

    laden begonnen.jpg

    Laden um 3Uhr 48 beendet, da die Ladedauer von 18% auf 49% unter 1 Stunde betrug.

    laden aufgehört.jpg

    1 Antwort Letzte Antwort
    1
    • M Offline
      M Offline
      MarKum
      schrieb am zuletzt editiert von
      #156

      @babl Danke für die gestrige Unterstützung.
      Leider lud die Batterie heute Nacht wieder nicht.
      Habe das Log-File mal kopiert und hänge es hier an.
      Log 20240206.txt

      Vermutlich habe ich da was falsch in den Objekten, so wie ich das verstehe.
      Vielleicht sagt euch Profis das was.
      Danke

      B 1 Antwort Letzte Antwort
      0
      • M MarKum

        @babl Danke für die gestrige Unterstützung.
        Leider lud die Batterie heute Nacht wieder nicht.
        Habe das Log-File mal kopiert und hänge es hier an.
        Log 20240206.txt

        Vermutlich habe ich da was falsch in den Objekten, so wie ich das verstehe.
        Vielleicht sagt euch Profis das was.
        Danke

        B Offline
        B Offline
        babl
        schrieb am zuletzt editiert von
        #157

        @markum hier sehe ich den Fehler

        -02-06 04:03:15.930 - warn: javascript.0 (91105) You are assigning a number to the state "alias.0.Sonnen.Control.Laden" which expects a boolean. Please fix your code to use a boolean or change the state type to number. This warning might become an error in future versions.
        

        Lass uns das mal in einer Teams anschauen dann bekommen wir das schon hin

        1 Antwort Letzte Antwort
        1
        • B Offline
          B Offline
          babl
          schrieb am zuletzt editiert von
          #158

          Ich habe bei dem Grundlastscript ein Update vorgenommen .

          Grundlastscript neu.jpg

          Die mit der blauen Farbe gekennzeichneten Zeilen sind neu, bitte hinzufügen.

          Was machen diese beide Zeilen?

          setze evcc auf den Wert vom aktuellen Tag * 1000 dies sollte der kwh wert sein der geladenen Menge vom Auto, sei es durch die Wallbox selber oder durch evcc oder durch sourceanalytix,

          Dann rechne ich die heutige grundlast minus dem Wert der geladenen kwh vom Auto. So hat man keine Verfälschung der Grundlast vom Haus und die Batterie läd in der Nacht nicht so hoch und hat noch Platz für die Sonnenenergie.

          Dies wurde seit 3 Tagen bereits bei mir getestet und funktioniert so.

          Natürlich könnt ihr so auch andere Werte gegenrechnen, wie z.B den Heizstab oder sonst was.

          1 Antwort Letzte Antwort
          1
          • B Offline
            B Offline
            babl
            schrieb am zuletzt editiert von
            #159

            Ebenfalls habe ich heute noch etwas optimiert.

            Es gibt ein neues Script, daß dafür zuständig ist, anhand des PV Forecasts die Beladehöhe des Speichers zu optimieren, da ja jetzt auch wieder mal Sonne kommt und diese doch gleich auch mal 15kwh vom dach bringt, aber trotzdem wurde der speicher in der früh auf 40 oder 50% geladen, das muß ja nicht sein. Daher das neue Script.

            Pv-Forecast-Variable.txt

            Ein neues Blockly Script eröffnen mit dem Namen PV-Forecast-Variable, dann den Inhalt der Textdatei importieren, und dann starten, der Datenpunkt wird selbst erzeugt. Dieses Script läuft von November bis Februar um 16 Uhr 58 und 23 Uhr 58. Die Werte für den PV Forecast müßt ihr nach eurem zu Hause anpassen. Sollte aber selbsterklärlich sein, hoffe ich :).

            Im 5er Script müßt ihr 2 Blöcke zusätzlich hinzufügen und zwar wo die Funktion Batterie laden 0-6 Uhr und Batterie laden 17-23 Uhr ist. Vorher:

            Script 5 vorher bei funktion 0-6.jpg

            Nachher:

            Script 5 nachher bei funktion 0-6.jpg

            Alles andere bleibt beim alten, es wird jetzt nur in 5 Stufen die Batterieladung angepaßt, dies ist hauptsächlich für die interessant die wenig grundlast haben. So wird die Netzeinspeisung besser geregelt.

            0-2kwh Ertrag = 100% Volladung
            2-4kwh Ertrag = 75% Volladung
            4-7kwh Ertrag = 50% Volladung
            7-10kwh Ertrag = 25% Volladung
            über 10 kwh Ertrag = 0% Volladung

            Die Volladung wird natürlich von der Grundlast aus berechnet.

            Das heißt widerrum hast du eine Grundlast von 500wh im Durchschnitt und ein 10kwh Batterie dann werden die 500wh * 18 Stunden = 9kwh = 90% Batterieladung ist nun der PV Forecast bei 5,8kwh für morgen dann ist die Variable 0,5 das heißt die Batterie wird nur mehr auf 45% geladen.

            Ich hoffe es ausführlich erklärt zu haben.

            Gruß

            1 Antwort Letzte Antwort
            1
            • M Offline
              M Offline
              MarKum
              schrieb am zuletzt editiert von
              #160

              Danke für die Updates
              zum Grundlast-Script: habe kein evcc installiert, da kein E-Auto vorhanden.
              Somit brauche ich diese Zeilen auch nicht einfügen, oder? (kommen ja dann wieder Fehlermeldungen)

              zum PV-Forecast-Script: konnte sogar ich (laie) importieren :joy:
              auch die Anpassung denke habe ich hinbekommen... sieht nur etwas anders aus als bei dir:
              8c93fdac-c111-4cf7-967b-26be805a4f57-image.png

              Denke ist das selbe von der Funktion her, nur die Ansicht ist etwas anders. Fehler kam bis jetzt noch nicht.

              Ansonsten läuft es jetzt :+1:

              B 1 Antwort Letzte Antwort
              0
              • M MarKum

                Danke für die Updates
                zum Grundlast-Script: habe kein evcc installiert, da kein E-Auto vorhanden.
                Somit brauche ich diese Zeilen auch nicht einfügen, oder? (kommen ja dann wieder Fehlermeldungen)

                zum PV-Forecast-Script: konnte sogar ich (laie) importieren :joy:
                auch die Anpassung denke habe ich hinbekommen... sieht nur etwas anders aus als bei dir:
                8c93fdac-c111-4cf7-967b-26be805a4f57-image.png

                Denke ist das selbe von der Funktion her, nur die Ansicht ist etwas anders. Fehler kam bis jetzt noch nicht.

                Ansonsten läuft es jetzt :+1:

                B Offline
                B Offline
                babl
                schrieb am zuletzt editiert von
                #161

                @markum bitte das neuste pv forecast script runterladen, da es leider einen bug gibt, wenn der hausspeicher nur unter 10% geladen werden soll, da sich dann die beladedauer des speichers nicht mehr anpaßt und dadurch das ganze unberücksichtigt wird.

                es ist eigentlich nur ein trigger block dazu gekommen der den wert sollte er unter 10 eingetragen werden wieder auf 10 anhebt und somit sich die beladedauer zeit wieder ändert, damit sollte es passen.

                Pv-Forecast-Variable - version1.txt

                Sorry dafür.

                1 Antwort Letzte Antwort
                0
                • D Diamand2k22

                  @arteck

                  Hallo Arteck, bin gerade am testen von mehreren Skripten, was für mich das beste ist! Gibt es sowas auch schon für den Fronius Gen24 WR? Ansonsten müsst ich mir mal dein Skript auf Fronius WR umschreiben. Ich denke, dass sollte nicht so kompliziert sein.

                  C Offline
                  C Offline
                  c1olli
                  schrieb am zuletzt editiert von
                  #162

                  @diamand2k22 sagte in Hausspeicher laden, dynamisch, tibberlink, Scripte:

                  @arteck

                  Hallo Arteck, bin gerade am testen von mehreren Skripten, was für mich das beste ist! Gibt es sowas auch schon für den Fronius Gen24 WR? Ansonsten müsst ich mir mal dein Skript auf Fronius WR umschreiben. Ich denke, dass sollte nicht so kompliziert sein.

                  Hallo,
                  hast Du inzwischen was für die Kombi Gen24 + BYD erstellen können?

                  Gruß
                  Olli

                  1 Antwort Letzte Antwort
                  0
                  • A Online
                    A Online
                    ArnoD
                    schrieb am zuletzt editiert von
                    #163

                    Hallo in die Runde,
                    ich will mein Script Charge-Control für den E3DC mit einer dynamischen Ladesteuerung mit Tibber erweitern.
                    Ich habe mir hier alle Beiträge durchgelesen und mir einige Anregungen geholt, wie man so was programmieren könnte.
                    Da ich gerne vorher ein Konzept haben will, um im Nachgang nicht wieder alles neu zu programmieren, habe ich mir was überlegt.
                    Mich würde eure Meinung interessieren, ob das so funktionieren könnte, da ihr mit Tibber bereits mehr Erfahrung habt als ich.
                    Da ein Bild mehr als tausend Worte sagt... ;-) :
                    04f89fc9-8d5a-4737-858a-b198c670fde0-grafik.png

                    Im Bild ist die Preisvorschau von Tibber für die nächsten zwei Tage dargestellt und blau umrandet die Reichweite der Batterie bei einer durchschnittlichen Grundlast von 1000 Wh (Diese wird vom Script berechnet)
                    Die zugrunde gelegten Daten könnt ihr aus der Tabelle im Bild entnehmen.
                    Ich habe mir jetzt folgende Logik überlegt:
                    Jede Stunde wird innerhalb der Reichweite der Batterie der günstigste Preis ermittelt
                    (im Beispiel 0,203 € ab 2:00 Uhr). Diese Überprüfung findet jede Stunde statt, aber nehmen wir mal an, dass bis 2:00 Uhr kein günstigerer Preis erreichbar ist und die Batterie bis dahin ziemlich leer ist.
                    Um 2:00 Uhr wird geprüft, wann der Preis wieder günstiger ist als der aktuelle und über wie viel Stunden das der Fall ist.
                    (In dem Beispiel hätten wir um 3 – 5 Uhr niedrigere Preise und ab 6 Uhr einen höheren Preis.)
                    Da der Strompreis bereits um 3 Uhr günstiger ist und das bis 5 Uhr wird die Ladeleistung so berechnet, dass in 3 h (2-5 Uhr) der eingestellte SOC-Wert (im Beispiel 80%) erreicht wird.
                    Das wären bei dem Speicher ca. 9000 W oder max. Ladeleistung der Batterie.
                    Da jede Stunde geprüft wird, ob ein günstigerer Strompreis mit der Batteriereichweite erreicht werden kann, würde um ca. 3 Uhr das Laden aus dem Netz beendet werden, da der nächste günstigere Zeitpunkt um 10:00 Uhr in Reichweite rückt. Um 10:00 Uhr würde sich das ganze wiederholen.
                    Bei jeder Ladung aus dem Netz merkt sich das Script den Strompreis und berechnet daraus den Batteriepreis anhand vom eingestellten Wirkungsgrad. Entladen der Batterie wird nur freigegeben, wenn der Netzpreis höher ist.
                    Hoffe, ihr könnt mir so weit folgen.

                    Jetzt kommt noch die Prognose ins Spiel:
                    Von Sonnenaufgang bis 4 h vor Sonnenuntergang (wird über die Astro Funktionen automatisch übers Jahr angepasst) wird mit der prognostizierten PV-Leistung gerechnet und die Batterie aus dem Netz nur soweit geladen, dass in diesem Zeitraum die prognostizierte PV-Leistung gespeichert werden kann. Sollte die Prognose falsch sein, wird das nach einer Stunde bei der stündlichen Überprüfung vom Script festgestellt und nach der oberen Logik korrigiert.

                    Was haltet ihr davon, habe ich noch was übersehen?

                    arteckA 1 Antwort Letzte Antwort
                    0
                    • B Offline
                      B Offline
                      babl
                      schrieb am zuletzt editiert von
                      #164

                      @arnod das klingt soweit gut, so ähnlich mache ich das auch aber glaub mir da kommen viele hürden auf dich noch zu, denn auf dem Blatt klingt das alles sehr gut, doch dass es dann praktisch so läuft, viel Spass.

                      1 Antwort Letzte Antwort
                      0
                      • A ArnoD

                        Hallo in die Runde,
                        ich will mein Script Charge-Control für den E3DC mit einer dynamischen Ladesteuerung mit Tibber erweitern.
                        Ich habe mir hier alle Beiträge durchgelesen und mir einige Anregungen geholt, wie man so was programmieren könnte.
                        Da ich gerne vorher ein Konzept haben will, um im Nachgang nicht wieder alles neu zu programmieren, habe ich mir was überlegt.
                        Mich würde eure Meinung interessieren, ob das so funktionieren könnte, da ihr mit Tibber bereits mehr Erfahrung habt als ich.
                        Da ein Bild mehr als tausend Worte sagt... ;-) :
                        04f89fc9-8d5a-4737-858a-b198c670fde0-grafik.png

                        Im Bild ist die Preisvorschau von Tibber für die nächsten zwei Tage dargestellt und blau umrandet die Reichweite der Batterie bei einer durchschnittlichen Grundlast von 1000 Wh (Diese wird vom Script berechnet)
                        Die zugrunde gelegten Daten könnt ihr aus der Tabelle im Bild entnehmen.
                        Ich habe mir jetzt folgende Logik überlegt:
                        Jede Stunde wird innerhalb der Reichweite der Batterie der günstigste Preis ermittelt
                        (im Beispiel 0,203 € ab 2:00 Uhr). Diese Überprüfung findet jede Stunde statt, aber nehmen wir mal an, dass bis 2:00 Uhr kein günstigerer Preis erreichbar ist und die Batterie bis dahin ziemlich leer ist.
                        Um 2:00 Uhr wird geprüft, wann der Preis wieder günstiger ist als der aktuelle und über wie viel Stunden das der Fall ist.
                        (In dem Beispiel hätten wir um 3 – 5 Uhr niedrigere Preise und ab 6 Uhr einen höheren Preis.)
                        Da der Strompreis bereits um 3 Uhr günstiger ist und das bis 5 Uhr wird die Ladeleistung so berechnet, dass in 3 h (2-5 Uhr) der eingestellte SOC-Wert (im Beispiel 80%) erreicht wird.
                        Das wären bei dem Speicher ca. 9000 W oder max. Ladeleistung der Batterie.
                        Da jede Stunde geprüft wird, ob ein günstigerer Strompreis mit der Batteriereichweite erreicht werden kann, würde um ca. 3 Uhr das Laden aus dem Netz beendet werden, da der nächste günstigere Zeitpunkt um 10:00 Uhr in Reichweite rückt. Um 10:00 Uhr würde sich das ganze wiederholen.
                        Bei jeder Ladung aus dem Netz merkt sich das Script den Strompreis und berechnet daraus den Batteriepreis anhand vom eingestellten Wirkungsgrad. Entladen der Batterie wird nur freigegeben, wenn der Netzpreis höher ist.
                        Hoffe, ihr könnt mir so weit folgen.

                        Jetzt kommt noch die Prognose ins Spiel:
                        Von Sonnenaufgang bis 4 h vor Sonnenuntergang (wird über die Astro Funktionen automatisch übers Jahr angepasst) wird mit der prognostizierten PV-Leistung gerechnet und die Batterie aus dem Netz nur soweit geladen, dass in diesem Zeitraum die prognostizierte PV-Leistung gespeichert werden kann. Sollte die Prognose falsch sein, wird das nach einer Stunde bei der stündlichen Überprüfung vom Script festgestellt und nach der oberen Logik korrigiert.

                        Was haltet ihr davon, habe ich noch was übersehen?

                        arteckA Offline
                        arteckA Offline
                        arteck
                        Developer Most Active
                        schrieb am zuletzt editiert von arteck
                        #165

                        @arnod nimm mein script und pass die Datenpunkte an..

                        das ding macht das was du willst..

                        https://github.com/arteck/SMA_forecast_charging/blob/master/SUNNY_TRIPOWER _10.0_SE/bat_regelung.js

                        zigbee hab ich, zwave auch, nuc's genauso und HA auch

                        A J A 3 Antworten Letzte Antwort
                        0
                        • arteckA arteck

                          @arnod nimm mein script und pass die Datenpunkte an..

                          das ding macht das was du willst..

                          https://github.com/arteck/SMA_forecast_charging/blob/master/SUNNY_TRIPOWER _10.0_SE/bat_regelung.js

                          A Online
                          A Online
                          ArnoD
                          schrieb am zuletzt editiert von
                          #166

                          @arteck
                          Super, dann werde ich mir dein Script mal ansehen.
                          Das würde mir jede Menge Arbeit sparen :-)
                          Danke.

                          1 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            Diamand2k22
                            schrieb am zuletzt editiert von
                            #167

                            @arnod

                            ich verwende selbst das Skript von @arteck.
                            alles was du oben beschrieben hast, bringt das Skript mit!
                            Musst es halt noch auf dein WR anpassen je nach Hersteller!

                            1 Antwort Letzte Antwort
                            0
                            • B Offline
                              B Offline
                              babl
                              schrieb am zuletzt editiert von
                              #168

                              Für alle die PV Forecast benutzen, das geht nicht mehr so wie es einmal war, siehe https://github.com/iobroker-community-adapters/ioBroker.pvforecast/issues/177#issuecomment-2408964558

                              ich weiß nicht inwiefern es das script von @arteck betrifft aber meins auf jeden fall, entweder ihr switcht um auf die solarprognose und ändert alle werte oder ihr wartet ob es eine lösung von pv forecast geben wird, ich kann es momentan nicht sagen, ich bin auf jeden fall dran um was anderes zu installieren, wo wirklich nur ein paar konfig punkte ausgefüllt werden müssen und dann läuft das ding, aber leider bin ich noch nicht soweit.

                              arteckA 1 Antwort Letzte Antwort
                              0
                              • B babl

                                Für alle die PV Forecast benutzen, das geht nicht mehr so wie es einmal war, siehe https://github.com/iobroker-community-adapters/ioBroker.pvforecast/issues/177#issuecomment-2408964558

                                ich weiß nicht inwiefern es das script von @arteck betrifft aber meins auf jeden fall, entweder ihr switcht um auf die solarprognose und ändert alle werte oder ihr wartet ob es eine lösung von pv forecast geben wird, ich kann es momentan nicht sagen, ich bin auf jeden fall dran um was anderes zu installieren, wo wirklich nur ein paar konfig punkte ausgefüllt werden müssen und dann läuft das ding, aber leider bin ich noch nicht soweit.

                                arteckA Offline
                                arteckA Offline
                                arteck
                                Developer Most Active
                                schrieb am zuletzt editiert von
                                #169

                                @babl wenn du genuer lesen würdes..

                                es steht dass die alte vorgehensweise nicht mehr unterstützt wird und man auf die Abholung der Daten pro Dachausrichtung wie es auch auf deren homepage angeben wird, umsteigen soll in der Api

                                mein script macht das ehh.. deshalb reichte mir der adapter nicht

                                zigbee hab ich, zwave auch, nuc's genauso und HA auch

                                1 Antwort Letzte Antwort
                                0
                                • B Offline
                                  B Offline
                                  babl
                                  schrieb am zuletzt editiert von
                                  #170

                                  @arteck dann ist es ja gut, wenn du das schon vorher so gemacht hast, ich habe ja auch nur geschrieben inwiefern dein Script betroffen ist, dass ich das nicht weiss nicht mehr und nicht weniger.

                                  1 Antwort Letzte Antwort
                                  0
                                  • arteckA arteck

                                    @arnod nimm mein script und pass die Datenpunkte an..

                                    das ding macht das was du willst..

                                    https://github.com/arteck/SMA_forecast_charging/blob/master/SUNNY_TRIPOWER _10.0_SE/bat_regelung.js

                                    J Offline
                                    J Offline
                                    james4711
                                    schrieb am zuletzt editiert von
                                    #171

                                    @arteck Hallo! Gibt es eventuell auch eine Version die mit Awattar bzw. Huawei (WR+Batterie) zusammenarbeitet?? Danke!

                                    arteckA 1 Antwort Letzte Antwort
                                    0
                                    • J james4711

                                      @arteck Hallo! Gibt es eventuell auch eine Version die mit Awattar bzw. Huawei (WR+Batterie) zusammenarbeitet?? Danke!

                                      arteckA Offline
                                      arteckA Offline
                                      arteck
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #172

                                      @james4711 nope.. und von mir wird es keine geben..da es schon ein krampf war SMA da einzubinden so dass es funktioniert

                                      zigbee hab ich, zwave auch, nuc's genauso und HA auch

                                      1 Antwort Letzte Antwort
                                      0
                                      • B Offline
                                        B Offline
                                        babl
                                        schrieb am zuletzt editiert von
                                        #173

                                        So ich habe mich mal hingesetzt und anhand des PV Forecast Adapters und dem "Das Wetter" Adapter ein Javascript geschrieben, daß anhand der Bewölkung die PV Forecast optimiert. Bei 100% Bewölkung habe ich einen Korrekturfaktor von 0.2 angenommen.

                                        Da ich bei mir viel mit Nebel zu kämpfen habe liegen die PV Vorhersage Adapter alle weit weit weg vom eigentlichen Ertrag, heute wurden 10 vorausgesagt aktuell sind wir bei 2.5, gestern waren es laut voraussage 15 das optimierte kam auf 10.4, reell waren es 10,2. Vielleicht kann es ja irgendjemand brauchen, es werden nur 2 Werte generiert, Summe today und summe tomorrow.

                                        const minOutputFactor = 0.2; // Mindestprozentsatz an Leistung bei 100% Wolkenbedeckung
                                        
                                        // Funktion zur Erstellung von Datenpunkten, falls sie noch nicht existieren
                                        function createStateIfNotExists(id, initialValue, callback) {
                                            if (!existsState(id)) {
                                                createState(id, initialValue, { type: 'number', unit: 'kWh', read: true, write: true }, callback);
                                            } else {
                                                callback();
                                            }
                                        }
                                        
                                        // Funktion zur Berechnung und Anpassung der PV-Forecasts basierend auf Wolkenbedeckungswerten
                                        function calculatePvForecast() {
                                            try {
                                                console.log('--- Sofortige Berechnung der PV Forecasts beim Skriptstart ---');
                                        
                                                let totalAdjustedPvToday = 0;
                                                let totalAdjustedPvTomorrow = 0;
                                        
                                                // Berechnung für heute (Stunden 5 bis 21)
                                                for (let hour = 5; hour <= 21; hour++) {
                                                    const hourString = hour.toString().padStart(2, '0');
                                                    const pvForecastToday = getState(`pvforecast.0.summary.energy.hoursToday.${hourString}:00:00`).val;
                                                    const cloudsToday = getState(`daswetter.0.NextHours.Location_1.Day_1.Hour_${hour}.clouds_value`).val;
                                        
                                                    const adjustedPvToday = (pvForecastToday * Math.max(minOutputFactor, (1 - cloudsToday / 100))).toFixed(2);
                                                    totalAdjustedPvToday += parseFloat(adjustedPvToday);
                                                    console.log(`Heute, Stunde ${hour}: Wolkenbedeckung = ${cloudsToday}%, Originaler PV-Wert = ${pvForecastToday} kWh, Angepasster PV-Wert = ${adjustedPvToday} kWh`);
                                                }
                                        
                                                // Speicherung des Gesamtwertes für heute
                                                createStateIfNotExists("0_userdata.0.PV-Forecast-optimiert.Heute_Gesamt", 0, () => {
                                                    setState(`0_userdata.0.PV-Forecast-optimiert.Heute_Gesamt`, parseFloat(totalAdjustedPvToday.toFixed(2)));
                                                    console.log(`Gesamter angepasster PV-Wert für heute: ${totalAdjustedPvToday.toFixed(2)} kWh`);
                                                });
                                        
                                                // Berechnung für morgen (Stunden 5 bis 21)
                                                for (let hour = 5; hour <= 21; hour++) {
                                                    const hourString = hour.toString().padStart(2, '0');
                                                    const pvForecastTomorrow = getState(`pvforecast.0.summary.energy.hoursTomorrow.${hourString}:00:00`).val;
                                                    const cloudsTomorrow = getState(`daswetter.0.NextHours.Location_1.Day_2.Hour_${hour}.clouds_value`).val;
                                        
                                                    const adjustedPvTomorrow = (pvForecastTomorrow * Math.max(minOutputFactor, (1 - cloudsTomorrow / 100))).toFixed(2);
                                                    totalAdjustedPvTomorrow += parseFloat(adjustedPvTomorrow);
                                                    console.log(`Morgen, Stunde ${hour}: Wolkenbedeckung = ${cloudsTomorrow}%, Originaler PV-Wert = ${pvForecastTomorrow} kWh, Angepasster PV-Wert = ${adjustedPvTomorrow} kWh`);
                                                }
                                        
                                                // Speicherung des Gesamtwertes für morgen
                                                createStateIfNotExists("0_userdata.0.PV-Forecast-optimiert.Morgen_Gesamt", 0, () => {
                                                    setState(`0_userdata.0.PV-Forecast-optimiert.Morgen_Gesamt`, parseFloat(totalAdjustedPvTomorrow.toFixed(2)));
                                                    console.log(`Gesamter angepasster PV-Wert für morgen: ${totalAdjustedPvTomorrow.toFixed(2)} kWh`);
                                                });
                                        
                                            } catch (error) {
                                                console.warn(`Fehler in der calculatePvForecast-Funktion: ${error.message}`);
                                                console.warn(error.stack);
                                            }
                                        }
                                        
                                        // Sofortige Ausführung der Berechnung beim Start des Skripts
                                        calculatePvForecast();
                                        
                                        // Geplante Ausführungen zur Aktualisierung der PV-Forecasts
                                        schedule("5 0 * * *", calculatePvForecast);   // Tägliche Ausführung um 0:05 Uhr
                                        schedule("5 5 * * *", calculatePvForecast);   // Tägliche Ausführung um 5:05 Uhr
                                        schedule("5 12 * * *", calculatePvForecast);  // Tägliche Ausführung um 12:05 Uhr
                                        
                                        
                                        A 1 Antwort Letzte Antwort
                                        3
                                        • D Offline
                                          D Offline
                                          Diamand2k22
                                          schrieb am zuletzt editiert von
                                          #174

                                          @babl

                                          interessantes Skript, danke! Werd ich mal bei mir testen.

                                          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

                                          729

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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