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).
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
