[Modul] MQTTSync

MQTTSync
Dieses Modul ermöglicht es Daten aus IP-Symcon zu MQTT zu pushen oder Scripte in IP-Symcon über MQTT auszuführen.

1. Voraussetzungen

  • mindestens IPS Version 5.4

2. Enthaltene Module

  • MQTTSyncClientConfigurator
  • MQTTSyncClientDevice
  • MQTTSyncServer

3. Installation
Über den Module Store!

4. Konfiguration in IP-Symcon
Bitte den einzelnen Modulen entnehme.

Die Dokumentation ist hier zu finden: MQTTSync | DeinSmartHome

5. Spenden

Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:


Amazon Wunschzettel

Grüße,
Kai

Changelog
30.05.2023 - Version 1.1.2
Fix: Alten MQTT Client entfernt
Fix: UTF8 MQTT Fix

15.12.2022 - Version 1.1.1
Neu: Variablen ohne Aktion können auch über das Client System geändert werden
Fix: MQTT Server, wenn kein Topic angegeben ist kamen Fehlermeldungen

17.02.2021 - Version 1.1
Neu: Auf MQTTClient von IP-Symocn umgestellt
Neu: Der Name einer neuen Instanz enthält das Topic
Neu: Variablen werden direkt abgefragt
Fix: Konfigurationsformular überarbeitet

17.02.2021 Version 1.1
Neu: Auf den internen MQTTClient umgestellt
Neu: Variablen werden beim Anlegen eines Gerätes direkt abgefragt
Neu: Konfigurationsformulare neu strukturiert

11.06.2019 Version 1.0

Hi,

ich habe es jetzt mal ausprobiert :), leider befürchte ich nicht 100-ig was ich brauche.

Da es ja auch schon etwas „älter“ ist die nicht despektierlich gemeinte Frage: „Planst Du noch größere Arbeiten?“ :rolleyes:

Da ich ja etliche IPS-Systeme habe, bräuchte ich eher x zu n Zuordnungen der Systeme :eek: Vermutlich würde ich hierfür x MQTT-Sync-Server brauchen :rolleyes: …

Besten Dank im Voraus

Ciao
HerbertF

Ich habe die Nacht noch eine neue Version eingereicht. Diese funktioniert nun mit dem internen Client.

Ich glaube du kannst auch mehrere Sync Clients mit einem Sync Server nutzen, ich habe es selbst noch nicht versucht.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Guten Morgen,

habe sowohl Client als auch Server Konfigurator installiert. Der Topic ist dann bei beiden symcon. Bei den zu übertragenden Daten ist der topic dann symcon/xxx oder nur xxx?
Mein Client ist verbunden und im Debug des MQTT Clients kommen Daten. Wenn auch nur einzelne.
Im Client Konfigurator sehe ich keine zu erstellenden Instanzen.

Was mach ich falsch?

Danke, Sebastian

Wenn ich auf Variablen senden klicke, dann bekomme ich folgende Meldung. Eine bool Variable und ein Script im Server Konfigurator.
beta Version 1.1

Ich habe den Post mal in den richtigen Thread verschoben.
Wenn du im Server die Variablen oder Instanzen angelegt hast, welche du synchronisieren möchtest, musst du die Konfiguration zum Client senden, danach die Variablenprofile und dann die Variablen.

sync.png

Grüße,
Kai

Kannst du mir mal die Konfiguration zeigen?

Grüße,
Kai

Vorhin alles wieder gelöscht. Jetzt neu angelegt und erscheint direkt. Weiss nicht was ich anders gemacht habe.

Ich synce jetzt ein Dummy Modul.
Darunter eine Variable. Wird gesynct. Aber nur in eine Richtung. Server pusht zu Client.
Das Script das auch darunter liegt aber nicht.

Das geht also nur für Variablen.

Richtig?

Danke, Sebastian

Zur Zeit werden nur die Variablen synchronisiert.
Wenn diese Variablen aber Aktionen haben, solltest du diese auf dem System auch ausführen können.

Grüße,
Kai

Hallo Kai,

da meine Fragen hier: MQTT für Dummies eventuell untergegangen sind, füge ich diese hier mal an. Gehören ja eigentlich auch hier her.

  1. Problem mit doppelten Variablen. Siehe hier: https://community.symcon.de/t/mqtt-fuer-dummies/123302/7?u=timloe

  2. Ich habe mal weiter mit der Beta-Version getestet. Ist es möglich als Namen der Instanz, die der Client anlegt, das MQTT-Topic zu verwenden? Bei mir nimmt der Client die Namen der Variablen der Server-Seite. So habe ich jetzt auf der Client-Seite 32x LOW_BAT und kann so nicht mehr gut unterscheiden woher das kommt.

  3. Wie bekomme ich die Zustände zurück. Beispiel:

  • Variable auf Server-Seite wird auf true geschaltet
  • True kommt auf der Client-Seite in der Variable an

Was muss ich nun tun, damit:

  • wenn ich auf der Client-Seite die Variable wieder auf false schalte
  • diese auch auf der Server-Seite auf false geht

Muss ich Server/Client nochmals „umgedreht“ anlegen? Oder geht das eventuell anders Das ist mir nicht ganz klar. Wäre schön wenn Du da für mich etwas Licht ins Dunkel bringen könntest.

LG
Tom

Hallo Kai,

leider bekomme ich den „MQTT Sync Client Configurator“ nicht erstellt. Der Sync Server geht.

<br />
<b>Warning</b>:  Modul mit der GUID {EE0D345A-CF31-428A-A613-33CE98E752DD} nicht gefunden in <b>C:\ProgramData\Symcon\modules\.store\info.schnittcher.info.ips.mqttsync\MQTTSyncClientConfigurator\module.php</b> on line <b>11</b><br />
 (Code: -32603)

Tom

@KaiS Hast Du eine Idee warum ich den Configurator nicht erstellen kann?

Kannst du mal die Beta Version nutzen?

Grüße,
Kai

Mit der Version aus dem Beta-Kanal kann ich den Configurator erstellen. Auf der Client-Seite werden einige Variablen doppelt erstellt.

So sieht es auf der Server-Seite aus:
image

Der Client erstellt daraus:
image

Liegt bestimmt an der Benennung. Kannst Du das ändern?

Nun ist mir noch nicht ganz klar, was muss ich machen um bei einer Änderung der Variable auf der jetzigen Client-Seite den Wert in die dazugehörige Variable auf der Server-Seite zu bekommen?

LG
Tom

Da scheint es wirklich einen Bug zu geben.
Es wird komplett synchronisiert, das heißt, auch Variablen Aktionen, wenn du auf der Serverseite keine Aktionen hast, dann kannst du auf der Client Seite natürlich nichts verändern.

Grüße,
Kai

@KaiS
Hier verstehe ich eben nicht ganz was zu tun ist…

Beispiel:

  • Variable auf Server-Seite wird auf true geschaltet
  • True kommt auf der Client-Seite in der Variable an

Was muss ich nun tun, damit:

  • wenn ich auf der Client-Seite die Variable wieder auf false schalte
  • diese auch auf der Server-Seite auf false geht

Das ist mir nicht ganz klar. Wäre schön wenn Du da für mich etwas Licht ins Dunkel bringen könntest.

LG
Tom

@KaiS
Hast Du einen Tipp zu o.g. Szenario?

Ich habe mal weiter mit der Beta-Version getestet. Ist es möglich als Namen der Instanz, die der Client anlegt, das MQTT-Topic zu verwenden? Bei mir nimmt der Client die Namen der Variablen der Server-Seite. So habe ich jetzt auf der Client-Seite 32x LOW_BAT und kann so nicht mehr gut unterscheiden woher das kommt.

LG
Tom

Das Modul ist zur Zeit nur dafür ausgelegt, dass du Geräte synchronisieren kannst oder Variablen, welche Variablenaktionen besitzen. Wenn du dir selbst Variablen anlegst und diese synchronisieren willst, dann benötigt diese Variable eine Aktion.

SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

Grüße,
Kai

In der aktuellen Beta Version sollte nun in Klammern das MQTT Topic stehen.

Das Problem sollte auch behoben sein.

Grüße,
Kai