Skip to content

Bump to 0.27.0: a dead brand spoken to, and the grid pointed the right way - #190

Merged
Timdebruijn merged 1 commit into
mainfrom
chore/bump-0-27-0
Aug 10, 2026
Merged

Bump to 0.27.0: a dead brand spoken to, and the grid pointed the right way#190
Timdebruijn merged 1 commit into
mainfrom
chore/bump-0-27-0

Conversation

@Timdebruijn

Copy link
Copy Markdown
Owner

Twenty-one commits since v0.26.4. Minor, not patch — three things are genuinely new.

A protocol family MaxTalk, ASCII over RS485, for inverters whose vendor went bankrupt in 2014 and took the monitoring with it
A canonical channel grid.power, signed, positive = importing — reaching Modbus register 406, a Prometheus gauge and a dashboard row
A brand Sofar HYD, single- and three-phase; the first maps here whose second source ran on real hardware

Verification

1022 native cases, all eleven gates, ruff, four board builds.

The 1CH build emits four warnings, all inside eModbus (deprecated AsyncClient::close, a
uint32 format string) and none in src/ — checked rather than assumed, because the last
release note made that claim too.

What review caught before this tag

Four defects, none of which reached it: a codec line no test could fail on; a driver that hung
the suite instead of failing it
, bounded only by a clock the host mock holds still, while
holding the bus lock
; a driver registration that vanished inside another driver's #if; and a
grid register left unmapped because I read half of a wrapped table cell and reasoned carefully on
top of it.

…t way

Twenty-one commits since v0.26.4. A minor rather than a patch, because three
things are genuinely new: a protocol family, a canonical channel and a brand.

MaxTalk, ASCII over RS485, for inverters whose vendor went bankrupt in 2014 and
took the monitoring with it -- which is the case this firmware exists for. Framing
in src/protocols/maxtalk/, brand-free like the PMU family beside it; the driver is
read-only because neither source documents a write.

grid.power, signed, positive meaning importing. Almost every meter reports one
signed number and a profile cannot do arithmetic, so a device whose only grid
register is signed had nowhere to publish it. Not a new pattern -- battery.power
has sat beside its raw rails for the same reason since those channels existed.

Sofar HYD, single- and three-phase: a new brand, and the first maps here whose
second source ran on real hardware. That settled which of three temperature
registers an operator should read, a question the vendor document leaves open.

VERIFIED: 1022 native cases, all eleven gates, ruff, four board builds. The 1CH
build emits four warnings, all inside eModbus (deprecated AsyncClient::close and a
uint32 format string) and NONE in src/ -- checked rather than assumed, because the
last release note made that claim too.

Four defects were caught by review before merge and none reached this tag: a codec
line no test could fail on, a driver that hung the suite instead of failing it
while holding the bus lock, a registration that vanished inside another driver's
#if, and a grid register left unmapped because I read half of a wrapped table cell
and reasoned carefully on top of it.
@Timdebruijn
Timdebruijn marked this pull request as ready for review August 10, 2026 09:53
Copilot AI lite review requested due to automatic review settings August 10, 2026 09:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the firmware version constants for the 0.27.0 release and refreshes the in-source release notes in src/main.cpp to describe the new features being shipped.

Changes:

  • Bump HELIOGRAPH_VERSION_MINOR from 26 → 27 and reset HELIOGRAPH_VERSION_PATCH to 0.
  • Replace the prior patch-level release-note block with a new 0.27.0 release-note block.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/main.cpp
Comment on lines +485 to +487
// A NEW BRAND, two profiles. Sofar HYD, single- and three-phase, and they are the first maps
// here with a second source that ran on real hardware -- which settled a question the vendor
// document leaves open, namely which of three temperature registers an operator should read.
@Timdebruijn
Timdebruijn merged commit 77beb9e into main Aug 10, 2026
8 checks passed
@Timdebruijn
Timdebruijn deleted the chore/bump-0-27-0 branch August 10, 2026 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants