Seite 2 von 2

Re: setpoint vs. switch

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