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 (or 8883 for TLS)
  • MQTT Username/Password: Optional authentication credentials
  • Enable TLS: Toggle for encrypted MQTTS connection

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

Via config.json

Add or modify the setting in your device’s config.json on LittleFS:

{
  "name": "Pool Controller",
  "settings": {
    "mqtt_host": "192.168.1.100",
    "mqtt_port": 1883
  }
}

Home Assistant Entities

The controller publishes the following entities via MQTT Discovery:

FunctionHA component/object-idState topicCommand topic
Solar temperaturesensor/solar-temphomeassistant/sensor/pool-controller/solar-temp/state-
Pool temperaturesensor/pool-temphomeassistant/sensor/pool-controller/pool-temp/state-
Controller temperature (ESP32)sensor/controller-temphomeassistant/sensor/pool-controller/controller-temp/state-
Pool pump relayswitch/pool-pumphomeassistant/switch/pool-controller/pool-pump/statehomeassistant/switch/pool-controller/pool-pump/set
Solar pump relayswitch/solar-pumphomeassistant/switch/pool-controller/solar-pump/statehomeassistant/switch/pool-controller/solar-pump/set
Operation modeselect/modehomeassistant/select/pool-controller/mode/statehomeassistant/select/pool-controller/mode/set
Pool max tempnumber/pool-max-temphomeassistant/number/pool-controller/pool-max-temp/statehomeassistant/number/pool-controller/pool-max-temp/set
Solar min tempnumber/solar-min-temphomeassistant/number/pool-controller/solar-min-temp/statehomeassistant/number/pool-controller/solar-min-temp/set
Hysteresisnumber/hysteresishomeassistant/number/pool-controller/hysteresis/statehomeassistant/number/pool-controller/hysteresis/set
Timer start timetext/timer-starthomeassistant/text/pool-controller/timer-start/statehomeassistant/text/pool-controller/timer-start/set
Timer end timetext/timer-endhomeassistant/text/pool-controller/timer-end/statehomeassistant/text/pool-controller/timer-end/set
Timezone indexnumber/timezonehomeassistant/number/pool-controller/timezone/statehomeassistant/number/pool-controller/timezone/set
Timezone infosensor/timezone-infohomeassistant/sensor/pool-controller/timezone-info/state-
Log outputsensor/loghomeassistant/sensor/pool-controller/log/state-
Log levelselect/log-levelhomeassistant/select/pool-controller/log-level/statehomeassistant/select/pool-controller/log-level/set
Log to serialswitch/log-serialhomeassistant/switch/pool-controller/log-serial/statehomeassistant/switch/pool-controller/log-serial/set
OTA update triggerbutton/ota-update-homeassistant/button/pool-controller/ota-update/set
OTA statussensor/ota-statushomeassistant/sensor/pool-controller/ota-status/state-

Features

All entities support:

  • Temperature sensors (pool, solar, controller)
  • Relay switches (pool pump, solar pump)
  • Operation modes (auto, manual, boost, timer)
  • 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