Aktuelle Zeit auswerten/vergleichen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
HiG
Beiträge: 136
Registriert: 16. Jun 2021 13:39
Answers: 0

Aktuelle Zeit auswerten/vergleichen

Beitrag 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

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Aktuelle Zeit auswerten/vergleichen

Beitrag 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.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
HiG
Beiträge: 136
Registriert: 16. Jun 2021 13:39
Answers: 0

Re: Aktuelle Zeit auswerten/vergleichen

Beitrag 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

Benutzeravatar
HiG
Beiträge: 136
Registriert: 16. Jun 2021 13:39
Answers: 0

Re: Aktuelle Zeit auswerten/vergleichen

Beitrag von HiG »

Manchmal hilft ne Nacht drüber zu schlafen... ;-)

Code: Alles auswählen

if(now.getHour > 17 || now.getHour <= 22){
... das funzt erstmal für mich

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Aktuelle Zeit auswerten/vergleichen

Beitrag von udo1toni »

Code: Alles auswählen

if(now.getHour > 17 || now.getHour <= 22){
kann man kürzer schreiben:

Code: Alles auswählen

if(true)
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:

Code: Alles auswählen

if(now.getHour > 17 && now.getHour < 23){
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
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Aktuelle Zeit auswerten/vergleichen

Beitrag 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?
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
HiG
Beiträge: 136
Registriert: 16. Jun 2021 13:39
Answers: 0

Re: Aktuelle Zeit auswerten/vergleichen

Beitrag 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)){

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Aktuelle Zeit auswerten/vergleichen

Beitrag 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
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten