Probleme mit Time cron

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
winni
Beiträge: 62
Registriert: 30. Mär 2019 00:24
Answers: 0

Probleme mit Time cron

Beitrag von winni »

Guten Abend,

möchte ein paar meiner Shellys über Time cron fahren lassen. Die Shellys reagieren aber 0 auf die von mir erstellte rule.

Was mache ich falsch?

item:

Code: Alles auswählen

Rollershutter Shellyswitch25007AE2Roller "Jakob"           (RolladenKinder)  {channel="mqtt:topic:3448a27a:shelly:Shellyswitch25007AE2_roller"}
Gruppen item:

Code: Alles auswählen

Group:Rollershutter RolladenKinder "Rolladen Kinder"
rule:

Code: Alles auswählen

rule "Rolladen Kinder runter"
 
when
Time cron "0 30 19 ? * MON-FRI"    
then
RolladenKinder.sendCommand(85)    
end
Andere Sellys laufen bei mir über Astro und funktionieren einwandfrei.

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Probleme mit Time cron

Beitrag von udo1toni »

Versuche es mal so:

Code: Alles auswählen

rule "Rolladen Kinder runter"
when
    Time cron "0 30 19 ? * MON-FRI"    
then
    RolladenKinder.forEach[ r | r.sendCommand(85) ]
end
Ich gehe davon aus, dass die Steuerung der einzelnen Items über sendCommand(Zahl) funktioniert.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

winni
Beiträge: 62
Registriert: 30. Mär 2019 00:24
Answers: 0

Re: Probleme mit Time cron

Beitrag von winni »

Das sendCommand über die Zahl funktioniert. Vielen dank! Werde ich sofort ausprobieren, wenn ich wieder zu Hause bin.

Benutzeravatar
webguards
Beiträge: 56
Registriert: 5. Jun 2018 17:06
Answers: 0

Re: Probleme mit Time cron

Beitrag von webguards »

Code: Alles auswählen

rule	"Wecker DI-FR 7:00-8:30 30min"
when	Time cron "0 0,30 7,8 ? * 2,3,4,5"
then	if(gPres.state == ON){ 
		echo_wz_tts.sendCommand("Guten Morgen. Es ist zeit zum Aufstehen.")
		Thread::sleep(10000) 
		echo_wz_playAlarmSound.sendCommand( "ECHO:system_alerts_soothing_01")
	}
end
Ich habe so meinen Wecker realisiert von 7:00 bis 8:30 im 30min Takt Dienstag bis Freitag und auch nur wenn ich nicht zuhause bin, denn den internen Wecker von Alexa interessiert es nicht ob du daheim bist.
=== Das Kuriose an SMARTHOME, man wird nie fertig ;) ===

Thin Client HP als Multifunktionsserver (Docker) | 2x Echo Dot als SST und TTS | Fritzbox | FritzDect | KODI MediaCenter | Samsung TV und Samsung HTS | fireTV via adb | CasaControl mit 20 Aktoren via EXEC | Xiaomi Gateway mit mehrere Tür- und Temperatursensoren | Broadlink RM PRO | 80% regelbasiert Automatisiert

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Probleme mit Time cron

Beitrag von udo1toni »

Time cron kann auch Wertebereiche und Intervalle ;)

Code: Alles auswählen

Time cron "0 0,30 7,8 ? * 2,3,4,5"
entspricht

Code: Alles auswählen

Time cron "0 0/30 7,8 ? * 2-5"
Was aber eine schlechte idee ist, ist der Thread::sleep(10000). Damit wird der Thread 10 Sekunden lang blockiert und steht nicht für andere Aufgaben zur Verfügung. Sauberer ist es, einen Timer zu verwenden:

Code: Alles auswählen

createTimer(now.plusSeconds(10), [ | echo_wz_playAlarmSound.sendCommand( "ECHO:system_alerts_soothing_01") ])
Diese Zeile ersetzt Thread::sleep() und die nachfolgende Anweisung.
Der Unterschied ist, dass openHAB nun das Lambda abspeichert und im Scheduler einen Eintrag für den gewünschten Ausführungszeitpunkt definiert. Die Rule wird innerhalb weniger Millisekunden beendet, nach 10 Sekunden wird der Alarmsound gespielt.

Bei dieser Rule spielt es erst mal keine Rolle, da die Rule maximal einmal pro 30 Minuten getriggert wird, so dass der Thread sicher schon abgelaufen ist. In anderen Rules kann das aber dazu führen, dass das System keine Rules mehr ausführt, man sollte sich Thread::sleep() mit Werten über 500 Millisekunden also gar nicht erst angewöhnen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
webguards
Beiträge: 56
Registriert: 5. Jun 2018 17:06
Answers: 0

Re: Probleme mit Time cron

Beitrag von webguards »

Danke :) ich habe es in meinen RULES verarbeitet
=== Das Kuriose an SMARTHOME, man wird nie fertig ;) ===

Thin Client HP als Multifunktionsserver (Docker) | 2x Echo Dot als SST und TTS | Fritzbox | FritzDect | KODI MediaCenter | Samsung TV und Samsung HTS | fireTV via adb | CasaControl mit 20 Aktoren via EXEC | Xiaomi Gateway mit mehrere Tür- und Temperatursensoren | Broadlink RM PRO | 80% regelbasiert Automatisiert

Antworten