merci @Salvialf et @Loic
je reviens pas mal de temps après la guerre mais j’ai enfin eu le temps de regarder mieux.
donc en fait, j’avais mal vu, ou il y a eu une évol dans le tas,
sur simple click j’ai ca
[2021-09-20 11:20:58][DEBUG] : {"devices":{"00:15:8d:00:02:7a:fa:36":{"1":{"6":{"0":{"value":"False","cluster_name":"On\/Off"},"event":{"click":{"value":{"click_type":"single"},"cluster_name":"On\/Off"}}}}}}}
[2021-09-20 11:20:58][DEBUG] : Search attribut for 00:15:8d:00:02:7a:fa:36 logicalId : 1::6::0 => False convert to False
[2021-09-20 11:20:58][DEBUG] : Search event command for 00:15:8d:00:02:7a:fa:36 logicalId : 1::6::event::click::click_type => single convert to single
[2021-09-20 11:21:13][DEBUG] : {"devices":{"00:15:8d:00:02:7a:fa:36":{"1":{"6":[{"value":"True","cluster_name":"On\/Off"}]}}}}
[2021-09-20 11:21:13][DEBUG] : Search attribut for 00:15:8d:00:02:7a:fa:36 logicalId : 1::6::0 => True convert to True
[2021-09-20 11:21:13][DEBUG] : {"devices":{"00:15:8d:00:02:7a:fa:36":{"1":{"6":{"event":{"click":{"value":{"click_type":"single"},"cluster_name":"On\/Off"}},"0":{"value":"False","cluster_name":"On\/Off"}}}}}}
[2021-09-20 11:21:13][DEBUG] : Search event command for 00:15:8d:00:02:7a:fa:36 logicalId : 1::6::event::click::click_type => single convert to single
[2021-09-20 11:21:13][DEBUG] : Search attribut for 00:15:8d:00:02:7a:fa:36 logicalId : 1::6::0 => False convert to False
et sur le long_press j’'ai ca:
[2021-09-20 11:19:48][DEBUG] : {"devices":{"00:15:8d:00:02:7a:fa:36":{"1":{"6":[{"value":"True","cluster_name":"On\/Off"}]}}}}
[2021-09-20 11:19:48][DEBUG] : Search attribut for 00:15:8d:00:02:7a:fa:36 logicalId : 1::6::0 => True convert to True
[2021-09-20 11:19:49][DEBUG] : {"devices":{"00:15:8d:00:02:7a:fa:36":{"1":{"6":{"event":{"hold":{"value":[],"cluster_name":"On\/Off"}}}}}}}
[2021-09-20 11:20:01][DEBUG] : {"devices":{"00:15:8d:00:02:7a:fa:36":{"1":{"6":{"event":{"release":{"value":[],"cluster_name":"On\/Off"}},"0":{"value":"False","cluster_name":"On\/Off"}}}}}}
[2021-09-20 11:20:01][DEBUG] : Search attribut for 00:15:8d:00:02:7a:fa:36 logicalId : 1::6::0 => False convert to False
on remarque un event hold et un release, avec rien derrière.
du coup, en faisant une bidouille salle,
du genre :
else if (strcmp($attribut_id, 'event') === 0) {
foreach ($value as $cmd_id => $cmd_value) {
if (is_array($cmd_value['value'])) {
if (empty($cmd_value['value'])) {
log::add('zigbee', 'debug', 'Search event command for empty ' . $ieee . ' logicalId : ' . $endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id);
log::add('zigbee', 'debug', 'Search event command for empty5 ' . $cmd_id);
if(strcmp($cmd_id, 'hold') === 0){
log::add('zigbee', 'debug', 'Search event command for find ');
$zigbee->checkAndUpdateCmd('1::6::event::click::click_type', 'hold');
$zigbee->checkAndUpdateCmd('1::6::event::click::click_type' . '::raw', 'hold');
}
}
j’arrive bien à me lancer l’event hold, exploitable après dans les scenarios.
[2021-09-20 17:51:59][INFO] : Evènement sur la commande [chambre parent][inter2][Etat] valeur : 1
[2021-09-20 17:52:00][INFO] : Evènement sur la commande [chambre parent][inter2][Event] valeur : single
[2021-09-20 17:52:00][INFO] : Evènement sur la commande [chambre parent][inter2][Etat] valeur : 0
[2021-09-20 17:52:00][INFO] : Exécution du scénario [Aucun][chambre parent][chambre parent inter2] déclenché par : [chambre parent][inter2][Event]
[2021-09-20 17:52:04][INFO] : Evènement sur la commande [chambre parent][inter2][Etat] valeur : 1
[2021-09-20 17:52:04][INFO] : Evènement sur la commande [chambre parent][inter2][Event] valeur : single
[2021-09-20 17:52:04][INFO] : Evènement sur la commande [chambre parent][inter2][Etat] valeur : 0
[2021-09-20 17:52:05][INFO] : Exécution du scénario [Aucun][chambre parent][chambre parent inter2] déclenché par : [chambre parent][inter2][Event]
[2021-09-20 18:14:39][INFO] : Evènement sur la commande [chambre parent][inter2][Event] valeur : single
[2021-09-20 18:14:39][INFO] : Exécution du scénario [Aucun][chambre parent][chambre parent inter2] déclenché par : [chambre parent][inter2][Event]
[2021-09-20 18:14:42][INFO] : Evènement sur la commande [chambre parent][inter2][Etat] valeur : 1
[2021-09-20 18:14:43][INFO] : Evènement sur la commande [chambre parent][inter2][Event] valeur : hold
[2021-09-20 18:14:43][INFO] : Exécution du scénario [Aucun][chambre parent][chambre parent inter2] déclenché par : [chambre parent][inter2][Event]
[2021-09-20 18:14:50][INFO] : Evènement sur la commande [chambre parent][inter2][Etat] valeur : 0
je n’ai pas vu, si il était possible d’intercepter cela plus haut dans la chaine, avant encodage json par ex, pour avec quelque chose de plus générique, ou si il y a moyen de faire un override par ex, en fonction du matériel ?
bref, qu’en pensez vous ?
merci