Skip to content

MQTT Configuration

MQTT Configuration (Home Assistant Discovery)

The Pool Controller uses Home Assistant MQTT Discovery for automatic device registration. All devices appear automatically in Home Assistant without any manual configuration.

Note: The former Homie protocol support was removed in v3.3.0. The controller exclusively uses Home Assistant MQTT Discovery.

Configuration

Configure your MQTT broker connection via the Web UI (Settings โ†’ MQTT tab):

  • MQTT Hostname/IP: Your MQTT broker address
  • MQTT Port: Default 1883
  • MQTT Username/Password: Optional authentication credentials

After saving and rebooting, all entities appear automatically in Home Assistant.

Via the REST API

The MQTT settings can also be configured programmatically:

curl -b "session=<session>" -X POST \
  -d "type=mqtt&host=192.168.1.100&port=1883&username=mqtt_user&password=secret" \
  http://<controller-ip>/api/config

Home Assistant Entities

The controller publishes the following entities via MQTT Discovery, grouped by type with their standard HA entity category:

CategoryDisplay in HA
(none)Main device page โ€” primary measurements
controlControls section
configConfiguration section
diagnosticDiagnostics section

Sensors (read-only)

FunctionHA component/object-idEntity CategoryState topic
Solar temperaturesensor/solar-tempโ€”homeassistant/sensor/pool-controller/solar-temp/state
Pool temperaturesensor/pool-tempโ€”homeassistant/sensor/pool-controller/pool-temp/state
Controller temperature (ESP32)sensor/controller-tempdiagnostichomeassistant/sensor/pool-controller/controller-temp/state
Free Heap Spacesensor/heapdiagnostichomeassistant/sensor/pool-controller/heap/state
Max Alloc Blocksensor/max-allocdiagnostichomeassistant/sensor/pool-controller/max-alloc/state
WiFi Signal Strengthsensor/rssidiagnostichomeassistant/sensor/pool-controller/rssi/state
System Uptimesensor/uptimediagnostichomeassistant/sensor/pool-controller/uptime/state
Local Timesensor/local-timediagnostichomeassistant/sensor/pool-controller/local-time/state
Timezone infosensor/timezone-infodiagnostichomeassistant/sensor/pool-controller/timezone-info/state
Log outputsensor/logdiagnostichomeassistant/sensor/pool-controller/log/state
OTA statussensor/ota-statusdiagnostichomeassistant/sensor/pool-controller/ota-status/state
Effective Runtimesensor/effective-runtimediagnostichomeassistant/sensor/pool-controller/effective-runtime/state
Solar Sensor Foundsensor/solar-sensor-founddiagnostichomeassistant/sensor/pool-controller/solar-sensor-found/state
Pool Sensor Foundsensor/pool-sensor-founddiagnostichomeassistant/sensor/pool-controller/pool-sensor-found/state

Controls

FunctionHA component/object-idEntity CategoryCommand topic
Pool pump relayswitch/pool-pumpcontrolhomeassistant/switch/pool-controller/pool-pump/set
Solar pump relayswitch/solar-pumpcontrolhomeassistant/switch/pool-controller/solar-pump/set
Operation modeselect/modecontrolhomeassistant/select/pool-controller/mode/set

Configuration (settable via HA)

FunctionHA component/object-idEntity CategoryCommand topic
Pool max tempnumber/pool-max-tempconfighomeassistant/number/pool-controller/pool-max-temp/set
Solar min tempnumber/solar-min-tempconfighomeassistant/number/pool-controller/solar-min-temp/set
Hysteresisnumber/hysteresisconfighomeassistant/number/pool-controller/hysteresis/set
Circ. temp thresholdnumber/temp-circ-thresholdconfighomeassistant/number/pool-controller/temp-circ-threshold/set
Circ. temp factornumber/temp-circ-factorconfighomeassistant/number/pool-controller/temp-circ-factor/set
Circ. max runtimenumber/temp-circ-max-runtimeconfighomeassistant/number/pool-controller/temp-circ-max-runtime/set
Timer start timetime/timer-startconfighomeassistant/time/pool-controller/timer-start/set
Timer end timetime/timer-endconfighomeassistant/time/pool-controller/timer-end/set
Timezoneselect/timezoneconfighomeassistant/select/pool-controller/timezone/set
NTP Servertext/ntp-serverconfighomeassistant/text/pool-controller/ntp-server/set
Log levelselect/log-levelconfighomeassistant/select/pool-controller/log-level/set
Log to serialswitch/log-serialconfighomeassistant/switch/pool-controller/log-serial/set
Solar Sensor mappingselect/solar-sensorconfighomeassistant/select/pool-controller/solar-sensor/set
Pool Sensor mappingselect/pool-sensorconfighomeassistant/select/pool-controller/pool-sensor/set

Buttons & Diagnostics

FunctionHA component/object-idEntity CategoryCommand topic
OTA update triggerbutton/ota-updateconfighomeassistant/button/pool-controller/ota-update/set
Firmwareupdate/firmware-updateconfighomeassistant/update/pool-controller/firmware-update/set
Pool Thermostatclimate/thermostatconfig(mode + temperature via climate topics)

Entity Category Reference

CategoryDescription
(none)Primary measurements, shown on the device front page
controlPrimary controls (switches, mode selection)
configConfiguration values and settings
diagnosticDevice diagnostics and system information

Features

All entities support:

  • Temperature sensors (pool, solar, controller)
  • Relay switches (pool pump, solar pump)
  • Operation modes (auto, manual, boost, timer)
  • Temperature-based circulation parameters (threshold, factor, max runtime)
  • Configuration via MQTT
  • State monitoring

Home Assistant Dashboard Example

A ready-to-use Lovelace dashboard example with:

  • quick mode switching (auto, timer, boost, manu)
  • highlighted pool and solar/storage temperatures
  • a dedicated configuration view
  • a combined history chart for switching times and temperatures

is available in:

Migration from Homie (Pre-v3.3.0)

If you’re upgrading from an older firmware that used the Homie protocol:

  1. The Homie protocol has been removed in v3.3.0 โ€” the controller now uses Home Assistant MQTT Discovery exclusively
  2. After flashing the new firmware, delete stale retained Homie messages from your MQTT broker to avoid confusion:
    mosquitto_pub -h broker -t homie -n -r
    mosquitto_sub -t 'homie/#' -v | cut -d' ' -f1 | xargs -I{} mosquitto_pub -h broker -t {} -n -r
  3. In Home Assistant, delete the old device entry (Settings โ†’ Devices & services โ†’ MQTT โ†’ Devices โ†’ pool-controller โ†’ Delete) โ€” the new entities will appear automatically via MQTT Discovery
  4. Reboot the device to trigger fresh discovery announcements
Last updated on