MQTT Bridge über JSON RPC

Hallo Zusammen,

ich arbeite gerade an einer Bridge zwischen IP Symcon und einem MQTT Broker.

Eine kleine Java Anwendung die parallel zu IPS läuft frägt in einer Schleife mit der Funktion IPS_GetSnapshotChanges alle Änderungen auf dem Event Bus ab seit der letzten Anfrage. Derzeit werden alle Variablen Änderungen (Message =10603) als Topic an den Broker published. Das funktioniert auch wunderbar.

Nun zu meiner Frage, da ich auch einen Rückkanal implementiere um über MQQT in IPS Variablen zu setzen stehe ich vor Folgendem Problem:
Wenn entsprechend dem MQTT Topic in IPS eine Variable geändert wird bekomme ich selbstverständlich beim nächsten Aufruf von GetSnapshotChanges eben genau diese Änderung auch wieder zu sehen. Wie kann ich feststellen ob diese Änderung von mir selbst (dem Java Programm) ausgelöst wurde oder Beispielsweise über das Webfront, die Hardware oder eine sonstige Anwendung die auf JSON RPC zugreift.

Ein weg wäre ich merke mir alle Topics mit werten die ich in IPS ändere seit dem letzten Aufruf von IPS_GetSnapshotChanges und filtere diese nach dem nächsten Aufruf wieder heraus. Vielleicht gibt es ja noch einen Eleganteren weg.

Eine zweite Frage bzw. Diskussionsgrundlage: Ich habe mich noch nicht genau festgelegt wie meine Topics und der Payload genau aussehen werden, was haltet ihr von dem Proposal mqtt-smarthome, sieht erst mal nicht schlecht aus, aber vielleicht hat schon jemand Erfahrungen wie man das Strukturieren könnte.

Hallo,

wie ist dein aktueller Stand mit der Anbindung von MQTT? Läuft es in beide Richtungen? Kannst Du uns dazu mehr sagen bzw. (programmiertes) zeigen?

Ist es von SYMCON aus mal angedacht MQTT in IPS zu integrieren bzw. eine Schnittstelle zur verfügung zu stellen?

Gruß
hardlog

Hi,
danke für das Interesse an meinem Projekt, wegen Urlaub und Familiären Ereignissen habe ich die letzen Wochen hier nicht viel gemacht, aber der Narichtenaustausch funktioniert in beide Richtungen Problemlos ohne doppelte oder verschluckte Events. Derzeit werden nur String Datentypen unterstützt, das zu erweitern ist aber ein leichtes und es ist alles noch etwas Quick and Dirty und im ehr im Status einer Machbarkeitsstudie.

Was mir noch fehlt wäre ein Konzept über den Aufbau des Topic Trees und des Payloads. Außerdem fehlen noch Metadaten über variablen wie änderbar in IPS, Datentyp usw…; Ein Standard wäre hier nicht schlecht.

Wenn jemand Interesse an den Sourcen hat kann ich die gerne zur Verfügung stellen, bitte PM mit eMailadresse.

Eine in IPS integrierte Lösung wäre mir allerdings lieber als eine externe Anwendung. Derzeit bin ich auch noch etwas mit dem ESP8266 beschäftigt den ich gerne als Plattform für meine Aktuatoren und Sensoren verwenden möchte, aber auch hier fehlt grad etwas die Zeit. Daher weiß ich nicht wann ich mich wieder mit der IPS2MQTT Bridge beschäftigen kann.

Grüße

ich selber hatte zwar mit MQTT noch nichts zu tun, Bekannte die aber vor allem mit FHEM und OpenHab arbeiten berichten das das Protokoll extrem stark „im Kommen“ ist. Da wäre es für IPS ja auch schön eine Unterstützung in der Schnittstellen-Liste anbieten zu können…

Mangles IPS-Unterstützung habe ich mich ehrlich gesagt damit noch nicht beschäftigt, denn das wären dann 2 Baustellen auf einmal. Kurz gesagt +1 für direkte Unterstützung :smiley:

Vielleicht ist das für manche interessant? (leider erst ab IP-Symcon 4.0 nutzbar):

mkretzschmar/SymconMQTT · GitHub

Kann derzeit aber nur Daten versenden (Publish) und ist in einem frühen BETA-Stadium…

Allerdings sind auch beim Publisher einige Funktionen noch nicht implementiert: Verwendung der Authentifizierung sowie LastWill/Testament.

Hallo,

ich kann auch nicht Verstehen warum MQTT nicht von Symcon selbst Unterstützt wird! Hab deshalb mal einen Post hier erstellt.