Synchen zweier Status z.B. KNX und MQTT ohne Messagedopplung

PS
Und immer noch keine Antwort seitens Symcon …

Auch wenn ich nicht Symcon bin…
Aktiver Code für die jeweilige Hardware ist nur den den Bauplänen (Modulen) vorhanden, welche dann durch instanzieren von Objekten (Instanzen in IPS) zu leben erwachen.
Somit ist es technisch gar nicht möglich ohne eine Instanz irgendwas anzusprechen.
Michael

Mir geht es eher darum, dass ein Ereignis ‚im Kreis‘ läuft, wenn man stumpf zwei Instanzen (z.B. KNX und MQTT) mit ‚bei Aktualisierung‘ über Kreuz aneinander setzt. Dafür gibt es keinen einfachen Weg in Symcon.

Hast du ein Beispiel?
@lainuks hatte eins im discord geschrieben und auch da benötigt man das nicht.
Michael

Konkret: Ich habe eine WLAN Steckdose (MQTT) mit Taster (mit Rückmeldung) an der Steckdose sowie ein zweiten Kreis mit KNX (ebenfalls KNX Taster sowie KNX Aktor). In Symcon habe ich jetzt genau zwei Status Variablen mit Aktion (an zwei Instanzen).

Einfaches Vorgehen wäre jetzt: jeweils auslösendes Ereignis bei ‚Aktualisierung‘ (bzw. Änderung) der korrespondierenden Variable. Das läuft dann aber im Kreis.

Wie gut kennst du KNX?

Das Problem in diesem Zusammenhang ist, dass es bei KNX neben dem Schaltbefehl auch eine Rückmeldung des Aktors gibt, die beide auf dieselbe Instanz wirken („hörende Grupenadresse“). Wenn der Aktor seinen Zustand ändert so ändert sich der Rückmeldewert der von KNX an die Instanz gesendet wird, du kannst aber nicht unterscheiden ob die Quelle der Änderung in KNX war oder durch das zweite System angestossen wurde. Damit hat leider man ungewollt besagte Schleife gebaut, wenn man einfach bei Änderung das jeweils andere System synchronsieren will.

Mit dem Problem ärgere ich mich auch schon lange herum überall dort, wo IPS zwischen KNX und einem anderen System synchronisieren soll. Das ist immer viel Aufwand für jede einzelne KNX Instanz.

1 „Gefällt mir“

Wenn hier KNX ‚nur‘ Der Taster ist, kann man mit vertauschter Haupt- und Rückmeldeadresse und ‚hören auf Hauptadresse deaktivieren‘ hier etwas ‚mogeln‘ und es sich einfacher machen.

Wenn du nicht weißt, woher eine Statusänderung kommt, wird ein „beiderseitiges“ Synchronisieren immer die Gefahr einer Rückkopplung/ Endlosschleife bergen. Workaround ist, per Skript die Zeitstempel zu prüfen und damit eine „Zwangspause“ einzubauen. Auch nicht ideal.

Besser ist: Du synchronisierst gar nicht, sondern leitest die Statusrückmeldung weiter in die eine Richtung und Schaltbefehle in die andere. Jedes Gerät existiert in seinem System und wird von dem anderen „nur“ ferngesteuert bzw zeigt eine Rückmeldung an. Das „Spiegeln“ ist in den allerseltensten Fällen sinnvoll.

Jein, ich habe das schon alles gelöst aber mit Hilfsinstanzen und Scripten. Lästig.

Das wäre einfach, aber man verliert Funktionalität. Beispiel Sonos, wo ich per KNX oder auch direkt am Gerät ein/ausschalten möchte und dann den Status beider Welten (Sonos-Instanz und Sonos@KNX) synchron halten muss.

Eine smarte Lösung zur Synchronsierung von KNX mit anderen Systemen wäre schon fein, anstatt alles selbst scripten zu müssen. IPS wäre im KNX-Umfeld eigentlich gut aufgestellt als Gateway zu anderen Systemen … aber genau an dieser Stelle wird’s dann doch lästig, Neueinsteiger werden da aufgeben.

1 „Gefällt mir“

Vielleicht verstehe ich das auch komplett falsch, aber was soll denn an Funktionalität verloren gehen? Was musst du synchron halten?

Interessiert mich wirklich, das Problem bzw. die Notwendigkeit zu verstehen.

Wenn ich es recht verstehe, hast du bspw einen KNX-Taster, der eine Sonos-Büchse ein/aus schalten kann und eine Kontrollleuchte o.ä. die den Powerstatus der Sonos-Büchse beim KNX-Taster anzeigt. Das würde ich dann (ohne dass ich KNX besonders kenne) tendenziell so lösen: Der Taster sendet ein Signal an IPS; IPS schaltet dann entsprechend das Sonos-Dings. Wenn sich der Powerstatus in der Sonos-Instanz ändert, sendet Symcon wiederum das entsprechende Signal gen KNX zur Kontrollleuchte.

Oder stelle ich mir das viel zu einfach vor?

Du stellst es dir tatsächlich zu einfach vor, wahrscheinlich ist das Problem für Nicht-KNX-Nutzer schwer fassbar weil sie die Implemetierung von KNX und von KNX in IPS nicht kennen.

Du denkst zu hardwarenah, es geht nicht um eine Kontrollleuchte die man in IPS einzeln anspricht.

Es gibt eine KNX-Gruppenadresse über die geschaltet wird und eine weitere für Rückmeldung/Status. Diese beiden teilen sich in der IPS KNX-Instanz aber eine gemeinsame Variable, was innerhalb der KNX-Welt auch sinnvoll ist.

Warum es nun ein Problem gibt: Wenn man auf Änderungen der Variable triggert so löst das aus beim Schalten ebenso wie bei Statusänderungen, das unterscheidet IPS hier nicht. Wenn man also den Status synchronisiert so triggert dies das ausgelöste Ereignis ebenso wie beim Schalten, und das löst dann wiederum ein Schalten des angekoppelten Systems aus. Damit ist das einfache „über Kreuz aktualisieren“ von KNX und Fremdsystem also nicht möglich, weil man eine Schleife baut.

2 „Gefällt mir“

Ich denke, ich verstehe es jetzt zumindest etwas besser. Danke dafür. :blush:

aber mal ganz blöde gefragt, „Status Emulieren“ ist aus? In dem Fall sollte er ja beim „ansteuern“ der Variable per RequestAction diese erst ändern wenn dies wirklich im KNX-System passiert.

Danke für dein Engangement, aber wie gesagt: ich habe es für mich bereits vor einigen Jahren umständlich gelöst mit Scripts und Hilfsinstanzen. Mir fehlt momentan auch die Zeit, alternative Lösungen zu testen.

Wie aus dem Theread ersichtlich stehen irgendwie alle KNX-Nutzer vor diesem Problem und die Nicht-KNX-Nutzer können es nicht nachvollziehen.

4 „Gefällt mir“