Two features here are LLM-generated: the trend summary and the swim/heater advisor. Both run on a local model on the same Mac that fetches the pool data โ here's exactly what each one sees, what model answers it, and what happens if the model isn't available.
Both AI features call Ollama, a
local LLM runtime, at localhost:11434 on the same Mac that runs the twice-daily fetch.
The prompts (pool readings, weather forecast, today's date) never leave that machine, and neither
model has internet access or tool use โ they just read the numbers they're given and write text
back. The only things that do leave the machine each run are the calls to WaterGuru, the National
Weather Service, and โ if you've enabled push alerts โ ntfy.sh.
The 2-3 sentence readout at the top of the dashboard on whether chlorine, pH, and water temp are trending up, down, or holding steady.
The great/good/marginal/poor verdict on each of the next 5 days, plus the heater lead-time advice paragraph.
great/good/marginal/poor) and a one-phrase
note per day, plus the heater-advice paragraph. The response is validated (right dates, right
verdict values) before the dashboard trusts it.Three local models were compared for the swim advisor specifically, since it has to weigh several factors into a judgment call and return valid JSON โ that's a meaningfully harder ask than the trend summary.
| Model | Result |
|---|---|
| llama3.2:3b | Fast, valid JSON, but inconsistent or illogical verdicts โ e.g. once rated a sunny 78ยฐF day worse than a stormy one. |
| gpt-oss:20b | Ignored the JSON output constraint entirely and returned rambling chain-of-thought prose instead of the requested structure. |
| qwen2.5:32b | Reliable JSON every time, and verdicts that were internally consistent (worse weather reliably scored worse) โ this is what's actually running. Takes roughly 30-45 seconds per run, which is a non-issue for something that runs twice a day in the background. |
The trend summary's ask is simpler (summarize a table of numbers in a few sentences), so the
smaller, much faster llama3.2:3b handles it fine.
These are convenience reads, not safety systems. The chemistry alerts (RED/YELLOW/GREEN, cassette replacement) are WaterGuru's own thresholds, not AI-generated โ the LLMs only touch the trend summary and the swim/heater advice. Treat both as a second opinion worth a glance, not a replacement for checking the water yourself.