A small always-on machine was needed to poll every device, hold the CO₂ control loop, and publish the record, without becoming something the tank depends on to stay alive.
What I've learned
·Everything safety-critical belongs on the controller; the Pi is for orchestration and record-keeping.
·An external watchdog that runs off the Pi is necessary, since it catches the failures the Pi itself cannot report.
Installation
Not yet documented.
Configuration
·Runs Pearling, the self-hosted software that runs and records the tank
·Runs the light's day over Bluetooth, and switches CO₂ and the light's power on a Kasa HS300 smart strip that holds its own CO₂ safety timer and backup schedule
·Polls the controller, filter and doser over the network, and the heater and Nero pump over Bluetooth, writing to a time-series store
·Learns each daily behaviour's normal range from the record and pushes anything out of line to a phone; emails a weekly report
·Schedules the EHEIM's day and night flow and runs the water-change mode on the controller
·Switches CO₂ on a fixed window that follows the light; the closed pH loop it once held is switched off
·Drove the tank camera until August 2026, when the camera was removed, and an illuminated background until that failed in October 2026
Maintenance
Not yet documented.
Known limitations
Not yet documented. Absence here means nothing has been written down, not that there are none.
Controller integration
Polls the controller, filter, doser and Bluetooth devices; runs the light and the CO₂ and light power on a smart strip; writes the time-series record. The CO₂ shut-off and the light's power window are held on the strip itself, so they survive the Pi stopping.
Maintenance history
No service dates recorded yet. Scheduled replacement applies to consumables; this item is tracked by condition instead.