Skip to content
This repository was archived by the owner on Jun 10, 2024. It is now read-only.

Installation de assistant plugins sur RaspberryPi

Aymeric edited this page Apr 3, 2018 · 24 revisions

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)

1. Installation de Node

Commencer par mettre à jour le système avec les commandes :

sudo apt-get update
sudo apt-get upgrade

Cette 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 -v

Si 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 nodejs

Si 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/cpuinfo

Ici on voit que c'est du ARM v6l :

armcpuinfo

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.gz

On décompresse :

tar xvzf node-v9.3.0-linux-armv6l.tar.gz

Ensuite, 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/bin

Puis 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 ~/.bashrc

Maintenant, taper node -v devrait retourner v9.3.0.

2. Création des Comptes IFTTT et Pushbullet

  • Se créer un compte sur IFTTT (c'est gratuit)
  • Se créer un compte sur Pushbullet (c'est gratuit)

3. Téléchargement

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.js

ATTENTION : toutes les commandes suivantes sont à faire dans le dossier ~/assistant-plugins/ créé juste au-dessus.

4. Ajout des plugins souhaités

Par exemple, si vous voulez installer le plugin pour piloter la Freebox (assistant-freebox), il faut taper :

npm install assistant-freebox --save

Et on fera de même pour les plugins qu'on souhaite installer.

5. Installation finale

Maintenant on termine avec la commande :

npm install --loglevel error && npm run-script postinstall

Des erreurs peuvent apparaitre durant cette étape, mais normalement elles peuvent être ignorées.

6. Configuration

Se reporter à la documentation.

7. Lancer le programme

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.js

Le 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.

8. Lancer au redémarrage

Deux méthodes possibles.

Méthode 1 : crontab

On va utiliser crontab en tapant :

crontab -e

Puis, 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

Méthode 2 : pm2

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 -g

Maintenant on lance le script de démarrage de pm2:

pm2 startup

Selon 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 save

Finalement on peut redémarrer pour tester.

Pour voir la console de assistant-plugins (et les éventuels messages d'erreur), il faudra taper :

pm2 monit

Si 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 0

Clone this wiki locally