Bonjour,
je test en ce moment cet appareil.
il émet une trame compatible DIO v1, quand on appuis sur la sonnette, et surtout, si l’on décide d’actionner 4 fonctions (Portail, Porte, Lampe On et Lampe Off).
j’ai bien créer mes 5 sensors avec les bons IDs, les informations remonte bien, sauf l’état « sta ».
je me suis loupé quelque part ?
voici une trame exemple : 2021-07-28 17:41:59 : Received radio ID (<rf>433Mhz </rf> Noise=<noise>2072</noise> Level=<lev>5.0</lev>/5 <dev>Chacon</dev> <sta>ON</sta> Batt=<bat>Ok</bat>): <id>CSxxxxxxxxxx</id>
d’ avance merci pour toute aide apportée ^^
@ZygOm4t1k j’espère que ce plugin est maintenu, car pour moi la Zibase est toujours aussi fiable
personne dans les parages ?
j’essaye de comprendre la méthode d’analyse des trames de la zibase.
il y a 3 blocs :
if( preg_match_all('#Received radio ID \(.*<rf>(.*?)</rf>.*CMD\/INTER</dev>.*<id>(.*?)(_OFF)?</id>.*#',$zbData->message,$results,PREG_SET_ORDER)) {
echo 'receive type 1 :' . PHP_EOL;
print_r($results);
$data = getData($zbData->message);
$etat = (isset($results[0][3])) ? '0' : '1';
$data['id'] = $results[0][2];
$data['etat'] = $etat;
jeebase::setStateToJeedom($data);
}elseif( preg_match_all('#Received radio ID.*#',$zbData->message,$results,PREG_SET_ORDER)) {
echo 'receive type 2 :' . PHP_EOL;
print_r($results);
$data = getData($zbData->message);
$exp = explode(": ", $zbData->message);
print_r($exp);
if(preg_match_all( '#<id>(.*?)(_OFF|_ON)?</id>#', $exp[1] ,$id )) {
print_r($id);
$data['id'] = $id[1][0];
};
jeebase::setInfoToJeedom($data);
}elseif(preg_match_all('#Sent radio ID \(.*Protocols=\'(.*?)\'.*: (([^_]+)(_OFF|_ON)?)#',$zbData->message,$results,PREG_SET_ORDER)) {
echo 'Send :' . PHP_EOL;
print_r($results);
$data = getData($zbData->message);
$data['id'] = $results[0][3];
$etat = ($results[0][4] == '_OFF' ) ? '0' : '1';
$data['etat'] = $etat;
jeebase::setStateToJeedom($data);
}
pendant mon analyse, je n’ai jamais vu passer par le « receive type 1 », cela est-il logique ou prévoit-il une analyse spécifique ?
je continue l’analyse…
on du coup la balise STA est bien prise en compte dans l’analyse de la variable (getData()) :
2021-08-30 13:27:20 : ZiBASE005564(192.168.0.190) => Received radio ID (433Mhz Noise=2030 Level=1.9/5 Chacon ON Batt=Ok): CS3176464656
Array
(
[lev] => 1.9
[noise] => 2030
[bat] => Ok
[sta] => ON
[dev] => Chacon
[rf] => 433Mhz
[id] => CS3176464656
)
reste à comprendre pourquoi STA ne permet pas l’actualisation de l’état d’un actionneur.