Ich habe noch eine Idee für einen relativ komfortablen Automatismus, welcher allerdings auch ein wenig einschränkt.
Die Einschränkung liegt darin, dass für diese Idee wieder eine Master-Lampe eingeführt werden muss.
Man kann einen Zeitgeber verwenden, der in definierbaren Zeitabständen die Master-Lampe abfragt und deren Einstellungen auf die Slave-Lampen überträgt. Der Zeitgeber kann ein Skript interner Timer oder ein Schedule Job sein. Ich nehme als Zeitabstandswert mal 1s, was relativ kurz ist. Diese 1s ist zugleich, mit einer gewissen Toleranz im ms Bereich, die maximale Zeitverzögerung, mit welcher die Slave-Lampen auf die Master-Lampe passiv reagieren. Passiv deshalb, weil das Skript dafür aktiv ist.
Das Skript fragt nach jeder Sekunde den Zustand der Master-Lampe ab, ohne selbst dafür getriggert zu werden. Somit entfallen hierfür auch die Actions auf den Lampen, auch auf der Master-Lampe. Das Skript überträgt die von der Master-Lampe geholten Einstellungen selbstständig auf die Slave-Lampen. Auf diese Weise kann der Anwender nicht mehr die Slave-Lampen als eigenständige Lampen separat einstellen, weil eine solche Einstellung kurz danach vom Skript überschrieben würde. Eine separate Einstellung der Slave-Lampen wollen afaik JayR82 und Hojo7871 auch nicht. Die einzige Unschönheit ist eine Verzögerung der Einstellungen zwischen der Master-Lampe und den Slave-Lampen, die zudem quasi zufällig lang ist, aber maximal eine Sekunde beträgt. Die Traffic-Dichte ist dabei relativ hoch, die Datenpakete aber klein.
Der Vorteil dieser Idee liegt darin, dass sich der Anwender nicht um die Übertragung auf die Slave-Lampen kümmern muss und letztlich ausschließlich die Master-Lampe einstellt. Er darf sich halt nicht an der verzögerten Reaktion der Slave-Lampen stören.
Das Ganze funktioniert völlig unabhängig von der einstellenden Quelle sowohl lokal als auch über die Cloud. Btw, wer dafür auch die Cloud nutzen will, braucht dafür nur die Master-Lampe der Cloud hinzuzufügen, die Slave-Lampen nicht, weil das Skript lokal arbeitet. Insgesamt betrachtet besteht diese Lampenanordnung steuerungstechnisch aus nur einer Lichtquelle.
Man kann selbstverständlich auch das von mir in #13 unter Edit 2 beschriebene Workaround mit dieser Zeittriggerlösung zu kombinieren versuchen. Dabei sollten sich die beiden Trigger per Zeit und per Action allerdings gegenseitig sperren, damit nicht zu viele RPC Aufrufe fast zeitgleich erfolgen können. (Interessant wäre auch der Versuch, dafür kaskadierte RPC Aufrufe zu coden. Die Kaskadestufen wären per RPC Aufrufe innerhalb der callback Funktionen zu implementieren. Vermutlich könnte dies eine Überschreitung des RPC Limits verhindern. Bei vielen Slave-Lampen käme solches besonders zum tragen. Eine einfachere Alternative wäre die Verwendung einer Timers mit einem Indexzähler, welcher auf die Einträge einer Liste (Datenfeld, Array) verweist.)
Wer mit jeder neuen Einstellung der Master-Lampe ein künstlerisch gestaltetes Lichtspiel haben möchte, kann eine zufällige Verzögerung in der Reaktion der Slave-Lampen implementieren. Je mehr Lampen beteiligt sind, desto unterhaltsamer wäre das Lichtspiel. Ich sollte mir das patentieren lassen ... 