Ajouter Rm mini 3 de Broadlnk dans homebridge et homekit

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

J’ai découvert récemment le RM Mini 3 de Broadlink 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 :
IMG 1050 169x300 - Comment intégrer le RM Mini 3 de Broadlink dans Homekit IMG 1049 169x300 - Comment intégrer le RM Mini 3 de Broadlink dans 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 :
Broadlink RM Mini 3 Black Bean Instructions manual 1024x656 - Comment intégrer le RM Mini 3 de Broadlink dans Homekit

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 :
app store badge 1 e1493779678120 - Comment intégrer le RM Mini 3 de Broadlink dans Homekit google play badge 128x128 e1493779705319 - Comment intégrer le RM Mini 3 de Broadlink dans Homekit

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.
Capture d’écran 2017 04 30 à 17.28.51 1024x759 - Comment intégrer le RM Mini 3 de Broadlink dans Homekit

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 :
lancer homebridge rm mini 3 1024x532 - Comment intégrer le RM Mini 3 de Broadlink dans Homekit
Maintenant si vous ajoutez votre bridge dans Homekit, vous devriez y voir l’accessoire Learn IR :
Homekit homebridge rm mini 3 accessoire learn - Comment intégrer le RM Mini 3 de Broadlink dans Homekit

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 :
rm mini 3 homebridge lecture signal 1024x187 - Comment intégrer le RM Mini 3 de Broadlink dans Homekit
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 :
rm 3 mini homebridge config 1 1024x335 - Comment intégrer le RM Mini 3 de Broadlink dans Homekit
Relancez Homebridge, et voilà ! Vous contrôlez votre climatiseur depuis Homekit !

Cas particulier d’un climatiseur

IMG 1051 169x300 - Comment intégrer le RM Mini 3 de Broadlink dans HomekitComme 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 !

18 réflexions au sujet de “Comment intégrer le RM Mini 3 de Broadlink dans Homekit”

  1. 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

  2. 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 !

  3. salut,
    Tu as raison. J’ai l’impression de tourner en rond…
    J’ai mise à jour le node avant installation de homebridge
    J’ai installé homebridge sans plugin ==> visible sur iphone.
    J’ai installé le plugin ==> probleme de version. La version a été downgrade…
    tu as la possibilité de nous donner les étapes pour ne pas se faire avoir ?
    PS: je suis novice mais débrouillard en temps normale et j’arrive à m’en sortir mais là il y a quelques choses qui m’échappe.

      1. Bonjour,
        Effectivement, la version du Node était à jour (v8) puis après l’installation, c’est repassé à V6.
        Vu que j’étais bloqué, j’ai reformaté la carte SD, et je recommence de A à Z.
        J’ai commencé l’opération il y a 10 min.
        je pense que c’est le tuto que je suis pour l’installation de homebridge qui me joue des tours…
        Je vais essayer en m’appuyant sur le lien que tu as envoyé à Laurent.

        1. Je crois comprendre ce qu’il se passe.
          Les lignes de commande que j’utilise pour installer Homebridge downgrade systématiquement la version de Node…
          et je me retrouve dans la même situation, c’est a dire incompatible car version du node n’est pas bon…

          1. Bon,
            Je pense avoir avancé.
            le plugin est installé ==> plus d’erreur de version.
            Sur Homekit, le bridge apparaît bien mais rien concerant le learning…
            La prochaine étape est de modifier le ficher config.json afin de créer les actions je suppose.
            C’est bien ca ?
            pour info, il y a déjà des fonctions enregistrées sur mon broadlink rm mini 3. je ne sais pas cela peut poser problème.

    1. Ce qui est déjà installé sur le broadlink n’aura pas de conséquences, homebridge va principalement utiliser l’émetteur mais pas y installer quoi que ce soit.
      Quel est ton problème avec le learning?

      1. Salut,
        le learning n’apparaissait pas.
        mais j’ai bien avancé.
        Je peux contrôler 5 ou 6 équipements pour le moment.
        il me reste des ajustements à faire au niveau du ficher config.json :
        – exécution de la commande deux fois à à la suite pour éteindre un VP
        Les équipements en question sont en infrarouge.
        Donc il suffit qu’une commande ne passe pas, toute les scènes foirent…
        Je pense donc ajouter une tempo entre les actions: ça peut potentiellement aider.
        Et la je viens de me rendre compte que lorsque je ferme ma session SSH (en appuyant croix rouge de putty), Homebridge se coupe également.
        malgré les ajustements, je voulais le laisser tourner pour voir si ca plante. Si oui, faut que je fasse comme toi c’est à dire reboot le système à un moment T où je suis sur certain que tous mes équipements sont éteints sinon au revoir les scènes.
        Si tu as encore plus de conseils à me donner je suis preneur 🙂
        Mes intentions sont de contrôler les équipements de mon salon composé de VP, écran de projection électrique, TV, ampli.
        Le but est d’activer un mode TV ou un mode Cinema ou passer de l’un à l’autre.
        et ca en commande vocale car je le fais déjà avec broadlink sinon.

        1. Par contre le coup du terminal, tu n’es pas obligé de le laisser allumé! Sur la wiki de homebridge tu as toutes les instructions nécessaires pour le démarrer proprement au démarrage : https://github.com/nfarina/homebridge/wiki/Running-Homebridge-on-a-Raspberry-Pi#running-homebridge-on-bootup.
          Mon raspberry est redémarré chaque nuit sans que ça me pose de problème au niveau des équipements. Je ne sais pas comment tu contrôle le reste de ta maison, mais j’ai pour ma part aussi quelques prises et interrupteurs commandés par une télécommande radio 433, j’ai fait un tuto sur le sujet ^^
          Sinon pour le reste, une fois que tes accessoires sont bien paramétrés dans homebridge tu n’as plus qu’à les ajouter dans l’application home. De là, Siri peut les contrôler sans problème !

          1. Cool.
            Pour le moment je suis bloqué pour sur le lancement de homebridge automatiquement…je vais continuer à chercher

          2. salut,
            Je pense être à la fin de l’installation complète.
            J’ai essayé plusieurs méthodes pour l »ajout d’un vidéoprojecteur.
            Seule difference:
            – lorsqu’on veut eteindre le VP, il faut appuyer deux fois.
            Et juste à cause de ca, je suis bloqué.
            Dernier code que j’ai essayé sans succès.
            Une idée?
            Aucune chaîne de caractère est envoyé quand on actionne la commande.
            {
            « name »: « VP NEW »,
            « type »: « switch-multi-repeat »,
            « interval »:0.5,
            « data »: [
            « on »: « 26… »,
            « off »:[
            « 26000… »,
            « 26000… »
            ]
            ]
            }

          3. Hello, et désolé du délai de réponse, j’ai « un peu » déconnecté ^^ Si tu n’as pas déjà trouvé, je te recommande de creuser du côté de l’accessoire switch-repeat

  4. Bonjour, je possède un Rm 3 mini et je souhaiterai commander comme vous des appareils en IR via HomeKit, mais je ne m’y connais pas du tout en programmation et j’avoue qu’apres avoir lu trois fois l’article je suis complètement perdu.
    Pouvez vous me conseiller pour y arriver, existe t’il une vidéo explicative point par point pour s’en sortir.
    Merci d’avance
    Guillaume

    1. Bonjour Balard, il doit sûrement y avoir des vidéos sur youtube qui expliquent cela. j’en ai trouvé quelques unes qui expliquent comment utiliser le RM Mini avec Google Assistant, j’imagine que ça doit être similaire. Je vous encourage à creuser 🙂

Répondre à Anonyme Annuler la réponse

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

Ce site utilise Akismet pour réduire le pourriel. En savoir plus sur comment les données de vos commentaires sont utilisées.