Comments (9)
Je ne comprend pas trop
Les devices sont deja automatiquement importer par la requet getDevice?
Pour moi la requet
$result=self::Request('/api/v0/devices/'.$this->getName().'/health');
Vas retourner une liste de graph qui peut etre interresant d'ajouté a la page de santé?
from jeedom-librenms.
oui, apres avoir fait cela, on aura la liste des graphs qui contiennent des infos intéressantes.
en fonction des graphs, on complete:
http://192.168.3.195/api/v0/devices/ups.poluket.ovh/health/device_runtime
puis on a des sensor_id, et meme principe, on complete:
http://192.168.3.195/api/v0/devices/ups.poluket.ovh/health/device_runtime/22
et la on a l'info interessante:
{
"status": "ok",
"graphs": [
{
"sensor_id": 22,
"sensor_deleted": 0,
"sensor_class": "runtime",
"device_id": 4,
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.318.1.1.1.2.2.3.0",
"sensor_index": "upsAdvBatteryRunTimeRemaining.0",
"sensor_type": "apc",
"sensor_descr": "Runtime",
"sensor_divisor": 6000,
"sensor_multiplier": 1,
"sensor_current": 187.83333333333,
"sensor_limit": 3000,
"sensor_limit_warn": 2000,
"sensor_limit_low": 5,
"sensor_limit_low_warn": 10,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": null,
"entPhysicalIndex_measured": null,
"lastupdate": "2018-09-18 22:10:08",
"sensor_prev": 189.3,
"user_func": null
}
],
"count": 1
}
j'ai pas trouvé d'autre solution pour lister ces infos
from jeedom-librenms.
Pour la création des commandes et des informations remonté par le plugin je pense qu'il est plus simple de les cree comme je l'ai fait pour le Systeme et ARP
Sinon j'ai modifier le code pour qu'il remonte correctement les informations.
Il faut juste ajouter le bouton "deviceHealth" sur la page de configuration de chaque équipement
from jeedom-librenms.
super, cela donne pas mal:
[2018-09-26 10:15:09][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups3000.poluket.ovh/health
[2018-09-26 10:15:09][DEBUG] : { "status": "ok", "graphs": [ { "desc": "Charge", "name": "device_charge" }, { "desc": "Current", "name": "device_current" }, { "desc": "Frequency", "name": "device_frequency" }, { "desc": "Load", "name": "device_load" }, { "desc": "Runtime", "name": "device_runtime" }, { "desc": "State", "name": "device_state" }, { "desc": "Temperature", "name": "device_temperature" }, { "desc": "Voltage", "name": "device_voltage" } ], "count": 8 }
[2018-09-26 10:15:09][DEBUG] : commande: device_chargeest trouvée
[2018-09-26 10:15:09][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups3000.poluket.ovh/health/device_charge
[2018-09-26 10:15:10][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 18, "desc": "Battery Charge" } ], "count": 1 }
[2018-09-26 10:15:10][DEBUG] : commande: device_currentest trouvée
[2018-09-26 10:15:10][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups3000.poluket.ovh/health/device_current
[2018-09-26 10:15:10][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 17, "desc": "Phase 0 Output" } ], "count": 1 }
[2018-09-26 10:15:10][DEBUG] : commande: device_frequencyest trouvée
[2018-09-26 10:15:10][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups3000.poluket.ovh/health/device_frequency
[2018-09-26 10:15:10][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 19, "desc": "Input" }, { "sensor_id": 20, "desc": "Output" } ], "count": 2 }
[2018-09-26 10:15:10][DEBUG] : commande: device_loadest trouvée
[2018-09-26 10:15:10][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups3000.poluket.ovh/health/device_load
[2018-09-26 10:15:10][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 21, "desc": "Load" } ], "count": 1 }
[2018-09-26 10:15:10][DEBUG] : commande: device_runtimeest trouvée
[2018-09-26 10:15:10][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups3000.poluket.ovh/health/device_runtime
[2018-09-26 10:15:11][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 22, "desc": "Runtime" } ], "count": 1 }
[2018-09-26 10:15:11][DEBUG] : commande: device_stateest trouvée
[2018-09-26 10:15:11][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups3000.poluket.ovh/health/device_state
[2018-09-26 10:15:11][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 23, "desc": "UPS Battery Replacement Status" }, { "sensor_id": 24, "desc": "Output Status" } ], "count": 2 }
[2018-09-26 10:15:11][DEBUG] : commande: device_temperatureest trouvée
[2018-09-26 10:15:11][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups3000.poluket.ovh/health/device_temperature
[2018-09-26 10:15:11][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 25, "desc": "Internal Temperature" } ], "count": 1 }
[2018-09-26 10:15:11][DEBUG] : commande: device_voltageest trouvée
[2018-09-26 10:15:11][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups3000.poluket.ovh/health/device_voltage
[2018-09-26 10:15:11][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 26, "desc": "Battery Bus" },
from jeedom-librenms.
pour des tests, j'ai modifié le code:
public function getDeviceHealth() {
$Graph=array();
$result=self::Request('/api/v0/devices/'.$this->getName().'/health');
foreach($result['graphs'] as $graphs){
log::add('libreNMS','debug','commande: '.$graphs['name'].' est trouvée');
$result2=self::Request('/api/v0/devices/'.$this->getName().'/health/'.$graphs["name"]);
foreach($result2['graphs'] as $graphs2){
log::add('libreNMS','debug','commande2: '.$graphs2['sensor_id'].' est trouvée');
$result3=self::Request('/api/v0/devices/'.$this->getName().'/health/'.$graphs["name"].'/'.$graphs2['sensor_id']);
foreach($result3['graphs'] as $graphs3){
log::add('libreNMS','debug','commande3: '.$graphs3['sensor_class'].' - '.$graphs3['sensor_descr'].' => '.$graphs3['sensor_current']);
}
}
}
return $Graph;
et quand je regarde ce qui sort, c'est pas trop mal:
[2018-09-26 13:38:48][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups2200.poluket.ovh/health
[2018-09-26 13:38:48][DEBUG] : { "status": "ok", "graphs": [ { "desc": "Charge", "name": "device_charge" }, { "desc": "Current", "name": "device_current" }, { "desc": "Frequency", "name": "device_frequency" }, { "desc": "Load", "name": "device_load" }, { "desc": "Runtime", "name": "device_runtime" }, { "desc": "State", "name": "device_state" }, { "desc": "Temperature", "name": "device_temperature" }, { "desc": "Voltage", "name": "device_voltage" } ], "count": 8 }
[2018-09-26 13:38:48][DEBUG] : commande: device_charge est trouvée
[2018-09-26 13:38:48][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups2200.poluket.ovh/health/device_charge
[2018-09-26 13:38:48][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 61, "desc": "Battery Charge" } ], "count": 1 }
[2018-09-26 13:38:48][DEBUG] : commande2: 61 est trouvée
[2018-09-26 13:38:48][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups2200.poluket.ovh/health/device_charge/61
[2018-09-26 13:38:48][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 61, "sensor_deleted": 0, "sensor_class": "charge", "device_id": 17, "poller_type": "snmp", "sensor_oid": ".1.3.6.1.4.1.318.1.1.1.2.3.1.0", "sensor_index": "0", "sensor_type": "apc", "sensor_descr": "Battery Charge", "sensor_divisor": 10, "sensor_multiplier": 1, "sensor_current": 100, "sensor_limit": 100, "sensor_limit_warn": null, "sensor_limit_low": 0, "sensor_limit_low_warn": 10, "sensor_alert": 1, "sensor_custom": "No", "entPhysicalIndex": null, "entPhysicalIndex_measured": null, "lastupdate": "2018-09-21 12:40:24", "sensor_prev": null, "user_func": null } ], "count": 1 }
[2018-09-26 13:38:48][DEBUG] : commande3: charge - Battery Charge => 100
[2018-09-26 13:38:48][DEBUG] : commande: device_current est trouvée
[2018-09-26 13:38:48][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups2200.poluket.ovh/health/device_current
[2018-09-26 13:38:48][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 60, "desc": "Phase 0 Output" } ], "count": 1 }
[2018-09-26 13:38:48][DEBUG] : commande2: 60 est trouvée
[2018-09-26 13:38:48][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups2200.poluket.ovh/health/device_current/60
[2018-09-26 13:38:48][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 60, "sensor_deleted": 0, "sensor_class": "current", "device_id": 17, "poller_type": "snmp", "sensor_oid": ".1.3.6.1.4.1.318.1.1.1.4.3.4.0", "sensor_index": "0", "sensor_type": "apcUPS", "sensor_descr": "Phase 0 Output", "sensor_divisor": 10, "sensor_multiplier": 1, "sensor_current": 0.4, "sensor_limit": 0.6, "sensor_limit_warn": null, "sensor_limit_low": null, "sensor_limit_low_warn": null, "sensor_alert": 1, "sensor_custom": "No", "entPhysicalIndex": null, "entPhysicalIndex_measured": null, "lastupdate": "2018-09-21 12:40:24", "sensor_prev": null, "user_func": null } ], "count": 1 }
[2018-09-26 13:38:48][DEBUG] : commande3: current - Phase 0 Output => 0.4
[2018-09-26 13:38:48][DEBUG] : commande: device_frequency est trouvée
[2018-09-26 13:38:48][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups2200.poluket.ovh/health/device_frequency
[2018-09-26 13:38:48][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 62, "desc": "Input" }, { "sensor_id": 63, "desc": "Output" } ], "count": 2 }
[2018-09-26 13:38:48][DEBUG] : commande2: 62 est trouvée
[2018-09-26 13:38:48][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups2200.poluket.ovh/health/device_frequency/62
[2018-09-26 13:38:48][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 62, "sensor_deleted": 0, "sensor_class": "frequency", "device_id": 17, "poller_type": "snmp", "sensor_oid": ".1.3.6.1.4.1.318.1.1.1.3.2.4.0", "sensor_index": "3.2.4.0", "sensor_type": "apc", "sensor_descr": "Input", "sensor_divisor": 1, "sensor_multiplier": 1, "sensor_current": 50, "sensor_limit": 52.5, "sensor_limit_warn": null, "sensor_limit_low": 47.5, "sensor_limit_low_warn": null, "sensor_alert": 1, "sensor_custom": "No", "entPhysicalIndex": null, "entPhysicalIndex_measured": null, "lastupdate": "2018-09-21 12:40:25", "sensor_prev": null, "user_func": null } ], "count": 1 }
[2018-09-26 13:38:48][DEBUG] : commande3: frequency - Input => 50
[2018-09-26 13:38:48][DEBUG] : commande2: 63 est trouvée
[2018-09-26 13:38:48][DEBUG] : http://librenms.poluket.ovh/api/v0/devices/ups2200.poluket.ovh/health/device_frequency/63
[2018-09-26 13:38:48][DEBUG] : { "status": "ok", "graphs": [ { "sensor_id": 63, "sensor_deleted": 0, "sensor_class": "frequency", "device_id": 17, "poller_type": "snmp", "sensor_oid": ".1.3.6.1.4.1.318.1.1.1.4.2.2.0", "sensor_index": "4.2.2.0", "sensor_type": "apc", "sensor_descr": "Output", "sensor_divisor": 1, "sensor_multiplier": 1, "sensor_current": 50, "sensor_limit": 52.5, "sensor_limit_warn": null, "sensor_limit_low": 47.5, "sensor_limit_low_warn": null, "sensor_alert": 1, "sensor_custom": "No", "entPhysicalIndex": null, "entPhysicalIndex_measured": null, "lastupdate": "2018-09-21 12:40:25", "sensor_prev": null, "user_func": null } ], "count": 1 }
[2018-09-26 13:38:48][DEBUG] : commande3: frequency - Output => 50
Pour moi, il faudrait faire une liste avec les "commande3" et permetre la creation de commande automatique
Pour moi, dans la commande, il faut fournir
- uri (/health/device_frequency/62) pour ne mettre a jour que cette commande via un refresh
- sensor_class (frequency)
- sensor_descr (Input)
- sensor_oid (permettra éventuellement de faire une connexion snmp direct sur le device)
- sensor_current (50)
- sensor_divisor (1)
- sensor_multiplier (1)
from jeedom-librenms.
J'ai pas bien compris mais pour ajouté automatiquement les commande tu met apres chaque retour cette instruction mise a jours
$this->AddCommande('#Nom#','#id#',"info", 'string','#Unité#','#Categorie#');
#Nom#': doit etre unique
#id# :permet de retourvé l'information facillement
#Unité# : Vide si auune
#Catégorie# : J'ai ajouté cette conf pour pouvoir faire un template si besoin
from jeedom-librenms.
ok, ce que je propose:
#Nom#': sensor_class - sensor_descr
#id# : sensor_class - sensor_descr
#Unité# : -
#Catégorie# : a definir
#Valeur# : sensor_current*sensor_multiplier/sensor_divisor
from jeedom-librenms.
juste une remarque en plus. c'est possible de laissé le choix entre string ou numeric? il y aura surement des calculs a faire, je crois qu'en string c'est pas possible.
from jeedom-librenms.
Oui tu peux modifier le sous type dans cette ligne sans soucis.
Je ne l'ai pas précisé car j'ai vue pour la plus part que des string
from jeedom-librenms.
Related Issues (17)
- problème d'affichage dans le menu config HOT 1
- Intégration des commande Syteme HOT 7
- Intégration des commande ARP HOT 5
- 401 - Accès non autorisé HOT 10
- Import des devices HOT 7
- problème dans le cron HOT 2
- Intégration des commande Services HOT 5
- une erreur sql suite a la mise a jour HOT 3
- Intégration des commande vLAN HOT 5
- plugin ne démarre plus
- bouton "ajouter" HOT 2
- Mise a jours de la documentation
- Creation d'une page Santé de tous les equpement HOT 6
- proposition: création d'icones en fonction du type de device HOT 9
- checkbox reste cochée HOT 2
- [MySQL] Error code : 23000 (1048). Column 'eqType_name' cannot be null HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jeedom-librenms.