Hi Home Assistant Gurus!
it as been hours that I research to fix this issue but I think is out of my knowledge so if someone can help I will rely appreciate!
2 months ago a bought 2 Aqara Smart Plug the EU version and connect these to HA with ZHA. Everything work as expected! I decide to buy another but this time for a different seller (same reference but on Amazon). And when I connect this one Smart Energy Monitoring is not available. I contact the Amazon support and they send me a new and same problem happen…
I go deep on ZHA and Zigpy to understand what is going on and their is my findings:
- Both working and not working device have the same Zigbee Signature and same Firmware
- Both report the sum of energy delivered on Metering cluster (0x0702) attribute
current_summ_delivered
(0x0000). Yes crazy this one - And error show-up in the log for the failing device
Error adding entities for domain sensor with platform zha
. Details after the list - Both report the same value for Metering cluster (0x0702) attribute
summa_formatting
(0x0303) - Another error show-up on the log that is pretty strange about a foreign key contraints violation in the
zigbee.db
. I try to run the query by hands and it works without violation
Error log in ZHA
Logger: homeassistant.components.sensor
Source: components/zha/core/channels/smartenergy.py:196
Integration: Sensor (documentation, issues)
First occurred: 8:25:15 PM (1 occurrences)
Last logged: 8:25:15 PM
Error adding entities for domain sensor with platform zha
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 614, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 782, in add_to_platform_finish
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 539, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 572, in _async_write_ha_state
state = self._stringify_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 545, in _stringify_state
if (state := self.state) is None:
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 371, in state
value = self.native_value
File "/usr/src/homeassistant/homeassistant/components/zha/sensor.py", line 174, in native_value
return self.formatter(raw_state)
File "/usr/src/homeassistant/homeassistant/components/zha/sensor.py", line 471, in formatter
return self._channel.summa_formatter(value)
File "/usr/src/homeassistant/homeassistant/components/zha/core/channels/smartenergy.py", line 196, in _formatter_function
return self._summa_format.format(value).lstrip()
AttributeError: 'NoneType' object has no attribute 'format'
Query with the violation that I couldn’t reproduce:
INSERT INTO attributes_cache_v7 VALUES ("54:ef:44:10:00:21:2f:3c", 1, 0, 4, "LUMI")
ON CONFLICT (ieee, endpoint_id, cluster, attrid)
DO UPDATE SET
value=excluded.value;
I don’t understand how this query can fail with an ON CONFLICT
statements …
After all these research I’m stuck in debugging it so a bit of help will much appricate
Thanks in Advance
PS: I already look at this Is Aqara EU smart plug supposed to support Energy metering? and my Home Assistant setup is up to date with the last version of everything