Clients können Nachrichten auf Topics schicken (QoS 0-2)
Clients können Topics (inkl. Filter +/#) abonnieren (Diese werden immer mit QoS 0 gesendet)
Clients können sich mit Benutzername/Kennwort authentifizieren (Ziemlich uncool ohne TLS! @Nall-Chan)
Folgendes kann der Server ab IP-Symcon 5.3:
Retain (ab 5.5 auch Persistent)[/li][li]Session Management (Siehe Timeout und Queue Limit Einstellungen im Server)[/li][li]Last Will/Testament[/li][li]Publish eines Clients wir nur in IP-Symcon ausgewertet und nicht an die anderen Clients weitergeleitet
Folgendes kann der Server/Client ab IP-Symcon 5.5:
Es gibt einen passenden MQTT Client![/li][li]TLS (Client Socket, Server Socket)
Folgendes fehlt noch: (Auszug)
QoS 1-2 beim Senden[/li][li]Timeouts (z.B. fehlendes Keep Alive (ToDo: Ebenfalls Last Will versenden!))
Publish auf ein Topic senden:
//Die ID der Variable einer MQTT Device Instanz
RequestAction($id_der_variable, "DeinTollerWertZumPublishen");
Informationen für Modul-Entwickler:
Es gibt eine simple MQTT Device Instanz, welches ein Topic und eine simple Typ-Konvertierung als Einstellung hat. Dies ist zum Testen und Spielen sicherlich cool, für richtige Geräte würde ich empfehlen ein PHP-Modul zu bauen, welche ggf. mehrere Topics direkt überwacht/befeuert.
Somit hier die Datenfluss GUIDs für euch PHP-Modul Entwickler:
GUID vom MQTT Server (Splitter): {C6D2AEB3-6E1F-4B2E-8E69-3A1A00246850}
TX (vom Modul zum Server)
{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}
{
"PacketType": ... Integer laut Protokoll...
"QualityOfService": 0,
"Retain": false,
"Topic": "/blub/blubber/switch",
"Payload": "an"
}
RX (vom Server zum Modul)
{7F7632D9-FA40-4F38-8DEA-C83CD4325A32}
{
"PacketType": ... Integer laut Protokoll...
"QualityOfService": 0,
"Retain": false,
"Topic": "/blub/blubber/switch",
"Payload": "an"
}
Ansonsten ist das Protokoll tatsächlich sehr schick durchdacht und gut beschrieben. Lob an die, die es gemacht haben
Gute Nacht und ich freue mich auf euer Feedback,
paresy
Super, habe am WE Ninja auf Win 10 zum Testen installiert (Produktivversion ist zur Zeit RASPI) um, durch’s Event motiviert, ein bisschen in die Modulprogrammierung reinzuschnuppern…hab zumindest schon mal das Zusammenspiel mit Github ans Laufen bekommen…
Da kommt die Einladung zum Test gerade recht
Gruss Michael
I am currently using a modified MQTT Client module based on thomasf68’s work to receive MQTT messages from a Wago 750-881 that runs Sebastian Rau’s CodeSys 2 MQTT library. Works really well. I have created a ‚Double Push Button‘ module that detects left, right, double and short and long presses of a double push button. Response is super fast, much better than modbus polling. Wago offers MQTT libraries for newer PFC100 and PFC200 controllers. So MQTT is not only a nice addition for ‚Bastler‘ who are playing with ESP32s, but also to communicate with industrial hardware.
Der Server läuft super, das MQTT Device funktioniert auch, wenn man das komplette Topic angibt.
Ich werde mal für mein Shelly oder Tasmota Modul einen extra Branch machen, der dein Server nutzt.
Die Tasmota Geräte können noch nicht richtig funktionieren, da der Server noch nicht auf das Subscriben vom Group Topic (cmnd/sonoffs/#) reagiert.
Aber cool, was du in der kurzen Zeit umgesetzt hast.
@Boui, die ersten Tests liefen super! Es wird sicherlich noch dauern, bis alles zu einwandfrei funktioniert.
Aber die Daten kommen am Server in IPS schon ohne Probleme an.
Ich weiß ja nicht, wie ihr Michael überzeugen konntet aber im Nachhinein hätte man die ganze Diskussion im Forum zu dem Thema leicht ins Positive wenden können.
Dann testet mal fleißig weiter ;-). Wenn das einigermaßen stabil laufen sollte würde ich mich auch über eine Kurzanleitung freuen wie das dann in einem Beispiel mit einem Gerät einzurichten ist.
Wenn du keine Subskription hast, kannst du sowieso keine Neuerungen erwarten.
Es gibt eine Lösung mit dem MQTT Client und dem Broker um MQTT in IPS zu bekommen.
Wir sollten uns einfach freuen, dass paresy sich die Zeit nimmt und dies sogar in seiner Freizeit macht.
Das IPS Team, hat ziemlich viele neue und coole Features in der letzten Zeit umgesetzt, sowas sollte man auch nicht vergessen!
Wie kann ich denn was publishen? Wenn ich den MQTT_Publish Befehl benutze bekomme ich direkt einen Fehler angezeigt.
Die InstanceID ist doch die ID des MQTT Servers, oder?