IP-Symcon goes MQTT

Folgendes kann der gute Server ab IP-Symcon 5.1:

  • MQTT 3.1/3.1.1 kompatibel
  • Clients können sich verbinden/trennen
  • 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 :slight_smile:

Gute Nacht und ich freue mich auf euer Feedback,
paresy

Genial paresy.
Ich werde es testen!

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Hört sich spannend an. Hast du vielleicht noch einen Link zum Protokoll etc. für Neulinge in dem Thema?

Gruß

Burkhard

Das ist doch mal ein schöner morgen. Ich bin begeistert! :loveips:

Hardlog

Hier: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf

paresy

Vielen Dank!

Man paresy:D
Das ging ja schnell, ich hätte damit noch nicht gerechnet.:slight_smile:

Dann werden wir uns das mal anschauen und berichten, wie es läuft.

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 :grinning:
Gruss Michael

SUPER!!!

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. :slight_smile:

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. :slight_smile:

Grüße,
Kai

Und ich traue dem Braten noch nicht und warte mal schön die ersten Ergebnisse ab.

Soll denn wirklich schon Weihnachten sein.

Grins

Gesendet von iPhone XS mit Tapatalk

@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. :slight_smile:

Grüße,
Kai

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.

Die Gemüter wäre lange nicht so erhitzt gewesen.

Gesendet von iPhone XS mit Tapatalk

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.

Hallo,

nachdem paresy mich ins Beta Forum Eingeladen hat konnte ich nun diese Neuigkeiten mit großer Freude lesen.

Ich finde es sehr gut das die MQTT Integration nun direkt gemacht wird!

Nur kann ich es nicht nachvollziehen warum es keine Priorität hat und nur in der Freizeit von paresy gemacht werden muss!

Auch denke ich wenn die Versio 5.2 dann irgendwann 2020 kommt es für viele zu spät ist.

Ich habe meine produktiven IPS Systeme auf 4.4 und aktuell auch nirgens mehr eine Subscription.

Tests mit ioBroker sind am laufen denn die Unterstützen MQTT schon seit Anbeginn.

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!

Grüße,
Kai

Man kann es nicht allen Recht machen :slight_smile:

Ich freue mich weiterhin über konstruktives Feedback!

Insbesondere würde mich von euch MQTT Experten interessieren, wie man das Retain sinnvoll abbilden könnte - oder wofür eure Geräte das genau nutzen.

paresy

Retained ist genial weil ich dadurch im micro controller die letzten parameter nicht speichern muss.

Also bei meinem Heizungs Arduino sind fix als Fallback im Code standard Werte für die Heizkreis Regelung hinterlegt.

Denn sobald das Netzwerk wieder da ist bekomme ich die letzten Automatisch…

Bitte mich nicht falsch verstehen, aber es ist einfach schade das dieses Entgegenkommen erst jetzt geschieht.

Vielen Dank für die Native Einbindung von MQTT.
Ich habe es zwischenzeitlich ebenfalls getestet.
Werte kommen in IPS ohne Probleme an.

Wäre Super wenn es doch noch zur 5.1 mit kommt,
auch wenn noch nicht der volle Funktionsumfang drin ist.

Gruß
Giuseppe

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?