setpoint vs. switch

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: setpoint vs. switch

Beitrag von udo1toni »

Nein, triggeringItem ist ein einzelnes Item, keine Gruppe. In diesem Fall musst Du etwas anders vorgehen. Du packst die Gruppenitems in eine weitere Gruppe, gSetTemp.

Code: Alles auswählen

rule "Gruppentemperatur setzen"
when
    Member of gSetTemp received command
then
    logInfo("gsettemp" ,"Gruppentemperatur {} auf {} gesetzt!",triggeringItem.name,receivedCommand) 
    gSetTemp.members.filter[g|g.name == triggeringItem.name].head.members.forEach[m|
        logInfo("gsettemp" ,"Item {} gesetzt!",m.name) 
        m.sendCommand(receivedCommand)
    ]
end
members repräsentiert immer nur direkte Mitglieder der Gruppe. Der Filter gibt eine Liste aller Items zurück, deren Name gleich dem auslösenden Item ist. Da es sich, obwohl nur ein Item diesen Namen haben kann, immer noch um eine Liste handelt, müüsen wir nun ein bestimmtes Item dieser Liste auswählen, .head gibt das erste Item der Liste zurück.
Ich bin mir nicht sicher, ob die Rule auch bei Kommandos an die Einzel-Items triggert, dann müsste man tatsächlich die einzelnen Gruppen im Trigger-Teil aufführen. An der Funktion des Execute-Teils der Rule ändert sich dadurch aber glücklicherweise nichts.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten