Namron 4566702 Edge Thermostat: energy attribute never reports spontaneously, only updates via configure()'s one-time read
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.7k
- Forks
- 2k
- Avg merge
- 18h 55m
- Merged PRs (30d)
- 35
Description
What happened?
On the Namron 4566702 Edge Thermostat (also affects 4566703/4512783/4512784), the energy attribute (seMetering.currentSummDelivered) never updates on its own. power/current (from haElectricalMeasurement) report live continuously, but energy only changes when Zigbee2MQTT explicitly reads it — currently only happening once, inside configure().
I added a configureReporting call for seMetering.currentSummDelivered via an external converter override (mirroring the existing call for haElectricalMeasurement's rmsCurrent/activePower), expecting it to enable periodic reporting the same way it does for power/current. It didn't: the device accepts the configureReporting command without error, but never sends an unsolicited report for this attribute, with or without that extra config applied. Removed the override afterward since it made no measurable difference, behavior is identical on the stock converter.
What did you expect to happen?
energy to periodically report on its own like power/current do, either via the existing reporting config or after adding the extra configureReporting call for the metering cluster.
How to reproduce it (minimal and precise)
- Pair a Namron 4566702 (or 4512783/4512784/4566703) thermostat.
- Watch energy in the frontend or MQTT payload.
- It updates once right after configure/interview, then never again — even during active heating with verified real power draw (800+ W sustained).
- Forcing a device/configure always returns the current, accurate accumulated value — confirmed a heating cycle producing +1.8 kWh of real consumption was correctly reflected the moment configure() re-ran, and 24 hours of automated 30-minute polling tracked smoothly against real usage. The device's internal counter is fine; it just never pushes on its own.
Zigbee2MQTT version
2.13.0-1
Adapter firmware version
20260402
Adapter
SLZB-MRW10
Setup
Zigbee2MQTT add-on on Home Assistant OS (running as a VM, x86_64)
Device database.db entry
{ "friendly_name": "Namron Edge Thermostat Bathroom", "ieee_address": "0x286847fffe118198", "model_id": "4512783", "manufacturer": "Namron AS", "software_build_id": "1.12", "type": "Router", "power_source": "Mains (single phase)", "network_address": 46614, "supported": true, "endpoints": { "1": { "clusters": { "input": ["genBasic","genIdentify","genGroups","genScenes","genOnOff","hvacThermostat","hvacUserInterfaceCfg","msRelativeHumidity","seMetering","haElectricalMeasurement","touchlink","57346"], "output": ["genIdentify","genOta","msOccupancySensing"] }, "bindings": [ {"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"msRelativeHumidity","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"hvacThermostat","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"genBasic","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"genIdentify","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"seMetering","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"haElectricalMeasurement","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"genAlarms","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"msOccupancySensing","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"genTime","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"hvacUserInterfaceCfg","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}}, {"cluster":"genOta","target":{"endpoint":1,"ieee_address":"0x00124b0024c23a5c","type":"endpoint"}} ], "configured_reportings": [ {"attribute":"runningMode","cluster":"hvacThermostat","maximum_repm_report_interval":60,"reportable_change":0}, {"attribute":"onOff","cluster":"genOnOff","maximum_report_interval":65000,"minimum_report_interval":0,"reportable_change":1}, {"attribute":"keypadLockout","cluster":"hvacUserInterfaceCfg","max,"minimum_report_interval":10,"reportable_change":null}, {"attribute":"localTemp","cluster":"hvacThermostat","maximum_report_interval":300,"minimum_report_interval":10,"reportable_change":10}, {"attribute":"occupiedHeatingSetpoint","cluster":"hvacThermostat",300,"minimum_report_interval":10,"reportable_change":50}, {"attribute":"rmsCurrent","cluster":"haElectricalMeasurement","maximum_report_interval":300,"minimum_report_interval":10,"reportable_change":1}, {"attribute":"activePower","cluster":"haElectricalMeasurement","ma,"minimum_report_interval":10,"reportable_change":100}, {"attribute":"measuredValue","cluster":"msRelativeHumidity","maximum_report_interval":3600,"minimum_report_interval":10,"reportable_change":100} ] } } }
This is Zigbee2MQTT's own device object (from bridge/devices), not the literal database.db line.
Debug log
No response
Notes
Power/current reporting on haElectricalMeasurement works perfectly via its existing configureReporting call — this appears specific to the seMetering cluster on this device. Current workaround: a Home Assistant automation publishing bridge/request/device/configure every 30 minutes to force a fresh read, which reliably keeps the value current (verified over 24h).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the Namron device converter's configure() path and compare the existing haElectricalMeasurement reporting setup with seMetering.currentSummDelivered. Verify whether the device emits unsolicited reports after configuration; done should either provide working periodic energy updates or document that the device requires polling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend, embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100