Skip to content

feat: per-phase energy via MQTT (Plan-08 #62)#82

Merged
basmeerman merged 1 commit intomasterfrom
work/plan-08
Mar 19, 2026
Merged

feat: per-phase energy via MQTT (Plan-08 #62)#82
basmeerman merged 1 commit intomasterfrom
work/plan-08

Conversation

@basmeerman
Copy link
Copy Markdown
Owner

Summary

  • New EnergyPhase[3] field in Meter class for per-phase energy (Wh)
  • Per-phase energy register reads for Eastron SDM630/SDM630-INV (registers 0x015A-0x015F)
  • 6 new MQTT topics: MainsEnergyL1/L2/L3, EVEnergyL1/L2/L3
  • HA discovery with device_class: energy, state_class: total_increasing, unit: Wh
  • Zero-value guard (same pattern as total energy topics)
  • New ModbusRequestLoop case 22, ~60s polling interval

Other meter types can be added incrementally by extending requestPhaseEnergyMeasurement().

Test plan

  • Native tests: 37 suites, all pass
  • Address/UB sanitizers: clean
  • cppcheck: clean
  • ESP32 build: SUCCESS
  • CH32 build: SUCCESS

Closes #62

🤖 Generated with Claude Code

Add per-phase energy (Wh) data via MQTT for meters that support it.
- New EnergyPhase[3] field in Meter class
- Per-phase energy register read for Eastron SDM630/SDM630-INV
  (registers 0x015A-0x015F, total active energy per phase)
- 6 new MQTT topics: MainsEnergyL1/L2/L3, EVEnergyL1/L2/L3
- HA discovery with device_class=energy, state_class=total_increasing
- Zero-value guard prevents publishing before first valid read
- 6 new mqtt_slot_t entries, MQTT_CACHE_MAX_SLOTS bumped to 84
- New ModbusRequestLoop case 22 for per-phase energy reads (~60s interval)

Other meters can be added incrementally by extending
requestPhaseEnergyMeasurement() with their per-phase energy registers.

Closes #62

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@basmeerman basmeerman merged commit 016349d into master Mar 19, 2026
11 checks passed
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.

[Plan-08] Increment 4: Per-Phase Energy Data

1 participant