Ich versuche vergeblich mit einem MQTT2_CLIENT ein publish auf ein MQTT-Device bei thingspeak.com (http://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.
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.
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 (https://de.mathworks.com/help/thingspeak/use-desktop-mqtt-client-to-subscribe-to-channel-updates.html?searchHighlight=read%20api%20key%20mqtt&s_tid=srchtitle_read%20api%20key%20mqtt_2) einen read api key angeben.
Aber selbst wenn ich das mache, gelingt der Zugriff nicht.
hole den thread hervor, wo trage ich den apikey ein ?
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)
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
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.
hallo.
sorry für späte antwort. hier der logfileauszug
2026.08.02 08:51:42 5: HttpUtils url=https://mqtt3.thingspeak.com:8883/ NonBlocking via https
2026.08.02 08:51:42 4: IP: mqtt3.thingspeak.com -> 54.81.146.55
2026.08.02 08:51:42 5: thingspeak: sending CONNECT (16)V(0)(4)MQTT(4)(194)(0)(30)(0)(23)PDobCiMSGRA5Fjo2NDozNxxxxxTA(0)(23)PDobCiMSGRA5FjoxxxxxA(0)(24)45za5BdaNDYRr/hc0xxxxxeM
2026.08.02 08:51:42 5: DevIo_SimpleWrite thingspeak: 105600044d51545404c2001e001750446f6243694d5347524135466a6f324e446f7a4e5441001750446f6243694d5347524135466a6f324e446f7a4e5441001834357a61354264614e445952722f686330574b634875654d
2026.08.02 08:51:42 1: mqtt3.thingspeak.com:8883
reappeared (thingspeak)
2026.08.02 08:51:42 4: thingspeak received CONNACK
2026.08.02 08:51:42 5: thingspeak: received CONNACK (0)(0)
2026.08.02 08:51:42 5: thingspeak: sending SUBSCRIBE (130).(0)y(0))channels/3441919/subscribe/fields/fields1(0)
2026.08.02 08:51:43 4: thingspeak received SUBACK
2026.08.02 08:51:43 5: thingspeak: received SUBACK (0)y(128)
2026.08.02 08:51:43 1: mqtt3.thingspeak.com:8883
disconnected, waiting to reappear (thingspeak)
und das list dazu
Internals:
BUF
CFGFN
Clients :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
ClientsKeepOrder 1
DEF mqtt3.thingspeak.com:8883
DeviceName mqtt3.thingspeak.com:8883
FUUID 6a6de876-f33f-3579-bb02-85b40761470afe8e
NAME thingspeak
NR 983
PARTIAL
SSL 1
STATE disconnected
TYPE MQTT2_CLIENT
WBCallback
clientId PDobCiMSGRA5Fjo2NDozNTA
connecting 1
eventCount 5854
lastMsgTime 1785653796.85132
nextOpenDelay 10
nrConnects 520
nrFailedConnects 2
MatchList:
1:MQTT2_DEVICE ^.
2:MQTT_GENERIC_BRIDGE ^.
READINGS:
2026-08-02 08:56:36 state disconnected
Attributes:
SSL 1
autocreate complex
clientId PDobCiMSGRA5Fjo2NDozNTA
mqttVersion 3.1.1
qosMaxQueueLength 0
room MQTT2_DEVICE
subscriptions channels/3441919/subscribe/fields/fields1
username PDobCiMSGRA5Fjo2NDozNTA
verbose 5
Die Verbindung wird erfolgreich aufgebaut, ein subscribe ausgeführt.
Nach dem subscribe wird die Verbindung beendet.
Es sieht also so aus, dass Dein subscribe nicht passt.
Fang doch mal mit der einfachsten Variante an.
Was passiert, wenn Du kein bestimmtes Feld in das subscribe steckst?
hmmm, danke . jetzt verbunden. komisch. es klappt nur mit channels/3441919/subscribe
wie erhalte ich jetzt den Wert des feldes?
[edit]
channels/3441919/subscribe/fields/field1
so muss es lauten 🤔
jetzt noch werte erhalten. danke erstmal
Einfach mal den mqtt traffic im MQTT2_CLIENT beobachten.
Kommen denn irgendwelche Daten in Deinem FHEM an?
Dann solltest Du ja im Monitor sehen, welches topic ankommt.
Daraus baust Du einen Eintrag für Dein readingsList.
hallo. wert schon da. autocreate hat ja neues device angelegt, mit ClientID.
da gibts ein reading mit field.
jetzt habe ich auch verbindung zu externen smartmeter, genial !
danke nochmals.
zu früh gefreut.
jetzt alle 1 bis 2 sec. disconnect/connect
2026.08.02 09:36:46 5: HttpUtils url=https://mqtt3.thingspeak.com:8883/ NonBlocking via https
2026.08.02 09:36:46 4: IP: mqtt3.thingspeak.com -> 18.207.44.162
2026.08.02 09:36:46 5: thingspeak: sending CONNECT (16)V(0)(4)MQTT(4)(194)(0)(30)(0)(23)PDobCiMSGRA5Fjo2NDozNTA(0)(23)PDobCiMSGRA5Fjo2NDozNTA(0)(24)45za5BdaNDYRr/hcxxxxxxeM
2026.08.02 09:36:46 5: DevIo_SimpleWrite thingspeak: 105600044d51545404c2001e001750446f6243694d5347524135466a6f324e446f7a4e5441001750446f6243694d5347524135466a6f324e446f7a4e5441001834357a61354264614e445952722f686330574b634875654d
2026.08.02 09:36:46 1: mqtt3.thingspeak.com:8883
reappeared (thingspeak)
2026.08.02 09:36:47 4: thingspeak received CONNACK
2026.08.02 09:36:47 5: thingspeak: received CONNACK (0)(0)
2026.08.02 09:36:47 5: thingspeak: sending SUBSCRIBE (130)-(0)W(0)(channels/3441919/subscribe/fields/field1(0)
2026.08.02 09:36:47 4: thingspeak received SUBACK
2026.08.02 09:36:47 5: thingspeak: received SUBACK (0)W(0)
2026.08.02 09:36:48 1: mqtt3.thingspeak.com:8883
disconnected, waiting to reappear (thingspeak)
wahrscheinlich Problem wie threaderstelker
Warum probierst Du nicht einfach mal das, was man Dir hier vorschlägt?
Wenn Du weiter nur vor Dich hinwurschteln willst, kann man sich weitere Hilfeversuche auch einfach sparen.
Schönen Sonntag!
Zitat von: betateilchen am 02 August 2026, 09:45:18Warum probierst Du nicht einfach mal das, was man Dir hier vorschlägt?
Wenn Du weiter nur vor Dich hinwurschteln willst, kann man sich weitere Hilfeversuche auch einfach sparen.
Schönen Sonntag!
habe es so gemacht, ohne fields, etc. verbindung immer abbruch, aber werte kommen aktualisiert an. es steht ja ,man soll CleanSession 1 eintragen,nur wo ?
Zitat von: satprofi am 02 August 2026, 10:18:17es steht ja ,man soll CleanSession 1 eintragen,nur wo ?
Erkläre mir bitte, was das bewirken soll?
Erster MQTT2_CLIENT (als "Sender")
defmod thingspeak1 MQTT2_CLIENT mqtt3.thingspeak.com:1883
attr thingspeak1 clientId ASI...
attr thingspeak1 subscriptions channels/<deine Channel ID>/subscribe
attr thingspeak1 username ASI...
Zweiter MQTT2_CLIENT (als "Empfänger")
defmod thingspeak2 MQTT2_CLIENT mqtt3.thingspeak.com:8883
attr thingspeak2 SSL 1
attr thingspeak2 clientId BAI...
attr thingspeak2 subscriptions channels/<deine Channel ID>/subscribe
attr thingspeak2 username BAI...
MQTT2_DEVICE in dem die readings erzeugt werden:
defmod ts_device MQTT2_DEVICE
attr ts_device readingList channels/<deine Channel ID>/subscribe.* { json2nameValue($EVENT) }
Ein
set thingspeak1 publish channels/<channel Id>/publish field1=9876liefert auf dem thingspeak2 eingehend:
10:43:22.021 RCVD channels/<channel Id>/subscribe
{"channel_id":<channel Id>,"created_at":"2026-08-02T08:43:21Z","entry_id":4,"field1":"9876","field2":null,"field3":null,"field4":null,"field5":null,"field6":null,"field7":null,"field8":null,"latitude":null,"longitude":null,"elevation":null,"status":null}
daraus erzeugt das MQTT2_DEVICE die readings:
setstate ts_device 2026-08-02 10:43:22 channel_id <channel Id>
setstate ts_device 2026-08-02 10:43:22 created_at 2026-08-02T08:43:21Z
setstate ts_device 2026-08-02 10:43:22 entry_id 4
setstate ts_device 2026-08-02 10:43:22 field1 9876
Es funktioniert damit übrigens auch ohne jede Änderung das Schreiben in ein einzelnes Feld
set thingspeak1 publish channels/<channel Id>/publish/fields/field1 12345setstate ts_device 2026-08-02 10:51:25 channel_id ...
setstate ts_device 2026-08-02 10:51:25 created_at 2026-08-02T08:51:25Z
setstate ts_device 2026-08-02 10:51:25 entry_id 5
setstate ts_device 2026-08-02 10:51:25 field1 12345
Zitat von: betateilchen am 02 August 2026, 10:49:05Zitat von: satprofi am 02 August 2026, 10:18:17es steht ja ,man soll CleanSession 1 eintragen,nur wo ?
Erkläre mir bitte, was das bewirken soll?
https://de.mathworks.com/help/thingspeak/subscribetoachannelfeed.html
soooo, hab jetzt alles deleted, neu definiert, mit port 1883, und attr nur clientId , subscriptions , username.
jetzt steht verbindung, und daten kommen auch an. entweder hat attr mqtt oder SSL reingespuckt.
nice sunday , thx.
Zitat von: satprofi am 02 August 2026, 10:59:27https://de.mathworks.com/help/thingspeak/subscribetoachannelfeed.html
Dass das da steht, weiß ich.
Das beantwortet aber meine Frage nicht, was Du damit bewirken möchtest.
Zitat von: satprofi am 02 August 2026, 10:59:27jetzt steht verbindung, und daten kommen auch an. entweder hat attr mqtt oder SSL reingespuckt.
Dass jetzt Daten kommen, ist schön. Aber beim nächsten Mal fängst Du dann wieder mit einem Ratespiel an, weil Du immer noch nicht weißt, was der Fehler war...
kann dir auch nur mitteilen was hier -> https://de.mathworks.com/help/thingspeak/troubleshoot-MQTT-subscribe.html geschrieben steht, bzgl. fehlerbehebung.
aber jetzt steht ja verbindung