gelöst: Rule: Lichtsteuerung mit 2 variablen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
atk69
Beiträge: 98
Registriert: 15. Jan 2019 19:07
Answers: 1
Wohnort: Weil am Rhein

gelöst: Rule: Lichtsteuerung mit 2 variablen

Beitrag von atk69 »

Hallo zusammen

seit Tagen bin ich schon am experimentieren.
Es will mir einfach nicht gelingen.

In Openhab 2.4 möchte ich eine einfache Regel erstellen:
2 Lampen sollen sich einschalten unter folgender Bedingung: LUX-Wert unter 11 (data.lum) und nur zwischen 17:00 - 23:00.
Hierzu folgende Regel

Code: Alles auswählen

rule "WZ_SL_Licht an"

when
Item dataLum changed
then 
var State = dataLum.state as DecimalType
if ((State <= 11) && (now.getMinuteOfDay < (60*15) || now.getMinuteOfDay > (60*23)+1))
{
Wohnzimmer1_Switch.sendCommand(ON)
Wohnzimmer2_Switch.sendCommand(ON)
}
end
Das Licht schaltet zwar unter 11 Lux ein, aber die Zeit wird nicht berücksichtigt.
Die Zeitabfrage ist nötig, damit die Lampen nicht morgens geschaltet werden (das war dummerweise bisher so)

Vermutlich bgreife ich den Syntax nicht :oops:

Bitte um Unterstützung.

Gruss
atk69
Zuletzt geändert von atk69 am 4. Mai 2019 13:56, insgesamt 1-mal geändert.
and IT works ;)

Heavy-Dee
Beiträge: 143
Registriert: 18. Jan 2018 16:38
Answers: 0

Re: Rule: Lichtsteuerung mit 2 variablen

Beitrag von Heavy-Dee »

Ich glaube du hast ein Klammerproblem.
Versuch mal:

Code: Alles auswählen

    if ((State <= 11) && ((now.getMinuteOfDay < (60*15)) || (now.getMinuteOfDay > ((60*23)+1))))
oder

Code: Alles auswählen

    if ((State <= 11) && ((now.getMinuteOfDay < (60*15)) || (now.getMinuteOfDay > (60*23+1))))
openHab4 (v. 4.1.0) Docker auf Synology DS920+ :!:

atk69
Beiträge: 98
Registriert: 15. Jan 2019 19:07
Answers: 1
Wohnort: Weil am Rhein

Re: Rule: Lichtsteuerung mit 2 variablen

Beitrag von atk69 »

Vielen Dank Heavy-Dee, Variante 2 funktioniert. Allerdings habe ich wohl noch einen Fehler drin:
Der Schalter soll ja nur zwischen 15:00 und 23:00 angesprochen werde.
Offenbar ist es genau andersherum. Habe es mit den oben angegebenen Werten getestet = geht (es ist aber erst 12:00 !!!)
Ändere ich den 15:00 -Wert auf 10:00 geht es nicht mehr.
and IT works ;)

Heavy-Dee
Beiträge: 143
Registriert: 18. Jan 2018 16:38
Answers: 0

Re: Rule: Lichtsteuerung mit 2 variablen

Beitrag von Heavy-Dee »

Die aktuelle Zeit ist immer kleiner als 23:00 => immer an !!!
Du musst eine Zeitspanne zwischen 15:00 und 23:00 schaffen
15:00 < aktuelle Zeit > 23:00
if ((State <= 11) && ((now.getMinuteOfDay > (60*15)) && (now.getMinuteOfDay < (60*23+1))))

Code: Alles auswählen

if ((State <= 11) && ((now.getMinuteOfDay > (60*15)) && (now.getMinuteOfDay < (60*23+1))))
openHab4 (v. 4.1.0) Docker auf Synology DS920+ :!:

atk69
Beiträge: 98
Registriert: 15. Jan 2019 19:07
Answers: 1
Wohnort: Weil am Rhein

Re: Rule: Lichtsteuerung mit 2 variablen

Beitrag von atk69 »

Genau das wars :idea:
Ich habe dies Zeitregeln bisher nicht wirklich verstanden. Jetzt ist es deutlich klarer. ;)
Vielen Dank

Gruss
atk69
and IT works ;)

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

Re: gelöst: Rule: Lichtsteuerung mit 2 variablen

Beitrag von udo1toni »

Wenn es tatsächlich nur um die Stunde geht, wäre es naheligend, getHourOfDay zu verwenden:

Code: Alles auswählen

if ((dataLum.state as Number) <= 11 && now.getHourOfDay > 14 && now.getHourOfDay < 23)
Die Grenzen sind hier natürlich 15:00:00 Uhr und 22:59:59 Uhr.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

atk69
Beiträge: 98
Registriert: 15. Jan 2019 19:07
Answers: 1
Wohnort: Weil am Rhein

Re: gelöst: Rule: Lichtsteuerung mit 2 variablen

Beitrag von atk69 »

Wusste ich es doch: der Chief gibt noch einen "Optimierungskommentar" ab :D :D :D .
Bin immer froh , wenn Spezialisten wie Udo1toni nochmal über das Thema drüberschauen.
Oft sind es die Feinheiten, die das script perfektionieren ;)

Danke für den Hinweis.

Gruss
atk69
and IT works ;)

Antworten