MKR 1200 Sigfox + ThingSpeak

Bonjour,

Je suis nouveau sur ce forum.

J’ai un problème pour convertir mes données Sigfox avec ThingSpeak Mathlab Analisys.

J’ai le code math lab suivant:(Voir attachement ci-joint)

Cela a fonctionné la première foi puis j’ai le massage suivant:

Error using Get data from a private channel 1 (line 39)
URL is incorrectly formed, or the requested feature is not supported in this version of ThingSpeak.

Merci d’avance de vos réponse.

Jean Noêl RAYNAUD

Copie ecran.pdf (107 KB)

Bonjour

si je comprend bien il s'agit :
-de prendre (lire) dans un canal ThingSpeak deux séries de données issues de Sigfox.
-de les traiter
-d'enregistrer (écrire) le résultat du traitement (deux séries de données) dans un autre canal ThingSpeak

Au vu du message d'erreur il semblerait qu'au moment de réaliser l'écriture les données ne soient pas disponibles. Il faut peut être que le canal lu soit public ? pb de jonglage entre deux canaux
EDIT : le code à l'air de correspondre au template "Get data from a private Channel"

Autre piste ; puisqu'il y a deux séries de données à écrire dans un canal il faut il me semble spécifier les n° des champs ou effectuer l'écriture, l'attribution des champs ne semble pas toujours implicite (cf exemple WriteMultipleValues)
doc : Write data to a ThingSpeak channel - MATLAB thingSpeakWrite - MathWorks France

Sur la base de mon usage basique de ThingSpeak je suis surpris de voir que dans le code testé les champs ne soient pas spécifiés par leur n° , ni en lecture dans un canal ni en écriture dans l'autre

Bonjour,

Merci de ta réponse. Mais je ne vois pas quoi faire pour indiquer les champs.

Peux-tu me donner un exemple ?

Cordialement.

Jean Noël

En fait je n'ai pas l'habitude d'utiliser la commande ThingSpeakWrite dans mes codes Matlab /ThingSpeak

il semble que la commande suivante range d'office les valeurs 2.3 1. 2 3. 2 et 0.1 dans les champs 1,2,3 et 4 du canal repéré par son APIkey, on ne mentionne pas explicitement les champs cibles

response = thingSpeakWrite(17504,[2.3,1.2,3.2,0.1],[color=#a020f0]'WriteKey'[/color],[color=#a020f0]'23ZLGOBBU9TWHG2H'[/color])

Au niveau du callback Sigfox les n° de champs ont-ils été définis dans le canal cible ?
Dans mon cas j'ai ce genre d'écriture pour transmettre à ThingSpeak les données batt et temp reçues sur le site Sigfox :

https://api.thingspeak.com/update?api_key=XXXXXXXXXXXXX&field3={customData#batt}&field4={customData#temp}

Les données émises par le 'device' Sigfox sont bien répercutées dans les champs 3 et 4 de la page du canal ThingSpeak concerné

Je gère toujours individuellement les séries chronologiques et ne sais pas s'il est possible de les gérer globalement comme dans le code du message initial (data , analyzedData).

Bonsoir

Voici un petit code Matlab testé, permettant de recopier (après un traitement sommaire ) dans les champs 1 et 2 d'un canal les données lues dans les champs 3 et 4 d'un autre canal (données accessoirement reçues via Sigfox)
(Le canal lu est public , donc pas de clef indispensable en lecture).
Par ailleurs l'horodatage initial crée par ThingSpeak à la réception des données issues de Sigfox est récupéré dans time et reproduit dans les champs du canal cible.
Une commande 'TimeControl' déclenche l'éxécution de ce code toutes les 15'

% essai de recopie de 2 champs d'un canal  vers deux champs d'un autre canal

% canal en lecture
readChannelID = XXX;
%readAPIkey = 'XXXXXXXXX';

% canal en écriture
writeChannelID = XXXXXX;
writeAPIKey = 'XXXXXXXXXXX';

%% Lecture %%
[batt, time] = thingSpeakRead( readChannelID, 'Fields', 3 );
temper = thingSpeakRead( readChannelID, 'Fields', 4 );

%% Analyze Data %%
analyzedbatt = batt / 10;
analyzedtemper = temper / 10;

%% Ecriture %%
thingSpeakWrite(writeChannelID, [analyzedbatt,analyzedtemper],'Fields',[1,2],'TimeStamps', time, 'writeKey', writeAPIKey);

PS : l'éditeur de code Matlab intégré à la page web ThingSpeak jouant parfois des tours je préfère editer le code à part et le copier-coller dans une fenêtre d'édition vide sur la page ThingSpeak
(je me suis retrouvé à l'exécution avec des messages d'erreurs illogiques prouvant que les modifications de code apparentes n'avaient parfois pas été réellement prises en compte)

Merci beaucoup de vos réponses. Cela est plus clair pour moi maintenant.

Amicalement.

Jean Noël