S'il n'est pas très conseillé d'utiliser un système domotique pour en faire un système d'alarme, il reste toutefois très pratique de pouvoir intégrer certaines informations de son système d'alarme indépendant, dans son système domotique. En effet, en ayant connaissance du mode actuel de l'alarme, le système domotique peut par exemple fermer les volets, désactiver certains scénarios, ou encore lancer le robot aspirateur par exemple. De plus, certains capteurs peuvent être réutilisés, notamment les détecteurs d'ouverture ou de mouvement, ce qui évite de devoir avoir des doublons en termes de capteurs (un capteur d'ouverture pour l'alarme, un autre pour le système domotique…). On peut en effet couper le chauffage si une fenêtre est ouverte, allumer une lampe quand quelqu'un entre dans la pièce, etc. Utilisant l'excellente alarme Ajax depuis pas mal de temps, j'ai donc cherché à l'intégrer dans Home Assistant. Chose pas si facile, mais ça fonctionne !
Pour intégrer l'alarme Ajax dans Home Assistant, il existe actuellement deux méthodes: une facile, mais très loin d'être complète; et une méthode un peu plus laborieuse, mais beaucoup plus satisfaisante ! Nous allons découvrir les deux.
Méthode facile: plugin Ajax Home Assistant
Lorsqu'un plugin existe sous Home Assistant, cela facilite toujours beaucoup la vie. C'est le cas justement de l'alarme Ajax, qui utilise le protocole SIA de la télésurveillance. Cette méthode va en fait déclarer Home Assistant comme un centre de télésurveillance, ce qui va permettre à celui ci de communiquer avec l'alarme.
L'installation se fait en deux étapes. Tout d'abord sur l'application Ajax elle même. Il faudra se rendre dans les réglages de la centrale via la roue crantée en haut à droite, puis sur “Entreprises de sécurité” tout en bas dans le menu, puis “Centre de Télésurveillance”.
On sélectionne alors le protocole “SIA DC-09”. On coche “une adresse IP pour tous les réseaux”, et on renseigne l'adresse IP de son Home Assistant. En port il faut en revanche utiliser un port qui n'est pas utilisé par Home Assistant, comme par exemple 2410 (au hasard :p).
Dans intervalle ping, on indique 1min, et dans numéro du site “AAA” par exemple. C'est tout. On revient en arrière, les paramètres sont enregistrés.
Côté Home Assistant, il faut maintenant installer le plugin. On se rend dans la section Appareils, ajouter une intégration, et on recherche “SIA Alarm Systems”. Ce n'est pas un plugin dédié à Ajax, mais au protocole SIA, utilisé par de nombreux alarmes en télésurveillance, dont Ajax.
Dans la boite de dialogue de configuration, il suffit de saisir le port indiqué dans l'application Ajax (ici 2410), l'identifiant de compte AAA, et le nombre de zones existantes dans notre configuration Ajax (ici 2 puisque j'ai par exemple le rez de chaussée et l'étage).
On valide: la configuration est terminée !
On obtient alors une série de nouveaux appareils créés dans Home Assistant, selon le nombre de zones configurées:
Comme on le voit on récupère l'état de l'alarme, l'état de l'alerte inondation, et l'état de l'alerte incendie.
Si on sélectionne l'état de l'alarme, on peut voir ses changements d'états:
Ces états peuvent alors être utilisés pour divers scénarios, comme ceux évoqués en introduction: fermeture automatique des volets quand on active l'alarme, mise en route du robot aspirateur quand on passe en armement total, etc.
Malheureusement comme on le voit les données sont très succinctes, on n'obtient pas l'état des différents capteurs du système d'alarme, et il n'est pas non plus possible de piloter l'alarme depuis Home Assistant. L'intérêt reste donc assez limité sur cette première possibilité.
Méthode avancée: MQTT via Jeedom
Si côté Home Assistant les infos remontées sur l'alarme Ajax sont très succinctes, il n'en va pas de même du côté du plugin Jeedom, qui lui est très complet !
Jugez par vous même:
L'astuce va donc être d'utiliser le plugin Ajax sur Jeedom, puis d'envoyer toutes les informations à Home Assistant via MQTT. Ok, cela peut paraitre un peu usine à gaz, mais ce n'est pas si compliqué que cela au final !
Pour commencer il vous faudra bien sûr une instance de Jeedom qui tourne, et qui soit accessible de l'extérieur. Pas besoin d'acheter une box domotique Jeedom pour cela, rassurez vous. Vous pouvez très bien l'installer sous Proxmox comme nous l'avons déjà fait avec Home Assistant, ou encore dans une machine virtuelle sur un Nas Synology par exemple (levez la main s'il vous faut aussi un guide pour installer Jeedom sous Proxmox ?). Et un reverse proxy permettra d'y accéder depuis l'extérieur.
Installation du plugin Ajax
Il faudra alors installer le plugin Ajax (payant, à 8€). On l'active, puis on clique sur le bouton “Se connecter”. Il faudra alors renseigner son nom d'utilisateur et son mot de passe de compte Ajax (vous pouvez créer un compte dédié à cela dans l'application Ajax).
Dans l'application Ajax, il faudra d'ailleurs déclarer l'utilisateur [email protected] dans les paramètres du Hub (l’invitation restera toujours en attente, c’est normal).
A partir de là on peut synchroniser les équipements: Jeedom va créer automatiquement tous les équipements présents sur notre système Ajax.
Installation du plugin MQTT
On installe maintenant le plugin MQTT Manager via le store Jeedom. Cette fois il est gratuit ;-)
Une fois installé, on l'active, et on le configure de cette façon:
Le mode doit bien être réglé sur Broker distant, puisqu'on va utiliser le broker MQTT de Home Assistant (qu'il faudra avoir configuré au préalable si vous ne l'avez pas déjà fait). Ainsi, juste en dessous, on indique le nom d'utilisateur configuré sur notre broker Home Assistant, ainsi que son mot de passe, les deux séparés par “:”. Enfin on coche bien “Transmettre tous les évènements”. Grâce à cela, tout ce qui se passe sur Jeedom va être communiqué sur le broker MQTT. Dont tous les évènements de notre alarme Ajax !
C'est fini pour la configuration Jeedom ! Vous pouvez maintenant si vous le souhaitez utiliser un client comme MQTT Explorer par exemple si vous souhaitez vérifier que les évènements en question transitent bien sur le broker MQTT. Mais aucune obligation.
Il ne nous reste plus qu'à déclarer nos périphériques du côté de Home Assistant.
Création des périphériques sur Home Assistant
C'est la partie la plus fastidieuse, car il va falloir créer nos périphériques un à un dans Home Assistant. Heureusement ce ne sera à faire qu'une seule fois, et je vais vous fournir le fichier de configuration ;-)
Pour ma part, histoire de ne pas surcharger mon fichier configuration.yaml, je l'ai découpé en plusieurs parties. Les capteurs MQTT sont donc dans un fichier mqtt.yaml. Si vous ne l'avez pas déjà chez vous, il faudra donc ajouter cette ligne dans votre fichier configuration.yaml:
mqtt: !include mqtt.yaml
Puis créer le fichier mqtt.yaml en question.
Pour commencer, je crée 3 boutons qui correspondent aux modes Armé, Nuit, et Désarmé de l'alarme Ajax:
button:
- name: "Alarme Armement"
command_topic: "jeedom/cmd/set/58"
unique_id: "control_armement_ajax_from_jeedom"
payload_press: "ARM"
retain: false
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
- name: "Alarme Mode Nuit"
command_topic: "jeedom/cmd/set/59"
unique_id: "control_mode_nuit_ajax_from_jeedom"
payload_press: "NIGHT MODE"
retain: false
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
- name: "Alarme Désarmement"
command_topic: "jeedom/cmd/set/60"
unique_id: "control_desarmement_ajax_from_jeedom"
payload_press: "DISARM"
retain: false
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
Ici il n'y a que les chiffres /58, /59 et /60 à remplacer par les vôtres. Pour trouver les numéros correspondants chez vous, il faudra aller sur Jeedom, Plugins / Sécurité / Ajax System, et vous rendre sur la centrale créée dans Jeedom:
Là il faut aller sur l'onglet commandes, et chercher les commandes d'armement / désarmement:
Relevez les numéros devant chaque commande, et renseignez les dans le fichier mqtt.yaml. Le principe sera le même pour toutes les commandes suivantes.
On crée ensuite des “binary sensors” pour les détecteurs d'ouverture et d'inondation, puisqu'ils n'ont qu'un état ouvert ou fermé:
binary_sensor:
- name: "Baie vitrée droite"
state_topic: "jeedom/cmd/event/239"
unique_id: "etat_baie_vitree_droite_bureau_ajax_from_jeedom"
device_class: window
value_template: '{{value_json.value}}'
payload_on: "0"
payload_off: "1"
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
- name: "Porte Fenêtre"
state_topic: "jeedom/cmd/event/144"
unique_id: "etat_porte_fenetre_ajax_from_jeedom"
device_class: door
value_template: '{{value_json.value}}'
payload_on: "0"
payload_off: "1"
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
- name: "Porte Entrée"
state_topic: "jeedom/cmd/event/180"
unique_id: "etat_porte_entree_ajax_from_jeedom"
device_class: door
value_template: '{{value_json.value}}'
payload_on: "0"
payload_off: "1"
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
- name: "Inondation SdB"
state_topic: "jeedom/cmd/event/135"
unique_id: "etat_inondation_sdb_ajax_from_jeedom"
device_class: moisture
value_template: '{{value_json.value}}'
payload_on: "0"
payload_off: "1"
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
Là il faudra également remplacer les numéros /239, /144 et /180 par les vôtres. Dans Jeedom, en allant sur l'onglet commandes du détecteur d'ouverture qui nous intéresse, il suffit de trouver la commande “Ouverture” (ou “Fuite détectée” pour les détecteurs d'inondation) et de relever le numéro en face:
On fait de même avec tous les capteurs d'ouvertures qu'on souhaite ajouter dans Home Assistant, en dupliquant le schéma. N'oubliez pas de modifier le “name” qui sera le nom affiché dans Home Assistant, et le “unique_id” qui comme son nom l'indique doit être unique. Vous pouvez également modifier le “device_class” pour afficher la bonne icône: window, door, etc. en fonction du type d'ouverture surveillée. Vous pouvez retrouver une liste des possibilités ici.
Enfin, on va créer des “sensors”, qui eux peuvent prendre une valeur, comme une température, notamment:
sensor:
- name: "Etat Alarme Ajax"
state_topic: "jeedom/cmd/event/44"
unique_id: "etat_alarme_ajax_from_jeedom"
value_template: '{{value_json.value}}'
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
- name: "Baie vitrée droite Température"
state_topic: "jeedom/cmd/event/241"
unique_id: "temperature_baie_vitree_droite_bureau_ajax_from_jeedom"
value_template: '{{value_json.value}}'
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
- name: "Porte Fenêtre Température"
state_topic: "jeedom/cmd/event/146"
unique_id: "temperature_porte_fenetre_ajax_from_jeedom"
value_template: '{{value_json.value}}'
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
device:
identifiers: "Alarme AJAX via Jeedom MQTT"
name: "Alarme AJAX"
model: "Hub 2 Plus"
manufacturer: "AJAX"
Le premier capteur déclaré ici va permettre de récupérer l'état de l'alarme. Son numéro sera retrouvé sur Jeedom, dans les commandes de la centrale, ligne “Etat”.
Les capteurs suivants permettent de récupérer la température suivie par les détecteurs d'ouverture. Là encore on récupérera le numéro dans Jeedom, dans les commandes du détecteur d'ouverture en question, ligne “Température” tout simplement.
On déclare ainsi tous les capteurs qu'on souhaite récupérer dans Home Assistant.
Faites bien attention à l'indentation du fichier yaml. Vous pouvez télécharger le mien ci dessous pour avoir un fichier correct en modèle:
Une fois le fichier terminé, enregistrez le, puis validez la configuration via le menu “Outils de Développement”, “Vérifier la configuration”. Si tout est ok (message vert) vous pouvez redémarrer Home Assistant pour qu'il prenne en compte ces nouveaux périphériques.
En allant dans Appareils, MQTT, et en recherchant “Ajax”, vous devriez avoir la liste des périphériques créés:
Attention, les états ne se mettent à jour que lorsqu'ils sont modifiés. Il faudra donc ouvrir ou fermer une porte ou une fenêtre pour que son statut remonte (la remontée dans Home Assistant est quasi instantanée dès que le statut change). Il faudra en revanche patienter pour avoir une remontée de la température, celle ci n'étant envoyée également que lors d'une modification.
Les détecteurs incendie ne semblent en revanche pas remonter dans Jeedom, donc pas non plus dans Home Assistant, bien sûr. Mais on récupère tout de même la plupart des informations, beaucoup plus en tout cas que le plugin SIA de Home Assistant vu plus haut.
On peut ensuite les mettre en forme comme on le souhaite, comme par exemple ici:
Et bien sûr il est tout à fait possible d'utiliser les états pour déclencher des scénarios, voir même activer / désactiver l'alarme pour ceux qui le souhaitent. Couper le chauffage si une fenêtre est ouverte, envoyer une alerte si une porte est restée ouverte trop longtemps, démarrer le robot aspirateur quand l'alarme est en mode total (et donc la maison vide), etc. Tout devient possible !
Conclusion
Alors c'est loin d'être aussi simple que certaines intégrations où en deux clics tout est récupéré au sein de Home Assistant. Les développeurs ont pourtant essayé de négocier avec Ajax, qui se refuse à toute ouverture pour préserver la sécurité, ce qui se comprend. Jeedom a pourtant réussi à avoir un accès et propose du coup un plugin très complet :( Tant pis, à défaut d'autre chose, pour le moment une instance de Jeedom avec MQTT fait le boulot pour nous permettre de récupérer les informations de l'alarme Ajax dans Home Assistant. Certains utilisateurs ont opté pour tout configurer du côté de Jeedom: en configurant correctement les commandes MQTT côté Jeedom, il est possible en effet de les créer automatiquement dans Home Assistant. Il faut du coup faire ce genre de paramétrage:
A vrai dire le boulot revient au même: dans les deux cas il faut faire toutes les déclarations de capteurs, si ce n'est dans Home Assistant, ce sera dans Jeedom. Chacun fait donc comme il préfère, il n'y a pas de bonne ou de mauvaise manière. Pour ma part je voulais avoir le moins de choses possibles à gérer dans Jeedom, et centraliser tous les paramétrages côté Home Assistant. L'important est que ça fonctionne, que ce soit rapide, et fiable.
On croise toujours les doigts pour qu'une intégration officielle voit le jour, mais pour le moment il faudra se contenter de cela, et il est tout à fait possible de cumuler cette intégration MQTT et SIA si on le souhaite.
Un plugin HA est en train d’être développé pour avoir les mêmes fonctionnalité sans passer par Jeedom.
Hello ! Top, super nouvelle, ca ! C’est déjà visible quelque part, en beta ou autre ?
Bonjour, bon… rien de rien sur le net :-(
Du coup je suis aussi passé en MQTT via Jeedom.
J’avais justement une question, c’est documenté à quel endroit les configs YAML pour les boutons, sensor et autres ? Car je voudrais bien piloter mes relais Ajax mais ca merdouille (j’ai pris exemple sur l’armement et le désarmement de votre centrale) Mais çà envoie 2 fois la commande :-( Lorsque je passe en direct via le bouton “tester” dans les commandes des équipements de Jeedom ça à l’air de fonctionner. Je pense qu’il a un souci sur le YAML.
Si vous avez ça en stock, je suis preneur ;-)
Merci d’avance.
Christophe
Bonjour, avez-vous des nouvelles concernant ce fameux plugin Ajax ?
Merci d’avance.
Christophe
Bonjour. Pas de news pour le moment malheureusement. Mais si vous voyez passer quelque chose de votre côté n’hésitez pas à me le signaler ici !
Bonjour pour vous remercier
Merci
J’ai teste ton tuto ca marche pas mal
Par contre j’ai bien les event qui remonte dans HA mais les commandes que j’envoie ne fonctionne pas.
On dirait que le chemin jeedom–>mqqt–>HA marche nickel
mais HA–>mqqt oui mqqt–>jeedom NON
Bonsoir,
Merci pour ce super tuto!
J’ai réussi à armer depuis HA mais je n’arrive pas a récupérer les binary_sensor, ca reste à inconnu et je comprends pas vraiment.
Comment voir les etats changer dans Jeedom ? Car dans mon cas ca reste vide pour chaque ligne sur jeedom.
Bonjour
Sur la tuile « Alarme » avec son dernier état comme fait tu pour ajouter les boutons « Armer », « Desarmé » et « mode nuit » dans la même tuile?
Bonjour j’ai un probleme, je n’arrive pas a lancer le plug-in ajax pouvez vous m’aider svp? Lorsque je clique sur le bouton compatibilité (que je pense etre le bouton de lancement du plug in) ce dernier me renvoie le message suivant:
401 Unauthorized
PS c’est ma premiere utilisation de jeedom et de home assistant.