NEWS
[Frage] Datenpunkt Name dynamisch ermitteln
-
Hallo Gemeinde,
Ich benötige Datenpunktnamen pro Jahr und pro Monat.
Das sieht dann so aus:
Erzeugt wird die Struktur am Monatsanfang mit diesem Script:
schedule("55 0 * * *", function () { Jahr = ('' + formatDate(new Date(), "JJJJ")); Monat = (new Date().getMonth() + 1); Pfad1 = ['javascript.0.Heizung.Heizgradtage.',Jahr,'.',Monat,'.','Gradtageszahl'].join(''); createState(Pfad1, { name: 'Gradzageszahl_monatlich', desc: 'Aufsummierung aktueller Monat', type: 'number', role: 'value', def: 0 });
Das funktioniert auch soweit, aber…
Ich berechne jeden Tag mit einem zweiten Script am Tagesende einen Tageswert den ich zu dem Monatswert dazu addieren will.
Wie kann ich jetzt dynamisch den notwendigen Datenpunktnamen erzeugen um so einen Wert mit Javascript wieder lesen?
SO funktioniert es jedenfalls nicht:
! ````
schedule("59 23 * * ", function () {
// schedule("/5 * * * * *", function () {GTZ = 0;
if (getState("javascript.0.Wetter.Tageshoechsttemperatrur"/Tageshoechsttemperatrur/).val < getState("javascript.0.Heizung.Heizgradtage.Heizgrenze").val) {
GTZ = 20 - getState("javascript.0.Wetter.Tageshoechsttemperatrur"/Tageshoechsttemperatrur/).val;
} else {
GTZ = 0;
}
Jahr = ('' + formatDate(new Date(), "JJJJ"));
Monat = ('' + (new Date().getMonth() + 1));
Gradtageszahl_Monat = ['javascript.0.Heizung.Heizgradtage.',Jahr,'.',Monat,'.','Gradtageszahl'].join('');
Heiztage_Monat = ['javascript.0.Heizung.Heizgradtage.',Jahr,'.',Monat,'.','Heiztage'].join('');
Gradtageszahl_Jahr = ['javascript.0.Heizung.Heizgradtage.',Jahr,'.','Gradtageszahl'].join('');
Heiztage_Jahr = ['javascript.0.Heizung.Heizgradtage.',Jahr,'.','Heiztage'].join('');! setState(Gradtageszahl_Monat, (getState(Gradtageszahl_Monat).val + GTZ));
! ````