HP ILO sensor component

After coming over from openHAB I was amazed by how easy it was to set up and expand on the Home Assistant platform.

For the last days I’ve been working on two components, of which this one is the first. It makes use of the excellent python-hpilo module.

It allows me to do an API call to the HP ILO sensor of my server, and use this data in (template) sensors:

example

You can find it on my Github page:
https://github.com/Juggels/home-assistant-components/tree/master/hp_ilo

Any questions or suggestions? Just ask away :smile: :smile:

4 Likes

I would like to suggest that you create a PR to include this sensor into Home Assistant. As far as I can tell only a few updates (like do validation with voluptuous, use default HA defaults, add a throttle, and maybe more) are needed.

Thanks for the feedback Fabian! I’ll look into your suggestions (throttle has been added already), but I have to admit I’m not that confident with forking, branching, pull requests, etc :blush:

I’ll try to get on Gitter later to get some help with that.

Have a look at at the Development docs. You are already using Github thus I guess that you will be able to handle it.

Otherwise there are a lot of people on Gitter.io who can help.

It took a few extra commits, but it got done :slight_smile:

https://github.com/home-assistant/home-assistant/pull/2844

Good job :clap:

Hi Juggels,
I’m happily using your component, but am fairly new to HA.
Can you please elaborate on:

  • How have you extracted the fan speed and temperature from server_health. Currently I can see [object Object] listed under HP ILO Server Health sensor?

  • How you formatted the server uptime to minutes?

If I could see your config file I hope I could follow it.

Many thanks,

Hi Richard,

Glad to see that the component is working well for you :slight_smile:
What I do to get actual information from the hp_ilo platform is use template sensors that get the actual values like this:

- platform: template
  sensors:
    hp_ilo_server_health_fanspeed:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server fanspeed'
      unit_of_measurement: '%'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.fans["Fan 1"].speed[0] }}
        {% else %}
          0
        {% endif %}

    hp_ilo_server_health_temperature:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server temperature'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["01-Inlet Ambient"].currentreading[0] }}
        {% else %}
          0
        {% endif %}

Hope this helps you along :slight_smile:

2 Likes

Brilliant, it worked a treat. Many thanks. :grinning:

For other people with a HP Microserver gen8, I had to remove the following from “monitored_variables” to get it working:

-server_oa_info -server_power_readings -server_power_on_time

With those in I got a bunch of errors in the log and the component didn’t work.

Is there an elegant way to iterate through the entire list of enumerated sensors and have them automagically show up as Hass sensors, or do I really have to mash my way through manually creating a template sensor for each of them? I did it, eventually, with a few new calluses to show for it but there’s got to be an easier way!

Here’s the mess I’ve got going on now…it works, but sheesh is that messy or what?

- platform: template
  sensors:
    hp_ilo_server_health_fanspeed_1:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server Fan 1 Speed'     
      unit_of_measurement: '%'  
      value_template: >-        
        {% if states.sensor.hp_ilo_server_health %}          
          {{ states.sensor.hp_ilo_server_health.attributes.fans["Fan 1"].speed[0] }}        
        {% else %}          
          0        
        {% endif %}    
    hp_ilo_server_health_fanspeed_2:      
      entity_id: sensor.hp_ilo_server_health      
      friendly_name: 'Server Fan 2 Speed'      
      unit_of_measurement: '%'
      value_template: >-        
        {% if states.sensor.hp_ilo_server_health %}          
          {{ states.sensor.hp_ilo_server_health.attributes.fans["Fan 2"].speed[0] }}        
        {% else %}          
          0        
        {% endif %}    
    hp_ilo_server_health_fanspeed_3:      
      entity_id: sensor.hp_ilo_server_health      
      friendly_name: 'Server Fan 3 Speed'      
      unit_of_measurement: '%'      
      value_template: >-        
        {% if states.sensor.hp_ilo_server_health %}          
          {{ states.sensor.hp_ilo_server_health.attributes.fans["Fan 3"].speed[0] }}        
        {% else %}          
          0        
        {% endif %}    
    hp_ilo_server_health_fanspeed_4:      
      entity_id: sensor.hp_ilo_server_health      
      friendly_name: 'Server Fan 4 Speed'      
      unit_of_measurement: '%'      
      value_template: >-        
        {% if states.sensor.hp_ilo_server_health %}          
          {{ states.sensor.hp_ilo_server_health.attributes.fans["Fan 4"].speed[0] }}        
        {% else %}          
          0        
        {% endif %}    
    hp_ilo_server_health_fanspeed_5:      
      entity_id: sensor.hp_ilo_server_health      
      friendly_name: 'Server Fan 5 Speed'      
      unit_of_measurement: '%'      
      value_template: >-        
        {% if states.sensor.hp_ilo_server_health %}          
          {{ states.sensor.hp_ilo_server_health.attributes.fans["Fan 5"].speed[0] }}        
        {% else %}          
          0        
        {% endif %}    
    hp_ilo_server_health_fanspeed_6:      
      entity_id: sensor.hp_ilo_server_health      
      friendly_name: 'Server Fan 6 Speed'      
      unit_of_measurement: '%'      
      value_template: >-        
        {% if states.sensor.hp_ilo_server_health %}          
          {{ states.sensor.hp_ilo_server_health.attributes.fans["Fan 6"].speed[0] }}        
        {% else %}          
          0        
        {% endif %}
    hp_ilo_server_health_temp_01:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server Ambient Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 1"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_02:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server CPU 1 Die Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 2"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_03:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server CPU 2 Die Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 3"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_04:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server Memory Temp A'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 4"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_05:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server Memory Temp B'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 5"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_06:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server Memory Temp C'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 6"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_07:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server Memory Temp D'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 7"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_08:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server PSU 2 Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 8"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_09:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server PSU 1 Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 9"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_10:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board A Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 10"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_11:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board B Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 11"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_12:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board C Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 12"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_13:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board D Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 13"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_14:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board E Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 14"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_15:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board F Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 15"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_16:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board G Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 16"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_17:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board H Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 17"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_18:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board J Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 18"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_19:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server CPU 1 Area Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 19"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_20:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server CPU 2 Area Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 20"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_21:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server CPU 1 Exh Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 21"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_22:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server CPU 2 Exh Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 22"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_23:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board K Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 23"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_24:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server Memory Temp E'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 24"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_25:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server Memory Temp F'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 25"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_26:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server Memory Temp G'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 26"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_27:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board L Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 27"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_28:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board M Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 28"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_29:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server System Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 29"].currentreading[0] }}
        {% else %}
          0
        {% endif %}
    hp_ilo_server_health_temp_30:
      entity_id: sensor.hp_ilo_server_health
      friendly_name: 'Server IO Board N Temp'
      unit_of_measurement: '°C'
      value_template: >-
        {% if states.sensor.hp_ilo_server_health %}
          {{ states.sensor.hp_ilo_server_health.attributes.temperature["Temp 30"].currentreading[0] }}
        {% else %}
          0
        {% endif %}

If nothing else, another user with a Proliant DL380 G6 (they’re about US$200 delivered from Amazon right now, heck of a deal if you ask me) might just find this useful. Of course, with the clear-as-mud names coming from the iLO itself, I’m fairly sure at least a couple of my descriptions are wrong, but I’m not overly worried.

Hi @Dan_Bowkley ,
It’s taken me a while to get around to this, but I submitted a Pull request yesterday to implement this feature. Hope this will help :slight_smile: Take a look at the referenced docs in the PR to see an example of the new functionality.

https://github.com/home-assistant/home-assistant/pull/7534

Not sure if I understand the new set up in 0.46 correctly, but when I follow the example of the HP ILO component page both the Inlet temperature and the CPU fanspeed remain empty. Do I need to fill something in the value template part? I also get an error in the log regarding the server health see below. Is that related with the sensors remaining empty? I am using a MySQL database for my Home Assistant install.

2017-06-05 21:35:46 ERROR (Recorder) [homeassistant.components.recorder.util] Error executing query: (_mysql_exceptions.DataError) (1406, “Data too long for column ‘state’ at row 1”) [SQL: ‘INSERT INTO states (domain, entity_id, state, attributes, event_id, last_changed, last_updated, created) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)’] [parameters: (‘sensor’, ‘sensor.hp_ilo_server_health’, “{‘health_at_a_glance’: {‘bios_hardware’: {‘status’: ‘OK’}, ‘fans’: {‘status’: ‘OK’}, ‘processor’: {‘status’: ‘OK’}, ‘storage’: {‘status’: ‘OK’}, 'mem … (4862 characters truncated) … ', ‘label’: ‘08-Supercap Max’, ‘location’: ‘System’, ‘caution’: ‘N/A’, ‘status’: ‘Not Installed’}}, ‘storage_discovery_status’: ‘Discovery Complete’}”, ‘{“friendly_name”: “HP ILO Server Health”}’, None, datetime.datetime(2017, 6, 5, 19, 35, 15, 54689, tzinfo=), datetime.datetime(2017, 6, 5, 19, 35, 15, 54689, tzinfo=), datetime.datetime(2017, 6, 5, 19, 35, 46, 292805))]

My sensor.hp_ilo_server_health displays the following as state:

{‘health_at_a_glance’: {‘bios_hardware’: {‘status’: ‘OK’}, ‘fans’: {‘status’: ‘OK’}, ‘processor’: {‘status’: ‘OK’}, ‘storage’: {‘status’: ‘OK’}, ‘memory’: {‘status’: ‘OK’}, ‘temperature’: {‘status’: ‘OK’}, ‘power_supplies’: {‘status’: ‘OK’}, ‘network’: {‘status’: ‘OK’}}, ‘nic_information’: {‘NIC Port 2’: {‘port_description’: ‘iLO 4’, ‘location’: ‘Embedded’, ‘mac_address’: ‘a0:1d:48:c7:18:df’, ‘network_port’: ‘Port 2’, ‘ip_address’: ‘Unknown’, ‘status’: ‘Disabled’}, ‘NIC Port 0’: {‘port_description’: 'NIC ', ‘location’: ‘Embedded’, ‘mac_address’: ‘a0:1d:48:c7:18:dd’, ‘network_port’: ‘Port 0’, ‘ip_address’: ‘N/A’, ‘status’: ‘Unknown’}, ‘NIC Port 1’: {‘port_description’: ‘iLO 4’, ‘location’: ‘Embedded’, ‘mac_address’: ‘a0:1d:48:c7:18:de’, ‘network_port’: ‘Port 1’, ‘ip_address’: ‘192.168.1.6’, ‘status’: ‘OK’}}, ‘vrm’: None, ‘storage’: None, ‘memory’: {‘memory_details’: {‘CPU_1’: {‘socket 2’: {‘socket’: 2, ‘type’: ‘DIMM DDR3’, ‘size’: ‘8192 MB’, ‘ranks’: 2, ‘hp_smart_memory’: ‘No’, ‘frequency’: ‘1600 MHz’, ‘technology’: ‘UDIMM’, ‘minimum_voltage’: ‘1.50 v’, ‘part’: {‘number’: ‘N/A’}, ‘status’: ‘Good, In Use’}, ‘socket 1’: {‘socket’: 1, ‘type’: ‘DIMM DDR3’, ‘size’: ‘8192 MB’, ‘ranks’: 2, ‘hp_smart_memory’: ‘No’, ‘frequency’: ‘1600 MHz’, ‘technology’: ‘UDIMM’, ‘minimum_voltage’: ‘1.50 v’, ‘part’: {‘number’: ‘N/A’}, ‘status’: ‘Good, In Use’}}}, ‘advanced_memory_protection’: {‘available_amp_modes’: ‘Advanced ECC’, ‘amp_mode_status’: ‘Advanced ECC’, ‘configured_amp_mode’: ‘Advanced ECC’}, ‘memory_details_summary’: {‘cpu_1’: {‘total_memory_size’: ‘16 GB’, ‘operating_frequency’: ‘1333 MHz’, ‘number_of_sockets’: 2, ‘operating_voltage’: ‘1.50 v’}}}, ‘processors’: {‘Proc 1’: {‘memory_technology’: ‘64-bit Capable’, ‘label’: ‘Proc 1’, ‘name’: ’ Intel(R) Celeron(R) CPU G1610T @ 2.30GHz ', ‘internal_l2_cache’: ‘512 KB’, ‘internal_l3_cache’: ‘2048 KB’, ‘internal_l1_cache’: ‘64 KB’, ‘speed’: ‘2300 MHz’, ‘execution_technology’: ‘2/2 cores; 2 threads’, ‘status’: ‘OK’}}, ‘power_supplies’: {‘Power Supply 1’: {‘pds’: ‘No’, ‘capacity’: ‘0 Watts’, ‘present’: ‘Yes’, ‘serial_number’: ’ ', ‘label’: ‘Power Supply 1’, ‘model’: ’ ', ‘firmware_version’: ‘N/A’, ‘spare’: ‘Unknown’, ‘hotplug_capable’: ‘No’, ‘status’: ‘Good, In Use’}}, ‘power_supply_summary’: {‘present_power_reading’: ‘0 Watts’, ‘power_management_controller_firmware_version’: ‘N/A’, ‘high_efficiency_mode’: ‘N/A’, ‘hp_power_discovery_services_redundancy_status’: ‘N/A’}, ‘fans’: {‘Fan 1’: {‘zone’: ‘System’, ‘speed’: (25, ‘Percentage’), ‘label’: ‘Fan 1’, ‘status’: ‘OK’}}, ‘firmware_information’: {‘Server Platform Services (SPS) Firmware’: ‘2.2.0.31.2’, ‘Redundant System ROM’: ‘J06 07/16/2015’, ‘Intelligent Platform Abstraction Data’: ‘0.00’, ‘System ROM’: ‘J06 11/02/2015’, ‘System ROM Bootblock’: ‘02/04/2012’, ‘iLO’: ‘2.50 Sep 23 2016’, ‘Intelligent Provisioning’: ‘1.61.45’, ‘System Programmable Logic Device’: ‘Version 0x06’}, ‘temperature’: {‘12-Sys Exhaust’: {‘currentreading’: (46, ‘Celsius’), ‘critical’: (73, ‘Celsius’), ‘label’: ‘12-Sys Exhaust’, ‘location’: ‘Chassis’, ‘caution’: (68, ‘Celsius’), ‘status’: ‘OK’}, ‘02-CPU’: {‘currentreading’: (40, ‘Celsius’), ‘critical’: ‘N/A’, ‘label’: ‘02-CPU’, ‘location’: ‘CPU’, ‘caution’: (70, ‘Celsius’), ‘status’: ‘OK’}, ‘04-HD Max’: {‘currentreading’: ‘N/A’, ‘critical’: ‘N/A’, ‘label’: ‘04-HD Max’, ‘location’: ‘System’, ‘caution’: ‘N/A’, ‘status’: ‘Not Installed’}, ‘11-PCI 1 Zone’: {‘currentreading’: (41, ‘Celsius’), ‘critical’: (69, ‘Celsius’), ‘label’: ‘11-PCI 1 Zone’, ‘location’: ‘I/O Board’, ‘caution’: (64, ‘Celsius’), ‘status’: ‘OK’}, ‘06-Chipset Zone’: {‘currentreading’: (46, ‘Celsius’), ‘critical’: (73, ‘Celsius’), ‘label’: ‘06-Chipset Zone’, ‘location’: ‘System’, ‘caution’: (68, ‘Celsius’), ‘status’: ‘OK’}, ‘09-iLO Zone’: {‘currentreading’: (48, ‘Celsius’), ‘critical’: (77, ‘Celsius’), ‘label’: ‘09-iLO Zone’, ‘location’: ‘System’, ‘caution’: (72, ‘Celsius’), ‘status’: ‘OK’}, ‘10-PCI 1’: {‘currentreading’: ‘N/A’, ‘critical’: ‘N/A’, ‘label’: ‘10-PCI 1’, ‘location’: ‘I/O Board’, ‘caution’: ‘N/A’, ‘status’: ‘Not Installed’}, ‘13-LOM’: {‘currentreading’: ‘N/A’, ‘critical’: ‘N/A’, ‘label’: ‘13-LOM’, ‘location’: ‘System’, ‘caution’: ‘N/A’, ‘status’: ‘Not Installed’}, ‘01-Inlet Ambient’: {‘currentreading’: (28, ‘Celsius’), ‘critical’: (46, ‘Celsius’), ‘label’: ‘01-Inlet Ambient’, ‘location’: ‘Ambient’, ‘caution’: (42, ‘Celsius’), ‘status’: ‘OK’}, ‘03-P1 DIMM 1-2’: {‘currentreading’: (38, ‘Celsius’), ‘critical’: ‘N/A’, ‘label’: ‘03-P1 DIMM 1-2’, ‘location’: ‘Memory’, ‘caution’: (87, ‘Celsius’), ‘status’: ‘OK’}, ‘05-Chipset’: {‘currentreading’: (60, ‘Celsius’), ‘critical’: ‘N/A’, ‘label’: ‘05-Chipset’, ‘location’: ‘System’, ‘caution’: (105, ‘Celsius’), ‘status’: ‘OK’}, ‘07-VR P1 Zone’: {‘currentreading’: (49, ‘Celsius’), ‘critical’: (93, ‘Celsius’), ‘label’: ‘07-VR P1 Zone’, ‘location’: ‘System’, ‘caution’: (88, ‘Celsius’), ‘status’: ‘OK’}, ‘08-Supercap Max’: {‘currentreading’: ‘N/A’, ‘critical’: ‘N/A’, ‘label’: ‘08-Supercap Max’, ‘location’: ‘System’, ‘caution’: ‘N/A’, ‘status’: ‘Not Installed’}}, ‘storage_discovery_status’: ‘Discovery Complete’}

@wmn79 I fought with this for a while yesterday. This is what did the trick (found here: github). Substitute the info in the value_template to view different sensors):

monitored_variables:
  - name: CPU fanspeed
    sensor_type: server_health
    unit_of_measurement: '%'
    value_template: '{{ ilo_data.fans["Fan 1"].speed[0] }}'
  - name: Inlet temperature
    sensor_type: server_health
    unit_of_measurement: '°C'
    value_template: '{{ ilo_data.temperature["01-Inlet Ambient"].currentreading[0] }}'
1 Like

Woah… no idea what happened there in generating the final result for the component docs, as that ‘value_template’ info should have been there. It’s also still in the sources, so maybe something is wonky in the generation process. I’ll see if I can contact a dev about that.

2 Likes

Thanks @jmart518 & @Juggels. I’ll look into this tonight, that will probably fixes the issue then.

Any idea on the error I get in the log? Do you see similar errors? Or is this something I need to tweak in my MySQL db?

Edit: I just excluded the sensor from my recorder in order to get rid of the error.

The docs should be fixed once PR #2792 get’s accepted.

1 Like

@Juggels Is there a way to increase poll frequency? Right now, HASS doesn’t reflect the change for about 5 minutes

Example, I turn on UID in iLO, but don’t see the change in HASS 5 minutes or so.

Thanks!

Currently it’s not user-configurable, and is indeed set to 300 seconds / 5 minutes. I’ll work on adding an optional scan_interval option to the configuration.

1 Like

I cannot see what I’m doing wrong, I’m trying to get data from ‘health_at_a_glance’.

E.G.

- name: Server Storage Status
  sensor_type: server_health
  value_template: '{{ ilo_data.health_at_a_glance["storage"]["status"] }}'
1 Like