Skip to content

Add Hvac and Setpoint client features#239

Open
andig wants to merge 5 commits into
enbility:devfrom
evcc-io:feat/hvac-setpoint-features
Open

Add Hvac and Setpoint client features#239
andig wants to merge 5 commits into
enbility:devfrom
evcc-io:feat/hvac-setpoint-features

Conversation

@andig

@andig andig commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Adds features/client and features/internal helpers for the SPINE HVAC and Setpoint features, including tests.

This is groundwork for the remaining HVAC use cases (system function monitoring/configuration and temperature configuration), which will be submitted as separate PRs per use case, stacked on this one:

  • Hvac: read system function descriptions/data, operation mode descriptions, operation mode and setpoint relations; write hvacSystemFunctionListData
  • Setpoint: read setpoint descriptions/data/constraints; write setpointListData

🤖 Generated with Claude Code

andig and others added 2 commits July 17, 2026 12:22
Groundwork for the HVAC system function and temperature use cases.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
andig and others added 2 commits July 20, 2026 17:08
The Hvac and Setpoint write helpers issued a write command without
checking whether the remote server feature advertises the Write()
operation for the corresponding function. Guard each write helper so it
returns api.ErrNotSupported unless the remote advertises Write(),
matching the existing LoadControl/DeviceConfiguration behaviour.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Hvac and Setpoint write helpers sent a list containing only the
modified entry. Servers that interpret the payload as a full replacement
would then drop unrelated system functions, overruns or setpoints.

Send a proper partial write when the remote advertises WritePartial().
Otherwise copy the cached list, merge the modified entries and write the
complete list, matching the LoadControl/DeviceConfiguration behaviour.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@andig

andig commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

@volschin All required commits have been cherry-picked into the depending use cases. This PR can either be merged (preferred) or closed and and dependent, maybe #247 merged before reviewing the remaining ones. Hope this doesn't create confusion.

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.

1 participant