Commander un téléviseur via HomeKit avec un hub Harmony

Avec iOS 12.2, Apple a ajouté le support des téléviseurs dans HomeKit. Et avec HomeBridge et un boîtier Harmony Hub, il devient possible d’utiliser cette nouveauté sans acheter de téléviseurs HomeKit.

Le Harmony Hub est un boîtier qui va servir de relais infrarouge. Il se connecte en Wi-Fi et va envoyer les commandes en infrarouges (ou en Bluetooth dans certains cas) à vos appareils. Dans l’absolu, c’est une télécommande universelle connectée… sans télécommande. Le prix public me semble franchement élevé (130 €) mais on le trouve assez fréquemment à 60 ou 65 € chez Amazon. J’en ai acheté un lors d’une promotion, en attendant justement le support HomeBridge.

Le boîtier

Je commence par deux trucs qui m’ont énervé. D’abord, Logitech montre pleins de photos avec un Harmony Hub qui n’est pas relié au secteur. Mais il ne contient pas de batterie. Le déposer sur une table au milieu du salon est donc globalement inenvisageable : il a besoin d’une prise. Deuxièmement, la configuration de base est un peu compliquée. L’application n’affiche pas correctement les réseaux Wi-Fi (les accents sautent). C’est un problème courant chez moi, mais j’ai la flemme de changer mon SSID sur tous mes appareils. Deuxièmement, je ne sais pas pourquoi, le clavier pour entrer le mot de passe était en QWERTY.

Sur la table de Logitech, pas de câble


L’appli’ passe en QWERTY

En dehors de ça, l’appareil est bien fini, livré avec un chargeur USB et un câble USB, ainsi qu’un câble d’extension pour les meubles TV. Il se branche à l’arrière et permet de rediriger l’émetteur infrarouge vers un endroit inaccessible.

L’extension infrarouge

Pour le reste, la première chose à faire va être de permettre le contrôle local dans le hub de Logitech. Dans l’application, il faut se rendre dans le paramètres et activer le XMPP (Menu -> Configuration Harmony -> Ajouter/Modifier… -> Hub -> Activer XMPP).

Le menu


L’avertissement

En fait, Logitech a supprimé le contrôle local en fin d’année 2018, avant – sous la pression des utilisateurs – de le réactiver mais via une option en début d’année. Nous ne sommes pas à l’abri d’une disparition de la fonction, mais pour le moment ça fonctionne.

Je ne vais pas détailler le fonctionnement de l’application Harmony, vu que c’est plutôt clair dans les menus et que le fonctionnement dépend en partie de votre matériel. En tout cas, j’ai placé le hub à côté du téléviseur et les commandes IR passent sans soucis.

Côté HomeBridge

Je ne vais pas revenir sur HomeBridge. ce programme qui peut tourner sur pas mal de choses (d’un Mac à un Raspberry Pi en passant par un NAS) sert de pont entre vos accessoires et HomeKit. Personnellement, je trouve la mise en place reloue avec les fichiers JSON, mais certains trouvent ça génial et simple. Mais au moins, c’est globalement stable et assez efficace une fois en place.

La première chose à faire, c’est de mettre à jour HomeBridge à jour en version 0.4.46, qui supporte le mode TV d’iOS. Il faut aussi mettre à jour vos appareils iOS vers la version 12.2 (et sûrement 10.14.4 sur le Mac). Pour HomeBridge, normalement la commande sudo npm install -g homebridge suffit pour mettre à jour.

Ensuite, il faut installer le plug-in qui prend en charge le hub Harmony avec le mode TV.

npm install -g homebridge-harmony

Enfin, il faut modifier le fichier JSON pour ajouter le hub. Voici le code nécessaire en mode TV. On peut choisir le nom du hub, une des activités de l’application Harmony (avec son nom exact) et il faut aussi l’adresse IP du hub. Je vous conseille de la fixer. N’oubliez pas le TVPlatformMode à true.

"platforms": [
{
"platform": "HarmonyHubWebSocket",
"name": "Nom du hub",
"hubIP": "IP",
"TVPlatformMode" : true,
"mainActivity" : "Activité"
}
]

C’est la configuration de base, qui va ajouter un switch dans HomeKit qui permet d’allumer et éteindre le téléviseur. Ensuite, on peut aussi utiliser les entrées dans l’interface d’iOS et les relier à des activités Harmony.

Ça donne quoi

Alors, premièrement, c’est assez efficace. Vous obtiendrez un bouton dans HomeKit qui permet d’allumer ou éteindre le téléviseur. Quand vous le pressez, HomeKit envoie la requête au hub, qui envoie le code infrarouge. Ce n’est pas la solution la plus rapide, mais ça fonctionne. Le principal défaut, tout de même, c’est que HomeKit ne peut pas deviner si le téléviseur est allumé. Donc si vous l’éteignez de façon classique avec une télécommande, il va rester allumé dans HomeKit assez logiquement. Même chose si vous l’allumez manuellement. Dans le pire des cas, les commandes de Siri fonctionnent bien.

Dans HomeKit (l’icône TV)

Le second point intéressant vient surtout du widget TV. Vous pouvez l’allumer dans le centre de contrôle et il permet de contrôler littéralement le téléviseur. Vous obtiendrez une interface de contrôle basique pour remplacer (ou presque) la télécommande. Dans mon cas, je ne peux pas changer de chaîne parce qu’iOS affiche une croix directionnelle et que mon téléviseur ne prend pas ça en charge. On peut a priori régler ça avec le plug-in, mais je n’ai pas encore essayé. Petit truc à savoir, le contrôle du volume est relié directement aux boutons de volumes de l’appareil iOS dans ce mode. Techniquement, il doit être possible de modifier les boutons affichés, mais l’interface d’iOS a été pensée pour un téléviseur connecté et donc le bouton renvoie vers le téléviseur… qui n’affiche évidemment rien.

Le centre de contrôle émule la télécommande de mon téléviseur

Je suis assez content du résultat, même si évidemment un vrai téléviseur HomeKit – ça commence à arriver – a plus de fonctions. Le contrôle de l’allumage ou de la source avec HomeKit est assez pratique et en combinant les fonctions d’Harmony avec les réglages d’iOS, on peut obtenir un résultat franchement convaincant.