Seite 1 von 1

Regeln nur zu bestimmtem Zeitraum aktiv

Verfasst: 9. Jan 2018 22:36
von gizzmo112
Guten Abend zusammen,

ich bin noch ganz neu in der Welt von OH und erst seit Weihnachten werkelt mein Raspberry mit openhabian bei mir zu Hause und ich arbeite mich langsam in die Programmierung meiner System ein.
Bindings, Items, etc. hab ich so langsam im Griff, nur die Rules machen mir als Programmierlaie noch Probleme....

Ich bräuchte bei folgenden Aufgabe Hilfe: ich möchte wenn einen bestimmte Steckdose in einem bestimmten Zeitraum (von abend 23:00 bis morgens 5:00 Uhr eingeschaltet wird ein Timer initiert wird, der die Dosen noch einer Stunde automatisch wieder ausschaltet. Ich habe mir aus anderen Anleitungen schon etwas zusammengebaut, das aber leider nicht funktioniert...

rule "Timer Radio"

when

Item Steckdose_OG1 changed to ON

then
sendCommand(Steckdose_OG1, ON)
if (now.getHourOfDay() >23 && now.getHourOfDay() <5)
createTimer(now.plusMinutes(60)) [| sendCommand(Steckdose_OG1, OFF) ]
end


es liegt wohl an meiner if Bedingung und hier bräuchte ich eure Hilfe wie ich die Bedingung richtig formulieren muss.

Bitte entschuldigt die wahrscheinlich triviale Frage, aber ich bin noch ganz am Anfang und hab nur wenig Programmiererfahrung.

Danke im Voraus für eure Hilfe,

Stefan

Re: Regeln nur zu bestimmtem Zeitraum aktiv

Verfasst: 10. Jan 2018 08:07
von seppy
Hi,

Dein Rule sieht doch gar nicht schlecht aus.

Code: Alles auswählen

rule "Timer Radio"

when
 Item Steckdose_OG1 changed to ON
then
	//Macht keinen Sinn, den die Regel wird ja nur beim Anschalten der Steckdose ausgeführt
	//sendCommand(Steckdose_OG1, ON)

if (now.getHourOfDay() >= 23 && now.getHourOfDay() <= 5)
	createTimer(now.plusMinutes(60)) [| 
		Steckdose_OG1.sendCommand(OFF) 
	] 
end
So sollte die Regel funktionieren. Wenn nicht musst Du Logzeilen einbauen!

Grüße,
Seppy

Re: Regeln nur zu bestimmtem Zeitraum aktiv

Verfasst: 10. Jan 2018 09:38
von gizzmo112
Hallo Seppy,

danke für die schnelle Antwort, werde es heute abend gleich ausprobieren.

Gruß, Stefan

Re: Regeln nur zu bestimmtem Zeitraum aktiv

Verfasst: 13. Jan 2018 09:40
von hr3
Der Korrektheit halber, denke ich es sollte

Code: Alles auswählen

if (now.getHourOfDay() >= 23 || now.getHourOfDay() <= 5)
heißen.

Für solche Zwecke konzipiert ist das Expire-Binding
https://docs.openhab.org/addons/binding ... eadme.html
Brauchst in deinen Fall dann jeweils einen Button mit und einen ohne die Ausschaltautomatik.

Re: Regeln nur zu bestimmtem Zeitraum aktiv

Verfasst: 13. Jan 2018 10:11
von seppy
Hi,
in diesem Fall hast Du Recht [emoji106]


Gesendet von iPhone mit Tapatalk

Re: Regeln nur zu bestimmtem Zeitraum aktiv

Verfasst: 13. Jan 2018 10:32
von hr3
:( nur in diesem?

Re: Regeln nur zu bestimmtem Zeitraum aktiv

Verfasst: 13. Jan 2018 11:14
von seppy
Hi,
ja nur in diesem ... da die Bedingung ja nur nach 23 Uhr greifen soll. In anderen Fällen brauchst Du das UND. Hier das Beispiel zwischen 12 und 17.00 Uhr:

Code: Alles auswählen

if (hour >= 12 && hour <= 17){
}
13.00 Uhr WAHR
18.00 Uhr UNWAHR

Code: Alles auswählen

if (hour >= 12 || hour <= 17){
}
13.00 Uhr WAHR
18.00 Uhr WAHR da größer als 12.00 Uhr

Oder habe ich einen Knoten im Kopf??

Grüße,
Seppy

Re: Regeln nur zu bestimmtem Zeitraum aktiv

Verfasst: 13. Jan 2018 11:32
von hr3
Logisch, sollte ja auch nur ein Wortspiel bezogen auf " in diesem" sein. :lol:
Ich finde es übrigens sehr schade, dass in deutschen Forum so wenig Aktivität und so wenig Beteiligung ist.
Deswegen ein ehrliches danke an Euch, die versuchen es aufzubauen, bzw am Leben zu erhalten.

Re: Regeln nur zu bestimmtem Zeitraum aktiv

Verfasst: 13. Jan 2018 13:00
von seppy
Ging mir genauso... deshalb haben wir ja vor einem Jahr hier gestartet [emoji6]


Gesendet von iPhone mit Tapatalk