Bon la je peut rien pour toi faudrait aller décortique le plugin que je n’ai pas désolé.
A tu essayer dans tes commandes il y a pas un refresh qui pourrait faire l’affaire ?
Je ne voudrais pas avoir l’air d’insister mais @Nemeraud a écrit un bloc code a insérer dans un scénario qui fait exactement ça.
Comme la lecture du post pose apparemment problème, en voici une copie. La première partie détecte les noeuds morts, la deuxième relance le daemon z-wave si le buffer est plein.
.
.
//**********************************************************
// Parameters
//**********************************************************
$API_Key = votre clé API;
$Ping_Wait = 15;
$message = 'Module(s) DEAD : ';
$tagerror = 0;
//**********************************************************
// Liste des modules DEAD et ACTIF
//**********************************************************
$scenario->setLog('**********************************************************');
$scenario->setLog('***** Liste des modules DEAD et ACTIF *****');
$scenario->setLog('**********************************************************');
// $scenario->setLog('Module :'.$id);
$url_health = 'http://localhost:8083/network?apikey=' .$API_Key .'&type=info&info=getHealth';
$content = file_get_contents($url_health);
$results = json_decode($content, true);
$success = $results["state"];
if ($success == 'ok') {
$scenario->setLog('***** ACCES OK');
$devices = $results["result"]["devices"];
$node_errors = array();
foreach ($devices as $node_id => $node_values) {
$isFailed = $node_values["data"]["isFailed"]["value"];
$isEnable = $node_values["data"]["is_enable"]["value"];
//$scenario->setLog('DEBUG : Failed : '.$isFailed .' Enable : '.$isEnable);
if ($isFailed & $isEnable) {
$node_name = $node_values["data"]["description"]["name"];
if (count($node_errors) == 0) {
$scenario->setLog('Module :'.$node_id .' '.$node_name.' est en erreur');
$message = $message.$node_id .' '.$node_name.' ';
$ToPing_List[] = $node_id;
$tagerror = 1;
} else {
$scenario->setLog('Module :'.$node_id .' '.$node_name.' est en OK');
}
}
}
} else {
$scenario->setLog('ERREUR API :'.$results["result"]);
}
//**********************************************************
//**********************************************************
// ALERTE
//**********************************************************
if ( $tagerror == 1 ) {
$scenario->setLog('***** ENVOI ALERTE');
$cmd=cmd::byString('#[Communication][Centre communication][Envoi Alerte Antoine]#');
$cmd->execCmd($options=array('title'=>'ALERTE ZWAVE', 'message'=> "$message"), $cache=0);
}
//**********************************************************
// Ping a list of elements
//**********************************************************
$scenario->setLog('**********************************************************');
$scenario->setLog('***** Ping *****');
$scenario->setLog('**********************************************************');
foreach($ToPing_List as $id){
$scenario->setLog('Ping Module :'.$id);
$url_ping = 'http://localhost:8083/node?apikey=' .$API_Key .'&node_id=' .$id .'&type=action&action=testNode';
file_get_contents($url_ping);
sleep($Ping_Wait);
}
$pathlog=log::getPathToLog('openzwaved');
if (file_exists($pathlog) && shell_exec('grep "Not enough space in stream buffer" ' . $pathlog . ' | wc -l') > 0)
{
$scenario->setLog('Not enough space in stream buffer detected');
log::add('openzwave', 'error', 'Not enough space in stream buffer detected');
log::clear('openzwaved');
shell_exec('sudo pkill -f openzwaved.py');
openzwave::deamon_stop();
sleep(5);
openzwave::deamon_start();
}
Si tu veux mais pourquoi passer par IFTTT?
Si tu utilises un scénario, tu as intérêt à faire directement ton ping.
Si tu as ta solution pense à clôturer ton sujet en cochant la case solution là où elle se trouve.
Bonne journée
Pas si patient que ça.
Si le sujet avait continué sans que ma proposition ne retienne l’attention, je n’aurais pas insisté davantage.
Je n’ai pas vocation à taper l’incruste pour rien.