Z-Wave Multicast Support

Hallo zusammen,

ich hätte eine Frage, ob es bei Z-Wave Planung für Multicast Support gibt?

Ich habe z.B. mehrere Gruppen vom LED Deckenspots in einem offenen Wohn-Essbereich und würde die gerne auch mal in Gruppen Dimmen. Im Moment iterieren dafür Scripts durch die Intensitiy-Variablen und lösen dann mit RequestAction() sequentielle Dimmbefehle aus. Das füht dann zum Effekt, dass die Spots leicht zeitversetzt reagieren.

Ich habe jetzt mal über die Tools von SiliconLabs und einem USB-stick damit gespielt und einen einzigen Dimm-Befehl per Multicast geschickt. Das Ergebnis ist, dass alle Dimmer absolut synchron reagieren, dass macht optisch einen riesigen Unterschied.

Aus Sicht der Implementierung könnte ich mir das so vorstellen:

$dimmer = Array(12345,12346,12347);

$result = ZW_DimSetMC($dimmer,35);

Am Allerschönsten wäre natürlich, wenn RequestAction Arrays akzeptieren würde und das dann als Multicast auslöst aber das wären sicher noch viel Größere Umbaumaßnahmen, da kann ich auch gut damit leben, erst mal meine Skripte umzuschreiben.

Welches Tool hast du verwendet ? evtl. gibt es dazu ja ein CMDLine Interface.
Dann könntest dir damit behelfen.

Eine alternative Variante wäre aus der not eine Tugend zu machen und absichtlich einen Abstand zwischen den Kommandos für die einzelnen Nodes zu legen.
Hab ich hier in der Küche (3 Dimmer) und Wz(5Dimmer) so gemacht. Kommt gar nicht so schlecht.

gruß
bb

Zum Testen habe ich den Z-Wave PC Controller von SiLabs verwendet, eine Windows-Software.

Aber die Software ist eigentlich egal: Selbst wenn ich ein CLI dafür finden oder bauen würde hat IPS ja die serielle Verbindung zum Controller offen, d.h. eine andere Software kann nicht auf ihn zugreifen. Jetzt könnte ich natürlich noch einen zweiten Controller reinstecken, der dann über eine andere Software angesprochen wird, etc. Also ja, ich würde das irgendwie hinbekommen.

Es wäre aber natürlich deutlich einfacher, wenn IPS das von Haus aus anbieten würde. Soweit ich die Z-Wave API richtig verstanden habe ich der einzige Unterschied, dass man statt einer Node ID mehrere Node IDs übergibt und der Controller findet dann selbst heraus, ob er Multicast verwenden kann.

Man kann auch Multicast explizit anfordern, aber es sollte auch implizit gehen.

Alternativ würde auch gehen, dass ich die Kommandos selbst erstelle und IPS diesen Low Level Zugriff auch freigibt.

Ich hatte mir ein wenig überlegt wie dies aussehen könnte, aber noch keine sinnvolle Idee gefunden. Das Problem ist ja, dass wir immer einzelne Instanzen haben. Und die Instanz-Funktionen nehmen kein Array an. D.h. es müsste eher eine Art Multicast-Instanz geben. Und bei Arrays hat man das Problem, dass sich dies gar nicht gut mit den jetzt verfügbaren Aktionen und Ablaufplänen verträgt. D.h. das Feature wäre nur für einen sehr elitären PHP-Nutzer Kreis verfügbar.

paresy

Hmm,

das ist ein wichtiger Einwand.

Eine schnelle Lösung könnte eine Funktion sein, die von der Gateway-Instanz bereitgestellt wird. Diese wäre dann Z-Wave spezifisch und könnte nur für PHP-Programmierer genutzt werden, ließe sich aber vermutlich am einfachsten umsetzen. Von mir aus auch gerne mit Z-Wave NodeIds:

$instanceId = 12345 // Z-Wave Gateway;

$nodeList = Array('4','5','6');

ZW_SwitchModeMulti($instanceId, $nodeList, true);
ZW_DimSetMulti($instanceId, $nodeList, 25);

Von mir aus auch gerne als CSV-String.

Wenn ich den Z-Wave SDK richtig verstehe löst Du ja den Switch genauso aus wie für einen einzelnen Node, nur dass Du eine Liste mit Nodes übergibst.

Alles andere wäre dann schon eine größere Änderung auf IPS Ebene. Entweder führst Du eine Art Meta-Instanz ein, die mehrere Z-Wave-Geräte als Gruppe ansprechen kann. Oder etwas noch generischeres.