zha-device-handlers
zha-device-handlers copied to clipboard
[Device Support Request] Heiman CO_V15 Monoxide Carbon sensor
Is your feature request related to a problem? Please describe. When Heiman CO_V15 Monoxide Carbon sensor is added to HA it reports as a "Mains" powerd device and after some hours drops out of the network
Describe the solution you'd like If possible a custom quirk to correct it.
Device signature
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|MainsPowered: 132>, manufacturer_code=48042, maximum_buffer_size=64, maximum_incoming_transfer_size=0, server_mask=0, maximum_outgoing_transfer_size=0, descriptor_capability_field=<DescriptorCapability.ExtendedSimpleDescriptorListAvailable|ExtendedActiveEndpointListAvailable: 3>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=True, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": 260,
"device_type": "0x0402",
"in_clusters": [
"0x0000",
"0x0001",
"0x0003",
"0x0009",
"0x0500"
],
"out_clusters": [
"0x0019"
]
}
},
"manufacturer": "Heiman",
"model": "CO_V15",
"class": "zigpy.device.Device"
}
Diagnostic information
"ieee": "**REDACTED**",
"nwk": 47794,
"manufacturer": "Heiman",
"model": "CO_V15",
"name": "Heiman CO_V15",
"quirk_applied": false,
"quirk_class": "zigpy.device.Device",
"manufacturer_code": 48042,
"power_source": "Mains",
"lqi": null,
"rssi": null,
"last_seen": "2022-10-14T16:00:40",
"available": false,
"device_type": "EndDevice",
"signature": {
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|MainsPowered: 132>, manufacturer_code=48042, maximum_buffer_size=64, maximum_incoming_transfer_size=0, server_mask=0, maximum_outgoing_transfer_size=0, descriptor_capability_field=<DescriptorCapability.ExtendedSimpleDescriptorListAvailable|ExtendedActiveEndpointListAvailable: 3>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=True, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": 260,
"device_type": "0x0402",
"in_clusters": [
"0x0000",
"0x0001",
"0x0003",
"0x0009",
"0x0500"
],
"out_clusters": [
"0x0019"
]
}
}
},
"active_coordinator": false,
"entities": [
{
"entity_id": "binary_sensor.heiman_co_v15_iaszone",
"name": "Heiman CO_V15"
},
{
"entity_id": "button.heiman_co_v15_identifybutton",
"name": "Heiman CO_V15"
}
],
"neighbors": [],
"endpoint_names": [
{
"name": "IAS_ZONE"
}
],
"user_given_name": null,
"device_reg_id": "42f806d41819474f86ae2300cb621106",
"area_id": null,
"cluster_details": {
"1": {
"device_type": {
"name": "IAS_ZONE",
"id": 1026
},
"profile_id": 260,
"in_clusters": {
"0x0000": {
"endpoint_attribute": "basic",
"attributes": {
"0x0004": {
"attribute_name": "manufacturer",
"value": "Heiman"
},
"0x0005": {
"attribute_name": "model",
"value": "CO_V15"
}
},
"unsupported_attributes": {}
},
"0x0003": {
"endpoint_attribute": "identify",
"attributes": {},
"unsupported_attributes": {}
},
"0x0500": {
"endpoint_attribute": "ias_zone",
"attributes": {
"0x0000": {
"attribute_name": "zone_state",
"value": 1
},
"0x0001": {
"attribute_name": "zone_type",
"value": 43
},
"0x0002": {
"attribute_name": "zone_status",
"value": 32
},
"0x0010": {
"attribute_name": "cie_addr",
"value": "00:21:2e:ff:ff:03:2d:f4"
}
},
"unsupported_attributes": {}
},
"0x0001": {
"endpoint_attribute": "power",
"attributes": {},
"unsupported_attributes": {}
},
"0x0009": {
"endpoint_attribute": "alarms",
"attributes": {},
"unsupported_attributes": {}
}
},
"out_clusters": {
"0x0019": {
"endpoint_attribute": "ota",
"attributes": {},
"unsupported_attributes": {}
}
Additional logs
22-10-14 15:39:50.280 DEBUG (MainThread) [zigpy.zcl] [0xEF61:1:0x000a] Received ZCL frame: b'\x10\x96\x00\x00\x00'
2022-10-14 15:39:50.282 DEBUG (MainThread) [zigpy.zcl] [0xEF61:1:0x000a] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Server_to_Client: 0>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=150, command_id=0, *direction=<Direction.Server_to_Client: 0>, *is_reply=False)
2022-10-14 15:39:50.286 DEBUG (MainThread) [zigpy.zcl] [0xEF61:1:0x000a] Decoded ZCL frame: Time:Read_Attributes(attribute_ids=[0])
2022-10-14 15:39:50.287 DEBUG (MainThread) [zigpy.zcl] [0xEF61:1:0x000a] Received command 0x00 (TSN 150): Read_Attributes(attribute_ids=[0])
2022-10-14 15:39:50.290 DEBUG (MainThread) [zigpy.zcl] [0xEF61:1:0x000a] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=150, command_id=<GeneralCommand.Read_Attributes_rsp: 1>, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
2022-10-14 15:39:50.292 DEBUG (MainThread) [zigpy.zcl] [0xEF61:1:0x000a] Sending reply: Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0000, status=<Status.SUCCESS: 0>, value=TypeValue(type=UTCTime, value=719073590))])
2022-10-14 15:39:50.296 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xEF61), dst_ep=1, source_route=None, extended_timeout=False, tsn=150, profile_id=260, cluster_id=10, data=Serialized[b'\x18\x96\x01\x00\x00\x00\xe261\xdc*'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=None, rssi=None)
2022-10-14 15:39:50.297 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=AddressMode.NWK_AND_IEEE address=0xef61>, ep: 1, profile: 0x0104, cluster_id: 0x000a, data: b'1096000000'
2022-10-14 15:39:50.299 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (26, 111, <DeconzSendDataFlags.NONE: 0>, <DeconzAddressEndpoint address_mode=AddressMode.NWK address=0xef61 endpoint=1>, 260, 10, 1, b'\x18\x96\x01\x00\x00\x00\xe261\xdc*', <DeconzTransmitOptions.USE_NWK_KEY_SECURITY: 2>, 0)
2022-10-14 15:39:50.300 DEBUG (MainThread) [zigpy_deconz.uart] Send: 0x12d80021001a006f000261ef0104010a00010b00189601000000e23631dc2a0200
2022-10-14 15:39:50.325 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x12d80009000200226f
2022-10-14 15:39:50.326 DEBUG (MainThread) [zigpy_deconz.api] Received command aps_data_request[2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 111]
2022-10-14 15:39:50.326 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 111]
2022-10-14 15:39:50.326 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x0ed9000700a600
2022-10-14 15:39:50.327 DEBUG (MainThread) [zigpy_deconz.api] Received command device_state_changed[<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
2022-10-14 15:39:50.327 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
2022-10-14 15:39:50.328 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,)
2022-10-14 15:39:50.328 DEBUG (MainThread) [zigpy_deconz.uart] Send: 0x04d90007000000
2022-10-14 15:39:50.341 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x04d90013000c00226f0261ef01010000000000
2022-10-14 15:39:50.342 DEBUG (MainThread) [zigpy_deconz.api] Received command aps_data_confirm[12, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 111, <DeconzAddressEndpoint address_mode=AddressMode.NWK address=0xef61 endpoint=1>, 1, <TXStatus.SUCCESS: 0>, 0, 0, 0, 0]
2022-10-14 15:39:50.343 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 111: 00
2022-10-14 15:39:50.343 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0x6f 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=AddressMode.NWK address=0xef61 endpoint=1>, status: 0x00
2022-10-14 15:39:50.421 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x1fda000e0007002fdda1230f0000
2022-10-14 15:39:50.421 DEBUG (MainThread) [zigpy_deconz.api] Received command simplified_beacon[7, 56623, 9121, 15, 0, 0]
2022-10-14 15:39:50.421 DEBUG (MainThread) [zigpy_deconz.api] Received simplified beacon frame: source=0xdd2f, pan_id=0x23a1, channel=15, flags=0x00, update_id=0x00
2022-10-14 15:39:50.437 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x1fdb0015000e004a6fa1230f00006638a1230f0000
2022-10-14 15:39:50.438 DEBUG (MainThread) [zigpy_deconz.api] Received command simplified_beacon[14, 28490, 9121, 15, 0, 0]
2022-10-14 15:39:50.439 DEBUG (MainThread) [zigpy_deconz.api] Received simplified beacon frame: source=0x6f4a, pan_id=0x23a1, channel=15, flags=0x00, update_id=0x00
Additional context