Skip to content

Add Monitoring of DHW System Function (MDSF) use case#246

Open
andig wants to merge 6 commits into
enbility:devfrom
evcc-io:feat/ma-mdsf
Open

Add Monitoring of DHW System Function (MDSF) use case#246
andig wants to merge 6 commits into
enbility:devfrom
evcc-io:feat/ma-mdsf

Conversation

@andig

@andig andig commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Adds the Monitoring of DHW System Function (MDSF) use case (EEBus UC TS V1.0.0) as a Monitoring Appliance client actor in usecases/ma/mdsf.

Scenarios:

  1. Monitor DHW operation mode (mandatory) — OperationModes, CurrentOperationMode
  2. Monitor DHW overrun (optional at the server) — IsOverrunActive (from hvacSystemFunctionListData), OverrunStatus (one-time DHW overrun resolved via hvacOverrunDescriptionListData overrunType=oneTimeDhw + affectedSystemFunctionId)

Server is a DHWCircuit entity; all six HVAC functions are read-only in this use case. The client subscribes to the HVAC server feature (no binding). Writing the operation mode / overrun belongs to the CDSF use case.

Stacked on #239 (Hvac and Setpoint client features) — only the last commit is specific to this PR.

🤖 Generated with Claude Code

andig and others added 6 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>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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>
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