Comment intégrer le RM Mini 3 de Broadlink dans Homekit

Ajouter Rm mini 3 de Broadlnk dans homebridge et homekit

J’ai découvert récemment ce petit boitier qui permet de recopier un signal infrarouge rapidement et simplement, puis de le renvoyer via une application dédiée de Broadlink. Parfait pour l’air climatisé ! Mais dans un souci de rationalisation, pourquoi s’embêter avec 15 applications différentes alors que Homebridge peut tout nous rassembler dans Homekit? La difficulté était de faire parler les deux…

 

 

Pourquoi ce boitier ?

Dans les étapes de construction d’un boitier de gestion de domotique, j’ai beaucoup eu à me débattre avec la gestion de l’infrarouge… Autant une télécommande de télévision ou de home cinéma est simple à gérer (voir Lire un signal infrarouge), autant comme on en parle à la fin de l’article une télécommande de climatiseur n’est pas une sinécure.

J’ai choisit de gérer l’allumage de ma télévision et du home cinema par Homebridge et Homekit, mais pas son contrôle (volume, entrée hdmi, sélection, etc.). Ceci pour une raison simple : Vous imaginez avoir dans Homekit une icone par bouton de la télécommande ?

Voici ce à quoi ressemble déjà mon Homekit :

 

Nous atteignons là déjà la limite de ce que mon esprit est capable d’assimiler en terme de joyeux chaos ! J’ai donc fait une application web pour gérer les commandes des télécommandes de la télévision et du home cinéma (qui sera détaillée dans un prochain article de la série). Pour l’instant, j’ai trouvé largement suffisant de me contenter d’utiliser le black bean pour contrôler exclusivement la climatisation.

 

Unboxing

La notice quant à elle n’est pas très claire… Il y a des menus de l’application qui sont encore non expliqués, et l’ajout de l’appareil me semblait plus compliqué qu’il ne l’était réellement :

 

Connexion au réseau wifi

Parce qu’il faut faire les choses dans l’ordre, voyons déjà comment faire marcher le black bean de façon standard, sans passer par Homekit. Déjà pour voir comment cela marche, puis aussi pour avoir la satisfaction de pouvoir contrôler la climatisation pourtant ancienne depuis mon smartphone. Et ça, c’est classe !

Pour commencer, branchez l’appareil sur une adaptateur USB, puis nous allons le connecter à notre réseau wifi. Téléchargez l’application e-control de Broadlink :

 

 

Ensuite, appuyez avec une épingle ou un trombone sur le bouton reset à l’arrière de l’appareil, jusqu’à ce que la lumière bleue en façade s’allume et clignote rapidement. Là, ouvrez votre application précédemment téléchargée et allez dans le menu « + » en haut puis « Ajouter un périphérique ».

Vous arriverez sur la page de paramétrage de réseau wifi, rentrez alors vos identifiants et patientez un peu. Normalement, vous devriez obtenir l’information liée à votre appareil connecté au wifi. De la, tapez dessus puis retournez dans le menu « + » mais cette fois, sélectionnez « Ajouter distant ». Vous aurez le choix de l’appareil (climatiseur, télévision, etc).

Prenons la télécommande de la télévision par exemple. Appuyez alors sur une touche, mettons la touche On/Off. Vous aurez un message de type « En attente du bouton d’apprentissage ». Appuyez sur le bouton associé de la télécommande en la dirigeant vers le black bean, et ça y est : toutes les touches sont fonctionnelles… Et il en sera de même pour la climatisation, c’est aussi simple que ça !

 

Attribution d’une adresse IP Fixe

Maintenant que l’appareil est connecté, vous aurez besoin pour la suite de lui attribuer une adresse IP fixe au niveau de votre routeur wifi. C’est très important pour que Homebridge sache exactement à qui parler, et c’est généralement une bonne idée lorsque vous développez une plateforme d’IoT à la maison d’attribuer quelques adresses IP fixes pour pouvoir faire votre plan de communication.

 

Intégration Homekit : homebridge-broadlink-rm

Plus j’avançais dans mes recherches, plus la question s’annonçait problématique… J’ai trouvé plusieurs plugins Homebridge qui proposaient de faire le travail, et je remercie vivement leurs auteurs ! Néanmoins en termes de complexité, la piste la plus fréquente consistait à sniffer avec wireshark les paquets réseaux échangés lors de l’utilisation de l’application e-remote, puis d’aller trouver le « payload » encapsulé dans la requête et la copier-coller dans le fichier de configuration. Oui, voilà voilà…

Puis, j’ai trouvé ce plugin : homebridge-broadlink-rm créé par Luke Rhodes.
Le plugin est également disponible sur npm.

En fait rien de bien différent avec celui-ci dans l’utilisation. Il faut comme les autres aller recopier un code très long dans le fichier de configuration de Homebridge lorsque l’on ajoute l’accessoire : « data« :« 2600500000012…« .

En revanche, ce plugin offre la possibilité de lire un signal directement et d’en retrouver le code dans le terminal. Cela m’a pris 5 minutes de recopier plusieurs températures de mon climatiseur et de les ajouter à Homekit.

 

Installation

L’installation est on ne peut plus classique, mais pas dépourvue d’embûches… Alors oui en théorie il suffit de lancer la commande

sudo npm install -g homebridge-broadlink-rm

Mais vous vous rendrez vite compte qu’il y a probablement un problème de version… Ce plugin nécessite un version 7+ de node, alors vous allez mettre à jour node :

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Puis vous allez avoir un problème de conflit, car Homebridge n’aura pas été installé avec cette version et ses modules par défaut non plus. Il est possible de directement désinstaller Homebridge au complet et de le réinstaller avec la dernière version de node, mais c’est un peu « overkill ». Vous pouvez aussi plus simplement supprimer les modules dans .homebridge/node_modules et relancer l’installation. Ainsi vous n’écraserez pas votre configuration déjà existante.

Quoi qu’il en soit, à ce point le plugin devrait être installé. Si ce n’est pas le cas, parlons-en dans les commentaires !

 

L’accessoire Learn IR

Pour lire le signal, pas grand chose à faire. J’ai choisi pour ne pas polluer mon boitier de domotique de lancer Homebridge depuis mon ordinateur, mais cela ne fait aucune différence. La seule chose à faire est de paramétrer la plateforme Broadlink à votre fichier de configuration config.json et d’y ajouter l’accessoire de type « learn-code » avec son adresse IP fixe (dans mon exemple « host ») :

  "platforms":[
    {
      "platform":"BroadlinkRM",
      "name":"Broadlink RM",
      "accessories":[
         {
            "accessory": "Broadlink RM Learner",
            "type": "learn-code",
            "name": "Learn IR",
            "host": "XXX.XXX.XXX.XXX"
         }
      ]
    }
  ]

Puis lancez Homebridge :

Maintenant si vous ajoutez votre bridge dans Homekit, vous devriez y voir l’accessoire Learn IR :

 

Lecture du signal

Maintenant, si vous actionnez cet accessoire, le Black Bean devrait se mettre en mode « Apprentissage » (led orange en façade). Il vous suffit alors d’appuyer sur la touche de télécommande que vous souhaitez reproduire en dirigeant la télécommande vers le boitier. La console devrait afficher le code correspondant à cette touche :

Maintenant, il vous faudra prendre le « learned hex code », et l’insérer dans le config.json de Homebridge en vous inspirant du fichier de configuration d’exemple fournit par le créateur du plugin : https://github.com/lprhodes/homebridge-broadlink-rm/blob/master/config-sample.json. La page d’accueil du plugin détaille tous les types disponibles : Interrupteur, bouton On/Off de télévision, ventilateur, climatiseur, etc.

 

Config.json de Homebridge

Voici ce à quoi ressemblait mon config.json :

Relancez Homebridge, et voilà ! Vous contrôlez votre climatiseur depuis Homekit !

 

Cas particulier d’un climatiseur

Comme je le disais dans mon précédent article parlant des codes infrarouges, une télécommande de climatiseur n’envoie pas véritablement d’information de type « plus chaud », ou « deux degrés de moins ». Non, à chaque changement d’état la télécommande envoie une impulsion contenant toutes les informations nouvelles : « 22 degrés, souffle force 4, mode balayage ». je monte de 1 degré? La télécommande envoie « 23degrés, souffle force 4, mode balayage », et ainsi de suite.

De fait, à moins d’avoir un bouton dans Homekit par combinaison de température/mode/puissance, et bien nous devons scanner certains états les plus généraux de la télécommande, ceux dont on va réellement se servir.

La domotique consiste à nous faciliter la vie, pas à nous créer d’autres problèmes. Quel était le mien? Je voulais que ma climatisation se déclenche quand ma femme ou moi-même arrivons à moins de 200m de la maison le soir après le travail, pour rafraîchir l’appartement en été. Je voulais aussi qu’elle se coupe la nuit au cas où nous l’oublierions. Pour ces usages, aucunement besoin d’aller me compliquer les choses, je veux juste pouvoir l’éteindre et l’allumer. Gérer plus de températures, c’est juste pour le fun ! Donc j’ai créé deux scénarios, « Clim ON » et « Clim OFF » que je déclenche selon les conditions d’heure ou d’emplacement.

 

 

Si vous avez d’autres idées d’automatisation, parlons-en !

5 commentaires

  1. J’ai essayé de connaitre la version de node installé sur mon Synology en me connectant en ssh sur le syno. hors quand je tape la ligne de commande « node -v » ou « node -version » cela me répond « command not found ». Il n’a pas l’air installé, je vous avoue être un peu perdu. Merci

    1. Pour cela, je te conseillerai de suivre le tutoriel de homebridge pour installer tout ce dont tu as besoin. Pour ton synology, tu peux essayer de suivre les instruction d’installation sur le raspberry pi : https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi#install-node

      Cela dit… Je te déconseille fortement d’utiliser ton NAS pour homebridge, ce n’est pas vraiment fait pour et homebridge risque d’être gourmand pour pas grand chose…

      Pour ma part, j’avais aussi homebridge sur mon synology mais rapidement l’achat d’un raspberry pi m’a paru essentiel. D’autant que j’ai pu ajouter plein de capteur et d’émetteur (infrarouge, radio, etc). La seule contrainte avec le raspberry pi, c’est que homebridge va crasher le pi tous les 2-3j pour une raison que personne dans la communauté n’explique. J’ai contourné avec un reboot quotidien à 4h du matin, cela fait maintenant 4 semaines qu’il tourne sans le moindre accroc !

  2. chapeau pour la mise en place, j’espère pouvoir le faire et pourquoi pas avoir ton aide. Je compte allumer éteindre ma barre de son Bose quand j’allume ma télévision. Merci encore pour ton TUTO. Ce que je trouve compliqué c’est avec Node, car moi j’utilise homebridge avec Synology et Docker. Alors sa complique un peu les choses. Merci.

    1. Salut,
      Merci pour ton message. Pourquoi penses-tu que ça puisse compliquer les choses? Homebridge est développé en node, si tu utilises homebridge alors de toutes façon il faudra t’y confronter 🙂 Docker est juste un conteneur, il déploie ton environnement Node.

      1. Merci de ta réponse. Je n’ai malheureusement pas beaucoup de compétence j’ai réussi a faire fonctionné mon thermostat Nest et ma télévision avec HomeBridge. Mais je débute, par exemple je ne sais pas comment mettre a jour Node en version 7+ avec Docker. En rentrant les lignes de commande dans le fichier install.sh? J’ai réussi en suivant des tutos comme j’ai pu. D’ailleurs comment puis je savoir sur quel version est Docker? Merci d’avance de tes précisions. Je reçois le broadlink mini mercredi, je pourrais tester tous sa. Merci

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *