Comment connecter n’importe quel appareil intelligent à HomeKit (avec un Raspberry Pi)

De 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 le support 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 $ – moins qu’une seule ampoule LIFX.

Lumières intelligentes Tuya

Bien sûr, ils ne sont pas aussi premium que LIFX; les couleurs ne sont pas aussi vives et elles émettent un bourdonnement audible dans la salle de bain, mais pour 10 $ la boisson gazeuse, elles ont un rapport qualité-prix 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, pour 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 y est connectée dans HomeKit. Chaque fois que vous faites une demande de mise à jour d’une lumière, votre téléphone parle au pont et le pont parle à la lumière.

  Vérifiez si votre image de profil LinkedIn est bonne ou doit être améliorée

Ainsi, un pont ne fait que relayer les informations d’une API à une autre. Comme 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 (5 $ Pi zéro est bien), vous pouvez le configurer comme un pont avec un cadre 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 parle aux 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, ce n’est donc 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 toujours en cours d’exécution, 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 que tout appareil intelligent donné ait probablement un plug-in Homebridge pour l’ajouter. Si votre appareil n’a pas de plug-in, mais que votre appareil intelligent a une API et que vous êtes un expert en 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 exécute Linux, vous pouvez probablement l’obtenir à partir de votre gestionnaire de paquets.

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 Page de téléchargement de Node pour savoir comment l’installer pour votre système d’exploitation particulier.

  Comment télécharger des torrents sur un Chromebook

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 à l’échelle mondiale.

Vous tapez 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, qu’il faut créer. Le répertoire par défaut est ~ / .homebridge /, mais vous pouvez utiliser le paramètre -U si vous souhaitez le déplacer.

Tapez 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:

{
  "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": [

  ]
}

Cela configure Homebridge avec un port, un nom, un code PIN et une plage de ports par défaut disponibles à allouer à d’autres périphériques.

À l’intérieur du tableau de plates-formes vide, vous placez la configuration de chaque plug-in. Vous devriez pouvoir trouver des instructions et des exemples à ce sujet sur la page GitHub de chaque plug-in.

Dans l’exemple ci-dessous, le plug-in homebridge-tuya-web pour les ampoules TECKIN veut 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:

  "platforms": [
     {
       "platform": "TuyaWebPlatform",
       "name": "TuyaWebPlatform",
       "options":
         {
           "username": "username",
           "password": "password",
           "countryCode": "1",
           "platform": "smart_life",
           "pollingInterval": 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 forcer à effectuer un zoom arrière. Scannez-le avec l’application Home pour l’ajouter ainsi que tous les appareils connectés à HomeKit.

  Comment renommer des fichiers en nom de dossier parent sous Windows 10

Code QR dans le terminal

Homebridge charge vos plug-ins et doit enregistrer un message à l’écran pour chaque périphérique 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 non plus 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 avez besoin de rajouter Homebridge, vous voudrez supprimer le dossier persist / dans le répertoire config, puis supprimer le pont de HomeKit des paramètres de toute ampoule connectée sous l’onglet «Bridge».

Ajouter Homebridge en tant que service

Si vous voulez que Homebridge s’exécute 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 homebridgeconfiguration en dehors de votre répertoire personnel personnel. / var / lib / homebridge / devrait être bien:

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 appelé homebridge.service dans / etc / systemd / system /:

sudo nano /etc/systemd/system/homebridge.service

Et puis collez 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 le mettre à jour avec vos modifications:

sudo systemctl daemon-reload

Maintenant, vous devriez pouvoir activer votre service (en le configurant pour qu’il s’exécute au démarrage):

sudo systemctl enable 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 tapant:

journalctl -fn 50 -u homebridge