Frage zu MQTT-Module von thomasf68

Hi,

stehe gerade etwas auf dem Schlauch:
Was für eine Bedeutung hat bzw. was muss in das Feld „MQTT ClientID“ siehe ScreenShot:
01.JPG

Gruß
hardlog

Das ist nur der Name, mit dem sich der Client beim Broker anmeldet. Such dir was aus. :smiley:

Edit: Wenn du mein Modul auch noch am laufen hast und beide die selbe ID haben knallt es natürlich.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Hi Kai,

also ist die ClientID wurscht? Oder brauche ich die publisher-seitig irgendwie?

Nein, dein Client läuft nicht parallel! Aber irgendwie komme ich nicht auf einen grünen Zweig.

Das tasmota-Problem schildere ich auf dem entsprechenden Forumteil weiter…

Gruß
hardlog

Hallo zusammen,

Also ich hab ESP mittels Arduino- Umgebung geflasht, pub/sub. Auf meinem Raspi läft IPS und MQTT- Broker. Jetzt die Frage:
Nehme ich in IPS das Modul von Thomas oder Kai? Ich möchte verteilen und abbonieren.
Ich habe hier im Forum die letzten Tage gelesen, konnte jedoch nicht herausfinden, was zu den ESP8266 am besten passt ?

Gruß,
Michael

Hallo,

welche Firmware ist drauf?
Wenn du mein Tasmota Modul nutzen willst, musst du den Client von mir nehmen.

@hardlog, die ID kannst du dir aussuchen, brauchen tust du sie eig. nicht.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Also ich habe Symcon 5 drauf. Deine Module sollten darauf laufen?

Ich meine welche Firmware du auf den ESPs hast.
Meine Module laufen mit IP-Symcon 5.

Grüße,
Kai

Hallo Michael,

nimm das Modul von Kai. Es wird gepflegt und wenn es Probleme gibt, kannst Du Kai immer fragen. Das Modul von Thomas hatte ich in Kombination mit ESP. Es hat regelmäßig den Socket geschlossen. Ich bin auch deshalb von MQTT wieder weg.

Grüße, Gerhard

Genau, das Problem hatte ich am Anfang mit dem Modul auch, auch aus dem Grund habe ich es etwas umgebaut und mittlerweile läuft der Client bei uns echt stabil.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Das kann ich bestätigen. Seit dem Umbau gab es keine Probleme mehr.

Ein Sonoff hatte sich mal aufgehängt aber das liegt nicht am Modul.

Gesendet von iPhone XS mit Tapatalk

…ach so, also ich habe die Version 2.7.0 vom PubSubClient drauf. Lauf Info wird das neueste MQTT 3.1.1 Protokoll unterstützt.

So, jetzt habe ich den IPS-KS-MQTT Client IPS-Tasmota in IPS eingebunden.
Bin jedoch völlig überfragt wie es jetzt weitergeht?

Instanz hinzufügen, ok - nur welche?
IPS_Tasmota, IPS_Tasmota_LED oder IPS_TasmotaSwitchTopic?

Also im Prinzip würde ich gerne Testweise einen Wert empfangen, den ich beispielsweise in der RASPI-Konsole mit dem Kommando:

mosquitto_pub -d -t /home/data -m „12,45“

publiziere.

Wie komme ich jetzt an den Wert „12,45“ in IPS???
Kennt jemand eine Anleitung hier im Forum? Gerne einen Link, ich lese mich dann selber ein.

Bisher schon mal vielen Dank an alle, die mir hier gerade helfen…

Gruß,
Michael

Das Tasmota Modul ist nur für ESPs, die mit der Tasmota Firmware (GitHub - arendst/Sonoff-Tasmota: Provide ESP8266 based itead Sonoff with Web, MQTT and OTA firmware using Arduino IDE or PlatformIO) geflasht sind.

Du kannst bei dem MQTT Client den Modul Typ auf Script stellen und ein Handle Script hinterlegen. Dort kannst du dann alles abfragen, was am Client ankommt.

Wie das funktioniert kannst du in der Doku von thomasf68 nachlesen: IPS_MQTT/README.md at master · thomasf68/IPS_MQTT · GitHub

Wie gesagt ich habe den Client nur soweit erweitert, dass ich ihn in Modulen nutzen kann und das er stabil läuft.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

So ich habe euch mal ein Script geschrieben:

<?

$topics = array("rfid_reader", "sonoff195"); //Topics die eingelesen werden sollen
$id_parent = 17130; // Kategorie ID, unter der die Geräte abgelegt werden sollen
$MQTTInstanzID = 57680; // ID vom MQTT Client

    if($_IPS['SENDER']=='MQTT_CONNECT'){
            $topic = "#";														
            KSMQTT_Subscribe($MQTTInstanzID, $topic, 0);
    }

    if($_IPS['SENDER']=='MQTT_GET_PAYLOAD'){
            $msg = $_IPS['MSG'];
            $topic = explode("/", $_IPS['TOPIC']);
            $last = count($topic)-1;
            $type = $topic[$last];

            if (in_array($topic[1], $topics)) {

                for ($i = 1; $i <= $last; $i++) {
                    
                    if ($i <> $last) {
                    $id = IPS_GetObjectIDByName($topic[$i], $id_parent);
                    if($id===false){
                        $id = IPS_CreateCategory();
                        IPS_SetName($id, $topic[$i]); 
                        IPS_SetParent($id, $id_parent);
                        $id_parent = $id;
                    }
                    $id_parent = $id;
                    } else {
                        $id = IPS_GetVariableIDByName($topic[$last],$id_parent);
                        if($id===false){
                            $id = IPS_CreateVariable(3);
                            IPS_SetName($id, $topic[$last]); 
                            IPS_SetParent($id, $id_parent);
                            SetValue($id,$msg);
                        } else {
                            SetValue($id,$msg);
                        }
                    }

                }
        }

    }


?>

Damit werden alle Geräte, die im Array Topics angegeben werden unter der Kategorie abgelegt die unter $id_parent angegeben ist.

Ihr müsst also das Array mit den Topics anpassen, die Variable $id_parent und die Variable $MQTTInstanzID.
Das Script habe ich nur schnell zusammengeschrieben.
Es werden nur String Variablen angelegt.
Aber als Beispiel sollte das denke ich reichen. :wink:

Grüße,
Kai

Ok, Danke Dir!
Werde mich die nächsten Tage da reinarbeiten :blush:

…muß ich Branch „Master“ oder „Development“ nehmen?

Den Master Branch musst du nehmen.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Moinsen,

probiere das hier auch gerade, bekomme aber nix rein

das ganze ( mosquitto, symcon , iobroker ) läuft auf nem orange pi

per mqtt.fx kommen die ganzen topics rein und sehe alles, im ip-symcon kommt aber nix an ( messages gehen schon hin und her )

bekomme immer ein end of file vom client socket

broker ip ist 127.0.0.1

06.11.2018, 15:51:10 | MessageSink | TS: 0 SenderID 10429 with MessageID 10505 Data: Array<LF>(<LF> [0] => 102<LF>)<LF>
06.11.2018, 15:51:10 | IPS_KS_MQTTClient | MessageSinkI/O Modul > Aktiviert

06.11.2018, 15:51:10 | IPS_KS_MQTTClient | MessageSinkI/O Modul > Aktiviert 500 Millisekunden

06.11.2018, 15:51:13 | onSendText | 00|06|4D|51|49|73|64|70|03|02|00|1E|00|0F|69|70|5F|73|79|6D|63|6F|6E|5F|36|39|5F|32|38|

06.11.2018, 15:50:14 | IPS_KS_MQTTClient | MessageSinkI/O Modul > Fehler
06.11.2018, 15:50:14 | HasActiveParent | Parent not active for Instance #48743
06.11.2018, 15:50:14 | onSendText | No Parent
06.11.2018, 15:50:14 | HasActiveParent | Parent not active for Instance #48743

jemand ne idee ?

Hallo,

welchen Port hast du angegeben?

Grüße,
Kai

1883

Gesendet von meinem BLA-L29 mit Tapatalk