et si vous voulez un petit message pour vous alerte d’un lien DEAD
//**********************************************************
// Parameters
//**********************************************************
$API_Key = 'VOTRE CLE API ZWAVE';
$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);
}
Je vais le programmer toutes les 4 heures
mais ce serait bien qu'il se déclenche quand le zwave envoi une alerte de module DEAD, je sais pas si c'est interceptable
si vous voulez que le lien DEAD sans tester si le lien est actif ou non
Remplacer
if ($isFailed & $isEnable) {
par
if ($isFailed) {