Bonjour @Loic,
Sur certain module ziaomi aqara (certainement sur d’autre marque aussi) il y des remontées de détail dans les events.
Par exemple sur un module de vibration aqara , j’ai la remontée suivante:
{"devices":{"00:15:8d:00:03:1c:e0:75":{"1":{"257":{"1288":{"value":"278197919023158","cluster_name":"MultistateInputCluster"}},"1280":{"event":{"current_orientation":{"value":[{"rawValueX":54,"rawValueY":36,"rawValueZ":64773,"X":0,"Y":0,"Z":90}],"cluster_name":"IAS Zone"}}}}}}}
Hors dans la version actuel du plugin, pour le cluster 1280 il va évaluer
[{« rawValueX »:54,« rawValueY »:36,« rawValueZ »:64773,« X »:0,« Y »:0,« Z »:90}]
comme =1
Je souhaiterais donc modifier en remplacant dans le jeeZigbee.php à la ligne 196
if ($sub_cmd_value === '[]') {
$sub_cmd_value = 1;
}
log::add('zigbee', 'debug', 'Search event command for ' . $ieee . ' logicalId : ' . $endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id . '::' . $sub_cmd_id . ' => ' . $sub_cmd_value . ' convert to ' . convertValue($sub_cmd_value));
$zigbee->createCheckAndUpdateCmd($endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id . '::' . $sub_cmd_id, convertValue($sub_cmd_value));
$zigbee->createCheckAndUpdateCmd($endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id . '::' . $sub_cmd_id . '::raw', $sub_cmd_value);
}
par
if (is_array($sub_cmd_value)) {
foreach ($sub_cmd_value as $sub_detail_id => $sub_detail_value) {
log::add('zigbee', 'debug', 'Search event detail command for ' . $ieee . ' logicalId : ' . $endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id . '::' . $sub_cmd_id . '::' . $sub_detail_id .' => ' . $sub_detail_value . ' convert to ' . convertValue($sub_detail_value));
$zigbee->createCheckAndUpdateCmd($endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id . '::' . $sub_cmd_id . '::' . $sub_detail_id, convertValue($sub_detail_value));
$zigbee->createCheckAndUpdateCmd($endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id . '::' . $sub_cmd_id . '::' . $sub_detail_id . '::raw', $sub_detail_value);
}
}
else
{
log::add('zigbee', 'debug', 'Search event command for ' . $ieee . ' logicalId : ' . $endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id . '::' . $sub_cmd_id . ' => ' . $sub_cmd_value . ' convert to ' . convertValue($sub_cmd_value));
$zigbee->createCheckAndUpdateCmd($endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id . '::' . $sub_cmd_id, convertValue($sub_cmd_value));
$zigbee->createCheckAndUpdateCmd($endpoint_id . '::' . $cluster_id . '::' . $attribut_id . '::' . $cmd_id . '::' . $sub_cmd_id . '::raw', $sub_cmd_value);
}