NEWS
(gelöst) Awattar: 8 günstigsten Stunden von 6-21 Uhr
-
Ich bekomme in ein paar Tagen den Awattar-Tarif.
Ich versuche seit ein paar Tagen die Vorschläge im Forum mit dem Awattar Adapter für mein Projekt umzuschreiben. Irgendwo biege ich immer falsch ab.
So komplex scheint mir die Aufgabenstellung nicht zu sein. Aber ich scheitere immer am Detail.
"Verbraucher zu den 8 günstigsten Stunden zwischen 06:00 und 21:00 laufen lassen"
Die Stunden müssen nicht zusammenhängend sein.
Täglich eine Ausgabe einer Liste wann die Stunden sein werden inkl. StundenPreis.Vielleicht kann mir jemand wieder einmal aus der Patsche helfen.
Danke im Voraus
LG. Erich
-
@muckel sagte: Verbraucher zu den 8 günstigsten Stunden zwischen 06:00 und 21:00 laufen lassen
Ansatz mit den sortierten Preisen des Awattar-Adapters:
-
@muckel
Ansatz ohne Adapter mit API-Abfrage und eigener Sortierungsfunktion sortObjNum(arr, attr):function sortAttr(a, b) { return parseFloat(a[attr]) - parseFloat(b[attr]); } arr.sort(sortAttr);
-
@paul53
Danke für deine Unterstützung.
Ich werde beide mal ausprobieren.
lg. Erich -
@paul53
In der Liste von (awattar.0.pricesOrdered.) sind auch die Tage von Morgen drinnen.
Für 48 Stunden vom billigsten bis zum teuersten. 0-47
Wie kann ich die Liste nur für den heutigen Tag einspielen? Die Liste ist momentan gemixt.
11:00, 12:00, und 14:00 sind von heute und morgen{"start":"14:00:00","price":0.056999999999999995}, {"start":"11:00:00","price":0.086}, {"start":"12:00:00","price":0.091}, {"start":"13:00:00","price":0.11000000000000001}, {"start":"10:00:00","price":1.0050000000000001}, {"start":"15:00:00","price":2.957}, {"start":"09:00:00","price":3}, {"start":"13:00:00","price":3.032}, {"start":"14:00:00","price":3.129}, {"start":"08:00:00","price":5.220000000000001}, {"start":"15:00:00","price":5.535}, {"start":"12:00:00","price":5.561999999999999}, {"start":"11:00:00","price":5.6049999999999995}, {"start":"16:00:00","price":5.974}
Gibt es eine Abfrage mit nur "heute"?
-
@muckel sagte: Gibt es eine Abfrage mit nur "heute"?
Dann muss man zusätzlich das Datum ("startDate") prüfen.
Die Version mit der API hat das Problem nicht, da die Liste mit der Stunde, in der die Werte geholt werden, beginnt.
-
@paul53
Das dachte ich mir schon, aber wie prüfe ich startdate auf "heute" ab ?Ich versuche morgen die http liste auch noch.
danke für die info -
@muckel sagte: wie prüfe ich startdate auf "heute" ab ?
Z.B. so:
-
@paul53
Bin erst jetzt nach hause gekommen.
Danke schön! -
Guten Morgen Paul
Funktioniert alles perfekt.
Was noch nicht funktioniert ist:
Wenn ich das script neu starte, dann werden die listen erst generiert, wenn der Trigger CRON Zeitpunkt (05:59) gekommen ist.
ich kann natürlich das script nochmals außerhalb vom CRON laufen lassen (ohne Trigger), dann werden die Listen beim Start einmalig geladen. Danach wird die CRON Regel schlagend.
Ich denke mir allerdings, dass dies eleganter auch gehen muss.
Hast du da einen Tip für mich?
lg. erich -
@muckel sagte: werden die listen erst generiert, wenn der Trigger CRON Zeitpunkt (05:59) gekommen ist.
Welche Version?
Die zweite Version funktioniert nur zwischen 5:00 Uhr und 5:59 Uhr.
Wenn in der ersten Version die Listen nach 6 Uhr eingelesen werden, kann natürlich nur noch ein geringerer Zeitraum genutzt werden.
Um bei Skriptstart und um 5:59 Uhr einzulesen, packt man alles in eine Funktion und ruft die Funktion im CRON-Trigger und bei Skriptstart auf. -
@paul53
Danke für den Input.
Ich hab gewusst, dass du eine elegantere Lösung hast. -
Weil alles so perfekt funktioniert, hätte ich noch eine Frage:
Ich möchte die vom günstigsten Tarif an sortierte Liste (24h) als Text (Pushover) verschicken. Natürlich schön leserlich, Zeile für Zeile.
Startzeit SS:MM = Preis xx,xxx+13,223
Ich habe mich vorher noch nie mit Listen beschäftigt und werkle schon Stunden ergebnislos herum.Liebe Grüße Erich
und Danke nochmals für deine Hilfe -
@muckel sagte: Zeile für Zeile.
Startzeit SS:MM = Preis xx,xxx+13,223 -
@paul53
Bin schon am nachbauen. Danke schön. -
@paul53
Funktioniert ebenfalls perfekt.
Jetzt wo ich verstanden habe, wie man so eine Liste generiert, hab ich noch ein paar optische Änderungen eingebaut. Ohne deine Hilfe hätte ich das nie geschafft.
Danke schön -
@paul53
Darf ich dich nochmals um eine Lösung bitten?Ich würde gerne den aktuellen Strompreis stündlich in einen Datenpunkt schreiben um ihn mit History und E-Charts mitschreiben.
Ich wollte dafür deine Liste nehmen, aber so richtig funktioniert das nicht.
Hast du für das auch eine schöne Lösung parat?
Liebe Grüße Erich -
@muckel sagte: aktuellen Strompreis stündlich in einen Datenpunkt schreiben um ihn mit History und E-Charts mitschreiben.
Schreibe ihn zur jeden vollen Stunde in einen DP, der aufgezeichnet wird.
-
Auf das wäre ich niemals draufgekommen. Danke.
Datenpunkt muss "number" oder "string" sein?
"hour" ist eine Variable?! -
@muckel sagte: "hour" ist eine Variable?!
hour
ist die Variable, die schon in der Schleife verwendet wird. Sie enthält die Stunde der aktuellen Uhrzeit.@muckel sagte in (gelöst) Awattar: 8 günstigsten Stunden von 6-21 Uhr:
Datenpunkt muss "number" oder "string" sein?
"number"