WochenplanEvents - EM_UPDATE

Hallo zusammen,

ich untersuche aktuell das Verhalten von WochenplanEvents in Symcon und hätte eine Verständnisfrage zu den EventMessages.

Beim Bearbeiten eines Wochenplans beobachte ich sehr viele EM_UPDATE Auslösungen, teilweise mehrfach hintereinander, obwohl fachlich nur ein einzelner Schaltpunkt geändert wurde.

Beispiel:

Schaltpunkt im Wochenplan ändern anach folgen mehrere:
EM_UPDATE
EM_REMOVESCHEDULEGROUPPOINT
EM_ADDSCHEDULEGROUPPOINT
…weitere EM_UPDATE

Teilweise scheint EM_UPDATE sogar schon während des internen Neuaufbaus des Wochenplans zu feuern.

Ist EM_UPDATE bewusst als generisches „irgendetwas am Event hat sich geändert“ Signal implementiert und daher für Wochenpläne nicht geeignet, um gezielt auf echte Schaltpunktänderungen zu reagieren?

Welche Messages sind aus eurer Sicht die fachlich korrekten Trigger für:
Änderung eines Schaltpunkts
Änderung der aktuell aktiven Wochenplan-Action
Reaktion auf den eigentlichen Schaltzeitpunkt

Vielleicht kann jemand kurz erläutern, wie die interne Event-Kaskade beim Wochenplan gedacht ist.
Danke.

Änderung eines Schaltpunkts
Änderung der aktuell aktiven Wochenplan-Action

Habe ich auch versucht in einem Modul zu nutzen und es gelassen, da so viele Events feuern und das alles dann in der richten Reihenfolge zu dekodieren und nachzuführen war einfach zu viel aufwand.
Entsprechend gibt es jetzt einen Variable mit Aktion, welche anschließen zum „Speichern“ ausgelöst werden muss.

Reaktion auf den eigentlichen Schaltzeitpunkt

Das nutze ich gar nicht, weil bei mir der Wochenplan in Symcon nur den Wochenplan aus einem Gerät widerspiegeln soll und mir die Auslösung des Events in Symcon somit (*fast) egal ist.
Am einfachsten wäre es, wenn dein Modul das Ziel der Aktionen des Wochenplan wird. Also z.B. eine Instanz-Funktion oder ein IPS_RequestAction ausführt.

(*) Ich lese bei jeder Aktion dann den Plan aus dem Gerät neu aus und führe den Plan in Symcon nach, falls jemand am Gerät was verstellt hat :slight_smile:

1 „Gefällt mir“

Hmm ja, da könnte Symcon mal überlegen/nachschauen ob das alles so richtig ist vom Ablauf.

Ja, ich würde es ja auch beim Standard belassen; aber mit stört es etwas, wenn man den Wochenplan ändert und der Schaltpunkt dann nicht direkt sofort nachgeführt wird: Daher das gebastel.

Ja, das mache ich auch grundsätzlich.

Meinst du jetzt den Schaltpunkt in Symcon?
Das nachführen gibt es glaube ich nur für Ablaufpläne, aber leider nicht bei dem Wochenplan selbst.

Alternativ halt per Script (aus der Doku) selber nachführen oder halt automatisch.
Dafür kannst du das hier nutzen:

Das Spannende am Wochenplan ist, dass dieser nicht „Transaktionsbasiert“ ist. D.h. jede Parametrierung ruft intern setNextRun auf, welches dann die EM_UPDATE Nachricht versendet. Dadurch sind es auch so viele.

Ich überlege gerade, was du genau brauchst. Denn wenn es um „Ausführung“ geht, dass ist EM_UPDATE nicht das richtig. Das liefert nur denn berechneten Ausführungszeitpunkt. Das ist kein Hook, dass tatsächlich ausgeführt wurde.

Ich könnte ein EM_EXECUTE einbauen, würde aber noch gerne verstehen, wofür du das genau brauchen würdest. Willst du damit Ereignisse überwachen?

Wenn es dies ist, dann macht es evtl. sinn dass wir das mit einer Checkbox direkt einbauen, sodass man den Wochenplan direkt nach der Änderung nachführt. Wie sieht es beim Symcon Start aus → Sollte man dann in diesem Fall auch alle Aktionen einmal ausführen?

paresy