Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. E3DC Hauskraftwerk steuern

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    E3DC Hauskraftwerk steuern

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      psrelax @psrelax last edited by

      @ArnoD
      Keine Ahnung was das wieder war. Heut funktioniert es.

      1 Reply Last reply Reply Quote 0
      • M
        Modulo-N @ArnoD last edited by

        @arnod
        Hi Arno... Version 1.3.6 läuft seit gestern abend und das bisher fehlerfrei. Ich behalte das trotzdem mal im Auge, da die möglichen Fehlerbedingungen ja durchaus komplex sind und natürlich dann, wenn man drauf schaut, eben nicht auftreten.

        Gruß Michael

        @arnod said in E3DC Hauskraftwerk steuern:

        @modulo-n
        Ich habe jetzt mehrere Versuche durchgeführt und kann den Fehler bei mir nicht mehr reproduzieren.
        Kannst du mal die neue Version bei dir testen.

        M 1 Reply Last reply Reply Quote 0
        • P
          psrelax last edited by

          @ArnoD
          Heute war den ganzen Nachmittag die Entladesperre drin. Unter Tags lass ich es mir eingehen aber sobald ab ca. 16 Uhr kein Solar mehr kommt, sollte schon wieder entladen werden.
          b46e2d7a-64bd-468e-b649-26ad92526080-image.png

          2024-11-27 17:29:00.220  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: *******************  Debug LOG Tibber Skript Version 1.3.6 *******************
          2024-11-27 17:30:00.304  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ************************************************************************************
          2024-11-27 17:30:00.305  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** timerIds = 
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** timerTarget = []
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** timerState = []
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** timerObjektID = []
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** minStrompreis_48h = 0.2238
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** batterieKapazitaet_kWh = 15
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Batterie_SOC = 60
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Power_Bat_W = 0
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Power_Grid = 2692
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** prognoseLadezeitBatterie = 1
          2024-11-27 17:30:00.307  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** reichweiteBatterie = 5:56 h / 5:56 h
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** batteriepreisAktiv = true
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** strompreisBatterie = 0.3497
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** bruttoPreisBatterie = 0.3974
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Aktueller Preis Tibber = 0.3173
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[1].endLocale = 28.11.2024, 07:00:00
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[1].startLocale = 27.11.2024, 22:00:00
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[1].Type = normal
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[0].endLocale = 27.11.2024, 22:00:00
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[0].startLocale = 27.11.2024, 20:00:00
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[0].Type = high
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** aktivePhase.endLocale = 27.11.2024, 20:00:00
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** aktivePhase.startLocale = 27.11.2024, 00:00:00
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** aktivePhase.Type = peak
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Schwellwert Spitzenstrompreis = 0.3068
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Schwellwert hoher Strompreis = 0.27
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Schwellwert niedriger Strompreis = 0.1057
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** schneeBedeckt = false
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Prognose PV-Leistung heute = 19.761 kWh
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Prognose PV-Leistung morgen = 5.9639999999999995 kWh
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** pvLeistungAusreichend = false
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** eAutoLaden = false
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** BatterieEntladenSperren = true
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** battSperrePrio = false
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** BatterieLaden = false
          2024-11-27 17:30:00.308  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Status = Aktuell Strompreis zu hoch, es wird nicht geladen (aktive Phase: peak)
          2024-11-27 17:30:00.308  - warn: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** ProgrammAblauf = 27,1,18,18/4,19,22,32,10,30, 
          
          P 1 Reply Last reply Reply Quote 0
          • P
            psrelax @psrelax last edited by

            @ArnoD
            Es wurde vorhin der Akku voll geladen und das nicht beim niedrigsten Preis.
            dbb3b60a-0329-4ce7-95d7-fd178484a7c1-image.png

            2024-11-27 22:29:00.196  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: *******************  Debug LOG Tibber Skript Version 1.3.6 *******************
            2024-11-27 22:30:00.224  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ************************************************************************************
            2024-11-27 22:30:00.224  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** timerIds = 660303319,660303332
            2024-11-27 22:30:00.224  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** timerTarget = ["2024-11-27T21:00:00.000Z","2024-11-28T06:00:00.000Z"]
            2024-11-27 22:30:00.224  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** timerState = [true,false]
            2024-11-27 22:30:00.224  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** timerObjektID = ["Laden","Laden"]
            2024-11-27 22:30:00.224  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** minStrompreis_48h = 0.2238
            2024-11-27 22:30:00.224  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** batterieKapazitaet_kWh = 15
            2024-11-27 22:30:00.224  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Batterie_SOC = 79
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Power_Bat_W = 8526
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Power_Grid = 10309
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** prognoseLadezeitBatterie = 1
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** reichweiteBatterie = 7:22 h / 7:22 h
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** batteriepreisAktiv = true
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** strompreisBatterie = 0.3218
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** bruttoPreisBatterie = 0.3657
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Aktueller Preis Tibber = 0.2659
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[1].endLocale = 28.11.2024, 10:00:00
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[1].startLocale = 28.11.2024, 08:00:00
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[1].Type = peak
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[0].endLocale = 28.11.2024, 08:00:00
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[0].startLocale = 28.11.2024, 07:00:00
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** naechstePhasen[0].Type = high
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** aktivePhase.endLocale = 28.11.2024, 07:00:00
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** aktivePhase.startLocale = 27.11.2024, 22:00:00
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** aktivePhase.Type = normal
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Schwellwert Spitzenstrompreis = 0.3068
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Schwellwert hoher Strompreis = 0.27
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Schwellwert niedriger Strompreis = 0.1057
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** schneeBedeckt = false
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Prognose PV-Leistung heute = 19.761 kWh
            2024-11-27 22:30:00.225  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Prognose PV-Leistung morgen = 5.9639999999999995 kWh
            2024-11-27 22:30:00.226  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** pvLeistungAusreichend = false
            2024-11-27 22:30:00.226  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** eAutoLaden = true
            2024-11-27 22:30:00.226  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** BatterieEntladenSperren = true
            2024-11-27 22:30:00.226  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** battSperrePrio = false
            2024-11-27 22:30:00.226  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** BatterieLaden = true
            2024-11-27 22:30:00.226  - info: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** Status = warte auf Normalpreisphase von 22:00 Uhr bis 07:00 Uhr (aktive Phase: high)
            2024-11-27 22:30:00.226  - warn: javascript.0 (250) script.js.E3DC_ChargeControl.Tibber: ** ProgrammAblauf = 27,1,18,18/4,19,21,19,12,12/8, 
            
            1 Reply Last reply Reply Quote 0
            • M
              Modulo-N @Modulo-N last edited by

              Und prompt kommen wieder Fehler... allerdings lässt sich der bestLoadTime-Fehler

              2024-11-28 02:49:00.357 - error: javascript.0 (6178) script.js.E3DC-Control.Tibber-1_3_6: Fehler in Funktion bestLoadTime: Cannot read properties of undefined (reading 'startsAt')

              ziemlich gut eingrenzen, da es in der Funktion nur ein einziges 'startsAt' gibt und zwar hier:

                  for (let i = 0; i < datenTibberLink48h.length - ladezeit_h; i++) {
                      const startEntry = datenTibberLink48h[i];
                      const startTime = new Date(startEntry.startsAt);
              

              Der Aufruf findet also keinen gültigen Eintrag, entweder weil der Index i nicht stimmt oder einfach kein Eintrag an Stelle i da ist.

              Der andere Fehler dürfte wieder ein Folgefehler sein, denn er kommt jeweils direkt nach einem bestLoadTime Fehler:

              2024-11-28 02:49:00.363 - error: javascript.0 (6178) script.js.E3DC-Control.Tibber-1_3_6: Fehler in Funktion tibberSteuerungHauskraftwerk: Cannot read properties of undefined (reading 'getTime')

              Ich hab jetzt mal folgendes ergänzt:

                  for (let i = 0; i < datenTibberLink48h.length - ladezeit_h; i++) {
                      let startEntry = datenTibberLink48h[i];
                      let startTime = new Date(new Date().getTime() + 48 * 60 * 60 * 1000);;
                      if (!startEntry) 
                      {
                          log('Keinen Eintrag für i='+i+' in den Tibberdaten48h gefunden','error');
                          }
                      else
                      {
                        startTime = new Date(startEntry.startsAt);
                      }
              

              Mit der Vorbelegung von startTime auf einen Wert in 48h wird im Fehlerfall die j-Schleife definitiv übersprungen. Auf jeden Fall sehe ich dann auch den Wert für i (bzw. die Werte, falls es mehrere sein sollten.)

              @modulo-n said in E3DC Hauskraftwerk steuern:

              @arnod
              Hi Arno... Version 1.3.6 läuft seit gestern abend und das bisher fehlerfrei. Ich behalte das trotzdem mal im Auge, da die möglichen Fehlerbedingungen ja durchaus komplex sind und natürlich dann, wenn man drauf schaut, eben nicht auftreten.

              Gruß Michael

              @arnod said in E3DC Hauskraftwerk steuern:

              @modulo-n
              Ich habe jetzt mehrere Versuche durchgeführt und kann den Fehler bei mir nicht mehr reproduzieren.
              Kannst du mal die neue Version bei dir testen.

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

                @psrelax sagte in E3DC Hauskraftwerk steuern:

                Heute war den ganzen Nachmittag die Entladesperre drin. Unter Tags lass ich es mir eingehen aber sobald ab ca. 16 Uhr kein Solar mehr kommt, sollte schon wieder entladen werden.

                Das ist aber auch richtig. Der Batteriepreis war bei 0.3974 und der Tibber Preis war günstiger bei 0.3173, warum soll dann der teure Strom aus der Batterie verwendet werden? Das ergibt nur Sinn, wenn mit PV-Leistung gerechnet wird und man Platz schaffen will.

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

                  @psrelax sagte in E3DC Hauskraftwerk steuern:

                  Es wurde vorhin der Akku voll geladen und das nicht beim niedrigsten Preis.

                  Ja, diesen Fehler hatte ich auch und ist in der Version 1.3.7 behoben.

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

                    @modulo-n sagte in E3DC Hauskraftwerk steuern:

                    Und prompt kommen wieder Fehler... allerdings lässt sich der bestLoadTime-Fehler

                    Das ist ja interessant, da jetzt datenTibberLink48h auf jeden Fall ein gültiges Array ist und auch daten enthält.
                    Ich würde die if abfrage für die LOG Ausgabe noch um startEntry.startsAt ergänzen, da ja eventuell startEntry einen Wert enthält, aber die Eigenschaft startEntry.startsAt nicht.

                    let startTime
                    if (!startEntry || !startEntry.startsAt){
                           log(`Keinen Eintrag für i = ${i} in den Tibberdaten48h = ${JSON.stringify(datenTibberLink48h[i])} gefunden. datenTibberLink48h.length = ${datenTibberLink48h.length} ladezeit_h = ${ladezeit_h}`,'error');
                    } else {
                           startTime = new Date(startEntry.startsAt);
                    } 
                    
                    M 1 Reply Last reply Reply Quote 0
                    • A
                      ArnoD last edited by

                      Tibber Skript,
                      Version: 1.3.7 auf Github hochgeladen.

                      Änderungen:

                      • Mehrere Fehler Ladelogik Normalphase behoben.
                      • Weitere Abfrage für Fehler startEntry.startsAt in Funktion bestLoadTime().
                      A 1 Reply Last reply Reply Quote 1
                      • A
                        as @ArnoD last edited by

                        @arnod kann das skript auch ohne tibber vertrag genutzt werden
                        wo kommen dann die aktuellen preise her , der ungefähre preisverlauf würde ja grundsätzlich reichen um zu günstiger zeit zu laden z.b

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

                          @as
                          Generell ja, wenn du ein JSON Objekt erstellst, das so aussieht und mindestens die Eigenschaften "total" und "startsAt" enthält:

                          [
                            {
                              "total": 0.2299,
                              "energy": 0.0492,
                              "tax": 0.1807,
                              "startsAt": "2024-11-28T00:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "CHEAP"
                            },
                            {
                              "total": 0.2204,
                              "energy": 0.0412,
                              "tax": 0.1792,
                              "startsAt": "2024-11-28T01:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "CHEAP"
                            },
                            {
                              "total": 0.2106,
                              "energy": 0.033,
                              "tax": 0.1776,
                              "startsAt": "2024-11-28T02:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "CHEAP"
                            },
                            {
                              "total": 0.2095,
                              "energy": 0.0321,
                              "tax": 0.1774,
                              "startsAt": "2024-11-28T03:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "CHEAP"
                            },
                            {
                              "total": 0.2091,
                              "energy": 0.0317,
                              "tax": 0.1774,
                              "startsAt": "2024-11-28T04:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "CHEAP"
                            },
                            {
                              "total": 0.2336,
                              "energy": 0.0523,
                              "tax": 0.1813,
                              "startsAt": "2024-11-28T05:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "CHEAP"
                            },
                            {
                              "total": 0.2487,
                              "energy": 0.065,
                              "tax": 0.1837,
                              "startsAt": "2024-11-28T06:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "CHEAP"
                            },
                            {
                              "total": 0.2762,
                              "energy": 0.0881,
                              "tax": 0.1881,
                              "startsAt": "2024-11-28T07:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.2992,
                              "energy": 0.1074,
                              "tax": 0.1918,
                              "startsAt": "2024-11-28T08:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.2992,
                              "energy": 0.1074,
                              "tax": 0.1918,
                              "startsAt": "2024-11-28T09:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.281,
                              "energy": 0.0921,
                              "tax": 0.1889,
                              "startsAt": "2024-11-28T10:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.2888,
                              "energy": 0.0987,
                              "tax": 0.1901,
                              "startsAt": "2024-11-28T11:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.2858,
                              "energy": 0.0962,
                              "tax": 0.1896,
                              "startsAt": "2024-11-28T12:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.2864,
                              "energy": 0.0967,
                              "tax": 0.1897,
                              "startsAt": "2024-11-28T13:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.2878,
                              "energy": 0.0979,
                              "tax": 0.1899,
                              "startsAt": "2024-11-28T14:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.3042,
                              "energy": 0.1116,
                              "tax": 0.1926,
                              "startsAt": "2024-11-28T15:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.3292,
                              "energy": 0.1326,
                              "tax": 0.1966,
                              "startsAt": "2024-11-28T16:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.3491,
                              "energy": 0.1493,
                              "tax": 0.1998,
                              "startsAt": "2024-11-28T17:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "EXPENSIVE"
                            },
                            {
                              "total": 0.3597,
                              "energy": 0.1582,
                              "tax": 0.2015,
                              "startsAt": "2024-11-28T18:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "EXPENSIVE"
                            },
                            {
                              "total": 0.3545,
                              "energy": 0.1539,
                              "tax": 0.2006,
                              "startsAt": "2024-11-28T19:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "EXPENSIVE"
                            },
                            {
                              "total": 0.3427,
                              "energy": 0.144,
                              "tax": 0.1987,
                              "startsAt": "2024-11-28T20:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.329,
                              "energy": 0.1325,
                              "tax": 0.1965,
                              "startsAt": "2024-11-28T21:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.3167,
                              "energy": 0.1222,
                              "tax": 0.1945,
                              "startsAt": "2024-11-28T22:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            },
                            {
                              "total": 0.3054,
                              "energy": 0.1126,
                              "tax": 0.1928,
                              "startsAt": "2024-11-28T23:00:00.000+01:00",
                              "currency": "EUR",
                              "level": "NORMAL"
                            }
                          ]
                          
                          A 1 Reply Last reply Reply Quote 0
                          • A
                            as @ArnoD last edited by

                            @arnod habe aktuell das Problem mit meinem Netzbetreiber der ein IMSYS verbauen will da ich eine Erweiterung angemeldet habe
                            nun fordert dieser die Umsetzung nach §14a für die Battieladung/Netzbezug ist es möglich über dein Skript soetwas zu integrieren das das E3DC nur mit 4,2 KW den Akku laden würde bei Anforderung! und möglicherweise auch eine gesamte Leistungsbegrenzung des Bezuges für andere Verbraucher oder gar alle im Haus vorhandenen zb WP und Wallbox

                            die externen Signale könnte man ja irgendwie vom IMSYS entgegennehmen und per Iobroker ans E3DC umsetzten
                            aktuell gibt es ja nichts von irgendeinem WR Hersteller

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

                              @arnod irgendwo müssen ja die Tibber Preise abgerufen werden
                              die option hatte ich im hinterkopf

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

                                @as sagte in E3DC Hauskraftwerk steuern:

                                ist es möglich über dein Skript soetwas zu integrieren das das E3DC nur mit 4,2 KW den Akku laden würde bei Anforderung!

                                Das ist bereits jetzt möglich.

                                irgendwo müssen ja die Tibber Preise abgerufen werden

                                Das alleine wird dir aber nicht helfen ohne Liefervertrag der die Börsenpreise berücksichtigt.

                                1 Reply Last reply Reply Quote 0
                                • M
                                  Modulo-N @ArnoD last edited by Modulo-N

                                  @arnod said in E3DC Hauskraftwerk steuern:

                                  @modulo-n sagte in E3DC Hauskraftwerk steuern:

                                  Und prompt kommen wieder Fehler... allerdings lässt sich der bestLoadTime-Fehler

                                  Das ist ja interessant, da jetzt datenTibberLink48h auf jeden Fall ein gültiges Array ist und auch daten enthält.

                                  Mit meiner "temporären" Ergänzung habe ich heute nacht die folgenden Fehler bekommen:

                                  2024-11-29 02:01:00.243 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: Keinen Eintrag für i=24 in den Tibberdaten48h gefunden
                                  2024-11-29 02:01:00.244 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: Keinen Eintrag für i=25 in den Tibberdaten48h gefunden
                                  2024-11-29 02:01:00.244 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: function bestLoadTime: Kein Eintrag gefunden datenTibberLink48h.length = 24 billigsteZeit = null
                                  

                                  Sieht so aus, als wäre das Array nur noch "halb-voll" (length=24, also [0..23]) und das Skript greift auf Indizes [24] und [25] zu ...

                                  Besonders interessant finde ich den Zeitstempel, den ich bisher nicht so im Fokus hatte: 02:01 ... Ich hatte erst die "Zwangstrennung" der Fritz!Box in Verdacht, aber die hat sich erst gegen 02:43 neu verbunden. Passiert in deinem Skript etwas um 02:00, was dann beim ersten Neuberechnen der besten Ladezeit eine Minute später ein Problem erzeugt?

                                  Auf jeden Fall installiere ich erstmal Version 1.3.7...

                                  Nachtrag:
                                  Vielleicht auch noch interessant => der Kontext der Fehlermeldungen... Direkt vor Auftreten der ersten Meldung wurde Batterieladen auf true gesetzt:

                                  2024-11-29 02:00:00.052 - warn: javascript.0 (187) script.js.E3DC-Control.Charge-Control-1_5_11: -==== Tibber output signal BatterieLaden wurde in true geändert ====-
                                  2024-11-29 02:00:00.258 - warn: javascript.0 (187) script.js.E3DC-Control.Charge-Control-1_5_11: ##{"from":"Charge-Control", "message":" -==== EMS Laden/Entladen der Batterie ist eingeschaltet ====- "}##
                                  2024-11-29 02:01:00.243 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: Keinen Eintrag für i=24 in den Tibberdaten48h gefunden
                                  2024-11-29 02:01:00.244 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: Keinen Eintrag für i=25 in den Tibberdaten48h gefunden
                                  2024-11-29 02:01:00.244 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: function bestLoadTime: Kein Eintrag gefunden datenTibberLink48h.length = 24 billigsteZeit = null
                                  

                                  und das ging dann durchgängig im Minutentakt weiter bis das Laden wieder auf false gesetzt wurde

                                  2024-11-29 03:37:00.251 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: Keinen Eintrag für i=24 in den Tibberdaten48h gefunden
                                  2024-11-29 03:37:00.251 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: Keinen Eintrag für i=25 in den Tibberdaten48h gefunden
                                  2024-11-29 03:37:00.252 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: function bestLoadTime: Kein Eintrag gefunden datenTibberLink48h.length = 24 billigsteZeit = null
                                  2024-11-29 03:38:00.282 - warn: javascript.0 (187) script.js.E3DC-Control.Charge-Control-1_5_11: -==== Tibber output signal BatterieLaden wurde in false geändert ====-
                                  2024-11-29 03:38:03.253 - warn: javascript.0 (187) script.js.E3DC-Control.Charge-Control-1_5_11: ##{"from":"Charge-Control", "message":" -==== Notstrom Reserve erreicht, Laden/Entladen der Batterie ist ausgeschaltet ====- "}##
                                  

                                  Dann war 20min Ruhe und nach dem Einschalten des Batterieladens ging es wieder los... bis zum erneuten Abschalten (war aber nur kurz)

                                  2024-11-29 03:57:00.235 - warn: javascript.0 (187) script.js.E3DC-Control.Charge-Control-1_5_11: -==== Tibber output signal BatterieLaden wurde in true geändert ====-
                                  2024-11-29 03:57:03.132 - warn: javascript.0 (187) script.js.E3DC-Control.Charge-Control-1_5_11: ##{"from":"Charge-Control", "message":" -==== EMS Laden/Entladen der Batterie ist eingeschaltet ====- "}##
                                  2024-11-29 03:58:00.195 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: Keinen Eintrag für i=24 in den Tibberdaten48h gefunden
                                  2024-11-29 03:58:00.196 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: Keinen Eintrag für i=25 in den Tibberdaten48h gefunden
                                  2024-11-29 03:58:00.196 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: function bestLoadTime: Kein Eintrag gefunden datenTibberLink48h.length = 24 billigsteZeit = null
                                  2024-11-29 03:58:00.198 - error: javascript.0 (187) script.js.E3DC-Control.Tibber-1_3_6: 2024-11-29 03:59:00.290 - warn: javascript.0 (187) script.js.E3DC-Control.Charge-Control-1_5_11: -==== Tibber output signal BatterieLaden wurde in false geändert ====-
                                  2024-11-29 03:59:03.206 - warn: javascript.0 (187) script.js.E3DC-Control.Charge-Control-1_5_11: ##{"from":"Charge-Control", "message":" -==== Notstrom Reserve erreicht, Laden/Entladen der Batterie ist ausgeschaltet ====- "}##
                                  
                                  
                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    ArnoD @Modulo-N last edited by ArnoD

                                    @modulo-n
                                    Ok, jetzt kommen wir dem Fehler schon mal näher 🙂
                                    Ab 0:00 Uhr sollte das Array auch nur noch "halb-voll" sein, bis ca. 13:00 Uhr, wo dann die neuen Daten für den nächsten Tag von Tibber übermittelt werden.
                                    Ich schaue mir das mal an, warum auf Indizes [24] und [25] zugegriffen wird obwohl, length=24 ist.
                                    Wichtig wäre jetzt der Wert von ladeZeit_h.

                                    Nachtrag:
                                    Bei mir ist jetzt endlich auch der Fehler aufgetreten 🙂 und habe folgenden Eintrag im LOG:

                                    2024-11-30 07:40:00.126  - error: javascript.0 (228) script.js.common.Tibber: Keinen Eintrag für i = 24 in den Tibberdaten48h = undefined gefunden. datenTibberLink48h.length = 24 ladezeit_h = -1.0000269444444445
                                    

                                    Der Fehler ist die Variable ladezeit_h, die einen negativen Wert hat und da zweimal minus wieder plus ergibt....
                                    Warum bei der Ladezeit ein negativer Wert herauskommen kann, muss ich mal anschauen.

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

                                      Tibber Skript,
                                      Version: 1.3.8 auf Github hochgeladen.

                                      Änderungen:

                                      • Fehler in Funktion bestLoadTime() behoben. Die Variable ladezeit_h sollte jetzt immer mindestens 1 sein.
                                      P 1 Reply Last reply Reply Quote 1
                                      • P
                                        psrelax @ArnoD last edited by

                                        @arnod
                                        Hab wieder mal ein Problem wenn ich ein neues Script starte. Ich weiß nicht, was das immer ist. Behebt sich bestimmt wieder von alleine 🙂

                                        
                                        javascript.0
                                        2024-12-01 00:06:00.156	error	script.js.E3DC_ChargeControl.Tibber: Fehler in Funktion tibberSteuerungHauskraftwerk: Cannot read properties of undefined (reading 'getTime')
                                        
                                        javascript.0
                                        2024-12-01 00:06:00.154	error	script.js.E3DC_ChargeControl.Tibber: function bestLoadTime: Kein Eintrag gefunden datenTibberLink48h.length = 24 billigsteZeit = null
                                        
                                        javascript.0
                                        2024-12-01 00:05:00.101	error	script.js.E3DC_ChargeControl.Tibber: Fehler in Funktion tibberSteuerungHauskraftwerk: Cannot read properties of undefined (reading 'getTime')
                                        
                                        javascript.0
                                        2024-12-01 00:05:00.096	error	script.js.E3DC_ChargeControl.Tibber: function bestLoadTime: Kein Eintrag gefunden datenTibberLink48h.length = 24 billigsteZeit = null
                                        
                                        javascript.0
                                        2024-12-01 00:04:17.196	error	script.js.E3DC_ChargeControl.Tibber: Fehler in Funktion tibberSteuerungHauskraftwerk: Cannot read properties of undefined (reading 'getTime')
                                        
                                        javascript.0
                                        2024-12-01 00:04:17.195	error	script.js.E3DC_ChargeControl.Tibber: function bestLoadTime: Kein Eintrag gefunden datenTibberLink48h.length = 24 billigsteZeit = null
                                        
                                        A 1 Reply Last reply Reply Quote 0
                                        • A
                                          ArnoD @psrelax last edited by

                                          @psrelax
                                          Hast du die neuste Version vom Script?
                                          Sind das alle Fehlermeldungen oder ist im LOG vor diesem Fehler noch eine weitere Fehlermeldung eingetragen?

                                          Frage nur, weil dieser Fehler so eigentlich nicht mehr auftreten kann, außer Javascript würde die For-Schleife nicht abwarten.

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

                                            Tibber Skript,
                                            Version: 1.3.9 auf Github hochgeladen.

                                            Änderungen:

                                            • Weitere Absicherung in der Funktion bestLoadTime() eingebaut, um Fehler billigsteZeit = null zu verhindern.
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            814
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3331
                                            1362736
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo