If you make the change to disable power reporting that I posted above in What do I need at Ikea? - #298 by HAL9000, disable health checks also for now. The health checks include getting very upset if power monitoring stats aren’t being received.
This was suggested, but I haven’t tried it yet:
Replace this entire section inside deviceHealthCheck() with
// Only perform stale-report checks when automatic reporting is enabled
if (enablePowerReporting != false) {
// Voltage staleness check
def lastVoltage = device.currentState("voltage")
if (lastVoltage == null || (now() - lastVoltage.date.time) > 1 * 3600 * 1000L) {
logWarn "No voltage report in >1h — requesting voltage attribute read"
sendHubCommand(new HubAction(
matter.readAttributes([matter.attributePath(0x02, 0x0090, 0x000B)]),
Protocol.MATTER))
} else {
logDebug "Voltage report is recent (last: ${lastVoltage.date})"
}
// Power staleness check
def lastPower = device.currentState("power")
if (lastPower == null || (now() - lastPower.date.time) > 1 * 3600 * 1000L) {
logWarn "No power report in >1h — requesting power attribute read"
sendHubCommand(new HubAction(
matter.readAttributes([matter.attributePath(0x02, 0x0090, 0x0008)]),
Protocol.MATTER))
} else {
logDebug "Power report is recent (last: ${lastPower.date})"
}
// Energy staleness check
def lastEnergy = device.currentState("energy")
if (lastEnergy == null || (now() - lastEnergy.date.time) > 1 * 3600 * 1000L) {
logWarn "No energy report in >1h — requesting energy attribute read"
sendHubCommand(new HubAction(
matter.readAttributes([matter.attributePath(0x02, 0x0091, 0x0001)]),
Protocol.MATTER))
} else {
logDebug "Energy report is recent (last: ${lastEnergy.date})"
}
}