MQTT2_CLIENT und thingspeak.com: keine dauerhafte Verbindung

Begonnen von kaihs, 01 November 2021, 19:38:16

Vorheriges Thema - Nächstes Thema

kaihs

Ich versuche vergeblich mit einem MQTT2_CLIENT ein publish auf ein MQTT-Device bei thingspeak.com zu machen.

Mit MQTT.fx funktioniert es, beim MQTT2-Client wird immer wieder die Verbindung auf-/abgebaut.

Sieht im Log so aus:

2021.11.01 19:11:50.499 5: HttpUtils url=https://mqtt3.thingspeak.com:8883/ NonBlocking via https
2021.11.01 19:11:50.504 4: IP: mqtt3.thingspeak.com -> 54.198.221.201
2021.11.01 19:11:50.948 5: mqtt2_thingspeak: sending CONNECT (16)V(0)(4)MQTT(4)(194)(0)(30)(0)(23)IzcJKzgeDB85MTwRNDoeKCY(0)(23)IzcJKzgeDB85MTwRNDoeKCY(0)(24)PPiG/vfTI2P/QAKFc5Rs2FI7
2021.11.01 19:11:50.949 5: DevIo_SimpleWrite mqtt2_thingspeak: 105600044d51545404c2001e0017497a634a4b7a6765444238354d5477524e446f654b43590017497a634a4b7a6765444238354d5477524e446f654b43590018505069472f7666544932502f51414b466335527332464937
2021.11.01 19:11:50.954 1: mqtt3.thingspeak.com:8883 reappeared (mqtt2_thingspeak)
2021.11.01 19:11:53.860 5: mqtt2_thingspeak: received CONNACK (0)(0)
2021.11.01 19:11:53.861 5: mqtt2_thingspeak: sending SUBSCRIBE (130)(6)(0)G(0)(1)#(0)
2021.11.01 19:11:54.023 1: mqtt3.thingspeak.com:8883 disconnected, waiting to reappear (mqtt2_thingspeak)
2021.11.01 19:11:54.099 5: HttpUtils url=https://mqtt3.thingspeak.com:8883/ NonBlocking via https
2021.11.01 19:11:54.103 4: IP: mqtt3.thingspeak.com -> 35.170.27.5
2021.11.01 19:11:54.492 5: mqtt2_thingspeak: sending CONNECT (16)V(0)(4)MQTT(4)(194)(0)(30)(0)(23)IzcJKzgeDB85MTwRNDoeKCY(0)(23)IzcJKzgeDB85MTwRNDoeKCY(0)(24)PPiG/vfTI2P/QAKFc5Rs2FI7
2021.11.01 19:11:54.493 5: DevIo_SimpleWrite mqtt2_thingspeak: 105600044d51545404c2001e0017497a634a4b7a6765444238354d5477524e446f654b43590017497a634a4b7a6765444238354d5477524e446f654b43590018505069472f7666544932502f51414b466335527332464937
2021.11.01 19:11:54.497 1: mqtt3.thingspeak.com:8883 reappeared (mqtt2_thingspeak)
2021.11.01 19:11:57.338 5: mqtt2_thingspeak: received CONNACK (0)(0)
2021.11.01 19:11:57.345 5: mqtt2_thingspeak: sending SUBSCRIBE (130)(6)(0)G(0)(1)#(0)
2021.11.01 19:11:57.479 1: mqtt3.thingspeak.com:8883 disconnected, waiting to reappear (mqtt2_thingspeak)
2021.11.01 19:11:57.646 5: HttpUtils url=https://mqtt3.thingspeak.com:8883/ NonBlocking via https
2021.11.01 19:11:57.651 4: IP: mqtt3.thingspeak.com -> 35.170.27.5
2021.11.01 19:11:58.043 5: mqtt2_thingspeak: sending CONNECT (16)V(0)(4)MQTT(4)(194)(0)(30)(0)(23)IzcJKzgeDB85MTwRNDoeKCY(0)(23)IzcJKzgeDB85MTwRNDoeKCY(0)(24)PPiG/vfTI2P/QAKFc5Rs2FI7
2021.11.01 19:11:58.044 5: DevIo_SimpleWrite mqtt2_thingspeak: 105600044d51545404c2001e0017497a634a4b7a6765444238354d5477524e446f654b43590017497a634a4b7a6765444238354d5477524e446f654b43590018505069472f7666544932502f51414b466335527332464937
2021.11.01 19:11:58.049 1: mqtt3.thingspeak.com:8883 reappeared (mqtt2_thingspeak)
2021.11.01 19:11:58.165 5: mqtt2_thingspeak: received CONNACK (0)(0)
2021.11.01 19:11:58.166 5: mqtt2_thingspeak: sending SUBSCRIBE (130)(6)(0)G(0)(1)#(0)
2021.11.01 19:11:58.298 1: mqtt3.thingspeak.com:8883 disconnected, waiting to reappear (mqtt2_thingspeak)
2021.11.01 19:11:58.424 5: HttpUtils url=https://mqtt3.thingspeak.com:8883/ NonBlocking via https
2021.11.01 19:11:58.431 4: IP: mqtt3.thingspeak.com -> 54.198.221.201


List vom Device:

Internals:
   CFGFN     
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        mqtt3.thingspeak.com:8883
   DeviceName mqtt3.thingspeak.com:8883
   FUUID      617fd9d9-f33f-a4cf-32a3-454fe47caabdd49d
   NAME       mqtt2_thingspeak
   NR         2637
   SSL        1
   STATE      disconnected
   TIMEOUT    20
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   IzcJKzgeDB85MTwRNDoeKCY
   connecting 2
   lastMsgTime 1635790962.67443
   nextOpenDelay 5
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2021-11-01 18:13:12   lastPublish     channels/433592/publish/fields/field1:23
     2021-11-01 19:22:44   state           disconnected
Attributes:
   SSL        1
   clientId   XXX
   mqttVersion 3.1.1
   room       System->MQTT
   username   XXX
   verbose    5


Thingspeak hat auf einen neuen Server umgestellt (mqtt3.thingspeak.com). Früher mit dem alten (mqtt.thingspeak.com) hat es mal funktioniert.

- Klappt aktuell bei jemandem das Publishen bei thingspeak? Wenn ja mit welchen Einstellungen?
- Wofür ist dieses Subscribe "2021.11.01 19:11:53.861 5: mqtt2_thingspeak: sending SUBSCRIBE (130)(6)(0)G(0)(1)#(0)"? Ich habe explizit ja noch gar kein Subscribe durchgeführt.


Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

rudolfkoenig

ZitatIch habe explizit ja noch gar kein Subscribe durchgeführt.
Deswegen wird # (alles) subscribed. Womoeglich hat der neue Server was dagegen.
Man kann die initiale Subscription fuer MQTT2_CLIENT per Attribut aendern.

kaihs

Zitat von: rudolfkoenig am 01 November 2021, 20:39:46
Deswegen wird # (alles) subscribed. Womoeglich hat der neue Server was dagegen.
Man kann die initiale Subscription fuer MQTT2_CLIENT per Attribut aendern.

Danke für die Info, der Disconnect liegt wohl wirklich an einem Subscribe der dem Server nicht recht ist.
Gar kein Subscribe ist mit MQTT2_DEVICE nicht möglich, oder?
Zumindest kann man das Attribut nicht mit leerem Argument verwenden.

Falls es für jemand relevant ist: Thinkspeak kennt öffentliche und private Channels.
Mit einem öffentlichen funktioniert es. Bei einem privaten soll man laut der Doku einen read api key angeben.
Aber selbst wenn ich das mache, gelingt der Zugriff nicht.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

satprofi

hole den thread hervor, wo trage ich den apikey ein ?
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,Zigbee,Shelly,
Tasmota,LD382A,Telegram

betateilchen

Du brauchst doch gar keinen API key, um FHEM mit thingspeak zu verbinden?
Die vergebene Client-ID, Username und Password reichen völlig aus.

defmod thingspeak MQTT2_CLIENT mqtt3.thingspeak.com:1883
attr thingspeak clientId BAI...
attr thingspeak subscriptions channels/<DEINE_CHANNEL_ID>/subscribe
attr thingspeak username BAI...

Dann noch einmalig:
set thingspeak password <das_generierte_passwort>


Und schon klappt es mit der Verbindung...

2026.08.01 16:14:33 5: HttpUtils url=http://mqtt3.thingspeak.com:1883/ NonBlocking via http
2026.08.01 16:14:33 4: IP: mqtt3.thingspeak.com -> 18.207.44.162
2026.08.01 16:14:33 5: thingspeak: sending CONNECT (16)X(0)(6)MQIsdp(3)(194)(0)(30)(0)(23)BAIjACQuESEfEyAMKy4QGwY(0)(23)BAIjACQuESEfEyAMKy4QGwY(0)(24)pkhffYhBj6E1GAKSphdQYyBe
2026.08.01 16:14:33 5: DevIo_SimpleWrite thingspeak: 105800064d514973647003c2001e00174241496a41435175455345664579414d4b79345147775900174241496a41435175455345664579414d4b7934514777590018706b6866665968426a36453147414b537068645159794265
2026.08.01 16:14:33 1: mqtt3.thingspeak.com:1883 reappeared (thingspeak)
2026.08.01 16:14:34 4: thingspeak received CONNACK
2026.08.01 16:14:34 5: thingspeak: received CONNACK (0)(0)
2026.08.01 16:14:34 5: thingspeak: sending SUBSCRIBE (130)(31)(0)#(0)(26)channels/<DEINE_CHANNEL_ID>/subscribe(0)
2026.08.01 16:14:34 4: thingspeak received SUBACK
2026.08.01 16:14:34 5: thingspeak: received SUBACK (0)#(0)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

satprofi

#5
Komisch, genau so gemacht, aber habe nur kurz Opened und dann sofort disconnected stehen.aber mit Port 8883, mit 1883 bekommt ich nie Verbindung. Über http Link mit api kann ich aber Daten abrufen
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,Zigbee,Shelly,
Tasmota,LD382A,Telegram

betateilchen

Funktioniert bei mir grundsätzlich auch mit SSL auf port 8883.

2026.08.01 19:37:45 5: HttpUtils url=https://mqtt3.thingspeak.com:8883/ NonBlocking via https
2026.08.01 19:37:45 4: IP: mqtt3.thingspeak.com -> 18.207.44.162
2026.08.01 19:37:46 5: thingspeak: sending CONNECT (16)X(0)(6)MQIsdp(3)(194)(0)(30)(0)(23)BAIjACQuESEfEyAMKy4QGwY(0)(23)BAIjACQuESEfEyAMKy4QGwY(0)(24)pkhffYhBj6E1GAKSphdQYyBe
2026.08.01 19:37:46 5: DevIo_SimpleWrite thingspeak: 105800064d514973647003c2001e00174241496a41435175455345664579414d4b79345147775900174241496a41435175455345664579414d4b7934514777590018706b6866665968426a36453147414b537068645159794265
2026.08.01 19:37:46 1: mqtt3.thingspeak.com:8883 reappeared (thingspeak)
2026.08.01 19:37:46 4: thingspeak received CONNACK
2026.08.01 19:37:46 5: thingspeak: received CONNACK (0)(0)
2026.08.01 19:37:46 5: thingspeak: sending SUBSCRIBE (130)(31)(0)"(0)(26)channels/.../subscribe(0)
2026.08.01 19:37:46 4: thingspeak received SUBACK
2026.08.01 19:37:46 5: thingspeak: received SUBACK (0)"(0)

Hast Du das Attribut SSL beim MQTT2_CLIENT gesetzt?

Zeig doch mal einen Logauszug mit verbose=5 wenn Du versuchst, Dich zu verbinden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!