Mehrere Schaltbefehle gleichzeitig an Socket / CCU

Ich brauch mal ein paar Ideen :slight_smile:

Ich habe verschiedene Variablen, die als Trigger dienen, um unterschiedliche HM / HmIP Aktoren zu schalten.

Jetzt kann es vorkommen, dass die Auslösung gleichzeitig stattfindet.

  1. Trigger Variable löst diesen Block an Schaltbefehlen aus:
 $parameter1 = @HM_WriteValueInteger($id, 'ACOUSTIC_ALARM_SELECTION', $AcousticSignal);
 $parameter2 = @HM_WriteValueInteger($id, 'OPTICAL_ALARM_SELECTION', $OpticalSignal);
 $parameter3 = @HM_WriteValueInteger($id, 'DURATION_UNIT', $DurationUnit);
 $parameter4 = @HM_WriteValueInteger($id, 'DURATION_VALUE', $DurationValue);

Diese müssen auch zeitlich eng abgearbeitet werden und in der Reihenfolge, damit es funktioniert.

  1. Trigger Variable löst diesen Block an Schaltbefehlen:
$setColor = @HM_WriteValueInteger($id, 'COLOR', $Color);
$setBrightness = @HM_WriteValueFloat($id, 'LEVEL', $deviceBrightness);

@paresy:
Ich vermute, dass wenn beide Blöcken von Schaltbefehlen parallel an den Homematic I/O Socket geschickt werden, dann wird die Reihenfolge nicht mehr eingehalten und es kommt zu einer Vermischung.
Der Socket kann ja vermutlich nicht unterscheiden was zusammengehört und nimmt „stumpf“ die Befehle an, so wie sie kommen und arbeitet diese ab.

Lösungsansatz 1:
Jetzt könnte ich zwischen dem 1. Block und dem 2. Block mit einer Verzögerung arbeiten, so dass ich davon ausgehen kann, dass der 1. Block komplett abgearbeitet wurde, bevor ich den 2. Block schicke.
Diese Lösung will ich eigentlich nicht bevorzugen.

Lösungsansatz 2:
Ich baue auf der CCU eine Direktverknüpfung mit einem virtuellen Taster und schalte von IPS den virtuellen Taster.
Diese Lösung will ich eigentlich nicht bevorzugen, da ich alles in IPS machen möchte.

Könnte ich mir nicht eine Queue bauen, wo die Blöcke hingesendet werden und diesen Block in ein Semaphore packen?

Wie löst ihr das?

@Nall-chan:
Oder stellt dein Homematic Extended sowas schon zur Verfügung?

Uli

Ich würde schauen ob es nicht einen Kombinierten Datenpunkt gibt, wo man alle Parameter zusammen überträgt.
Musst du man in die Datenpunktliste von EQ3 schauen.
Für einige Geräte gibt es das.
Michael

Für die HmIP-ASIR-x gibt es das leider nicht.

Uli

Ich würde mir um beide Blöcke eine IPS Semaphore legen. Dann kannst du sicherstellen dass die immer zusammen ausgeführt werden. Ist sauber und simpel.

paresy

Danke,

schon passiert :wink:.

Uli