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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden