Homebridge est un projet Open Source développé par Nick Farina (Github, site internet). C’est un projet modulaire auquel on peut ajouter des plugins en fonction du matériel que l’on souhaite ajouter à son iPhone (ou iPad). Il en existe déjà plus de 260 (la liste complète ici) et vous pouvez même développer le votre (des exemples pour démarrer).
Il existe des plugins pour les principaux logiciels domotique (Domoticz, Home Assistant, OpenHAB, Jeedom, FHEM…) et pour de nombreux matériels (Ampoules Philips Hue, NAS Synology…)
Sommaire
Installer Homebridge sur Raspbian
Commençons par mettre à jour le système
sudo apt-get update sudo apt-get upgrade
Si votre distribution ne prend pas en charge l’expansion automatique de la partition (au premier lancement, c’est par exemple le cas pour l’image de Domoticz), lancez raspi-config.
sudo raspi-config
Puis Option 1 – Expand Filesystem. Ensuite Finish et enfin Allow reboot.
Installer Node.js
Avant d’installer Homebridge, il est nécessaire d’installer Node.js. Suivez les étapes suivantes qui correspondent à votre modèle de Raspberry. On commence par supprimer le Node.js déjà existant sur le système pour installer la version 6.3.1 (version conseillée pour le projet Homebridge).
Raspberry Pi A/B/B+ (anciens modèles)
sudo apt-get remove nodejs sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*} /var/db/receipts/org.nodejs.* hash -r wget https://nodejs.org/dist/v6.3.1/node-v6.3.1-linux-armv6l.tar.gz tar -xvf node-v6.3.1-linux-armv6l.tar.gz cd node-v6.3.1-linux-armv6l sudo cp -R * /usr/local/ cd ~/
Raspberry Pi 2 ou 3
sudo apt-get remove nodejs sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*} /var/db/receipts/org.nodejs.* hash -r wget https://nodejs.org/dist/v6.3.1/node-v6.3.1-linux-armv7l.tar.gz tar -xvf node-v6.3.1-linux-armv7l.tar.gz cd node-v6.3.1-linux-armv7l sudo cp -R * /usr/local/ cd ~/
Installer Homebridge et Domoticz
Maintenant, nous pouvons installer Homebridge et le plugin eDomoticz
sudo npm set prefix '/usr' -g sudo npm install -g homebridge --unsafe-perm
Récupérez l’adresse Mac du votre Raspberry PI. Ce n’est pas noté mais sans cette configuration (astuce trouvée ici), vous risquez de ne pas réussir à détecter le pont HB sur iPhone (ou iPad). Exécutez ifconfig. L’adresse Mac du RPI se trouve à droite de HWaddr.
Créez un répertoire dédié à Homebridge
mkdir ~/.homebridge
Puis ouvrez le fichier de configuration dans un éditeur de texte (pico ou nano).
sudo nano ~/.homebridge/config.json
Modifiez la valeur de la clé username en saisissant l’adresse Mac du Raspberry Pi.
Vous pouvez en profiter pour attribuer un code Pin plus personnel. Enregistrez (Ctrl + X ) puis O (ou Y). L’exemple suivant est tiré du tutoriel d’installation pour Domoticz. Vous devrez l’adapter en fonction du plugin dont vous avez besoin.
Lancez manuellement HB avec la commande.
homebridge
Au démarrage les appareils domotique sont présentés à iOS.
Au démarrage, HB recherche tous les dispositifs (appareils) configurés et les rend visible par un iPhone ou un iPad relié au réseau local.
Il n’est pas encore capable de prendre en compte les modifications apportées au fichier de configuration “à chaud”. Il faudra le redémarrer manuellement à chaque fois que vous ajoutez un matériel par exemple. Voici donc quelques commandes utiles.
Lancer automatiquement Homebridge au démarrage du Raspberry
Vérifiez tout d’abord que les sources de HB ont été installées globalement.
sudo npm install -g homebridge
Ensuite on édite le fichier init.d
sudo nano /etc/init.d/homebridge
Copiez ce code dans le fichier (origine du code source).
#!/bin/sh ### BEGIN INIT INFO # Provides: homebridge # Required-Start: $network $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO dir="/home/pi" cmd="DEBUG=* /usr/local/bin/homebridge" user="pi" name=`basename $0` pid_file="/var/run/$name.pid" stdout_log="/var/log/$name.log" stderr_log="/var/log/$name.err" get_pid() { cat "$pid_file" } is_running() { [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1 } case "$1" in start) if is_running; then echo "Already started" else echo "Starting $name" cd "$dir" if [ -z "$user" ]; then sudo $cmd >> "$stdout_log" 2>> "$stderr_log" & else sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" & fi echo $! > "$pid_file" if ! is_running; then echo "Unable to start, see $stdout_log and $stderr_log" exit 1 fi fi ;; stop) if is_running; then echo -n "Stopping $name.." kill `get_pid` for i in {1..10} do if ! is_running; then break fi echo -n "." sleep 1 done echo if is_running; then echo "Not stopped; may still be shutting down or shutdown may have failed" exit 1 else echo "Stopped" if [ -f "$pid_file" ]; then rm "$pid_file" fi fi else echo "Not running" fi ;; restart) $0 stop if is_running; then echo "Unable to stop, will not attempt to start" exit 1 fi $0 start ;; status) if is_running; then echo "Running" else echo "Stopped" exit 1 fi ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac exit 0
On doit rendre le script executable
sudo chmod 755 /etc/init.d/homebridge
Et maintenant on demande à l’OS de démarrer le script au démarrage
sudo update-rc.d homebridge defaults
On peut le lancer manuellement avec la commande
sudo /etc/init.d/homebridge start
Si HB est déjà lancé, le script vous en informera et ne fera rien de plus.
Autres commandes utiles pour piloter Homebridge
Arrêter
Pour arrêter manuellement
sudo /etc/init.d/homebridge stop
Connaitre l’état
Exécutez la commande suivante pour savoir si le service est démarré ou arrêté.
sudo /etc/init.d/homebridge status
Redémarrer
Vous venez de faire une modification dans le fichier de configuration ~/.homebridge/config.json, exécutez l’option restart pour relancer.
sudo /etc/init.d/homebridge restart
Consulter les journaux (logs)
Une fois que HB est configuré pour ce lancer au démarrage, on a plus de retour visuel de ce qui ce passe. Voici deux autres commandes bien utiles pour accéder aux logs en temps réel.
tail -f /var/log/homebridge.log
Et pour consulter le journal des erreurs
tail -f /var/log/homebridge.err
Sources :
Avez-vous aimé cet article ?