🌐 Liveview sur IPX pour monitoring rĂ©seau avec Jeedom

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

image

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

image

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

image

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

image

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 :
image
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
image

<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

5 « J'aime »

TrÚs intéressant !

Merci