Installation mqtt sur raspberry pi A+

Forum dédié au protocole MQTT : fonctionnement, intégration ...
Pour les questions concernant le plugin de FlyingDomotic, merci d'utiliser le sous-forum dédié.
LanFy
Messages : 7
Inscription : 27 oct. 2019, 08:46

Installation mqtt sur raspberry pi A+

Message par LanFy »

Bonjour à tous,

J'essaie vainement d'installer la passerelle mqtt sur un vieux raspberry pi A+(arm v6) depuis mercredi et pas moyen de l'installer.
Est ce que l'un de vous a réussi à le faire récemment? en utilisant la doc officielle (zigbee2mqtt.io) ça ne fonctionne pas.
Je sais que le matos est un peu vieux mais je me disais que je pouvais le recycler au moins pour faire ça :)
LanFy
Messages : 7
Inscription : 27 oct. 2019, 08:46

Re: Installation mqtt sur raspberry pi A+

Message par LanFy »

Je suis en train de me dire que ça manque peut être un peu de détail. Vu que j'avais cloné ma carte SD avant de commencer l'installation de mqtt, je vais repartir d'une base propre et vous refaire le cheminement depuis le début pour que vous ayez tout en détaillé.
De plus si je règle le problème, ça permettra d'avoir un REX pour ce cas de figure. ;)
De retour en début de soirée!
LanFy
Messages : 7
Inscription : 27 oct. 2019, 08:46

Re: Installation mqtt sur raspberry pi A+

Message par LanFy »

Alors. Histoire de poser le décors.

J'habite (enfin je vais habiter) dans une vieille maison Alsacienne typique avec plancher en bois sur deux étages (en plus du rez de chaussé donc).

L'idée est dans un premier temps d'avoir la gestion des luminaires (ikea tradfri ON/OFF et variation de la chaleur) et potentiellement quelques prises (Osram smart+)

Donc la solution que j'envisageais était de mettre un CC2531+raspberry pi A+(qui trainait dans un tiroir) sur lequel j'installerai Zigbee2MQTT.
Celui-ci communiquerait avec le broker mosquito sur mon NAS Synology et Domoticz serait lui aussi installé sur le Synology.

Ça c'est pour la première phase, le POC qui me permettra de justifier l'achat du reste auprès de ma femme :mrgreen:

Jusque là, j'espère que ma vision de l'installation n'est pas déconnante.

La phase 2 serait de gérer les lumières de l'ensemble des étages (donc achat de 2 raspberry pi zero W + 2 CC2531 et des ampoules)

La phase 3, de passer la gestion de Domoticz et du broker sur un raspberry dédié (surement un rasp3), avec un réseau dédié hors internet, un serveur dns, etc...

La phase 4, augmenter les capteurs et peut être les protocoles? (volets roulants, alarmes, :?: )
Dernière modification par LanFy le 27 oct. 2019, 17:52, modifié 1 fois.
LanFy
Messages : 7
Inscription : 27 oct. 2019, 08:46

Re: Installation mqtt sur raspberry pi A+

Message par LanFy »

Techniquement, j'ai installé une raspbian buster lite sur le raspberry pi A+, passé le clavier et l'OS en français et étendu le FS.
J'ai aussi configuré le serveur SSH afin de me connecter sans couple login/mdp via échange de clé privée, clé publique.
A noter que j'ai mis à jour l'OS.
Jusque là rien de compliqué et une fois ceci fait, j'ai fait une image de la carte SD m'attendant à quelques réinstallation vu que je ne m'y connaissais pas trop en domotique (bien m'en a pris apparemment).

Donc j'ai utilisé la doc présente ici pour installer le pont Zigbee2MQTT : https://www.zigbee2mqtt.io/getting_star ... 2mqtt.html
Au départ, je n'avais pas réalisé que le raspberry PI A+ était un ARMV6 du coup forcément ça n'a pas marché. Mais là, je viens de réinstaller l'image de base et vous êtes au début de ma nouvelle aventure (enfin pas trop vite, j'ai une connexion internet anémique... Vive la campagne).
Donc à venir, le résultat de l'installation de node.js v10.17.0 et de l'ensemble des actions à réaliser jusqu'à la fin du chapitre 2 de la doc d'installation.
LanFy
Messages : 7
Inscription : 27 oct. 2019, 08:46

Re: Installation mqtt sur raspberry pi A+

Message par LanFy »

Je vous passerai les lignes de logs qui indiquent les évolutions de téléchargement ou d'installation sauf si des erreurs ou des informations importantes sont affichées. Les résultats de commandes que je veux mettre en surbrillance positive seront en vert, les négatives en rouge, les warning en jaune.

Code : Tout sélectionner

pi@raspberrypi:~ $ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 oct. 23 22:36 /dev/ttyACM0
Le sniffer est bien détecté.

Ensuite installation de node.js 10.17.0 :

Code : Tout sélectionner

pi@raspberrypi:~ $ wget https://unofficial-builds.nodejs.org/download/release/v10.17.0/node-v10.17.0-linux-armv6l.tar.xz
pi@raspberrypi:~ $ tar -xvf node-v10.17.0-linux-armv6l.tar.xz
pi@raspberrypi:~ $ cd node-v10.17.0-linux-armv6l/
pi@raspberrypi:~/node-v10.17.0-linux-armv6l $ sudo cp -R * /usr/local/
A ce moment là de l'installation je me retrouve avec ça :

Code : Tout sélectionner

pi@raspberrypi:~ $ node -v
v10.17.0

Code : Tout sélectionner

pi@raspberrypi:~ $ npm -v
v6.11.3
Donc à priori tout va bien :D

Code : Tout sélectionner

pi@raspberrypi:~ $ sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo: git : commande introuvable
Ok git n'est pas installé. Bon :

Code : Tout sélectionner

pi@raspberrypi:~ $ sudo apt-get install git
pi@raspberrypi:~ $ sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
pi@raspberrypi:~ $ sudo chown -R pi:pi /opt/zigbee2mqtt
pi@raspberrypi:~ $ cd /opt/zigbee2mqtt
Ok on lance l'installation!

Code : Tout sélectionner

pi@raspberrypi:/opt/zigbee2mqtt $ npm install
Voici les erreurs et les warnings :

npm WARN tarball tarball data for zigbee-herdsman@0.5.7 (sha512-5Ak/kPb5CC+smRU3n1v5g/GEGEMKHQoBrZKmaA1EFfTYx0hMC47055U/Ajatu1Urdd4sXFzSyxwHBMX0eaytGg==) seems to be corrupted. Trying one more time
cette ligne revient 3 fois
npm WARN tar ENOENT: no such file or directory, open '/opt/zigbee2mqtt/node_modules/.staging/rxjs-21bfd94b/*
beaucoup de choses qui n'existent pas dans ce répertoire (d'où l'étoile) une centaine de ligne qui dit que les différents éléments n'existent pas...

Et enfin :
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/fsevents):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/opt/zigbee2mqtt/node_modules/.staging/fsevents-c353231d/node_modules/abbrev' -> '/opt/zigbee2mqtt/node_modules/.staging/abbrev-1a0cd9f3'

npm ERR! code EINTEGRITY
npm ERR! Verification failed while extracting zigbee-herdsman@0.5.7:
npm ERR! Verification failed while extracting zigbee-herdsman@0.5.7:
npm ERR! sha512-5Ak/kPb5CC+smRU3n1v5g/GEGEMKHQoBrZKmaA1EFfTYx0hMC47055U/Ajatu1Urdd4sXFzSyxwHBMX0eaytGg== integrity checksum failed when using sha512: wanted sha512-5Ak/kPb5CC+smRU3n1v5g/GEGEMKHQoBrZKmaA1EFfTYx0hMC47055U/Ajatu1Urdd4sXFzSyxwHBMX0eaytGg== but got sha512-Zm5EE5nHciZ1H6/Fy/Wr1WuhzTuPN+Y6dulyQClHoZ3OMg8xRRdhaFqc/DtpwRHwATzu5HudI5soLIjiM6n+8Q==. (8477403 bytes)

npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2019-10-27T18_24_09_198Z-debug.log

Voilà.
A priori il y a une solution de contournement pour le problème npm ERR! Verification failed while extracting zigbee-herdsman@0.5.7 : https://github.com/Koenkk/zigbee2mqtt/issues/2041

Code : Tout sélectionner

pi@raspberrypi:/opt/zigbee2mqtt $ rm -rf node_modules && npm install --no-shrinkwrap
pi@raspberrypi:/opt/zigbee2mqtt $ npm audit fix
la commande "npm audit fix" c'est parce que ça me le demande à la fin de la précédente :)

Donc j'ai fait tout ça et j'ai testé :

Code : Tout sélectionner

pi@raspberrypi:/opt/zigbee2mqtt $ npm start
> zigbee2mqtt@1.6.0 start /opt/zigbee2mqtt
> node index.js

internal/modules/cjs/loader.js:638
throw err;
^

Error: Cannot find module 'zigbee-herdsman/dist/deprecated/ziee'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/opt/zigbee2mqtt/lib/zapp/cie.js:6:14)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! zigbee2mqtt@1.6.0 start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the zigbee2mqtt@1.6.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2019-10-27T20_49_42_122Z-debug.log

C'est pas encore ça mais l'erreur du départ a déjà été solutionnée par Koenkk (https://github.com/Koenkk/zigbee2mqtt/issues/1892)
du coup :

Code : Tout sélectionner

pi@raspberrypi:/opt/zigbee2mqtt $ git checkout npm-shrinkwrap.json
pi@raspberrypi:/opt/zigbee2mqtt $ git checkout package.json
pi@raspberrypi:/opt/zigbee2mqtt $ rm -rf node_modules && npm install
Voici le résultat :
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/zigbee-shepherd-converters/node_modules/zigbee-herdsman/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/zigbee-herdsman/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})

added 2097 packages from 594 contributors and audited 877679 packages in 1951.662s
found 3 vulnerabilities (2 moderate, 1 high)
run `npm audit fix` to fix them, or `npm audit` for details

C'est pas si mal :)
Tentons le start

Code : Tout sélectionner

pi@raspberrypi:/opt/zigbee2mqtt $ npm start
Résultat :

> zigbee2mqtt@1.6.0 start /opt/zigbee2mqtt
> node index.js

zigbee2mqtt:info 2019-10-27 10:30:13 PM Logging to directory: '/opt/zigbee2mqtt/data/log/2019-10-27.22-30-06'
zigbee2mqtt:info 2019-10-27 10:30:13 PM Starting zigbee2mqtt version 1.6.0 (commit #e26ad2a)
zigbee2mqtt:info 2019-10-27 10:30:14 PM Starting zigbee-shepherd
zigbee2mqtt:info 2019-10-27 10:30:20 PM zigbee-shepherd started
zigbee2mqtt:info 2019-10-27 10:30:21 PM Coordinator firmware version: '20190608'
zigbee2mqtt:info 2019-10-27 10:30:21 PM Currently 0 devices are joined:
zigbee2mqtt:warn 2019-10-27 10:30:21 PM `permit_join` set to `true` in configuration.yaml.
zigbee2mqtt:warn 2019-10-27 10:30:21 PM Allowing new devices to join.
zigbee2mqtt:warn 2019-10-27 10:30:21 PM Set `permit_join` to `false` once you joined all devices.
zigbee2mqtt:info 2019-10-27 10:30:21 PM Zigbee: allowing new devices to join.
zigbee2mqtt:info 2019-10-27 10:30:21 PM Connecting to MQTT server at mqtt://192.168.1.240
zigbee2mqtt:info 2019-10-27 10:30:23 PM zigbee-shepherd ready

zigbee2mqtt:error 2019-10-27 10:30:33 PM Not connected to MQTT server!
Bon le not connected, ça vient du fait que je n'ai pas encore configuré le service sur le synologie :lol:
Dernière modification par LanFy le 28 oct. 2019, 07:35, modifié 4 fois.
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Installation mqtt sur raspberry pi A+

Message par Neutrino »

Regarde par ici :
https://stackoverflow.com/questions/475 ... -npm-5-3-0
En espérant que ça résolve le problème. ;)
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
LanFy
Messages : 7
Inscription : 27 oct. 2019, 08:46

Re: Installation mqtt sur raspberry pi A+

Message par LanFy »

Neutrino a écrit : 27 oct. 2019, 20:21 Regarde par ici :
https://stackoverflow.com/questions/475 ... -npm-5-3-0
En espérant que ça résolve le problème. ;)
Merci d'avoir essayé :) Au final j'ai fini par réussir à l'installer. Avouons quand même que ce n'est pas vraiment aussi simple que sur le how to du dev :mrgreen:
LanFy a écrit : Bon le not connected, ça vient du fait que je n'ai pas encore configuré le service sur le synology
Au final c'était pire que ça, je n'avais pas lancé le service sur le syno. Une fois le service lancé et sans configuration :
zigbee2mqtt:info 2019-10-27 10:35:37 PM Connected to MQTT server
zigbee2mqtt:info 2019-10-27 10:35:37 PM MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online'
zigbee2mqtt:info 2019-10-27 10:35:38 PM MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1.6.0","commit":"e26ad2a","coordinator":20190608,"log_level":"info","permit_join":true}'

Nice!

Ajout du matériel sur Domoticz effectué via viewtopic.php?t=331

Prochaine étape, faire reconnaitre l'ampoule ikea par mon raspberry.

Ah j'oubliais, bien penser à créer le service (suivre les explications dans le how to du dev).
J'ai eu un soucis à ce niveau et dû modifier la ligne execstart ainsi :

Code : Tout sélectionner

ExecStart=/usr/local/bin/npm start
Dernière modification par LanFy le 27 oct. 2019, 22:54, modifié 2 fois.
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Installation mqtt sur raspberry pi A+

Message par Neutrino »

Super !
Merci pour ton retour d'expérience ;)
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Répondre