dubocr / homebridge-tahoma

Homebridge plugin for TaHoma, Connexoon, Cozytouch, Energeasy Connect.
Apache License 2.0
132 stars 42 forks source link

Signaler via HomeKit un accessoire qui ne répond pas #90

Closed lboue closed 5 years ago

lboue commented 5 years ago

Bonjour,

J'aimerais avoir la possibilité de signaler via HomeKit un accessoire qui ne répond pas. Par exemple si ma box Tahoma n'est pas joignable. Je pense être tombé sur des explications assez précises.

Cela se trouve sur le github HAP-NodeJS Change updateValue to return not responding status #556

Explications

On peut par exemple initialiser la variable err et ensuite signaler l'erreur de cette manière avec un new Error

    var err = null; // in case there were any problems
    ...
    err = new Error("Polling failed");

Ou bien définir un booléen qui décrit l'accessibilité de l'objet

    var err = null; // in case there were any problems
    var isAccReachable = false;  // Set Reachability
    isAccReachable ? err = null : err = new Error("Polling failed");

Cas PEER_DOWN

Voici ce que l'on trouve dans les logs lorsque ma passarelle est indisponible

[2019-4-25 22:51:13] [Connexoon] [Volet Velux] setClosure[81]
[2019-4-25 22:51:14] [Connexoon] [Volet Velux] setClosure PEER_DOWN

Test avec hap-nodejs

J'ai fait un test avec hap-nodejs et ce fichier Outlet_accessory.js modifié et le status est bien reporté correctement suivant la valeur du booléen isAccReachable.

pi@raspberrypi:/usr/lib/node_modules/homebridge/node_modules/hap-nodejs $ sudo nodejs Core.js 
HAP-NodeJS starting...
Are we on? No.
Are we on? No.
Are we on? No.

IMG_2153

Pensez-vous que cela soit possible à implémenter ? Je peux aider pour réaliser des tests bien entendu.

Cordialement,

dubocr commented 5 years ago

Bonjour,

La dernière mise à jour intègre des évolutions concernant la gestion des capteurs qui ne répondent pas. Mais en ce qui concerne les volets c'est plus compliqué car les commandes sont bloquantes (elles ne se terminent que lorsque le volet à complètement terminé son mouvement). Donner un retour à HomeKit avant c'est prendre le risque de ne pas pouvoir signaler une erreur qui surviendrait après et attendre la fin du mouvement bloque HomeKit pendant ce temps (l'effet du slider en attendant est mal pris en compte). A voir si le comportement est bon avec cette version sinon il faudra affiner.