Une fois les paramétrages fait côté capteur de pollution, nous allons faire en sorte que les données soient publiées sur le broker MQTT de Tétaneutral.
Comme vu dan sla configuration côté device, il poste la donnée dans le répertoire https://iot.tetaneutral.net/ateliers/airquality
On ajoute un tuile HTTP avec pour méthode POST et comme URL /airquality. Mettre un nom “clair”. Voir exemple ci-dessous :
On reçoit bien le message, mais aussi les headers http. Dans le message, on cherche la clé :
payload.req.headers.authorization
Elle est encodée en base64, on décode et on récupère un truc du genre : login:password.
On peut donc faire un flow assez simple pour gérer quelques users : voici un exemple de fonction a mettre sous nodered, codé avec les pieds , il suffit ensuite d'ajouter les users au fur et à mesure dans la liste, c'est gérable jusque à quelques dizaines d'users:
var str = msg.req.headers.authorization
str= str.slice(6,str.length) // auth string is prececed by "Basic "
var b = Buffer.from(str, 'base64')
var decodedauth = b.toString();
var logpassarray = [
'julo:password',
'truco:password',
'bidulo:password'
];
if (logpassarray.includes(decodedauth)){
var username = decodedauth.split(":")[0] // extraction username pour topic MQTT
msg.payload.username = username
msg.topic="airquality/" + username
return msg;
}
Le flow final ressemble a ceci :
Apres quelques essais infructueux , le mode influx en https a l'air de fonctionner sur le port 8086.
voila ce que l on obtient pour les particules pm 2.5 et PM10: