Home Assistant Integration
The Pool Controller integrates seamlessly with Home Assistant via MQTT Discovery (default protocol). All entities are registered automatically when the controller connects to your MQTT broker.
MQTT Discovery
The controller publishes HA MQTT Discovery payloads on startup and on MQTT reconnect. No manual MQTT configuration is needed — devices appear in Home Assistant automatically.
Available Entities
| Domain | Object ID | Category | Description |
|---|---|---|---|
sensor | pool_temperature | diagnostic | Pool water temperature |
sensor | solar_temperature | diagnostic | Solar collector temperature |
sensor | controller_temperature | diagnostic | ESP32 chip temperature |
sensor | free_heap_space | diagnostic | Free heap memory |
sensor | max_alloc_block | diagnostic | Largest allocatable block |
sensor | wifi_signal_strength | diagnostic | WiFi RSSI |
sensor | system_uptime | diagnostic | Device uptime in seconds |
sensor | local_time | diagnostic | Current local time |
select | operation_mode | — | Operating mode (auto/manu/boost/timer) |
switch | pool_pump | — | Pool circulation pump |
switch | solar_pump | — | Solar heating pump |
number | max_pool_temp | — | Maximum pool temperature target |
number | min_solar_temp | — | Minimum solar activation temperature |
number | temperature_hysteresis | config | Temperature hysteresis value |
time | timer_start | — | Timer start time (HH:MM) |
time | timer_end | — | Timer end time (HH:MM) |
select | timezone | config | Timezone selection |
text | ntp_server | config | NTP server address |
update | firmware | — | Firmware update entity |
Entity IDs in HA are generated from the MQTT unique_id. The actual IDs on your system may differ from the examples above (e.g.
sensor.pool_controller_pool_temperature). Check Developer Tools → Entities and filter by “pool” to find your IDs.
Lovelace Dashboard
A pre-built Lovelace dashboard configuration is provided in home-assistant-dashboard-pool.yaml.
Features
- Pool view: Temperature gauges, mode switching, timer, pump control, 24h history
- Configuration view: Timezone, NTP server, system information, firmware updates
- Active mode highlighting for the operation mode buttons
Setup
- Copy the YAML file to your HA configuration directory
- Open HA → Dashboard → Edit → Three-dot menu → Raw Configuration Editor
- Paste the content
- Adjust entity IDs to match your installation (see warning below)
- Save
Dependencies
The mode buttons use button-card (custom card) to visually
highlight the active operation mode:
HACS → Frontend → button-card → InstallWithout button-card, replace custom:button-card with type: button in the grid cards (loses
active-mode highlighting).
Entity ID Warning
Entity IDs depend on the MQTT unique_id format generated by the controller. The YAML uses pool_controller
as prefix — if your IDs use a different prefix (e.g. based on the device MAC), replace all occurrences.
Migration from earlier versions
If upgrading from a previous firmware version, old discovery configs may remain in the MQTT broker. The
controller automatically publishes empty retained configs for obsolete entities
(number/timer-start-h/min, number/timer-end-h/min, number/timezone). After the first MQTT reconnect,
Home Assistant removes the orphaned entities automatically.