RULE-Probleme Lichtsteuerung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
drowning88
Beiträge: 2
Registriert: 17. Nov 2019 00:13
Answers: 0

RULE-Probleme Lichtsteuerung

Beitrag von drowning88 »

Guten Abend in die Runde,

ich bin jetzt seit 3 Stunden dabei eine Regel für mein Licht am Hauseingang zu erstellen und komme vom einen Problem zum nächsten.
Ich habe langsam das Gefühl, dass ich einen Syntax-Fehler nach dem anderen mache; stellenweise (bei Auslassungen von Komponenten) funktionierte es ja halbwegs. Aber eben nur halbwegs.

Zu meinem SetUp:

Über der Haustür thront die Terrassenlampe (HUE). Diese wird vom Hue-eigenen Bewegungsmelder gesteuert.
ABER diese Lampe soll zusätzlich rot oder grün aufleuchten für etwa 10 Sekunden, wenn eine Aktion an der Tür selbst erkannt wurde.
Im besten Falle natürlich sollte die Lampe nach ihrer Rot- oder Grün-Phase wieder zum vorherigen Zustand zurückkehren, sodass der Bewegungsmelder in seiner Funktion nicht eingeschränkt wird. ABER: das ist optional. Mir wäre damit schon Genüge getan, wenn sie eben NUR 10 Sekunden leuchtet und
dann wieder ausgeht.

Die Aktion ist übrigens folgendes: ich habe ein Ekey-Fingerscanner als Zutrittslösung. Die Aktivität davon wird bereits erfolgreich erfasst.
Wenn ein Finger drüber gezogen wird, der nicht registriert ist, soll die Lampe rot aufleuchten.
Wenn ein bekannter Finger die Tür entsperrt soll die Lampe grün aufleuchten.
Aber eben nur für jeweils 10 Sekunden...

Die Bewegungsmelder-Funktion soll davon nicht gestört werden. (Expire-Funktion zbsp. würde mir diese Lampe immer nach 10 Sekunden ausschalten, wenn sie angegangen ist... Aber der Bewegungsmelder soll etwa 2 Minuten an sein).

Der bislang entstandene Code:

Code: Alles auswählen

rule Ekey-Eingang
when
    Item Action received update       
then
    if (Action.state==-1)
	Terrasse.sendCommand("352,100,100")
	createTimer(now.plusSeconds(8) [| Terrasse.sendCommand("0,0,0") ]
else {
	Terrasse.sendCommand("125,100,100")
	createTimer(now.plusSeconds(15) [| Terrasse.sendCommand("0,0,0") ]
        var String name = transform("MAP","ekey_names.map",UserID.state.toString())
        var String text = " Hallo "+name
        Echo_Kueche_TTS.sendCommand(text)  
	}
end
Gesetz dem Fall "createTimer" ist NICHT aufgeführt, funktioniert das ganze wunderbar... ABER die Funzel brennt dann eben dauernd.

Hilfe :D

Vielen Dank schonmal an alle :)

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

Re: RULE-Probleme Lichtsteuerung

Beitrag von udo1toni »

Es fehlt ein Komma und eine schließende Klammer, außerdem noch ein paar geschwungene Kalmmern.

Code: Alles auswählen

rule Ekey-Eingang
when
    Item Action received update       
then
    if (Action.state==-1) {
	Terrasse.sendCommand("352,100,100")
	createTimer(now.plusSeconds(8), [| Terrasse.sendCommand("0,0,0") ])
} else {
	Terrasse.sendCommand("125,100,100")
	createTimer(now.plusSeconds(15), [| Terrasse.sendCommand("0,0,0") ])
        var String name = transform("MAP","ekey_names.map",UserID.state.toString())
        var String text = " Hallo "+name
        Echo_Kueche_TTS.sendCommand(text)  
	}
end
Du kannst Dir den alten Zustand der Lampe in einer globalen Variable merken und diese im Timer verwenden.

So etwa:

Code: Alles auswählen

//Globale Variablen immer zu Beginn der Rules Datei definieren, in der sie verwendet werden!
var Color cEingang = null // Keine Ahung, ob das stimmt. Notfalls var String cEingang = ""

rule "Ekey-Eingang"
when
    Item Action received update       
then
    cEingang = Terrasse.state
    var Number nTime = 8
    var String name = ""
    if (Action.state==-1)
	    Terrasse.sendCommand("352,100,100")
    else {
        Terrasse.sendCommand("125,100,100")
        nTime = 15
        name = transform("MAP","ekey_names.map",UserID.state.toString())
        Echo_Kueche_TTS.sendCommand("Hallo " + name)
    }
    createTimer(now.plusSeconds(nTime.intValue), [|
        Terrasse.sendCommand(cEingang)
    ])
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

drowning88
Beiträge: 2
Registriert: 17. Nov 2019 00:13
Answers: 0

Re: RULE-Probleme Lichtsteuerung

Beitrag von drowning88 »

Perfekt, vielen, vielen Dank! :)

Läuft! :D

Antworten