Bonjour Ă tous,
voici comment jâai Ă©laborĂ© mon Liveview permettant de vĂ©rifier le fonctionnement du rĂ©seau local dâun seul coup dâoeil.
liveview non terminé
LâIPX800 propose un Ping Watchdog permettant de remonter les problĂšmes de joignabilitĂ© de certains dispositifs. Cet outil est souvent utilisĂ© pour redĂ©marrer les box internet, les switches, âŠ
Jâai souhaitĂ© aller plus loin. Je voulais obtenir des statistiques sur lâoccupation des serveurs comme Jeedom, Synology, Freebox, Diffuseur de messages vocaux (esp32), âŠ
Jâai donc optĂ© pour lâusage de plugins sur Jeedom avec remontĂ©e des donnĂ©es sur lâipx via les scĂ©narios de Jeedom.
Plugins Jeedom utilisés
MONITORING
MONITORING permet dâinterroger des serveurs accessibles en SSH (Synology, Jeedom).
LâaccĂšs SSH au matĂ©riel doit ĂȘtre prĂ©alablement créé dans la dĂ©pendance « SSH MANAGER ». Vous devez y crĂ©er un Ă©quipement pour chaque matĂ©riel Ă monitorer.
Exemple avec le monitoring dâun NAS Synology
Configurez lâaccĂšs SSH avec le login, le port SSH (22 par dĂ©faut) et la planification (CRON).
Personnellement jâai choisi une rĂ©actualisation toutes les 5 minutes.
Exemple avec le Synology :
Vous pouvez maintenant configurer le plugin MONITORING en crĂ©ant un Ă©quipement. Dans la liste « HĂŽte SSH » vous sĂ©lectionnerez lâĂ©lĂ©ment SSH Manager créé prĂ©cĂ©demment.
Exemple avec le Synology :
Si vous activez les équipement et si vous le rattachez à un dashboard de jeedom, vous devriez voir remonter les données.
Exemple avec le monitoring de Jeedom
Pour le monitoring de Jeedom, il suffit de configurer un équipement en Local comme ceci:
NETWORK
Le plugin NETWORK fonctionne comme le ping Watchdog de lâIPX. Il permet cependant de rĂ©cupĂ©rer en plus la valeur de latence.
Créez un équipement par matériel à pinguer
Exemple avec un systĂšme dâalarme :
APC Onduleur
Le plugin APC permet de monitorer les onduleurs de la marque.
Lors de lâactivation du plugin, un Ă©quipement local est créé automatiquement.
Mon onduleur (BR1500G-FR) est connectĂ© au RPI via un cĂąble USB spĂ©cifique fourni avec lâUPS.
Si vous nâen disposez pas, vous pouvez en acheter par ailleurs.
La rĂ©fĂ©rence du cĂąble AP9827. Il est muni dâun RJ50 Ă une extrĂ©mitĂ© et USB A Ă lâautre.
Pour un onduleur connectĂ© en USB, lâĂ©quipement doit ĂȘtre configurĂ© comme ceci :
Plugin Freebox
Lorsque vous appairez le plugin avec votre Freebox, le systÚme crée automatiquement les équipements selon le modÚle de la box.
Scénarios Jeedom pour la remontée des informations
Pour chaque donnĂ©e Ă remonter sur IPX, vous devez crĂ©er un scĂ©nario (pour plus dâinformation, voir mon post ici :
Exemple de scénario pour remonter une information numérique
$cmd = cmd::byString('#[IPX800 V5][SYNO 718+][Latence]#');
$ipx800='192.168.0.50'; //adresse IP et port si non 80
$apikey='wlAbCXXXXm2UH5w'; //apikey v5
$ana=262264; //id de l'analogique sur ipx
$value = $cmd->execCmd();
$url = 'http://' .$ipx800 . '/api/core/ana/' . $ana . '?ApiKey=' . $apikey;
$data = json_encode(array('_id' => $ana, 'value' => $value));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data)
));
$response = curl_exec($ch);
curl_close($ch);
$scenario->setLog('RequĂȘte PUT envoyĂ©e Ă l\'IPX800 : ' . $ipx800);
$scenario->setLog('Id de l\'analogique sur l\'IPX800 : ' . $ana);
$scenario->setLog('Nouvelle valeur envoyée:' . $value);
$scenario->setLog('Réponse de l\'IPX800 :' . $response);
Exemple de scénario pour remonter une information textuelle
Par exemple, le statut de lâonduleur est ONLINE, COMMLOST, âŠ
La remontĂ©e de valeurs de type String nĂ©cessite une adaptation du script afin dâadapter lâURI.
LâURI de lâAPI V5 est /api/core/str/
Voici le script correspondant :
$cmd = cmd::byString('#[IPX800 V5][apc][Statut]#');
$ipx800='192.168.0.50'; //adresse IP et port si non 80
$apikey='wlAbCXXXXm2UH5w'; //apikey v5
$str=524372; //id de la str sur ipx
$value = $cmd->execCmd();
$url = 'http://' .$ipx800 . '/api/core/str/' . $str . '?ApiKey=' . $apikey;
$data = json_encode(array('_id' => $str, 'value' => $value));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data)
));
$response = curl_exec($ch);
curl_close($ch);
$scenario->setLog('RequĂȘte PUT envoyĂ©e Ă l\'IPX800 : ' . $ipx800);
$scenario->setLog('Id de la Str sur l\'IPX800 : ' . $str);
$scenario->setLog('Nouvelle valeur envoyée:' . $value);
$scenario->setLog('Réponse de l\'IPX800 :' . $response);
Le Liveview
Vous devriez voir remonter toutes les informations sur votre ipx800.
La crĂ©ation des widgets sur le liveview ne devrait pas ĂȘtre problĂ©matique pour vous.
les informations numériques ou booléennes
Les donnĂ©es de type IO et Analogiques sâactualisent automatiquement sur le Liveview.
les informations textuelles
Les variables Str ne sâactualisent pas automatiquement sur le Liveview.
Jâai donc utilisĂ© un script HTML pour actualiser la donnĂ©e Ă intervalle de temps rĂ©gulier.
Voici le contenu du widget pour lâinformation textuelle « Statut de lâonduleur ».
<center><span id="statutAPC" style="font-size:1.5em;font-weight:bold">...</span></center>
<script type="text/javascript">
var server="",//vide pour local, sinon format http://ip
api="wlAbCXXXXm2UH5w", //renseigner clé API
uriStr="/api/core/str/",
id="524372"; // STATUT APC JEEDOM
var mStr="",flag,color;
function init2(){
/* recup string*/
getIPX((ipx) => {mStr = ipx.value;});
//couleur si perte de communication
color = mStr == "COMMLOST" ? '#f00' : '#0f0';
flag=mStr=="COMMLOST" ? "â ïž" : ""
document.getElementById("statutAPC").style.color=color;
document.getElementById("statutAPC").innerHTML=flag + mStr;
}
/* Get data from API */
function getIPX(cb) {
fetch(uriStr+id+"?ApiKey="+api, {method: "GET"}).then((ret) => { // Get IPX object
ret.json().then((ipx) => {
cb(ipx); // Return IPX state from API
});
});
}
function autoRefresh() {
setInterval(() => {
init2();
}, 1000); // 1 sec
}
setTimeout(() => {
init2();
}, 1000)
autoRefresh();
</script>
Image de fond
Voici mon image de fond réalisée sous Excel.
Widgets HTML
Jâutilise quelques widgets HTML supplĂ©mentaires
Les panneaux de couleur semi-transparents :
Vous pouvez dupliquer ce widget autant de fois que nécessaire. Vous pouvez modifier la couleur, #33b2ff dans mon exemple.
<div style="width:90%; height:90%; background:#33b2ff; border-radius:10px;border: 4px solid #fff;opacity:0.65; position:relative;">
</div>
Les panneaux GCE
<div style="width:92%; height:92%; background:#d9d9d9; border-radius:10px;border: 4px solid #fff;opacity:0.95; position:relative;">
<div style="width:6px; height:90%; background:#1FB55E; position:absolute; left:5px;top:5px"></div>
</div>
Mon Liveview.
Voici lâexport de mon liveview
Monitoring.zip (5,3 Ko)
Vous avez maintenant les bases pour créer un monitoring du réseau sur votre IPX.
Il me reste Ă monitorer mon switch Cisco. Pour le moment je me bats avec SNMP.
Bonne journée