Pbs equipement zigbee dont les données ne remontent pas mais qui communiquent quand meme

Bonjour à tous,

J’ai un pb regulier sur des equipemments zigbee (vannes et capteurs de temperature SONOFF) qui communiquent bien (lqi et batterie se mettent à jour), mais les status ne remontent plus (temperature, pression, humidité).
Le pb semble connu coté SONOFF, necessite un reset puis reappairage.
Le pb est que Jeedom ne me remonte pas de pbs de communication (normal, l’équipement communique !).
Comment gérez-vous le fait qu’une commande (et pas l’equipement) ne se soit pas mise à jour pendant plus de 24h par exemple pour lever une alerte ?

image

Merci de vos retours

Norbert

Salut Norbert,

image

valueDate(#[Capteurs ouvrants][Capteur fenetre Loic][Ouverture]#)
Pour date de valeur
lastCommunication(#[Capteurs ouvrants][Capteur fenetre Loic]#)
Pour date de collecte

Pas d’autres solutions qu’un scénario ?

C’est un virtuel

Le pb ne serait-il pas simplement une batterie trop faible ?

Le sujet n’est pas vraiment la cause, mais d’etre alerté … en l’occurence, l’équipement communique, la batterie est OK (42,5%), mais la température ne remonte pas → la valeur date de + de 10jours et aucune alerte sur ce disfoncitonnement

0 ceux que ca interesse, j’ai fait un bloc code pour etre alerté de ce genre de disfoncitonnement.

$plugins = explode(',','zigbee2mqtt,jMQTT') ;
$cmds = explode(',','Etat,Ouverture,Température,Température équipement') ;
$delayNoNewValue = 48 ;  // Delai en heure avant Alerte

$timestampAlerte = time() - ($delayNoNewValue * 60 * 60);

foreach ($plugins as $plugin) { // Pour chaque plugin
  $scenario->setLog('| Plugin : '.$plugin);
  foreach (eqLogic::byType($plugin, true) as $eqLogic) {
    $eqLogicId = $eqLogic->getId() ;
    foreach ( $cmds as $cmd ) {
      if ( !empty(cmd::byEqLogicIdCmdName($eqLogicId,$cmd)) ) {
        $cmdHumanName = cmd::byEqLogicIdCmdName($eqLogicId,$cmd)->getHumanName() ;
        $valueDate = cmd::byEqLogicIdCmdName($eqLogicId,$cmd)->getValueDate();
        $valueDateTimesStamp = strtotime($valueDate) ;
        if ($valueDateTimesStamp <= $timestampAlerte ) {
          $scenario->setLog('|    '.$cmdHumanName.' : '.$valueDate ) ;
          message::add('Alerte commande','Commande '.$cmdHumanName.' - dernière valeur datant de plus de '.$delayNoNewValue.'h ('.$valueDate.')') ;
        }
      }
    }
  }
}

En paramètres les plugins à vérifier et les commandes à tester + le dela ide « non mise à jour ».
Ensuite, ca génère un message dans le centre de message en cas de non mise à jour de la commande depuis XXh

Norbert

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.