Implement auto-discovery for custom integratio (using RF) (no mDNS/Zeroconf, SSDP,)

Hi,

I’ve build a custom integration for Eltako devices that are using RF messages based on the EnOcean protocol. The communication is done using a RF dongle (USB300) to communicate which is configured using a ConfigFlow.

Everything is working fine, I can control my lights and covers.

Right now, the user needs to define the lights and covers in configuration file like this :

lights:
  - platform: homeassistant_eltako
    name: Cave
    device_id: [0xFF, 0xF5, 0xC6, 0x8A]
    sender_id: [0xFF, 0xFF, 0xFF, 0xFF]

For that the user needs to :

  • Know the device_id (which is the id of the Eltako Actuator)
  • Defines a sender_id that needs to be based on the base_id of the USB dongle
  • Register (teach-in) the defined sender_id into the Eltako Actuator.

It is not straitforward.

So, I’m looking for a way to build an autodiscovery system. When HA receives a message from an Eltako Actuator that is unknown (using a physical switch in the house), let the possibility to configure it in home assistant :

  • Let the user give a name
  • let the user to change the sender_id that is pre-calculated
  • let the user to tell if it’s a light (dimmer or not) or a cover
  • guide the user to the process of teach-in.

Is there a way to do that ? I didn’t found any information about an entity discovery flow.

Thanks