J’ai adapté un package qui permet d’interagir avec le pack sécurité de la Delta. Je me suis basé sur ce qui avait été fait par Free sur Homebridge. Je modifié afin d’avoir les mêmes fonctionnalités sur Homeassistant.
La communication entre HA et la delta passe par une API. Il suffit de curl certains endpoint afin d’activer l’alarme ou récupérer des états.
Tous les états, actions sont bien gérés par l’API (développé par Free), il suffit juste de configurer HA afin qu’il interagisse de la bonne façon.
Pour l’installation, il est possible d’utiliser Docker, ou de le lancer de manière classique avec pm2 par exemple.
Pourrais-tu faire un guide d’installation et d’utilisation.
Si je comprend bien ton API permettrais d’enclencher et de désenclencher l’alarme ? Est-ce bien ça ?
J’avoue ne pas trop m’y connaitre en docker et nodejs, donc un peux d’aide serait la bienvenue
En fait, je viens de découvrir et de tester quelques chose d’encore plus simple !
On m’a appris que HACF était en train de travailler sur l’intégration du pack sécurité dans l’intégration « officielle » Freebox de HA
Elle est presque fonctionnelle mais pas encore déployer sur la version officielle de HA
Mais, il suffit d’aller télécharger le zip complet de HA sur le GitHub de HACF mais sur la branche Freebox/Home (la branche de dev de l’intégration Freebox qui prend en charge le pack) :
Ensuite, d’en extraire QUE le dossier « freebox » dans homeassistant/components et de le copier dans ton dossier custom_component. Et enfin de refaire l’installation de l’intégration Freebox via l’UI !
NB : petit bémol, j’ai fait des corrections de dev qui ne sont pas encore sur la branche de HACF du coup, tu peux si tu as confiance télécharger plutôt le zip sur mon repo
Et extraire le dossier composants/freebox/ à déployer dans le custom
Sinon, tu dois intégrer les corrections intégrées à ces 2 PR
Voila ! c’est presque la mort de mon intégration non-officielle via NodeRed
En fait, tu dois d’abord désinstaller ton intégration Freebox officielle
Ensuite tu fais un redémarrage HA pour être sûr de tout supprimer
Ensuite, tu copies le nouveau dossier dans custom_components
Ensuite tu redémarre encore HA
Et la il me semble que tu lance l’installation de l’intégration Freebox et en fait ça va lancer celle qui est dans custom
C’est bien ça, il faut supprimer l’ancienne. Ensuite tout roule !
Petite question : est-ce que chez toi l’alarme « nuit » fonctionne? chez moi, rien à faire, elle reste à « désactivée ». De plus quand je change l’état de l’alarme via l’application FreeboxHome, HA n’est pas mis à jour. Chez toi aussi ?
Si moi tout fonctionne pour l’alarme !
Par contre, comme toi au début je croyais que ça fonctionnait pas car il faut modifier la card “alarm panel” qui est posée par défaut
Il faut mettre les boutons “arm away” et “arm night”
Et pas “arm home” (qui ne fonctionne pas)
J’ai ce type d’erreur dans les logs, mais pas de rapport à priori avec l’appuie sur le bouton armer nuit :
2021-11-01 12:25:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/freebox/binary_sensor.py", line 83, in async_watcher
detection = await self.get_home_endpoint_value(self._command_trigger)
File "/config/custom_components/freebox/base_class.py", line 130, in get_home_endpoint_value
node = await self._router._api.home.get_home_endpoint_value(
File "/usr/local/lib/python3.9/site-packages/freebox_api/api/home.py", line 107, in get_home_endpoint_value
return await self._access.get(f"home/endpoints/{node_id}/{endpoint_id}")
File "/usr/local/lib/python3.9/site-packages/freebox_api/access.py", line 122, in get
return await self._perform_request(self.session.get, end_url)
File "/usr/local/lib/python3.9/site-packages/freebox_api/access.py", line 94, in _perform_request
r = await verb(url, **request_params)
File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 544, in _request
await resp.start(conn)
File "/usr/local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 905, in start
self._continue = None
File "/usr/local/lib/python3.9/site-packages/aiohttp/helpers.py", line 656, in __exit__
raise asyncio.TimeoutError from None
asyncio.exceptions.TimeoutError
Bonjour, je viens de publier la procédure entière d’installation et de configuration :
Vous avez la possibilité d’activer/désactiver l’alarme principale et secondaire. Vous pouvez aussi récupérer tous les états des capteurs.
Attention le serveur qui héberge freebox-security-API doit être le même que celui de homeassitant. Pour des raisons de sécurité l’API autorise uniquement des appels en localhost.
N’hésitez pas à me contacter si jamais vous avez des difficultés.
Bonjour, j’aurai besoin d’un peu d’aide pour installer votre bridge sur mon home assistant.
J’ai bien installé tout ce qu’il faut et lancé le script avec PM2.
Là je suis bloqué à l’étape d’authentification avec la commande suivante :
J’ai essayé tout ce que j’ai pu, j’ai remplacé localhost par l’adresse ip locale de la box, j’ai fait une redirection de port 8888 vers la box elle même, j’ai essayé mon port d’accès distant HTTP… rien n’a l’air de fonctionner.
J’obtiens le message suivant :
IP+8888 : Failed to connect to 192.168.0.254 port 8888: Connection refused
IP sans port : {« msg »:« Version d’API inconnue »,« success »:false,« error_code »:« invalid_api_version »}
Si quelqu’un a des pistes pour m’aider ça serait super
Pour information j’utilise une Freebox Delta, sur laquelle j’ai installé Home Assistant en VM dessus. L’adresse IP de ma VM est différente de celle de la box.
Je vais regarder tout ça, je te fais un retour ce soir, je vais setup une VM sur la delta
EDIT:
Si tu fais un curl depuis ta VM avec d’installer HA et le package freebox-security-API (curl http://localhost:8888/api/fbx/auth), cela donne quoi ? Tu n’as pas besoin de modifier quoique ce soit si les deux sont sur la même VM.
Tu n’as pas besoin aussi de faire un forwarding de port. Le but c’est de laisser passer uniquement les requêtes de ta VM et pas les autres afin d’éviter des problèmes de sécurité. Ainsi seul HA et les requêtes provenant de la VM seront autorisées. Donc il faut faire le curl depuis la VM en destination de la VM sur le port 8888 le tout en localhost.
J’ai suivi les conseils de @dathosim, mais je ne trouve aucunement l’endroit où je peux définir la nécessité d’entrer le code pour activer ou désactiver l’alarme. J’ai cherché dans bon nombre des fichiers mais mes résultats ne sont pas concluante.
Pourriez vous m’indiquez ou je pourrait trouver cette configuration ?