MQTT2_CLIENT an RabbitMQ

Begonnen von ivor, 26 Juli 2019, 22:29:41

Vorheriges Thema - Nächstes Thema

ivor

Hallo zusammen

Ich stecke im Moment beim Versuch fest, FHEM (172.27.55.15) an einen RabbitMQ Server (172.27.55.10) mit MQTT anzubinden. Diverse Geräte melden sich bereits am RabbitMQ Server erfolgreich mit MQTT an.

FHEM kriege ich jedoch nicht zum verbinden.

Anbei die Konfig:
define rabbitmqSrv MQTT2_CLIENT 172.27.55.10:1883
setuuid rabbitmqSrv *********************
attr rabbitmqSrv clientId fhem01-041
attr rabbitmqSrv mqttVersion 3.1.1
attr rabbitmqSrv subscriptions #
attr rabbitmqSrv username fhem01-user01


FHEM Ausgabe:
2019.07.26 22:22:33 3: Opening rabbitmqSrv device 172.27.55.10:1883
2019.07.26 22:22:33 5: HttpUtils url=http://172.27.55.10:1883/
2019.07.26 22:22:33 4: IP: 172.27.55.10 -> 172.27.55.10
2019.07.26 22:22:33 5: SW: 103f00044d51545404c2001e000e6668656d3031636c69656e744964001b727565742d63682d61727330312d6668656d30312d7573657230310006746573743132
2019.07.26 22:22:33 3: rabbitmqSrv device opened
2019.07.26 22:22:33 5: Starting notify loop for rabbitmqSrv, 1 event(s), first is CONNECTED
2019.07.26 22:22:33 5: createNotifyHash
2019.07.26 22:22:33 5: End notify loop for rabbitmqSrv
2019.07.26 22:22:33 1: 172.27.55.10:1883 disconnected, waiting to reappear (rabbitmqSrv)
2019.07.26 22:22:33 5: Starting notify loop for rabbitmqSrv, 1 event(s), first is DISCONNECTED
2019.07.26 22:22:33 5: createNotifyHash
2019.07.26 22:22:33 5: End notify loop for rabbitmqSrv
2019.07.26 22:22:33 5: HttpUtils url=http://172.27.55.10:1883/
2019.07.26 22:22:33 4: IP: 172.27.55.10 -> 172.27.55.10
2019.07.26 22:22:33 1: 172.27.55.10:1883 reappeared (rabbitmqSrv)
2019.07.26 22:22:33 5: Starting notify loop for rabbitmqSrv, 1 event(s), first is CONNECTED
2019.07.26 22:22:33 5: End notify loop for rabbitmqSrv


RabbitMQ log:
=INFO REPORT==== 26-Jul-2019::22:22:33 ===
MQTT vhost picked using plugin configuration or default

=INFO REPORT==== 26-Jul-2019::22:22:33 ===
accepting MQTT connection <0.1263.0> (172.27.55.15:52526 -> 172.27.55.10:1883)

=ERROR REPORT==== 26-Jul-2019::22:22:33 ===
MQTT cannot parse frame for connection '172.27.55.15:52526 -> 172.27.55.10:1883', unparseable payload: <<128,6,0,
                                                                                                         5,0,1,
                                                                                                         35,0>>, error: {{badmatch,
                                                                                                                          0}, [{rabbit_mqtt_frame,
                                                                                                                                parse_frame,
                                                                                                                                3,
                                                                                                                                [{file,
                                                                                                                                  "src/rabbit_mqtt_frame.erl"},
                                                                                                                                 {line,
                                                                                                                                  108}]},
                                                                                                                               {rabbit_mqtt_reader,
                                                                                                                                parse,
                                                                                                                                2,
                                                                                                                                [{file,
                                                                                                                                  "src/rabbit_mqtt_reader.erl"},
                                                                                                                                 {line,
                                                                                                                                  312}]},
                                                                                                                               {rabbit_mqtt_reader,
                                                                                                                                process_received_bytes,
                                                                                                                                2,
                                                                                                                                [{file,
                                                                                                                                  "src/rabbit_mqtt_reader.erl"},
                                                                                                                                 {line,
                                                                                                                                  263}]},
                                                                                                                               {gen_server2,
                                                                                                                                handle_msg,
                                                                                                                                2,
                                                                                                                                [{file,
                                                                                                                                  "src/gen_server2.erl"},
                                                                                                                                 {line,
                                                                                                                                  1048}]},
                                                                                                                               {proc_lib,
                                                                                                                                init_p_do_apply,
                                                                                                                                3,
                                                                                                                                [{file,
                                                                                                                                  "proc_lib.erl"},
                                                                                                                                 {line,
                                                                                                                                  247}]}]}



Hat das schonmal wer zum laufen gekriegt, bzw. eine Idee, was hier falsch läuft?

Besten Dank

gruss ivo

rudolfkoenig

Ich gehe davon aus, dass es ein Fehler beim Subscribe ist: ich habe wohl ein "reserved Bit" uebersehen, und mosquitto als Testserver ist nicht so streng.
Ich habe das gerade geaendert (update morgen ab acht), kannst Du es bitte testen, und Feedback geben?
Wenn es immer noch nicht klappt, dann bitte explizit verbose 5 fuers MQTT2_CLIENT setzen, und das Log hier anhaengen.

ivor

Guten Morgen

Besten Dank für die rasche Antwort. Den Update wurde gemacht, jedoch hat sich nichts verändert.

Anbei das neue Log:
2019.07.27 08:20:31 3: Opening rabbitmqSrv device 172.27.55.10:1883
2019.07.27 08:20:31 5: HttpUtils url=http://172.27.55.10:1883/
2019.07.27 08:20:31 4: IP: 172.27.55.10 -> 172.27.55.10
2019.07.27 08:20:31 5: rabbitmqSrv: sending CONNECT (16)?(0)(4)MQTT(4)(194)(0)(30)(0)(14)fhem01clientId(0)(27)ruet-ch-ars01-fhem01-user01(0)(6)test12
2019.07.27 08:20:31 5: SW: 103f00044d51545404c2001e000e6668656d3031636c69656e744964001b727565742d63682d61727330312d6668656d30312d7573657230310006746573743132
2019.07.27 08:20:31 3: rabbitmqSrv device opened
2019.07.27 08:20:31 5: Starting notify loop for rabbitmqSrv, 1 event(s), first is CONNECTED
2019.07.27 08:20:31 5: createNotifyHash
2019.07.27 08:20:31 5: End notify loop for rabbitmqSrv
2019.07.27 08:20:31 5: rabbitmqSrv: received CONNACK (0)(0)
2019.07.27 08:20:31 5: rabbitmqSrv: sending SUBSCRIBE (129)(6)(0)(5)(0)(1)#(0)
2019.07.27 08:20:31 1: 172.27.55.10:1883 disconnected, waiting to reappear (rabbitmqSrv)
2019.07.27 08:20:31 5: Starting notify loop for rabbitmqSrv, 1 event(s), first is DISCONNECTED
2019.07.27 08:20:31 5: createNotifyHash
2019.07.27 08:20:31 5: End notify loop for rabbitmqSrv
2019.07.27 08:20:31 5: HttpUtils url=http://172.27.55.10:1883/
2019.07.27 08:20:31 4: IP: 172.27.55.10 -> 172.27.55.10
2019.07.27 08:20:31 1: 172.27.55.10:1883 reappeared (rabbitmqSrv)
2019.07.27 08:20:31 5: Starting notify loop for rabbitmqSrv, 1 event(s), first is CONNECTED
2019.07.27 08:20:31 5: End notify loop for rabbitmqSrv


=INFO REPORT==== 27-Jul-2019::08:20:31 ===
MQTT vhost picked using plugin configuration or default

=INFO REPORT==== 27-Jul-2019::08:20:31 ===
accepting MQTT connection <0.3825.0> (172.27.55.15:38394 -> 172.27.55.10:1883)

=ERROR REPORT==== 27-Jul-2019::08:20:31 ===
MQTT cannot parse frame for connection '172.27.55.15:38394 -> 172.27.55.10:1883', unparseable payload: <<129,6,0,
                                                                                                         5,0,1,
                                                                                                         35,0>>
...etc...etc...


gruss ivo

rudolfkoenig

Sorry, war wohl zu spaet gesten, es ist Bit #2 und damit 0x82 und nicht 0x81 sein, siehe http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718063.
Eingecheckt, update morgen ab acht, oder SVN: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/00_MQTT2_CLIENT.pm?format=txt


ivor


Perfekt :-) 0x82 funktioniert

Besten Dank