Tout savoir sur Homebridge, le pont pour piloter des objets domotique depuis iOS

Homebridge est un projet Open Source développé par Nick Farina (Githubsite 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…)

English version

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.

Installation de 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).

Attention. Vérifiez l’impact sur d’autres projets qui utilisent Node.js avant de vous lancer.

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 ~/

Installation de Homebridge et eDomoticz

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.

hombridge domoticz adresse mac rpi 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.

Attention. Il faut saisir l’adresse Mac en majuscule sinon cela provoque une erreur et l’arrêt d’Homebridge.

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
homebrige domoticz premier demarrage

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 :

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Promos à ne pas louper

13
Poster un Commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  S’abonner  
Notifier de
olivier

Bonjour merci pour ton auto, je rencontre néanmoins un problème au niveau de l’installation des plugins. je ne comprends pas comment faire. Voici ma config, mais pas moyen, il me signale : « No plugins found. See the README for information on installing plugins. » Pouvez-vous m’aider ? { « bridge »: { « name »: « Homebridge », « username »: « Adresse mac de mon Pi », « port »: 51826, « pin »: « 131-45-154 » }, { « name »: « homebridge-soundtouch », « version »: « 3.0.0 », « description »: « Homebridge SoundTouch »,… Lire la suite »

Bonjour Olivier. Pourriez vous m’en dire un peu plus sur votre configuration (Raspberry, PC…), version de nodejs et npm (faire node – v et npm -v). Enfin il faudrait m’en dire un peu plus sur les plugins que vous voulez installer. Merci

Remi Falcand

Merci du tuto. Dans le script Init.d, attention les traductions html de “&” et “>” se sont glissé dedans. Il faut les remplacer (voir ligne 26 et après)
Changer l’adresse dans le début du script pour /usr/bin

Schatz Matth

Bonjour à tous,

Mon rasp tourne actuellement avec Jeedom et je désire y intaller homebridge.

Je rencontre un problème au telechargement du soft lorque je rentre cette commande => sudo apt-get install nodejs npm

Pourriez vous me venir en aide?

Bonne journée à tous.

Bonsoir Matth. J’ai pris un peu de temps pour rédiger un tuto complet. Vous pouvez le suivre ici https://www.projetsdiy.fr/jeedom-homebridge-piloter-equipements-iphone-ipad-homekit-siri/ A très bientôt

Hazard Fantom

Bonjour,
J’ai tenté d’installer Homebridge comme indiqué sur ce tuto. Mais, lorsque que tape la ligne suivante :
sudo nano ~/.homebridge/config.json
L’editeur s’ouvre, je copie le texte. Et quand j’enregistre, j’ai le message suivant :
[ Error writing /home/pi/.homebridge/config.json: No such file or directory ]
Si le regarde dans les fichiers, je me rend compte que le dossier .homebridge ,n’existe pas ! (meme si j’affiche les fichiers caché)

Avez vous une idée de ce que j’ai pu raté dans l’installation ?! ou est ce que c’est normal et qu’il y a une manip supplémentaire à faire ?!

Bonjour Hazard. Effectivement homebridge n’est pas installé, ou il ne l’a pas été dans ce répertoire. La commande sudo npm update -g homebridge –unsafe-perm vous a renvoyé quoi ?

Hazard Fantom

Bonjour,
Lorsque je tape la commande :
sudo npm set prefix ‘/usr’ -g
rien ne se passe. Je me retrouve directement a pouvoir taper une nouvelle ligne. Je tape donc :
sudo npm update -g homebridge –unsafe-perm
Et la, idem !

Voici ce que ca donne a l’ecran :
pi@raspberrypi:~ $ sudo npm set prefix ‘/usr’ -g
pi@raspberrypi:~ $ sudo npm update -g homebridge –unsafe-perm
pi@raspberrypi:~ $

Lex Lebton

Bonjour et bonne année 2017 !
J’ai le même problème chez moi.

Bonjour Lex et meilleurs voeux également. Je viens de reprendre le tutoriel. J’avais fait ce tutoriel en partant de l’image Domoticz alors que maintenant on doit plutot partir d’une image de Raspbian sur laquelle on installe Domoticz avec une commande curl. J’ai tout retesté et tout fonctionne chez moi. A très bientôt.

Lex Lebton

Ah super !! Donc si je comprends bien, j’installe Domoticz et dans ce dernier j’installe HB ? Bon je me renseigne sur ce qu’est une commande curl je reviens vous voir pour faire part de mon expérience. Merci encore !

Oui c’est exactement ça. J’ai aussi repris sur tutoriel d’installation de Domoticz (https://www.projetsdiy.fr/domoticz-installation-configuration-raspberry-pi-3/).

Bonjour Hazard et meilleurs voeux également. Je viens de reprendre le tutoriel. J’avais fait ce tutoriel en partant de l’image Domoticz alors que maintenant on doit partir d’une image de Raspbian sur laquelle on installe Domoticz avec une commande curl. J’ai tout re-testé et tout fonctionne chez moi. A très bientôt.

Domotique et objets connectés à faire soi-même