AquaChemD
Open-source, automated pool water chemistry — pH, ORP, and dosing, done right.
A lightweight Linux daemon for Raspberry Pi that reads pool-water sensors, controls dosing equipment, publishes state through MQTT and provides a built-in web interface.
What it does
Reads real sensors
pH and ORP through Atlas Scientific EZO I2C circuits, temperature through EZO, DS18B20 or MQTT, pressure through supported I2C or sysfs sensors, plus generic Linux sensor inputs.
Controls dosing
Configurable pH/ORP threshold tables, rolling averages, per-dose runtime limits, dose-volume limits and a water-topup channel.
Interlocks first
Dosing is gated by MQTT and GPIO conditions. Conditions can also delay when sensor readings become trusted after circulation starts.
MQTT native
Publishes sensors, pump state, dose statistics, tank levels and safety conditions with Home Assistant MQTT Discovery support.
Built-in web UI
Monitor sensors, operate pumps, trigger doses, edit configuration and manage cron-based dosing schedules from the daemon itself.
Home automation
Designed to integrate with AqualinkD, Home Assistant, HomeKit and other systems through MQTT and the documented HTTP API.
Designed for real pool hardware
The project documents support for Atlas Scientific EZO circuits, GPIO relay-driven dosing pumps, flow/level switches, pressure sensors, Dallas 1-Wire temperature probes and external MQTT sources. Its flow-cell work covers commercial cells and a DIY clear-PVC bypass design.
Dosing strategy
AquaChemD's documented approach is transparent: use a configurable lookup table rather than hiding the dosing decision behind a generic formula. The project's real-world tuning notes explain how a pool-specific table was developed and monitored.
Safety
Dosing is not treated as simply turning a pump on. MQTT and GPIO interlocks can gate dosers, sensors can be scoped to conditions, and dose runtime and total-volume limits provide additional protection against unexpected readings or equipment behavior.
Quick install
See Getting Started for prerequisites and first configuration.
Documentation
Getting Started →
Installation, prerequisites, service control and first configuration.
Hardware →
Sensors, dosing pumps, GPIO, MQTT and physical hardware.
Flow Cell →
Commercial and DIY flow-cell design notes.
API →
HTTP and MQTT interfaces and commands.
Web / App UI →
Dashboard, scheduler and management interface.
Home Assistant →
MQTT discovery and entity guidance.
HomeKit →
HomeKit mappings and integration options.
FAQ →
Common questions about installation, sensors, dosing and integrations.