[Device Support Request] FireAngel ZB-module for CO detectors and smoke detectors

Is your feature request related to a problem? Please describe.
I've bought a FireAngel NM-CO-10X-INT carbon monoxide detector with a FireAngel ZB-module. When adding the device it is only detected as a binary sensor and does not trigger a zha_event/updates sensor when pushing the test-button. I'm guessing functionality will be the same for the 2x FireAngel SM-F-1EU smoke detectors that should be delivered to me next week, which use the exact same ZB-module.
Describe the solution you'd like
I would like support for an event to be triggered/sensor to be updated when CO/smoke is detected (and the test-button is pushed)
If at all possible it would be fantastic to be able to trigger the alarm manually (since the devices can be linked (using their custom RF module instead of the ZB-module) I'm hoping this can be done)
Battery level readings would be great
Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line.
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|RxOnWhenIdle|MainsPowered: 140>, manufacturer_code=4674, maximum_buffer_size=108, maximum_incoming_transfer_size=0, server_mask=10752, maximum_outgoing_transfer_size=0, descriptor_capability_field=<DescriptorCapability.0: 0>, *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=True, *is_router=False, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0403",
      "in_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x0020",
        "0x0500",
        "0x0502"
      ],
      "out_clusters": [
        "0x0019",
        "0x0502"
      ]
    }
  },
  "manufacturer": "Fireangel",
  "model": "Alarm_SD_Device",
  "class": "zigpy.device.Device"
}```

Log
```[zigpy.application] New device 0x822f (00:15:5f:00:dc:c8:ec:19) joined the network
[zigpy.device] [0x822f] Scheduling initialization
[zigpy.application] Received frame on uninitialized device <Device model=None manuf=None nwk=0x822F ieee=00:15:5f:00:dc:c8:ec:19 is_initialized=False> from ep 0 to ep 0, cluster 19: b'\x01/\x82\x19\xec\xc8\xdc\x00_\x15\x00\x80'
[zigpy.zdo] [0x822f:zdo] ZDO request ZDOCmd.Device_annce: [0x822F, 00:15:5f:00:dc:c8:ec:19, 128]
[zigpy.util] Tries remaining: 3
[zigpy.device] [0x822f] Requesting 'Node Descriptor'
[zigpy.util] Tries remaining: 2
[zigpy.device] [0x822f] Extending timeout for 0x83 request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 131 under 132 request id, data: b'832f82'
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 0, profile: 0x0000, cluster_id: 0x0013, data: b'012f8219ecc8dc005f150080'
[zigpy_deconz.api] Command Command.aps_data_request (18, 132, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=0>, 0, <ZDOCmd.Node_Desc_req: 0x0002>, 0, b'\x83/\x82', 2, 0)
[zigpy_deconz.uart] Send: 0x12c300190012008400022f820000000200000300832f820200
[zigpy_deconz.uart] Frame received: 0x12c300090002002284
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 132]
[zigpy_deconz.uart] Frame received: 0x1cc4000c000500022f82fff3
[zigpy_deconz.uart] Frame received: 0x0ec5000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1cc6000c000500022f82fff3
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04c40007000000
[zigpy_deconz.uart] Frame received: 0x04c40013000c002284022f8200000000000000
[zigpy_deconz.api] APS data confirm response for request with id 132: 00
[zigpy_deconz.api] Request id: 0x84 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=0>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ec5000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1cc6000c000500022f82fff3
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17c5000800010001
[zigpy_deconz.uart] Frame received: 0x17c5002f0028002202000000022f820000000280110083002f8202408c42126c0000002a00000000afff96e40000f3
[zigpy_deconz.api] APS data indication response: [40, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 0, 0, 32770, b'\x83\x00/\x82\x02@\x8cB\x12l\x00\x00\x00*\x00\x00\x00', 0, 175, 255, 150, 228, 0, 0, -13]
[zigpy.application] Received frame on uninitialized device <Device model=None manuf=None nwk=0x822F ieee=00:15:5f:00:dc:c8:ec:19 is_initialized=False> from ep 0 to ep 0, cluster 32770: b'\x83\x00/\x82\x02@\x8cB\x12l\x00\x00\x00*\x00\x00\x00'
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 0, profile: 0x0000, cluster_id: 0x8002, data: b'83002f8202408c42126c0000002a000000'
[zigpy.device] [0x822f] Got 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|RxOnWhenIdle|MainsPowered: 140>, manufacturer_code=4674, maximum_buffer_size=108, maximum_incoming_transfer_size=0, server_mask=10752, maximum_outgoing_transfer_size=0, descriptor_capability_field=<DescriptorCapability.0: 0>, *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=True, *is_router=False, *is_security_capable=False)
[zigpy.device] [0x822f] Discovering endpoints
[zigpy.util] Tries remaining: 3
[zigpy.device] [0x822f] Extending timeout for 0x85 request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 133 under 134 request id, data: b'852f82'
[zigpy_deconz.api] Command Command.aps_data_request (18, 134, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=0>, 0, <ZDOCmd.Active_EP_req: 0x0005>, 0, b'\x85/\x82', 2, 0)
[zigpy_deconz.uart] Send: 0x12c600190012008600022f820000000500000300852f820200
[zigpy_deconz.uart] Frame received: 0x12c600090002002286
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 134]
[zigpy_deconz.uart] Frame received: 0x0ec7000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04c70007000000
[zigpy_deconz.uart] Frame received: 0x1cc8000c000500022f82fff3
[zigpy_deconz.uart] Frame received: 0x04c70013000c002286022f8200000000000000
[zigpy_deconz.api] APS data confirm response for request with id 134: 00
[zigpy_deconz.api] Request id: 0x86 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=0>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x1cc8000c000500022f82fff3
[zigpy_deconz.uart] Frame received: 0x0ec9000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1cca000c000500022f82fff4
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17c8000800010001
[zigpy_deconz.uart] Frame received: 0x17c80024001d002202000000022f820000000580060085002f82010100afff1be60000f3
[zigpy_deconz.api] APS data indication response: [29, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 0, 0, 32773, b'\x85\x00/\x82\x01\x01', 0, 175, 255, 27, 230, 0, 0, -13]
[zigpy.application] Received frame on uninitialized device <Device model=None manuf=None nwk=0x822F ieee=00:15:5f:00:dc:c8:ec:19 is_initialized=False> from ep 0 to ep 0, cluster 32773: b'\x85\x00/\x82\x01\x01'
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 0, profile: 0x0000, cluster_id: 0x8005, data: b'85002f820101'
[zigpy.device] [0x822f] Discovered endpoints: [1]
[zigpy.device] [0x822f] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[zigpy.endpoint] [0x822f:1] Discovering endpoint information
[zigpy.util] Tries remaining: 3
[zigpy.device] [0x822f] Extending timeout for 0x87 request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 135 under 136 request id, data: b'872f8201'
[zigpy_deconz.api] Command Command.aps_data_request (19, 136, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=0>, 0, <ZDOCmd.Simple_Desc_req: 0x0004>, 0, b'\x87/\x82\x01', 2, 0)
[zigpy_deconz.uart] Send: 0x12c9001a0013008800022f820000000400000400872f82010200
[zigpy_deconz.uart] Frame received: 0x12c900090002002288
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 136]
[zigpy_deconz.uart] Frame received: 0x1cca000c000500022f82fff3
[zigpy_deconz.uart] Frame received: 0x0ecb000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1ccc000c000500022f82fff4
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04ca0007000000
[zigpy_deconz.uart] Frame received: 0x04ca0013000c002288022f8200000000000000
[zigpy_deconz.api] APS data confirm response for request with id 136: 00
[zigpy_deconz.api] Request id: 0x88 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=0>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ecb000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1ccc000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17cb000800010001
[zigpy_deconz.uart] Frame received: 0x17cb003b0034002202000000022f8200000004801d0087002f821801040103040106000001000300200000050205021900020500afff25e60000f4
[zigpy_deconz.api] APS data indication response: [52, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 0, 0, 32772, b'\x87\x00/\x82\x18\x01\x04\x01\x03\x04\x01\x06\x00\x00\x01\x00\x03\x00 \x00\x00\x05\x02\x05\x02\x19\x00\x02\x05', 0, 175, 255, 37, 230, 0, 0, -12]
[zigpy.application] Received frame on uninitialized device <Device model=None manuf=None nwk=0x822F ieee=00:15:5f:00:dc:c8:ec:19 is_initialized=False> from ep 0 to ep 0, cluster 32772: b'\x87\x00/\x82\x18\x01\x04\x01\x03\x04\x01\x06\x00\x00\x01\x00\x03\x00 \x00\x00\x05\x02\x05\x02\x19\x00\x02\x05'
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 0, profile: 0x0000, cluster_id: 0x8004, data: b'87002f8218010401030401060000010003002000000502050219000205'
[zigpy.endpoint] [0x822f:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=1027, device_version=1, input_clusters=[0, 1, 3, 32, 1280, 1282], output_clusters=[25, 1282])
[zigpy.device] [0x822f] Extending timeout for 0x89 request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 137 under 138 request id, data: b'00890004000500'
[zigpy_deconz.api] Command Command.aps_data_request (22, 138, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=1>, 260, 0, 1, b'\x00\x89\x00\x04\x00\x05\x00', 2, 0)
[zigpy_deconz.uart] Send: 0x12cc001d0016008a00022f820104010000010700008900040005000200
[zigpy_deconz.uart] Frame received: 0x12cc0009000200228a
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 138]
[zigpy_deconz.uart] Frame received: 0x0ecd000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1cce000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04cd0007000000
[zigpy_deconz.uart] Frame received: 0x04cd0013000c00228a022f8201010000000000
[zigpy_deconz.api] APS data confirm response for request with id 138: 00
[zigpy_deconz.api] Request id: 0x8a 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=1>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ece000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1ccf000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17ce000800010001
[zigpy_deconz.uart] Frame received: 0x17ce0043003c002202000001022f8201040100002500188901040000420946697265616e67656c050000420f416c61726d5f53445f44657669636500afff25e60000f6
[zigpy_deconz.api] APS data indication response: [60, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 0, b'\x18\x89\x01\x04\x00\x00B\tFireangel\x05\x00\x00B\x0fAlarm_SD_Device', 0, 175, 255, 37, 230, 0, 0, -10]
[zigpy.zcl] [0x822f: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=137 command_id=Command.Read_Attributes_rsp>
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0000, data: b'188901040000420946697265616e67656c050000420f416c61726d5f53445f446576696365'
[zigpy.device] [0x822f] Read model 'Alarm_SD_Device' and manufacturer 'Fireangel' from <Endpoint id=1 in=[basic:0x0000, power:0x0001, identify:0x0003, poll_control:0x0020, ias_zone:0x0500, ias_wd:0x0502] out=[ota:0x0019, ias_wd:0x0502] status=<Status.ZDO_INIT: 1>>
[zigpy.device] [0x822f] Discovered basic device information for <Device model='Alarm_SD_Device' manuf='Fireangel' nwk=0x822F ieee=00:15:5f:00:dc:c8:ec:19 is_initialized=True>
[zigpy.application] Device is initialized <Device model='Alarm_SD_Device' manuf='Fireangel' nwk=0x822F ieee=00:15:5f:00:dc:c8:ec:19 is_initialized=True>
[zigpy.quirks.registry] Checking quirks for Fireangel Alarm_SD_Device (00:15:5f:00:dc:c8:ec:19)
[zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
[zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1}
[zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
[zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1}
[zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
[zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint
[zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
[zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint
[zigpy.quirks.registry] Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
[zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint
[zigpy.quirks.registry] Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
[zigpy.quirks.registry] Fail because endpoint list mismatch: {11, 13} {1}
[zigpy.quirks.registry] Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
[zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint
[homeassistant.components.zha.core.gateway] device - 0x822F:00:15:5f:00:dc:c8:ec:19 entering async_device_initialized - is_new_join: True
[homeassistant.components.zha.core.gateway] device - 0x822F:00:15:5f:00:dc:c8:ec:19 has joined the ZHA zigbee network
[homeassistant.components.zha.core.device] [0x822F](Alarm_SD_Device): started configuration
[homeassistant.components.zha.core.channels.base] [0x822F:ZDO](Alarm_SD_Device): 'async_configure' stage succeeded
[zigpy.device] [0x822f] Extending timeout for 0x8b request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 139 under 140 request id, data: b'008b000100'
[zigpy_deconz.api] Command Command.aps_data_request (20, 140, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=1>, 260, 1280, 1, b'\x00\x8b\x00\x01\x00', 2, 0)
[zigpy_deconz.uart] Send: 0x12cf001b0014008c00022f820104010005010500008b0001000200
[zigpy.device] [0x822f] Extending timeout for 0x8d request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 141 under 142 request id, data: b'8d19ecc8dc005f150001200003934e07ffff2e210001'
[zigpy.device] [0x822f] Extending timeout for 0x8f request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 143 under 144 request id, data: b'8f19ecc8dc005f150001020503934e07ffff2e210001'
[zigpy.appdb] Error handling '_save_attribute' event with (00:15:5f:00:dc:c8:ec:19, 1, 0, 4, 'Fireangel') params: FOREIGN KEY constraint failed
[zigpy.appdb] Error handling '_save_attribute' event with (00:15:5f:00:dc:c8:ec:19, 1, 0, 5, 'Alarm_SD_Device') params: FOREIGN KEY constraint failed
[zigpy_deconz.uart] Frame received: 0x12cf0009000200228c
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 140]
[zigpy_deconz.api] Command Command.aps_data_request (37, 142, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=0>, 0, <ZDOCmd.Bind_req: 0x0021>, 0, b'\x8d\x19\xec\xc8\xdc\x00_\x15\x00\x01 \x00\x03\x93N\x07\xff\xff.!\x00\x01', 2, 0)
[zigpy_deconz.uart] Send: 0x12d0002c0025008e00022f8200000021000016008d19ecc8dc005f150001200003934e07ffff2e2100010200
[zigpy_deconz.uart] Frame received: 0x12d00009000200228e
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 142]
[zigpy_deconz.api] Command Command.aps_data_request (37, 144, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=0>, 0, <ZDOCmd.Bind_req: 0x0021>, 0, b'\x8f\x19\xec\xc8\xdc\x00_\x15\x00\x01\x02\x05\x03\x93N\x07\xff\xff.!\x00\x01', 2, 0)
[zigpy_deconz.uart] Send: 0x12d1002c0025009000022f8200000021000016008f19ecc8dc005f150001020503934e07ffff2e2100010200
[zigpy_deconz.uart] Frame received: 0x12d100090002002290
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 144]
[zigpy_deconz.uart] Frame received: 0x0ed2000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1cd3000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04d20007000000
[zigpy_deconz.uart] Frame received: 0x04d20013000c00228c022f8201010000000000
[zigpy_deconz.api] APS data confirm response for request with id 140: 00
[zigpy_deconz.api] Request id: 0x8c 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=1>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ed3000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1cd4000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04d30007000000
[zigpy_deconz.uart] Frame received: 0x04d30013000c00228e022f8200000000000000
[zigpy_deconz.api] APS data confirm response for request with id 142: 00
[zigpy_deconz.api] Request id: 0x8e 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=0>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ed4000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1cd5000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04d40007000000
[zigpy_deconz.uart] Frame received: 0x04d40013000c002290022f8200000000000000
[zigpy_deconz.api] APS data confirm response for request with id 144: 00
[zigpy_deconz.api] Request id: 0x90 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=0>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ed5000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1cd6000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17d5000800010001
[zigpy_deconz.uart] Frame received: 0x17d500270020002202000001022f8201040100050900188b01010000312b0000afff25e60000f6
[zigpy_deconz.api] APS data indication response: [32, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 1280, b'\x18\x8b\x01\x01\x00\x001+\x00', 0, 175, 255, 37, 230, 0, 0, -10]
[zigpy.zcl] [0x822f:1:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=139 command_id=Command.Read_Attributes_rsp>
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0500, data: b'188b01010000312b00'
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: started IASZoneChannel configuration
[zigpy.device] [0x822f] Extending timeout for 0x91 request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 145 under 146 request id, data: b'9119ecc8dc005f150001000503934e07ffff2e210001'
[zigpy_deconz.api] Command Command.aps_data_request (37, 146, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=0>, 0, <ZDOCmd.Bind_req: 0x0021>, 0, b'\x91\x19\xec\xc8\xdc\x00_\x15\x00\x01\x00\x05\x03\x93N\x07\xff\xff.!\x00\x01', 2, 0)
[zigpy_deconz.uart] Send: 0x12d6002c0025009200022f8200000021000016009119ecc8dc005f150001000503934e07ffff2e2100010200
[zigpy_deconz.uart] Frame received: 0x12d600090002002292
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 146]
[zigpy_deconz.uart] Frame received: 0x0ed7000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1cd8000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17d7000800010001
[zigpy_deconz.uart] Frame received: 0x17d700200019002202000000022f82000000218002008d0000afff96e40000f6
[zigpy_deconz.api] APS data indication response: [25, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 0, 0, 32801, b'\x8d\x00', 0, 175, 255, 150, 228, 0, 0, -10]
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 0, profile: 0x0000, cluster_id: 0x8021, data: b'8d00'
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0020]: bound 'poll_control' cluster: Status.SUCCESS
[zigpy.device] [0x822f] Extending timeout for 0x93 request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 147 under 148 request id, data: b'00930200002390330000'
[zigpy_deconz.api] Command Command.aps_data_request (25, 148, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=1>, 260, 32, 1, b'\x00\x93\x02\x00\x00#\x903\x00\x00', 2, 0)
[zigpy_deconz.uart] Send: 0x12d800200019009400022f820104012000010a00009302000023903300000200
[zigpy_deconz.uart] Frame received: 0x12d800090002002294
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 148]
[zigpy_deconz.uart] Frame received: 0x0ed9000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1cda000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17d9000800010001
[zigpy_deconz.uart] Frame received: 0x17d900200019002202000000022f82000000218002008f0000afff1be60000f6
[zigpy_deconz.api] APS data indication response: [25, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 0, 0, 32801, b'\x8f\x00', 0, 175, 255, 27, 230, 0, 0, -10]
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 0, profile: 0x0000, cluster_id: 0x8021, data: b'8f00'
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0502]: bound 'ias_wd' cluster: Status.SUCCESS
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0502]: finished channel configuration
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0000]: finished channel configuration
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0019]: finished channel configuration
[zigpy_deconz.uart] Frame received: 0x0eda000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1cdb000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04da0007000000
[zigpy_deconz.uart] Frame received: 0x04da0013000c002292022f8200000000000000
[zigpy_deconz.api] APS data confirm response for request with id 146: 00
[zigpy_deconz.api] Request id: 0x92 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=0>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0edb000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1cdc000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04db0007000000
[zigpy_deconz.uart] Frame received: 0x04db0013000c002294022f8201010000000000
[zigpy_deconz.api] APS data confirm response for request with id 148: 00
[zigpy_deconz.api] Request id: 0x94 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=1>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0edc000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1cdd000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17dc000800010001
[zigpy_deconz.uart] Frame received: 0x17dc00200019002202000000022f8200000021800200910000afff25e60000f6
[zigpy_deconz.api] APS data indication response: [25, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 0, 0, 32801, b'\x91\x00', 0, 175, 255, 37, 230, 0, 0, -10]
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 0, profile: 0x0000, cluster_id: 0x8021, data: b'9100'
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: bound 'ias_zone' cluster: Status.SUCCESS
[zigpy.device] [0x822f] Extending timeout for 0x95 request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 149 under 150 request id, data: b'0095021000f0934e07ffff2e2100'
[zigpy_deconz.api] Command Command.aps_data_request (29, 150, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=1>, 260, 1280, 1, b'\x00\x95\x02\x10\x00\xf0\x93N\x07\xff\xff.!\x00', 2, 0)
[zigpy_deconz.uart] Send: 0x12dd0024001d009600022f820104010005010e000095021000f0934e07ffff2e21000200
[zigpy_deconz.uart] Frame received: 0x12dd00090002002296
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 150]
[zigpy_deconz.uart] Frame received: 0x0ede000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1cdf000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17de000800010001
[zigpy_deconz.uart] Frame received: 0x17de0022001b002202000001022f82010401200004001893040000afff96e40000f6
[zigpy_deconz.api] APS data indication response: [27, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 32, b'\x18\x93\x04\x00', 0, 175, 255, 150, 228, 0, 0, -10]
[zigpy.zcl] [0x822f:1:0x0020] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=147 command_id=Command.Write_Attributes_rsp>
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0020, data: b'18930400'
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0020]: 3300.0s check-in interval set: [[WriteAttributesStatusRecord(status=<Status.SUCCESS: 0>)]]
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0020]: finished channel configuration
[zigpy_deconz.uart] Frame received: 0x0edf000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1ce0000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04df0007000000
[zigpy_deconz.uart] Frame received: 0x04df0013000c002296022f8201010000000000
[zigpy_deconz.api] APS data confirm response for request with id 150: 00
[zigpy_deconz.api] Request id: 0x96 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=1>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ee0000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1ce1000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17e0000800010001
[zigpy_deconz.uart] Frame received: 0x17e00022001b002202000001022f82010401000504001895040000afff25e60000f6
[zigpy_deconz.api] APS data indication response: [27, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 1280, b'\x18\x95\x04\x00', 0, 175, 255, 37, 230, 0, 0, -10]
[zigpy.zcl] [0x822f:1:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=149 command_id=Command.Write_Attributes_rsp>
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0500, data: b'18950400'
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: wrote cie_addr: 00:21:2e:ff:ff:07:4e:93 to 'ias_zone' cluster: [WriteAttributesStatusRecord(status=<Status.SUCCESS: 0>)]
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: Sending pro-active IAS enroll response
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: finished IASZoneChannel configuration
[zigpy.device] [0x822f] Extending timeout for 0x97 request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 151 under 152 request id, data: b'0197000000'
[zigpy_deconz.api] Command Command.aps_data_request (20, 152, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=1>, 260, 1280, 1, b'\x01\x97\x00\x00\x00', 2, 0)
[zigpy_deconz.uart] Send: 0x12e1001b0014009800022f82010401000501050001970000000200
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: 'async_configure' stage succeeded
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0020]: 'async_configure' stage succeeded
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0502]: 'async_configure' stage succeeded
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0000]: 'async_configure' stage succeeded
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0019]: 'async_configure' stage succeeded
[homeassistant.components.zha.core.device] [0x822F](Alarm_SD_Device): completed configuration
[homeassistant.components.zha.core.device] [0x822F](Alarm_SD_Device): stored in registry: ZhaDeviceEntry(name='Fireangel Alarm_SD_Device', ieee='00:15:5f:00:dc:c8:ec:19', last_seen=1626511754.0632493)
[zigpy.device] [0x822f] Extending timeout for 0x99 request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 153 under 154 request id, data: b'0199400200'
[zigpy_deconz.uart] Frame received: 0x12e100090002002298
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 152]
[zigpy_deconz.api] Command Command.aps_data_request (20, 154, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=1>, 260, 3, 1, b'\x01\x99@\x02\x00', 2, 0)
[zigpy_deconz.uart] Send: 0x12e2001b0014009a00022f82010401030001050001994002000200
[zigpy_deconz.uart] Frame received: 0x12e20009000200229a
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 154]
[zigpy_deconz.uart] Frame received: 0x0ee3000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1ce4000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17e3000800010001
[zigpy_deconz.uart] Frame received: 0x17e30025001e002202000001022f82010401000507001900012b00421200afff96e40000f6
[zigpy_deconz.api] APS data indication response: [30, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 1280, b'\x19\x00\x01+\x00B\x12', 0, 175, 255, 150, 228, 0, 0, -10]
[zigpy.zcl] [0x822f:1:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=0 command_id=1>
[zigpy.zcl] [0x822f:1:0x0500] ZCL request 0x0001: [<ZoneType.Carbon_Monoxide_Sensor: 43>, 4674]
[zigpy.zcl] [0x822f:1:0x0500] No handler for cluster command 1
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: Enroll requested
[zigpy.device] [0x822f] Extending timeout for 0x9b request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 155 under 156 request id, data: b'019b000000'
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0500, data: b'1900012b004212'
[zigpy_deconz.api] Command Command.aps_data_request (20, 156, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=1>, 260, 1280, 1, b'\x01\x9b\x00\x00\x00', 2, 0)
[zigpy_deconz.uart] Send: 0x12e4001b0014009c00022f820104010005010500019b0000000200
[zigpy_deconz.uart] Frame received: 0x12e40009000200229c
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 156]
[zigpy_deconz.uart] Frame received: 0x0ee5000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1ce6000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04e50007000000
[zigpy_deconz.uart] Frame received: 0x04e50013000c002298022f8201010000000000
[zigpy_deconz.api] APS data confirm response for request with id 152: 00
[zigpy_deconz.api] Request id: 0x98 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=1>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ee6000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1ce7000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04e60007000000
[zigpy_deconz.uart] Frame received: 0x04e60013000c00229a022f8201010000000000
[zigpy_deconz.api] APS data confirm response for request with id 154: 00
[zigpy_deconz.api] Request id: 0x9a 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=1>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ee7000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1ce8000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04e70007000000
[zigpy_deconz.uart] Frame received: 0x04e70013000c00229c022f8201010000000000
[zigpy_deconz.api] APS data confirm response for request with id 156: 00
[zigpy_deconz.api] Request id: 0x9c 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=1>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0ee8000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1ce9000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17e8000800010001
[zigpy_deconz.uart] Frame received: 0x17e80023001c002202000001022f820104010005050018970b000000afff25e60000f6
[zigpy_deconz.api] APS data indication response: [28, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 1280, b'\x18\x97\x0b\x00\x00', 0, 175, 255, 37, 230, 0, 0, -10]
[zigpy.zcl] [0x822f:1:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=151 command_id=Command.Default_Response>
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0500, data: b'18970b0000'
[zigpy_deconz.uart] Frame received: 0x0ee9000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1cea000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17e9000800010001
[zigpy_deconz.uart] Frame received: 0x17e900270020002202000001022f820104010005090019010024000000bd0500afff96e40000f6
[zigpy_deconz.api] APS data indication response: [32, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 1280, b'\x19\x01\x00$\x00\x00\x00\xbd\x05', 0, 175, 255, 150, 228, 0, 0, -10]
[zigpy.zcl] [0x822f:1:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=1 command_id=0>
[zigpy.zcl] [0x822f:1:0x0500] ZCL request 0x0000: [<ZoneStatus.Restore_reports|Tamper: 36>, <bitmap8.0: 0>, 0, 1469]
[zigpy.zcl] [0x822f:1:0x0500] No handler for cluster command 0
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: Updated alarm state: ZoneStatus.0
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0500, data: b'19010024000000bd05'
[zigpy_deconz.uart] Frame received: 0x0eea000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1ceb000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17ea000800010001
[zigpy_deconz.uart] Frame received: 0x17ea0023001c002202000001022f820104010300050018990b408100afff1be60000f6
[zigpy_deconz.api] APS data indication response: [28, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 3, b'\x18\x99\x0b@\x81', 0, 175, 255, 27, 230, 0, 0, -10]
[zigpy.zcl] [0x822f: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=153 command_id=Command.Default_Response>
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0003, data: b'18990b4081'
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0003]: executed 'trigger_effect' command with args: '(2, 0)' kwargs: '{}' result: [64, <Status.UNSUP_CLUSTER_COMMAND: 129>]
[homeassistant.components.zha.core.device] [0x822F](Alarm_SD_Device): started initialization
[homeassistant.components.zha.core.channels.base] [0x822F:ZDO](Alarm_SD_Device): 'async_initialize' stage succeeded
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: initializing channel: from_cache: False
[zigpy.device] [0x822f] Extending timeout for 0x9d request
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 157 under 158 request id, data: b'009d00020000000100'
[zigpy_deconz.api] Command Command.aps_data_request (24, 158, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=1>, 260, 1280, 1, b'\x00\x9d\x00\x02\x00\x00\x00\x01\x00', 2, 0)
[zigpy_deconz.uart] Send: 0x12eb001f0018009e00022f820104010005010900009d000200000001000200
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0020]: initializing channel: from_cache: False
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0020]: finished channel configuration
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0502]: initializing channel: from_cache: False
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0502]: finished channel configuration
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0000]: initializing channel: from_cache: False
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0000]: finished channel configuration
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0019]: initializing channel: from_cache: False
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0019]: finished channel configuration
[zigpy_deconz.uart] Frame received: 0x12eb0009000200229e
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 158]
[zigpy_deconz.uart] Frame received: 0x0eec000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1ced000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17ec000800010001
[zigpy_deconz.uart] Frame received: 0x17ec00270020002202000001022f820104010005090019020020000000920000afff25e60000f6
[zigpy_deconz.api] APS data indication response: [32, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 1280, b'\x19\x02\x00 \x00\x00\x00\x92\x00', 0, 175, 255, 37, 230, 0, 0, -10]
[zigpy.zcl] [0x822f:1:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=2 command_id=0>
[zigpy.zcl] [0x822f:1:0x0500] ZCL request 0x0000: [<ZoneStatus.Restore_reports: 32>, <bitmap8.0: 0>, 0, 146]
[zigpy.zcl] [0x822f:1:0x0500] No handler for cluster command 0
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: Updated alarm state: ZoneStatus.0
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0500, data: b'190200200000009200'
[zigpy_deconz.uart] Frame received: 0x0eed000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1cee000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04ed0007000000
[zigpy_deconz.uart] Frame received: 0x04ed0013000c00229e022f8201010000000000
[zigpy_deconz.api] APS data confirm response for request with id 158: 00
[zigpy_deconz.api] Request id: 0x9e 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=1>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x0eee000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1cef000c000500022f82fff6
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17ee000800010001
[zigpy_deconz.uart] Frame received: 0x17ee0032002b002202000001022f8201040100051400189d010200001920000000003001010000312b0000afff25e60000f6
[zigpy_deconz.api] APS data indication response: [43, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 1280, b'\x18\x9d\x01\x02\x00\x00\x19 \x00\x00\x00\x000\x01\x01\x00\x001+\x00', 0, 175, 255, 37, 230, 0, 0, -10]
[zigpy.zcl] [0x822f:1:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=157 command_id=Command.Read_Attributes_rsp>
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0500, data: b'189d010200001920000000003001010000312b00'
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: finished channel configuration
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0500]: 'async_initialize' stage succeeded
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0020]: 'async_initialize' stage succeeded
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0502]: 'async_initialize' stage succeeded
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0000]: 'async_initialize' stage succeeded
[homeassistant.components.zha.core.channels.base] [0x822F:1:0x0019]: 'async_initialize' stage succeeded
[homeassistant.components.zha.core.device] [0x822F](Alarm_SD_Device): power source: Mains
[homeassistant.components.zha.core.device] [0x822F](Alarm_SD_Device): completed initialization
[zigpy_deconz.uart] Frame received: 0x1cef000c000500022f82fff6
[zigpy_deconz.uart] Frame received: 0x1cf0000c000500022f82fff6
[zigpy_deconz.uart] Frame received: 0x1cf1000c000500022f82fff6
[zigpy_deconz.uart] Frame received: 0x1cf2000c000500022f82fff6
[zigpy_deconz.uart] Frame received: 0x1cf3000c000500022f82fff6
[zigpy_deconz.uart] Frame received: 0x1cf4000c000500022f82ffed
[zigpy_deconz.uart] Frame received: 0x1cf5000c000500022f82ffd7
[zigpy_deconz.uart] Frame received: 0x1cf6000c000500022f82ffcf
[zigpy_deconz.uart] Frame received: 0x1cf7000c000500022f82ffd1
[zigpy_deconz.uart] Frame received: 0x1cf8000c000500022f82ffd1
[zigpy_deconz.uart] Frame received: 0x1cf9000c000500022f82ffd1
[zigpy_deconz.uart] Frame received: 0x1cfa000c000500022f82ffd1
[zigpy_deconz.uart] Frame received: 0x1cfb000c000500022f82ffcc
[zigpy_deconz.uart] Frame received: 0x1cfc000c000500022f82ffdd
[zigpy_deconz.uart] Frame received: 0x1cfd000c000500022f82ffe2
[zigpy_deconz.uart] Frame received: 0x1cfe000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x0eff000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.uart] Frame received: 0x1c00000c000500022f82ffde
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17ef000800010001
[zigpy_deconz.uart] Frame received: 0x17ef0023001c002202000001022f8201040100050500189b0b000000afff3fe60000de
[zigpy_deconz.api] APS data indication response: [28, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 1, 260, 1280, b'\x18\x9b\x0b\x00\x00', 0, 175, 255, 63, 230, 0, 0, -34]
[zigpy.zcl] [0x822f:1:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=155 command_id=Command.Default_Response>
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 1, profile: 0x0104, cluster_id: 0x0500, data: b'189b0b0000'
[zigpy_deconz.uart] Frame received: 0x1cf0000c000500022f82ffde
[zigpy_deconz.uart] Frame received: 0x1cf1000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1cf2000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1cf3000c000500022f82ffde
[zigpy_deconz.uart] Frame received: 0x1cf4000c000500022f82ffde
[zigpy_deconz.uart] Frame received: 0x0ef5000700aa00
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
[zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
[zigpy_deconz.uart] Send: 0x17f0000800010001
[zigpy_deconz.uart] Frame received: 0x17f000270020002202fdff00022f820000000600090003fdff04010119000000afff3fe60000de
[zigpy_deconz.api] APS data indication response: [32, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0xfffd>, 0, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, 0, 0, 6, b'\x03\xfd\xff\x04\x01\x01\x19\x00\x00', 0, 175, 255, 63, 230, 0, 0, -34]
[zigpy.zdo] [0x822f:zdo] ZDO request ZDOCmd.Match_Desc_req: [0xFFFD, 260, [25], []]
[zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 3 under 159 request id, data: b'030000000101'
[zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x822f>, ep: 0, profile: 0x0000, cluster_id: 0x0006, data: b'03fdff040101190000'
[zigpy_deconz.api] Command Command.aps_data_request (21, 159, 0, <DeconzAddressEndpoint address_mode=2 address=0x822F endpoint=0>, 0, <ZDOCmd.Match_Desc_rsp: 0x8006>, 0, b'\x03\x00\x00\x00\x01\x01', 2, 0)
[zigpy_deconz.uart] Send: 0x12f1001c0015009f00022f8200000006800006000300000001010200
[zigpy_deconz.uart] Frame received: 0x12f10009000200229f
[zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 159]
[zigpy_deconz.uart] Frame received: 0x1cf2000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x0ef3000700a600
[zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
[zigpy_deconz.uart] Frame received: 0x1cf4000c000500022f82ffde
[zigpy_deconz.api] Command Command.aps_data_confirm (0,)
[zigpy_deconz.uart] Send: 0x04f20007000000
[zigpy_deconz.uart] Frame received: 0x04f20013000c00229f022f8200000000000000
[zigpy_deconz.api] APS data confirm response for request with id 159: 00
[zigpy_deconz.api] Request id: 0x9f 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x822f endpoint=0>, status: 0x00
[zigpy_deconz.uart] Frame received: 0x1cf3000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1cf4000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1cf5000c000500022f82ffde
[zigpy_deconz.uart] Frame received: 0x1cf6000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1cf7000c000500022f82ffde
[zigpy_deconz.uart] Frame received: 0x1cf8000c000500022f82ffde
[zigpy_deconz.uart] Frame received: 0x1cf9000c000500022f82ffde
[zigpy_deconz.uart] Frame received: 0x1cfa000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1cfb000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1cfc000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1cfd000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1cfe000c000500022f82ffde
[zigpy_deconz.uart] Frame received: 0x1cff000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c00000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c01000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c02000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c03000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c04000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c05000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c06000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c07000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c08000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c09000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c0a000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c0b000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c0c000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c0d000c000500022f82ffdf
[zigpy_deconz.uart] Frame received: 0x1c0e000c000500022f82ffdf```

**Additional context**
EAN<PHONE_NUMBER>78

Many thanks in advance!

Pleas use:
```
Log text
```
for not loosing the code formatting and its possible reading the log OK ;-))

GREAT !!!!
Thanks :-)

Hi All,
I hava a similar request. I started with the smoke detector, and did not unbox the CO detector yet, as they probably have the same Zigbee module. I did not succeed in adding the module at all, not even as a binary detector.
At Gamma I bought AngelEye/FireAngel smoke detectors and en CO-detector, all with a Zigbee module (P-line).
I'm using a Rasberry Pi with a ConBee stick and I cannot connect the smoke detector with my HomeAssistant.
Am I doing something wrong? Or is there a compatibility issue?
I was able to pair the smoke-detector with the ICS-2000 at my parent's, so it seems to work fine.
Is there an update on this topic?
Martijn

@LanMart Did you solve this? I also have the same devices I think. At first, I got them paired to the Zigbee network and they showed up as alarm/siren devices. I never tried if I could get test events though. I recently had to rebuild my Zigbee network and now I can't get them connected anymore.
The manual for the Zigbee module states that I should reset the device by holding the pairing button for 5 sec. Based on the LED the device responds to this reset, but afterwards I can't add it in any way. I suspect the module has issues when it has been paired before and doesn't reset properly somehow. Did you pair your device to another Zigbee network before having this problem?

@bramd No, unfortunately I did not solve this. They do not show up at all, not even as a siren. I tested one of the units at my parents trust hub, and it dit work. It seems a compatibility problem. I opened a feature request :
https://community.home-assistant.io/t/support-for-angeleye-fireangel-smoke-detectors-and-en-co-detector-all-with-a-zigbee-module-p-line/449050?u=martlan

I contacted Fireangel support and got a somewhat confusing response.
They suggest that resetting the Zigbee module is not enough, but that it
should be disconnected from the alarm after reset and that you should
pull the battery for 5 minutes. That is not in the manual, but I will
give it a try when I'm back home and have some time.
That being said, my problem is probably different then yours, since my
alarms worked the first time but now refuse to pair in any way.


Remove unneeded signing policies

These signing policies were used when the CA wasn't containerized,
when we containerized it, they were moved to caasp-container-manifests,
and the CA container is mounting it from there.
If we uncontainerize the CA in the future we can move it back if
needed, but let's keep this clean so it's not misleading.

Correct me if I'm wrong, but the etcd cleanups are not related with this PR. If that's the case they should go in with another PR

@flavio Yes, you are right, I kept it as a separate commit for this reason. Cherry picking it to another PR.

Splitted in https://github.com/kubic-project/salt/pull/149


Compatibility with Next.js 9 (getting rid of Express?)

Is your feature request related to a problem? Please describe.
Next.js 9 was released this morning, with a lot of improvements that may simplify the usage of this pluging.
https://nextjs.org/blog/next-9#api-routes
Describe the solution you'd like
Ideally, being able to use next-i18next without having to setup a custom Express instance/file.
Describe alternatives you've considered
I have no idea how this could be done (and I do not think it is even doable), but maybe the new API routes provide a catch-all/middleware section (but I did not see any so far) that could help us achieving this.
Additional context
This is more a discussion about feasibility that a feature request 🚀

That was quick!
Couple things to say:

We are already tracking removal of the Express dep via #274
Otherwise, next-i18next should be fully compatible with NextJs v9

Unless there are compatibility concerns outside of the Express work, I think we can close this issue. Bugs can be raised if/when they are found.

Awesome, thanks!


Improve hosting environment in Sentry

This supersedes https://github.com/DFE-Digital/apply-for-postgraduate-teacher-training/pull/547. Instead of setting the CUSTOM_HOSTNAME, we can also set a custom variable. This is better because the pentest environment doesn't have a CUSTOM_HOSTNAME .

From the ARM template point of view everything is fine with me. Not sure I'm qualified to comment on any of the rest of the code changes.


node Image Type bug

In order to add an image type icon to the nodes in the canvas, the relevant line must be added.

@RackweLLizm Thank you for your contribution！


Server migration/JSON import results in "Key (key)=(BUILDORDER_REFERENCE_PATTERN) already exists"

Deployment Method

[ ] Installer
[ ] Docker Development
[X] Docker Production
[ ] Bare metal Development
[ ] Bare metal Production
[ ] Digital Ocean image
[ ] Other (please provide a link Steps to Reproduce

Describe the problem*
As the title states, I'm trying to migrate a docker server to another docker server and getting the error "Key (key)=(BUILDORDER_REFERENCE_PATTERN) already exists" during the JSON import.
Thanks!
Steps to Reproduce

Update source server with docker-compose pull
Update source server installation with docker-compose run inventree-server invoke update
Export data on source server with docker-compose run inventree-server invoke export-records -f /home/inventree/data/export.json
Clean install on destination server, running docker-compose run inventree-server invoke update to initialize the DB
Copy data/media folder from source server to destination server
Copy esport.json from source to destination, in /data
Import data on destination server with docker-compose run inventree-server invoke import-records -f /home/inventree/data/export.json
See error

Relevant log output
django.db.utils.IntegrityError: Problem installing fixture '/home/inventree/data/export.json.tmp.json': Could not load common.InvenTreeSetting(pk=1): duplicate key value violates unique constraint "common_inventreesetting_key_key"
DETAIL:  Key (key)=(BUILDORDER_REFERENCE_PATTERN) already exists.

Importing with the "-c" option fixed the above error, but now I'm getting:
django.db.utils.IntegrityError: Problem installing fixtures: insert or update on table "build_build" violates foreign key constraint "build_build_responsible_id_49af6fa1_fk_users_owner_id"
DETAIL:  Key (responsible_id)=(16) is not present in table "users_owner".

The -c option will definitely be required to clear our existing data, as you have found.
The next error may be due to how the "owner" data is constructed. Can you check in the exported data (text editor) to see if the "users_owner" data is there, and there is an entry for record 16?

I don't see anything for users_owner.  The users themselves seem to be there under the auth.user model.  I can change the responsible fields to null but that doesn't help obviously.
BTW, this is the best open source project I've ever seen!  Absolutely amazing!!

@n0xlf thanks for you kind words :)
I think what you have uncovered is a bug in the importing process. The "owners" table is reconstructed after import, so if there are owners referenced in the data being imported, perhaps that is causing the reference error.
I am currently away on holiday, can look into this in a few weeks. One of the other devs may have some time to look into it before then.
Alternatively, we would happily receive a PR to address this  if you have some time to submit one. New contributors are always welcome!

No worries - I'm not quite talented enough to contribute to the code base, but thanks for the offer!

@n0xlf are you able to provide the full error logs when you run the import command?

Following up on this - I was going to get you logs, updated everything first, and now get:
Backing up InvenTree database...
Python version 3.10.13 - /usr/local/bin/python3
Traceback (most recent call last):
File "/home/inventree/InvenTree/manage.py", line 23, in
execute_from_command_line(sys.argv)
File "/root/.local/lib/python3.10/site-packages/django/core/management/init.py", line 419, in execute_from_command_line
utility.execute()
File "/root/.local/lib/python3.10/site-packages/django/core/management/init.py", line 395, in execute
django.setup()
File "/root/.local/lib/python3.10/site-packages/django/init.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/root/.local/lib/python3.10/site-packages/django/apps/registry.py", line 122, in populate
app_config.ready()
File "/root/.local/lib/python3.10/site-packages/allauth/account/apps.py", line 15, in ready
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: allauth.account.middleware.AccountMiddleware must be added to settings.MIDDLEWARE
ERROR: 1

Here ya go:
`[+] Creating 1/0
✔ Container inventree-production-inventree-db-1  Running                                                                                0.0s
Loading config file : /home/inventree/data/config.yaml
Deleting all data from InvenTree database...
Python version 3.10.13 - /usr/local/bin/python3
/root/.local/lib/python3.10/site-packages/allauth/exceptions.py:9: UserWarning: allauth.exceptions is deprecated, use allauth.core.exceptions
warnings.warn("allauth.exceptions is deprecated, use allauth.core.exceptions")
Importing database records from '/home/inventree/data/export.json'
Python version 3.10.13 - /usr/local/bin/python3
/root/.local/lib/python3.10/site-packages/allauth/exceptions.py:9: UserWarning: allauth.exceptions is deprecated, use allauth.core.exceptions
warnings.warn("allauth.exceptions is deprecated, use allauth.core.exceptions")
Traceback (most recent call last):
File "/root/.local/lib/python3.10/site-packages/django/db/backends/utils.py", line 82, in _execute
return self.cursor.execute(sql)
psycopg2.errors.ForeignKeyViolation: insert or update on table "build_build" violates foreign key constraint "build_build_responsible_id_49af6fa1_fk_users_owner_id"
DETAIL:  Key (responsible_id)=(21) is not present in table "users_owner".
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/inventree/InvenTree/manage.py", line 23, in
execute_from_command_line(sys.argv)
File "/root/.local/lib/python3.10/site-packages/django/core/management/init.py", line 419, in execute_from_command_line
utility.execute()
File "/root/.local/lib/python3.10/site-packages/django/core/management/init.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/root/.local/lib/python3.10/site-packages/django/core/management/base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "/root/.local/lib/python3.10/site-packages/django/core/management/base.py", line 398, in execute
output = self.handle(*args, **options)
File "/root/.local/lib/python3.10/site-packages/django/core/management/commands/loaddata.py", line 78, in handle
self.loaddata(fixture_labels)
File "/root/.local/lib/python3.10/site-packages/django/core/management/commands/loaddata.py", line 131, in loaddata
connection.check_constraints(table_names=table_names)
File "/root/.local/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 285, in check_constraints
cursor.execute('SET CONSTRAINTS ALL IMMEDIATE')
File "/root/.local/lib/python3.10/site-packages/django/db/backends/utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/root/.local/lib/python3.10/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/root/.local/lib/python3.10/site-packages/django/db/backends/utils.py", line 79, in _execute
with self.db.wrap_database_errors:
File "/root/.local/lib/python3.10/site-packages/django/db/utils.py", line 90, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/root/.local/lib/python3.10/site-packages/django/db/backends/utils.py", line 82, in _execute
return self.cursor.execute(sql)
django.db.utils.IntegrityError: Problem installing fixtures: insert or update on table "build_build" violates foreign key constraint "build_build_responsible_id_49af6fa1_fk_users_owner_id"
DETAIL:  Key (responsible_id)=(21) is not present in table "users_owner".
`

@n0xlf would you be willing to send through the exported dataset (.json file) to test with? This issue does not occur on my test dataset. If you are able, please send to support @ inventree . org - I understand if you are not willing though!

That would actually be great if you can test since I'm running it
dockerized...I'll send shortly
------ Original Message ------
From "Oliver" @.>
To "inventree/InvenTree" @.>
Cc "n0xlf" @.>; "Mention" @.>
Date 1/14/2024 11:19:00 PM
Subject Re: [inventree/InvenTree] Server migration/JSON import results
in "Key (key)=(BUILDORDER_REFERENCE_PATTERN) already exists" (Issue
#6127)

@n0xlf https://github.com/n0xlf would you be willing to send through
the exported dataset (.json file) to test with? This issue does not
occur on my test dataset. If you are able, please send to support @
inventree . org - I understand if you are not willing though!
—
Reply to this email directly, view it on GitHub
https://github.com/inventree/InvenTree/issues/6127#issuecomment-1891373843,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGXXDS6TY43JDTKY6CAWHJ3YOTC5JAVCNFSM6AAAAABA7BYJ26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJRGM3TGOBUGM.
You are receiving this because you were mentioned.Message ID:
@.***>

After receiving your data, I can confirm that the issue occurs with your dataset. To re-export this, from your "old" docker image, run the following steps:
Login to Docker Container CLI
docker compose run inventree-server sh
Edit tasks.py

nano tasks.py
Remove line 'users.owner' in function content_excludes()
save file and exit

Export Data
You can now export the data using invoke export-records - and the exported data should now contain the required users.owner fields. Please confirm!
Import Data
Now, you should be able to re-import the data into your new container!

Unfortunately no luck:

Not exactly - we have "fixed" one error, now onto the next one!
Unfortunately, the "next one" has broken import/export entirely. New patch incoming, hopefully tonight if I have time!

Assuming I'm doing this correctly (running the Docker version) I simply did a wget on apps.py in Inventree/Inventree and tasks.py in root from the RAW github both on the source and destination servers.  Then I re-ran the export/import, and get:
Traceback (most recent call last):   File "/home/inventree/InvenTree/manage.py", line 23, in <module>     execute_from_command_line(sys.argv)   File "/root/.local/lib/python3.10/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line     utility.execute()   File "/root/.local/lib/python3.10/site-packages/django/core/management/__init__.py", line 413, in execute     self.fetch_command(subcommand).run_from_argv(self.argv)   File "/root/.local/lib/python3.10/site-packages/django/core/management/base.py", line 354, in run_from_argv     self.execute(*args, **cmd_options)   File "/root/.local/lib/python3.10/site-packages/django/core/management/base.py", line 398, in execute     output = self.handle(*args, **options)   File "/root/.local/lib/python3.10/site-packages/django/core/management/commands/loaddata.py", line 78, in handle     self.loaddata(fixture_labels)   File "/root/.local/lib/python3.10/site-packages/django/core/management/commands/loaddata.py", line 123, in loaddata     self.load_label(fixture_label)   File "/root/.local/lib/python3.10/site-packages/django/core/management/commands/loaddata.py", line 190, in load_label     obj.save(using=self.using)   File "/root/.local/lib/python3.10/site-packages/django/core/serializers/base.py", line 223, in save     models.Model.save_base(self.object, using=using, raw=True, **kwargs)   File "/root/.local/lib/python3.10/site-packages/django/db/models/base.py", line 776, in save_base     updated = self._save_table(   File "/root/.local/lib/python3.10/site-packages/django/db/models/base.py", line 858, in _save_table     updated = self._do_update(base_qs, using, pk_val, values, update_fields,   File "/root/.local/lib/python3.10/site-packages/django/db/models/base.py", line 912, in _do_update     return filtered._update(values) > 0   File "/root/.local/lib/python3.10/site-packages/django/db/models/query.py", line 802, in _update     return query.get_compiler(self.db).execute_sql(CURSOR)   File "/root/.local/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1559, in execute_sql     cursor = super().execute_sql(result_type)   File "/root/.local/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1175, in execute_sql     cursor.execute(sql, params)   File "/root/.local/lib/python3.10/site-packages/django/db/backends/utils.py", line 66, in execute     return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)   File "/root/.local/lib/python3.10/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers     return executor(sql, params, many, context)   File "/root/.local/lib/python3.10/site-packages/django/db/backends/utils.py", line 79, in _execute     with self.db.wrap_database_errors:   File "/root/.local/lib/python3.10/site-packages/django/db/utils.py", line 90, in __exit__     raise dj_exc_value.with_traceback(traceback) from exc_value   File "/root/.local/lib/python3.10/site-packages/django/db/backends/utils.py", line 84, in _execute     return self.cursor.execute(sql, params) django.db.utils.IntegrityError: Problem installing fixture '/home/inventree/data/export.json.data.json': Could not load users.Owner(pk=1): duplicate key value violates unique constraint "unique_owner" DETAIL:  Key (owner_type_id, owner_id)=(85, 1) already exists.

@n0xlf ok, what version of InvenTree are you running? (ignoring your manual file changes)
If you want to re-send me the newly exported data file, I can use that locally to work out what is going on

This should be addressed now in https://github.com/inventree/InvenTree/pull/6271

Success!!  You're awesome!!

@n0xlf thanks for the confirmation that it works! That was a very tricky edge case, I'm glad that we have found and squashed it :)
If you are not already, please consider supporting the project so that we can continue to provide quick support like this!

Sent...thanks again!


Include only specified columns in the anonymized dump

Hello gonymizer team,
we are currently evaluating gonymizer for our use cases.
We want to archive the following (simplified) use case:

Table T with columns A,B
Specified map file with only columns A,B
whenever a new column C with sensitive data is added to table T, C will not be included in the anonymized dump

Our experiments showed that even tough the column C was not specified in the map file it was still included in the dump.
Is there a way for the desired behavior?

Hi @ahilmer,
Are you using an inclusive or exclusive configuration for your map file?
More on that here -> https://github.com/smithoss/gonymizer/#inclusive-map-files

Hi @junkert ,
thanks for your response.
It was not very clear for us on how to configure either inclusive or exclusive.
From my undertanding:
inclusive: You specify in your map file all the columns.
exclusive: You specify only those columns you want to anoymize.
But what if the schema evolves and you use the same map file?
My local experiments showed that newly added columns were in the processed dump even tough they were not specified.
Maybe I should ask the question in a different way:
Can gonymizer ignore columns which were not specified in the map file?

In this case I recommend you use the inclusive file which will cause the process step to fail if a column exists in a table, but not in the map file. To do this you will need to add some extra steps to your CI/CD process for schema changes. I recommend the mapfile be updated at the same time someone adds a new column to the database. This adds an extra step to your typical development process, but guarentees that you will not be missing any PHI column that sneaks in.

You will first want to run the map command again to create a new map file. DO NOT OVERWRITE YOUR original map file... create a new one.
Run diff between the new map file and the original map file.
Copy / paste any new columns from the new map file to the original map file.
Edit the original map file and add processors to the new columns
Check in your original to Git
Run the process step

So the inclusive method can help there.
It is not clear for me from the documentation on how and where to specify the inclusive method.
Lets say we have the script from the example:
...     "process":  {         "dump-file":            "phi_dump.sql",         "map-file":             "db_map.json",         "generate-seed":        true,         "processed-file":       "anonymized_dump.sql"     }, ...
Where is here place to specify the method?

@junkert I appreciate your proposed solution, but how do you enable the inclusive method to let the process step fail if there are column mismatches (column exists in table, but not in the map file)? Because at the moment, the process step won't fail if the db_map.json file lacks some columns. I am unable to find the instructions in the documentation regarding toggling the inclusive method.

The above PR should fix this issue. Thank you everyone for pointing out that this was missing. I will push this as release version 1.2.3 once it is approved and committed.

Thank you a lot @junkert, much appreciated. 🙏


Loader Module for N64 roms

hi,
I wrote a loader module for N64 roms here https://github.com/zeroKilo/N64LoaderWV maybe you want to add it to your loaders, as ghidra has a mips decompiler. thanks for your time
greetz

Great work on writing a custom loader!  Maintaining the loader yourself as a 3rd party extension is the way to go for this one though.


File body scrolls until last line reaches the top

VSCode Version: Code 1.6.0 (e52fb0bc87e6f5c8f144e172639891d8d8c9aa55, 2016-10-10T18:28:55.412Z)
OS Version: Darwin x64 15.6.0
Extensions: EditorConfig.EditorConfig-0.3.3, HookyQR.minify-0.2.4, HvyIndustries.crane-0.2.1, Kasik96.format-indent-1.3.0, SirTori.indenticator-0.2.1, TwentyChung.jsx-0.0.1, Zignd.html-css-class-completion-1.0.3, bcmarinacci.theme-material-1.3.0, emmanuelbeziat.vscode-great-icons-1.1.11, flowtype.flow-for-vscode-0.3.2, hnw.vscode-auto-open-markdown-preview-0.0.3, robinbentley.sass-indented-1.1.0, wmaurer.html2jade-0.2.0

Steps to Reproduce:

Open any source-code file, such as: *.php or *.js;
Scroll down until it stops scrolling;

Whenever you scroll down a source-code file, it will just stop scrolling when the last line of code (or text) reaches the very top of the text-editor window. It's also possible to scroll down the file, even if file content is smaller than window height!
If file content is longer than window height, at end it makes user see a big empty space in the editor between the last code line and the bottom of editor window, as if we just had only one line of code.

Do you also see this issue when you start vscode with --disable-extensions


Pre-work link is dead

Describe the bug
A pre-work link dead-ends into GH 404 page.
To Reproduce
Steps to reproduce the behavior:

Go to 'https://wayfair.github.io/awesome-learning/courses/Data-Types/types-and-equality'
Click on 'https://github.com/getify/You-Dont-Know-JS/blob/master/types %26 grammar/ch1.md'
See error (404 page)

Expected behavior
I expected Chapter 1 of YDKJ to open.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: macOS 10.15.6
Browser: Chrome
Version: 84.0.4147.125 (Official Build) (64-bit)

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
CORRECT LINK IS: https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/types %26 grammar/ch1.md
(ACTIVE LINK ON PAGE: https://github.com/getify/You-Dont-Know-JS/blob/master/types%20%26%20grammar/ch1.md)

Thank you for catching this @gacurl ! Would be able to open up a pull request to fix this issue, by any chance? If you create a fork of this repo, you can make a pull request to compare across your fork to this repo!

I read the contributing guide, but unsure if I met all the rules (I'm a noob). So if you'd please review, I'd be sure to update accordingly.
All the best,
Greg


Performance Improvements: Have no excessively slow computation that could be easily sped up

no row-wise use of apply unless well justified and optimized

Not needed as per conversation with Joel


[operator] Introduce lastOperation in Garden status

How to categorize this PR?

/area usability
/kind enhancement
What this PR does / why we need it:
.status.lastOperation, similar to how it's done for Shoots.
Which issue(s) this PR fixes:
Part of #7016
Special notes for your reviewer:
After #8158, both garden-garden and garden-care reconcilers were mutating the .status.conditions of the Garden. This required them to perform their patches with optimistic locking, effectively resulting in quite some conflicts during a reconciliation. This locking was required because Garden is a CRD and no strategic merge-patch is supported here. For Seeds, the same approach is followed, however here strategic merge-patch is indeed supported since the Seed API is served by gardener-apiserver and not by a CRD.
Due to this and with the motivation to streamline things between Shoots and Gardens, we decided to change this and only let the garden-care reconciler maintain the conditions while garden-garden reconciler maintains the last operation. This way, no optimistic locking is required anymore which also allowed us to drop this "retry" workaround code in the garden-care reconciler introduced with #8158.
/cc @timuthy @oliver-goetz
Release note:

`gardener-operator` no longer reports the `Reconciled` condition. Instead, it now reports the progress in `.status.lastOperation`, similar to how it's done for `Shoot`s.

/assign

/lgtm


Fix GetCPUDescriptorHandleForHeapStart typo for convert tool

The problem
There is a typo in Dx12AsciiConsumer::Process_ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart()
The solution and result
Typo correction made.

Author feimao-gfxr not on autobuild list. Waiting for curator authorization before starting CI build.

The base branch was correct.


sw_engine: building tvgSwRasterAvx as a library

it's a draft, since in src/lib/sw_engine/tvgSwRaster.cpp the changes are made only for testing purposes.
I want to use function pointers, but not to each raster function, rather only to the external ones. but to do this we need to implement more avx functions.

@hermet I'd appreciate your comment on the solution - is it ok to use tvgSwRasterAvx as a library? I also use ifdefs to include it instead of inside tvgSwRasterAvx.h/cpp files - is that correct?

@hermet I'd appreciate your comment on the solution - is it ok to use tvgSwRasterAvx as a library? I also use ifdefs to include it instead of inside tvgSwRasterAvx.h/cpp files - is that correct?

if you mean that dynamic linking, it's not good. Back to the origin does it necessary? Can't we decide it to call or not by the toggling variable?

I'll come back to this pr after more functions will be implemented in the avx version


update package.json to pull status-list-manager from npm

Currently, the package.json pulls in the status list manager from:
digitalcredentials/status-list-manager-git
Will want to pull in from NPM once published there.

Was just published to NPM: https://www.npmjs.com/package/@digitalcredentials/credential-status-manager-git
James will update code to reference this.


Adds JSDocs for the handleFetch parameter

R: @addyosmani @gauntface
I noticed that the JSDocs for handleFetch were missing when responding to https://github.com/GoogleChrome/workbox/issues/721

LGTM with the lint fixes.

Serves me right for using GitHub's web editor.


add if statement to check if Raven object has been instantiated

Description of changes

Checks to make sure that the Raven object exists before calling any methods on it.
Issue Resolved

Fixes #955

Fixed in #980


Beautify meta .json files

Beautify meta .json files
🚀 🚀 Pull Request
Checklist:

[x]  My code follows the style guidelines of this project and the Contributing document
[x]  I have commented my code, particularly in hard-to-understand areas
[x]  I have kept the coverage-rate up
[x]  I have performed a self-review of my own code and resolved any problems
[x]  I have checked to ensure there aren't any other open Pull Requests for the same change
[x]  I have described and made corresponding changes to the relevant documentation
[ ]  New and existing unit tests pass locally with my changes

Changes

tests not necessary for this, writing a beautification test would be cumbersome.


feat: Add Dockerfile to simplify developer tool installation

I am a fan of using Docker to create reproducible build environments, especially if they're complicated to set up. An added advantage is that once a Docker container is working, it's not subject to the vagaries of version changes when using the "latest" tools.
The Dockerfile in this PR replicates the cargo test environment, and lets people set it up without even needing to install rust or cargo. (They must, of course, install Docker.)
Some thoughts about the state of this PR:

It's a FIRST CUT.
My tests and examples display the Playground, Language Book, and Website.
I am unsure how to test the other components - please consider updating the USING_DOCKER.md document (or tell me how to do it).
I have not/do not know how to pin various version numbers to all the dependencies. This would be a good second step so that the build environment is entirely reproducible.
As an example, when working on the book, there's a warning about version conflicts using mdbook-admonish (0.4.18 vs 0.4.21) that results in rebuilding something when I expect the versions should be the same.

I am happy to work with reviewers to make the Dockerfile and its documentation better.

Hmmm... Interesting commit error messages. Let me take a day to work on this before you spend time reviewing it.

As an example, when working on the book, there's a warning about version conflicts using mdbook-admonish (0.4.18 vs 0.4.21) that results in rebuilding something when I expect the versions should be the same.

Yeah, I don't think this is important, but false positives aren't great. My guess is that regenerating the mdbook-admonish artifacts will make the warning go away. But low priority

A quick response to you observations...

The macOS or Linux installation procedure can, and should, be different from Docker - they will serve different audiences.
I realize I screwed up the cargo test (non-Docker) installation procedure in the Taskfile.yml. I'll fix that by using brew to install hugo and npm in the setup-dev task. (I removed brew because it takes 5+ minutes to install in Docker. It wasn't worth the effort when those programs take take ~10 seconds to install individually...)
I realize that poetry for Python (or pyenv), and nvm for Node projects, and other "environment management systems" are popular with people who are heavily invested in a particular language. But for a software dilettante like me (who hoovers up projects in loads of different language on a regular basis), my stomach begins to hurt when someone says, "Just run xxx in [ poetry | pyenv | nvm | ... ]" to set up an environment. It's never "just do anything" - it requires you to buy into that system wholesale... Case in point: I originally had an ancient version of rust on my macOS machine that was initially throwing all sorts of errors. I had to Google "how to uninstall rust" and then re-install a current version.
The things that attract me to the Docker process include:

It's identical on macOS, Linux, or Windows. No special instructions necessary
It's "can't fail" - a well-constructed Dockerfile will always replicate the same environment
Most importantly, it will never "pollute" my other development environments.

I had originally combined Using the Dockerfile in the DEVELOPMENT.md file, but realized that there was only incidental commonality between them. Although both list the components and give hints for making them run, the Docker hints are somewhat different from those of the "standard install".

I'll work further on this in the next day or so. Thanks for your review!

(I removed brew because it takes 5+ minutes to install in Docker. It wasn't worth the effort when those programs take take ~10 seconds to install individually...)

Very reasonable. I think if it's just for Docker, then I would vote to put them in the Dockerfile, and have the Taskfile for more general usage

"Just run xxx in [ poetry | pyenv | nvm | ... ]" to set up an environment. It's never "just do anything" - it requires you to buy into that system wholesale... Case in point: I originally had an ancient version of rust on my macOS machine that was initially throwing all sorts of errors. I had to Google "how to uninstall rust" and then re-install a current version.

Yes I very much appreciate this. e.g. if someone wanted to make an edit to the Book and didn't have a rust toolchain, it's quite useful.
Thank you!

Oh dear. I had forgotten that I had the PR outstanding, and worse, that it bothers you while I stumble around in my ignorance I am going to close this and work on it privately until I have something to show.
(I didn't have Github Actions turned on in my fork, so I had never seen the hailstorm of grumpy notes that were emitted when I made a PR.)
PS If I have strength, I may work on some of the warnings about dependencies. The one that I don't know how to correct is that all the workflows have uses: composite, and this elicits warnings about Node12. Where is composite defined, and how would I change it to use Node16? Thanks.

Sorry @richb-hanover — I didn't mean to interfere! It's totally fine — I get lots of GH notifications, and can easily ignore the ones if you'd rather wait until the end to review.
Totally as you wish re working on an open PR vs your own branch. You can also use "Draft" if you want to make that legible.
I appreciate your contributions so far and hope you can continue to be part of PRQL!

Your comments don't cause a problem. I enjoy learning about how all these bits work together (it's a series of progressive discoveries... Oh - look - that's what happens if I wiggle this lever... :-)
Any thoughts on the using: composite question? Thanks again

Any thoughts on the using: composite question? Thanks again

I think composite is the default (some details, but no great summary, at https://docs.github.com/en/actions/creating-actions/creating-a-composite-action & https://wallis.dev/blog/composite-github-actions).
I think probably the way around that is adding something like https://github.com/actions/setup-node to the workflow steps which use node, rather than relying on the old default version. Lmk any issues!

I see what you mean about the node 12 warnings — they're everywhere, e.g. https://github.com/prql/prql/actions/runs/3253076848
I think many of those will need to be updated upstream, e.g. in the warning above: Please update the following actions to use Node.js 16: amannn/action-semantic-pull-request

I think many of those will need to be updated upstream, e.g. in the warning above: Please update the following actions to use Node.js 16: amannn/action-semantic-pull-request

https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md#501-2022-10-14
You can see the future... :-)

Completely OT, and since I'm being a noodge... :-) The README currently says:

Current status
After several months of building, PRQL is ready to use! Check out the 0.2 Release Notes!

Is there any news now (or on the near horizon) that could update the README? It feels as if you have accomplished most of what's implied here. What is next on your roadmap? What are the next "big issues"? (Integration with various tools seems interesting. What are your thoughts about how to accomplish this?) Thanks, as always.

Is there any news now (or on the near horizon) that could update the README? It feels as if you have accomplished most of what's implied here. What is next on your roadmap? What are the next "big issues"? (Integration with various tools seems interesting. What are your thoughts about how to accomplish this?) Thanks, as always.

Definitely, I think it's definitely due for an update, and makes it look a bit stale at the moment. Thanks a lot for suggesting. I'll give it an update, will open an issue to remind myself


This subcomponent should be exported too

https://github.com/linksplatform/react-deep-tree/blob/adb4ac25ddc84a1d62e27a282a1cb5c7f09a5a62/index.tsx#L10

Closed in https://github.com/linksplatform/react-deep-tree/commit/0580aee0ea4a66023a56ab1e62e135f79c0e8a74


Update terrarium_adapter.py

fix chain call bug(ebin, pbin)

No sure, that it did not break anything, lets merge and test it.


Re-enabling etcd after disabling it on a node causes etcd to not start

Environmental Info:
Testing using commit ID
k3s -v
k3s version v1.20.4+k3s-7c99f864 (7c99f864)
go version go1.15.8
Node(s) CPU architecture, OS, and Version:
Ubuntu 20.04, amd64
Cluster Configuration:
Cluster Config
Node1 - etcd only
Node2 - no etcd
Node3 - all roles
Node3 -all roles
Describe the bug:
On a node with all roles, etcd is first disabled using disable-etcd: true in config file and then enabled back using disable-etcd: false.  disable-etcd: true works as expected, disable-etcd: false fails. k3s service hangs indefinitely
Steps To Reproduce:
Create cluster with above setup.
Disable etcd on node 4 using config.yaml
Enable etcd on node 4 using config.yaml
Expected behavior:
Node should be added to etcd cluster
Actual behavior:
Node is not added to etcd cluster
Additional context / logs:
Mar 11 20:55:51 ip-172-31-36-38 k3s[3145]: {"level":"warn","ts":"2021-03-11T20:55:51.716Z","caller":"etcdserver/server.go:1095","msg":"server error","error":"the member has been permanently removed from the cluster"}
Mar 11 20:55:51 ip-172-31-36-38 k3s[3145]: {"level":"warn","ts":"2021-03-11T20:55:51.717Z","caller":"etcdserver/server.go:1096","msg":"data-dir used by this member must be removed"}

Validated using master, k3s version v1.20.4+k3s-73df65d9 (73df65d9)
With disable-etcd: false, node is joined back to the cluster successfully.


💡 [FEATURE] - Adding A Section for Data Structures and Algorithms(DSA)

Idea Contribution

[X] I have read all the feature request issues.
[X] I'm interested in working on this issue
[X] I'm part of GSSOC organization

Explain feature request
Data Structures and Algorithms (DSA) are the most demanded skills an interviewer looks for in a candidate in an interview. Many times candidates are confused about certain things like what to study, where to study, are these enough? . A dedicated section would really help the candidates crack their interviews and help them land their dream jobs.
Explain your solution
I would like to share all the Data Structures and their description. Along with that YouTube Channels, Courses, Sites to practice and learn and some useful resources. Also I have one doubt, I have pdfs saved in my local system, how can I upload them so that others too can access them.
Any alternative approaches/features
No response
Additional Context
No response

@jfmartinz Look into it, you can assign me this after creating a section.

@MIpaltan007
Hello, I would like to work on this issue. Could you please assign it to me?

@jfmartinz Bro, please look into it once again. This too is a very useful category.

Is this a new Category or domain?

@jfmartinz Bro, please look into it once again. This too is a very useful category.

Is this a new Category or domain?

@jfmartinz Bro, please look into it once again. This too is a very useful category.

@jfmartinz It is the king of all categories. You can't clear the coding round of any company if you are not good at DSA. Also in interviews, no matter how good a developer you are, still you will be asked DSA related questions and that actually decides your placement. This is what I have experienced, also the current scenario in India.

Okay, sure. Please add it under Programming Languages and make sure that you follow the format, please take a look carefully.

Sure sir. Before that, Assign me this Issue


'SipMask is not in the detector registry'

greetings, thanks for sharing your work!
i'm trying to run the demo on an ec2:
python3 ./demo/sipmask_demo.py ./configs/sipmask/sipmask_r50_caffe_fpn_gn_1x.py ./sipmask_r50_caffe_1x.pth ./demo/demo.jpg --out ./demo/aa.jpg
but i keep getting the following error:
File "/home/ubuntu/.local/lib/python3.6/site-packages/mmcv/utils/registry.py", line 164, in build_from_cfg     f'{obj_type} is not in the {registry.name} registry') KeyError: 'SipMask is not in the detector registry'
i followed all the steps on the installation of mmcv and mmdetection, and then cloned the sipmask repo. do you know what might be causing this?
thanks in advance!

python 3.6.9, cuda 10.0, pytorch 1.4.0, mmcv 1.1.5, mmdet 2.5.0

@amaanda Thanks for interest. Maybe the enviroment doesnot match. Please refer to the Readme for the version about pytorch, mmcv. In addition, you donot need to install a new mmdetection because our project contains the mmdetection.

Yep! My mistake was that I was trying to install mmdetection before even cloning into your repo. Thanks! :)


get_node not working

Hello,
i have a problem with the method get_node,
it return false and i don't know why.
i've tried :
tree.jstree(true).get_node('#1')
tree.jstree(true).get_node('1_anchor')
tree.jstree(true).get_node(1)
tree.jstree(true).get_node($('#1')
the doc says "child DOM element, ID string, selector, etc" so i don't what is the problem.
thanks

Hello,
i found the solution,
node can't be altered before loading like i was trying to do.
if i use the loaded.jstree event instead of loading.jstree event its works


Convert all the structs to Objects

Description:
We need to convert all structs based implementations to Objects.

Closing this issue as this has been done.


Displayed date on blog page is not correct

Hello!
On the list view, I have the same displayed date, see the screenshot above

I selected the publication date.

Do you have a publication date set for each post that's different from one another?  If not, it'll default to now.

Hum, I understand. In fact, I fill the date field, not the publication date one. So I close this issue. Sorry for the noise.


Support Swarm hashes

EIP 1577 now specifies how to encode Swarm hashes. Can you update the library to support encoding and decoding hashes in this format?

I will do it ASAP !

@Arachnid Those change have already been done by @nonsense here, but as said in the PR, I can't publish the package to npm for the moment, because npm js-multicodec and cids are not up to date with their github repo
https://github.com/multiformats/js-multicodec/issues/42
https://github.com/multiformats/js-cid/issues/85

[x] done in v2.3.1