Pour le moment, il faut impérativement un processus tiers.
Voici un exemple de code plus documenté, à laisser tourner par exemple sur le serveur FFVL.
// ici en nodejs, mais il doit être possible de faire la même chose en python, java, ou autre langage
// ex : https://pypi.python.org/pypi/socketIO-client
// créer un répertoire relay-pioupiou, dans lequel enegistrer ce fichier relay-pioupiou.js
// installation de nodejs
$ apt-get install nodejs npm
$ cd ~/relay-pioupiou
// installation des dépendances :
$ npm install socket.io-client request
// execution du code
$ nodejs relay-pioupiou.js
// ------------------ relay-pioupiou.js --------------------------------
// on charge le module "socket.io" (techno de communication normalement utilisée pour faire du temps réel serveur vers web)
// puis on ouvre un canal vers l'api push pioupiou, qui déclenchera des évènements lors de la réception des données
var socket = require('socket.io-client')('http://api.pioupiou.fr/v1/push');
// on charge le module request servant à appeler un autre serveur
var request = require('request');
// quand evenement "connect", on s'abonne aux messages de un ou tous les pioupious
socket.on('connect', function () {
socket.emit('subscribe', 'all'); // tous
// on peut s'abonner à un ou plusieurs appareils à la fois :
//socket.emit('subscribe', '123');
//socket.emit('subscribe', '124');
//socket.emit('subscribe', '125');
});
// quand événement "measurement", on renvoie la data reçue
socket.on('measurement', function (dataPioupiou) {
// on affiche les données recues
console.log(dataPioupiou);
// on fait correspondre le nom des champs
var dataFFVL = {
"idBalise": "pioupiou-" + dataPioupiou.station_id,
"vitesseVentMoy": dataPioupiou.wind_speed_avg,
"vitesseVentMin": dataPioupiou.wind_speed_min,
"vitesseVentMax": dataPioupiou.wind_speed_max,
"directVentMoy": dataPioupiou.wind_heading,
"date": dataPioupiou.date // ATTENTION
// ou pour un timestamp unix : (new Date(dataPioupiou.date)).getTime()/1000
};
// ATTENTION : il faut que le serveur prenne également en compte le paramètre data.date, car les pioupious sigfox transmettent plusieures mesures à la fois.
// Si le serveur attends un message POST
request.post('http://balisemeteo.com/script-des-balises.php', {form: dataFFVL }, function(err, response, body) {
if(err) {
return console.err(err);
}
console.log("status code: " + response.statusCode);
console.log(body);
});
// Si le serveur attends un message GET
request.get('http://balisemeteo.com/script-des-balises.php', {qs: dataFFVL }, function(err, response, body) {
if(err) {
return console.err(err);
}
console.log("status code: " + response.statusCode);
console.log(body);
});
});
Concernant la SIM, j’ai envoyé toutes les instructions.
Je leur ai dit de contacter Adisson pour savoir comment changer le paramètre APN (opérateur) dans la balise.