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.8k 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.
  • 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
          • 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 Offline
            A Offline
            Aiouh
            schrieb am zuletzt editiert von
            #175

            @arteck Frage vom dummy
            bevor ich in die falsche Richtung laufe... sehe ich das Richtig, dass ich alle vier scripts benötige und die darin vorhandenen Datenpunkte entsprechend meines setups (Victron,Pylontech,Tibber,Solcast) anpassen muss? Die View dann entsprechend auch (optional aber sehr hilfreich).
            7d36d1bf-da20-4f9c-862f-12f46a5c7360-image.png

            1 Antwort Letzte Antwort
            0
            • B babl

              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 Offline
              A Offline
              Aiouh
              schrieb am zuletzt editiert von
              #176

              @babl Da wir hier leider auch viel Nebel haben, habe ich das Skript auch mal installiert. PV Vorhersage für Heute war 10,4 kWh, das Skript hat 7,06 kWh prognostiziert, tatsächlich waren es 6,3 kWh. Die Richtung stimmt schon mal. Ich werde das in jedem Fall weiter laufen lassen und sehen wie es sich weiter verhält.
              DANKE für das Skript

              B 1 Antwort Letzte Antwort
              1
              • A Aiouh

                @babl Da wir hier leider auch viel Nebel haben, habe ich das Skript auch mal installiert. PV Vorhersage für Heute war 10,4 kWh, das Skript hat 7,06 kWh prognostiziert, tatsächlich waren es 6,3 kWh. Die Richtung stimmt schon mal. Ich werde das in jedem Fall weiter laufen lassen und sehen wie es sich weiter verhält.
                DANKE für das Skript

                B Online
                B Online
                bolliy
                Developer
                schrieb am zuletzt editiert von
                #177

                @babl würdest du deine letzte PV-forecast Version mit Beschreibung nochmal hochladen.
                So wie ich das verstanden habe hast du ein paar Änderungen später vorgenommen, die ich manuell nachziehen müsste.
                Vielen Dank für deine Mühen!

                LG Stephan

                B 1 Antwort Letzte Antwort
                0
                • B bolliy

                  @babl würdest du deine letzte PV-forecast Version mit Beschreibung nochmal hochladen.
                  So wie ich das verstanden habe hast du ein paar Änderungen später vorgenommen, die ich manuell nachziehen müsste.
                  Vielen Dank für deine Mühen!

                  LG Stephan

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

                  @bolliy du musst nur den pv forecast wert mit dem pv forecast wert des scriptes austauschen wenn du das meinst. ansonsten habe ich nichts vorgenommen, die aktuelle version ist immer noch im post bereich 108 zu finden

                  A 1 Antwort Letzte Antwort
                  1
                  • B babl

                    @bolliy du musst nur den pv forecast wert mit dem pv forecast wert des scriptes austauschen wenn du das meinst. ansonsten habe ich nichts vorgenommen, die aktuelle version ist immer noch im post bereich 108 zu finden

                    A Offline
                    A Offline
                    Aiouh
                    schrieb am zuletzt editiert von Aiouh
                    #179

                    @babl Ich habe mal all deine Scripts zum dynamischen Laden auf meine Landschaft (Victron/Pylontech) angepasst und bin jetzt mächtig gespannt wie das läuft wenn ich ab 1.Dezember den Strom von Tibber bekomme. Werde berichten und/oder ggfs. nochmal um Unterstützung bitten :blush: . An der Stelle schon mal Vielen Dank für die tolle Arbeit

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      mik-le-kn70
                      schrieb am zuletzt editiert von
                      #180

                      Hallo,

                      hat schon jemand das Script für einen Senec V3 angepasst und würde seine Versionen hier zur Verfügung stellen, ich bearbeite die Scripte gerade nach meinem Verständnis und werde weiter berichten.

                      Vielen Dank für eure Antworten.

                      VG Mike

                      D icebearI 2 Antworten Letzte Antwort
                      0
                      • M mik-le-kn70

                        Hallo,

                        hat schon jemand das Script für einen Senec V3 angepasst und würde seine Versionen hier zur Verfügung stellen, ich bearbeite die Scripte gerade nach meinem Verständnis und werde weiter berichten.

                        Vielen Dank für eure Antworten.

                        VG Mike

                        D Offline
                        D Offline
                        dtopic
                        schrieb am zuletzt editiert von
                        #181

                        @mik-le-kn70
                        Würde mich auch interessieren, hast du schon etwas, was du zur Verfügung stellen kannst? Bei Senec gibt es nur die Befehle, soweit ich es herausgefunden habe, Vorladung und Entladen freigeben, aber nicht beladen stoppen und entladen stoppen.
                        Grüße

                        arteckA M 2 Antworten Letzte Antwort
                        0
                        • D dtopic

                          @mik-le-kn70
                          Würde mich auch interessieren, hast du schon etwas, was du zur Verfügung stellen kannst? Bei Senec gibt es nur die Befehle, soweit ich es herausgefunden habe, Vorladung und Entladen freigeben, aber nicht beladen stoppen und entladen stoppen.
                          Grüße

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

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

                          nicht beladen stoppen und entladen stoppen

                          gib den doch mal ne 0 zum laden oder -1 ..

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

                          1 Antwort Letzte Antwort
                          0
                          • D dtopic

                            @mik-le-kn70
                            Würde mich auch interessieren, hast du schon etwas, was du zur Verfügung stellen kannst? Bei Senec gibt es nur die Befehle, soweit ich es herausgefunden habe, Vorladung und Entladen freigeben, aber nicht beladen stoppen und entladen stoppen.
                            Grüße

                            M Offline
                            M Offline
                            mik-le-kn70
                            schrieb am zuletzt editiert von
                            #183

                            @dtopic
                            Hallo,

                            ich kann noch keine Ergebnisse präsentieren, die Scripte sind soweit angepasst (Tibber-ID, Senec-Datenpunkte nach meinem Verständnis verbunden, Datenpunkte manuell angelegt, im Tibberadapter die Einstellungen gesetzt),
                            jedoch Scripte die nur Daten von Tibber verarbeiten sollen, liefern irgendwie keine (brauchbaren) Ergebnisse und somit läuft mein Versuch noch nicht.

                            Per Blockly Baustein "Aktion-exec" kann der Senec angesteuert werden, etwa so:

                            blockly-exec01.png

                            Laden geht mit:
                            "curl --insecure -d "{"ENERGY": {"SAFE_CHARGE_FORCE": "u8_01"}}" https://IP-des-senec/lala.cgi"

                            Stop Laden mit:

                            "curl --insecure -d "{"ENERGY": {"SAFE_CHARGE_PROHIBIT": "u8_01"}}" https://IP-des-senec/lala.cgi"

                            Den Befehl "entladen stoppen" kenne ich nicht.

                            VG

                            1 Antwort Letzte Antwort
                            0
                            • M mik-le-kn70

                              Hallo,

                              hat schon jemand das Script für einen Senec V3 angepasst und würde seine Versionen hier zur Verfügung stellen, ich bearbeite die Scripte gerade nach meinem Verständnis und werde weiter berichten.

                              Vielen Dank für eure Antworten.

                              VG Mike

                              icebearI Online
                              icebearI Online
                              icebear
                              schrieb am zuletzt editiert von
                              #184

                              @mik-le-kn70

                              Nutzt du evcc?

                              Wenn du evcc nutzt dann kannst du dir deinen Aufwand glaub ich sparen. In der neuesten Version von evcc wird das Laden des Senec v3 über Tibber (so wie beim Auto) experimentell unterstützt.

                              Ich bin grad beim Testen und es scheint wunderbar zu funktionieren.

                              B 1 Antwort Letzte Antwort
                              0
                              • icebearI icebear

                                @mik-le-kn70

                                Nutzt du evcc?

                                Wenn du evcc nutzt dann kannst du dir deinen Aufwand glaub ich sparen. In der neuesten Version von evcc wird das Laden des Senec v3 über Tibber (so wie beim Auto) experimentell unterstützt.

                                Ich bin grad beim Testen und es scheint wunderbar zu funktionieren.

                                B Online
                                B Online
                                bolliy
                                Developer
                                schrieb am zuletzt editiert von
                                #185

                                @icebear ja, habe ich auch schon probiert.
                                Allerdings werden weder PVForecast, Wetterdaten oder ein Lastenprofile herangezogen. Das ist eher eine rudimentäre Lösung, welche bedingt einzetzbar ist.
                                Ich benötige ein kostenoptimiertes Laden meines Hausspeichers, die auch Lade-/Endladeverluste berücksichtigt.
                                Stephan

                                1 Antwort Letzte Antwort
                                0
                                • icebearI Online
                                  icebearI Online
                                  icebear
                                  schrieb am zuletzt editiert von
                                  #186

                                  @bolliy

                                  Ich bezog das ja auch nur auf den Senec V3.
                                  Da kannste ja eh nur laden oder nichladen. Da brauch ich kein PV Forecast oder sonst irgendein Schnick Schnack.
                                  Der hat weder eine HOLD Funktion noch kannste die Lade oder Enladeleistung steuern.
                                  Mir reicht da wenn er wenigstens bei günstigen Preisen volllädt.

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

                                    Hier gibts eine komplett überarbeitete Version meines Scriptes.

                                    https://forum.iobroker.net/topic/79071/neues-script-hausspeicher-energiemanager-sonnen

                                    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

                                    793

                                    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