Re: setpoint vs. switch
Verfasst: 16. Dez 2018 14:56
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.
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.
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
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.