Seite 5 von 5

Re: Rule nach bestimmter Uhrzeit

Verfasst: 6. Okt 2023 08:11
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

Re: Rule nach bestimmter Uhrzeit

Verfasst: 6. Okt 2023 08:37
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 😊

Re: Rule nach bestimmter Uhrzeit

Verfasst: 15. Nov 2023 05:39
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 !

Re: Rule nach bestimmter Uhrzeit

Verfasst: 15. Nov 2023 08:10
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

Re: Rule nach bestimmter Uhrzeit

Verfasst: 15. Nov 2023 09:05
von Innocent
ColorHsb und ColorGain sind die Items.
Das Anführungszeichen ist korrekt, rule funktioniert seither ohne die zwei Zeilen vor "end".

Re: Rule nach bestimmter Uhrzeit

Verfasst: 15. Nov 2023 09:14
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

Re: Rule nach bestimmter Uhrzeit

Verfasst: 15. Nov 2023 10:11
von Innocent
Vielen Dank, ich denke das ist die Lösung meines Problems.
Werde ich testen und berichten.

Re: Rule nach bestimmter Uhrzeit

Verfasst: 15. Nov 2023 17:45
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 !

Re: Rule nach bestimmter Uhrzeit

Verfasst: 15. Nov 2023 19:29
von PeterA
Gerne!