# Intégration HomeKit et Siri

**URL:** <https://community.gladysassistant.com/t/integration-homekit-et-siri/7493>\
**Category:** Développement\
**Created:** [Août 23, 2022, 9:46 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493 "2022-08-23T21:46:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Août 23, 2022, 9:46 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/1 "2022-08-23T21:46:48Z")

</div>

Salut tout le monde, sur le trajet retour des vacances, j’ai travaillé sur la compatibilité de Gladys avec HomeKit (et donc avec Siri) pour les aficionados d’Apple (imaginez votre Gladys contrôlable avec votre montre). Je suis peut être naïf mais ces dernières années j’ai plus confiance en Apple, qu’en Amazon/Google pour la confidentialité des données (en particulier quand il s’agit de la reconnaissance vocale).

 ![Capture d’écran 2022-08-23 à 23.44.54](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/5/57892404b4a10ebbd4cceb34760da110d8509a1a.jpeg)

Pour l’instant 3 types de périphériques sont supportés :

- les ampoules avec marche/arrêt, luminosité, couleurs et température de blanc
- les commutateurs avec marche/arrêt
- les capteurs de température  
Pour une première version ça devrait être suffisant, j’en ajouterai au fur et à mesure des demandes.  
Je n’ai testé que sur des périphériques virtuels j’aurai besoin d’aide pour tester sur de vrai périphériques une fois l’image docker disponible.

Techniquement parlant, l’intégration transforme Gladys en un pont de connexion compatible HomeKit (un peu comme des bridges Philips Hue, Xiaomi…), donc il suffit d’associer Gladys avec votre application Maison pour y voir tous les appareils connectés à Gladys (ceux pour l’instant compatible) dans votre réseau HomeKit. J’utilise [Hap-Nodejs](https://github.com/homebridge/HAP-NodeJS) pour reproduire le protocole HomeKit en Nodejs (pour ceux qui connaissent le logiciel Homebridge, c’est leur librairie).

Côté code, je dois encore améliorer la structure, ajouter la partie front et vérifier que ça fonctionne bien lorsque on utilise une image docker. J’espère pouvoir vous proposer une PR rapidement mais ça s’annonce bien !

J’ai une petite question organisation pour ceux qui testent déjà des développements avec des appareils zigbee. Vous utilisez une clé zigbee à part ou vous utilisez celle de votre prod sur votre PC de test ? Et pareil pour les appareils, vous avez quelques appareils de dev en plus ou vous arrivez à utiliser vos appareils en dev et en prod en même temps ?

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Août 25, 2022, 7:01 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/2 "2022-08-25T19:01:33Z")

</div>

Une première version du code

> <https://github.com/GladysAssistant/Gladys/pull/1591>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fa…st as possible, make sure to review and check all of these items:
> 
> \- \[\] If your changes affects code, did your write the tests?
> \- \[\] Are tests passing? (\`npm test\` on both front/server)
> \- \[\] Is the linter passing? (\`npm run eslint\` on both front/server)
> \- \[\] Did you run prettier? (\`npm run prettier\` on both front/server)
> \- \[\] If you are adding a new features/services, did you run integration comparator? (\`npm run compare-translations\` on front)
> \- \[\] Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to \[the community\](https://community.gladysassistant.com/) for testing before merging.
> \- \[\] If your changes modify the API (REST or Node.js), did you modify the API documentation? (Documentation is based on comments in code)
> \- \[\] If you are adding a new features/services which needs explanation, did you modify the user documentation? See \[the GitHub repo\](https://github.com/GladysAssistant/v4-website) and the \[website\](https://gladysassistant.com).
> \- \[\] Did you add fake requests data for the demo mode (\`front/src/config/demo.js\`) so that the demo website is working without a backend? (if needed) See \[https://demo.gladysassistant.com\](https://demo.gladysassistant.com).
> 
> NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
> 
> \### Description of change
> 
> I added service to integrate HomKit protocol to Gladys.
> Gladys instance become a bridge HomeKit compatible and allow access devices through Apple Home app & Siri.
> 
> \<img width="1440" alt="image" src="https://user-images.githubusercontent.com/18148265/186746298-0987b478-fb62-459c-881a-a8af0092a7ff.png"\>

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Août 26, 2022, 7:20 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/3 "2022-08-26T07:20:35Z")

</div>

Bonjour @bertrandda ,  
Petite question pour tester car je n’y connais rien en Apple. Ça a toujours été un mystère pour moi et une source de frustration car je n’arrive pas à faire ce que je veux avec ‹&nbsp;ça&nbsp;›. 😃  
J’ai un iPad qui traîne dans un tiroir, cela suffit-il pour tester ou ais-je besoin de quelque chose d’autre?  
Belle journée !

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Août 26, 2022, 12:01 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/4 "2022-08-26T12:01:38Z")

</div>

Salut, il faut un appareil compatible iPhone, iPad ou iPod touch, dans ton cas avec l’iPad regarde si ta version de iPadOS contient l’application Maison

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/2/2dcc55c79b5f7dc6bda1df678254e71c1b39cf3f.png) si c’est le cas alors tu peux tester.

Une fois dessus, je te conseil de créer un nouveau domicile virtuel, si les tests amènent à changer des trucs dans l’intégration, tu pourras supprimer complètement ce domicile virtuel en une fois et pas appareil par appareil. Regarde ici pour ajouter un domicile [Ajouter d’autres domiciles avec l’iPad - Assistance Apple (FR)](https://support.apple.com/fr-fr/guide/ipad/ipad1cb6664b/ipados)

Il y a une petite description dans la page intégration, mais faut encore que j’écrive une doc complète. Si tu as besoin de plus d’aide n’hésite pas.

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Août 26, 2022, 4:30 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/5 "2022-08-26T16:30:04Z")

</div>

Mon iPad est compatible.  
Par contre, est-ce possible/compliqué pour toi de me builder une image Docker de test?  
Je n’ai pas la moindre idée de comment on teste une PR.  
Si pas possible, j’y regarderai un plus tard, mais j’y regarderai 😉

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Août 27, 2022, 9:20 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/6 "2022-08-27T09:20:29Z")

</div>

> [@GBoulvin](#):
>
> Mon iPad est compatible.

Super nouvelle

Pour l’instant seul le code en mode dev fonctionne, j’ai créé une image docker il y a quelques jours mais elle **n’est pas** fonctionnelle. Faut que je debug tout ça, les appareils ne s’ajoutent pas sur l’application maison.

Je te préviendrai quand tout sera bon pour tester

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Septembre 3, 2022, 9:56 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/7 "2022-09-03T09:56:24Z")

</div>

Salut @GBoulvin, sur quel OS veux tu tester l’image docker ? Actuellement je test depuis docker sur macos et il y a une erreur de connexion à l’ajout de Gladys dans HomeKit. Après pas mal de lecture côté homebridge et hap-nodejs il semblerai que ce soit dû au paramètre `--network=host` qui ne fonctionne pas sur mac/windows.  
Si tu es sur un système linux, peux tu tester l’image et tenter d’associer Gladys à ton application Maison et me confirmer que ça fonctionne bien s’il te plait ? L’image est dispo sur Docker `bertrandda/gladys:homekit`.

Je continue d’investiguer pour faire fonctionner ça sur mac/windows via docker, d’après ce que j’ai compris ce doit être un problème de mDNS. Lorsque le protocole HomeKit rend disponible un accessoire (ici le Bridge Gladys) il est sensé envoyer une requête mDNS pour signaler aux apps HomeKit qu’il est sur le réseau. Je vois bien la requête mDNS passer sur Wireshark quand je suis en dev, mais dès que j’utilise docker, la requête mDNS ne semble pas être perçu sur le réseau local, comme si elle était bloqué dans le container. Si quelqu’un a des connaissances sur le sujet (docker ou mDNS) est il possible d’avoir un peu d’aide s’il vous plait ?

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Septembre 3, 2022, 6:46 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/8 "2022-09-03T18:46:09Z")

</div>

Salut!  
Mets ton cœur à l’aise, ça fonctionne!  
Matériel:  
RPi 2 avec son OS Bullseye 32bit de base.  
Installation de l’image Docker proposée ci-avant avec succès, aucune remarque.  
Testé : seulement Tasmota, prises et lampes.  
Comment?

- Ajout de deux périphériques Tasmota
- Activation de l’intégration Apple
- Démarrage de l’application ‹&nbsp;Maison&nbsp;› sur l’iPad
- Scan du QRcode généré par l’intégration de Gladys
- Validation  
C’est tout et c’est fonctionnel immédiatement!  
 ![16622306928095219562469281884306](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/2/2b7e79ea4cf91c6ac37360a144a299f0556c59f9.jpeg)  
 ![1662230730911557255263255555977](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/4/404847c90d195dc02666bbbfd25a3cc77972e7a9.jpeg)

Bravo!

Edit :  
Par contre, après verrouillage/déverrouillage de l’iPad, il faut une vingtaine de secondes pour que les périphériques soient reconnectés…

 ![16622310060997620824951896971210](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/3/385bd5aa62afb9a22fecb1f2a5de9c03a3d42d2d.jpeg)

Edit 2 : cette latence de reconnexion n’arrive pas systématiquement. Parfois, tout est connecté directement… Bizarre…

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Septembre 4, 2022, 7:14 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/9 "2022-09-04T19:14:55Z")

</div>

Super nouvelle, merci pour tes retours @GBoulvin. Il y a donc bien un soucis dû au `network=host` sur mac/windows. Je vais ajouter la démarche de connexion dans la documentation.

Pour l’erreur qui apparait `Sans réponse`, ça semble être parce que l’iPad/iPhone (quand il est en veille) ne reste pas connecté en permanence au réseau HomeKit donc il a besoin de quelques secondes pour se reconnecter. Par contre si tu a un HomePod ou une Apple TV, ils peuvent servir de concentrateur HomeKit, vu que ce sont des appareils qui restent toujours connecté à la maison, le réseau HomeKit n’est jamais interrompu ([https://www.reddit.com/r/HomeKit/comments/t55bw4/comment/hz3zf9a/?utm\_source=share&utm\_medium=web2x&context=3](https://www.reddit.com/r/HomeKit/comments/t55bw4/comment/hz3zf9a/?utm_source=share&utm_medium=web2x&context=3)).

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Septembre 4, 2022, 7:26 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/10 "2022-09-04T19:26:34Z")

</div>

> [@bertrandda](#):
>
> Pour l’erreur qui apparait `Sans réponse`, ça semble être parce que l’iPad/iPhone (quand il est en veille) ne reste pas connecté en permanence au réseau HomeKit donc il a besoin de quelques secondes pour se reconnecter.

Tant mieux si c’est normal !  
Comme je te disais, Apple a toujours été un grand mystère pour moi 😉  
Super boulot en tout cas. !

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Septembre 5, 2022, 6:03 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/11 "2022-09-05T06:03:41Z")

</div>

> [@bertrandda](#):
>
> Il y a donc bien un soucis dû au `network=host` sur mac/windows

Tu peux rien faire @bertrandda docker tourne dans une VM pas de network host sur ces os malheureusement.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 5, 2022, 4:41 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/12 "2022-09-05T16:41:05Z")

</div>

Génial @bertrandda ! Ca va faire plaisir à un paquet de monde ça 🙂

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Septembre 7, 2022, 6:18 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/13 "2022-09-07T18:18:19Z")

</div>

> [@VonOx](#):
>
> Tu peux rien faire @bertrandda docker tourne dans une VM pas de network host sur ces os malheureusement.

Merci pour l’info. Donc c’est à noté, si Gladys tourne sur docker, l’intégration ne marchera que si c’est un environnement Linux.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Octobre 3, 2022, 6:52 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/14 "2022-10-03T06:52:43Z")

</div>

Est-ce que d’autres personnes ont pu tester depuis ? 🙂

> [@bertrandda](#):
>
> L’image est dispo sur Docker `bertrandda/gladys:homekit`.

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Octobre 3, 2022, 8:10 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/15 "2022-10-03T08:10:14Z")

</div>

Testé sur RPI4 (installation Gladys classique, remplacement de l’image docker par celle de @bertrandda)  
J’ai l’erreur suivante au démarrage ☹ Impossible de lancer le service

```auto
2022-10-03T10:08:01+0200 \u003cwarn\u003e service.start.js:44 (Service.start) Unable to start service homekit TypeError: Cannot read property 'service' of undefined
    at HomeKitHandler.buildService (/src/server/services/homekit/lib/buildService.js:27:47)
    at /src/server/services/homekit/lib/buildAccessory.js:23:26
    at Array.forEach (\u003canonymous\u003e)
    at HomeKitHandler.buildAccessory (/src/server/services/homekit/lib/buildAccessory.js:22:27)
    at /src/server/services/homekit/lib/createBridge.js:34:62
    at Array.map (\u003canonymous\u003e)
    at HomeKitHandler.createBridge (/src/server/services/homekit/lib/createBridge.js:34:41)
    at Object.start (/src/server/services/homekit/index.js:25:5)
    at Service.start (/src/server/lib/service/service.start.js:33:7)

```

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Octobre 4, 2022, 7:41 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/16 "2022-10-04T19:41:05Z")

</div>

Arg désolé @cicoub13 j’ai oublié une vérification dans la création de la passerelle homekit, je fixe ça et te mets à jour l’image rapidement. Merci d’avoir testé en tout cas

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [Octobre 5, 2022, 6:24 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/17 "2022-10-05T06:24:27Z")

</div>

J’étais passé à coté de ce sujet !  
Top @bertrandda merci d’avoir avancé là dessus 😊

Je suis assez d’accord sur tes reflexions concernant la vie privée au moins sur le protocole. J’ai faillit choisir le protocole homekit pour mes têtes connectées.

Est-ce que tu penses qu’il sera possible d’utiliser homekit uniquement avec Gladys, sans aucun terminal Apple ?

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Octobre 5, 2022, 7:46 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/18 "2022-10-05T07:46:06Z")

</div>

Ça y est @cicoub13, l’image a été mise à jour ça devrait fonctionner pour toi aussi maintenant.

> [@lmilcent](#):
>
> Est-ce que tu penses qu’il sera possible d’utiliser homekit uniquement avec Gladys, sans aucun terminal Apple ?

Salut @lmilcent, je ne suis pas sûr de comprendre ce que tu demandes. L’intérêt de HomeKit c’est de fonctionner avec l’application Maison d’Apple (pour le contrôle manuel) ou avec Siri (contrôle vocal). Ces deux apps sont uniquement disponible sur les appareils Apple, si tu n’en as pas je ne pense pas que ce soit utile de laisser ce service allumé sur ton Gladys. Normalement le réseau homekit ne te permet pas d’ajouter d’autres appareils à Gladys, je ne sais pas si tu as testé un peu le fonctionnement Google Home ou Alexa mais ça doit être pareil, tu ajoutes d’un côté tes appareils sur Gladys (via Zigbee, Zwave, bluetooth…) puis tu ouvres la connexion avec Alexa/Google Home/Homekit et ces 3 services peuvent interagir avec tes appareils Gladys. Donc en clair, sans appareil Apple ça fonctionnera mais ça ne servira à rien

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [Octobre 5, 2022, 8:23 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/19 "2022-10-05T08:23:03Z")

</div>

En fait j’espérais pouvoir faire comme avec le zigbee :

1. J’utilises Gladyd pour découvrir et connecter les périphériques
2. J’utilises uniquement Gladys pour les contrôler

Si Homekit permet cela, ca me permettrait d’avoir des périphériques de ce protocole sans pour autant devoir avoir un iPhone.

Tu vois un peu plus mon cas de figure ?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Octobre 5, 2022, 12:19 UTC](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493/20 "2022-10-05T12:19:10Z")

</div>

@lmilcent en fait tu prend l’intégration à l’envers ! Le but de l’intégration HomeKit c’est de rendre les appareils Gladys contrôlables sur iPhone et sur Siri, un peu comme l’intégration Alexa ou Google home.

[Page suivante](https://community.gladysassistant.com/t/integration-homekit-et-siri/7493.md?page=2)
