NEWS
[GELÖST] Abfrage anhand der aktuellen Uhrzeit
-
Hi,
ich habe da mal eine Frage an die javascript Profis.
Ich habe folgendes script geschrieben:
function temp() { debug = true; createState('javascript.0.Wetter.Temp_akt', 0); if (compareTime('00:00', '01:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.0h.Temperature").val, true); } if (compareTime('01:00', '02:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.1h.Temperature").val, true); } if (compareTime('02:00', '03:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.2h.Temperature").val, true); } if (compareTime('03:00', '04:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.3h.Temperature").val, true); } if (compareTime('04:00', '05:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.4h.Temperature").val, true); } if (compareTime('05:00', '06:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.5h.Temperature").val, true); } if (compareTime('06:00', '07:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.6h.Temperature").val, true); } if (compareTime('07:00', '08:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.7h.Temperature").val, true); } if (compareTime('08:00', '09:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.8h.Temperature").val, true); } if (compareTime('09:00', '10:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.2h.Temperature").val, true); } if (compareTime('10:00', '11:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.10h.Temperature").val, true); } if (compareTime('11:00', '12:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.11h.Temperature").val, true); } if (compareTime('12:00', '13:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.12h.Temperature").val, true); } if (compareTime('13:00', '14:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.13h.Temperature").val, true); } if (compareTime('14:00', '15:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.14h.Temperature").val, true); } if (compareTime('15:00', '16:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.15h.Temperature").val, true); } if (compareTime('16:00', '17:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.16h.Temperature").val, true); } if (compareTime('17:00', '18:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.17h.Temperature").val, true); } if (compareTime('18:00', '19:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.18h.Temperature").val, true); } if (compareTime('19:00', '20:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.19h.Temperature").val, true); } if (compareTime('20:00', '21:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.20h.Temperature").val, true); } if (compareTime('21:00', '22:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.21h.Temperature").val, true); } if (compareTime('22:00', '23:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.22h.Temperature").val, true); } if (compareTime('23:00', '24:00', "between", null)) { setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.23h.Temperature").val, true); } } // Ende temp() schedule('* * * * *', temp);Ziel des script ist es, mit der aktuellen Uhrzeit das passende state "Temperature" zu finden und in mein neues state "Temp_akt" zu schreiben.
Nun meine Frage, kann mann das vereinfachen bzw. anders Lösen?
Bin noch ganz am Anfang was javascript betrifft… ;-)
Gruß,
Tom
-
Der ID-String für die Quelle kann aus der Stunde der aktuellen Uhrzeit und einem String davor und einem danach gebildet werden.
const start = 'daswetter.0.hourly.0d.'; const end = 'h.Temperature'; createState('javascript.0.Wetter.Temp_akt', 0, {type: 'number', unit: '°C'}); function temp() { var hour = new Date().getHours(); setState("javascript.0.Wetter.Temp_akt", getState(start + hour + end).val, true); } schedule('* * * * *', temp); // Weshalb jede Minute ? -
Guten Morgen Paul,
vielen lieben Dank für die tolle Unterstützung!
Das kann ich noch für viele Abfragen nutzen und ich habe wieder was neues gelernt. :D
Die Abfrage im Minutentakt hatte ich nur aus Testzwecken so drin. ;)
Was ich noch nicht so ganz bei cron verstehe, ist der Start zu jeder volle Stunde, also 14, 15 und 16:00Uhr, ist das dann "0 * * * *" oder sagt das dann nur führe es jede Stunde nach cron Start aus?
Also nochmals vielen Dank für die Unterstützung.
Schöne Ostern noch und Gruß,
Tom
-
ist der Start zu jeder volle Stunde, also 14, 15 und 16:00Uhr, ist das dann "0 * * * *" `
Ja. Ich würde allerdings die Abfrage eine Minute später machen: "1 * * * *".Setze bitte das Thema auf gelöst (im Betreff des ersten Beitrags).
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
