Spamming my own thread for the sake of sharing new found knowledge. After several re-pairing attempts, the plug finally exposed the power and energy entities. Here’s the log
New device 0xf1f9 (54:ef:44:10:00:0e:52:9d) joined the network
[0xf1f9] Scheduling initialization
Tries remaining: 3
[0xf1f9] Requesting 'Node Descriptor'
Tries remaining: 2
[0xf1f9] Extending timeout for 0xfd request
Device 0xf1f9 (54:ef:44:10:00:0e:52:9d) joined the network
[0xf1f9] Scheduling initialization
[0xf1f9] Canceling old initialize call
Tries remaining: 3
[0xf1f9] Requesting 'Node Descriptor'
Tries remaining: 2
[0xf1f9] Extending timeout for 0xff request
Device 0xf1f9 (54:ef:44:10:00:0e:52:9d) joined the network
[0xf1f9] Scheduling initialization
[0xf1f9] Canceling old initialize call
Received frame on uninitialized device <Device model=None manuf=None nwk=0xF1F9 ieee=54:ef:44:10:00:0e:52:9d is_initialized=False> from ep 0 to ep 0, cluster 19: b'\xd3\xf9\xf1\x9dR\x0e\x00\x10D\xefT\x8e'
[0xf1f9:zdo] ZDO request ZDOCmd.Device_annce: [0xF1F9, 54:ef:44:10:00:0e:52:9d, 142]
Tries remaining: 3
[0xf1f9] Requesting 'Node Descriptor'
Tries remaining: 2
[0xf1f9] Extending timeout for 0x01 request
Received frame on uninitialized device <Device model=None manuf=None nwk=0xF1F9 ieee=54:ef:44:10:00:0e:52:9d is_initialized=False> from ep 0 to ep 0, cluster 32770: b'\x01\x00\xf9\xf1\x01@\x8e_\x11\x7fd\x00\x00,d\x00\x00'
[0xf1f9] Got Node Descriptor: NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4447, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=11264, maximum_outgoing_transfer_size=100, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)
[0xf1f9] Discovering endpoints
Tries remaining: 3
Received frame on uninitialized device <Device model=None manuf=None nwk=0xF1F9 ieee=54:ef:44:10:00:0e:52:9d is_initialized=False> from ep 0 to ep 0, cluster 32773: b'\x03\x00\xf9\xf1\x02\x01\xf2'
Received frame on uninitialized device <Device model=None manuf=None nwk=0xF1F9 ieee=54:ef:44:10:00:0e:52:9d is_initialized=False> from ep 0 to ep 0, cluster 2: b'\xd4\x00\x00'
[0xf1f9:zdo] ZDO request ZDOCmd.Node_Desc_req: [0x0000]
[0xf1f9:zdo] No handler for ZDO request:ZDOCmd.Node_Desc_req([0x0000])
[0xf1f9] Discovered endpoints: [1, 242]
[0xf1f9] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>, <Endpoint id=242 in=[] out=[] status=<Status.NEW: 0>>]
[0xf1f9:1] Discovering endpoint information
Tries remaining: 3
Received frame on uninitialized device <Device model=None manuf=None nwk=0xF1F9 ieee=54:ef:44:10:00:0e:52:9d is_initialized=False> from ep 0 to ep 0, cluster 32772: b'\x05\x00\xf9\xf1\x1e\x01\x04\x01Q\x00\x01\t\x00\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\t\x00\x02\x07\x04\x0b\x02\n\x00\x19\x00'
[0xf1f9:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=81, device_version=1, input_clusters=[0, 2, 3, 4, 5, 6, 9, 1794, 2820], output_clusters=[10, 25])
[0xf1f9:242] Discovering endpoint information
Tries remaining: 3
Received frame on uninitialized device <Device model=None manuf=None nwk=0xF1F9 ieee=54:ef:44:10:00:0e:52:9d is_initialized=False> from ep 0 to ep 0, cluster 32772: b'\x07\x00\xf9\xf1\n\xf2\xe0\xa1a\x00\x00\x00\x01!\x00'
[0xf1f9:242] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=242, profile=41440, device_type=97, device_version=0, input_clusters=[], output_clusters=[33])
[0xf1f9:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=9 command_id=Command.Read_Attributes_rsp>
[0xf1f9] Read model 'lumi.plug.maeu01' and manufacturer 'LUMI' from <Endpoint id=1 in=[basic:0x0000, device_temperature:0x0002, identify:0x0003, groups:0x0004, scenes:0x0005, on_off:0x0006, alarms:0x0009, smartenergy_metering:0x0702, electrical_measurement:0x0B04] out=[time:0x000A, ota:0x0019] status=<Status.ZDO_INIT: 1>>
[0xf1f9] Discovered basic device information for <Device model='lumi.plug.maeu01' manuf='LUMI' nwk=0xF1F9 ieee=54:ef:44:10:00:0e:52:9d is_initialized=True>
Device is initialized <Device model='lumi.plug.maeu01' manuf='LUMI' nwk=0xF1F9 ieee=54:ef:44:10:00:0e:52:9d is_initialized=True>
Checking quirks for LUMI lumi.plug.maeu01 (54:ef:44:10:00:0e:52:9d)
Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
Fail because endpoint list mismatch: {232, 230} {1, 242}
Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
Fail because endpoint list mismatch: {232, 230} {1, 242}
Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
Fail because endpoint list mismatch: {1} {1, 242}
Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
Fail because endpoint list mismatch: {1} {1, 242}
Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
Fail because endpoint list mismatch: {1} {1, 242}
Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
Fail because endpoint list mismatch: {11, 13} {1, 242}
Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
Fail because endpoint list mismatch: {1} {1, 242}
'sensor' component -> 'ElectricalMeasurement' using ['electrical_measurement']
'sensor' component -> 'ElectricalMeasurementApparentPower' using ['electrical_measurement']
'sensor' component -> 'ElectricalMeasurementRMSCurrent' using ['electrical_measurement']
'sensor' component -> 'ElectricalMeasurementRMSVoltage' using ['electrical_measurement']
'sensor' component -> 'SmartEnergyMetering' using ['smartenergy_metering']
'sensor' component -> 'SmartEnergySummation' using ['smartenergy_metering']
device - 0xF1F9:54:ef:44:10:00:0e:52:9d entering async_device_initialized - is_new_join: True
device - 0xF1F9:54:ef:44:10:00:0e:52:9d has joined the ZHA zigbee network
[0xF1F9](lumi.plug.maeu01): started configuration
[0xF1F9:ZDO](lumi.plug.maeu01): 'async_configure' stage succeeded
Error handling '_save_attribute' event with (54:ef:44:10:00:0e:52:9d, 1, 0, 4, 'LUMI') params: FOREIGN KEY constraint failed
Error handling '_save_attribute' event with (54:ef:44:10:00:0e:52:9d, 1, 0, 5, 'lumi.plug.maeu01') params: FOREIGN KEY constraint failed
[0xF1F9:1:0x0006]: bound 'on_off' cluster: Status.SUCCESS
[0xF1F9:1:0x0702]: bound 'smartenergy_metering' cluster: Status.SUCCESS
[0xF1F9:1:0x0b04]: bound 'electrical_measurement' cluster: Status.SUCCESS
[0xf1f9:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=17 command_id=Command.Configure_Reporting_rsp>
[0xF1F9:1:0x0006]: Successfully configured reporting for '{'on_off': (0, 900, 1)}' on 'on_off' cluster: [ConfigureReportingResponseRecord(status=0)]
[0xF1F9:1:0x0006]: finished channel configuration
[0xF1F9:1:0x0000]: finished channel configuration
[0xF1F9:1:0x0019]: finished channel configuration
[0xf1f9:1:0x0702] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=19 command_id=Command.Configure_Reporting_rsp>
[0xF1F9:1:0x0702]: Successfully configured reporting for '{'status'}' on 'smartenergy_metering' cluster
[0xF1F9:1:0x0702]: Failed to configure reporting for '['instantaneous_demand', 900, 'current_summ_delivered']' on 'smartenergy_metering' cluster: [ConfigureReportingResponseRecord(status=134, direction=0, attrid=1024), ConfigureReportingResponseRecord(status=134, direction=0, attrid=900), ConfigureReportingResponseRecord(status=141, direction=0, attrid=0)]
[0xF1F9:1:0x0702]: finished channel configuration
[0xf1f9:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=21 command_id=Command.Configure_Reporting_rsp>
[0xF1F9:1:0x0b04]: Successfully configured reporting for '{'apparent_power'}' on 'electrical_measurement' cluster
[0xF1F9:1:0x0b04]: Failed to configure reporting for '['active_power', 'active_power_max', 900]' on 'electrical_measurement' cluster: [ConfigureReportingResponseRecord(status=140, direction=0, attrid=1291), ConfigureReportingResponseRecord(status=134, direction=0, attrid=1293), ConfigureReportingResponseRecord(status=134, direction=0, attrid=900)]
[0xf1f9:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=23 command_id=Command.Configure_Reporting_rsp>
[0xF1F9:1:0x0b04]: Successfully configured reporting for '{'rms_voltage'}' on 'electrical_measurement' cluster
[0xF1F9:1:0x0b04]: Failed to configure reporting for '['rms_current', 900, 'rms_current_max']' on 'electrical_measurement' cluster: [ConfigureReportingResponseRecord(status=134, direction=0, attrid=1288), ConfigureReportingResponseRecord(status=134, direction=0, attrid=900), ConfigureReportingResponseRecord(status=134, direction=0, attrid=1290)]
[0xf1f9:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=25 command_id=Command.Configure_Reporting_rsp>
[0xF1F9:1:0x0b04]: Successfully configured reporting for 'set()' on 'electrical_measurement' cluster
[0xF1F9:1:0x0b04]: Failed to configure reporting for '['rms_voltage_max']' on 'electrical_measurement' cluster: [ConfigureReportingResponseRecord(status=134, direction=0, attrid=1287)]
[0xF1F9:1:0x0b04]: finished channel configuration
[0xF1F9:1:0x0006]: 'async_configure' stage succeeded
[0xF1F9:1:0x0702]: 'async_configure' stage succeeded
[0xF1F9:1:0x0b04]: 'async_configure' stage succeeded
[0xF1F9:1:0x0000]: 'async_configure' stage succeeded
[0xF1F9:1:0x0019]: 'async_configure' stage succeeded
[0xF1F9](lumi.plug.maeu01): completed configuration
[0xF1F9](lumi.plug.maeu01): stored in registry: ZhaDeviceEntry(name='LUMI lumi.plug.maeu01', ieee='54:ef:44:10:00:0e:52:9d', last_seen=1639661154.2557783)
Ignoring message (b'1c5f11000af700413964100003281a983900000000953900000000963900000000973900000000052101009a201008212001092100030b20009b10000f2300003fb3') on cluster 64704: unknown endpoint or cluster id: 'No cluster ID 0xfcc0 on (54:ef:44:10:00:0e:52:9d, 1)'
[0xf1f9:1:0x0003] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=27 command_id=Command.Default_Response>
[0xf1f9:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4447 tsn=1 command_id=Command.Report_Attributes>
[0xf1f9:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=5, value=<TypeValue type=CharacterString, value=lumi.plug.maeu01>), Attribute(attrid=1, value=<TypeValue type=uint8_t, value=32>)]]
[0xf1f9:1:0x0000] Attribute report received: model=lumi.plug.maeu01, app_version=32
[0xF1F9:1:0x0003]: executed 'trigger_effect' command with args: '(2, 0)' kwargs: '{}' result: [64, <Status.UNSUP_CLUSTER_COMMAND: 129>]
[0xF1F9](lumi.plug.maeu01): started initialization
[0xF1F9:ZDO](lumi.plug.maeu01): 'async_initialize' stage succeeded
[0xF1F9:1:0x0006]: initializing channel: from_cache: False
[0xF1F9:1:0x0702]: initializing channel: from_cache: False
[0xF1F9:1:0x0b04]: initializing channel: from_cache: False
[0xf1f9:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=29 command_id=Command.Read_Attributes_rsp>
[0xF1F9:1:0x0006]: finished channel initialization
[0xF1F9:1:0x0000]: initializing channel: from_cache: False
[0xF1F9:1:0x0000]: finished channel initialization
[0xf1f9:1:0x0702] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=31 command_id=Command.Read_Attributes_rsp>
[0xF1F9:1:0x0019]: initializing channel: from_cache: False
[0xF1F9:1:0x0019]: finished channel initialization
[0xf1f9:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=33 command_id=Command.Read_Attributes_rsp>
[0xf1f9:1:0x000a] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=True> manufacturer=None tsn=2 command_id=Command.Read_Attributes>
[0xf1f9:1:0x000a] ZCL request 0x0000: [[0, 2]]
[0xf1f9:1:0x0702] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=35 command_id=Command.Read_Attributes_rsp>
[0xF1F9:1:0x0702]: finished channel initialization
[0xf1f9:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=38 command_id=Command.Read_Attributes_rsp>
[0xf1f9:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=40 command_id=Command.Read_Attributes_rsp>
[0xF1F9:1:0x0b04]: finished channel initialization
[0xF1F9:1:0x0006]: 'async_initialize' stage succeeded
[0xF1F9:1:0x0702]: 'async_initialize' stage succeeded
[0xF1F9:1:0x0b04]: 'async_initialize' stage succeeded
[0xF1F9:1:0x0000]: 'async_initialize' stage succeeded
[0xF1F9:1:0x0019]: 'async_initialize' stage succeeded
[0xF1F9](lumi.plug.maeu01): power source: Mains
[0xF1F9](lumi.plug.maeu01): completed initialization
[0xF1F9:1:0x0006]: attempting to update onoff state - from cache: False
[0xf1f9:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=42 command_id=Command.Read_Attributes_rsp>
[0xf1f9:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4447 tsn=3 command_id=Command.Report_Attributes>
[0xf1f9:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=32>)]]
[0xf1f9:1:0x0000] Attribute report received: app_version=32
Ignoring message (b'1c5f11040af700413964100003281a983900000000953900000000963900c01445973900000000052101009a200008212001092100030b20009b10000f2300003fb3') on cluster 64704: unknown endpoint or cluster id: 'No cluster ID 0xfcc0 on (54:ef:44:10:00:0e:52:9d, 1)'
[0xf1f9:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=5 command_id=Command.Report_Attributes>
[0xf1f9:1:0x0006] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=Bool, value=Bool.false>), Attribute(attrid=245, value=<TypeValue type=uint32_t, value=50331392>)]]
[0xf1f9:1:0x0006] Attribute report received: on_off=0, 245=50331392
[0xF1F9:1:0x0b04]: async_update
[0xf1f9:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=44 command_id=Command.Read_Attributes_rsp>
[0xf1f9:zdo] ZDO request ZDOCmd.Node_Desc_rsp: [<Status.SUCCESS: 0>, 0xF1F9, NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4447, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=11264, maximum_outgoing_transfer_size=100, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)]
[0xf1f9:zdo] No handler for ZDO request:ZDOCmd.Node_Desc_rsp([<Status.SUCCESS: 0>, 0xF1F9, NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4447, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=11264, maximum_outgoing_transfer_size=100, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)])
Ignoring message (b'1c5f11060a07021000') on cluster 64704: unknown endpoint or cluster id: 'No cluster ID 0xfcc0 on (54:ef:44:10:00:0e:52:9d, 1)'
and here’s the device signature
{
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4447, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=11264, maximum_outgoing_transfer_size=100, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": 260,
"device_type": "0x0051",
"in_clusters": [
"0x0000",
"0x0002",
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0x0009",
"0x0702",
"0x0b04"
],
"out_clusters": [
"0x000a",
"0x0019"
]
},
"242": {
"profile_id": 41440,
"device_type": "0x0061",
"in_clusters": [],
"out_clusters": [
"0x0021"
]
}
},
"manufacturer": "LUMI",
"model": "lumi.plug.maeu01",
"class": "zigpy.device.Device"
}
From what I can tell, the plug is using non-standard clusters for reporting power and energy, for which it would need a quirk definition, but I’m not yet able to pull together a dev environment to create one.