Ich würde das ganze, der Übersichtlichkeit wegen, auch etwas auseinanderziehen.
In Etwas so (ACHTUNG! Nicht einfach kopieren, ist schnell zusammenkopiert! Und ob die Texte zu den Zeiten passen...)
Code
val String FeiertagName = Ephemeris.getNextBankHoliday()
val long TagebisFeiertag = Ephemeris.getDaysUntil(FeiertagName)
val heuteWochenende = Ephemeris.isWeekend(0)
val boolean heuteArbeitstag = TagebisFeiertag > 0 && heuteWochenende == false
val boolean esIstZwischen6Und20Uhr = now.getHour() > 5 && now.getHour() < 20
var boolean esIstZwischen20Und6Uhr = now.getHour() < 6 || now.getHour() > 19
var boolean esIstZwischen10Und20Uhr = now.getHour() > 9 && now.getHour() < 20
var boolean esIstZwischen20Und10Uhr = now.getHour() < 10 || now.getHour() > 19
if(heuteArbeitstag)
{
if (esIstZwischen6Und20Uhr)
{
taglicht.sendCommand(ON)
}
if (esIstZwischen20Und6Uhr && Timer_TVstate.state == OFF)
{
nachtlicht.sendCommand(ON)
}
if (esIstZwischen20Und10Uhr && Timer_TVstate.state == ON)
{
taglicht.sendCommand(ON)
}
}
else // freier Tag
{
//...
}
Alles anzeigen