Gérer une vieille lampe Hue avec HomeBridge

Il y a quelques semaines, je parlais d’une vieille lampe Living Colors que j’avais connecté en HomeKit avec quelques astuces. J’avais bien noté un problème, l’absence de contrôle de la couleur via HomeKit, mais un autre : après quelques heures, la lampe devient inaccessible.

Pour la couleur, c’est un problème assez classique, réglé dans certaines applications d’ailleurs (au hasard l’excellent iConnect Hue) : les anciennes lampes utilisent deux paramètres pour les couleurs (hue et saturate) et les lampes récentes (en gros, l’énorme majorité des trucs compatibles Hue explicitement) passent par une valeur qui se nomme xy. Tout l’écosystème Hue (applications comprises) envoie donc la valeur xy, que la Living Colors ne comprend pas. La solution, je vais en parler, c’est juste d’utiliser la seconde méthode.

Pour la lampe qui devient inaccessible, je ne suis pas spécialiste en ZigBee, mais en gros les applications Hue (et plus spécifiquement le pont v2, carré) posent un problème avec les vieilles lampes. Typiquement, elles interrogent les périphériques régulièrement pour vérifier qu’ils sont accessibles, et si un périphérique est noté comme inaccessible (unreachable), le pont considère qu’il est éteint. Le problème, c’est que les vieilles Living Colors ne renvoient pas correctement les valeurs. Le résultat en pratique, c’est que la lampe fonctionne (par exemple avec la télécommande) mais que les applications (et HomeKit) considèrent qu’elle est éteinte. La seule solution (reloue) consiste à éteindre manuellement la lampe (par exemple avec une prise connectée HomeKit) et la rallumer.

La solution HomeBridge

La solution que j’ai utilisé n’est pas la plus simple : elle passe par HomeBridge. HomeBridge est un programme qui va simuler compatibilité HomeKit, dans mon cas via un Raspberry Pi. J’ai installé HomeBridge Hue, un plug-in qui permet de connecter des périphériques Hue à HomeKit. Ça parait idiot au premier abord, mais il fonctionne avec l’ancien pont (le rond) et les accessoires qu’on peut connecter à un pont Hue mais qui ne fonctionnent pas avec HomeKit. Et il a l’avantage de prendre en charge explicitement (avec un petit problème tout de même) les vieilles Living Colors.

Pour l’installation, je suppose que vous avez déjà installé HomeBridge (je vous épargne cette étape horrible).

Première chose, installer HomeBridge Hue.

sudo npm -g install homebridge-hue

Ensuite, il faut lier le pont. Vous lancer HomeBridge avec un retour, vous attendez que le plug-in vous demande de presser le bouton du pont, vous notez les résultats (user et clé). Au départ, j’avais utilisé mon second pont v2, mais il pose un souci : il gère visiblement le lien matériellement et même avec HomeBridge Hue, la lampe devient inaccessible régulièrement. Avec un vieux pont rond, le problème ne se pose pas. Dans mon fichier de config, j’ai donc quelques options spécifiques pour être certains que ça fonctionne.

{
"platform": "Hue",
"users":
{
"001788FFFE14646E": "5peMHhsNnodATMJ9Pzk89ggcVS$
},
"sensors": false,
"host": "192.168.1.51",
"lights": true,
"nativeHomeKitSensors": false,
"excludeSensorTypes": ["CLIPPresence", "Geofence"],
"nativeHomeKitLights": false,
"wallSwitch":false
}

La plateforme et les codes pour se connecter au pont, le host qui donne l’adresse IP du pont si vous en avez plusieurs, quelques options pour bien indiquer qu’HomeBridge Hue doit utiliser ses propres fonctions HomeKit et pas celles du pont (par défaut, les lampes Philips restent gérées par le pont) et – surtout – le wallSwitch. Il doit être positionné sur false pour qu’HomeBridge puisse gérer la lampe même si le pont Hue considère qu’elle est éteinte (à tort). Ça ne fonctionne qu’avec le pont v1 de ce que j’ai pu tester : le v2 effectue ça matériellement.

Avec cette configuration, la lampe Living Colors apparaît dans HomeKit et reste accessible en permanence : je peux l’éteindre et l’allumer quand je veux. De plus, HomeBridge Hue gère correctement la couleurs : je peux donc modifier les réglages depuis HomeKit (Maison) directement, sans passer par iConnect Hue HD. Le seul problème (mineur) c’est que la gestion de la couleur ne fonctionne plus quand le pont décide que la lampe est inaccessible (sans l’être).

Les couleurs dans HomeKit

Attention, dans l’application Hue, la lampe est indiquée comme inaccessible après un certain temps (~12 heures a priori) mais elle fonctionne tout de même. Merci Philips. Et dans le pire des cas, une automatisation avec une prise connectée permet de régler le problème même si c’est sale comme méthode.

La lampe inaccessible

Après quelques essais, ma vieille lampe fonctionne donc (presque) totalement proprement dans HomeKit. Bon, j’ai passé beaucoup trop de temps pour une seule lampe, mais je suppose que les personnes qui en ont plusieurs pourront trouver ça intéressant.