sendCommand(Item.state) nicht mehr möglich

Allgemeine Fragen rund um die "Smart Home" Hardware/Komponenten

Moderatoren: seppy, udo1toni

Antworten
Quautiputzli
Beiträge: 350
Registriert: 29. Okt 2020 19:53
Answers: 2

sendCommand(Item.state) nicht mehr möglich

Beitrag von Quautiputzli »

Ich hatte im OH3 die folgende rule:

Code: Alles auswählen

rule "xmas"
when 
    Item xmas_Light changed
then
    Plug_2_shellyplug25_1_Relay_1.sendCommand(xmas_Light.state)
    shellyswitch11_output1.sendCommand(xmas_Light.state)
    moesswitch1_2.sendCommand(xmas_Light.state)
    Fritz_Repeater_Stromstecker_switch.sendCommand(xmas_Light.state)
end
Diese funktioniert nun im OH nicht mehr. Ich habe es nun abgeändert in:

Code: Alles auswählen

rule "xmas"
when 
    Item xmas_Light changed
then
    if (xmas_Light.state == ON) {
        Plug_2_shellyplug25_1_Relay_1.sendCommand(ON)
        shellyswitch11_output1.sendCommand(ON)
        moesswitch1_2.sendCommand(ON)
        Fritz_Repeater_Stromstecker_switch.sendCommand(ON)
    }
    else {
        Plug_2_shellyplug25_1_Relay_1.sendCommand(OFF)
        shellyswitch11_output1.sendCommand(OFF)
        moesswitch1_2.sendCommand(OFF)
        Fritz_Repeater_Stromstecker_switch.sendCommand(OFF)
    }
end
Das finde ich etwas unelegant. geht das wirklich nicht mehr so wie früher?
Servus

mad-mike
Beiträge: 457
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: sendCommand(Item.state) nicht mehr möglich

Beitrag von mad-mike »

Moin, ich kann dir zu deiner rule nix sagen, jedoch habe ich bei mir diese ganze Item in eine Gruppe gepackt, wo ich mit einer Rule bzw Event nur diese Gruppe aktiviere bzw deaktiviere...

Ist dir sowas sympathischer?
Gruss mad-mike

openHABian 4.2.2 auf Raspberry Pi 4 Mod. b (8GB) ;)

mad-mike
Beiträge: 457
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: sendCommand(Item.state) nicht mehr möglich

Beitrag von mad-mike »

Ich habe gerade noch mal die betitelung in deiner rule gelesen. "Xmas".

Mein Beispiel oben habe ich mit mehreren Steckdosen in einer Gruppe realisiert.

Mein Xmas Beleuchtung habe ich anders umgesetzt:

Aktuell schaltet eine (Astro) rule ein Item (Switch) und ich habe alle (Xmas) Aktoren mit diesen (Astro) Item verlinkt und dann auf das Profil folgen geklickt.

Alle verknüpften Aktoren folgen nun dem Astro Switch.
Ich habe dieses Jahr für den Außenbereich noch eine Steckdose erweitert und musste nur die Verknüpfung erstellen und auf folgen drücken, fertig.
Gruss mad-mike

openHABian 4.2.2 auf Raspberry Pi 4 Mod. b (8GB) ;)

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

Re: sendCommand(Item.state) nicht mehr möglich

Beitrag von udo1toni »

Ob das so elegant ist, sei mal dahin gestellt, aber die Lösung heißt hier .toString. Ob der Menge der Items böte sich tatsächlich entweder eine Gruppe an, oder zumindest eine optimierte Rule:

Code: Alles auswählen

rule "xmas"
when 
    Item xmas_Light changed
then
    val soll = newState.toString
    Plug_2_shellyplug25_1_Relay_1.sendCommand(soll)
    shellyswitch11_output1.sendCommand(soll)
    moesswitch1_2.sendCommand(soll)
    Fritz_Repeater_Stromstecker_switch.sendCommand(soll)
end
Variante mit einem GroupItem gXmasLights:

Code: Alles auswählen

rule "xmas"
when 
    Item xmas_Light changed
then
    gXmasLights.members.forEach[i|
        i.sendCommand(newState.toString)
    ]
end
wobei alle zu schaltenden Lichter der Gruppe gXmasLights zugeordnet sein sollten. :)
Es ginge sogar

Code: Alles auswählen

rule "xmas"
when 
    Item xmas_Light changed
then
    gXmasLights.sendCommand(newState.toString)
end
Eventuell wäre es außerdem besser, statt auf changed lieber auf received command zu triggern. sieht dann so aus:

Code: Alles auswählen

rule "xmas"
when 
    Item xmas_Light received command
then
    gXmasLights.sendCommand(receivedCommand)
end
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet

Quautiputzli
Beiträge: 350
Registriert: 29. Okt 2020 19:53
Answers: 2

Re: sendCommand(Item.state) nicht mehr möglich

Beitrag von Quautiputzli »

Danke,
dann werde ich mir das mal ansehen. Es geht mir vor allem auch darum, alle meine rules durchzusehen, die ja mit OH3 noch funktionierten, ob diese Schreibweise nochmal vorkommt.
Servus

Antworten