Accueil | Domotique | Jeedom + Homebridge : piloter vos équipements avec un iPhone et Siri

Jeedom + Homebridge : piloter vos équipements avec un iPhone et Siri

Dans ce tutoriel, nous allons voir comment installer et configurer la passerelle Homebridge vers Homekit (le framework domotique d’Apple) avec Jeedom. L’installation et la configuration de l’application iOS (iPhone ou iPad) est identique ce que nous avons déjà pour Domoticz. J’ai un peu moins détaillé cette partie que dans le précédent tutoriel car c’est identique, pour plus de détail lisez l’article précédent.

Configuration utilisée

Pour ce tutoriel, j’ai utilisé une box domotique Jeedom basée sur un Raspberry Pi 3. Dans ce tutoriel, nous allons simplement utiliser une sonde de température développée en quelques clics à l’aide du framework ESP Easy et un ESP8266 (pour rester dans l’esprit DIY). La méthode restera la même quelque soit votre installation et vos accessoires domotiques.

raspberry-pi3Raspberry Pi 3

Environ 40€

convertisseur hdmi vgaAdaptateur vidéo (optionnel, pour l’installation)

case raspberry pi 3Boitier pour Raspberry Pi 3

A partir de 6,99€

carte sdCarte SD 8 Go SDHC Classe 10

A partir de 6,90€

chargeur raspbery pi 3 5v 3000maAlimentation 5V – 3000mA

Environ 11€

Soit un budget d’environ 65€.

Est-il possible d’installer Homebridge sur un autre poste ?

Oui, il est tout à fait possible d’installer Homebridge sur un NAS par exemple. Vous pouvez suivre ce tutoriel de Maison et Domotique. En gait vous pouvez installer la passerelle sur n’importe quelle système pouvant faire fonctionner Nodejs (c’est à dire presque tous !). La communication avec la box domotique se faisant via des requêtes HTTP il suffira de pointer sur l’adresse IP de la box Jeedom. Ce n’est pas forcément la meilleure solution toutefois car vous aller multiplier les machines, la maintenance et les risques de coupure de service. En installant Homebridge sur le Raspberry Pi de Jeedom et en clonant régulièrement la carte SD, vous aurez un système plus robuste.

Versions des logiciels installés

Raspbian Jessie Lite

Jeedom version 2.4.6 installée à partir de l’image Netinstall (guide d’installation sur Raspberry Pi 3).

iPhone 6S sous iOS 10.2

Plugin Homebridge pour Jeedom

Il existe un plugin payant pour Jeedom qui permet d’installer la passerelle. Ce dernier est payant (4€). Il est nécessaire pour faire fonctionner l’application Jeedom mobile pour iOS (qui elle est gratuite). Contrairement au plugin eDomoticz qui s’occupe de découvrir et publier tous les appareils domotiques, c’est à l’utilisateur de choisir ce qu’il veut partager avec son iPhone ou son iPad. C’est à la fois un avantage, on ne pollue pas sa Maison avec des appareils inutiles, et un inconvénient, il faut tout configurer à la main. La configuration peut s’avérer fastidieuse et il faudra penser à ajouter chaque nouveau dispositif pour le rendre visible depuis Maison.

Pour ce tutoriel, j’ai préféré opter pour l’installation du plugin manuellement pour rester dans l’esprit d’une box domotique 100% DIY (et à budget maitrisé).

jeedom homebridge plugin officiel app mobile

Installer Homebridge sur Raspbian

Homebridge est un projet Nodejs (écrit en javascript). Si vous avez installé Jeedom depuis l’image Netinstall, vous n’avez pas besoin d’installer Nodesjs et npm (le gestionnaire de paquets de Nodejs). Pour le vérifier, exécutez la commande suivante qui vous donnera en retour la version installée.

Si Nodejs n’est pas présent, ne l’installez pas manuellement. En effet, Nodejs est utilisé par de nombreux plugins Jeedom. Installez le plugin ESP Easy ou Mysensors (par exemple) ainsi que leurs dépendances. La version correcte sera ainsi installée automatiquement.

Nous allons donc pouvoir directement passer à l’installation des paquets nécessaires. L’option --unsafe-perm  permet de passer outre les éventuelles erreurs et avertissements de compilation. La page du plugin se trouve ici.

C’est la configuration minimale pour faire créer un pont Homebridge avec Jeedom. On peut ajouter d’autres plugins mais on sort de l’objectif de l’article.

Créons maintenant un répertoire dédié à Homebridge

Puis ouvrez le fichier de configuration dans un éditeur de texte (pico ou nano).

Dans un premier temps nous allons configurer le pont pour la rendre détectable par iOS. Même si cela ne semble pas obligatoire, je préfère renseigné l’adresse MAC du Raspberry Pi. En procédant ainsi, iOS découvre immédiatement le pont Homebridge. Exécutez ifconfig  et notez l’adresse MAC qui correspondant au mode de connexion (eth0 en Ethernet, et wlan0 en Wi-Fi).

hombridge domoticz adresse mac rpi hwaddr

Collez cette configuration type et l’adaptant à votre cas.

Quelques explications :

  • name : C’est le nom qui sera affiché sur iOS
  • username : l’adresse Mac du Raspberry Pi. Attention, bien mettre en majuscule sinon Homebridge plante !
  • port : ne changez rien
  • pin : vous pouvez mettre ce que vous voulez à condition de respecter le format XXX-XX-XXX

La configuration du pont est terminée.

Ajouter un accessoire (accessory) à la configuration

Pour Jeedom, on va donc devoir ajouter un accessoire dans le tableau accessories pour chaque commandes des équipements avec lesquels on souhait interagir ou visualiser la valeur sur iPhone ou iPad. C’est assez fastidieux à faire pour un grand nombre de commande, mais au moins on peut vraiment choisir ce qui est important. Maison n’a pas pour vocation de remplacer la box domotique Jeedom (enfin espérons le…).

Récupérer la clé API

Avant toute chose allez dans la configuration

Notez la clé API de votre box Jeedom.

jeeedom homebridge cle api.
Récupérer l’identifiant d’un objet Jeedom

Ouvrez l’équipement désiré et allez sur l’onglet commandes. Sur la ligne de la commande que l’on souhaite intégrer à Maison, appuyez sur l’engrenage (mode expert requis).

jeedom homebridge commandes

Repérez l’identifiant interne (ID).

jeedom homebridge homekit id command

Ainsi que le Logical ID

jeedom homebridge homekit logical id

Pour chaque accessoire, nous allons ajouter un bloc de paramètres (au format JSON) constitué ainsi :

Explications :

  • accessory : laisser HttpJeedom. C’est la référence au plugin
  • jeedom_url : si le pont est installé sur le même Raspberry que Jeedom, vous pouvez saisir http://127.0.0.1, sinon indiquez le nom de domaine ou l’adresse IP de la box Jeedom
  • jeedom_api : la clé API récupérée précédemment
  • service : il n’y a pas de spécification particulière. Le mieux est de donner le nom de la commande suivi de Service
  • name : donnez un nom explicite, assez court. Les caractères accentués sont supportés et affichés correctement sur l’écran de l’iPhone. Localisez pas la commande (salon, cuisine) pour vous y retrouver plus facilement sur iOS. Une fois ajouté, le mieux est de renommer la commande et attribuer une pièce dans Maison. La reconnaissance vocale depuis Siri sera plus efficace.
  • xxxCommandID : attention c’est important pour que la commande soit publiée. Elle doit être obligatoirement de la forme logicalIDjeedomCommandID  (c’est le logical ID)
  • ID : l’identifiant de la commande récupéré précédemment

Ce qui donne par exemple pour la température et l’humidité renvoyée par la sonde DHT22

Comme vous pouvez le remarquer, chaque bloc d’accessoire {} doit être séparé par une virgule, sauf le dernier bloc.

Si vous avez des doutes sur votre fichier de configuration (ce qui risque d’arriver avec un grand nombre d’accessoires), vous pouvez le tester en ligne ici.

Attention : N’utilisez pas de tabulations (uniquement des espaces) pour créer une arborescence à votre configuration. Une erreur dans le fichier de configuration fera planter Homebridge (ce qui est normal finalement).

jeedom homebridge verification configuration json jsonlint

Ce qui donne le fichier de configuration assemblé suivant

La clé service permet de définir le type de service HomeKit que l’on appel. Par exemple TemperatureSensor pour la publication de la température, HumiditySensor pour l’humidité. Tous les types de services supportés par HomeKit sont définis dans le projet HAP-Node ici. Voici une liste non exhaustive des services gérés par HomeKit. En attribuant le service adéquat, Maison sera en mesure d’afficher le pictogramme et l’unité correspondante :

  • AirPurifier
  • AirQualitySensor
  • BatteryService
  • CameraControl
  • CameraRTPStreamManagement
  • CarbonDioxideSensor
  • CarbonMonoxideSensor
  • ContactSensor
  • Door
  • Doorbell
  • Fan
  • FanV2
  • GarageDoorOpener
  • HeaterCooler
  • HumidifierDehumidifier
  • HumiditySensor
  • LeakSensor
  • LightSensor
  • Lightbulb
  • LockManagement
  • Microphone
  • MotionSensor
  • OccupancySensor
  • SecuritySystem
  • Slat
  • SmokeSensor
  • StatefulProgrammableSwitch
  • StatelessProgrammableSwitch
  • TemperatureSensor
  • Thermostat
  • Window
  • WindowCovering

Il ne reste plus qu’à l’enregistrer CTRL+X puis Y et enfin démarrer le pont avec la commande

Les 2 accessoires ont correctement été trouvés. Le code PIN d’identification dans Maison est affiché à l’écran. On verra également défiler dans le Terminal tous les appels entre iOS et Jeedom, pratique pour tester si tout fonctionne.

jeedom homebridge demarre code pin

Configuration de Homekit, application Maison sur iOS

C’est le moment de voir ce que ça donne sur iPhone ou iPad. Lancez l’application Maison

icone application maison ios10

Votre iPhone (ou iPad) doit être connecté au réseau local en Wi-Fi pour pouvoir ajouter un pont et des accessoires. Cliquez sur Ajouter un accessoire.

homekit home domicile ios10 ajout accessoire homebridge

Si tout est bien configuré, vous devez avoir un accessoire nommé Jeedom Bridge qui apparaît. Sélectionnez le.

jeedom homebridge pont jeedom bridge cree ios
Le pont a été trouvé !

Saisissez manuellement (ou tentez votre chance avec la reconnaissance optique) le code Pin affiché sur le Terminal.

home kit home domicile ios10 saisie code pin

Le pont a correctement été ajouté.

ios jeedom bridge ajoute

On va maintenant procédé à l’ajout des accessoires (commandes des équipements Jeedom). Les accessoires apparaissent les uns après les autres, ça risque d’être long la première fois. Profitez en pour le renommer (supprimer la localisation dans l’intitulé) et attribuer un lieu. De cette façon, la commande vocale avec Siri sera plus efficace.

ios jeedom homekit homebridge ajout accessoire humidite esp easy dht22

Idem pour la température

ios jeedom homekit homebridge ajout accessoire temperature esp easy dht22

Voilà, c’est terminé, vous pouvez profitez des vos équipements Jeedom depuis votre iPhone. Si vous possédez un iPad ou une Apple TV (assez récente), vous pouvez même continuer à communiquer avec Jeedom hors de chez vous (si vous avez une connexion 3G ou 4G évidemment). Pour démarrer Homebridge automatiquement au démarrage du système, suivez ce tutoriel.

ios 10 jeedom homekit maison homebridge mon domicile
Les équipements Jeedom dans l’appli Maison (Homekit) sur iOS10

 

 

  • medapayne

    super tuto… si j’ai bien compris il faut 2 PI ,un pour Jeedom et un pour Homebridge.
    C’est bien cela?

    • Merci beaucoup. On peut installer homebridge directement sur Jeedom. Ca fonctionne très bien. Le seul point auquel il faut faire attention (à mon avis) c’est nodejs. Il faut laisser Jeedom l’installer (en installant un plugin qui en a besoin) pour éviter tout problème avec les plugins Jeedom.

      • Schatz Matth

        Merci pour le tuto!
        Perso je rencontre un problème lors du lancement de la commande “homebrdge”.
        Impossible d’aller plus loin….

        • Faudrait m’en dire un peu plus.

          • Schatz Matth

            Merci pour votre réponse.
            Je peux vous joindre en message privé? Je voudrais vous donner des print screen.

          • Oui pas de problème. Envoyez moi un email via le formulaire de contact

  • Eric

    Bonjour,
    Merci pour le tuto qui marche parfaitement! (Installation homebridge directement sur Jeedom)
    Par contre, lorsque j’arrête la connexion avec Putty, homebridge s’arrête également… Et donc plus de réponse avec Siri!
    Comment lancer automatiquement Homebridge?
    Merci pour les réponses…

    • Bonjour Eric. Merci beaucoup. C’est normal. Lorsqu’on ferme Putty, on ferme par la même occasion le script Homebridge qui s’exécutait dans le Terminal que Putty avait démarré. Il faut donc créer un script qui doit être lancé au démarrage du système. Tout est expliqué dans ce tutoriel https://www.projetsdiy.fr/homebridge-installation-configuration-piloter-objets-domotique-ios-homekit/. A très bientôt.

      • Eric

        Bonjour,
        Après avoir travailler sur des questions de droits et de transfert de fichier etc… ça fonctionne très bien! Merci, c’est super! Ceci dit, pour ouvrir ou fermer le volet roulant de la cuisine, je suis obligé d’énoncer “Allume le volet roulant de la cuisine” ou “Eteint le volet…” Pas très commode j’avoue… Est-il possible pour les volets roulant au niveau du fichier config.json de mettre un autre service plus approprié que le service: “SwitchService”?
        Merci encore pour vos lumières…

        • Bonjour Eric. C’est super si tout fonctionne. Concernant les commandes vocales de Siri, elles sont encore assez limitées. J’ai listé les commandes actuelles dans cet article (https://www.projetsdiy.fr/piloter-objets-connectes-mysensors-siri-homebridge-domoticz-ios10/). Espérons que les ingés de chez Apple vont découvrir rapidement la domotique et ajouter des commandes vocales un peu plus naturelles 😉 pour le moment faut faire avec 🙁 Concernant le fichier de configuration, même remarque, faut rester dans les clous sinon ça ne marchera pas. A très bientôt.