Comment connecter n'importe quel appareil intelligent à HomeKit (avec un Raspberry Pi)
Publié: 2022-01-29De nombreux appareils intelligents ignorent la prise en charge d'Apple HomeKit et s'intègrent uniquement à Alexa, Google et d'autres plates-formes. Avec ce hack Raspberry Pi, cependant, vous pouvez ajouter la prise en charge de HomeKit à n'importe quel appareil intelligent avec le logiciel open source Homebridge.
HomeKit pour tout appareil intelligent
Si vous êtes all-in sur HomeKit, un gros problème est le peu d'appareils intelligents qui le prennent en charge. Par exemple, la seule chose qui retient certaines ampoules intelligentes bon marché est leur manque de support HomeKit. Le choix d'Amazon pour une "ampoule intelligente" est un pack de quatre de TECKIN, qui, à ce jour, coûte environ 40 $, soit moins qu'une seule ampoule LIFX.
Bien sûr, ils ne sont pas aussi premium que LIFX ; les couleurs ne sont pas aussi vibrantes et émettent un bourdonnement audible dans la salle de bain, mais pour 10 $ la pop, elles représentent une valeur assez imbattable.
Le principal problème, cependant, est qu'ils n'ont pas de support HomeKit. Ils ne sont pas complètement stupides : ils fonctionnent avec Google Home, Alexa, IFTTT et l'application du fabricant. Ils conviennent à quelqu'un qui n'a que des ampoules intelligentes TECKIN.
Cependant, comme vous ne pouvez pas y accéder depuis HomeKit, vous ne pouvez pas les contrôler depuis l'application Home, le widget dans Control Center ou Siri. Vous ne pouvez pas non plus les inclure dans des scènes avec des ampoules d'autres marques ou les utiliser dans des automatisations. Si vous avez déjà investi dans HomeKit, il s'agit probablement d'un dealbreaker.
Rencontrez Homebridge
Heureusement, il existe un hack qui rend ces ampoules particulières beaucoup plus utiles. L'API HomeKit permet aux appareils appelés ponts, comme celui-ci de Philips Hue, de connecter des appareils enfants qui fonctionnent sur d'autres protocoles. Vous ajoutez simplement le pont en tant qu'appareil dans HomeKit, et il enregistre chaque lumière qui lui est connectée dans HomeKit. Chaque fois que vous faites une demande pour mettre à jour une lumière, votre téléphone parle au pont et le pont parle à la lumière.
Ainsi, un pont ne fait que relayer les informations d'une API à une autre. Parce que vous pouvez contrôler les ampoules TECKIN sur Internet, il est tout à fait possible de les connecter à HomeKit avec un simple logiciel - aucun matériel propriétaire n'est requis.
Si vous avez un Raspberry Pi qui traîne (un Pi Zero à 5 $ convient), vous pouvez le configurer comme un pont avec un framework appelé Homebridge. Cette application NodeJS légère émule l'API HomeKit et transmet les requêtes à vos appareils intelligents non HomeKit.
Fondamentalement, vous l'exécutez sur le Pi et il ajoute chaque appareil "stupide" à l'application Home. Lorsque vous essayez de contrôler l'ampoule via l'application Home ou Siri, Homebridge communique avec les appareils pour vous. Une fois que vous l'avez configuré, c'est comme si l'appareil avait pris en charge HomeKit en premier lieu.
Cela nécessite que l'appareil exécute Homebridge à tout moment, donc ce n'est pas quelque chose que vous installeriez sur votre ordinateur portable. Un Raspberry Pi est idéal, mais si vous avez un ancien appareil que vous pouvez réutiliser en tant que serveur ou bureau qui fonctionne toujours, vous pouvez l'installer là-bas.
Homebridge est un framework, et vous pouvez l'étendre avec des plug-ins. Il bénéficie d'un soutien communautaire assez important, il y a donc de fortes chances qu'un appareil intelligent donné ait probablement un plug-in Homebridge pour en ajouter la prise en charge. Si votre appareil n'a pas de plug-in, mais que votre appareil intelligent a une API et que vous êtes féru de technologie, vous pouvez en écrire un vous-même.
Pour la plupart des gens, cependant, la configuration consiste simplement à installer Homebridge et le plug-in de marque pour l'appareil, ainsi qu'un peu de configuration. Si vous pouvez utiliser la ligne de commande et avoir un peu de temps, c'est assez facile.
Installation et configuration de Homebridge
Homebridge est une application NodeJS, vous devez donc installer node
et npm
pour l'utiliser. Si votre machine fonctionne sous Linux, vous pouvez probablement l'obtenir auprès de votre gestionnaire de packages.
Sur Ubuntu, vous devez taper ce qui suit pour configurer manuellement le référentiel 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 consulter la page de téléchargement de Node pour savoir comment l'installer pour votre système d'exploitation particulier.
Si vous êtes sous Linux, vous devez également installer certaines dépendances, comme indiqué ci-dessous :
sudo apt-get install libavahi-compat-libdnssd-dev
Ensuite, vous pouvez installer Homebridge globalement via npm
, comme indiqué ci-dessous :
sudo npm install -g --unsafe-perm homebridge
Vous souhaitez également installer les plug-ins de marque dont vous avez besoin, car Homebridge n'est qu'un framework. Pour les ampoules TECKIN par exemple, le plug-in est homebridge-tuya-web
, qui s'installe également globalement.
Vous taperiez ce qui suit :
npm i homebridge-tuya-web -g
Une fois que tout est installé, vous pouvez réellement utiliser la chose ! Tapez ce qui suit pour exécuter Homebridge une fois et tout initialiser :
homebridge
Il se plaindra d'un manque de configuration, que vous devrez créer. Le répertoire par défaut est ~/.homebridge/
, mais vous pouvez utiliser le paramètre -U
si vous souhaitez le déplacer.
Saisissez ce qui suit pour créer un nouveau fichier de configuration JSON dans ce dossier :
nano ~/.homebridge/config.json
Quels que soient les plug-ins que vous utilisez, vous avez besoin de la configuration de base suivante :
{ "pont": { "name": "Homebridge", "nom d'utilisateur": "CC:22:3D:E3:CE:30", "port": 51826, "broche": "031-45-154" }, "description": "Serveur HomeBridge personnalisé", "ports": { "début": 52100, "fin": 52150, }, "plates-formes": [ ] }
Cela configure Homebridge avec un port, un nom, un code PIN et une plage de ports par défaut disponibles à allouer à d'autres appareils.
Dans le tableau des platforms
vides, vous placez la configuration de chaque plug-in. Vous devriez pouvoir trouver des instructions et des exemples sur la page GitHub de chaque plug-in.
Dans l'exemple ci-dessous, le homebridge-tuya-web
pour les ampoules TECKIN souhaite connaître mon nom d'utilisateur et mon mot de passe pour se connecter à l'API de l'application de l'ampoule, et quelques autres choses :
"plates-formes": [ { "platform": "TuyaWebPlatform", "name": "TuyaWebPlatform", "choix": { "nom d'utilisateur": "nom d'utilisateur", "mot de passe": "mot de passe", "countryCode": "1", "plate-forme": "smart_life", "intervalle d'interrogation": 10 } } ]
Une fois que tout est configuré, Homebridge devrait être prêt à fonctionner. Exécutez-le à nouveau et votre terminal devrait afficher un code QR géant qui pourrait vous obliger à effectuer un zoom arrière. Scannez-le avec l'application Home pour l'ajouter ainsi que tous les appareils connectés à HomeKit.
Homebridge charge vos plug-ins et devrait enregistrer un message à l'écran pour chaque appareil qu'il trouve. Vous devriez tous les voir dans HomeKit après leur ajout, et ils devraient être entièrement fonctionnels.
J'ai remarqué un léger retard par rapport à mes ampoules LIFX. C'est probablement parce que les ampoules sont contrôlées via une API plutôt que directement. Au début, les ampoules n'affichaient pas correctement certains blancs et blancs chauds, mais après quelques ajustements, j'ai pu mettre en place des scènes appropriées.
Vous pouvez toujours configurer les appareils dans leurs propres applications, attendre la mise à jour de l'application Home, puis définir le décor dans HomeKit avec la configuration prédéfinie.
Si vous devez rajouter Homebridge, vous devrez supprimer le dossier persist/
dans le répertoire de configuration, puis supprimer le pont de HomeKit des paramètres de toute ampoule connectée sous l'onglet "Pont".
Ajouter Homebridge en tant que service
Si vous voulez que Homebridge fonctionne tout le temps, vous voudrez probablement le configurer pour qu'il redémarre s'il plante ou si votre Raspberry Pi redémarre. Vous pouvez le faire via un service Unix. Configurez ceci après avoir vérifié que Homebridge fonctionne comme prévu.
Tout d'abord, ajoutez un nouvel utilisateur de service, appelé homebridge
:
sudo useradd -M --system homebridge
Définissez un mot de passe :
sudo passwd homebridge
Ensuite, vous devrez déplacer la configuration du homebridge
en dehors de votre répertoire personnel. /var/lib/homebridge/
devrait convenir :
sudo mv ~/.homebridge /var/lib/homebridge/
Assurez-vous que la personne qui utilise homebridge
est propriétaire de ce répertoire et de tous les sous-dossiers :
sudo chown -R homebridge /var/lib/homebridge/
Une fois cela fait, vous pouvez créer le service. Pour ce faire, créez un nouveau fichier nommé homebridge.service
dans /etc/systemd/system/
:
sudo nano /etc/systemd/system/homebridge.service
Et collez ensuite la configuration suivante :
[Unité] Description=Service Homebridge Après=syslog.target network-online.target [Un service] Genre=simple Utilisateur=homebridge ExecStart=/usr/bin/homebridge -U /var/lib/homebridge Redémarrer = en cas d'échec RestartSec=10 KillMode=processus [Installer] WantedBy=multi-utilisateur.cible
Rechargez le démon de services pour le mettre à jour avec vos modifications :
rechargement du démon systemctl sudo
Maintenant, vous devriez pouvoir activer votre service (en le configurant pour qu'il s'exécute au démarrage) :
sudo systemctl activer le homebridge
Et lancez-le :
sudo systemctl start homebridge
Si vous avez besoin de déboguer des erreurs résultant de la configuration du service, vous pouvez afficher les journaux du service en saisissant :
journalctl -fn 50 -u homebridge