Installer HomeBridge pour une caméra HomeKit qui voit l’infrarouge

J’utilise HomeBridge depuis un moment, mais je trouve cet outil trop geek, trop compliqué à installer, à maintenir. Donc quand j’ai vu qu’il existait une version simplifiée, j’ai tenté un petit projet, juste pour voir.

Pour bien me faire comprendre : HomeBridge est un bon projet, mais la mise en place est souvent assez aléatoire. Entre les mises à jour de HomeBridge, des plug-ins et des outils nécessaires (NodeJS), plus l’utilisation du JSON, ça reste loin d’être grand public. Mon principal souci, c’est que chaque mise à jour, chaque ajout, cassait un peu tout. Telle version voulait une MAJ, qui était impossible parce que NodeJS n’était pas à jour, il fallait passer par des dépôts différents de ceux de base, etc. Et donc cette image de Raspbian avec HomeBridge intégré est une bénédiction. Il suffit de mettre l’image sur une carte SD, attendre un peu et ça doit fonctionner. Bon, en réalité, j’ai quand même eu un petit souci : avec mon Raspberry Pi Zero et son adaptateur Ethernet, je me retrouvais régulièrement sans réseau. Mais une fois connecté en Wi-Fi, c’est bon.

Un petit projet

Je suis parti sur un truc basique qui pourrait me servir : intégrer une caméra NoIR dans un boîtier de Raspberry Pi Zero, pour filmer les trucs qui émettent de l’infrarouge. Les capteurs standards voient l’infrarouge, et dans la majorité des appareils, on met un filtre – plus ou moins efficace – pour limiter ça. C’est pour ça que les anciens iPhone peuvent servir à vérifier si une télécommande fonctionne, mais pas les modèles récents : les filtres sont plus efficaces.

La webcam d’un vieil écran Apple filtre mais on voit encore le violet de l’infrarouge


Celle du Mac ne voit rien

Et donc il existe des caméras NoIR pour les Raspberry Pi, qui ne possèdent pas de filtres. Elles peuvent donc voir l’infrarouge facilement. J’avais un modèle v1 depuis un moment, et je l’ai installé sur un Zero W. Petit aparté là aussi, parce que j’ai un problème idiot. Le boîtier officiel pour le Pi Zero (qui vaut ~5 €) arrive avec trois capot : un standard, fermé, un avec un trou pour les GPIO et un avec un trou pour une caméra et un petit câble CSI. Mais ça ne rentrait pas avec mon module, et j’ai dû limer l’intérieur. La raison ? Le module v1 est plus épais que le v2 et le trou du boîtier est adapté au v2. Ce n’est pas vraiment indiqué, et c’est un peu énervant.

Le boîtier


On voit bien les ajustements nécessaires


La partie carrée des modules v1 (à droite) est plus épaisse

Pour la partie logicielle, j’espérais utiliser le plug-in Homebridge Camera FFmpeg. Mais avec la caméra du Raspberry Pi, ça nécessite des réglages manuels et – surtout – il y a une latence élevée (plusieurs secondes). Je suis donc passé sur homebridge-camera-rpi, qui a reconnu la caméra directement, avec un flux en temps réel… mais une image affreuse. La solution ? Augmenter le bitrate par défaut, qui est à 300 kb/s (c’est bien trop faible) en modifiant des fichiers de configuration. Et en cherchant évidemment ou ils sont, vu que ça dépend de l’installation. Vous comprenez pourquoi je n’aime pas HomeBridge ?

Le résultat

J’ai testé avec quelques trucs présents chez moi. Je n’ai pas d’iPhone ou d’iPad avec FaceID (dommage) et mon Kinect ne semble pas émettre sans un logiciel (ou une Xbox), donc j’essayerais peut-être un jour ou j’ai du temps. La qualité n’est pas extraordinaire : je filmais l’écran, et le module v1 est en 5 mégapixels sans autofocus.

Le projecteur de ma caméra IP (dans le noir).

Une souris infrarouge.


Une télécommande infrarouge (celle utilisée juste avant avec les webcams).


Un AirPod. Les écouteurs d’Apple ont des émetteurs sur les côtés qui servent à détecter s’ils sont dans les oreilles.


Les barrières virtuelles d’un Roomba.


Une manette sans fil de Pippin, qui illumine littéralement la pièce.


Bon, vous avez compris, l’infrarouge est très visible avec ce genre de caméras. Dans les autres appareils qui émettent pas mal, il y a aussi les casques VR, qui utilisent parfois l’infrarouge pour le positionnement, et les appareils qui transmettent en IrDA. Du coup, mon petit projet fonctionne, l’ensemble peut fonctionner sur batterie, et c’est efficace pour vérifier rapidement si un appareil émet de l’infrarouge. Mais je reste sur mon souci de départ : HomeBridge, c’est bien mais c’est quand même encore très brut de fonderie.