Parent‑Wechsel erkennen: MessageSink triggert nicht

Ich habe ein Modul unter Symcon 8.2. Es hängt an einem MQTT Client (Parent).

Wenn ich nun im Instanz‑Formular den Parent wechsle, dann möchte ich das mitbekommen, um neu zu konfigurieren (Base Topic/Filter).

Dazu registriere ich IM_CHANGESETTINGS auf der eigenen Instanz und IM_CHANGESTATUS/IM_CHANGESETTINGS auf dem Parent. Zusätzlich Log in MessageSink. Beim Parent‑Wechsel bleibt aber alles still.
Gibt es einen speziellen Message‑Typ oder eine empfohlene Methode, um Parent‑Wechsel zuverlässig zu erkennen, ohne Polling?

Ja, du willst auf FM_CONNECT reagieren :slight_smile:

Hintergrund: Die Parent Änderung ändet nichts an der Konfiguration der Instanz, sondern am Datenfluss der intern über den FlowManager gepflegt wird. Der sendet dann die FM_CONNECT Meldung. Denk daran die Nachricht im Create zu abonnieren :slight_smile:

paresy

Perfekt! das wollte ich schon immer mal :slight_smile:

image

Danke für das schnelle Feedback!

1 „Gefällt mir“

Ich habe mir schon vor Jahren dafür was gebaut, weil man ja auch wissen will wenn es keine Verbindung mehr gibt (FM_DISCONNECT) und auch das IM_CHANGESTATUS vom alten Parent entfernen und auf den neuen registrieren will.
Dazu wird der ‚aktuelle‘ Parent in einem Buffer gemerkt.

Edit: Wobei ich nieeee mehr verifiziert habe, ob inzwischen HasActiveParent bei fehlenden Parent inzwischen ein false zurück gibt, das war mal anders…