Poll the Vitocal HPMU event log (DID 259/260) via open3e #136

Merged
k.renner merged 1 commits from feat/open3e-poll-vitocal-dtc-log into master 2026-07-09 10:42:21 +00:00
Owner

Why

Investigating an unexplained 21-minute full-power heating run on 2026-07-09 09:25 (HK3 forced to Comfort from outside HA), the HPMU event log turned out to be the one diagnostic surface open3e has never published. vitocal.259 (InfoDtcList) and vitocal.260 (InfoDtcHistory) were absent from edge_open3e_datapoints, so only the VX3's counterpart vx3.266 (ErrorDtcHistory) was ever visible.

Verified before adding

A one-shot read over the existing command topic:

{"mode":"read","data":[259,260],"addr":"0x680"}
  • both DIDs decode cleanly through the vcal codec set
  • they are capped lists — 2 and 9 entries at read time (the VX3 sibling caps at 10)
  • so the multi-frame ISO-TP read is cheap next to the 87 DIDs already polled every 30 s

Payload sample (260, newest first):

Event Timestamp
NormalOperation 2026-07-07 16:43:24
LegionellaProtectionTemperatureReached 2026-07-07 16:43:21
LegionellaProtectionTemperatureReached 2026-07-01 14:32:53
LagDeviceDtcReported 2026-06-26 21:56:01
SystemLagDeviceAdded 2026-04-27 10:33:08

Scope note

This log records faults and info events only. It does not record setpoint or operating-program changes, so it would not have attributed the 09:25 run that prompted the investigation. It is still the right place to catch recurrences of the legionella heating-rod cycle and lag-device dropouts.

Read-only — no -w flag, no new write path. Follow-up (separate repo) if wanted: MQTT sensors in homeassistant packages/open3e.yaml so the log lands in HA history rather than only on the broker.

🤖 Generated with Claude Code

## Why Investigating an unexplained 21-minute full-power heating run on **2026-07-09 09:25** (HK3 forced to `Comfort` from outside HA), the HPMU event log turned out to be the one diagnostic surface open3e has never published. `vitocal.259` (`InfoDtcList`) and `vitocal.260` (`InfoDtcHistory`) were absent from `edge_open3e_datapoints`, so only the VX3's counterpart `vx3.266` (`ErrorDtcHistory`) was ever visible. ## Verified before adding A one-shot read over the existing command topic: ``` {"mode":"read","data":[259,260],"addr":"0x680"} ``` - both DIDs decode cleanly through the `vcal` codec set - they are **capped lists** — 2 and 9 entries at read time (the VX3 sibling caps at 10) - so the multi-frame ISO-TP read is cheap next to the 87 DIDs already polled every 30 s Payload sample (`260`, newest first): | Event | Timestamp | |---|---| | `NormalOperation` | 2026-07-07 16:43:24 | | `LegionellaProtectionTemperatureReached` | 2026-07-07 16:43:21 | | `LegionellaProtectionTemperatureReached` | 2026-07-01 14:32:53 | | `LagDeviceDtcReported` | 2026-06-26 21:56:01 | | `SystemLagDeviceAdded` | 2026-04-27 10:33:08 | ## Scope note This log records **faults and info events only**. It does *not* record setpoint or operating-program changes, so it would not have attributed the 09:25 run that prompted the investigation. It is still the right place to catch recurrences of the legionella heating-rod cycle and lag-device dropouts. Read-only — no `-w` flag, no new write path. Follow-up (separate repo) if wanted: MQTT sensors in `homeassistant` `packages/open3e.yaml` so the log lands in HA history rather than only on the broker. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
k.renner added 1 commit 2026-07-09 10:41:31 +00:00
Investigating an unexplained 21-minute full-power heating run on
2026-07-09 09:25 showed the HPMU event log is the one diagnostic
surface open3e never published: vitocal.259 (InfoDtcList) and
vitocal.260 (InfoDtcHistory) were absent from the poll list, so only
the VX3's counterpart (vx3.266) was ever visible.

A one-shot `{"mode":"read","data":[259,260],"addr":"0x680"}` over
open3e/cmnd confirmed both decode cleanly through the vcal codec and
are capped lists — 2 and 9 entries respectively — so the multi-frame
ISO-TP read costs little next to the 87 DIDs already polled at 30 s.

Scope note: this log records faults and info events only
(NormalOperation, LagDeviceDtcReported,
LegionellaProtectionTemperatureReached). It does not record setpoint
or operating-program changes, so it would not have attributed the
09:25 run. It is still the right place to catch recurrences of the
legionella heating-rod cycle and lag-device dropouts.

Read-only: no -w flag, no new write path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
k.renner merged commit e785362487 into master 2026-07-09 10:42:21 +00:00
Sign in to join this conversation.