Einfache MQTT Client Umsetzung im Modul

Hallo zusammen,
ich es habe gesucht, aber nicht gefunden.

Ich suche eine Vorlage um über ein Modul bzw. in einem Modul einen Mqtt Client umsetzen kann.
Benötigt wird es für eine Implementierung von ECoFlow.

(Über Script und Mqtt Client & Mqtt Client Konfigurator geht es.)

MQTTsync von Kai oder simple MQTT sending Tool könnte eventuell interessant sein oder jedes andere Modul mit MQTT.

Schau dir einfach mal verschiedene Module a die MQTT sprechen.

Habe bei mir Client und Server drin:
GitHub Modul

Du kannst die ruhig nen Ganz alten Stand anschauen. Da ist die restliche Implementierung noch einfacherer (noch nicht so modulaisiert), am MQTT selbst hat sich nichts geändert.

1 „Gefällt mir“

Willst du wirklich ein Modul schreiben?
Weil dafür haben wir PHP-Module (Entwicklung)
Und Module können über den MQTT Client/Server in Symcon einfach Nachrichten senden und empfangen.
Michael

ich danke euch schon mal.

und ja ich wollte ein Modul schreiben damit die Konfiguration des MQTT Clients automatisiert erfolgt.
Also stelle ich mir die Frage, wie ich innerhalb eines Moduls den MQTT Client konfiguriere und starte.

Dafür gibt es entsprechende Funktionen wie GetConfigurationForParent. Wo man eine Konfiguration vorgeben kann.
Ebenso können Instanzen beim anlegen automatisch ihren Parent (hier den MQTT Splitter) mit RequireParent erzeugen.

Wobei ich jetzt nicht weiß, warum du dem Client eine Konfig vorgeben willst, außer Username und Passwort…
Michael

Hi,
für die EcoFlow Umsetzung werden UserName und PW, URL als auch SerienNummer (Anteil des Topics) ,ausgelesen über einen HTTP Zugriff, an den Client übergeben…
Das kann man natürlich auch Manuel eintragen, automatisiert wäre jedoch definitiv schöner

Hi Nall-chan,
danke für deine Tip.
Ich konnte einen MQTT Client Splitter erzeugen und mit (hoffentlich noch) etwas manueller Konfiguration empfängt er auch Daten.
Schritt 1 geht somit.
Jetzt stellen sich die nächsten Fragen.
Nach einiger Zeit bricht die Verbindung ab, es fehlt ein Handshake .
Wie kann ich jetzt das Handshake aktiveren? Wie sendet man Daten?
Bei den Interfaces zu UDP etc kam ich mit Beschreibungen in der Symcon Doku klar.
Hier konnte ich es nicht finden.

Hilft dir das Datenpaket für den Datenaustausch?
Ist eigentlich identisch wie beim empfangen.

    /** @var mixed $MQTTDataArray
     *  Vorlage Daten Array zum versenden an einen MQTT-Splitter
     */
    private static $MQTTDataArray = [
        'DataID'           => '{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}',
        'PacketType'       => 3,
        'QualityOfService' => 0,
        'Retain'           => false,
        'Topic'            => '',
        'Payload'          => ''
    ];

Michael

1 „Gefällt mir“