NEWS
Listen sortieren, mal gehts, mal nicht
-
@joeysch sagte: Das müssen aber nicht zwingend aufeinanderfolgende Stunden sein.
Dann muss nur geprüft werden, ob die aktuelle Uhrzeit Bestandteil der Liste ist. Sortieren ist nicht erforderlich. Ich vermisse in deinem Blockly einen Trigger.
-
@paul53 sagte in Listen sortieren, mal gehts, mal nicht:
Ich vermisse in deinem Blockly einen Trigger.
Den hab ich erstmal rausgelassen um zu testen.
Hab jetzt einen Zeittrigger auf 0:01 Uhr drin. -
@joeysch sagte: Hab jetzt einen Zeittrigger auf 0:01 Uhr drin.
Man muss die Uhrzeit jede Stunde prüfen, wenn man Schaltoperationen davon abhängig machen will. Bei Werten von z.B. "18:00" in den Listen ist "18:01" zu spät. Deshalb verwende ich auch nur Stunden als Zahl in Listen.
-
Moment, dieser Blockly soll eigentlich nur dafür da sein um die günstigsten und teuersten Stunden zu separieren. Hier wird noch nichts geschaltet oder geregelt. Da Tibber die Daten nur zweimal am Tag aktualisiert, um 0:00 Uhr und um 13:00 Uhr (für den Folgetag) schreibe ich mir die um 0:01 Uhr in die DP's. Diese verwende ich dann im folgenden Blockly weiter.
Hier mal mein Ansatz um den Ladestrom an die Anzahl der nacheinander verfügbaren günstigen Stunden zu regeln.
Was sagst du dazu?
-
@joeysch sagte in Listen sortieren, mal gehts, mal nicht:
Diese verwende ich dann im folgenden Blockly weiter.
In Ordnung.
@joeysch sagte in Listen sortieren, mal gehts, mal nicht:
Was sagst du dazu?
Funktioniert so nicht. Die Prüfung oben ist falsch: Oder-Verküpfung von ms und Vergleich mit "hh:mm".
-
So sollte es gehen
-
@joeysch sagte: So sollte es gehen
Nein. Man benötigt eine Oder-Verknüpfung von 4 Vergleichen. In welchem Format stehen die Zeiten in den Datenpunkten "guenstigste_zeit_N"?
-
z.B. 4:00
-
@joeysch sagte: z.B. 4:00
Also ohne führende "0" vor "10:00" Uhr? Dann muss anders formatiert werden:
-
@paul53
Ok, ich hatte es jetzt so geändert.
Zum Verständnis: Es müsste doch beides gehen?
-
@joeysch sagte: Es müsste doch beides gehen?
Teste es.
-
@joeysch sagte: Batterie zu den günstigen Stunden lade und den teuren Stunden entlade.
Wenn man die nach Preisen sortierte Liste mit 24 Objekten in einen Datenpunkt vom Typ "array" schreibt, kann man die Liste für die Batterieladung und -entladung in einem weiteren Skript auswerten:
EDIT: Hier das Skript zum Erstellen der Liste mit 24 Objekten:
Da der Adapter um Mitternacht alle Werte neu schreibt, sollte man ihm ein paar Sekunden Zeit geben, bevor man die Datenpunkte einliest.
-
@paul53
So wie ich das lese, lädt und entlädt das System bei günstigsten bzw. teuersten Preisen.
Aber, die Werte des zweiten Tages kommen erst ab 13.00 Uhr. Mann müsste noch die Verluste die durch das Laden und Entladen berücksichtigen (ca.20%) und was ist, wenn die teuerste Zeit vor der günstigsten liegt. -
@joeysch sagte: die Werte des zweiten Tages kommen erst ab 13.00 Uhr.
Die spielen keine Rolle, da nur um kurz nach Mitternacht die Werte des aktuellen Tages geholt werden. Es wird nach den Preisen des aktuellen Tages sortiert. Die Reihenfolge der Stunden spielt keine Rolle.
Sollen die Preise des nächsten Tages auch berücksichtigt werden, muss am Nachmittag noch einmal eine Abfrage starten, die allerdings nicht nur die Werte unter "PricesToday" verwenden kann.
@joeysch sagte in Listen sortieren, mal gehts, mal nicht:
Mann müsste noch die Verluste die durch das Laden und Entladen berücksichtigen (ca.20%)
Das muss man bei der Ermittlung von "Aufladedauer" und "Entladedauer" (in Stunden) berücksichtigen.
-
@paul53 sagte in Listen sortieren, mal gehts, mal nicht:
Das muss man bei der Ermittlung von "Aufladedauer" und "Entladedauer" (in Stunden) berücksichtigen.
Ich glaube das hast du falsch verstanden. Durch die Verlustleistungen beim Laden und Entladen, müssten die günstigsten Preise x 1,2 genommen werden und mit den teuersten verglichen. Erst wenn dieser Preis immer noch günstiger ist, lohnt sich das laden wenn nicht, dann auch nicht laden.
-
@joeysch sagte: günstigsten Preise x 1,2 genommen werden und mit den teuersten verglichen.
Ist das Verhältnis nicht immer größer als 1,2?
-
@paul53
Nein, mal angenommen der teuerste Preis für diesen Tag wären 0,30 € dann wäre der höchstmögliche günstige Preis an dem es sich noch lohnen würde die Batterie zu füllen 0,30/1,2=0,25€ und selbst da wäre es noch Energieverschwendung weil ich für den gleichen Preis 20% der Energie vernichte.
Ich muss ja erst aus Wechselstrom Gleichstrom machen und dann wieder zurück. D.h. ich ziehe 1,2Kwh aus dem Netz um nachher 1 Kwh zu haben. -
@joeysch
Dann prüfe die zwei teuersten Preise gegen die zwei günstigsten Preise:So einfach ist es, wenn man in der sortierten Liste ein Objekt mit hour und price hat.
-
@paul53
Ja, ähnlich hatte ich es ja gestern, dank deiner Hilfe, auch aufgebaut. Der Tip mit den Objekten war der entscheidende.
Ich ziehe allerdings noch einige Werte raus und schreibe sie in Datenpunkte um das Ganze in VIS zu verwursten.
Ab Januar bin ich dann bei Tibber. Interessant ist das Ganze ja nur für die dunkle Jahreszeit, ansonsten ist die Batterie ja immer voll vom Dach. -
Hallo Gemeinde,
habe ebenfalls vor meine 4 günstigsten Tibberstunden in einem Block als "Ladestunden" an den Wechselrichter zu schicken.Folgendes Problem weis ich grad nicht wie ich das per Script verpacken soll.
Es werden die 4 günstigesten Stunden zwischen 22Uhr und 06Uhr ermittelt und jeweils in ein Objekt geschrieben.
Das funktioniert wunderbar.
Leider sind die günstigsten Stunden quer Beet verteilt.Ich grüble jetzt wie ich die Zahlen 22, 23, 0, 1, 2, 3, 4, 5, 6 aufsteigend sortieren kann, jedoch beginnend mit 22.
Beispiel günstigeste Stunden von heute:
D.h. die Sortierung müsste heute so ausehen: 23, 2, 3, 4
Meine Liste spukte diese Werte aus:
Vieleicht hat ja jemand eine spontane Idee, wie man das in Blockly umsetzen kann.
Gruß Einstein