Exemple d’intégration d’une alarme AJAX dans Jeedom avec le plugin siapro
Le but de ce tutoriel est de vous faire mon retour d’expérience d’intégration de l’alarme AJAX dans Jeedom.
Il ne prétend pas être la solution et n’est probablement pas exempt de défauts ou d’optimisations possibles.
Préambule
L’interface SIA entre AJAX et Jeedom permet de remonter les évènements du système AJAX vers Jeedom. Il y a cependant des limitations au protocole implémenté par AJAX (dans sa version 2.10):
- Le dialogue ne se fait que dans le sens AJAX vers Jeedom. Il n’est donc pas possible d’armer ou de désarmer l’alarme depuis Jeedom
- Les détecteurs de type intrusion ne remonte par l’interface SIA des évènements que si l’alarme est activée (ou le groupe auquel ils appartiennent est activé). Il n’est donc pas possible de se servir de ces détecteurs dans d’autres situations que la détection d’intrusion
- Les détecteurs d’incendie, de CO et d’inondation remontent par l’interface SIA les alarmes que le HUB soit armé ou pas.
- Les malfonctions des appareils AJAX remontent par l’interface SIA que le HUB soit armé ou pas.
Installation plugin siapro
Le plugin de [thanaus] est disponible sur le market
Il n’y a pas de difficulté particulière dans son installation.
Pour la configuration, saisir le Port SIA ( par exemple 9868 ). C’est ce port qui sera utilisé pour la liaison en AJAX et Jeedom
Ne pas utiliser la clé de cryptage car ce n’est pas, pour le moment, implémenté dans le plugin
Liaison avec le Hub AJAX
Dans l’application AJAX sur votre smartphone.
- Allez dans Appareils et cliquez sur votre Hub
- Cliquez sur l’engrenage pour configuré le Hub
- Dans la liste, cliquez sur Centre de télésurveillance :
- Dans Protocole, choisir SIA Protocol
- Dans Numéro de compte, saisir un numéro quelconque (il n’y pas de vérification autre que le champ soit non vide), par exemple A001
- Dans Adresse IP principale, saisir l’adresse IP locale de notre Jeedom et dans Port, saisir le même numéro de port que celui saisi dans le plugin, par exemple 9868
- Comme Canal, choisir Ethernet
- Sélectionner Rapport de test périodique et sélectionné un intervalle de ping (ceci sert à vérifier que le lien avec Jeedom est bien établi)
- Sauver et retourné à la page Appareils. Normalement auprès un petit moment vous devriez voir apparaitre ceci :
De retour dans Jeedom, dans Plugins->Protocole Domotique->SIA Pro, vous devriez avoir un nouvel équipement de créé correspondant à votre système AJAX, nommé par défaut Nri0 préfixé avec le Numéro de compte, donc A001.Nri0 dans notre exemple. Renommez-le pour plus de compréhension : ici Ajax Hub 2
Maintenant, générez un évènement dans AJAX, par exemple activez l’alarme. Dans Jeedom, un ou plusieurs équipements apparaissent, nommés par défaut Nri1, Nri2… Ils correspondent à chacun des groupes définis dans AJAX. Renommez-les, là encore, pour plus de compréhension. Dans mon exemple, j’ai deux groupes : Ajax Protection Intérieure et Ajax Protection Périmétrique
Pour la suite, il faut comprendre à quoi servent chacun des équipements :
- Ajax Hub 2 recoit uniquement les évènements de test de vie envoyés par AJAX
- Ajax Protection Intérieure et Ajax Protection Périmétrique recoivent tous les évènements liés au système (activation/désactivation, alarmes, malfonctions)
Gérer les codes AJAX dans Jeedom
Etat synthétique d’AJAX
Afin de gérer les codes envoyé par AJAX dans Jeedom et avoir un widget de synthèse de l’état de l’alarme, je définie un virtuel.
La première partie du virtuel est utilisée pour l’affichage dans le Widget
On défini un virtuel Alarme :
- Zone Intérieure : Indicateur de l’état de la Zone 0: Désarmé, 1: Armé, 2: Incident (Alarme ou Malfonction), 3: Mode Nuit
- Zone Intérieure_bak : Sauvegarde l’état précédent
- Zone Périmétrique : Indicateur de l’état de la Zone 0: Désarmé, 1: Armé, 2: Incident (Alarme ou Malfonction), 3: Mode Nuit
- Zone Périmétrique_bak : Sauvegarde l’état précédent
- Hub Link : Indicateur de l’état de la connexion au Hub AJAX
- Intrusion : Indicateur d’alarme de type intrusion. Associé à une variable par zone variable(IntrusionAlarm_ZI), variable(IntrusionAlarm_ZP)
- Feu : Indicateur d’alarme de type Incendie. Associé à une variable par zone variable(FireAlarm_ZI), variable(FireAlarm_ZP)
- CO : Indicateur d’alarme de type Monoxyde de carbone. Associé à une variable par zone variable(GasAlarm_ZI), variable(GasAlarm_ZP)
- Inondation : Indicateur d’alarme de type inondation. Associé à une variable par zone variable(WaterAlarm_ZI), variable(WaterAlarm_ZP)
- Info : message contenu dans la variable(infoStatutAJAX)
- DescriptionEvent : description du dernier évènement reçu par AJAX
- Etat : Indique que l’état du virtuel
- Réinit : permet de réinitialiser le virtuel à son état par défaut. Appel le scénario ResetAjaxStatut
la seconde partie du virtuel est utiliséé pour le stokage des infos reçues par le Hub
Pour chaque zone :
- Code : Dernier code SIA reçu pour la zone
- Description : Description reçue
- Zone : ID de l’équipement AJAX concerné par le dernier évènement reçu
- Utilisateur : ID de l’utilisateur AJAX ayant déclenché l’évènement reçu
A noter que l’ont a soit Zone, soit Utilisateur pour un évènement mais pas les deux en même temps
Widget du virtuel
Pour la disposition des infos, j’utilise un Tableau de 4x1 :
Ce qui donne le résultat suivant :
J’utilise des widgets personnalisées pour chaque commande afin d’améliorer le rendu.
Scénarios associés
Afin de donner l’intelligence au virtuel, j’ai défini les scénarios suivants :
- ResetAjaxStatut : permet de remettre à zéro le virtuel de l’Alarme AJAX
- Check Ping AJAX : permet de vérifier l’état de la connexion avec le Hub
- Ajax Utilisateur : permet de décoder l’ID de l’utilisateur AJAX
- Ajax Appareil : permet de décoder les ID des appareils AJAX
- Code Alarme ZI et Code Alarme ZP : la gestion des codes reçu par les équipements AJAX pour chaque groupe : Ajax Protection Intérieure et Ajax Protection Périmétrique
Pour la suite je vous donne les scénarios sous forme de texte, plus simple à visualiser
ResetAjaxStatut
Scénario ultra simple, qui remet aux valeurs par défaut les commandes du virtuel :
- Nom du scénario : ResetAjaxStatut
- Mode du scénario : provoke
- Evènement :
ACTION
event - Options : {"enable":"1","background":"0","cmd":"#[S\u00e9curit\u00e9][Alarme][Zone Int\u00e9rieure]#","value":"0"}
event - Options : {"enable":"1","background":"0","cmd":"#[S\u00e9curit\u00e9][Alarme][Zone P\u00e9rim\u00e9trique]#","value":"0"}
event - Options : {"enable":"1","background":"0","cmd":"#[S\u00e9curit\u00e9][Alarme][DescriptionEvent]#","value":""}
(variable) Affectation de la variable : IntrusionAlarm_ZI à 0
(variable) Affectation de la variable : IntrusionAlarm_ZP à 0
(variable) Affectation de la variable : FireAlarm_ZI à 0
(variable) Affectation de la variable : GasAlarm_ZI à 0
(variable) Affectation de la variable : WaterAlarm_ZI à 0
(variable) Affectation de la variable : WaterAlarm_ZP à 0
(variable) Affectation de la variable : infoStatutAJAX à
Check Ping AJAX
Encore un scénario simple, qui vérifie le liene avec AJAX. A noter que la valeur 900 doit être adapté en fonction de la valeur mise dans l’intervalle de Rapport de test périodique dans AJAX et adapter également la fréquence de lancement du scénario.
Ajax Hub 2 correspond au premier équipement dans SIA Pro (i.e Nri0)
Alarme est le virtuel
- Nom du scénario : Check Ping AJAX
- Objet parent : Sécurité
- Mode du scénario : schedule
- Programmation : */5 * * * *
SI #timestamp# - strtotime(collectdate(#[Sécurité][Ajax Hub 2][Code]#)) > 900
ALORS
message - Options : {"enable":"1","background":"0","message":"Ping en échec avec Hub AJAX"}
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Hub Link]#","value":"0"}
SINON
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Hub Link]#","value":"1"}
Ajax Utilisateur
Toujours un scénario simple, pour décoder l’ID de l’utilisateur. Les ID d’utilisateurs dans AJAX commencent à 501 et sont incrémentés de 1 pour chaque nouvel utilisateur.
Ajax Protection Intérieure est l’équipement SIA Pro correspondant au groupe Nri1
Ajax Protection Périmétrique est l’équipement SIA Pro correspondant au groupe Nri2
Alarme est le virtuel
- Nom du scénario : Ajax utilisateur
- Objet parent : Sécurité
- Mode du scénario : provoke
- Evènement :
SI #[Sécurité][Ajax Protection Intérieure][Utilisateur - Zone]# == 501
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][UtilisateurI]#","value":"Aegis"}
SINON
SI #[Sécurité][Ajax Protection Périmétrique][Utilisateur - Zone]# == 501
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][UtilisateurP]#","value":"Aegis"}
SINON
Ajax Appareil
Le scénario permet de décoder les ID des appareils AJAX émettant un évènement. Les ID commence à 0 (le Hub AJAX) et sont incrémentés de 1 pour chaque nouvel appareil.
Il convient de remplir la bonne commande en fonction du groupe dans lequel est ajouté l’appareil.
Ajax Protection Intérieure est l’équipement SIA Pro correspondant au groupe Nri1
Ajax Protection Périmétrique est l’équipement SIA Pro correspondant au groupe Nri2
Alarme est le virtuel
- Nom du scénario : Ajax Appareil
- Objet parent : Sécurité
- Mode du scénario : provoke
- Evènement :
SI #[Sécurité][Ajax Protection Intérieure][Utilisateur - Zone]# == 0
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][ZoneI]#","value":"Hub AJAX"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Utilisateur - Zone]# == 1
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][ZoneI]#","value":"Salon - Fenètre Droite"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Périmétrique][Utilisateur - Zone]# == 12
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][ZoneP]#","value":"Garage - Porte jardin"}
(stop) Arret du scenario
SINON
Code Alarme ZI et Code Alarme ZP
Le plus gros morceau, le traitement des évènements reçus. Je ne décris qu’un scénario pour un groupe, le principe est le même pour les autres.
Le Scénario est provoqué par la réception d’un évènement sur l’équipement SIA Pro correspondant au groupe :
- Nom du scénario : Code Alarme ZI
- Objet parent : Sécurité
- Mode du scénario : provoke
- Evènement : #[Sécurité][Ajax Protection Intérieure][Code]#
La première partie concerne le décodage des ID utilisateurs et ID d’appareils AJAX, ainsi que le formatage de la description de l’évènement :
ACTION
(scenario) startsync de [Sécurité][Sécurité][Ajax Utilisateur]
(scenario) startsync de [Sécurité][Sécurité][Ajax Appareil]
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][DescriptionEvent]#","value":"#[Sécurité][Alarme][ZoneI]# : #[Sécurité][Alarme][Description ZI]# - #jour# #smois# formatTime(#time#)"}
Cette partie traite de l’armement ou du désarmement de l’alarme :
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'CG' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'CA' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'CB' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'CL'
ALORS
log - Options : {"enable":"1","background":"0","message":"Alarme armée dans la zone intérieure"}
(variable) Affectation de la variable : infoStatutAJAX à Alarme armée par #1031# #sjour# #jour# #smois# formatTime(#time#)
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"1"}
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][DescriptionEvent]#","value":""}
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"1"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'NC' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'NL'
ALORS
log - Options : {"enable":"1","background":"0","message":"Alarme armée en mode Nuit dans la zone intérieure"}
(variable) Affectation de la variable : infoStatutAJAX à Alarme armée en mode Nuit par #1031# #sjour# #jour# #smois# formatTime(#time#)
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"3"}
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][DescriptionEvent]#","value":""}
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"3"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'OG' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'OA' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'OB' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'OP' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'NO' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'NP'
ALORS
log - Options : {"enable":"1","background":"0","message":"Alarme désarmée dans la zone intérieure"}
(variable) Affectation de la variable : infoStatutAJAX à Alarme désarmée par #1031# #sjour# #jour# #smois# formatTime(#time#)
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"0"}
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][DescriptionEvent]#","value":""}
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"0"}
(stop) Arret du scenario
SINON
Là on attaque les types évènements. Ici les déclenchements d’alarmes incendie. Vous pouvez y ajouter des actions comme allumer les lumières et les faire clignoter, ouvrir tous les volets…
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'FA' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'KA'
ALORS
log - Options : {"enable":"1","background":"0","message":"Alarme incendie: #[Sécurité][Ajax Protection intérieure][Code]# #[Sécurité][Alarme][DescriptionEvent]#"}
(variable) Affectation de la variable : FireAlarm_ZI à 1
SI #[Sécurité][Alarme][Zone Intérieure]# != 2
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"#[Sécurité][Alarme][Zone intérieure]#"}
SINON
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"2"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'FC' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'FH' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'FC' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'KH' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'KJ' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'KR'
ALORS
(variable) Affectation de la variable : FireAlarm_ZI à 0
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"#[Sécurité][Alarme][Zone intérieure_bak]#"}
(stop) Arret du scenario
SINON
La partie pour les alarmes de type monoxyde de carbone :
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'GA'
ALORS
log - Options : {"enable":"1","background":"0","message":"Alarme CO : #[Sécurité][Ajax Protection intérieure][Code]# #[Sécurité][Alarme][DescriptionEvent]#"}
(variable) Affectation de la variable : GasAlarm_ZI à 1
SI #[Sécurité][Alarme][Zone Intérieure]# != 2
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"#[Sécurité][Alarme][Zone intérieure]#"}
SINON
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"2"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'GH' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'GR' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'GJ'
ALORS
(variable) Affectation de la variable : GasAlarm_ZI à 0
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"#[Sécurité][Alarme][Zone intérieure_bak]#"}
(stop) Arret du scenario
SINON
La partie pour les alarmes de type inondation :
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'WA'
ALORS
log - Options : {"enable":"1","background":"0","message":"Alarme inondation : #[Sécurité][Ajax Protection intérieure][Code]# #[Sécurité][Alarme][DescriptionEvent]#"}
(variable) Affectation de la variable : WaterAlarm_ZI à 1
SI #[Sécurité][Alarme][Zone Intérieure]# != 2
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"#[Sécurité][Alarme][Zone intérieure]#"}
SINON
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"2"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'WH' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'WJ' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'WR'
ALORS
(variable) Affectation de la variable : WaterAlarm_ZI à 0
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"#[Sécurité][Alarme][Zone intérieure_bak]#"}
(stop) Arret du scenario
SINON
La partie pour les alarmes de type intrusion :
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'BA' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'JA' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'SM'
ALORS
log - Options : {"enable":"1","background":"0","message":"Alarme intrusion : #[Sécurité][Ajax Protection intérieure][Code]# #[Sécurité][Alarme][DescriptionEvent]#"}
(variable) Affectation de la variable : IntrusionAlarm_ZI à 1
SI #[Sécurité][Alarme][Zone Intérieure]# != 2
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"#[Sécurité][Alarme][Zone intérieure]#"}
SINON
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"2"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'BC' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'BH' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'BJ' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'BR'
ALORS
(variable) Affectation de la variable : IntrusionAlarm_ZI à 0
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"#[Sécurité][Alarme][Zone intérieure_bak]#"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'PA'
ALORS
log - Options : {"enable":"1","background":"0","message":"Panic Button press\u00e9 par #[Sécurité][Alarme][UtilisateurI]# : #[Sécurité][Ajax Protection intérieure][Code]# #[Sécurité][Alarme][DescriptionEvent]#"}
(variable) Affectation de la variable : IntrusionAlarm_ZI à 1
SI #[Sécurité][Alarme][Zone Intérieure]# != 2
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"#[Sécurité][Alarme][Zone intérieure]#"}
SINON
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"2"}
alert - Options : {"enable":"1","background":"0","level":"danger","message":"Bouton Panic d\u00e9clench\u00e9 par #[Sécurité][Alarme][UtilisateurI]#"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'PH'
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"#[Sécurité][Alarme][Zone intérieure_bak]#"}
(stop) Arret du scenario
SINON
La gestion des malfonctions :
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'TA' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'TB' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'QB' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'XL'
ALORS
log - Options : {"enable":"1","background":"0","message":"Dysfonctionnement : #[Sécurité][Ajax Protection intérieure][Code]# #[Sécurité][Alarme][DescriptionEvent]#"}
SI #[Sécurité][Alarme][Zone Intérieure]# != 2
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"#[Sécurité][Alarme][Zone intérieure]#"}
SINON
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"2"}
(stop) Arret du scenario
SINON
SI #[Sécurité][Ajax Protection Intérieure][Code]# == 'TR' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'TU' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'QU' OR #[Sécurité][Ajax Protection Intérieure][Code]# == 'XC'
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"#[Sécurité][Alarme][Zone intérieure_bak]#"}
(stop) Arret du scenario
SINON
Enfin le traitement des codes non gérés :
ACTION
log - Options : {"enable":"1","background":"0","message":"Code non pris en compte : #[Sécurité][Ajax Protection intérieure][Code]# #[Sécurité][Ajax Protection intérieure][Message]# #[Sécurité][Ajax Protection intérieure][Description]#"}
SI #[Sécurité][Alarme][Zone Intérieure]# != 2
ALORS
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure_bak]#","value":"#[Sécurité][Alarme][Zone intérieure]#"}
SINON
event - Options : {"enable":"1","background":"0","cmd":"#[Sécurité][Alarme][Zone intérieure]#","value":"2"}
Voilà j’espère que ce n’est pas trop indigeste, j’ai essayé d’être le plus didactique possible. N’hésitez pas à me faire des retours constructifs pour améliorer les choses.
Pour ceux qui veulent aller plus loin et représenter chacun de leurs appareils AJAX dans Jeedom ainsi que leur l’état associé, la suite est là : Exemple d’intégration d'une alarme AJAX dans Jeedom avec le plugin siapro - pour allez plus loin
Bonne lecture