bonjour ,
j’ai ma vm zigbee2mqtt qui freeze depuis que j’ai la dernière version !
je l’utilise via le plugin zigbeelinker et ça fonctionne super bien sauf quand zigbee2mqtt freeze et à ce moment là, j’ai des erreurs dans le log "zigbee2mqtt " du type :
[2024-02-20 15:09:11][ERROR] : [Maison][Volet Cote Voisin] : L'équipement n'a pas répondu à la commande envoyée (zigbee2mqtt/Volet Cote Voisin/set {"position":100})
du coup , je voulais me faire un scénario qui tourne toutes les heures pour contrôler dans le log "zigbee2mqtt " si il trouve un texte définit et qu’il exécute un autre scénario !
j’ai fait ça en code mais ça ne marche pas, il n’a pas l’air de rentrer dans le log
voici mon code (pompé ici en grande partie ) :
$strings = array('a pas répondu à la commande envoyée'); // Chaine de caractère à rechercher pour supprimer la ligne <chaine de caractère>, separer les differentes chaines de caractère par une ,
//$tags = $scenario->getTags(); // Recup des tags passés en paramètre de lancement du scenario
$tagPlugin = 'zigbee2mqtt' ;//$tags['#plugin#'] ; // recup du tag plugin
$msgs = message::byPlugin($tagPlugin) ;
foreach ($msgs as &$msg) { // Pour chaque message remonté pour ce plugin
$scenario->setLog("message remonté pour ce plugin");
foreach ( $strings as $string ) { // pour chaque chaine de caractère à filtrer
if ( stristr( $msg->getMessage() , $string ) ) {
//message::removeAll($tagPlugin, $msg->getLogicalId()); // si une chaine de caractère est trouvée, je supprime le message
$scenario->setLog("chaine de caractère est trouvée");
$scenario = scenario::byId(101);
$scenario->stop();
}
}
}