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. JavaScript
  5. E3DC Hauskraftwerk steuern

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    832

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

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

E3DC Hauskraftwerk steuern

Geplant Angeheftet Gesperrt Verschoben JavaScript
3.5k Beiträge 70 Kommentatoren 1.6m Aufrufe 61 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.
  • A ArnoD

    Neue Version Charge-Control auf GitHub hochgeladen.
    Version: 1.5.3
    Änderungen:

    • Kleinere Optimierungen und Fehler behoben für das Tibber Skript.
    • Neues Objekt 0_userdata.0.Charge_Control.Allgemein.EigenverbrauchDurchschnitt erstellt, für die Anzeige vom Durchschnittsverbrauch Tag / Nacht in VIS.
    • Fehler behoben, dass die Berechnung Notstromreserve <0 sein konnte. (Danke an @MaLei für den Hinweis)
    M Offline
    M Offline
    MaLei
    schrieb am zuletzt editiert von
    #2670

    @arnod

    Habe nach Update auf 1.5.3 wieder den Fehler

    javascript.0 17:45:31.220 info script.js.common.E3DC.Charge_Control: Fehler bei der Berechnung des reinen Hausverbrauchs: Cannot read properties of null (reading 'val')

    1 Antwort Letzte Antwort
    0
    • A ArnoD

      Neue Version Charge-Control auf GitHub hochgeladen.
      Version: 1.5.3
      Änderungen:

      • Kleinere Optimierungen und Fehler behoben für das Tibber Skript.
      • Neues Objekt 0_userdata.0.Charge_Control.Allgemein.EigenverbrauchDurchschnitt erstellt, für die Anzeige vom Durchschnittsverbrauch Tag / Nacht in VIS.
      • Fehler behoben, dass die Berechnung Notstromreserve <0 sein konnte. (Danke an @MaLei für den Hinweis)
      P Online
      P Online
      psrelax
      schrieb am zuletzt editiert von
      #2671

      @arnod
      Danke für die Vereinfachungen :-)

      Hab beide Scripte und auch Vis übernommen.
      Soweit läuft alles.
      Die Ladung startet allerdings nicht von alleine.
      9edced78-7dd5-4aba-83b2-7507c0548e73-image.png

      Wenn ich manuell "0_userdata.0.TibberSkript.OutputSignal.BatterieLaden" auf true setze, startet die Ladung.
      Bei welcher Bedingung wird es normalerweise auf true gesetzt?

      Ich habe jetzt auch mal den Schedule auf "jede Minute" gestellt, damit ich nicht so lange warten muss, wenn ich was ändere.

      A 1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        ArnoD
        schrieb am zuletzt editiert von
        #2672

        @malei sagte in E3DC Hauskraftwerk steuern:

        Fehler bei der Berechnung des reinen Hausverbrauchs: Cannot read properties of null (reading 'val')

        Vermutlich auch hier eine Objekt-ID eingetragen, die ins Leere führt.
        Prüfe mal bitte alle ID's im Script unter USER ANPASSUNGEN, ob die bei dir auch vorhanden sind.

        1 Antwort Letzte Antwort
        0
        • P psrelax

          @arnod
          Danke für die Vereinfachungen :-)

          Hab beide Scripte und auch Vis übernommen.
          Soweit läuft alles.
          Die Ladung startet allerdings nicht von alleine.
          9edced78-7dd5-4aba-83b2-7507c0548e73-image.png

          Wenn ich manuell "0_userdata.0.TibberSkript.OutputSignal.BatterieLaden" auf true setze, startet die Ladung.
          Bei welcher Bedingung wird es normalerweise auf true gesetzt?

          Ich habe jetzt auch mal den Schedule auf "jede Minute" gestellt, damit ich nicht so lange warten muss, wenn ich was ändere.

          A Offline
          A Offline
          ArnoD
          schrieb am zuletzt editiert von
          #2673

          @psrelax
          Wenn nach Wetterprognose, ausreichend PV-Leistung am Tag vorhanden ist, um die Batterie zu laden wird der Timer gelöscht.
          Setze mal die Option "PV Module schneebedeckt." dann wir die Prognose ignoriert und 'BatterieLaden' sollte auf true gesetzt werden.

          P 1 Antwort Letzte Antwort
          0
          • A ArnoD

            @psrelax
            Wenn nach Wetterprognose, ausreichend PV-Leistung am Tag vorhanden ist, um die Batterie zu laden wird der Timer gelöscht.
            Setze mal die Option "PV Module schneebedeckt." dann wir die Prognose ignoriert und 'BatterieLaden' sollte auf true gesetzt werden.

            P Online
            P Online
            psrelax
            schrieb am zuletzt editiert von
            #2674

            @arnod

            Schneebedekt hat keine Auswirkung.
            In der Debug Ausgabe wird trotz Schneebedekt=true folgendes ausgegeben (false):

            javascript.0	01:00:00.271	info	script.js.E3DC_ChargeControl.Tibber: ******************* Debug LOG Tibber Skript *******************
            javascript.0	01:00:00.271	info	script.js.E3DC_ChargeControl.Tibber: timerIds1 = 158107952 timerIds2 = 158107971
            javascript.0	01:00:00.271	info	script.js.E3DC_ChargeControl.Tibber: timerTarget1 = Sat Aug 24 2024 14:00:00 GMT+0200 (Mitteleuropäische Sommerzeit) timerTarget2 = Sat Aug 24 2024 15:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
            javascript.0	01:00:00.271	info	script.js.E3DC_ChargeControl.Tibber: blockpreisTimer = Infinity
            javascript.0	01:00:00.272	info	script.js.E3DC_ChargeControl.Tibber: billigsterEinzelpreisBlock = Infinity
            javascript.0	01:00:00.272	info	script.js.E3DC_ChargeControl.Tibber: minStrompreis_48h = 0.1336
            javascript.0	01:00:00.272	info	script.js.E3DC_ChargeControl.Tibber: minStrompreisUser = 0.33
            javascript.0	01:00:00.272	info	script.js.E3DC_ChargeControl.Tibber: schneeBedeckt = false
            javascript.0	01:00:00.272	warn	script.js.E3DC_ChargeControl.Tibber: ProgrammAblauf = 1,4,3,3,
            

            "minStrompreisUser " hab ich mal ganz hoch und mal ganz niedrig gesetzt.

            A 1 Antwort Letzte Antwort
            0
            • P psrelax

              @arnod

              Schneebedekt hat keine Auswirkung.
              In der Debug Ausgabe wird trotz Schneebedekt=true folgendes ausgegeben (false):

              javascript.0	01:00:00.271	info	script.js.E3DC_ChargeControl.Tibber: ******************* Debug LOG Tibber Skript *******************
              javascript.0	01:00:00.271	info	script.js.E3DC_ChargeControl.Tibber: timerIds1 = 158107952 timerIds2 = 158107971
              javascript.0	01:00:00.271	info	script.js.E3DC_ChargeControl.Tibber: timerTarget1 = Sat Aug 24 2024 14:00:00 GMT+0200 (Mitteleuropäische Sommerzeit) timerTarget2 = Sat Aug 24 2024 15:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
              javascript.0	01:00:00.271	info	script.js.E3DC_ChargeControl.Tibber: blockpreisTimer = Infinity
              javascript.0	01:00:00.272	info	script.js.E3DC_ChargeControl.Tibber: billigsterEinzelpreisBlock = Infinity
              javascript.0	01:00:00.272	info	script.js.E3DC_ChargeControl.Tibber: minStrompreis_48h = 0.1336
              javascript.0	01:00:00.272	info	script.js.E3DC_ChargeControl.Tibber: minStrompreisUser = 0.33
              javascript.0	01:00:00.272	info	script.js.E3DC_ChargeControl.Tibber: schneeBedeckt = false
              javascript.0	01:00:00.272	warn	script.js.E3DC_ChargeControl.Tibber: ProgrammAblauf = 1,4,3,3,
              

              "minStrompreisUser " hab ich mal ganz hoch und mal ganz niedrig gesetzt.

              A Offline
              A Offline
              ArnoD
              schrieb am zuletzt editiert von ArnoD
              #2675

              @psrelax
              Ok habe vergessen die ID anzupassen in Zeile 575, bitte bei 'id: /\Tibber' TibberSkript eintragen.
              Werde das noch ändern, dass die Variable PfadEbene1 verwendet wird.
              Sollte so aussehen:

              on({id: /\TibberSkript.USER_ANPASSUNGEN/, change: "ne"}, async function (obj){	
                  if (bLock) return;
                  bLock = true;
                  setTimeout(() => bLock = false, 100);
                  log(`-==== User Parameter ${obj.id.split('.')[4]} wurde in ${obj.state.val} geändert ====-`,'warn')
                  if (obj.id.split('.')[4] == 'maxSOC_Batterie' ){maxBatterieSoC = obj.state.val}
                  if (obj.id.split('.')[4] == 'maxLadeleistung' ){maxLadeleistungUser_W = obj.state.val}
                  if (obj.id.split('.')[4] == 'minStrompreis' ){maxStrompreisUser = obj.state.val}
                  if (obj.id.split('.')[4] == 'pvSchneebedeckt' ){schneeBedeckt = obj.state.val}
                  await tibberSteuerungHauskraftwerk(); 
                  await createDiagramm();
              });
              

              Nachtrag:

              bitte so abändern:

              // Wird aufgerufen wenn sich an den States Tibber.User_Anpassungen was ändert
              const regexPatternTibber = new RegExp(`${PfadEbene1}.${PfadEbene2[3]}`);
              on({id: regexPatternTibber, change: "ne"}, async function (obj){	
                  if (bLock) return;
                  bLock = true;
                  setTimeout(() => bLock = false, 100);
                  log(`-==== User Parameter ${obj.id.split('.')[4]} wurde in ${obj.state.val} geändert ====-`,'warn')
                  if (obj.id.split('.')[4] == 'maxSOC_Batterie' ){maxBatterieSoC = obj.state.val}
                  if (obj.id.split('.')[4] == 'maxLadeleistung' ){maxLadeleistungUser_W = obj.state.val}
                  if (obj.id.split('.')[4] == 'minStrompreis' ){maxStrompreisUser = obj.state.val}
                  if (obj.id.split('.')[4] == 'pvSchneebedeckt' ){schneeBedeckt = obj.state.val}
                  await tibberSteuerungHauskraftwerk(); 
                  await createDiagramm();
              });
              
              P 1 Antwort Letzte Antwort
              0
              • A ArnoD

                @psrelax
                Ok habe vergessen die ID anzupassen in Zeile 575, bitte bei 'id: /\Tibber' TibberSkript eintragen.
                Werde das noch ändern, dass die Variable PfadEbene1 verwendet wird.
                Sollte so aussehen:

                on({id: /\TibberSkript.USER_ANPASSUNGEN/, change: "ne"}, async function (obj){	
                    if (bLock) return;
                    bLock = true;
                    setTimeout(() => bLock = false, 100);
                    log(`-==== User Parameter ${obj.id.split('.')[4]} wurde in ${obj.state.val} geändert ====-`,'warn')
                    if (obj.id.split('.')[4] == 'maxSOC_Batterie' ){maxBatterieSoC = obj.state.val}
                    if (obj.id.split('.')[4] == 'maxLadeleistung' ){maxLadeleistungUser_W = obj.state.val}
                    if (obj.id.split('.')[4] == 'minStrompreis' ){maxStrompreisUser = obj.state.val}
                    if (obj.id.split('.')[4] == 'pvSchneebedeckt' ){schneeBedeckt = obj.state.val}
                    await tibberSteuerungHauskraftwerk(); 
                    await createDiagramm();
                });
                

                Nachtrag:

                bitte so abändern:

                // Wird aufgerufen wenn sich an den States Tibber.User_Anpassungen was ändert
                const regexPatternTibber = new RegExp(`${PfadEbene1}.${PfadEbene2[3]}`);
                on({id: regexPatternTibber, change: "ne"}, async function (obj){	
                    if (bLock) return;
                    bLock = true;
                    setTimeout(() => bLock = false, 100);
                    log(`-==== User Parameter ${obj.id.split('.')[4]} wurde in ${obj.state.val} geändert ====-`,'warn')
                    if (obj.id.split('.')[4] == 'maxSOC_Batterie' ){maxBatterieSoC = obj.state.val}
                    if (obj.id.split('.')[4] == 'maxLadeleistung' ){maxLadeleistungUser_W = obj.state.val}
                    if (obj.id.split('.')[4] == 'minStrompreis' ){maxStrompreisUser = obj.state.val}
                    if (obj.id.split('.')[4] == 'pvSchneebedeckt' ){schneeBedeckt = obj.state.val}
                    await tibberSteuerungHauskraftwerk(); 
                    await createDiagramm();
                });
                
                P Online
                P Online
                psrelax
                schrieb am zuletzt editiert von
                #2676

                @arnod
                Die Ladung startet immer noch nicht.
                841b3f5a-4ac0-49d9-8c38-098692949760-image.png
                Aufgefallen ist, der "minstrompreisuser" ändert sich nur wenn ich das Script neu starte.

                A 1 Antwort Letzte Antwort
                0
                • P psrelax

                  @arnod
                  Die Ladung startet immer noch nicht.
                  841b3f5a-4ac0-49d9-8c38-098692949760-image.png
                  Aufgefallen ist, der "minstrompreisuser" ändert sich nur wenn ich das Script neu starte.

                  A Offline
                  A Offline
                  ArnoD
                  schrieb am zuletzt editiert von
                  #2677

                  @psrelax

                  Bitte diesen code bei dir einfügen:

                  // Wird aufgerufen wenn sich an den States Tibber.User_Anpassungen was ändert
                  const regexPatternTibber = new RegExp(`${PfadEbene1}.${PfadEbene2[3]}`);
                  on({id: regexPatternTibber, change: "ne"}, async function (obj){	
                      if (bLock) return;
                      bLock = true;
                      setTimeout(() => bLock = false, 100);
                      log(`-==== User Parameter ${obj.id.split('.')[4]} wurde in ${obj.state.val} geändert ====-`,'warn')
                      if (obj.id.split('.')[4] == 'maxSOC_Batterie' ){maxBatterieSoC = obj.state.val}
                      if (obj.id.split('.')[4] == 'maxLadeleistung' ){maxLadeleistungUser_W = obj.state.val}
                      if (obj.id.split('.')[4] == 'maxStrompreisUser' ){maxStrompreisUser = obj.state.val}
                      if (obj.id.split('.')[4] == 'pvSchneebedeckt' ){schneeBedeckt = obj.state.val}
                      await tibberSteuerungHauskraftwerk(); 
                      await createDiagramm();
                  });
                  

                  Habe hier die Änderung min zu maxStrompreisUser übersehen.

                  P 1 Antwort Letzte Antwort
                  0
                  • A ArnoD

                    @psrelax

                    Bitte diesen code bei dir einfügen:

                    // Wird aufgerufen wenn sich an den States Tibber.User_Anpassungen was ändert
                    const regexPatternTibber = new RegExp(`${PfadEbene1}.${PfadEbene2[3]}`);
                    on({id: regexPatternTibber, change: "ne"}, async function (obj){	
                        if (bLock) return;
                        bLock = true;
                        setTimeout(() => bLock = false, 100);
                        log(`-==== User Parameter ${obj.id.split('.')[4]} wurde in ${obj.state.val} geändert ====-`,'warn')
                        if (obj.id.split('.')[4] == 'maxSOC_Batterie' ){maxBatterieSoC = obj.state.val}
                        if (obj.id.split('.')[4] == 'maxLadeleistung' ){maxLadeleistungUser_W = obj.state.val}
                        if (obj.id.split('.')[4] == 'maxStrompreisUser' ){maxStrompreisUser = obj.state.val}
                        if (obj.id.split('.')[4] == 'pvSchneebedeckt' ){schneeBedeckt = obj.state.val}
                        await tibberSteuerungHauskraftwerk(); 
                        await createDiagramm();
                    });
                    

                    Habe hier die Änderung min zu maxStrompreisUser übersehen.

                    P Online
                    P Online
                    psrelax
                    schrieb am zuletzt editiert von psrelax
                    #2678

                    @arnod
                    minStrompreisUser wird immer noch nicht aktualisiert, wenn das Script nicht neu gestartet wird.
                    Zumindest startet das Laden nach dem Neustart.

                    A 2 Antworten Letzte Antwort
                    0
                    • P psrelax

                      @arnod
                      minStrompreisUser wird immer noch nicht aktualisiert, wenn das Script nicht neu gestartet wird.
                      Zumindest startet das Laden nach dem Neustart.

                      A Offline
                      A Offline
                      ArnoD
                      schrieb am zuletzt editiert von
                      #2679

                      @psrelax
                      Habe eine neue Version 1.0.2 hochgeladen, bitte diese mal testen.
                      Die View hat sich auch noch mal geändert.
                      In der View ist jetzt für die Testphase im unteren Bereich ein Flot Diagramm, was die Zustände von BatterieLaden, eAutoLaden und BatterieEntladesperre im zeitlichen Verlauf anzeigt.
                      So kann man schnell erkennen, ob das Skript richtig funktioniert.

                      Die Batterie Entladesperre sollte jetzt auch funktionieren.
                      Dafür ist eine neue Konstante im Skript Bereich User Anpassungen hinzugekommen "stromgestehungskosten" um den Selbstkostenpreis PV Strom berechnen zu können. (alle Kosten, die innerhalb der vorgesehenen Laufzeit (20 Jahre) entstehen addiert, dividiert durch den Ertrag an Solarstrom).
                      Es ist auch eine neue Objekt ID 0_userdata.0.TibberSkript.USER_ANPASSUNGEN. Systemwirkungsgraderstellt worden um den Systemwirkungsgrad mit Batterie in % eintragen zu können. Bei mir z.B 88%

                      Wenn alles richtig funktioniert, sollte das Entladen der Batterie immer dann verhindert werden (BatterieEntladesperre = true), wenn der berechnete Strompreis Batterie mit Speicherverluste höher ist als der aktuelle Strompreis Tibber.

                      1 Antwort Letzte Antwort
                      0
                      • P psrelax

                        @arnod
                        minStrompreisUser wird immer noch nicht aktualisiert, wenn das Script nicht neu gestartet wird.
                        Zumindest startet das Laden nach dem Neustart.

                        A Offline
                        A Offline
                        ArnoD
                        schrieb am zuletzt editiert von
                        #2680

                        @psrelax sagte in E3DC Hauskraftwerk steuern:

                        @arnod
                        minStrompreisUser wird immer noch nicht aktualisiert, wenn das Script nicht neu gestartet wird.
                        Zumindest startet das Laden nach dem Neustart.

                        Ok, habe den Fehler auch korrigiert und das Skript noch mal hochgeladen. ;-)

                        P 1 Antwort Letzte Antwort
                        0
                        • A ArnoD

                          @psrelax sagte in E3DC Hauskraftwerk steuern:

                          @arnod
                          minStrompreisUser wird immer noch nicht aktualisiert, wenn das Script nicht neu gestartet wird.
                          Zumindest startet das Laden nach dem Neustart.

                          Ok, habe den Fehler auch korrigiert und das Skript noch mal hochgeladen. ;-)

                          P Online
                          P Online
                          psrelax
                          schrieb am zuletzt editiert von psrelax
                          #2681

                          @arnod
                          Lädt nicht. :confused:
                          64e0a32a-a760-4422-9964-6325c412b30e-image.png

                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: ******************* Debug LOG Tibber Skript Version 1.0.2 *******************
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: timerIds1 = 199184573 timerIds2 = 199184598
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: timerTarget1 = Sun Aug 25 2024 13:00:00 GMT+0200 (Mitteleuropäische Sommerzeit) timerTarget2 = Sun Aug 25 2024 14:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: blockpreisTimer = 0.2814
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: billigsterEinzelpreisBlock = 0
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: minStrompreis_48h = 0.1623
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: maxStrompreisUser = 0.8
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: schneeBedeckt = true
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: strompreisBatterie = undefined
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: bruttoPreisBatterie = undefined
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: aktuellerPreisTibber = 0.295
                          javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: bEntladenSperren = false
                          javascript.0	19:44:00.078	warn	script.js.E3DC_ChargeControl.Tibber: ProgrammAblauf = 1,4,3,3,
                          

                          Die Stromgestehungskosten sind mir noch nicht ganz klar.
                          Du hast 0.1057 eingetragen. Ich würde auf 0,53 kommen.
                          Rechnung: 30000€ (ca.) / 56831,56kWh (bis heute)
                          Der Ertrag Solarstrom ändert sich allerdings täglich, wodurch das dann automatisch berechnet werden müsste.
                          Für was willst du die Stromgestehungskosten verwenden?

                          Bezüglich des Flot Diagramms, bin ich noch recht ahnungslos, da ich es nicht verwende. Hab es mir jetzt installiert.
                          Gibts da vielleicht etwas fertiges zum importieren? Oder einen 2-Zeiler Crashkurs mit Screenshot von deiner Config? :blush:

                          A 1 Antwort Letzte Antwort
                          0
                          • P psrelax

                            @arnod
                            Lädt nicht. :confused:
                            64e0a32a-a760-4422-9964-6325c412b30e-image.png

                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: ******************* Debug LOG Tibber Skript Version 1.0.2 *******************
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: timerIds1 = 199184573 timerIds2 = 199184598
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: timerTarget1 = Sun Aug 25 2024 13:00:00 GMT+0200 (Mitteleuropäische Sommerzeit) timerTarget2 = Sun Aug 25 2024 14:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: blockpreisTimer = 0.2814
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: billigsterEinzelpreisBlock = 0
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: minStrompreis_48h = 0.1623
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: maxStrompreisUser = 0.8
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: schneeBedeckt = true
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: strompreisBatterie = undefined
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: bruttoPreisBatterie = undefined
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: aktuellerPreisTibber = 0.295
                            javascript.0	19:44:00.077	info	script.js.E3DC_ChargeControl.Tibber: bEntladenSperren = false
                            javascript.0	19:44:00.078	warn	script.js.E3DC_ChargeControl.Tibber: ProgrammAblauf = 1,4,3,3,
                            

                            Die Stromgestehungskosten sind mir noch nicht ganz klar.
                            Du hast 0.1057 eingetragen. Ich würde auf 0,53 kommen.
                            Rechnung: 30000€ (ca.) / 56831,56kWh (bis heute)
                            Der Ertrag Solarstrom ändert sich allerdings täglich, wodurch das dann automatisch berechnet werden müsste.
                            Für was willst du die Stromgestehungskosten verwenden?

                            Bezüglich des Flot Diagramms, bin ich noch recht ahnungslos, da ich es nicht verwende. Hab es mir jetzt installiert.
                            Gibts da vielleicht etwas fertiges zum importieren? Oder einen 2-Zeiler Crashkurs mit Screenshot von deiner Config? :blush:

                            A Offline
                            A Offline
                            ArnoD
                            schrieb am zuletzt editiert von
                            #2682

                            @psrelax sagte in E3DC Hauskraftwerk steuern:

                            Lädt nicht. 😕

                            Das Bild und die LOG Ausgabe wurden aber nicht zur gleichen Zeit gemacht, oder?
                            Startzeitpunkt Bild heute 20:00 - 21:00 Uhr und im LOG Morgen 13:00 Uhr bis 14:00 Uhr
                            Bei beiden ist aber der Startzeitpunkt noch nicht erreicht und es kann somit noch nicht geladen werden.

                            Die Stromgestehungskosten sind mir noch nicht ganz klar.
                            Du hast 0.1057 eingetragen. Ich würde auf 0,53 kommen.
                            Rechnung: 30000€ (ca.) / 56831,56kWh (bis heute)
                            Der Ertrag Solarstrom ändert sich allerdings täglich, wodurch das dann automatisch berechnet werden müsste.
                            Für was willst du die Stromgestehungskosten verwenden?

                            Ich bin noch unschlüssig, ob diese überhaupt relevant sind.
                            Ich wollte für den geladenen PV-Strom in der Batterie nicht mit 0 € rechnen, da dieser ja auch was kostet.
                            Einfacher Ansatz ist alle Kosten für die PV-Anlage addieren, Kaufpreis +jährliche Wartung+ Reinigung usw. geteilt durch den erwarteten Ertrag über eine Laufzeit von 20 Jahren. Meine Anlage produziert ca. 16000 - 17000 kWh im Jahr, da habe einfach den minimal Ansatz gerechnet und 16000 *20 Jahre angenommen.

                            Bezüglich des Flot Diagramms, bin ich noch recht ahnungslos, da ich es nicht verwende. Hab es mir jetzt installiert.
                            Gibts da vielleicht etwas fertiges zum importieren? Oder einen 2-Zeiler Crashkurs mit Screenshot von deiner Config?

                            Konnte nichts finden, wie man Einstellungen im Flot Editor exportieren kann, dann muss es über Bilder gehen :-)
                            Als Erstes im iobroker Admin Objekte bei den entsprechenden Objekten ganz rechts auf das Zahnrad klicken.
                            f7526f15-26fb-4404-a5ed-05405ad5f580-grafik.png

                            Dann aktiviert markieren und die entsprechenden Einstellungen machen:
                            7ea0bd33-9895-4a59-a9f4-22d14d467899-grafik.png

                            Das für alle drei Objekte einzeln durchführen.

                            Dann zur Flot Instanz wechseln und den Flot Editor über das Viereck mit Pfeil starten:
                            bc84ebb8-050f-4b68-8c28-b3113baee1ef-grafik.png

                            Im Flot Editor drei neue Linien hinzufügen und die entsprechende ID auswählen und Einstellung wie auf Bild:
                            9101bf97-5cd1-4fe8-8785-fcd3f72424d0-grafik.png

                            In der Spalte mehr auf das Symbol klicken:
                            d2a78cbf-b1f5-4631-ae0a-04b65d02d32b-grafik.png

                            und bei allen drei Linien die gleichen Einstellungen machen:
                            1cf92d2a-5f86-4ab3-8280-171c5ffbee9c-grafik.png

                            Oben auf den Reiter Zeit klicken und diese Einstellungen machen:
                            d6ff3895-14ea-4456-aa1f-88a83b1699ce-grafik.png

                            Dann oben auf den Reiter Optionen klicken und diese Einstellungen machen:
                            c12e3de1-6de7-45aa-bf80-92fe42925110-grafik.png

                            Dann das ganze speichern, indem du oben rechts neben Optionen auf Speichern klickst.
                            Den ganzen Link aus dem Fenster Link kopieren und darauf achten das wirklich alles markiert wird, dazu das Fenster nach unten scrollen.
                            060392a1-da79-4191-97f6-76f8be00378f-grafik.png

                            Jetzt in den VIS Editor wechseln und das basic-iFrame Widget markieren, den kopierten Link bei Quelle einfügen:
                            66689451-0181-44ce-9d6f-4e8de6966655-grafik.png

                            P 1 Antwort Letzte Antwort
                            0
                            • A ArnoD

                              @psrelax sagte in E3DC Hauskraftwerk steuern:

                              Lädt nicht. 😕

                              Das Bild und die LOG Ausgabe wurden aber nicht zur gleichen Zeit gemacht, oder?
                              Startzeitpunkt Bild heute 20:00 - 21:00 Uhr und im LOG Morgen 13:00 Uhr bis 14:00 Uhr
                              Bei beiden ist aber der Startzeitpunkt noch nicht erreicht und es kann somit noch nicht geladen werden.

                              Die Stromgestehungskosten sind mir noch nicht ganz klar.
                              Du hast 0.1057 eingetragen. Ich würde auf 0,53 kommen.
                              Rechnung: 30000€ (ca.) / 56831,56kWh (bis heute)
                              Der Ertrag Solarstrom ändert sich allerdings täglich, wodurch das dann automatisch berechnet werden müsste.
                              Für was willst du die Stromgestehungskosten verwenden?

                              Ich bin noch unschlüssig, ob diese überhaupt relevant sind.
                              Ich wollte für den geladenen PV-Strom in der Batterie nicht mit 0 € rechnen, da dieser ja auch was kostet.
                              Einfacher Ansatz ist alle Kosten für die PV-Anlage addieren, Kaufpreis +jährliche Wartung+ Reinigung usw. geteilt durch den erwarteten Ertrag über eine Laufzeit von 20 Jahren. Meine Anlage produziert ca. 16000 - 17000 kWh im Jahr, da habe einfach den minimal Ansatz gerechnet und 16000 *20 Jahre angenommen.

                              Bezüglich des Flot Diagramms, bin ich noch recht ahnungslos, da ich es nicht verwende. Hab es mir jetzt installiert.
                              Gibts da vielleicht etwas fertiges zum importieren? Oder einen 2-Zeiler Crashkurs mit Screenshot von deiner Config?

                              Konnte nichts finden, wie man Einstellungen im Flot Editor exportieren kann, dann muss es über Bilder gehen :-)
                              Als Erstes im iobroker Admin Objekte bei den entsprechenden Objekten ganz rechts auf das Zahnrad klicken.
                              f7526f15-26fb-4404-a5ed-05405ad5f580-grafik.png

                              Dann aktiviert markieren und die entsprechenden Einstellungen machen:
                              7ea0bd33-9895-4a59-a9f4-22d14d467899-grafik.png

                              Das für alle drei Objekte einzeln durchführen.

                              Dann zur Flot Instanz wechseln und den Flot Editor über das Viereck mit Pfeil starten:
                              bc84ebb8-050f-4b68-8c28-b3113baee1ef-grafik.png

                              Im Flot Editor drei neue Linien hinzufügen und die entsprechende ID auswählen und Einstellung wie auf Bild:
                              9101bf97-5cd1-4fe8-8785-fcd3f72424d0-grafik.png

                              In der Spalte mehr auf das Symbol klicken:
                              d2a78cbf-b1f5-4631-ae0a-04b65d02d32b-grafik.png

                              und bei allen drei Linien die gleichen Einstellungen machen:
                              1cf92d2a-5f86-4ab3-8280-171c5ffbee9c-grafik.png

                              Oben auf den Reiter Zeit klicken und diese Einstellungen machen:
                              d6ff3895-14ea-4456-aa1f-88a83b1699ce-grafik.png

                              Dann oben auf den Reiter Optionen klicken und diese Einstellungen machen:
                              c12e3de1-6de7-45aa-bf80-92fe42925110-grafik.png

                              Dann das ganze speichern, indem du oben rechts neben Optionen auf Speichern klickst.
                              Den ganzen Link aus dem Fenster Link kopieren und darauf achten das wirklich alles markiert wird, dazu das Fenster nach unten scrollen.
                              060392a1-da79-4191-97f6-76f8be00378f-grafik.png

                              Jetzt in den VIS Editor wechseln und das basic-iFrame Widget markieren, den kopierten Link bei Quelle einfügen:
                              66689451-0181-44ce-9d6f-4e8de6966655-grafik.png

                              P Online
                              P Online
                              psrelax
                              schrieb am zuletzt editiert von
                              #2683

                              @arnod
                              Doch war der gleiche Zeitraum. Siehst du am blauen Strich.
                              Flot schau ich mir gleich mal an. Danke für die Anleitung.

                              A 1 Antwort Letzte Antwort
                              0
                              • P psrelax

                                @arnod
                                Doch war der gleiche Zeitraum. Siehst du am blauen Strich.
                                Flot schau ich mir gleich mal an. Danke für die Anleitung.

                                A Offline
                                A Offline
                                ArnoD
                                schrieb am zuletzt editiert von
                                #2684

                                @psrelax
                                Hast noch was geändert am Script ?

                                P 1 Antwort Letzte Antwort
                                0
                                • A ArnoD

                                  @psrelax
                                  Hast noch was geändert am Script ?

                                  P Online
                                  P Online
                                  psrelax
                                  schrieb am zuletzt editiert von
                                  #2685

                                  @arnod
                                  Nur wieder den Schedule auf *****

                                  A 1 Antwort Letzte Antwort
                                  0
                                  • P psrelax

                                    @arnod
                                    Nur wieder den Schedule auf *****

                                    A Offline
                                    A Offline
                                    ArnoD
                                    schrieb am zuletzt editiert von
                                    #2686

                                    @psrelax
                                    Lass den bitte auf einer Stunde zum Testen.
                                    Jede Minute ist auch nicht sinnvoll, da sich da am Preis nichts ändert.

                                    P 1 Antwort Letzte Antwort
                                    0
                                    • A ArnoD

                                      @psrelax
                                      Lass den bitte auf einer Stunde zum Testen.
                                      Jede Minute ist auch nicht sinnvoll, da sich da am Preis nichts ändert.

                                      P Online
                                      P Online
                                      psrelax
                                      schrieb am zuletzt editiert von
                                      #2687

                                      @arnod
                                      Ich hab den Schedule wieder zurück geändert.
                                      Flot habe ich jetzt drin. Ich muss nur warten bis Daten gesammelt wurden.

                                      1 Antwort Letzte Antwort
                                      0
                                      • P Online
                                        P Online
                                        psrelax
                                        schrieb am zuletzt editiert von psrelax
                                        #2688

                                        @ArnoD
                                        Also heute wieder was Neues.
                                        Kaum PV, Strom relativ günstig, SOC nur 15%. -> Entladesperre aktiv
                                        5d6a5421-10a0-4af5-963d-d876816e1250-image.png
                                        abe8403e-12c0-4362-ba94-d31064adda9e-image.png

                                        
                                        javascript.0
                                        2024-08-25 11:00:00.050	warn	script.js.E3DC_ChargeControl.Tibber: ProgrammAblauf = 1,5,
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.050	info	script.js.E3DC_ChargeControl.Tibber: bEntladenSperren = true
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: aktuellerPreisTibber = 0.1789
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: bruttoPreisBatterie = 0.2115
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: strompreisBatterie = 0.1861
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: schneeBedeckt = false
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: maxStrompreisUser = 0.19
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: minStrompreis_48h = 0.1623
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: billigsterEinzelpreisBlock = 0
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: blockpreisTimer = 0.17527500000000001
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: timerTarget1 = undefined timerTarget2 = undefined
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: timerIds1 = undefined timerIds2 = undefined
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.049	info	script.js.E3DC_ChargeControl.Tibber: ******************* Debug LOG Tibber Skript Version 1.0.2 *******************
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.048	warn	script.js.E3DC_ChargeControl.Tibber: Timer gelöscht
                                        
                                        javascript.0
                                        2024-08-25 11:00:00.027	warn	script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal aktuellerEigenverbrauch wurde in 879 W / 791 W geändert ====-
                                        

                                        Ist das Verhalten so gewollt?
                                        Geladen wird nicht, weil ...? Vielleicht wegen "strompreisBatterie" zu hoch. Wie wird "strompreisBatterie" berechnet?

                                        Im ChargeControl Script erhalte ich folgendes als Warning:

                                        script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal JSON_Chart wurde in { "axisLabels": [ "25.08 - 00:00 Uhr", "25.08 - 01:00 Uhr", "25.08 - 02:00 Uhr", "25.08 - 03:00 Uhr", "25.08 - 04:00 Uhr", "25.08 - 05:00 Uhr", "25.08 - 06:00 Uhr", "25.08 - 07:00 Uhr", "25.08 - 08:00 Uhr", "25.08 - 09:00 Uhr", "25.08 - 10:00 Uhr", "25.08 - 11:00 Uhr", "25.08 - 12:00 Uhr", "25.08 - 13:00 Uhr", "25.08 - 14:00 Uhr", "25.08 - 15:00 Uhr", "25.08 - 16:00 Uhr", "25.08 - 17:00 Uhr", "25.08 - 18:00 Uhr", "25.08 - 19:00 Uhr", "25.08 - 20:00 Uhr", "25.08 - 21:00 Uhr", "25.08 - 22:00 Uhr", "25.08 - 23:00 Uhr" ], "graphs": [ { "data": [ 0.1866, 0.1861, 0.1857, 0.1849, 0.1851, 0.1856, 0.1861, 0.1861, 0.1861, 0.1845, 0.1789, 0.1741, 0.1677, 0.1623, 0.1625, 0.174, 0.1802, 0.1873, 0.2897, 0.317, 0.3283, 0.3117, 0.3048, 0.2962 ], "type": "line", "color": "gray", "line_pointSizeHover": 5, "line_pointSize": 2, "line_Tension": 0.2, "yAxis_show": false, "yAxis_gridLines_show": false, "yAxis_gridLines_ticks_length": 5, "yAxis_position": "left", "yAxis_appendix": "€", "yAxis_min": 0, "yAxis_max": 0.7, "yAxis_zeroLineWidth": 5, "yAxis_zeroLineColor": "white", "displayOrder": 0, "tooltip_AppendText": " €", "datalabel_color": "white", "datalabel_fontFamily": "RobotoCondensed-Light", "datalabel_rotation": 70, "datalabel_fontSize": 12, "datalabel_maxDigits": 4, "datalabel_show": "true", "line_PointColor": [ "#FFFFFF" ], "line_PointColorBorder": [ "#FFFFFF" ], "line_PointColorHover": [ "##FFFFFF" ], "line_PointColorBorderHover": [ "#FFFFFF" ], "use_gradient_color": true, "gradient_color": [ { "value": 0.1, "color": "#0FFA1366" }, { "value": 0.25, "color": "#fff90580" }, { "value": 0.2, "color": "#fff90580" }, { "value": 0.3, "color": "#FF004066" } ], "use_line_gradient_fill_color": true, "line_gradient_fill_color": [ { "value": 0.1, "color": "#0FFA1366" }, { "value": 0.25, "color": "#fff90580" }, { "value": 0.2, "color": "#fff90580" }, { "value": 0.3, "color": "#FF004066" } ] }, { "data": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "type": "bar", "color": "#140CF2", "yAxis_min": 0, "yAxis_max": 1, "datalabel_show": false } ] } geändert ====-
                                        
                                        A 1 Antwort Letzte Antwort
                                        0
                                        • P Online
                                          P Online
                                          psrelax
                                          schrieb am zuletzt editiert von
                                          #2689

                                          Ich hab es über den Tag ein wenig beobachtet.
                                          Anscheinend ist nicht nur eine Entladesperre aktiv, sondern auch eine Ladesperre.
                                          77be5159-d336-4004-aed6-50fd0503bc80-image.png

                                          javascript.0	16:00:00.040	info	script.js.E3DC_ChargeControl.Tibber: ******************* Debug LOG Tibber Skript Version 1.0.2 *******************
                                          javascript.0	16:00:00.040	info	script.js.E3DC_ChargeControl.Tibber: timerIds1 = undefined timerIds2 = undefined
                                          javascript.0	16:00:00.040	info	script.js.E3DC_ChargeControl.Tibber: timerTarget1 = undefined timerTarget2 = undefined
                                          javascript.0	16:00:00.041	info	script.js.E3DC_ChargeControl.Tibber: blockpreisTimer = 0.17527500000000001
                                          javascript.0	16:00:00.041	info	script.js.E3DC_ChargeControl.Tibber: billigsterEinzelpreisBlock = 0
                                          javascript.0	16:00:00.041	info	script.js.E3DC_ChargeControl.Tibber: minStrompreis_48h = 0.1623
                                          javascript.0	16:00:00.041	info	script.js.E3DC_ChargeControl.Tibber: maxStrompreisUser = 0.19
                                          javascript.0	16:00:00.041	info	script.js.E3DC_ChargeControl.Tibber: schneeBedeckt = false
                                          javascript.0	16:00:00.041	info	script.js.E3DC_ChargeControl.Tibber: strompreisBatterie = 0.1861
                                          javascript.0	16:00:00.041	info	script.js.E3DC_ChargeControl.Tibber: bruttoPreisBatterie = 0.2115
                                          javascript.0	16:00:00.042	info	script.js.E3DC_ChargeControl.Tibber: aktuellerPreisTibber = 0.174
                                          javascript.0	16:00:00.042	info	script.js.E3DC_ChargeControl.Tibber: bEntladenSperren = true
                                          javascript.0	16:00:00.042	warn	script.js.E3DC_ChargeControl.Tibber: ProgrammAblauf = 1,5,
                                          
                                          A 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

                                          573

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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