MQTT - Header is invalid

Begonnen von Simon74, 02 November 2020, 22:46:08

Vorheriges Thema - Nächstes Thema

Simon74

Hallo, ich nutze FHEM mit MQTT Verbindung zu Symcon.
Alle einkommenden MQTT Meldungen von fhem werden dort nur mehr mit "Header is invalid" beantwortet.
Kann der Header überhaupt beeinflusst werden?


xenos1984


rudolfkoenig

MQTT2_CLIENT (und SERVER) unterstuetzt MQTT Version 3.1 und 3.1.1, version 3.1 ist die Voreinstellung, 3.1.1 kann man per Attribut aktivieren.
Das im Anhang abgebildete Header suggeriert, dass der MQTT Header statisch ist.
Das ist bei weiterm nicht der Fall, neben Version (s.o.) enthaelt er Benutzername, Passwort, LWT und diverse Flags, die theoretisch alle zum Ablehnen des Headers (bzw. der Verbindung) fuehren koennen.

Simon74

Danke für Antworten

der Screenshot stammt von https://mqtt.org/mqtt-specification/
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180877

Ich selbst kann es nicht beurteilen, habe nur das Problem das die Kommunikation zwitschgen den Systemen nicht mehr funktioniert,
bzw. alles was von fhem kommt mit "Header is invalid" beantwortet wird. (Andere MQTT Clients (Shellys) funktionieren weiterhin am Symcon-MQTT-Server)



rudolfkoenig

Zitatder Screenshot stammt von https://mqtt.org/mqtt-specification/
Das will ich gar nicht in Rede stellen, aber die Spezifikation hoert damit nicht auf.

Schon mal mit version 3.1.1 versucht?

Simon74

Nach durchlesen der Commandref sehe ich das die Version bei MQTT_Client eingestellt werden kann, jedoch sieht meine Konfiguration so aus (MQTT und Bridge?):
defmod mqttbridge MQTT_GENERIC_BRIDGE mqtt room=MQTT
attr mqttbridge IODev fhem_symcon
attr mqttbridge globalDefaults sub:qos=1 pub:qos=0 retain=1
attr mqttbridge globalPublish *:topic={"fhem/$device/$reading"}
attr mqttbridge room System

defmod fhem_symcon MQTT symcon.domain.net:1024
attr fhem_symcon last-will retain:1 FHEM/connection/status disconnected
attr fhem_symcon on-connect retain:1 {Log3("mqtt",3,"connected to MQTT server");;1} FHEM/connection/status connected
attr fhem_symcon on-disconnect retain:1 {Log3("mqtt",3,"disconnected from MQTT server");;1} FHEM/connection/status disconnected
attr fhem_symcon room System
attr fhem_symcon verbose 4


Vielleicht sind die Informationen wie ich das konfiguriert habe veraltet?

rudolfkoenig

Sorry, bei dem alten MQTT Modul kann ich nicht helfen, ich bin der MQTT2* Maintainer.
Ich empfehle auf MQTT2_CLIENT umzusteigen :), MQTT_GENERIC_BRIDGE versteht auch MQTT2.

Simon74

#7
Vielen Dank, werde ich testen und berichten ob MQTT2_Client Besserung bringt  :)

Simon74

Thats it ;D

delete fhem_symcon;
define fhem_symcon MQTT2_CLIENT symcon.domain.net:1024;
attr fhem_symcon room System;


und alles ist gut