Rule nach bestimmter Uhrzeit

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

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

Re: Rule nach bestimmter Uhrzeit

Beitrag von udo1toni »

Na, das war schon immer falsch :) hat aber zumindest ein bisschen funktioniert :).

Die hier wichtige Änderung von openHAB2 nach openHAB4: openHAB2 nutzte noch Joda Time, ab openHAB3 (und damit auch openHAB4) musst Du JavaTime verwenden.
JavaTime nutzt an vielen Stellen identische oder extrem ähnliche Aufrufe, an anderen Stellen unterscheiden sie sich aber, teils gravierend.

Hier wäre die Method .getHourOfDay, welche schon immer(!) eine Integer Zahl geliefert hat, konkret den Stundenanteil einer Digitalanzeige im 24-Stunden-Format (also 0 - 23). Deine Rule hat also schon immer erst nach 21:00:00 Uhr wie erwartet funktioniert.
In JavaTime heißt die Methode nun .getHour, Du musst also den Abbruch entsprechend anpassen:

Code: Alles auswählen

if(now.getHour <= 20) // falls vor 21 Uhr
Wenn Du hingegen Wert auf die halbe Stunde legst, hättest Du unter OH2 .getMinuteOfDay verwenden und mit 20 * 60 + 31 vergleichen müssen. Ab OH3 müsste now.get(Chronofield.MINUTE_OF_DAY) den gewünschten Integer Wert liefern, also

Code: Alles auswählen

if(now.get(Chronofield.MINUTE_OF_DAY) < 1231) // falls vor 20:31:00 Uhr, 20 * 60 + 31
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Innocent
Beiträge: 202
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Rule nach bestimmter Uhrzeit

Beitrag von Innocent »

Ok. Das mit der halben Stunde, bzw 31 Minuten leuchtet mir ein.
Wieso aber hat es seither funktioniert? 🤔

Oder ist es nie aufgefallen, da seither immer nach 21.00 Uhr? 🤔
Das wäre möglich...

Das setze ich heute Abend mal um. Danke 😊
Openhab 2 auf RaspberryPi 4

Innocent
Beiträge: 202
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Rule nach bestimmter Uhrzeit

Beitrag von Innocent »

Guten Morgen.

Ich möchte einen LED Streifen morgens benutzen um ein Zimmer zu beleuchten und abends als Fernsehbeleuchtung, also morgens zum Beispiel 100% und abends nur 10 %.

Meine Rule wird mit Fehlern benannt.
Was mache ich falsch ?

Code: Alles auswählen

rule "Uhrzeit Led Streifen an"

when  
    Time cron"0 00 19  * * ? "		
then
  if(FernsehlichterAutomatik1.state != ON)
        return;  
    LEDStreifenPower.sendCommand(ON)
    ColorHsb 4,100,100
    ColorGain 10
end


Die Werte von ColorHsb und ColorGain hatte ich auch schon in Klammern gesetzt, jedoch auch ohne Erfolg.

Vielen Dank wie immer !
Openhab 2 auf RaspberryPi 4

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Rule nach bestimmter Uhrzeit

Beitrag von PeterA »

Hallo.

Also 1.:
Zwischen cron und dem ersten Anführungszeichen gehört glaube ich ein Leerzeichen.

2.:
Die Color Werte können so nicht funktionieren.
Ich nutze sowas zwar nicht aber da fehlt das Item welches die
Werte empfangen soll.

Leider habe ich kein Codebeispiel zu Hand.

Gruß Peter
- OpenHab 2.4
#PWRUP

Innocent
Beiträge: 202
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Rule nach bestimmter Uhrzeit

Beitrag von Innocent »

ColorHsb und ColorGain sind die Items.
Das Anführungszeichen ist korrekt, rule funktioniert seither ohne die zwei Zeilen vor "end".
Openhab 2 auf RaspberryPi 4

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Rule nach bestimmter Uhrzeit

Beitrag von PeterA »

Hab hier im Forum einen Betrag gefunden:

viewtopic.php?t=6310

Denke da kannst Du sehen wie man in einer Rule diese Werte sendet.

Gruß Peter
- OpenHab 2.4
#PWRUP

Innocent
Beiträge: 202
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Rule nach bestimmter Uhrzeit

Beitrag von Innocent »

Vielen Dank, ich denke das ist die Lösung meines Problems.
Werde ich testen und berichten.
Openhab 2 auf RaspberryPi 4

Innocent
Beiträge: 202
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Rule nach bestimmter Uhrzeit

Beitrag von Innocent »

Hallo.

Meine Rule sieht jetzt so aus:

Code: Alles auswählen

rule "Uhrzeit Led Streifen an"

when  
    Time cron"0 00 19  * * ? "		
then
  if(FernsehlichterAutomatik1.state != ON)
        return;  
    LEDStreifenPower.sendCommand(ON)
    ColorHsb.sendCommand("4,100,100")
    ColorGain.sendCommand("10")
end
Funktioniert !!!

Dankeschön !
Openhab 2 auf RaspberryPi 4

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Rule nach bestimmter Uhrzeit

Beitrag von PeterA »

Gerne!
- OpenHab 2.4
#PWRUP

Antworten