NEWS
Geräte zu Stundenpreisen (EPEX) oder PV-Überschuss betreiben
-
@thomkast Hallo Thomas,
jetzt hole ich mal ein bisschen weiter aus. Ich habe die OpenWB Box. Hier gibt es den Modus Min+PV-Laden. Ab März ist das mein bevorzugter Lademodus. Hier gibt man den Mindestladeleistung ein, damit das Auto Dreiphasig lädt. Ab und zu, falls mal Wolken kommen oder es schon später ist, füllt die Box die Differenz aus dem Speicher auf, damit die Ladung nicht abbricht. Ab Mai ist das kein Thema, weil eh genug PV vorhanden ist. Im März/April brauche ich den Batteriestrom aber für die alltägliche Grundlast. Hier benutze ich dein Skript schon um bei extrem niedrigem Strompreis die Batterieentnahme beim Autoladen zu sperren. Im Winter ist es mit PV nicht weit her. Hier sind die günstigen Tibberstunden meistens Nachts. Die OPENWB hat schon eine die Anbindung an Timber und ich kann beim Lademodus Sofortladen einen Ladehöchstpreis angeben. Diesen kann ich auch über MQTT über den IObroker übermitteln. Da mir bei 11KW-Ladeleistung 2-Stunden Nachts bis 7:00 Uhr reichen berechne ich den zu übermittelnden Höchstpreis aus deinem Geringster-Preis x Hysterese. Meistens fängt das Laden damit schon um 12..1 Uhr an und ist um 2..3 Uhr fertig. Die günstigsten Stunden kommen da erst noch. Anderseits ist das Risiko, die Hysterese zu klein einzustellen und morgens mit leerem Auto dazustehen. Daher dachte ich, wenn man die benötigten Stunden als Ziel vorgibt, kann man die kleinste benötigte Hysterese ermitteln und landet somit in den günstigsten Stunden. Später kann man die benötigte Ladezeit bestimmt auch über die SOC-Werte des Autos übermitteln. Aber das wäre der 2. Schritt.
Liebe Grüße Michael
-
@miknu42 ok. Danke für Deine Erläuterung.
Dann benötigst Du die günstigste Stunde im Zeitraum von 00:01 bis 06:59. Zu dieser Stunde kannst Du das Laden dann starten. Richtig? -
@thomkast Genau, die Zeiten in dem Zeitraum habe ich schon selber hinbekommen. Die Schleife, die den Hysteresewert austestet, damit tu ich mich ein bisschen schwer.
-
@miknu42 Aber nur mal ins Unreine gesprochen... Eigentlich reicht Dir doch die günstigste Stunde in dem Zeitraum. Dann lädst Du die 2h und fertig. Die nächste günstige Stunde ist ja fast immer im direkten Anschluß an die günstigste Stunde. Somit benötigst Du doch gar keine Hysterese mehr?..?
-
@thomkast Ich werde das mal eine zeitlang beobachten. Danke für deine Hilfe.
-
@thomkast Hallo Thomas, ich stand vorhin auf dem Schlauch. Ich muss meiner Wallbox einen maximalen Ladepreis übermitteln. Also niedrigster Preis x Hysterese. Um das zu optimieren brauche ich doch die optimale Hysterese.
-
@miknu42 hmm, komme mir schon fast so vor, als wenn ich Dir nicht helfen wollte, weil ich Dir immer mit Gegenvorschlägen komme... Ich finde halt nur, man kann fast alles realisieren, aber muss man das auch immer?..?
Aus meiner Sicht sind die relevanten Punkte:
- Du musst einen maximalen Preis übermitteln und unterhalb dieses MaxPreis beginnt deine WB die Ladung.
- Du möchtest zur günstigsten Stunde die Ladung beginnen.
- Du benötigst mindestens 2h für eine ausreichende Ladung.
- Eine begonnene Ladung wird nicht wieder unterbrochen.
- Die Ladung soll spätestens um 0700 beendet werden.
- Wie verhält sich die WB, wenn in einem laufenden Ladevorgang der MaxPreis angehoben wird?
Damit kommt doch folgendes in Betracht:
- Es sind nur die Preise der Stunden 0, 1, 2, 3, 4, und 5 relevant.
... denn in der 5. Stunde muss die Ladung spätestens beginnen, damit diese in der Stunde 5+6 durchgeführt werden kann - also vor der Stunde 7 beendet ist. - Also benötigst Du nur den geringsten Preis der Stunden 0 bis 5.
- Dieser Preis wären dann der MaxPreis für die WB und die Ladung würde in der zugehörigen Stunde starten.
*Sobald die Ladung gestartet ist, erhöhst Du den MaxPreis um einen beliebigen Wert und die Ladung wird fortgesetzt.
Vorausgesetzt... Die WB verhält sich so, wie beschrieben
-
@thomkast
Den geringsten Preis der Stunden 0 bis 5 erhältst Du, in dem Du in der Schleife den Wert auf 5 veränderst. Zur Bestimmung der geringsten Stunde, spielt die Hysterese auch noch keine Rolle. -
@thomkast Alles gut, ich behaupte nicht, das meine Lösung der Weisheitszahn letzter Schluss ist. Vielleicht gibt es tatsächlich bessere Lösungen. Heute hätte ich allerdings bei einer Hysterese von 4 Nachts gar nicht geladen. Auch der Punkt :
Eine begonnene Ladung wird nicht wieder unterbrochen
ist kein Muss. Es stellt kein Problem da um 0:00 Uhr eine Stunde zu Laden und dann wieder um 3:00 Uhr. Das macht die Box bei manueller Bedingungen auch.
. In dem Fall zwar nicht, aber es kommt durchaus vor, dass zwischen den Ladestunden eine Pause ist. -
@miknu42 Oh, ich bin neidisch. Du hast schon einen Enyaq . Wir warten darauf mittlerweile 516 Tage
Verstehe was Du meinst. Geht auch nicht um gute oder bessere Lösung. Nur die Sparoptionen sind in den verbleibenden 7 Stunden soooo gering.
Mit der einfachen Logik, wäre die Ladung um 03:00 zu 27,5 Cent gestartet und mit 28,4 Cent beendet worden. Natürlich wäre es am günstigsten gewesen, die Ladung um 02:59 zu 27,9 Cent zu starten und um 03:59 zu 27,5 Cent zu beenden.
... wobei ich auch verstehe, dass sich das bei 3 BEVs über die Zeit "leppert"Da nicht durchgängig geladen werden muss/soll, wäre es also nötig 2 günstigste Stunden zu ermitteln. Korrekt?
-
@thomkast der 2 günstigste Preis würde reichen. Den Rest macht die Box von sich aus.
-
@miknu42 Bin dran. Schau morgen früh mal in den Chat. Wenn's klappt wirst Du eine Lösung vorfinden
-
@miknu42
Upps, schon fertig. Du musst nun nur schauen, wie das extrahierst oder bei Dir einbindest.
Folgendes hat sich geändert:Zusätzliche Datenpunkte - Typ "number":
... die anderen DPs habe ich unverändert gelassen und "Deine" DPs zusätzlich angelegtIn Abschnitt 1 werden die neuen Variablen beim Start mit den letzten Werten geladen.
... ist zwar nicht nötig. Ich habe nur gerne die Variablen zum Start geladen...Für den manuellen Aufruf musst Du folgendes festlegen:
... mit "heute" oder "morgen" kannst Du auf die Tagespreise zielen
... "günstigster_preis" aktivierenIm Abschnitt 6.3 findest Du die Ergänzungen unterhalb der Kommentare "Testerweiterung"
... die beiden DEBUGs können natürlich rausAuf einen Script-Export verzichte ich besser. Dürfte anhand der Screens mit einigen mehreren Klicks schnell nachbaubar sein.
... achja... Zum Schluss nicht vergessen die manuellen Starts unter Punkt 2 wieder zudeaktivieren...
Viel Erfolg beim Testen
-
Hey @thomkast, erstmal vielen Dank für das Script! Nun bin ich endlich Tibber-Kunde und will natürlich einiges steuern. Ich habe leider noch so wenig Erfahrungen mit der Erstellung von Scripten, dass ich es leider nicht hinbekomme selbst die Sachen zu generieren die ich mir wünsche. (Bis jetzt waren meine Automationen noch sehr einfach.) Ich benötige zum schalten, anzeigen etwas was du schon "irgendwie" in deiner WM-Steuerung hast. Ich benötige ein Datenpunkt günstigster Preis Hyst. -> wahr/falsch für die aktuelle Stunde und am liebsten einen mit der Stundenanzahl der zusammenhängenden günstigsten Stunden. Hoffe du kannst mir helfen.
Viele Grüße
-
@chris-b Hallo Chris, tut mir leid, dass Du so lange auf eine Antwort hast warten müssen. Und dazu habe ich noch nicht mal eine positive Antwort... Im Moment ist es mir nicht möglich Änderungen vorzunehmen. Das wird auch erst einmal längere Zeit so bleiben. Wenn es sich ändert melde ich mich gerne. Bis dahin wünsche ich Dir dennoch viel Erfolg. Gruß, Thomas
-
Hallo Thomas,
erst mal Gratulation zu dieser tollen Arbeit! Ich habe einen "Fehler" gefunden den ich Dir, obwohl ich gelesen habe, dass Du im Moment wenig Zeit hast, gerne mitteilen will:
Angenommen die günstigsten Preise (EPEX) sind für einen Tag nur 13:00 und 14:00 Uhr, dann findet das Skript beim Suchen des ersten Auftretens in der Liste "wm_preis-hysterese-stunden" (wm_epex-freigabe-pruefen), die ja nur nach "S" prüft, natürlich auch die 3 und die 4 und erteilt die Freigabe (fgg) auch um 03:00 und 04:00 Uhr.
Eine mögliche Lösung wäre, die Liste nach "SS" anzulegen und zu prüfen, also 03, 04 etc...
Nicht, dass bei jemandem die Waschmaschine um 3 Uhr nachts startet.
Vielleicht kommst Du ja doch dazu, das anzupassen.
Sommerliche Grüße
-
@elcompe da du ein Code-Versteher zu sein scheinst
Ich hatte neulich als der Stundenpreis -1c war keine Werte in "günstigste Stunden"
Ist das auch ein Code-Fehler oder war das ein Schluckauf in meinem System? Da hier sonst keiner was geschrieben hat, dachte ich an letzteres... -
@thomkast Hey, nachdem ich alles aktualisiert habe bekomme ich nun in den Objekten Stundenpreise_heute und Stundenpreise_morgen nur folgendes: {"errors":[{"message":"Context creation failed: invalid token","extensions":{"code":"UNAUTHENTICATED"}}]}
Ich hab schon einen neuen Token gesetzt, Blöcke verschoben und weiß nicht was - leider alles ohne Erfolg. Vielleicht hast du ja die Lösung - ich weiß nicht mehr weiter.
-
@chris-b ich hab leider das gleiche Problem. Script funktioniert nicht mehr.... Wo genau sehe ich die Fehlermeldung?
Ich hab aktuell diesen Fehler: script.js.common.Scripte.Tibber: schedule(cron=4 9: * * *): cannot create schedule
-
@Chris-b Hi, hoffe die Antwort hilft Dir noch...
Was sagt die Anmeldung im TIBBER API Explorer?Warum auch immer klappt das mit einem neuen Token auch nicht immer auf Anhieb und muss teils 2-3 mal versucht werden.
Bei mir läuft das Script durchgängig ohne Fehler...
@gizi dito für Dich. Zuerst im API Explorer prüfen.
Vor mehreren Wochen (meine ich mich zu erinnern) gab es einen Hinweis, dass der JSONATA nach Update nicht mehr funktioniert. Ändere mal ein Zeichen in dem Blockly, speichere das Blockly und ändere es nochmal zurück.
Voraussetzung ist natürlich, dass nicht nur die Adapter, sondern der gesamte Unterbau sauber aktualisiert ist.