Voorbeeld,
het is nu 1 december 2022, 19:30
Mijn vergelijking geeft dan
1 december 2022, 5:00 < 1 december 2022, 19:30 < 1 december 2022, 23:30
Ofwel, 5 uur `s oc
htends moet eerder zijn dan de
huidige tijd (

) en
het moet vroeger zijn dan 23:30 (

)
Dus
het resultaat is
true
Nu de jouwe:
1 december 2022, 5:00 > 1 december 2022, 19:30 > 1 december 2022, 23:30
Om 4:30 is 5:00 later dan de
huidige tijd (

) maar is de
huidige tijd niet later dan 23:30 (

)
Om 19:30 is 5:00 niet later dan de
huidige tijd (

) en is de
huidige tijd niet later dan 23:30 (

)
Om 23:34 is 5:00 niet later dan de
huidige tijd (

) maar is de
huidige tijd wel later dan 23:30 (

)
In alle gevallen is minstens één van de twee
false dus is je
hele statement
false
In mijn variant deed ik de c
heck voor de periode waarin je niet geïnteresseerd bent, dus overdag. Als dan de trigger waar was, gaf ik
this.state terug, wat de oude state van voor de trigger is. Er verandert dan dus niets.
Als
het niet overdag was, dus de vergelijking
false was, dan gaf ik de tijd van de trigger als timestamp weer.
Zo zorg ik er dus ook voor dat de oude state be
houden blijft als
hij overdag triggert. In jouw variant krijgt de sensor een lege state als er niet aan je if statement voldaan is.
Als je juist de tijd buiten
het tijdsblok 5:00 - 23:30 wil
hebben, kun je
or gebruiken:
Django/Jinja:
1
| {% if today_at('5:00') > now() or now() > today_at('23:30') %} |
of not:
Django/Jinja:
1
| {% if not today_at('5:00') < now() < today_at('23:30') %} |
[
Voor 7% gewijzigd door
TheFes op 01-12-2022 21:52
]