Besoin d'aide scénario

Bonsoir à tous,

je viens demander vos avis/idées pour un scénario.
Je souhaite me servir des infos renvoyées par le plugin siapro pour m’en servir de déclencheur pour allumer des lumières.

J’ai tenté plusieurs déclencheurs et rencontrent plusieurs soucis, je vais essayer de résumer ^^

La zone 0004 correspond à mon détecteur côté garage
La zone 0003 correspond à mon détecteur côté bureau

#[Alarme][Extérieur_Maison][Message]## matches "/0004^/" ==> fonctionne parfaitement et rapidement mais se déclenche aussi lorsque je passe vers mon détecteur de bureau alors qu’il ne devrait pas.

#[Alarme][Extérieur_Maison][Utilisateur - Zone]#=='0004' ==> fonctionne quand il veut alors que les infos remontent bien dans les logs côté SIA

ci dessous des exemples de trames côté zone garage

[2023-03-26 19:06:28]INFO : jeeSIAPro:: jsonData:'{"message": "\"SIA-DCS\"4803L010100#D88039C6BFD6[Nri0002/UA0004^Exterieur Maison Detecteur Exterieur Avant Garage^][MD88039C6BFD6][V][P]", "account": "D88039C6BFD6", "zone": "Nri0002", "code": "UA", "uuid": "0004"}'

Ci dessous une trame pour la zone côté bureau

[2023-03-26 19:07:52]INFO : jeeSIAPro:: jsonData:'{"message": "\"SIA-DCS\"4804L010100#D88039C6BFD6[Nri0002/UA0003^Exterieur Maison Detecteur Exterieur Avant Bureau^][MD88039C6BFD6][V][P]", "account": "D88039C6BFD6", "zone": "Nri0002", "code": "UA", "uuid": "0003"}'

Avez-vous une idée sur le lancement « hors-zone », voyez-vous une autre idée de déclencheurs ?

Question pour aller plus loin une fois le premier souci réglé, je souhaiterais ajouter une autre zone pour le même scénario, il vaut mieux ajouter un « OU » dans le même déclencheur ou ajouter un deuxième déclencheur ?

Merci d’avance pour vos conseils.
Bonne soirée

Seb

Voir le scenario et so. Log pourrait aider!
Surtt pr comprendre le matches 0004 qui est a priori valide aussi pour le bureau

Car la ss rien voir ca va etre dur dur

1 « J'aime »

Bonjour @anon53349806,

désolé je pensais que le déclencheur suffisait :sweat_smile:, ci dessous le scénario:


ci dessous les logs correspondant lors de ce déclenchement:

2023-03-26 19:07:53][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de : [Alarme][Exterieur_Maison][Message] (SIA-DCS"4804L010100#D88039C6BFD6[Nri0002/UA0003^Exterieur Maison Detecteur Exterieur Avant Bureau^][MD88039C6BFD6][V][P]).
[2023-03-26 19:07:53][SCENARIO] - Exécution du sous-élément de type [action] : action
[2023-03-26 19:07:53][SCENARIO] Exécution de la commande  [Maison][Eclairage_Ext_Maison][On]
[2023-03-26 19:07:53][SCENARIO] Exécution de la commande  [Maison][Eclairage_Ext_Garage][On]
[2023-03-26 19:07:54][SCENARIO] Exécution d'un bloc élément : 63
[2023-03-26 19:07:54][SCENARIO] - Exécution du sous-élément de type [condition] : in 1
[2023-03-26 19:07:54][SCENARIO] Evaluation de la condition : [1] = 1
[2023-03-26 19:07:54][SCENARIO] Tâche :  63  programmée à :  2023-03-26 19:08:54 (+ 1 min)
[2023-03-26 19:07:54][SCENARIO] Fin correcte du scénario

Bonne journée

A priori ton déclencheur Alarme Extérieur_Maison Message qui vient de siapro contient le nom exacte du détecteur…

Start : Scenario execute automatiquement sur evenement venant de : [Alarme][Exterieur_Maison][Message] (SIA-DCS"4804L010100#D88039C6BFD6[Nri0002/UA0003^Exterieur Maison Detecteur Exterieur Avant Bureau^][MD88039C6BFD6][V][P]).

tu peux ajouter un not maches Bureau mais dans ce cas ton déclencheur doit juste sans condition et tu testes dans le scénario lui meme

Le souci c’est que des détecteurs extérieurs j’en ai plein et ils matchent tous alors qu’ils ne devraient pas; donc ça me fait un paquet de « not matches ».

J’avais fait un test en utilisant le déclencheur message et en copiant le message mais je ne sais plus si ça fonctionnait rapidement ou pas, et si ça « matchais trop ou non avec les autres détecteurs » je refais un test et te dis.

Salut,

Le caractère ^ est utilisé pour interpréter des regxp, fort possible que sont utilisation ici pour le chercher dans la chaine de caractère pose problème.

Maintenant je rejoints prfalken, il y a l’info « Garage » dans la chaine et pas dans l’autre du coup pourquoi ne pas utiliser cette info, qui sera plus claire d’ailleurs que « 004 » ?

#[Alarme][Extérieur_Maison][Message]# matches "/Garage/"

J’ai enlevé un # en trop dans l’expression également

Bon

En déclencheur tu ne peux avoir que

#[Alarme][Extérieur_Maison][Message]##

ou

#[Alarme][Extérieur_Maison][Utilisateur - Zone]# c’est bien cela ?

A chaque fois c’est en fait un json avec tout un tas d’infos qu’il y a la dedans ? Bien ça ?

Ou alors créer une fonction dans user.function qui extrait de la chaine l’info souhaitée…

C’est de toi Bison ce qui suit :wink:

Définition d’une fonction getMyData à mettre (depuis l’éditeur de fichier) dans le fichier data/php/user.function.class.php :

Juste sous : class userFunction {

  public static function getMyData($_arg1 = '', $_arg2 = 0) {
    	$_arg1 = cmd::byString($_arg1)->execCmd();
     	$arr = explode(',', $_arg1);
      	return "'".$arr[$_arg2]."'";      
   }

Si tu mets ça dans une commande info/autre : getMyData(#ta_commande_source#,1) tu récupèreras le champs n°2

Ou alors traiter cela dans un bloc code du scénario lol

Ah oui, je reconnais :smile:

Enfin dans ce cas, sauf s’il veut aller chercher précisément une information dans la chaine pour l’exploiter, c’est sortir l’artillerie pour pour grand chose. Le « matches » ira bien juste pour déclencher le scenario et allumer ces bonnes lumières.

En déclencheur, je peux avoir:

#[Alarme][Extérieur_Maison][Code]#
#[Alarme][Extérieur_Maison][Description]#
#[Alarme][Extérieur_Maison][Message]#
#[Alarme][Extérieur_Maison][Type]#
#[Alarme][Extérieur_Maison][Utilisateur-Zone]#

le type n’est pas vraiment utilisable car est « Untyped Zone Alarm »
la description non plus car est « Alarm condition from zone of unknown type » d’après ce que Thanaus m’avait répondu.

Salut Bison,

je vais refaire le test mais j’avais mis le « ^ » car de mémoire, sans ça ne fonctionnait pas du tout.

Mais oui je vais essayer avec l’expression que tu m’as donnée, je te l’accorde ce sera bien plus parlant

#[Alarme][Extérieur_Maison][Message]# matches "/Garage/"

(en espérant que ça ne me pose pas de problème avec la zone [Alarme][Extérieur_Garage][Message] pour laquelle j’ai aussi une zone de détection dans laquelle il y a « garage » mais logiquement ça ne devrait pas la prendre en compte car il ne s’agit pas du même périphérique SIA).

je suis incapable de dire si j’avais fait ce test ou non; si c’est pas le cas je suis un boulet mais j’assume :grin:

Je garde l’info au cas où mais je pense que pour ce sujet c’est « trop » mais en tout cas merci pour l’idée de la fonction qui pourra me servir dans d’autres cas

je prend un peu le train en marche, mais juste pour ton info, le principe de SIA c’est d’examiner à la fois la zone et le code. par exemple les capteurs d’ouverture envoient des infos d’ouverture à chaque mouvement même si l’alarme n’est pas mise. en déclencheur normalement tu n’as besoin que de code. les autres types sont redondants et vont lancer plusieurs fois le même scénario.

dans ton scénario il faut extraire le code zone et avec les 2 infos zone + code tu lances ensuite ce que tu veux (des autres scénarios en passant des tags, des blocs de codes, des si/alors/sinon…

j’utilise sia pro depuis bien 2 ans sans souci de cette manière sur plusieurs zones. pour traiter la zone etc les blocs de code php sont encore ce qu’il y a de mieux avec du REGEXP

Bonjour Neurall,

merci pour le complément, si je ne mets que code (« UA ») ça ne sera pas suffisant selon moi car sur Ksenia ça me mets juste que c’est une alarme sur une zone hors surveillance.

en gros tu me dis de m’appuyer sur un déclencheur du type:
#[Alarme][Extérieur_Maison][Code]# =='UA' et #[Alarme][Extérieur_Maison][Utilisateur-Zone]#=='0004' ?

@Bison je viens de refaire un test avec ce déclencheur:

#[Alarme][Extérieur_Maison][Message]# matches "/Garage/"

et malheureusement sans passer vers le garage ça s’allume :sob:

[2023-03-27 17:44:37][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de : [Alarme][Exterieur_Maison][Message] (SIA-DCS"4858L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]).
[2023-03-27 17:44:37][SCENARIO] - Exécution du sous-élément de type [action] : action
[2023-03-27 17:44:38][SCENARIO] Exécution de la commande  [Maison][Eclairage_Ext_Maison][On]
[2023-03-27 17:44:38][SCENARIO] Exécution de la commande  [Maison][Eclairage_Ext_Garage][On]
[2023-03-27 17:44:38][SCENARIO] Exécution d'un bloc élément : 63
[2023-03-27 17:44:38][SCENARIO] - Exécution du sous-élément de type [condition] : in 1
[2023-03-27 17:44:38][SCENARIO] Evaluation de la condition : [1] = 1
[2023-03-27 17:44:38][SCENARIO] Tâche :  63  programmée à :  2023-03-27 17:45:38 (+ 1 min)
[2023-03-27 17:44:38][SCENARIO] Fin correcte du scénario

je ne vois en quoi le matches peut trouver « garage » :rage:

Est-ce que tu peux laisser dans le déclencheur juste le nom de la commande (donc sans la partie matches).

Commencer par afficher dans le scénario (avec la commande log) ce qu’il y a dans la commande

Faire un SI #[Alarme][Extérieur_Maison][Message]# matches "/Garage/" alors log "Match Garage"

Puis stop pour arrêter l’exécution du scénario afin de ne pas exécuter le reste pour rien.

Je pense que Neurall a donné la solution plus haut…

A priori l’alarme envoit du complet donc il faut tester finement

Désolé mais tu peux m’en dire plus stp ? je ne maitrise pas la commande log :roll_eyes:

merci d’avance pour ta patience

J’ai fait plusieurs tests, si je m’appuie sur la zone et le code je n’ai rien du tout.
Quand tu dis que l’alarme envoie du complet, tu penses à quoi ?
car côté log SIA je n’ai que des trames sans « garage »

[2023-03-27 17:44:37.542]DEBUG : SIATCPHandler::handle IP: 192.168.1.100,raw: bytearray(b'
95E00074"SIA-DCS"4858L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]
')
[2023-03-27 17:44:37.543]DEBUG : SIATCPHandler::process line: 95E00074"SIA-DCS"4858L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]
[2023-03-27 17:44:37.545]DEBUG : SIATCPHandler::process event: CRC:95E0, Digest:95E0, Message:"SIA-DCS"4858L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P], ID Token:SIA-DCS, Sequence:4858, Receiver Number:, Account Prefix:L010100, Account Number:D88039C6BFD6, Content:Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^, Zone:Nri0002, Code:UA, UUID:0001, Timestamp:0
[2023-03-27 17:44:37.546]DEBUG : SIATCPHandler::process response: 3CC3001A"ACK"4858L0#D88039C6BFD6[]
[2023-03-27 17:44:37.546]DEBUG : Send to jeedom :  {'message': '"SIA-DCS"4858L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]', 'account': 'D88039C6BFD6', 'zone': 'Nri0002', 'code': 'UA', 'uuid': '0001'}
[2023-03-27 17:44:37.553]DEBUG : Starting new HTTP connection (1): 127.0.0.1:80
[2023-03-27 17:44:37]INFO : jeeSIAPro:: jsonData:'{"message": "\"SIA-DCS\"4858L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]", "account": "D88039C6BFD6", "zone": "Nri0002", "code": "UA", "uuid": "0001"}'
[2023-03-27 17:44:37.729]DEBUG : http://127.0.0.1:80 "POST /plugins/siapro/core/php/jeeSIAPro.php?apikey=6BbL344Q6InbCv8JYE3MxxxlZi7NrWcuD8X8IiF3V5Dt3D3PDFrUvUC3mK3mAECm HTTP/1.1" 200 0
[2023-03-27 17:44:40.189]DEBUG : SIATCPHandler::handle IP: 192.168.1.100,raw: bytearray(b'
294C0074"SIA-DCS"4859L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]
')
[2023-03-27 17:44:40.190]DEBUG : SIATCPHandler::process line: 294C0074"SIA-DCS"4859L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]
[2023-03-27 17:44:40.195]DEBUG : SIATCPHandler::process event: CRC:294C, Digest:294C, Message:"SIA-DCS"4859L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P], ID Token:SIA-DCS, Sequence:4859, Receiver Number:, Account Prefix:L010100, Account Number:D88039C6BFD6, Content:Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^, Zone:Nri0002, Code:UA, UUID:0001, Timestamp:0
[2023-03-27 17:44:40.197]DEBUG : SIATCPHandler::process response: C092001A"ACK"4859L0#D88039C6BFD6[]
[2023-03-27 17:44:40.198]DEBUG : Send to jeedom :  {'message': '"SIA-DCS"4859L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]', 'account': 'D88039C6BFD6', 'zone': 'Nri0002', 'code': 'UA', 'uuid': '0001'}
[2023-03-27 17:44:40.211]DEBUG : Starting new HTTP connection (1): 127.0.0.1:80
[2023-03-27 17:44:40]INFO : jeeSIAPro:: jsonData:'{"message": "\"SIA-DCS\"4859L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]", "account": "D88039C6BFD6", "zone": "Nri0002", "code": "UA", "uuid": "0001"}'
[2023-03-27 17:44:40.292]DEBUG : http://127.0.0.1:80 "POST /plugins/siapro/core/php/jeeSIAPro.php?apikey=6BbL344Q6InbCv8JYE3MxxxlZi7NrWcuD8X8IiF3V5Dt3D3PDFrUvUC3mK3mAECm HTTP/1.1" 200 0
[2023-03-27 17:44:42.640]DEBUG : SIATCPHandler::handle IP: 192.168.1.100,raw: bytearray(b'
F6480074"SIA-DCS"4860L010100#D88039C6BFD6[Nri0002/UA0001^Exterieur Maison Detecteur Exterieur Terrase^][MD88039C6BFD6][V][P]
')