HP Proliant Monitoring with Home Assistant

Hi,

I’m trying to monitor a HP Proliant DL380 G9 Server with Home Assistant and have hit some strange issues.

I have this fragment in my XAML configuration:

  - platform: hp_ilo
    host: !secret hpILOIP
    username: !secret hpILOUsername
    password: !secret hpILOPassword
    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
      - name: Power Status
        sensor_type: server_power_status
      - name: Power Readings
        sensor_type: server_power_readings

All of the sensors get created apart from the main Server Health one. Because of that I don’t get the JSON data being returned so I have no means by which I can determine how to build other sensors.

I have no idea if it’s possible but ideally i’d like to monitor the health of the logical volume on the RAID array and/or the health state of the disks. In essence I want to have some visual cue or alert if the fault tolerance of the RAID array is degraded.

Is anyone able to offer any ideas on this one please?

Thanks

Pete

1 Like

Never mind. I got to the bottom of it.

An error in the logs showed that the issue was because the state data being returned was over the character limit (which is around 250 characters).

I’m now using a config like this:

  - platform: hp_ilo
    host: !secret hpILOIP
    username: !secret hpILOUsername
    password: !secret hpILOPassword
    scan_interval: 120
    monitored_variables:
      - name: power_status
        sensor_type: server_power_status
      - name: power_readings
        sensor_type: server_power_readings
      - name: power_on_time
        sensor_type: server_power_on_time
      - name: uid_status
        sensor_type: server_uid_status
      - name: bios_hardware
        sensor_type: server_health
        value_template: "{{ ilo_data.health_at_a_glance['bios_hardware']['status'] }}"
      - name: fan_status
        sensor_type: server_health
        value_template: "{{ ilo_data.health_at_a_glance['fans']['status'] }}"
      - name: memory_status
        sensor_type: server_health
        value_template: "{{ ilo_data.health_at_a_glance['memory']['status'] }}"
      - name: network_status
        sensor_type: server_health
        value_template: "{{ ilo_data.health_at_a_glance['network']['status'] }}"
      - name: processor_status
        sensor_type: server_health
        value_template: "{{ ilo_data.health_at_a_glance['processor']['status'] }}"
      - name: storage_status
        sensor_type: server_health
        value_template: "{{ ilo_data.health_at_a_glance['storage']['status'] }}"
      - name: temperature_status
        sensor_type: server_health
        value_template: "{{ ilo_data.health_at_a_glance['temperature']['status'] }}"
      - name: memory_cpu1_sockets
        sensor_type: server_health
        value_template: "{{ ilo_data.memory['memory_details_summary']['cpu_1']['number_of_sockets'] }}"
      - name: memory_cpu1_frequency
        sensor_type: server_health
        value_template: "{{ ilo_data.memory['memory_details_summary']['cpu_1']['operating_frequency'] }}"
      - name: memory_cpu1_voltage
        sensor_type: server_health
        value_template: "{{ ilo_data.memory['memory_details_summary']['cpu_1']['operating_voltage'] }}"
      - name: memory_cpu1_size
        sensor_type: server_health
        value_template: "{{ ilo_data.memory['memory_details_summary']['cpu_1']['total_memory_size'] }}"
      - name: memory_cpu2_sockets
        sensor_type: server_health
        value_template: "{{ ilo_data.memory['memory_details_summary']['cpu_2']['number_of_sockets'] }}"
      - name: memory_cpu2_frequency
        sensor_type: server_health
        value_template: "{{ ilo_data.memory['memory_details_summary']['cpu_2']['operating_frequency'] }}"
      - name: memory_cpu2_voltage
        sensor_type: server_health
        value_template: "{{ ilo_data.memory['memory_details_summary']['cpu_2']['operating_voltage'] }}"
      - name: memory_cpu2_size
        sensor_type: server_health
        value_template: "{{ ilo_data.memory['memory_details_summary']['cpu_2']['total_memory_size'] }}"
      - name: nic_ilo_ip_address
        sensor_type: server_health
        value_template: "{{ ilo_data.nic_information['iLO iLO Dedicated Network Port']['ip_address'] }}"
      - name: nic_ilo_mac
        sensor_type: server_health
        value_template: "{{ ilo_data.nic_information['iLO iLO Dedicated Network Port']['mac_address'] }}"
      - name: nic_ilo_status
        sensor_type: server_health
        value_template: "{{ ilo_data.nic_information['iLO iLO Dedicated Network Port']['status'] }}"
      - name: psu_summary
        sensor_type: server_health
        value_template: "{{ ilo_data.power_supply_summary['present_power_reading'] }}"
      - name: temperature_inlet
        sensor_type: server_health
        unit_of_measurement: '°C'
        value_template: "{{ ilo_data.temperature['01-Inlet Ambient']['currentreading'] }}"
      - name: temperature_cpu1_
        sensor_type: server_health
        unit_of_measurement: '°C'
        value_template: "{{ ilo_data.temperature['02-CPU 1']['currentreading'] }}"
      - name: processors_cores
        sensor_type: server_health
        value_template: "{{ ilo_data.processors['Proc 1']['execution_technology'] }}"
      - name: processors_name
        sensor_type: server_health
        value_template: "{{ ilo_data.processors['Proc 1']['name'] }}"
      - name: processors_speed
        sensor_type: server_health
        value_template: "{{ ilo_data.processors['Proc 1']['speed'] }}"

4 Likes

I know this was posted a long time ago, but it helped me get my power reading working for my DL380P G8, when nothing else seemed to work. For those with one of these servers, the code for the inlet temperature needs to be:

  monitored_variables:
    - name: Inlet Temperature
      sensor_type: server_health
      unit_of_measurement: "°C"
      value_template: '{{ ilo_data.temperature["01-Front Ambient"].currentreading[0] }}'

Note the change from “inlet” to “front”

Cheers

1 Like