Giter VIP home page Giter VIP logo

Comments (9)

mika-nt28 avatar mika-nt28 commented on July 26, 2024

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.

poluket avatar poluket commented on July 26, 2024

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.

mika-nt28 avatar mika-nt28 commented on July 26, 2024

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.

poluket avatar poluket commented on July 26, 2024

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.

poluket avatar poluket commented on July 26, 2024

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.

mika-nt28 avatar mika-nt28 commented on July 26, 2024

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.

poluket avatar poluket commented on July 26, 2024

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.

poluket avatar poluket commented on July 26, 2024

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.

mika-nt28 avatar mika-nt28 commented on July 26, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.