NEWS
Wenn Wochentag X dann Wert von Objekt Y
-
Hallo zusammen,
ich nutze den SourceAnalytics Adapter zur Aufzeichnung meiner Stromverbräuche.
Der Adapter erstellt Tageswerte im Format: Montag / Dienstag / Mittwoch usw..
Vorher hatte ich das Stromzähler Script benutzt und meinen VIS View mit dessen Logik genutzt.
Dort werden die Werte relativ gespeichert als: Gestern / Vorgestern / Vor 3 Tagen usw...Ich würde jetzt gerne ein Script erstellen, welches in Abhängigkeit des heutigen Tages, den Wert vom jeweiligen Objekt abholt.
Also WENN heute Sonntag DANN lese Wert von Objekt 06_Samstag und schreibe diesen in die Variable Gestern
WENN heute Sonntag DANN lese Wert von Objekt 05_Freitag und schreibe diesen in die Variable Vorgestern
usw.Wie setze ich dies am besten um?
Gruß
miwi -
Hallo zusammen,
ich nutze den SourceAnalytics Adapter zur Aufzeichnung meiner Stromverbräuche.
Der Adapter erstellt Tageswerte im Format: Montag / Dienstag / Mittwoch usw..
Vorher hatte ich das Stromzähler Script benutzt und meinen VIS View mit dessen Logik genutzt.
Dort werden die Werte relativ gespeichert als: Gestern / Vorgestern / Vor 3 Tagen usw...Ich würde jetzt gerne ein Script erstellen, welches in Abhängigkeit des heutigen Tages, den Wert vom jeweiligen Objekt abholt.
Also WENN heute Sonntag DANN lese Wert von Objekt 06_Samstag und schreibe diesen in die Variable Gestern
WENN heute Sonntag DANN lese Wert von Objekt 05_Freitag und schreibe diesen in die Variable Vorgestern
usw.Wie setze ich dies am besten um?
Gruß
miwi@miwi said in Wenn Wochentag X dann Wert von Objekt Y:
Wie setze ich dies am besten um?
Vielleicht gibt das Beispiel (TypeScript) eine Idee:
let theDay = new Date("March 14, 2023 01:15:00"); getYesterdaysWeekday(theDay); theDay = new Date("March 18, 2023 01:15:00"); getYesterdaysWeekday(theDay); let toDay = new Date(); getYesterdaysWeekday(theDay); function getYesterdaysWeekday(todaysDate: Date) : number { let todaysWeekday:number = todaysDate.getDay(); let yesterdaysWeekday:number = todaysWeekday-1; if (todaysWeekday === 0) { yesterdaysWeekday = 6; } console.log("yesterday=" + yesterdaysWeekday); return yesterdaysWeekday; }Oder als Blockly:

Mit diesem Script:
let todaysWeekday = new Date().getDay(); let yesterdaysWeekday = todaysWeekday-1; if (todaysWeekday === 0) { yesterdaysWeekday = 6; } return yesterdaysWeekday;Beachte: Sonntag hat die Nummer "0" und zählt bis Samstag, zur Nummer "6"
-
Hallo zusammen,
ich nutze den SourceAnalytics Adapter zur Aufzeichnung meiner Stromverbräuche.
Der Adapter erstellt Tageswerte im Format: Montag / Dienstag / Mittwoch usw..
Vorher hatte ich das Stromzähler Script benutzt und meinen VIS View mit dessen Logik genutzt.
Dort werden die Werte relativ gespeichert als: Gestern / Vorgestern / Vor 3 Tagen usw...Ich würde jetzt gerne ein Script erstellen, welches in Abhängigkeit des heutigen Tages, den Wert vom jeweiligen Objekt abholt.
Also WENN heute Sonntag DANN lese Wert von Objekt 06_Samstag und schreibe diesen in die Variable Gestern
WENN heute Sonntag DANN lese Wert von Objekt 05_Freitag und schreibe diesen in die Variable Vorgestern
usw.Wie setze ich dies am besten um?
Gruß
miwi@miwi sagte: WENN heute Sonntag DANN lese Wert von Objekt 06_Samstag und schreibe diesen in die Variable Gestern
Vorschlag:
setState(idVor7, getState(idVor6).val, true); // usw. setState(idVor2, getState(idGestern).val, true); let jetzt = new Date(); let gestern = jetzt.setDate(jetzt.getDate() - 1); let wd = new Date(gestern).getDay(); if(wd == 0) wd = 7; let idSrc = 'xyz.0' + wd + '_' + formatDate(gestern, "WW", "de"); setState(idGestern, getState(idSrc).val, true); -
Danke für die Hilfe.
Habe das jetzt wie paul53 vorgeschlagen hat umgesetzt.
Ist zwar kein wenn dann, aber übergibt mir jeden Abend um 23:58 den Wert des Vortags in die nächst ältere Variable.schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', async function () { setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen"/*Vor 2 Tagen*/, getState("sourceanalytix.0.0_userdata__0__Energie__Stromverbrauch_Gesamt.currentYear.consumed.01_previousDay").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen"/*Vor 3 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen"/*Vor 4 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen"/*Vor 5 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen"/*Vor 6 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_7_Tagen"/*Vor 7 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen").val, true); });Gleiches mache ich jetzt noch für Wochen, Monate und Quartale und danach das ganze 7 mal für die Verschiedenen Verbräuche und Einspeisungen.
Danke für die Hilfe,
miwi
-
Danke für die Hilfe.
Habe das jetzt wie paul53 vorgeschlagen hat umgesetzt.
Ist zwar kein wenn dann, aber übergibt mir jeden Abend um 23:58 den Wert des Vortags in die nächst ältere Variable.schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', async function () { setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen"/*Vor 2 Tagen*/, getState("sourceanalytix.0.0_userdata__0__Energie__Stromverbrauch_Gesamt.currentYear.consumed.01_previousDay").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen"/*Vor 3 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen"/*Vor 4 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen"/*Vor 5 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen"/*Vor 6 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_7_Tagen"/*Vor 7 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen").val, true); });Gleiches mache ich jetzt noch für Wochen, Monate und Quartale und danach das ganze 7 mal für die Verschiedenen Verbräuche und Einspeisungen.
Danke für die Hilfe,
miwi
-
Danke für die Hilfe.
Habe das jetzt wie paul53 vorgeschlagen hat umgesetzt.
Ist zwar kein wenn dann, aber übergibt mir jeden Abend um 23:58 den Wert des Vortags in die nächst ältere Variable.schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', async function () { setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen"/*Vor 2 Tagen*/, getState("sourceanalytix.0.0_userdata__0__Energie__Stromverbrauch_Gesamt.currentYear.consumed.01_previousDay").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen"/*Vor 3 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen"/*Vor 4 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen"/*Vor 5 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen"/*Vor 6 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen").val, true); setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_7_Tagen"/*Vor 7 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen").val, true); });Gleiches mache ich jetzt noch für Wochen, Monate und Quartale und danach das ganze 7 mal für die Verschiedenen Verbräuche und Einspeisungen.
Danke für die Hilfe,
miwi
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login