-
-
Notifications
You must be signed in to change notification settings - Fork 21
Installation de assistant plugins sur RaspberryPi
Se connecter au RaspberryPi et taper toutes les commandes de cette page dans un terminal.
ATTENTION : toutes les commandes sont à exécuter en utilisateur normal (utilisateur pi par exemple, il faut éviter d'utiliser l'utilisateur root)
Commencer par mettre à jour le système avec les commandes :
sudo apt-get update
sudo apt-get upgradeCette opération peut prendre un certain temps, selon depuis quand le système a été mis à jour pour la dernière fois.
On va ensuite vérifier si node est déjà installé avec la commande :
node -vSi la console retourne : La commande « node » est introuvable, cela signifie qu'il n'est pas installé.
Si la console retourne une version, alors vérifier qu'il s'agit d'une version récente (> v8.x.x).
Si c'est une vieille version (par exemple v0.10.29), alors commencer par désinstaller cette version avec :
sudo apt-get remove nodejsSi vous avez une version récente (supérieure à 8.x.x) vous pouvez passer à la section suivante.
On va regarder la version ARM qu'on a. Pour cela on tape :
cat /proc/cpuinfoIci on voit que c'est du ARM v6l :

Pour installer Node on va récupérer les sources depuis http://nodejs.org/dist/ (ci-dessous un exemple avec la dernière version disponible ‐v9.3.0‐ en version linux-armv6l) :
cd ~
wget http://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-armv6l.tar.gzOn décompresse :
tar xvzf node-v9.3.0-linux-armv6l.tar.gzEnsuite, pour pouvoir utiliser les commandes node et npm de partout on va modifier le fichier ~/.bashrc :
nano ~/.bashrcÀ la fin du fichier on ajoute la ligne :
export PATH=$PATH:/home/pi/node-v9.3.0-linux-armv6l/binPuis on enregistre avec CTRL X, suivi par O (pour Oui) ou Y (pour Yes) selon la langue.
Enfin on tape la commande ci-dessous pour prendre en compte la modification du fichier :
source ~/.bashrcMaintenant, taper node -v devrait retourner v9.3.0.
- Se créer un compte sur IFTTT (c'est gratuit)
- Se créer un compte sur Pushbullet (c'est gratuit)
On va télécharger trois fichiers qu'on va placer dans le répertoire ~/assistant-plugins/ :
mkdir ~/assistant-plugins
cd ~/assistant-plugins
wget https://raw.githubusercontent.com/Aymkdn/assistant-plugins/master/docs/install/package.json
wget https://raw.githubusercontent.com/Aymkdn/assistant-plugins/master/docs/install/index.js
wget https://raw.githubusercontent.com/Aymkdn/assistant-plugins/master/docs/install/postinstall.jsATTENTION : toutes les commandes suivantes sont à faire dans le dossier ~/assistant-plugins/ créé juste au-dessus.
Par exemple, si vous voulez installer le plugin pour piloter la Freebox (assistant-freebox), il faut taper :
npm install assistant-freebox --saveEt on fera de même pour les plugins qu'on souhaite installer.
Maintenant on termine avec la commande :
npm install --loglevel error && npm run-script postinstallDes erreurs peuvent apparaitre durant cette étape, mais normalement elles peuvent être ignorées.
Se reporter à la documentation.
Une fois la configuration mise dans configuration.json on peut lancer le programme (s'assurer d'être bien dans le répertoire assistant-plugins) :
cd ~/assistant-plugins/
node index.jsLe programme devrait retourner :
[assistant] 1 plugins trouvé. [assistant] Chargement du plugin 'freebox' [assistant-freebox] Récupération des chaines télé sur free.fr... [assistant-freebox] Récupération des chaines sur free.fr terminée ! [assistant-freebox] Plugin chargé et prêt. [assistant] Prêt à écouter les commandes via PushBullet
Tout est prêt.
S'assurer maintenant de bien activer les applets sur IFTTT pour les commandes souhaitées.
Deux méthodes possibles.
On va utiliser crontab en tapant :
crontab -ePuis, tout en bas du fichier édité, on va mettre la ligne (attention de bien utiliser le même chemin défini dans les étapes précédentes selon la version de Node qui a été installée):
@reboot /home/pi/node-v9.3.0-linux-armv6l/bin/node /home/pi/assistant-plugins/index.js > /home/pi/assistant-plugins.log &
On enregistre avec CTRL X, suivi de O (pour Oui) ou Y (pour Yes) selon la langue.
Puis on redémarre.
On peut vérifier les logs en regardant le contenu du fichier /home/pi/assistant-plugins.log. Pour arrêter le programme on utilisera la commande ps aux afin de lister tous les processus, puis un kill -9 PID avec PID qui correspond à l'ID du processus /home/pi/node-v9.3.0-linux-armv6l/bin/node
Il semble que cette méthode ne fonctionne pas chez plusieurs utilisateurs
On va utiliser pm2 pour lancer le programme au démarrage.
Pour se faire, taper les commandes suivantes :
cd ~
npm install pm2 -gMaintenant on lance le script de démarrage de pm2:
pm2 startupSelon la version de RaspberryPi que vous avez, vous devrez entrer une commande supplémentaire. Par exemple il pourrait indiquer un message comme celui-ci :
[PM2] Init System found: systemd [PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/home/pi/node-v9.3.0-linux-armv6l/bin /home/pi/node-v9.3.0-linux-armv6l/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
Et, comme le message le stipule (To setup the Startup Script, copy/paste the following command) il faudra recopier la commande donnée dans la console.
Dans le cas contraire, si pm2 startup donne un message comme celui-ci :
[DONE] +---------------------------------------+ [PM2] Freeze a process list on reboot via: $ pm2 save [PM2] Remove init script via: $ pm2 unstartup systemd
Cela signifie que tout est OK (Done).
Maintenant on peut continuer et lui dire qu'il doit lancer assistant-plugins, et enfin on va sauvegarder pour que ce soit pris en compte au démarrage :
pm2 start index.js
pm2 saveFinalement on peut redémarrer pour tester.
Pour voir la console de assistant-plugins (et les éventuels messages d'erreur), il faudra taper :
pm2 monitSi vous avez besoin de faire des modifications (changement de configuration, ajout d'un plugin, etc.), assurez-vous de relancer le programme via pm2 :
# on liste tous les programmes lancés via pm2
pm2 list
# on repère celui d'assistant-plugins (probablement le seul de la liste)
# son ID est sûrement 0... on l'arrête
pm2 stop 0
# on peut modifier le fichier de configuration, ajouter de nouveaux plugins, etc.
# puis on le relance
pm2 start 0Sommaine Questions Fréquentes :
- J'ai tout bien installé, mais ça ne fonctionne pas...
[Error: Cannot find module 'request-promise-native'] code: 'MODULE_NOT_FOUND'- La freebox s'éteint quand je lui passe une commande
Error: Server responded with a non-101 status: 401 Unauthorized- Puis-je installer le programme sur mon téléphone Android ?
- Puis-je installer le programme sur mon Freebox Server ?
- Est-ce que
assistant-freeboxfonctionne avec la Freebox 4k ? - J'ai un Synology et le programme ne se relance pas au démarrage
- J'ai un VPN et
assistant-freeboxne fonctionne pas quand je l'active - "Action failure message: Account has not been used for over a month."
- La console retourne l'erreur :
code: ´ECONNRESET’, errno : ´ECONNRESET´