Migrating my existing ThingSpeak channel to new MQTT server

1 visualización (últimos 30 días)
Andrew Dumbill
Andrew Dumbill el 2 de Mzo. de 2022
Comentada: Andrew Dumbill el 25 de Mayo de 2022
I created a new MQTT device attached to my existing ThingSpeak channel. Then modified my application to use the mqtt3.thingspeak.com server, following the python example given. The application appears to publish data to the server successfully without any exception. However, the channel fields do not appear to update. The old app using the original MQTT server still appears to work for a while and then stops updating.
Do I need to remove the old channel and create a completely new one and create a new device before linking them?In other words do I have to completely unlink the old channel before I can publish my data and use it invisualisations?
  3 comentarios
Andrew Dumbill
Andrew Dumbill el 3 de Mzo. de 2022
Yes, I did use what I think is the right syntax with client ID, User and password from the new device. Will have a go with desktop client when I have a bit of time.
Andrew Dumbill
Andrew Dumbill el 25 de Mayo de 2022
I finally found some time to try and debug the code thoroughly. It turned out to be a very simple syntax error. There is a disconnect in the documentation between the Python example using Paho publish method and the MQTT X example. The topic and payload strings are built differently in the two examples, Extending the channels/<channelID>/publish/fields/field<fieldnumber> syntax, in the Paho version I had added a final "/" when building the topic string. The Paho publish method clearly adds the "/" between the topic string and the payload string, which also contains the field<fieldnumber>= part as well as a value. The additional "/" breaks the syntax, but no error is returned from the MQTT server.

Iniciar sesión para comentar.

Respuestas (1)

Vinod
Vinod el 3 de Mzo. de 2022
If you have 2 devices publishing to the same channel, one with the legacy mqtt connection and another with mqtt3 connection, but are both publishing at the maximum rate allowed for your account, only the data published by one of them will be accepted. The rate limit is enforced by the channel and not the protocol used to update the channel.
  3 comentarios
Andrew Dumbill
Andrew Dumbill el 3 de Mzo. de 2022
Thanks for the response. Only one feed is operating at a time. The legacy feed is a direct publish to the old server and works fine, I checked the data rate and its way below max rate. When I stop it and start the app with the new syntax and device, although I don't get publish errors, the data no longer appears in the channel. More investigation needed, although I'm away for a while. I just wondered if I was doing something wrong that could be resolved by a quick question.
Vinod
Vinod el 4 de Mzo. de 2022
If you don't see any errors, most likely it is a code error that is updating the fields. You can export the data in your channel from the import/export tab and look to see if perhaps nulls are being written to the channel when the new device is enabled.

Iniciar sesión para comentar.

Comunidades de usuarios

Más respuestas en  ThingSpeak Community

Categorías

Más información sobre Write Data to Channel en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by