Hojo7871
Ah, jetzt habe ich verstanden, warum das Skript gestartet werden soll und warum SebMai anmerkte, dass das Skript für deinen Anwendungsfall gestoppt sein müsse.
Ich glaube zunächst trotzdem nicht, dass ein Skriptstart zwingend erforderlich ist.
Voraussetzung - ob dies gelingt, weiß ich noch nicht:
Per Skript auf dem Wall Display kann die Änderung eines Display Widget erfasst werden.
Wenn diese Voraussetzung erfüllt ist, kann diese Änderung durch dieses Skript an alle gewünschten Lampen per http gesendet werden
oder, wie es dein Skript auf dem Plus 2PM teilweise tut,
die Widget Änderung an die "Master"-Lampe gesendet werden und im Plus 2PM Skript eine Funktion "sync()" per "Script.Eval" aufgerufen werden, welche die Einstellungen der "Master"-Lampe liest und an die anderen Lampen sendet. Hierfür ist das Skript nicht zu stoppen, im Gegenteil, es muss auf dem Plus 2PM ständig laufen.
Edit: Wenn ich ein Wall Display habe, werde ich dessen Skript-Möglichkeiten testen ...
Edit 2:
Ich verstehe dein Anliegen eines Automatismus, welcher von der "Master"-Lampe ausgehen sollte. Dann wäre es nämlich gleichgültig, von welcher Quelle ausgehend diese Lampe eingestellt würde. Frage dazu: Nutzt du MQTT oder denkst du darüber nach, MQTT zu nutzen?
Eine Änderung der Helligkeit schaltet die Lampe automatisch auch ein, eine Änderung der Lichtfarbe nicht. Als Workround könntest du folgendes versuchen.
Per Webhooks (=Actions) auf der "Master"-Lampe ruft diese Lampe eine Skript-Funktion auf, ich nenne sie noch einmal "sync()". sync() wird von der Lampe sowohl beim einschalten als auch beim ausschalten aufgerufen. sync() liest die Einstellungen der "Master"-Lampe ein und kopiert diese per http auf die "Slave"-Lampen.
Sobald die "Master"-Lampe eingeschaltet wird, werden auf diesem Wege auch die "Slave"-Lampen eingeschaltet. Es bleibt noch die folgende Lücke.
Wenn die Lichtfarbe der "Master"-Lampe geändert wird, ohne diese zu schalten, wird die Lichtfarbe nicht auf die "Slave"-Lampen übertragen. Diese Lücke wird sich aber nicht auswirken, weil die Lichtfarbe erst mit dem Einschalten zum Zuge kommt - und dabei wird bereits synchronisiert. Diese Lücke wirkt sich bei einer Änderung der Lichtfarbe aus, wenn währenddessen die Lampe eingeschaltet bleibt. Um diese Lücke zu umschiffen, könntest du die "Master"-Lampe kurz (vielleicht im ms Bereich) ausschalten und wieder einschalten lassen. Vermutlich wäre solches nicht zu sehen. Edit: Das gelingt leider doch nicht so einfach. Ich habe dazu leider noch keine zündende Idee außerhalb eines Wall Display Skriptes. Mit der Änderung der Helligkeit im eingeschalteten Zustand ergibt sich die gleiche Lücke. Habe dies mit meiner einzigen Shelly Duo getestet.
Wenn du diesen Automatismus auch auf das Schalten der "Slave"-Lampen übertragen willst, trägst du einfach die Actions der "Master"-Lampe auch auf den "Slave"-Lampen ein! Dann gäbe es weder Master- noch Slave-Rollen, es würde schlicht nur repliziert. Dafür wäre beim Aufruf von sync() noch die Quelle als Parameter zu übergeben - sync('<eigene IP Adresse>').
Voilà
Nachgereicht: Aufruf der Skript-Funktion sync() per Action.
http://<IP Adresse des Skript Shelly>/rpc/script.eval?id=<Skript Id>&code="sync()"
bzw.
http://<IP Adresse des Skript Shelly>/rpc/script.eval?id=<Skript Id>&code="sync('<eigene IP Adresse>')"
Falls du hierfür Hilfe beim coden der Funktion sync() brauchen solltest, frage einfach nach!
Edit 3:
Das von mir unter Edit 2 beschriebene Workaround wird mit folgender Einschränkung funktionieren.
Immer dann, wenn du die Lichtfarbe oder die Helligkeit im eingeschalteten Zustand änderst, wird diese Änderung nicht auf die anderen Lampen übertragen. Um die Übertragung zu erwirken, musst du die Lampe, an welcher geändert wurde, kurz aus- und wieder einschalten. Danach sind alle Lampen gleich eingestellt. Dabei spielt die Quelle des Schaltens keinerlei Rolle.