Nein, der Trigger ist vollkommen in Ordnung.
Der Trigger richtet sich nach der Systemzeit, nicht nach dem eventuell installierten NTP Binding. Es wird also einfach so sein, dass die Uhr Deines Rechners vor geht.
Nun wäre die Frage, welche Plattform du nutzt.
- Raspberry Pi mit aktuellem Raspberry Pi OS (z.B. openHABian Image): Eigentlich sollte das Systemdie Uhrzeit automatisch abgleichen. Schau bitte mal, was der Befehl
ausgibt. Der wichtigste Teil wäre, dass da NTP service: active steht. Ist das nicht der Fall, kannst Du versuchen, mittels
den Abgleich zu aktivieren.
- Ein ältere Version des Betriebssystems, welche kein timedatectl nutzt: ntpd nachinstallieren und einrichten

- ganz was anderes: Sag an, welcehs System Du nutzt
Selbst Windows bringt einen NTP Client mit, der aber default auf einen Timeserver in USA schaut. Auch wenn das NTP-Protokoll Laufzeiten berücksichtigen kann, ist das in Deutschland die denkbar schlechteste Wahl... Außerdem funktioniert der Service nicht zuverlässig (zumindest sind das unsere Erfahrungen im professionellen Umfeld, wir haben auf allen relevanten Rechnern extra Clients, um die Zeit zu synchronisieren).
Es ist übrigens ein ganz schlechte Idee, Thread::sleep() mit Zeiten wesentlich über 500 Millisekunden einzusetzen. Unter openHAB3 ist das etwas entschärft, aber dennoch schlechter Programmierstil. Unter openHAB1 und 2 kannst Du das System damit quasi zum Stillstand bringen.
Die vorhandene Rule, korrigiert:
Code: Alles auswählen
rule "Uhrzeit Ansage"
when
Time cron "32 0 7-22 * * ?" // um x:00:32, täglich (x zwischen 7 und 22 einschließlich
then
if(ZuhausePresence.state != ON) // falls niemand zuhause
return; // Abbruch
val String time = AktuelleZeit.state.format("%1$tH:%1$tM")
GoogleZeit.postUpdate(time)
say("Es ist jetzt " + time , "picotts:deDE", "chromecast:audiogroup:AlleGoogleSpeaker")
createTimer(now.plusSeconds(8),[|
GoogleHomeSpeaker_Gruppe_Stop.sendCommand(ON)
])
end
Die Rule triggert einfach 32 Sekunden zu spät, und zwar nur von 7 und 22 Uhr. Natürlich ist die Variante mit eigenem Item auch möglich.
Bedingungen zum Ausführen: Es bietet sich an, die Rule abzubrechen, statt alle Befehle in einen Block zu packen. Vorteil: Man kann diverse Abbruchbedingungen hintereinander packen, dabei erhöht sich aber nicht die Schachtelungstiefe, die Rule wird besser lesbar.
Wenn schon eine lokale Variable (oder Konstante) verwendet wird, ist es komplett sinnfrei, die Ausgabe von einem Item abhängig zu machen, in das der Wert zuvor kopiert wurde. die Konstante hat immer den korrekten Wert, man muss also nicht extra Pausen einlegen.
Zum Abschalten ist ein einfacher Timer zielführend.
Aber wie oben erwähnt, wäre enie Rule, die pünktlich triggert im Zusammenspiel mit einer korrekt gestellten Rechneruhr sauberer

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet