IP-Symcon goes MQTT

Ist die Instanz „(Splitter)“ „MQTT Server“ korrekt? Könntest du den Port einstellbar machen?

Bei mir läuft bereits das Script auf 1883 und so kann ich nicht testen bzw. müsste komplett umstellen :(.

Und „MQTT“ „MQTT Device“ wäre dann ein "entstehendes Device?

Fix für das Tasmota Problem im nächsten Update. Der Port ist dann auch frei definierbar.

@Kai: Für Topics mit JSON Payload hilft der Konfigurator auch nix.

paresy

TOP paresy,

neue Version drauf und läuft mit Tasmota :

Topic: tele/sonoff/STATE, Payload: {"Time":"2019-02-11T20:28:26","Uptime":"1T11:06:15","Vcc":3.468,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"POWER":"OFF","Wifi":{"AP":1,"SSId":"wlan-xxxx","BSSId":"xx:xx:xx:xx:xx:xx","Channel":6,"RSSI":100}}

Topic: stat/sonoff/POWER, Payload: {"POWER":"ON"}

Topic: stat/sonoff/POWER, Payload: ON


Das ist gut. :slight_smile:
Dann kann ich ja meine Module weiterhin pflegen. :slight_smile:

Ich werde morgen mal damit weitermachen.

Grüße,
Kai

Mein NodeMCU mit ESP Easy funktioniert nun auch.

11.02.2019, 21:28:19 |         MQTT:PUBLISH | Topic: ESP-01/Kueche/Luftfeuchtigkeit, Payload: 65.60

Aber im MQTT Konfigurator kommt bei mir nichts an.
Wie funktioniert der genau?
Muss man da was einstellen?

Einfach warten bis einige Nachrichten eintrudeln. Und dann aktualisieren drücken.

Sobald wie Retain unterstützen wird der natürlich auch noch cooler.

paresy

Super jetzt klappt es.
Ich musste alle vorher gemachten Einstellungen MQTT Server, Socket und Device löschen.
Dann habe ich den Konfigurator neu angelegt, dieser hat den Splitter und den Socket nachgezogen und nun kommt alles richtig an.
Mit Retained wird es bestimmt noch cooler.

Echt Super Arbeit.
Vielen Dank

Und für Shelly brauchst du erst mal nicht weiter machen Kai,
Siehe den 94er Pi mit MQTT Konfigurator.

Tasmota ist da anders, und jetzt Frage ich mich, wie sollte es sein ?

Und Danke, an das IPS Team.

Ich setze das mal hier rein, da ich nicht sicher bin, ob die Ursache wirklich bei dem Modul selbst zu suchen ist. Denn es gab die Tage nach der GUID Problematik ein paar Probleme und ein nicht lauffähiges System.

Letzter Ausgangspunkt nach diversen MQTT-Spielereien. Das Tasmota Modul war nicht installiert aber es gab noch ein paar Tasmota Instanzen mit rotem Ausrufezeichen.

Diese hab ich gelöscht. Tasmota Modul neu installiert und nun erscheint beim Anlegen einer Tasmota Instanz Folgendes:

Gesendet von iPhone XS mit Tapatalk

Am Tasmota Modul habe ich nichts geändert.
Gibt es den Ordner den im modules Ordner? Sind dort alle Dateien vorhanden?

@paresy, das mit dem Konfigurator und dem Shelly funktioniert ja schon mal. Soll ich trotzdem das Shelly Modul weiterpflegen? Was meinst du dazu?

Grüße,
Kai

Ich würde es weiter pflegen, weil es einfach komfortabler für die Leute ist.

paresy

Alles klar. :slight_smile:
Das war halt meine Frage, ob es gewünscht ist etwas doppelt zu pflegen, wenn es doch eigentlich schon machbar ist mit dem Konfigurator.
Aber das Argument, dass es für die User komfortabler ist, überzeugt mich. :slight_smile:

Grüße,
Kai

Wenn ich bei einem MQTT Device den Type ändere also z.B. von String zu Float,
dann funktioniert der Konfigurator nicht mehr.
Es kommt dann nur noch die Meldung
„Variabletyp stimmt nicht überein“
Wenn man alle MQTT Devices wieder auf den erkannten Type String umstellt,
funktioniert der Konfigurator wieder.
Ist das Verhalten normal und so gewollt?

Ne. Ist ein Fehler. Kümmere ich mich drum :slight_smile:

paresy

@paresy, übersehe ich etwas?

12.02.2019, 10:36:36 |           SwitchMode | {"DataID":"{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}","PacketType":3,"QualityOfService":0,"Retain":false,"Topic":"shellies/shelly1-0598C1/relay/0/command","Payload":"on"}

Kommt leider nicht im Shelly an, bzw. es wird nicht geschaltet.
Ich bin dabei, es in meinem Modul anzupassen.

Edit: Im Splitter scheint nichts anzukommen.

Hier mal die Funktion:


    public function SwitchMode(int $relay, bool $Value)
    {
        $Data['DataID'] = '{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}';
        $Data['PacketType'] = 3;
        $Data['QualityOfService'] = 0;
        $Data['Retain'] = false;
        $Data['Topic'] = MQTT_GROUP_TOPIC . '/' . $this->ReadPropertyString('MQTTTopic') . '/relay/' . $relay . '/command';;


        if ($Value) {
            $Data['Payload'] = 'on';
        } else {
            $Data['Payload'] = 'off';
        }
        $DataJSON = json_encode($Data,JSON_UNESCAPED_SLASHES);
        $this->SendDebug(__FUNCTION__. 'Topic', $Data['Topic'],0);
        $this->SendDebug(__FUNCTION__, $DataJSON, 0);
        $this->SendDataToParent($DataJSON);
    }

Grüße,
Kai

Die neue Version mit den neuen Meldungen im Debug zeigt folgendes:

TXT: 12.02.2019, 13:29:56 |      MQTT:TX:PUBLISH | Topic: shellies/shelly1-0598C1/relay/0/command, Payload: onHEX: 12.02.2019, 13:29:56 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 73 68 65 6C 6C 69 65 73 2F 73 68 65 6C 6C 79 31 2D 30 35 39 38 43 31 2F 72 65 6C 61 79 2F 30 2F 63 6F 6D 6D 61 6E 64 2C 20 50 61 79 6C 6F 61 64 3A 20 6F 6E 
TXT: 12.02.2019, 13:29:56 |      MQTT:TX:PUBLISH | Sending to 10.10.10.97:23199
HEX: 12.02.2019, 13:29:56 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 31 30 2E 31 30 2E 31 30 2E 39 37 3A 32 33 31 39 39 
TXT: 12.02.2019, 13:29:57 |            BUFFER IN | À<NUL>
HEX: 12.02.2019, 13:29:57 |            BUFFER IN | C0 00 
TXT: 12.02.2019, 13:29:57 |      MQTT:RX:PINGREQ | 
HEX: 12.02.2019, 13:29:57 |      MQTT:RX:PINGREQ | 
TXT: 12.02.2019, 13:30:00 |            BUFFER IN | 0$<NUL><US>shellies/shelly1-0598C1/relay/0off0"<NUL><US>shellies/shelly1-0598C1/input/00
HEX: 12.02.2019, 13:30:00 |            BUFFER IN | 30 24 00 1F 73 68 65 6C 6C 69 65 73 2F 73 68 65 6C 6C 79 31 2D 30 35 39 38 43 31 2F 72 65 6C 61 79 2F 30 6F 66 66 30 22 00 1F 73 68 65 6C 6C 69 65 73 2F 73 68 65 6C 6C 79 31 2D 30 35 39 38 43 31 2F 69 6E 70 75 74 2F 30 30 
TXT: 12.02.2019, 13:30:00 |      MQTT:RX:PUBLISH | Topic: shellies/shelly1-0598C1/relay/0, Payload: off
HEX: 12.02.2019, 13:30:00 |      MQTT:RX:PUBLISH | 54 6F 70 69 63 3A 20 73 68 65 6C 6C 69 65 73 2F 73 68 65 6C 6C 79 31 2D 30 35 39 38 43 31 2F 72 65 6C 61 79 2F 30 2C 20 50 61 79 6C 6F 61 64 3A 20 6F 66 66 
TXT: 12.02.2019, 13:30:00 |      MQTT:RX:PUBLISH | Topic: shellies/shelly1-0598C1/input/0, Payload: 0
HEX: 12.02.2019, 13:30:00 |      MQTT:RX:PUBLISH | 54 6F 70 69 63 3A 20 73 68 65 6C 6C 69 65 73 2F 73 68 65 6C 6C 79 31 2D 30 35 39 38 43 31 2F 69 6E 70 75 74 2F 30 2C 20 50 61 79 6C 6F 61 64 3A 20 30 
TXT: 12.02.2019, 13:30:07 |            BUFFER IN | À<NUL>
HEX: 12.02.2019, 13:30:07 |            BUFFER IN | C0 00 

Grüße,
Kai

Mit der neuen Version ist das Variablen Type Problem beseitigt.
Vielen Dank.

Jetzt ist mir aber noch etwas aufgefallen.
Wenn nach einem IPS Neustart noch nicht alle Devices einen Wert Empfangen haben
und man den Konfigurator startet, kommt die Meldung
„Variable #12345 existiert nicht“
12345 ist hier die Instanz ID eines MQTT Devices, dass noch keine Werte empfangen hat.
Erst nachdem alle MQTT Devices mindestens einen Wert empfangen haben,
wird der Konfigurator wieder angezeigt.

Also selbst wenn ein Device noch nichts Empfangen hat, sollte meiner Meinung nach, dennoch der Konfigurator angezeigt werden.

Man könnte die Geräte die noch nichts Empfangen haben evtl. irgendwie z.B. farblich markieren.

Gruß
Giuseppe

Ja - da ist leider doch noch ein doofer Fehler drin. Dafür kommt bald ein Fix.

paresy

Beim Senden haben wir noch einen zwei Byte Identifier zu viel gesendet. Fix dafür kommt gleich.

paresy

Danke für die schnelle Reaktion. :slight_smile:

Grüße,
Kai