Intégration HomeKit et Siri

Tu dois faire un demande de fonctionnalité pour que ça soit intégré. Pour le moment, interrupteurs, lampes et températures seulement (si je n’en ai pas oublié)

1 Like

En effet ces capteurs là ne sont pas encore gérés par l’intégration HomeKit. Je vais le noter pour la prochaine version, et n’hésite pas à écrire une demande de fonctionnalité comme l’a conseillé @GBoulvin pour qu’on ai une trace

1 Like

Après quelques jours d’utilisations j’ai fait des changements pour améliorer l’intégration. Cette nouvelle PR

  • ajoute les capteurs d’ouverture (porte, fenêtres…) suite à la demande de @bouillou7
  • fix la plage de luminosité des ampoules. Aujourd’hui avec les Philips Hue par exemple, quand on met la luminosité à 100% depuis l’application Maison, on est en réalité qu’à ~40% côté Gladys
  • fix la réception des nouvelles valeurs côté HomeKit. À l’heure actuelle, les nouvelles valeurs des appareils de Gladys ne sont pas directement reçu par le réseau HomeKit, c’est l’application qui doit demander ces nouvelles valeurs (quand elle démarre, qu’on change de vue sur l’app…). Avec ce développement Gladys émet un « notification » sur le réseau HomeKit à chaque nouvelle valeur d’un appareil compatible, l’affichage côté application Maison devient réellement en direct et cela permettra d’améliorer les automatisations de l’application Maison qui sont dépendantes des capteurs

Pour ceux qui veulent voir ou tester, la PR :

Une image docker est disponible bertrandda/homekit

3 Likes

Génial ça! :slight_smile:

Je t’ai mis une remarque sur la fréquence d’envoi des nouveaux états, envoyer tous les états c’est vraiment trop agressif, j’ai fais un peu différemment sur l’intégration Alexa/Google Home :slight_smile:

Dans le cas de Google/Alexa c’est parce qu’on fait des appels API et à leurs serveurs, si ça reste en local n’est ce pas inutile ?

J’ai regardé un peu le code, peux tu me confirmer que j’ai bien compris le fonctionnement s’il te plait : dès qu’on reçoit un évènement de nouvel état d’une feature, on lance un timeout de 5 sec si aucun nouvel évènement n’est arrivé pour la même feature on envoi l’info sinon on recommence un timeout avec la nouvelle valeur

Si c’est bien ça 2 questions :

  • que se passe t il si un appareil envoi une nouvelle valeur automatiquement toute les 2 secondes (je n’ai pas d’exemple mais j’essaie d’imaginer des cas extrêmes par exemple avec le module zigbee du Linky), ne va t on pas être dans une boucle sans jamais envoyer la nouvelle valeur ?
  • ne peut on pas réduire un peu le timeout car par exemple si l’utilisateur a programmé une alarme/alerte dans les automatisations HomeKit qui se déclenche sur un capteur d’ouverture de Gladys il se peut qu’il y ai un cas où la fenêtre/porte ai été ouverte puis fermé en moins de 5 seconde et que l’alarme ne se déclenche pas. N’est ce pas quelque chose qu’on veut éviter question sécurité ?

Effectivement en t’envoyant le bout de code je me suis dis la même chose :stuck_out_tongue: C’est un bug, il faudrait qu’il y ait une « tempo max » en sorte.

ça fait vraiment énormément de traffic, et on l’a vu sur le développement de l’intégration InfluxDB, ça consomme vraiment beaucoup de CPU côté Gladys de gérer chaque event individuellement sans mettre aucune limite.

Même si la limite ça serait 1 event max par 1 seconde, c’est déjà top. Certain device sont très verbose.

Effectivement dans ce cas là on peut descendre la tempo. Après la tempo peut-être différente pour certain type d’appareil « critique » et peu verbose (ouverture de porte par exemple)

Mais je t’assure que sur les installations de certains utilisateurs de ce forum, envoyer tout va tuer leur network et leur instance Gladys :sweat_smile:

Autre question, tu n’envoie bien que les états des appareils qui sont « compatible Gladys-Homekit », pas tout ?

Ok j’essayerai en mettant le double comme maximum (si la tempo est de 5 sec, et qu’on est dans un cas avec un évènement tous les 2 sec, la nouvelle valeur sera envoyé avec l’évènement émis 10 seconde après le premier)

Donc par défaut je mettrai 5 sec et dans le mapping du service j’ajouterai un champs pour personnaliser cette temporisation si nécessaire

Oui, seulement les nouvelles valeurs des appareils exposés à HomeKit sont envoyées

1 Like

J’ai mis à jour l’image bertrandda/gladys:homekit avec les derniers changements pour réduire le nombre d’évènements envoyés

1 Like

Top merci @bertrandda pour le fix :slight_smile:

Preneur de retours maintenant pour vérifier que ça marche et que ce n’est pas trop aggressif. Si vous testez, je veux bien une comparaison « usage CPU avant/après »