ich habe das hier gefunden, soll wohl State of the Art sein um die Tageszeit zu bestimmen:
https://community.openhab.org/t/design- ... -day/15407
soweit läuft ja auch alles fein.
Meine Fragen beziehen sich auf diese Rule
Code: Alles auswählen
when
System started or
Channel 'astro:sun:home:rise#event' triggered START or
Channel 'astro:sun:home:set#event' triggered START or
Channel 'astro:sun:minus90:set#event' triggered START or
Channel 'astro:sun:minus120:set#event' triggered START or
Channel 'astro:sun:minus150:set#event' triggered START or
Time cron "0 1 0 * * ? *" or
Time cron "0 0 6 * * ? *" or
Time cron "0 0 23 * * ? *"
then
logInfo(logName, "Calculating time of day...")
val long morning_start = now.withTimeAtStartOfDay.plusHours(6).millis
val long day_start = (vSunrise_Time.state as DateTimeType).getZonedDateTime.toInstant.toEpochMilli
val long evening_start = (vSunset_Time.state as DateTimeType).getZonedDateTime.toInstant.toEpochMilli
val long night_start = now.withTimeAtStartOfDay.plusHours(23).millis
val long bed_start = now.withTimeAtStartOfDay.millis
// Update when changing the cron triggers above change
vMorning_Time.postUpdate(now.withTimeAtStartOfDay.plusHours(6).toString)
vNight_Time.postUpdate(now.withTimeAtStartOfDay.plusHours(23).toString)
vBed_Time.postUpdate(now.withTimeAtStartOfDay.toString)
val long afternoon_start = (vEvening_Time.state as DateTimeType).getZonedDateTime.toInstant.toEpochMilli
var curr = "UNKNOWN"
switch now {
case now.isAfter(morning_start) && now.isBefore(day_start): curr = "MORNING"
case now.isAfter(day_start) && now.isBefore(afternoon_start): curr = "DAY"
case now.isAfter(afternoon_start) && now.isBefore(evening_start): curr = "AFTERNOON"
case now.isAfter(evening_start) && now.isBefore(night_start): curr = "EVENING"
case now.isAfter(night_start): curr = "NIGHT"
case now.isAfter(bed_start) && now.isBefore(morning_start): curr = "BED"
}
logInfo(logName, "Calculated time of day is " + curr)
vTimeOfDay.sendCommand(curr)
end
Wie kann ich Zeitpunkte verschieben ?
Bsp : Ich möchte nicht den Sonnenaufgang als Start MORNING nehmen sondern Dämmerung ende, also {channel="astro:sun:home:astroDawn#end"}
und wenn ich mir diese Werte anzeigen lasse sind diese leer , warum ?
DateTime vNight_Time (Astro)
DateTime vBed_Time (Astro)
Und warum erreicht er nie den Status "AFTERNOON"
Kann mir das jemand erklären?
Vielen DANK schon mal im Voraus