AquaDaemon project

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.

Get started →   Explore the documentation →

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.

AquaChemD dashboard / hardware photograph — image to be added

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.

Read the dosing strategy →

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

curl -fsSL https://aquadaemon.org/aquachemd/install.sh | sudo bash

See Getting Started for prerequisites and first configuration.

Documentation

Source of truth: AquaChemD's source code, README and full documentation remain in the GitHub repository. This site presents that material in a public-facing form.