Beleuchtungssteuerung mit Timer und Motionsensor

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
sami77
Beiträge: 86
Registriert: 25. Sep 2017 19:04
Answers: 1

Beleuchtungssteuerung mit Timer und Motionsensor

Beitrag von sami77 »

Hallo Leute,

ich habe mal eine Frage, da ich mich gerade intensiv mit einigen Openhab Themen auseinandersetze und stecke hier gerade etwas fest und ich denke es muss doch eigentlich ganz simpel sein.

Mein Projekt: Beleuchtungssteuerung im Eingangsbereich, bei Aktivierung des Bewegungssensors, Licht an für zwei Minuten und das nur wenn es dunkel ist.

Funktioniert auch schon echt ganz gut, allerdings ohne die Zeitliche Steuerung wann die Regel aktiv sein soll!

Code: Alles auswählen

rule "Beleuchtung Eingang, An für 2 min"
when
	Item Motionsensor received update ON

then
    if(timer === null)  {
        logInfo("FILE", "Setting to ON and creating timer")
        Eingang_Garage.sendCommand(ON)
        timer = createTimer(now.plusMinutes(2), [|
            logInfo("FILE", "Timer expired and setting to OFF")
            Motionsensor.postUpdate(OFF)
            Eingang_Garage.sendCommand(OFF)
            timer = null
        ])
    } else {
        logInfo("FILE", "Timer rescheduled")
        timer.reschedule(now.plusMinutes(2))
        
    }
end
Ich will jetzt noch das Astro-Binding nutzen, was mir Daylight time, oder Sun-Set ausgeben kann. Wie kann ich denn nun hier eine Doppel-Bedingung einfügen, dass die Regel nur im Zeitraum wenn es dunkel ist aktiv ist?

wenn ich bei "when" noch eine zusätzliche Bedingung einfüge komme ich nicht weiter...

Z.B.

Code: Alles auswählen

when Item AstroSunData_Set_StartTime changed to ON
                    and Item Motionsensor received update ON....then...
Sorry, mir wurde das Programmieren irgendwie nicht in die Wiege gelegt!


Herzlichen Dank schon mal!

Gruß!
Uwe

sami77
Beiträge: 86
Registriert: 25. Sep 2017 19:04
Answers: 1

Re: Beleuchtungssteuerung mit Timer und Motionsensor

Beitrag von sami77 »

Hello hello,

keiner eine Idee wie ich meine doppelte Bedingung umsetzen könnte?

1000 Dank!

Gruß
Uwe

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Beleuchtungssteuerung mit Timer und Motionsensor

Beitrag von seppy »

Hi,
Du musst Deine if Bedingung erweitern.
In etwa so:

Code: Alles auswählen

rule "Beleuchtung Eingang, An für 2 min"
when
	Item Motionsensor received update ON
then
    if(timer === null && AstroSunData_Set_StartTime.state == ON)  {
        logInfo("FILE", "Setting to ON and creating timer")
        Eingang_Garage.sendCommand(ON)
        timer = createTimer(now.plusMinutes(2), [|
            logInfo("FILE", "Timer expired and setting to OFF")
            Motionsensor.postUpdate(OFF)
            Eingang_Garage.sendCommand(OFF)
            timer = null
        ])
    } else {
        logInfo("FILE", "Timer rescheduled")
        timer.reschedule(now.plusMinutes(2))
        
    }
end
Viele Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

sami77
Beiträge: 86
Registriert: 25. Sep 2017 19:04
Answers: 1

Re: Beleuchtungssteuerung mit Timer und Motionsensor

Beitrag von sami77 »

100Dank Seppy!

Jetzt würde das aber nur funktionieren, wenn das Item AstroSunData_Set_StartTime ein Schalter wäre, sonst gibt es ja kein "state". Das Item hat jedoch den Charakter "DateTime". Kann ich das einfach über die PaperUI in einen switch umwandeln, oder muss ich quasi einen einfachen virtuellen Switch erstellen, der bei einer bestimmten Zeit ON und OFF getriggert wird?

VG Uwe

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Beleuchtungssteuerung mit Timer und Motionsensor

Beitrag von seppy »

Hi,
ne umwandeln geht nicht, entweder Du baust eine Rule die eine Switch bedient, oder Du nimmst aus dem Astrobinding die dort bereits nutzbaren Switches. Hier ein Beispiel:

Code: Alles auswählen

// Sonnenaufgang
Switch Sunrise_Event
	(gAstro)
	//{channel="astro:sun:heideweg30BeforeSunrise:rise#event"}
	{astro="planet=sun, type=rise, property=start, offset=-30"}
Zusätzlich habe ich mir zwei globale Switches gebaut:

Code: Alles auswählen

Switch IsDay 
	"Tag"
	(gAstro)

Switch IsNight
	"Nacht"
	(gAstro)

die über eine Rule gesetzt werden:

Code: Alles auswählen

rule "IsDay"
 when
 	Item Sunrise_Event changed to ON
 then
	IsDay.sendCommand(ON)
	IsNight.sendCommand(OFF)
	logInfo("Homebox.SystemRules:IsDay", "Daylight: Setze IsDay \"ON\"")
 end
Vielleicht hilfts Dir?!

Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

sami77
Beiträge: 86
Registriert: 25. Sep 2017 19:04
Answers: 1

Re: Beleuchtungssteuerung mit Timer und Motionsensor

Beitrag von sami77 »

Vielen Dank, es funktioniert nun und ich schreibe mal kurz zusammen wie ich es gemacht habe, vielleicht hilft es ja dem einen oder anderen Newbie!?

Projekt: 1) Eingangsbeleuchtung über Motionsensor. Bei Aktivierung des Sensors soll die Beleuchtung zwei Minuten anbleiben.
Projekt: 2) Garagen- und Eingangsbeleuchtung sollen 5 min anbleiben, wenn der Gargantürsensor anspricht.

Das alles soll nur funktionieren, wenn es auch dunkel ist. Da ich keinen Photosensor habe, habe ich dies mit dem Astro-Binding gelöst, was z.B. nach zur eingestellten Adresse, den exakten Zeitpunkt des Sonnenuntergangs (und andere entspr. Events)ausgibt, wodurch sich z.B. ein Schalter bedienen lässt, der anzeigt: Tageslicht ON/OFF

Astro-Binding bedient einen Schalter ob Tag ist oder nicht:

Code: Alles auswählen

rule "Sonnenuntergang"

when
    Channel 'astro:sun:home:set#event' triggered START 
then
    Tageslicht.sendCommand(OFF)

end

rule "Sonnenaufgang fertig"

when
    Channel 'astro:sun:home:rise#event' triggered START
then
    Bewegungssensor_BinarySensor.sendCommand(ON)
    
    
Dann die eigentliche Logik:

Code: Alles auswählen

var Timer timer = null
rule "Beleuchtung Eingang, An für 2 min"
when
	Item Motionsensor received update ON

then
    if(timer === null && Tageslicht.state == OFF)  {
        logInfo("FILE", "Setting to ON and creating timer")
        Eingang_Garage.sendCommand(ON)
        timer = createTimer(now.plusMinutes(2), [|
            logInfo("FILE", "Timer expired and setting to OFF")
            Motionsensor.postUpdate(OFF)
            Eingang_Garage.sendCommand(OFF)
            timer = null
        ])
    } else {
        logInfo("FILE", "Timer rescheduled")
        timer.reschedule(now.plusMinutes(2))
        
    }
end

Das mit der Garage funktioniert genauso und kann zusammen mit dem Schalter in eine *.rules Datei. Wer noch genauere Infos haben möchte, einfach fragen! 1000 Dank für die Hilfe hier im Forum.

Gruß!
Uwe

Antworten