Projet AirHackLab

Le AirHackLab est une initiative citoyenne de contribution aux données environnementales que j’ai initié au sein du Liège Hackerspace.

Ce projet est directement inspiré du projet LuftDaten et PurpleAir.

Objectifs

Le AirHackLab à 5 objectifs :

  • Développer des capteurs fiables, bon marché et open-source,
  • Construire les capteurs avec leurs futurs hôtes,
  • Sensibiliser à l’importance de la qualité de l’air,
  • Déployer un réseau alternatif, mesurer et collecter les données,
  • Partager les données librement.

Le prototype

Un prototype est en cours de développement dans une boite de dérivation dans une optique de simplicité et réduction de coût.

Les mesures seront la concentration PPM 2.5 & 10, la température, l’humidité et la pression atmosphérique.

Dans un second temps, il est prévu le développement d’une station plus complète avec des capteurs électrochimiques afin de mesurer les polluants.

Boitier proto AirHackLab

Coté serveur

Voilà, plus ou moins comment fonctionnera l’infrastructure une fois totalement en place.

Chaque utilisateur peut créer un compte et ajouter ses capteurs.

Une API permet déjà la mise à jour des utilisateurs du broker MQTT Mosquitto. Une simple cron avec un petit script pour charger la nouvelle liste et reload le service.

Export API pour Mosquitto

Sources

Les sources sont disponibles sur Github : https://github.com/AirHackLab

Confinement.S02E09

Flux RSS

J’ai remis en place un flux RSS sur le blog. Je suis le premier à pester sur les sites ne le proposant pas. Alors voilà qui est maintenant réglé ici.

Si vous ne savez pas ce qu’est un flux RSS (C’est que vous êtes trop jeune… Ou moi trop vieux), je ne peux que vous inviter à vous documenter et surtout l’implémenter sur vos sites !

ACL Mosquitto

Un nouvel article vient d’être publié sur le blog dans la série MQTT. Il s’agit de l’utilisation de l’ACL sur Mosquitto.

Web

J’ai actuellement plusieurs sites web en préparation, qui devraient tous être publiés d’ici peu. Un peu de teasing pour ceux ayant le courage de suivre les articles « confinement ». De façon non-exhaustive, un « guide d’achat » pour les makers, un index des lieux de fabrication numérique et une autre surprise.

La fibre

Une petite affiche est apparue sur l’entrée de l’immeuble au-dessus du hackerspace. La fibre semble débarquer dans mon quartier. Je vais pouvoir profiter des offres d’EDPnet (ainsi que le hackerspace ?).

La fibre débarque

Cette série d’articles a été motivée par Yves sur Twitter.

Configuration de l’ACL Mosquitto

Après l’introduction à MQTT et son installation. Passons à la découverte et la configuration de l’ACL (Access Control List – Liste de contrôle d’accès).

Par défaut Mosquitto autorise la connexion sans login / mot de passe. J’ai parlé de ce point dans l’article sur son installation.

Une fois connecté chaque utilisateur (ou client) peut écrire ou écouter n’importe quel topic sans aucune restriction. C’est ici que l’ACL intervient !

Configuration acl_file

Dans le fichier de configuration de votre Mosquitto, il est nécessaire de configurer l’emplacement de votre acl_file.

acl_file /etc/mosquitto/acl

« Lexique »

  • # – Wildcard, il donne accès à tout le topic de façon récursive.
  • + – Wildcard, il donne accès à tout le topic sur le même niveau.
  • $SYS – est réservé au broker, il communique ses statistiques, … Vous pouvez laisser l’accès en lecture ou non aux clients via un pattern par exemple.
  • user – Permet de définir l’utilisateur concerné.
  • topic – Permet de définir le topic concerné.
  • pattern – Permet de définir un topic à tous utilisateurs ou clients.
  • read – Permet de lire le topic.
  • write – Permet d’écrire sur le topic.
  • readwrite – Permet de lire et d’écrire sur le topic.
  • %c – ID du client.
  • %u – Nom de l’utilisateur.

Il est possible de connecter plusieurs clients avec un ID différent avec le même utilisateur. Dans un premier temps limitez-vous à un client = un utilisateur car cela peut vite poser des soucis.


Clients & Users

Dans l’exemple suivant l’utilisateur cuisine à le droit d’écrire et de lire dans tout le topic maison/cuisine et à aussi le droit de lire tout le topic maison.

L’utilisateur toto lui à uniquement le droit de lire maison/cuisine/temperature.

user cuisine
topic readwrite maison/cuisine/#
topic read maison/#

user toto
topic read maison/cuisine/temperature

Patterns

Dans l’exemple suivant tous les utilisateurs peuvent lire les informations du broker $SYS. Chaque client et utilisateur ont le droit d’écrire et de lire dans « leur espace ». Donc l’utilisateur toto à son topic maison/user/toto de façon récursive, pareil pour l’utilisateur cuisine.

pattern read $SYS/#
pattern readwrite maison/id/%c/#
pattern readwrite maison/user/%u/#

Ressource : https://mosquitto.org/man/mosquitto-conf-5.html