NEWS
Adapter aWATTar mit zwei Zeiträumen
-
@homoran das stimmt. Da habe ich zu kompliziert gedacht. (die Schritte sind stündlich, aber vom heutigen und morgigen Tag)
wofür ich das brauche: die speicheröfen werden vom Stromversorger "ferngeschalten". Sie bekommen von 14:30 bis 18:00 und von 22:30 bis 6:00 Strom. Damit muss ich mich abfinden.
Ich würde nun gerne noch eine Schaltung dazwischen montieren, sodass sie nur zu den x günstigen Stunden Strom bekommen (das x wird in der übergangszeit 5, im Hochwinter vermutlich mehr sein).Mein Plan wäre nun mit Blockly folgendes zu tun: ich finde den x-teuersten Wert dieser Zeiträume raus. Wenn die volle Stunde dann diesem Wert oder wenig entspricht, dann wird eingeschalten, sonst ausgeschalten.
Ich werde mich jetzt mal auf die Suche begeben, wie ich den x-teuersten Wert dieser Zeiträume rausfinde ... (also eigentlich sind es dann drei: von 00:00 bis 6:00, von 14:30 bis 18:00 und von 22:30 bis 24:00, wobei ich die halben Stunden wohl ignorieren werde).
-
@judisi sagte: nur zu den x günstigen Stunden Strom bekommen (das x wird in der übergangszeit 5
Dann schreibe Preise und Startzeiten, die infrage kommen, in eine Liste und sortiere die Liste nach Preis. Zu den Startzeiten mit den 5 günstigsten Preisen wird eingeschaltet.
const awattar = 'awattar.0.prices.' function sortObj(arr, attr) { function sortAttr(a, b) { return a[attr] - b[attr]; } arr.sort(sortAttr); } var liste = []; schedule('59 21 * * *', function() { liste = []; for(let i = 22; i < 30; i++) { // Start 22:00 bis 5:00 Uhr const obj = { start: getState(awattar + i + '.start').val, price: getState(awattar + i + '.totalPriceKwh').val }; liste.push(obj); } for(let i = 38; i < 42; i++) { // Start 14:00 bis 17:00 Uhr const obj = { start: getState(awattar + i + '.start').val, price: getState(awattar + i + '.totalPriceKwh').val }; liste.push(obj); } sortObj(liste, 'price'); }); schedule('0 * * * *', function() { const jetzt = formatDate(new Date(), 'hh:mm:ss'); let ein = false; for(let i = 0; i < 5; i++) { if(liste[i].start == jetzt) ein = true; } // Ein- oder Ausschalten });
-
@judisi sagte in Adapter aWATTar mit zwei Zeiträumen:
Ich werde mich jetzt mal auf die Suche begeben, wie ich den x-teuersten Wert dieser Zeiträume rausfinde ... (also eigentlich sind es dann drei: von 00:00 bis 6:00, von 14:30 bis 18:00 und von 22:30 bis 24:00, wobei ich die halben Stunden wohl ignorieren werde).
das hatte ich gestern schon für dich fertig, bis ich merkte dass du bereits eine nach BilligsteStunde sortierte Liste hattest
habs leider wieder gelöscht, sah etwa so aus
-
@homoran sagte: nach BilligsteStunde sortierte Liste
Diese Liste berücksichtigt nicht die eingeschränkten Uhrzeiten.
-
@paul53 sagte
@homoran sagte: nach BilligsteStunde sortierte Liste
Diese Liste berücksichtigt nicht die eingeschränkten Uhrzeiten.
richtig! das war noch für gestern, hätte ich jetzt noch angepasst, wenn ich es nicht schon gelöscht hätte.
@judisi
würde ich machen, wenn du Bedarf hast und mir das entsprechende JSON zur Verfügung stellst -
@judisi sagte: geordnet nach Preis in den Konten awattar.0.pricesOrdered.(0-46).
Man kann eine sortierte Liste der Startzeiten erstellen, die nur die gültigen Zeiten enthält.
-
@paul53 @Homoran Ihr zwei seid unglaublich. Während ich mich bemühe einen kleinen Teil zu kreieren und zu verstehen, habt ihr schon mehrere Lösungsvarianten vorgeschlagen, die ich in der Zeit nicht mal in blockly reintippen kann, in der ihr sie programmiert. DANKE, DANKE, DANKE.
Ich mach jetzt mal einen Probelauf mit dem Blockly von paul53, weil ich Blockly im Gegensatz zu Javascript annähend verstehe.
-
@judisi
Da die Werte von heute und morgen enthalten sind, muss man wohl auch noch das Datum prüfen: >= 22:30 heute, der Rest morgen. -
Klappt wunderbar. Damit ich dem Problem von heute und morgen entgehen kann, hab ich in der Instanz aWATTar1 eingegeben, dass um 19:05 nur die Preise von 22:00 bis 18:00 beachtet werden sollen.
Danke diesem wunderbaren Forum, das ohne erhobenen Zeigefinger immer gerne hilft. -
@judisi sagte: hab ich in der Instanz aWATTar1 eingegeben, dass um 19:05 nur die Preise von 22:00 bis 18:00 beachtet werden sollen.
Es wird noch kein Gerät geschaltet.