Aujourd’hui, nous allons voir comment installer Homebridge sur Raspberry Pi. Cette installation vous permettra de rendre compatible des objets connectés qui ne sont pas certifiés Homebridge. Si vous souhaitez en apprendre plus sur Homebridge, je vous conseille d’aller lire cet article.

Pour pouvoir installer Homebridge sur votre Raspberry, je vous conseille d’utiliser un Raspberry Pi 2 ou 3 avec Raspbian Jessie Lite sur votre carte micro SD.

Préparation du système

La première étape de notre tutoriel est de mettre à jour notre système.

apt-get update
apt-get upgrade
apt-get install git make

Installation de Node

Installons maintenant NodeJS depuis leur dépôt.

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
apt-get install -y nodejs

Installation d’Avahi et de ses dépendances

apt-get install libavahi-compat-libdnssd-dev

Installation d’Homebridge et de ses dépendances

npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
cd /usr/local/lib/node_modules/homebridge/
npm install --unsafe-perm bignum
cd /usr/local/lib/node_modules/hap-nodejs/node_modules/mdns
node-gyp BUILDTYPE=Release rebuild

Création du fichier de configuration d’Homebridge

Nous allons maintenant créer le fichier de configuration nécessaire au fonctionnement. Il est important que ce dossier soit accessible en écriture par l’utilisateur homebridge que nous avons créer.

mkdir /var/homebridge/
vim /var/homebridge/config.json

Nous allons maintenant devoir ajouter quelques lignes dans ce fichier de configuration. Dans un premier temps, nous allons juste créer la configuration pour qu’Homebridge puisse se lancer. Je vous expliquez à la fin la configuration à utiliser pour ajouter vos périphériques. Il est important que votre fichier ait la syntaxe correcte car sans ça, Homebridge ne se lancera pas!

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:21",
        "port": 51826,
        "pin": "131-45-154"
    }

Lancement d’Homebridge au démarrage du système

Avant de se lancer dans la configuration du service, nous allons créer l’utilisateur nécessaire au démarrage d’Homebridge. Pour ce faire, entrez la commande suivante:

useradd homebridge

Pour qu’Homebridge se lance au démarrage du système, il faudra ajouter deux fichiers. Cette partie est importante car si elle ne fonctionne pas, quand votre Pi redémarrera, Homebridge ne sera pas relancé automatiquement.

vim /etc/default/homebridge

Copiez la configuration ci-dessous dans le fichier

# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/homebridge

# If you uncomment the following line, homebridge will log more 
# You can display this via systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*

Créons maintenant le deuxième fichier nécessaire au démarrage automatique

vim /etc/systemd/system/homebridge.service

Collez y la configuration suivante

[Unit]
Description=Node.js HomeKit Server 
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Il ne nous reste plus qu’à activer le service et l’éxécuter

systemctl daemon-reload
systemctl enable homebridge
systemctl start homebridge

Installation des plugins compatibles

Il ne vous reste plus qu’à ajouter les périphériques compatibles au fichier config.json. Pour ce faire, je vous conseille de vous rendre sur cette page. Une liste des plugins compatibles s’y trouve. Une fois le plugin trouvé, il ne vous restera plus qu’à exécuter la ligne de commande que le développeur du plugin vous donnera ainsi que de copier la configuration à la suite du fichier de configuration d’Homebridge. Je vous laisse un exemple de fichier de configuration ou le plugin Wake On Lan est activé pour que vous puissiez voir la syntaxe.

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:21",
        "port": 51826,
        "pin": "131-45-154"
    },
    "description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
    "accessories": [
        {
            "accessory": "WakeOnLan",
            "name": "Base Netgear Arlo",
            "macAddress": "2C:30:33:47:F2:41"
        }
     ]
}

Pour conclure

Homebridge est vraiment une solution pratique pour pouvoir piloter votre domotique avec votre appareils iOS. Il vous suffira juste de disposer d’une Apple TV 4 ou d’un iPad qui restera chez vous pour que vous puissiez la piloter. Vous pourrez même utiliser Siri pour effectuer des actions ou avoir des informations sur l’état de votre maison.

18 Commentaires

  1. Bonjour Julien 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. »

    Peux-tu 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 »
    }
    }

  2. Bonjour,
    Déjà merci pour ce tuto en français qui fait du bien.

    alors perso je rencontre un problème lors de l’installe de Homebridge et de ses dépendances:

    la commande
    cd /usr/local/lib/node_modules/homebridge/ ne donne rien chez moi, j’ai donc modifié en cd /usr/lib/node_modules/homebridge/
    c’est pareil pour la direction suivante ce qui est logique me direz vous,

    es-ce que j’ai bien fait de corriger ainsi ou vais-je rencontrer de problème par la suite?

    cordialement,
    Mario

      • ok merci,

        dsl, je suis un gros boulet, je débute avec les raspberry et je galère pas mal…

        j’ai suivi tout le tuto et ce jusque’a la fin,

        et apres?

        je démarre mon iphone, je lance l’app « maison » et je clic sur ajouter un accessoire?

        je suis sur le meme réseau wifi, j’ai activé le bluetooth au cas ou, mais rien ne se passe…?

          • j’ai fait un sudo service –status-all et homebridge n’apparaît pas,
            la seul chose que j’ai changer lors de l’installe c’est les « vim » car le message command not found me revenait, j’ai remplacer par nano,
            et au début de l’installation je suis passe en mode « root » avec sudo -i

          • Il dit « vim command not found » parce que vim n’est pas installé sur ta machine.

            Si tu fais un « systemctl start homebridge », ça te dit quoi?

          • suite a la commande que tu m’a donné:

            ● homebridge.service – Node.js HomeKit Server
            Loaded: loaded (/etc/systemd/system/homebridge.service; enabled)
            Active: activating (auto-restart) (Result: exit-code) since jeu. 2017-02-09 21:56:56 CET; 4s ago
            Process: 5607 ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS (code=exited, status=1/FAILURE)
            Main PID: 5607 (code=exited, status=1/FAILURE)

            févr. 09 21:56:56 homekit homebridge[5607]: at Object.parseDataDirSync (/usr/lib/node_modules/homebridge/node_m…5:21)
            févr. 09 21:56:56 homekit homebridge[5607]: at Object.initSync (/usr/lib/node_modules/homebridge/node_modules/n…5:14)
            févr. 09 21:56:56 homekit homebridge[5607]: at Object.nodePersist.initSync (/usr/lib/node_modules/homebridge/no…1:29)
            févr. 09 21:56:56 homekit homebridge[5607]: at Object.init (/usr/lib/node_modules/homebridge/node_modules/hap-n…9:13)
            févr. 09 21:56:56 homekit homebridge[5607]: at module.exports (/usr/lib/node_modules/homebridge/lib/cli.js:24:7)
            févr. 09 21:56:56 homekit homebridge[5607]: at Object. (/usr/lib/node_modules/homebridge/bin/homebri…7:22)
            févr. 09 21:56:56 homekit systemd[1]: homebridge.service: main process exited, code=exited, status=1/FAILURE
            févr. 09 21:56:56 homekit systemd[1]: Unit homebridge.service entered failed state.
            Hint: Some lines were ellipsized, use -l to show in full.

    • Bonjour,

      Si vous avez la possibilité d’avoir le même OS (Raspbian sur mon Raspberry) et d’après ce que je sais, c’est disponible, vous devriez pouvoir utiliser Homebridge correctement. Juste que d’après mes renseignements, les distributions sont moins suivies et plus bugguées sur les Orange Pi.

      Maintenant, à vous de voir (je ne sais pas ce que vous avez en connaissances à ce niveau)!

      • Bah, je ne connais pas linux et je devrai apprendre. Mais je suis informaticien et je devrais m’en sortir.

        Il m’est venu une autre question: quid de l’utilisation depuis l’extérieur ?

        • Je conseille alors plutôt le Raspberry Pi pour un premier essai. Les distributions sont plus suivies et la communauté plus grande.

Laisser une réponse:

Merci d'écrire votre commentaire!
Merci d'entrer votre nom ici

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