[Modul] MQTTSync

So ich habe die Beiträge alle in diesen Thread verschoben.
Bitte teste nun mal alles.

Grüße,
Kai

Passt! Vielen Dank!

Macht es leider bei mir nicht. Es gibt auf der Serverseite eine String-Variable mit Aktionsskript. Diese wird auf der Client-Seite ordentlich angelegt (jedoch hier ohne Aktionsskript). Ändere ich nun die Variable auf der Client-Seite, kommt der neue Wert auf der Server-Seite nicht an. Auch wenn ich händisch der Variable auf der Client-Seite auch einen Aktionsskript verpasse.

LG
Tom

Du darfst die Variable nicht über die Console ändern, sondern musst diese über das Webfront ändern oder mit RequestAction.

Grüße,
Kai

Und schon geht es. Danke!!!

Mir ging es ähnlich wie Tim, dass ich da am Anfang ganz schön gerätselt habe, welche Seite jetzt Server und welche Seite Client ist. Dann musste ich auch komischerweise viel probieren und plötzlich ging es. Wahrscheinlich hatte ich mich da mit einem Denkfehler verrannt. Jetzt läuft es jedenfalls.

Eine Verständnisfrage habe ich jedoch noch. Auf dem Client (Ziel-IPS) werden ja neue Variablen angelegt, wo die übertragenen Werte hingeschrieben werden (zumindest ist das mein bisheriger anfänglicher Erkenntnisstand). Da ich vor dem MQTTsync die ganze Schnittstelle von einem RasPi per ser2net übertragen habe und somit auf dem Ziel-IPS den Splitter nur auf die neue I/O-Instanz umhängem musste und die ganzen Variablen danach so belassen konnte, wäre das mit neuen Variablen sehr aufwändig.
Gibt es die Möglichkeit, per MQTTsync die ganze Schnittstelle (z.B. serieller Port oder Deconz-Adapter) ins Ziel-System zu pushen und dort an den vorhandenen Splitter zu übergeben?

Wieso musst du rätseln was der Server und was der Client sein soll?
Der Server ist derjenige, welcher die Daten besetzt und verschicken soll. Die Client derjenigen, welcher die Daten annimmt und ggf. verändern kann.

Nein, die Instanzen sind ja MQTTSync Instanzen, an diese kannst du keine anderen Splitter anhängen.
Das Modul synchronisiert keine Konfiguration von Symcon sondern Daten.

Grüße,
Kai

Meine Frage war, ob es eben möglich ist, statt Werte zu synchroniseren ganze Datenströme aus Schnittstellen so wie bei ser2net.

Nein, es sind nur Variablen und Instanzen möglich.

Die Idee könnte aber auch interessant seine

Grüße,
Kai

Immer wieder schön, wenn man einen Entwickler herausfordern kann.

Wie gesagt, damit könnte man an „entfernten“ Systemen (andere Etage oder Keller) angeschlossene Geräte direkt an das Hauptsystem übertragen und dort dann mit Splitter und Instanzen weiter verarbeiten. Sonst muss man eben erst Instanzen auf dem Quell-System anlegen, die Synchronisierung der einzelnen Instanzen definieren und auf dem Ziel System auch wieder.

Im Moment habe ich aber leide keine Zeit dafür.

Grüße,
Kai

Seit gestern ist die neue Version auch im Stable Kanal verfügbar.

Grüße,
Kai

Also irgendwas ist bei mir plötzlich faul. Heute war mein Rechner fest geworden, auf dem der Sender des MQTTSync läuft. Nach einem Neustart werden keine Daten mehr bis in die letzte Instanz synchronisiert. Irgendwie stehe ich auf dem Schlauch, weil es bis dahin lief und ich nicht verstehe, warum das jetzt nicht mehr geht?
Folgende Konfigurationen und Feststellungen:
Senderseite
MQTT Sync Server (Konfigurator) sendet Daten der eingestellten Objekte
MQTT Server als Gateway (Splitter) sendet die Daten weiter
Server Socket (I/O) im Debug sind die Daten dann nicht mehr zu sehen

Empfängerseite
Client Socket (I/O) empfängt Datenpakete
MQTT Client (Splitter) empfängt die Daten und im Debüt steht auch „SendDataToChildren“
MQTTSyncClientDevice empfängt jedoch keine Daten

Was ich auch festgestellt habe, wenn ich im MQTT Sync Server ein neues Gerät anlege und die Datensynchronisiere, dann tut sich im MQTT Sync Client Configurator nichts.

Was ist da faul? Ich stehe auf dem Schlauch, da es bis zu dem Absturz funktioniert hat und ich nichts verändert habe.

Kannst du mal die einzelnen Debugs posten?

Grüße,
Kai

Anbei die Debugs. Im Empfänger bleiben die Debugs von MQTTSyncClientDevice und MQTTSyncClientConfigurator leer.
In dem Beispiel werden der Wert und Zählerstand des D0-Zählers (Bezug/Einspeisung) übertragen. Ob jetzt das ä bei Zählerstand Probleme macht weiß ich zwar nicht, aber zumindest müsste dann Bezug_Leistung gehen.
Empfänger_ClientSocket(I:O).txt (14,5 KB)
Empfänger_MQTTClient(Splitter).txt (34,1 KB)
Sender_MQTT-Server(Splitter).txt (14,5 KB)
Sender_MQTTSyncClientConfugurator.txt (20,2 KB)
Sender_ServerSocket(I:O).txt (15,9 KB)

Ich habe deinen Beitrag damals übersehen, sorry. Wie sieht es aus, funktioniert das Modul bei dir wieder?

Grüße,
Kai

Alles gut, Kai! Ich habe das Thema nicht weiter verfolgt und eine andere Lösung gefunden. Aber nicht, weil du mir etwa nicht geantwortet hast sondern weil mir das sowieso nicht die beste Möglichkeit war. Ich wollte es einfach mal ausprobieren.
Ich habe es mit Hilfe geschafft, den USB-Zähler direkt an meine Synology zu hängen und die Daten im Docker zu empfangen. Das läuft seit dem stabil.

Hallo,
bei dem Versuch einer Variabel Types Bool zu Mappen bekomme ich immer die Fehlermeldung.
„Notice: Undefined variable: ObjectID in /var/lib/symcon/modules/.store/info.schnittcher.info.ips.mqttsync/MQTTSyncServer/module.php on line 333“

Ich schaue mir das morgen an und melde mich.

Grüße,
Kai

Hätte da noch eine Frage,
wenn ich die gemappten Variablen mittels eines MQTT Clients lesen und schreiben möchte. Gibt es da ein Trick.
Das Lesen klappt aber das Schreiben nicht.
Verwende „MQTT-Explorer-0.4.0“ unter Windows als Client.

Das funktioniert bei mir sofort.
Kannst du mal ein Screenshot posten, mit welcher Konfiguration du es versucht.

Das Topic wäre: mqttsync/„GroupTopic“/„GeräteTopic“/set

Grüße,
Kai