HP ILO


The hp_ilo platform allows you to do an API call to the HP ILO (Integrated Lights-Out) sensor of your server, and use this data in Home Assistant sensors.

If the ILO or specified jsonpath query returns only a single value (e.g., a temperature or state), it will be put in the state field. If a data structure is returned, it will be placed in the ilo_data attribute.

Some more details about what can be retrieved from these sensors is available in the python-hpilo documentation.

Configuration

To use this integration in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
sensor:
  - platform: hp_ilo
    host: IP_ADDRESS or HOSTNAME
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    monitored_variables:
      - name: SENSOR NAME
        sensor_type: SENSOR TYPE

Configuration Variables

host

(string)(Required)

The hostname or IP address on which the ILO can be reached.

port

(string)(Optional)

The port on which the ILO can be reached.

Default value:

443

username

(string)(Required)

The username used to connect to the ILO.

password

(string)(Required)

The password used to connect to the ILO.

monitored_variables

(list)(Optional)

Sensors created from the ILO data.

Default value:

Defaults to an empty list (no sensors are created).

name

(string)(Required)

The sensor name.

sensor_type

(string)(Required)

The sensor type, has to be one of the valid sensor types specified below.

unit_of_measurement

(string)(Optional)

The sensors’ unit of measurement.

value_template

(template)(Optional)

When a Jinja2 template is specified here, the created sensor will output the template result. The ILO response can be referenced with the ilo_data variable.

Valid sensor_types:

  • server_name: Get the name of the server this iLO is managing.
  • server_fqdn: Get the fqdn of the server this iLO is managing.
  • server_host_data: Get SMBIOS records that describe the host.
  • server_oa_info: Get information about the Onboard Administrator of the enclosing chassis.
  • server_power_status: Whether the server is powered on or not.
  • server_power_readings: Get current, min, max and average power readings.
  • server_power_on_time: How many minutes ago has the server been powered on.
  • server_asset_tag: Gets the server asset tag.
  • server_uid_status: Get the status of the UID light.
  • server_health: Get server health information.
  • network_settings: Get the iLO network settings.

Example

In order to get two sensors reporting CPU fan speed and Ambient Inlet Temperature, as well as a dump of server_health on a HP Microserver Gen8, you could use the following in your configuration.yaml file

sensor:
  - platform: hp_ilo
    host: IP_ADDRESS or HOSTNAME
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    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] }}'
      - name: Server Health
        sensor_type: server_health

Hardware specifics

Not every hardware supports all values.

HP Microserver Gen8

On this hardware you should avoid using the following sensor_types as monitored_variables: to prevent errors.

  • server_oa_info
  • server_power_readings
  • server_power_on_time