Skip to content
Upgrade & Migration

Upgrade & Migration

🏊 Smart Swimming Pool: How to update the pool controller firmware between major versions.

This page documents breaking changes, new parameters, and migration steps between releases. Always read the relevant section before updating.


Quick Reference

From β†’ ToTypeBreaking ChangesMigration Required
v2.x β†’ v3.2Major rewriteβœ… MQTT protocol, Homie β†’ HA DiscoveryConfig reset, re-flash
v3.2 β†’ v3.3Minor updateNoneOptional (config preserved)

v2.x β†’ v3.2 (Major Update)

Released: May 2026

This update is a major rewrite of the firmware. The entire MQTT protocol changed from Homie convention to Home Assistant MQTT Discovery.

Breaking Changes

Areav2.xv3.2+Impact
MQTT ProtocolHomie conventionHome Assistant MQTT DiscoveryAll MQTT topics changed. Smart home integrations must be reconfigured
Device IDCustompool_controller_<mac>Home Assistant creates a new device β€” delete the old one
Firmware targetESP8266 supportedESP32 onlyESP8266 users cannot upgrade; must migrate hardware
ConfigurationWebserver-basedWeb UI on LittleFSSettings not compatible; must be reconfigured
Web interfaceBasic HTML formsFull SPA on LittleFSRequires uploadfs step after flashing

Migration Steps

  1. Back up your settings β€” Take screenshots of your v2.x configuration (MQTT broker, temperature limits, timer settings)
  2. Flash the new firmware via USB (PlatformIO, esp32dev environment)
  3. Upload the filesystem image (pio run -e esp32dev -t uploadfs)
  4. Reconfigure everything via the new web interface (WiFi, MQTT, temperature limits)
  5. Reconfigure Home Assistant: The new controller appears as a new device (Pool Controller). Add entities to your dashboard. Delete the old v2.x device from HA
  6. Reconfigure automation: MQTT topics have changed β€” update any custom automations that referenced Homie topics
  7. Verify that all sensors report correct values and pumps respond

What Changed for the Better

v2.x Limitationv3.2+ Solution
Homie topics required custom HA configurationAutomatic MQTT Discovery β€” no YAML needed
ESP8266 had limited flash and RAMESP32 with 4MB flash, ample RAM
Web UI was bare-bonesFull configuration UI on LittleFS
No OTA updatesOTA from GitHub releases (added in v3.3)

v3.2 β†’ v3.3 (Minor Update)

Released: June 2026

New Features

FeatureDescription
OTA UpdatesFirmware can now be updated via Home Assistant or the web interface. The controller checks GitHub releases automatically
NTP ConfigurationConfigure NTP server and timezone via web UI or MQTT β€” no more compile-time timezone
Local Time DisplayController shows current local time in diagnostics
Timer entitiesTimer start/end changed from separate hour+minute numbers to single time entities (HH:MM format)
Web UI restructuredSettings tabs reorganized; HA entity categories updated
Config backupNVS configuration is backed up; MQTT errors are reported
LittleFS mount fixWeb portal now correctly mounts LittleFS on startup

Breaking Changes

None. The v3.3 update is fully backward-compatible with v3.2 configurations.

Migration Steps

  1. Option A β€” OTA from Home Assistant:

    • Go to Settings β†’ Devices & Services β†’ Devices β†’ Pool Controller
    • The Firmware update entity (update.pool_controller_firmware) shows the new version
    • Click Install β€” the controller downloads and applies the update
    • Wait for the controller to reboot
  2. Option B β€” OTA from web interface:

    • Open the controller web interface
    • Go to System β†’ Firmware Update
    • Click Check for Updates and follow the prompts
  3. Option C β€” USB flash (fallback):

    • Connect the ESP32 via USB
    • Flash firmware + filesystem as usual
    • All settings are preserved (stored in NVS partition)

Post-Update Checks

  • Web interface reachable at the same IP address
  • All temperature sensors report correct values
  • MQTT connection established
  • Home Assistant shows all entities as available
  • Timer entities now show as single HH:MM controls

New Configuration Parameters

ParameterTypeDefaultDescription
ntp_serverTextpool.ntp.orgNTP server for time synchronization
timezoneSelectUTCIANA timezone (e.g., Europe/Berlin)

These are configured via:

  • Web interface: Configuration β†’ System
  • Home Assistant: text.pool_controller_ntp_server, select.pool_controller_timezone

Rollback

If an update causes issues, you can roll back to the previous version:

v3.3 β†’ v3.2

Settings may not be compatible β€” v3.3 introduced new parameters (NTP, timezone) that v3.2 does not recognize. v3.2 will ignore unknown parameters, so downgrade is generally safe.

  1. Flash the v3.2 firmware via USB:
    git checkout v3.2.0
    pio run -e esp32dev -t upload
  2. Upload the v3.2 filesystem image:
    pio run -e esp32dev -t uploadfs
  3. Reboot and verify everything works

v3.2 β†’ v2.x

Full reconfiguration required. See the v2.x β†’ v3.2 migration steps above β€” the same incompatibilities apply in reverse.


Version History

VersionDateHighlights
v3.3.02026-06-06OTA updates, NTP config, local time display, timer entities, web UI restructure
v3.2.02026-05-22HA MQTT Discovery, ESP32-only, new web UI, WPS onboarding
v2.x2020–2025Homie convention, ESP8266+ESP32, openHAB-centric

See the GitHub Releases for the full changelog of each version.

Last updated on