Seite 1 von 1
Aktuelle Zeit auswerten/vergleichen
Verfasst: 30. Dez 2021 20:51
von HiG
Hallo...
ich mchte gerne nach der Auslösung eines Präsenzmelders auf die Uhrzeit vergleichen. Sinn und Zweck ist es...das ich nachts (23:00-06:00) bei Bewegungen auf dem Flur nur eine Minimalbeleuchtung einschalte. Abends (im Winter 17:00-22:00) aber durchaus volle Beleuchtung
Im groben
Wenn aktuelle Uhrzeit zwischen 23:00 und 06:00 dann setze Lampe auf 10% sonst wenn Zeit zwischen 17-22 dann auf 100%
Mein Problem ist...wie vergleiche ich die Uhrzeiten am besten mit etwas wie "between". Aber ich bin gerne für andere Ideen offen
Re: Aktuelle Zeit auswerten/vergleichen
Verfasst: 30. Dez 2021 22:54
von int5749
Wie sieht denn Deine Rule bisher aus?? Mit now.localime.getHourofDay() sollte die aktuelle Stunde geliefert werden. Dies kannst Du dannmit >= oder <= vergleichen.
Re: Aktuelle Zeit auswerten/vergleichen
Verfasst: 30. Dez 2021 23:02
von HiG
int5749 hat geschrieben: ↑30. Dez 2021 22:54
Wie sieht denn Deine Rule bisher aus??
Echt? #totlach ok....
Code: Alles auswählen
rule "Body Sensor test2"
when
Item eg_fu_bs_motion changed
then
logInfo("test 00", eg_fu_bs_motion.state.toString)
if (eg_fu_bs_motion.state.toString=='ON'){
// Tue irgendwas mit Zeiten
logInfo("test 01", eg_fu_bs_motion.state.toString)
}
if (eg_fu_bs_motion.state.toString=='OFF'){
logInfo("test 02", eg_fu_bs_motion.state.toString)
}
logInfo("test 03", eg_fu_bs_motion.state.toString)
end
int5749 hat geschrieben: ↑30. Dez 2021 22:54
Mit now.localime.getHourofDay()
Ich möchte aber später evtl. auch 23:27 als Startzeit erkören.... also komm ich mit der reinen Stunde nicht wirklich viel weiter
Re: Aktuelle Zeit auswerten/vergleichen
Verfasst: 31. Dez 2021 08:52
von HiG
Manchmal hilft ne Nacht drüber zu schlafen...
... das funzt erstmal für mich
Re: Aktuelle Zeit auswerten/vergleichen
Verfasst: 31. Dez 2021 13:44
von udo1toni
kann man kürzer schreiben:
Die Abfrage bedeutet übersetzt:
Code: Alles auswählen
wenn(aktuelle Stunde gößer als 17 ODER aktuelle Stunde kleiner oder gleich 22)
Die Bediingung als ganzes ist also stets erfüllt.
Vermutlich suchst Du stattdessen dies hier:
Bedeutet:
Code: Alles auswählen
wenn(aktuelle Stunde größer 17 UND aktuelle Stunde kleiner 23) -> zwischen 18:00:00 Uhr und 23:00:00 Uhr
Re: Aktuelle Zeit auswerten/vergleichen
Verfasst: 31. Dez 2021 13:47
von int5749
HiG hat geschrieben: ↑30. Dez 2021 23:02
Echt? #totlach ok....
Verstehe den Witz nicht, denn mit der Rule kann man Dir ggfs auch Optimierungpotenzial zeigen, aber OK.
HiG hat geschrieben: ↑30. Dez 2021 23:02
Ich möchte aber später evtl. auch 23:27 als Startzeit erkören.... also komm ich mit der reinen Stunde nicht wirklich viel weiter
Code: Alles auswählen
((now.toLocalTime.getHour() == 23) && (now.toLocalTime.getMinute() == 27))
Hier muss natürlich Stunde/Minute exakt stimmen, wenn Du die Rule tiggerst oder wolltest Du um 23:27 per Cron triggern?
Re: Aktuelle Zeit auswerten/vergleichen
Verfasst: 31. Dez 2021 14:33
von HiG
udo1toni hat geschrieben: ↑31. Dez 2021 13:44
Vermutlich suchst Du stattdessen dies hier:
Natürlich. Tomaten auf den Augen
Habs jetzt so gelöst
if ((now.getHour >=17 && now.getMinute >=1) && (now.getHour<=22&& now.getMinute <=27)){
Re: Aktuelle Zeit auswerten/vergleichen
Verfasst: 31. Dez 2021 22:50
von udo1toni
Denk noch mal drüber nach… Wenn Du zwischen 17:01 und 22:28 reagieren willst, ist die von Dir beschriebene Bedingung falsch. Richtig wäre stattdessen:
Code: Alles auswählen
if((now.getHour == 17 && now.getMinute > 0) || (now.getHour > 17 && now.getHour < 22) || (now.getHour == 22 && now.getMinute < 28))
Ansonsten matcht die Bedingung nämlich zwischen 17 und 23 Uhr jeweils zwischen xx:01 und xx:28…
Gesendet von iPad mit Tapatalk