Nein.
Das Problem ist, dass Du darauf prüfst, dass die Minute der Stunde gleichzeitig größer als 44 und kleiner als 31 ist.

das ist nie der Fall. Korrekt geht es so:
Code: Alles auswählen
(now.getDayOfWeek < 6 && now.getMinuteOfDay > 44 + 4*60 && now.getMinuteOfDay < 31+5*60)
getMinuteOfDay liefert die Anzahl Minuten seit 0:00 Uhr des Tages.
Alternativ ginge auch soetwas:
Code: Alles auswählen
(now.getDayOfWeek < 6 && now.isAfter(now.withTime(4,45,0,0))&& now.isBefore(now.withTime(5,30,0,0)))
withTime() erwartet vier Integer Werte für Stunde, Minute, Sekunde und Millisekunde.
Eine weitere Variante wäre noch die Definition eines Zeitraums:
Code: Alles auswählen
if(now.getDayOfWeek < 6&& (new Interval(now.withTime(4,45,0,0), now.withTime(5,30,0,0)).contains(now)))
Allerdings scheint mir die erste Variante die "einfachste" zu sein, im Sinne der Verständlichkeit.
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.9 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte