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…)
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, 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 :
- Tutoriel du projet
- Installation et configuration du plugin eDomoticz
- Wiki en Anglais
- Exemple de script de démarrage
- Plugin HomeKit pour Node-RED, plus facile à utiliser que Homebridge
- Intégrer des objets connectés Arduino / ESP8266 + Blynk à iOS grâce à Homebridge (HomeKit)
- Projet ESP8266-HomeKit (SHA-2017), inclusion directe avec iOS sans Homebridge
- Apple ouvre HomeKit aux Makers et projets non commerciaux en entreprise
- Jeedom + Homebridge : piloter vos équipements avec un iPhone et Siri
- Tout savoir sur Homebridge, le pont pour piloter des accessoires domotiques depuis iOS
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 »,
« author »: « CONNCTED »,
« dependencies »: {
« soundtouch »: « 3.0.2 »
},
« license »: « ISC »,
« keywords »: [
« homebridge-plugin », « soundtouch », « homekit », « siri », « bose »
],
« repository »: {
« type »: « git »,
« url »: « git://github.com/CONNCTED/homebridge-soundtouch.git »
},
« bugs »: {
« url »: « http://github.com/CONNCTED/homebridge-soundtouch/issues »
},
« engines »: {
« node »: « >=0.12.0 »,
« homebridge »: « >=0.2.0 »
}
}
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
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
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 http://www.projetsdiy.fr/jeedom-homebridge-piloter-equipements-iphone-ipad-homekit-siri/ A très bientôt
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 ?
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:~ $
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.
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.
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 (http://www.projetsdiy.fr/domoticz-installation-configuration-raspberry-pi-3/).