Osram Smart+ Plug Regel

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
christian1312
Beiträge: 9
Registriert: 15. Jan 2020 19:15

Osram Smart+ Plug Regel

Beitrag von christian1312 »

Moin zusammen!

Ich hatte zuvor eine schaltbare Steckdose von AVM in Betrieb und hatte folgende Regel definiert:

Code: Alles auswählen

Subwoofer AN und AUS

rule "Subwoofer AN"
when
    Item eg_wohnzimmer_avr changed from OFF to ON or // AVR AN
    Item eg_wohnzimmer_tv changed from OFF to ON // TV AN
then

    //eg_wohnzimmer_subwoofer.sendCommand(ON) // Subwoofer An
end

rule "Subwoofer AUS"
when
    Item eg_wohnzimmer_avr changed from ON to OFF or // AVR AUS
    Item eg_wohnzimmer_tv changed from ON to OFF // TV AUS
then
    eg_wohnzimmer_subwoofer.sendCommand(OFF) // Subwoofer AUS
end
Nun habe ich die Steckdose gegen eine Osram Smart+ getauscht. Nun funktioniert die Regel allerdings nicht mehr.
Kann mir jemand helfen? Sorry ... bin Neuling. :)
von udo1toni » 15. Jan 2020 23:02
Streng genommen sollte man den Subwoofer nur dann schalten, wenn es nötig ist, also noch eine kleine Optimierung.

Code: Alles auswählen

//Subwoofer AN und AUS

rule "Subwoofer an und aus"
when
    Item eg_wohnzimmer_avr changed or // AVR AN
    Item eg_wohnzimmer_tv changed  // TV AN
then
    var myState = if(eg_wohnzimmer_avr.state == ON || eg_wohnzimmer_tv == ON) ON else OFF
    if(eg_wohnzimmer_subwoofer.state != myState)
        eg_wohnzimmer_subwoofer.sendCommand(myState)
end


rule "Test1"
when
    Item eg_wohnzimmer_licht_fenster received command
then
    if(eg_wohnzimmer_subwoofer.state != receivedCommand)
        eg_wohnzimmer_subwoofer.sendCommand(receivedCommand)
end
Gehe zur vollständigen Antwort

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

Re: Osram Smart+ Plug Regel

Beitrag von udo1toni »

Du musst halt ein Iem für die Smart+ anlegen und entsprechend einbinden.

Deine Rules sind übrigens... suboptimal... ;)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

christian1312
Beiträge: 9
Registriert: 15. Jan 2020 19:15

Re: Osram Smart+ Plug Regel

Beitrag von christian1312 »

Das Item habe ich angelegt ... nun läuft es. :)

Ja das weiß ich. Fuchse mich gerade erst rein. Habe lange nicht programmiert. :-P

Code: Alles auswählen

rule "Test1"
when
    Item eg_wohnzimmer_licht_fenster received command ON
then
    eg_wohnzimmer_subwoofer.sendCommand(ON)
end

rule "Test2"
when
    Item eg_wohnzimmer_licht_fenster received command OFF
then
    eg_wohnzimmer_subwoofer.sendCommand(OFF)
end

christian1312
Beiträge: 9
Registriert: 15. Jan 2020 19:15

Re: Osram Smart+ Plug Regel

Beitrag von christian1312 »

udo1toni hat geschrieben: 15. Jan 2020 20:39 Du musst halt ein Iem für die Smart+ anlegen und entsprechend einbinden.

Deine Rules sind übrigens... suboptimal... ;)
Wie wäre denn einer sauberere Lösung? :)

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

Re: Osram Smart+ Plug Regel

Beitrag von udo1toni »

Die beiden Testrules lassen sich bequem als eine Rule definieren:

Code: Alles auswählen

rule "Test1"
when
    Item eg_wohnzimmer_licht_fenster received command
then
    eg_wohnzimmer_subwoofer.sendCommand(receivedCommand)
end
Was die erste Version betrifft, so gibt es mindestens eine Schwachstelle, nämlich, wenn beide Geräte (tv und avr) eingschaltet sind, und nun eines der Geräte ausgeschaltet wird. Der Subwoofer wird abgeschaltet, obwohl noch eines der beiden Geräte eingeschaltet ist. Wenn ohnehin immer beide Geräte eingeschaltet sein sollen oder keines, braucht es keinen 2. Trigger, ansonsten muss man sicherstellen, dass nur abgeschaltet wird, wenn beide Items OFF sind:

Code: Alles auswählen

//Subwoofer AN und AUS

rule "Subwoofer an und aus"
when
    Item eg_wohnzimmer_avr changed or // AVR AN
    Item eg_wohnzimmer_tv changed  // TV AN
then
    eg_wohnzimmer_subwoofer.sendCommand(if(eg_wohnzimmer_avr.state == ON || eg_wohnzimmer_tv.state == ON) ON else OFF)
end
Die Rule triggert auf beide Items, in beide Richtungen. Falls eines der beiden Items den Status ON aufweist, sendet es ON an das subwoofer Item, sonst OFF. In diesem Fall bietet sich der ternäre Operator als nette Abkürzung an, statt

Code: Alles auswählen

if(eg_wohnzimmer_avr.state == ON || eg_wohnzimmer_tv.state == ON) 
    eg_wohnzimmer_subwoofer.sendCommand(ON) 
else 
    eg_wohnzimmer_subwoofer.sendCommand(OFF)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: Osram Smart+ Plug Regel

Beitrag von udo1toni »

Streng genommen sollte man den Subwoofer nur dann schalten, wenn es nötig ist, also noch eine kleine Optimierung.

Code: Alles auswählen

//Subwoofer AN und AUS

rule "Subwoofer an und aus"
when
    Item eg_wohnzimmer_avr changed or // AVR AN
    Item eg_wohnzimmer_tv changed  // TV AN
then
    var myState = if(eg_wohnzimmer_avr.state == ON || eg_wohnzimmer_tv == ON) ON else OFF
    if(eg_wohnzimmer_subwoofer.state != myState)
        eg_wohnzimmer_subwoofer.sendCommand(myState)
end


rule "Test1"
when
    Item eg_wohnzimmer_licht_fenster received command
then
    if(eg_wohnzimmer_subwoofer.state != receivedCommand)
        eg_wohnzimmer_subwoofer.sendCommand(receivedCommand)
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

christian1312
Beiträge: 9
Registriert: 15. Jan 2020 19:15

Re: Osram Smart+ Plug Regel

Beitrag von christian1312 »

udo1toni hat geschrieben: 15. Jan 2020 23:02 Streng genommen sollte man den Subwoofer nur dann schalten, wenn es nötig ist, also noch eine kleine Optimierung.

Code: Alles auswählen

//Subwoofer AN und AUS

rule "Subwoofer an und aus"
when
    Item eg_wohnzimmer_avr changed or // AVR AN
    Item eg_wohnzimmer_tv changed  // TV AN
then
    var myState = if(eg_wohnzimmer_avr.state == ON || eg_wohnzimmer_tv == ON) ON else OFF
    if(eg_wohnzimmer_subwoofer.state != myState)
        eg_wohnzimmer_subwoofer.sendCommand(myState)
end


rule "Test1"
when
    Item eg_wohnzimmer_licht_fenster received command
then
    if(eg_wohnzimmer_subwoofer.state != receivedCommand)
        eg_wohnzimmer_subwoofer.sendCommand(receivedCommand)
end
Top vielen Dank für die schneller Hilfe!

Verstanden habe ich den Quellcode ... allerdings wäre ich da selbst nicht drauf gekommen mit einer Variable zu arbeiten.
Learning by Doing! :)

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

Re: Osram Smart+ Plug Regel

Beitrag von udo1toni »

Ja, man muss nicht mit einer Variablen arbeiten, in diesem Fall ist es aber eine elegante Methode.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten