Parcourir la catégorie

Tutoriel

Les articles liés au tutoriels (tutoriaux ?) que je rédige. Electronique, météo, développement web, programmation, …

Cover Zigbee to MQTT

Installation de Zigbee 2 MQTT

Afin de se débarrasser des diverses passerelles IKEA, HUE, … Qui pour certaines ne sont plus maintenue par leur fabricant. Coucou Phillips. Il existe une solution, pour intégrer tout ce petit monde facilement à votre domotique en passant via MQTT.

Source : https://github.com/koenkk/zigbee2mqtt

Prérequis

La clé CC2538 + CC2592 – Zigbee 3.0 de Mister3D

Installation

Si vous avez besoin d’un serveur MQTT : Installer un broker MQTT – Mosquitto – Ubuntu le tuto est applicable sans problème sur votre installation de Raspberry Pi OS.

  • Après si nécessaire avoir flashé votre clé Zigbee, il suffit de la brancher sur le Raspberry Pi,
ls -l /dev/tty*

Pour la plupart des clés USB le port sera ttyACM0 ou ttyUSB0.

Petite mise à jour du Pi et installation de Node.js, Git et de quoi compiler.

sudo apt-get update && apt-get upgrade
sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs git make g++ gcc

On clone le dépôt GitHub de Zigbee2MQTT et on règle les permissions

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt

On passe à l’installation

cd /opt/zigbee2mqtt
npm ci --production

Si tout se passe bien vous devriez avoir un retour dans votre terminal ressemblant à ça :

node-pre-gyp info ok
added 383 packages in 111.613s

Le nombre de « packages » et le temps peuvent être différents sur votre installation.

L’installation est maintenant terminée ! Il reste maintenant à passer à un peu de configuration.


Configuration

La configuration se fait via le fichier configuration.yaml dans /opt/zigbee2mqtt/data/.

nano /opt/zigbee2mqtt/data/configuration.yaml
# MQTT settings
mqtt:
  # MQTT base topic for Zigbee2MQTT MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://localhost'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

Dans la configuration de base, vous pouvez configurer base_topic qui sera le « préfixe » de tout les topics MQTT provenant de Zigbee2MQTT et la configuration MQTT. Pensez à dé-commenter user et password si nécessaire.

Après avoir fini d’éditer la configuration, lancez la commande suivante afin de générer la clé du réseau.

echo "\n\nadvanced:\n    network_key: GENERATE" >> /opt/zigbee2mqtt/data/configuration.yaml

Il est temps de tester et de démarrer Zigbee2MQTT.

cd /opt/zigbee2mqtt
npm start

Pas d’erreur ? Tout fonctionne ? CRTL + C afin d’arrêter le processus en cours.


Démarrage automatique

Afin de ne pas se soucier du lancement, nous allons mettre Zigbee2MQTT au démarrage du Raspberry Pi.

Créez le fichier de configuration systemctl zigbee2mqtt.service :

sudo nano /etc/systemd/system/zigbee2mqtt.service

Ajoutez ceci au fichier que vous venez de créer/ouvrir :

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

Si vous êtes sur un pi zéro jetez un œil à ce guide. Il est nécessaire de remplacer ExecStart=/usr/bin/npm start par ExecStart=/usr/local/bin/npm start

Maintenant, il suffit d’activer le service.

sudo systemctl enable zigbee2mqtt.service

Pour terminer cette partie quelques commandes utiles :

  • Voir le statut : systemctl status zigbee2mqtt.service
  • Arrêter : sudo systemctl stop zigbee2mqtt
  • Démarrer : sudo systemctl start zigbee2mqtt
  • Voir le log : sudo journalctl -u zigbee2mqtt.service -f

Conclusion

La partie installation est terminée. Vous trouverez plus d’informations dans les sources ci-dessous. La prochaine étape sera l’appairage des différents appareils Zigbee. Comme d’habitude vous avez mes réseaux sociaux et maintenant le Discord ioodyme ainsi que le tout nouveau groupe Telegram.


Sources

Fabrication de l'enseigne

Enseigne « néon » DIY – ESP8266

Liste des courses


Hack du ruban LED

Neodyme explique parfaitement le « hack » du ruban led Action dans le replay du live Twitch. Le point de complexité est de trouver où couper dans le ruban.

Fabrication

Une fois que l’endroit où couper est trouvé, il suffit de souder l’alimentation + et – et ajouter un fil pour le data. Le – (gnd) en masse commune avec le Wemos. (Voir vidéo ci-dessus).

Dans mon cas ayant pas mal réduit la longueur du ruban, j’ai ajouté un petit module « step-down » pour alimenter le Wemos en 5v et donc d’avoir une seule alimentation pour ce projet.

J’ai imprimé en grand sur plusieurs A4 le logo souhaité pour l’enseigne. Dans ce cas le logo du Liège Hackerspace.

Pour faciliter le pliage de l’aluminium (à refaire, je pense plutôt passer à de l’acier) un « rig » est découpé rapidement à la scie à ruban et adapté pour les différents angles et courbes.

Quelques pliages et ajustements plus tard, place aux rivets et la structure est terminée.

Premier lancement… et un glitch inexplicable qui n’a pu être résolu par le remplacement du Wemos.

Pour la partie software afin que l’enseigne puisse être synchronisée au reste du hackerspace et pilotable via MQTT, j’ai opté pour WLED.

La structure a été peinte en noir mat après un bon dégraissement et le ruban est fixé grâce à des serflexs blancs translucides. L’électronique est sur le châssis dans du ruban noir d’électricien.


Tadaaam!

Photo arduino illustration

Arduino original ou clone

Petit avis personnel en passant, car j’ai souvent cette question sans réelle réponse à apporter. Je ne compte pas, dans cet article, vous donner une réponse « prête à l’emploi », mais plutôt des pistes de réflexions.

Je suis principalement un utilisateur de clone, même si j’abandonne doucement l’arduino au profit des ESP.

Arduino, clone ou contrefaçon ?

Arduino est une plateforme logiciel et matériel, simple à utiliser et open-source. Mais cela n’autorise pas n’importe quoi.

Il est donc parfaitement autorisé d’utiliser les sources pour produire des boards dites « Arduino compatible ».

Le souci, c’est la contrefaçon, la copie pur et simple de la carte jusqu’à son design, impression, …

Cela peut être trompeur et vous pouvez régulièrement tomber sur des copies de mauvaise qualité utilisant des composants moins chers ou retirant certains composants.

La qualité des clones (ne parlons pas des contrefaçons) est très variable.

Il existe de très bons clones vendus en tant que tels. Parfois un petit souci de driver la carte utilisant, pour une raison de réduction de coût, un CH341.

Les clones permettent un accès très bon marché et facile à l’univers des microcontrôleurs.

Pourquoi un vrai Arduino alors ?

Pourquoi alors payer jusqu’à 10x plus cher ma carte ?

Si vous en avez les moyens et l’envie. Acheter un vrai Arduino c’est supporter le développement open-source des cartes, de l’IDE,… Notez aussi qu’Arduino supporte énormément d’événements, l’éducation et autres projets open-source.

Je pense personnellement que sans cette plateforme beaucoup d’entre nous n’auraient pas eu un accès aussi simple à « l’électronique » et aux microcontrôleurs.


Sources & ressources :

Image par Omer Iqbal de Pixabay