Users Guide of Pool Controller
Setup
Initial WiFi setup via Web Interface (AP Mode)
When the controller has no WiFi configured, it starts in Access Point mode:
- Power on the controller
- Connect your phone/laptop to WiFi SSID
Pool-Controller-Setup(open network) - Open a browser and go to
http://192.168.4.1— the captive portal redirects automatically - Go to the WiFi Setup tab, scan networks, select yours and enter the password
- The controller saves the config and reboots into STA mode
- Find the controller’s IP in your router’s DHCP list and reconnect
Note: In AP mode, the web interface has no password (intentional for initial setup). Once connected to your WiFi, a login is required (default password:
admin).
Initial WiFi setup via WPS
You can trigger WPS onboarding during boot to pair the controller with your router without typing WiFi credentials manually:
- Power on (or reset) the controller normally and wait until firmware startup begins.
- Then press and hold the BOOT button for at least 2 seconds.
- Start WPS Push Button Connect (PBC) on your router.
- Wait until pairing completes.
When WPS succeeds, the controller updates the WiFi credentials and stores them
persistently in /config.json on LittleFS.
Finding the Controller on Your Network
Once connected, find the controller’s IP:
Check your router’s DHCP client list
Or use a network scanner like
nmap:nmap -p 80 192.168.1.0/24 # scan your subnet for open port 80The web interface shows the assigned IP in the dashboard header
Booting Controller
When booting the controller, it will provide feedback on establishing the WiFi connection and connection to the MQTT broker:
- “LED”
Slowly when connecting to the Wi-Fi - “LED”
Faster when connecting to the MQTT broker
Web Dashboard
The controller provides a modern web dashboard at http://<controller-ip>/ with the following tabs:
- Dashboard — Live telemetry: pool/solar/controller temperature, pump states, free heap, RSSI, operating mode
- WiFi Setup — Scan and configure WiFi credentials
- MQTT Settings — Broker host, port, username, password, TLS toggle
- Configuration — Operation mode, temperature limits, hysteresis, timer, timezone
- Security & Update — Change admin password, OTA firmware update, restart, factory reset
Changing Settings via Web UI
Login with your admin password (default:
admin)Navigate to the Configuration tab
Adjust settings as needed:
- Operation Mode: Automatic (Solar), Manual Control, Boost Pump, Timer Schedule
- Max Pool Temp: Target water temperature (°C)
- Min Solar Temp: Minimum solar collector temperature (°C)
- Temperature Hysteresis: Deadband to prevent rapid toggling (K)
- Loop Interval: How often the controller evaluates rules (seconds)
- Timezone: Select from 10 supported timezones with DST handling
Click Save parameters — changes are immediately active and persist across reboots
If MQTT/Home Assistant is connected, the new values are automatically published
Tip: You can also change settings programmatically via the REST API — see the Software Guide.
Settings
There are some specific settings for the controller:
Pool max. temperature: The maximum temperature of the water in the pool which should not be exceeded.
- Unit:
°C - Default value:
29
- Unit:
Solar min temperature: The minimum temperature of the heat storage tank, which should not fall below.
- Unit:
°C - Default value:
50
- Unit:
Hysteresis: Hysteresis in Kelvin, which is used to verify if heating should be enabled or disabled to prevent fast toggling.
- Unit:
K - Default value:
1
- Unit:
Pump Timer: time range when pool pump has to run.
- start h/min
- end h/min
Loop Interval:
- Unit:
sec - Default value:
30
- Unit:
Timezone: Select the timezone for the controller to properly handle local time and daylight saving time (DST) transitions.
- Available timezones:
0- Central European Time (Berlin, Paris) with CEST/CET DST1- Eastern European Time (Helsinki, Athens) with EEST/EET DST2- Western European Time (London, Lisbon) with BST/GMT DST3- US Eastern Time (New York, Washington) with EDT/EST DST4- US Central Time (Chicago, Houston) with CDT/CST DST5- US Mountain Time (Denver) with MDT/MST DST6- US Pacific Time (Los Angeles, San Francisco) with PDT/PST DST7- Australian Eastern Time (Sydney, Melbourne) with AEDT/AEST DST8- Japan Time (Tokyo) - No DST9- China Time (Beijing) - No DST
- Default value:
0(Central European Time) - This setting can be configured during initial setup or changed at runtime via MQTT
- Note: Runtime changes via MQTT (operation-mode/timezone) are temporary.
To persist the timezone setting across reboots, update the
timezoneconfiguration in the device settings.
- Available timezones:
Rules
The Smart Swimmingpool Controller implements Rules to handle different situations:
Rule: Manual
The pump for cleaning and solar heating are enabled/disabled completely manual and independent.
Rule: Timer
This rule enables the cleaning pump based on timer settings. Solar heating is disabled.
Rule: Auto
This rule enables the cleaning pump based on timer settings. Solar heating is enabled smartly if the cleaning pump is enabled by timer and the heat storage tank has sufficient temperature.
If the maximum temperature of the pool water is reached, the solar heating is disabled.
Rule: Boost
Heating of pool water with all power.
MQTT Interface
The Smart Swimmingpool Controller uses MQTT to communicate with your smart home. It supports Home Assistant MQTT Discovery for automatic device registration — devices appear automatically in Home Assistant without any manual configuration.
OpenHAB Integration
The Smart Swimmingpool Controller could be integrated in openHAB since version 2.4.
It is possible to interact with the controller to enable/disable the pump or to switch the current rule.
Also it is possible to monitor the current values of temperatures or states.
At least the settings could be updated, too.
- TODO: add example of openhab config.