Repository navigation
Releases
HVACTrend 0.2.0
Rescan a controller after a programming change, from the Point Selection page, with logging carrying on while it reads.
Already on 0.1.0? git pull (or unzip this version over the old one), then restart the server. No new dependencies; your configuration and database are not touched. Upgrading has the details.
New? Download Source code (zip) below and double-click install.bat. Getting started takes it from there.
Added
- ⟲ Rescan controller on Point Selection. Pick a controller (the one holding the unit on screen is chosen for you) and it reads its object list again on the server's own BACnet connection. It takes seconds for a panel, a minute or two for a supervisory controller with thousands of objects, and shows its progress.
- New points go on their unit's list, unticked, placed by the equipment map.
- Renamed points keep their logging and their history.
- Points that already have a unit are never moved, so a split you made by hand stays as it is, and nothing is deleted.
- Points the controller no longer has are listed for you to untick, and only after its whole object list was read: a short read is never taken for deletions.
- A controller whose address changed is found again by Who-Is.
- Reads only, like everything else here, and not offered to other computers on the network.
- How it works.
Fixed
- ⟳ Rebuild model said "Rebuild failed" after every successful rebuild while the statistical baselines are off, which is the default.
- A side-stream separator is no longer taken for a condenser pump. Its pump's run status was classified as a condenser pump status, so a filter pump that runs all the time counted as proof the condenser pumps were on; its DP shared the loop DP's role. It now has roles of its own. The first rescan of a real plant panel found this.
Also
- The test suite now checks that every page's script parses, and runs 458 tests on Windows and Linux, Python 3.11 to 3.14.
Full list: CHANGELOG.md.
HVACTrend 0.1.0
The first public release. HVACTrend has logged one office building around the clock since July 2026; this is the same program, made to fit any building with BACnet/IP.
Get it
Windows: install Python 3.11 or newer, download Source code (zip) below and unzip it, then double-click install.bat. It sets up a private Python environment, installs HVACTrend and runs the setup wizard. Getting started takes it from there.
Linux: git clone --branch v0.1.0 https://github.com/jamesccupps/HVACTrend.git, then ./install.sh. systemd units are in deploy/systemd.
Just looking? The demo runs a made-up building with a week of readings, no BACnet network needed (how).
HVACTrend only reads. It never writes to a controller, and nothing on its pages can change that (security).
What's in it
- Read-only BACnet/IP trend logging: ReadPropertyMultiple with a per-object fallback, a time budget per controller, the quality of every reading, and priority-array reads so overrides show.
- A trend viewer made for HVAC work: zoom, pan and calendar days; compare with the day or week before; a reading against its setpoint; X-Y scatter, outdoor weather and occupied-hours shading; notes, saved views, CSV export; works on a phone.
- Unit dashboard, Point Selection and Point Coverage pages.
- Rule-based alarms, checked every 5 minutes by a separate watchdog: discharge air and duct static against setpoint, a boiler enabled but not heating, impossible readings, a controller's own alarm points.
- Phone notifications through ntfy (free, no account): data stopped, a controller not answering, equipment alarms and their all-clears, a morning check-in and a daily reminder.
- Backups: a verified copy of the database every week, optionally to a synced folder off the computer, and a daily copy of the configuration.
- An optional AI summary (Claude, your own API key) that explains what the alarm rules found.
- Setup: installers for Windows and Linux, a setup wizard, a Windows service script, and the demo building.
- Safe defaults: the pages open on this computer only; other computers, once allowed, get the read-only trend viewer and nothing else; nothing is sent anywhere until you set it up.
Full list: CHANGELOG.md. Point names your controllers use that HVACTrend doesn't recognise yet are the most useful thing to report: there's an issue form for them.