Lovelace Custom Card for the Home Assistant integration pool_controller.
- Backend integration: https://github.com/lweberru/pool_controller
- This repository provides the frontend as a single-file plugin:
main.js - Card type:
custom:pc-pool-controller
- Home Assistant with the backend integration
pool_controllerinstalled - For
content: costandcontent: pv:custom:apexcharts-cardmust be available
- HACS → Custom repositories → add this repository (category Lovelace)
- Install the repository
- Verify that the resource is loaded as a JavaScript module:
/hacsfiles/pool_controller_dashboard_frontend/main.js
Note: HACS usually creates the resource entry automatically.
- Copy
main.jstoconfig/www/pool_controller_dashboard_frontend/ - In Home Assistant under Settings → Dashboards → Resources, add it as a module:
/local/pool_controller_dashboard_frontend/main.js
type: custom:pc-pool-controller
device_id: 0123456789abcdef0123456789abcdef
# alternative:
# climate_entity: climate.my_pool
content: controllerThe card is YAML-first: with device_id (or climate_entity), auto-discovery of all related sensors/switches works via the entity registry.
The card supports these modes:
controllercalendarwaterqualitymaintenancecostpv
- Temperature dial with drag/click +
+/− - Actions: Bathe, Filter, Chlorine, Pause
- Maintenance mode with visible lockout
- Heat/run reason shown transparently in the UI
- Entity auto-discovery (minimal YAML effort)
- Cost and PV visualization via ApexCharts
- Click-to-open more-info (
hass-more-info) on key data points
Many UI elements directly open the matching sensor/switch in Home Assistant, including:
- Status/switch icons in the controller block
- Values in the water quality block
- Entries in calendar/upcoming
- Maintenance recommendations
- PV legend entries
The card primarily uses pool_controller services (start_* / stop_*).
If needed, it falls back to climate/buttons/switches to keep workflows robust.
- Edit your dashboard
- Add card → “Pool Controller”
- Select the controller instance
- Set the desired
contentmode
device_id(recommended)climate_entity
content: see mode list above (default:controller)- Additional display options depending on mode (for example Cost/PV in editor)
All remaining entity mappings are derived automatically from the registry.
- After an update: hard-reload the browser (
Ctrl+F5) and clear cache if needed - Check browser console for the loaded version:
[pool_controller_dashboard_frontend] loaded vX.Y.Z
- If
cost/pvstays empty: verifycustom:apexcharts-cardis installed
- No build pipeline/dependencies: all frontend changes are in
main.js - i18n is handled via the internal
I18Nobject - Guidelines and workflow: CONTRIBUTING.md
HACS updates are release-based (GitHub release/tag). Make sure to bump VERSION in main.js to match the release version.








