Il est fréquent que de nombreux dispositifs connectés ne prennent pas en charge Apple HomeKit, se limitant à Alexa, Google et d’autres plateformes. Cependant, une astuce avec un Raspberry Pi permet d’ajouter la compatibilité HomeKit à tout appareil intelligent, en utilisant le logiciel open-source Homebridge.
HomeKit à la portée de tous les appareils connectés
Pour ceux qui sont fidèles à l’écosystème HomeKit, un défi majeur réside dans le nombre limité d’appareils compatibles. Par exemple, certaines ampoules connectées à prix abordable sont freinées par leur manque de prise en charge de HomeKit. Un exemple typique est un lot de quatre ampoules de la marque TECKIN, proposé aux alentours de 40 $, soit moins cher qu’une seule ampoule LIFX.
Bien que ces ampoules ne rivalisent pas avec les modèles haut de gamme comme LIFX en termes de qualité de couleur et qu’elles puissent émettre un léger bourdonnement, leur rapport qualité-prix est indéniable, surtout au prix unitaire de 10$.
Le problème crucial est qu’elles ne sont pas compatibles avec HomeKit. Elles fonctionnent avec Google Home, Alexa, IFTTT et l’application du fabricant, ce qui peut suffire pour ceux qui utilisent uniquement des ampoules TECKIN. Cependant, leur absence de compatibilité HomeKit empêche de les contrôler via l’application Maison, le widget du centre de contrôle ou Siri. Elles ne peuvent pas non plus être intégrées à des scénarios avec des ampoules d’autres marques ou être utilisées dans des automatisations. Pour ceux qui ont déjà investi dans HomeKit, c’est un inconvénient majeur.
Découverte de Homebridge
Heureusement, une solution existe pour rendre ces ampoules plus polyvalentes. L’API HomeKit autorise l’utilisation de ponts, comme celui de Philips Hue, pour connecter des périphériques fonctionnant avec d’autres protocoles. Il suffit d’ajouter le pont en tant qu’appareil dans HomeKit, et il enregistre chaque lumière qui y est connectée. Lors d’une demande de modification d’une lumière, votre téléphone communique avec le pont, qui à son tour communique avec la lumière.
Un pont sert donc de relai entre différentes API. Étant donné que les ampoules TECKIN peuvent être contrôlées via Internet, il est tout à fait possible de les rendre compatibles avec HomeKit à l’aide d’un simple logiciel, sans nécessiter de matériel propriétaire.
Si vous possédez un Raspberry Pi inutilisé (un Pi Zero à 5 $ est parfait), vous pouvez le configurer en tant que pont avec l’outil Homebridge. Cette application NodeJS légère émule l’API HomeKit et transmet les requêtes à vos appareils connectés non-compatibles avec HomeKit.
Concrètement, en exécutant Homebridge sur le Pi, chaque appareil « non-intelligent » est ajouté à l’application Maison. Lorsque vous essayez de contrôler l’ampoule via l’application Maison ou Siri, Homebridge se charge de la communication avec l’appareil. Une fois configuré, l’appareil se comporte comme s’il était compatible HomeKit dès le départ.
Il est important de noter que l’appareil doit exécuter Homebridge en permanence, il ne s’agit donc pas d’une solution à installer sur un ordinateur portable. Un Raspberry Pi est idéal, mais un ancien appareil pouvant servir de serveur ou d’ordinateur toujours allumé peut également faire l’affaire.
Homebridge est un cadre extensible via des plugins. Sa communauté est active, ce qui signifie qu’il existe probablement un plugin Homebridge pour la plupart des appareils connectés. Si votre appareil n’a pas de plugin dédié, mais qu’il possède une API et que vous êtes à l’aise avec la technologie, vous pouvez en créer un vous-même.
Cependant, pour la plupart des utilisateurs, la configuration se résume à installer Homebridge, le plugin adapté à la marque de l’appareil et à effectuer quelques ajustements. Si vous savez utiliser la ligne de commande et que vous avez un peu de temps devant vous, l’opération est relativement simple.
Installation et configuration de Homebridge
Homebridge étant une application NodeJS, il est nécessaire d’installer Node et npm pour l’utiliser. Sur un système Linux, vous pouvez généralement les obtenir via votre gestionnaire de paquets.
Sur Ubuntu, vous devez exécuter les commandes suivantes pour configurer le dépôt Node puis installer nodejs :
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs
Sinon, vous pouvez vous référer à la page de téléchargement de Node pour obtenir les instructions d’installation adaptées à votre système d’exploitation.
Sous Linux, certaines dépendances supplémentaires doivent être installées, comme indiqué ci-dessous :
sudo apt-get install libavahi-compat-libdnssd-dev
Ensuite, vous pouvez installer Homebridge globalement via npm :
sudo npm install -g --unsafe-perm homebridge
Il est également nécessaire d’installer les plugins correspondant à vos appareils, car Homebridge n’est qu’un cadre. Pour les ampoules TECKIN par exemple, le plugin homebridge-tuya-web doit être installé globalement.
La commande à exécuter est la suivante :
npm i homebridge-tuya-web -g
Une fois l’installation terminée, vous pouvez lancer Homebridge pour la première fois afin d’initialiser le processus :
homebridge
L’application signalera l’absence de configuration, qui doit être créée. Le répertoire par défaut est ~ / .homebridge /, mais vous pouvez le modifier en utilisant le paramètre -U.
Pour créer un fichier de configuration JSON dans ce dossier, utilisez la commande suivante :
nano ~/.homebridge/config.json
Quelle que soit l’utilisation des plugins, la configuration de base suivante est nécessaire :
{ "bridge": { "name": "Homebridge", "username": "CC:22:3D:E3:CE:30", "port": 51826, "pin": "031-45-154" }, "description": "Custom HomeBridge Server", "ports": { "start": 52100, "end": 52150, }, "platforms": [ ] }
Cette configuration comprend le port, le nom, le code PIN de Homebridge et la plage de ports par défaut utilisés pour d’autres périphériques.
La configuration de chaque plugin se fait à l’intérieur du tableau « platforms ». Vous trouverez généralement des exemples et instructions sur la page GitHub du plugin concerné.
L’exemple ci-dessous illustre la configuration du plugin homebridge-tuya-web pour les ampoules TECKIN, qui nécessite un nom d’utilisateur, un mot de passe pour se connecter à l’API de l’application de l’ampoule, ainsi que d’autres informations :
"platforms": [ { "platform": "TuyaWebPlatform", "name": "TuyaWebPlatform", "options": { "username": "username", "password": "password", "countryCode": "1", "platform": "smart_life", "pollingInterval": 10 } } ]
Une fois la configuration terminée, Homebridge est prêt à être lancé. Exécutez-le à nouveau et un code QR géant s’affichera dans votre terminal. Scannez ce code avec l’application Maison pour ajouter Homebridge et tous les appareils connectés à HomeKit.
Homebridge chargera vos plugins et affichera un message pour chaque périphérique détecté. Ces appareils devraient ensuite apparaître dans HomeKit et être pleinement fonctionnels.
Un léger délai de réponse par rapport aux ampoules LIFX peut être observé, probablement dû au fait que les ampoules sont contrôlées via une API et non directement. Les blancs et blancs chauds ne s’affichaient pas correctement au début, mais après quelques ajustements, des scénarios appropriés ont pu être configurés.
Il est toujours possible de configurer les appareils dans leurs propres applications, d’attendre la mise à jour de l’application Maison et de finaliser la configuration des scénarios dans HomeKit.
Si vous devez reconfigurer Homebridge, supprimez le dossier persist / dans le répertoire config et supprimez le pont de HomeKit dans les paramètres de chaque ampoule connectée, sous l’onglet « Pont ».
Configuration de Homebridge en tant que service
Pour que Homebridge fonctionne en continu, il est recommandé de le configurer pour qu’il redémarre en cas de plantage ou de redémarrage du Raspberry Pi. Cela peut être réalisé grâce à un service Unix. Cette configuration est à mettre en place une fois que vous avez validé que Homebridge fonctionne correctement.
Commencez par ajouter un nouvel utilisateur de service, nommé homebridge :
sudo useradd -M --system homebridge
Définissez un mot de passe pour cet utilisateur :
sudo passwd homebridge
Déplacez ensuite la configuration de Homebridge en dehors de votre répertoire personnel. Le dossier /var/lib/homebridge/ est un bon choix :
sudo mv ~/.homebridge /var/lib/homebridge/
Assurez-vous que l’utilisateur homebridge est bien le propriétaire de ce répertoire et de tous ses sous-dossiers :
sudo chown -R homebridge /var/lib/homebridge/
Il est maintenant possible de créer le service. Créez un nouveau fichier appelé homebridge.service dans /etc/systemd/system/ :
sudo nano /etc/systemd/system/homebridge.service
Copiez-y la configuration suivante :
[Unit] Description=Homebridge service After=syslog.target network-online.target [Service] Type=simple User=homebridge ExecStart=/usr/bin/homebridge -U /var/lib/homebridge Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target
Rechargez le démon des services pour prendre en compte les modifications :
sudo systemctl daemon-reload
Activez le service pour qu’il démarre automatiquement au démarrage du système :
sudo systemctl enable homebridge
Enfin, lancez le service :
sudo systemctl start homebridge
Pour diagnostiquer d’éventuels problèmes de configuration du service, vous pouvez consulter les logs en tapant :
journalctl -fn 50 -u homebridge