**
Test Report: ESPHome Controller - Generic Driver & Light Driver
Hi Ugur,
Detailed test results for the two things you mentioned in your previous reply: generic driver auto-discovery and the Light driver supportedColorModes fix.
Setup
Hardware: Sonoff RE5V1C (ESP8266), ESPHome 2025.12.5, Homey Pro 2023 latest, ESPHome Controller latest beta (app restarted)
ESP exposes 6 entities through Native API (confirmed in ESP web UI log):
Test A — Generic ESPHome Device Driver
| ESP entity | Visible in Homey? | Note |
|---|---|---|
| Relay (light.binary) | On/off works | |
| WiFi RSSI | Name override: shows “Signal Strength” instead of “WiFi RSSI” | |
| Uptime (raw sec) | Entity is sent but never appears in Homey UI | |
| Uptime Human | Name override: shows “Uptime” instead of “Uptime Human”, takes the “slot” of the raw Uptime entity | |
| IP Address | Entity sent (template text_sensor), doesn’t appear in Homey UI | |
| Current SSID | Entity sent (template text_sensor), doesn’t appear in Homey UI |
Issues:
-
Text_sensor entities aren’t discovered — three template text_sensors are being sent from the ESP, only one (Uptime Human) shows up in Homey.
-
Name field is ignored — Homey replaces user-defined names with generic names based on device_class. “WiFi RSSI” → “Signal Strength”, “Uptime Human” → “Uptime”. This breaks the ability to have multiple entities of the same class with meaningful names (which was the original case in my first post — two temperature sensors on the same device as
pad_tempandambient_temp). -
Icon metadata is ignored —
icon: "mdi:clock-outline"A generic dashed-frame icon is shown. Is this a limitation on Homey’s part or do I need some other approach? -
device_class: duration not mapped — raw Uptime with
device_class: durationandunit: sdoesn’t create any capability in Homey.
Test B — Dedicated “Light Driver”
-
On/off button works

-
Brightness slider present — shouldn’t be, binary light exposes only
ON_OFFcolor mode -
RGB color picker present — shouldn’t exist
-
Cold/Warm (color temperature) slider present — shouldn’t exist
-
No diagnostic entities (WiFi RSSI, Uptime, IP, SSID, Human Uptime) shown
Homey Light driver still shows all four sliders. It seems the supportedColorModes reading doesn’t work as intended.
YAML I’m using (Homey-relevant parts)
light:
- platform: binary
id: relay
name: "Relay"
output: relay_out
icon: "mdi:lightbulb"
restore_mode: RESTORE_DEFAULT_OFF
sensor:
- platform: wifi_signal
name: "WiFi RSSI"
update_interval: 60s
device_class: signal_strength
unit_of_measurement: "dBm"
accuracy_decimals: 0
entity_category: diagnostic
- platform: uptime
name: "Uptime"
id: uptime_sec
update_interval: 60s
device_class: duration
unit_of_measurement: "s"
accuracy_decimals: 0
entity_category: diagnostic
text_sensor:
- platform: template
name: "IP Address"
id: ip_addr
icon: "mdi:ip-network"
entity_category: diagnostic
update_interval: 60s
lambda: |-
return {WiFi.localIP().toString().c_str()};
- platform: template
name: "Current SSID"
id: current_ssid
icon: "mdi:wifi"
entity_category: diagnostic
update_interval: 60s
lambda: |-
return {WiFi.SSID().c_str()};
- platform: template
name: "Uptime Human"
id: uptime_human
icon: "mdi:clock-outline"
update_interval: 60s
entity_category: diagnostic
lambda: |-
if (isnan(id(uptime_sec).state)) {
return {"starting..."};
}
int seconds = (int)id(uptime_sec).state;
int days = seconds / 86400;
seconds %= 86400;
int hours = seconds / 3600;
seconds %= 3600;
int minutes = seconds / 60;
char buf[32];
sprintf(buf, "%dd %02dh %02dm", days, hours, minutes);
return {buf};
Summary list:
-
Light driver - binary light should show only on/off without any sliders
-
Generic driver - template text_sensor discovery
-
Generic driver - device_class: duration mapping
-
Generic driver - respect for
namefield - instead of overriding with a generic name -
Generic driver - icon metadata - If this is possible
I would like you to suggest to me if there is a different approach, feel free to point that out.
Happy to test the new beta with these fixes and send logs + screenshots. And let me know if you need a different YAML setup














