Repository navigation
Releases: bigeric32/nodejs-poolController
Release list
AutoSwg % — v0.1.1 (njsPC) — patch for v0.1.0 testers
This is a small follow-up to autoswg-v0.1.0, njsPC only — dashPanel and REM are unchanged, keep using their existing autoswg-v0.1.0 tag and fix/relay-shutdown branch alongside this one.
What changed
Fixed the "projected current FC" calculation to properly account for multiple manual SWG % changes made since your last PoolMath FC reading.
Previously, if you changed the SWG % by hand more than once between FC readings, the projection would assume your latest % had been running for the entire elapsed time since the last reading — silently backdating it over any earlier % that was actually in effect for part of that period. This could skew both the "Projected current FC" figure and the resulting recommendation. It's now credited piecewise: each % change is counted only for the actual run-window hours it was in effect, the same way the longer-term consumption averaging already worked.
No other behavior changes in this update.
Upgrading from v0.1.0
git fetch --tags
git checkout autoswg-v0.1.1
npm install
npm run build
Then restart njsPC as usual. dashPanel and REM don't need any changes for this update.
See also: nodejs-poolController wiki for the full AutoSwg % writeup, and the autoswg-v0.1.0 release for the original testing instructions and issue-reporting guide (both still apply).
AutoSwg % — v0.1.0 (Testing Release)
AutoSwg % — v0.1.0 (Testing Release)
This is the first testable build of AutoSwg %, a PoolMath-driven automation
for Pentair-style salt cells that recommends (and optionally applies) a SWG
duty-cycle percentage based on your pool's actual chlorine consumption,
instead of a fixed, manually-tuned setting.
This is a pre-release for testing, built on top of a standard
nodejs-poolController / dashPanel / relayEquipmentManager (REM) setup. It
requires all three components below to be at the matching versions.
What you need
| Component | Version to use |
|---|---|
| nodejs-poolController (njsPC) | tag autoswg-v0.1.0 |
| nodejs-poolController-dashPanel | tag autoswg-v0.1.0 |
| relayEquipmentManager (REM) | branch fix/relay-shutdown |
See the separate Testing Instructions document for setup steps.
Highlights
AutoSwg % reads your PoolMath chlorine log, calculates your pool's actual
FC consumption rate, and recommends a salt cell % that will both replace that
ongoing consumption and correct toward a target FC level within a chosen
number of days. Nothing is ever applied automatically without an explicit,
reviewed confirmation.
- Check Now / Apply / Cancel workflow — review a recommendation (current
estimate, recommended vs. steady-state "maintenance" %, consumption rate,
projected FC, and the reasoning behind it) before anything is sent to the
chlorinator. - Schedule-aware run window — automatically uses a linked SWG schedule's
real start/end times (including sunrise/sunset), or manually configured
hours if no schedule is linked. - Bidirectional automatic stepping — after applying a recommendation that
differs from steady-state maintenance, automatically schedules a step back
to maintenance (up or down) once the target period elapses. Survives a
server restart. - Manual-override awareness — changing the SWG % by hand (from the
dashboard or the chlorinator settings page) now prompts for confirmation if
it will cancel a pending automatic step, and correctly updates "what's
actually running now" to reflect the override. - Dashboard status at a glance — a compact summary and popup showing the
last applied change and any pending step, without needing to run a fresh
calculation. The dashboard never shows an unapplied, in-progress
calculation — that stays on the dedicated calculation screen. - Local audit history — every applied change (automatic or manual) and
relevant PoolMath entries are logged locally and exportable as CSV/JSON.
Also included in this build
These are not required for AutoSwg % to function, but were fixed or added
along the way and are included in this combined test build:
nodejs-poolController
- Fixed a sunrise-to-sunset schedule failing to re-trigger its relay after a
mid-day restart. - Fixed a duplicate-branch bug in the sunset run-window calculation.
- Fixed a heater setpoint being clobbered by schedule re-trigger logic after
a restart. - Fixed the Cool Point (nocturnal solar cooling) option not appearing in the
UI. - Fixed solar heat failing to resume after a restart (a stale "reheat guard"
temperature blocked it until the setpoint was touched by hand). - Solar on/off decisions now use the truncated water temperature, so solar
runs closer to the true setpoint. - Added a chlorinator "recent messages" diagnostic view (RS485 traffic in
both directions, including commands sent by njsPC itself). - Fixed pm2 orphaned-process buildup (process manager now points directly at
the compiled entry point).
dashPanel
- Added today's sunrise/sunset display next to the Schedules panel title.
- Added a Nocturnal Cooling checkbox to the pool body's heat settings popup.
- Added the chlorinator "Details" popup for the RS485 diagnostic view above.
relayEquipmentManager
- Fixed relays not actually de-energizing on a clean shutdown.
Changelog
v0.1.1 (njsPC only — dashPanel and REM unchanged, keep using v0.1.0/fix/relay-shutdown)
- Fixed projectedCurrentFc's "generated since last reading" calculation to correctly credit each SWG % change since your last FC reading for only the run-window hours it was actually in effect, instead of applying whatever % is current now across the entire elapsed period. This matters if you change the SWG % by hand more than once between PoolMath FC readings — previously the projected FC (and therefore the recommendation) could be skewed by assuming your latest % had been running the whole time.
v0.1.0 — initial testing release.
Known limitations
- AutoSwg % currently targets Nixie/virtual-controller setups with a
directly-controlled chlorinator; it has not been tested against a physical
OCP (IntelliCenter/EasyTouch)-managed chlorinator. - Requires a PoolMath account with a public share page/code.
Documentation
Full writeup of how AutoSwg % works lives on the
nodejs-poolController wiki.
Reporting Issues
Found a bug, or something not behaving as described? Please open an issue in
the repo where the problem actually shows up:
- AutoSwg % itself, schedules, heaters, or anything backend/protocol-related
→ nodejs-poolController issues - Dashboard display, popups, or anything UI-related
→ nodejs-poolController-dashPanel issues - Relay behavior managed through REM (e.g. relays not turning off)
→ relayEquipmentManager issues
Not sure which? Open it on the njsPC repo and I'll move it if needed.
When filing an issue, please include:
- What you did and what you expected vs. what actually happened
- Whether you're running Nixie or a physical OCP, and your chlorinator model
- The relevant section of the njsPC log around the time of the issue
- For anything protocol/timing-related, a screenshot of the chlorinator's
"Details" popup (RS485 messages) is often more useful than a description