HPE ProLiant MicroServer Gen8

I have been using a HP Microserver for a few years as my home lab and quite enjoy it. Unfortunately Home Assistant’s existing HP Integrated Lights-Out (ILO) integration is very limited and does not have any configuration integration. I have started working on an updated version of this integration. For the initial release, I focused on three things:

  • Auto-Discovery with config flow so no configuration.yaml editing will be required.
  • Support for as many sensor types automatically out of the box.
  • Updating python-hpilo.

🚥 Updated HP Integrated Lights Out (iLO) component for Home Assistant

Discovery

For Auto Discovery to work, it has to be enabled in the iLO admin UI: ILO Screenshot

For development & testing it also makes sense to set the interval low enough (default seems to be 10min)

ILO servers are announcing themselves on a few of SSDP search targets:

These all return slightly different data, but none seems to include all the information necessary (i.e. the correct UUID or the port/protocol of the REST api ).

Basic Device seems to be the one most common and is already supported by Home Assistant, so I picked that.

Next Steps

Configuration

The goal is to implement a clean config flow supporting a few things:

  • Regular setup flow for discovered devices as well as a manual setup flow.
  • Update of IPs and Hostname from discovery in case any of them change.
  • Import of existing sensors from configuration.yaml
  • It should be possible to enable/disable what sensors and other entities/platforms are added. (since this can quickly get out of hand)

Platforms

This component will set up the following platforms.

Platform Description
binary_sensor Show something True or False.
sensor Show info from blueprint API.
switch Switch something True or False.

The existing sensors only implement the sensor entity. Ideally a few more things would be nice:

  • Automatically generate all supported entities automatically.
  • Device entity with as much information as possile about the system configuration
  • Binary sensor for firmware update status, power
  • Buttons for Firmware upgrades and reboots/restarts etc.
  • Switches for Power on/Off
  • Fan entities for fans

There’s already two PRs to improve on this: and so I’ll see where these go as well and then update the integration.

Caching

Startup and refresh is currently not optimized, slowing this integration down quite a bit. It also seems that data isn’t shared between sensors, meaning the rate limiting is resulting in very coarse grained data once there’s more then a handful of sensors active.

Tests

There’s actually no tests at all in Home Assistant for this component right now. Most features should be able to be tested with the existing mock data in python-hpilo.