Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Device Support Request] ZLinky_TIC (French Linky electricity meter) #1146

Closed
pdecat opened this issue Nov 11, 2021 · 16 comments · Fixed by #1165
Closed

[Device Support Request] ZLinky_TIC (French Linky electricity meter) #1146

pdecat opened this issue Nov 11, 2021 · 16 comments · Fixed by #1165

Comments

@pdecat
Copy link
Contributor

pdecat commented Nov 11, 2021

Is your feature request related to a problem? Please describe.

Add support for ZLinky_TIC, an add-on to transmit all data from the French Linky electricity meter.

Firmware for this device is open source, and clusters are documented at https://github.com/fairecasoimeme/Zlinky_TIC

Describe the solution you'd like

I'd like to be able to query the manufacturer specific cluster attributes:
image

Device signature

{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4151, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=11264, maximum_outgoing_transfer_size=100, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0053",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0702",
        "0x0b01",
        "0x0b04",
        "0xff66"
      ],
      "out_clusters": [
        "0x0019"
      ]
    },
    "242": {
      "profile_id": 41440,
      "device_type": "0x0061",
      "in_clusters": [
        "0x0021"
      ],
      "out_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "LiXee",
  "model": "ZLinky_TIC",
  "class": "zigpy.device.Device"
}
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.TCDevInd.Callback(SrcNwk=0xE837, SrcIEEE=00:15:8d:00:04:ff:ff:ff, ParentNwk=0x0BA5)
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 INFO (MainThread) [zigpy_znp.zigbee.application] TC device join: ZDO.TCDevInd.Callback(SrcNwk=0xE837, SrcIEEE=00:15:8d:00:04:ff:ff:ff, ParentNwk=0x0BA5)
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteDisc.Req(Dst=0xE837, Options=<RouteDiscoveryOptions.UNICAST: 0>, Radius=30)
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteDisc.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.EndDeviceAnnceInd.Callback(Src=0xE837, NWK=0xE837, IEEE=00:15:8d:00:04:ff:ff:ff, Capabilities=<MACCapabilities.AllocateShortAddrDuringAssocNeeded|RXWhenIdle|MainsPowered|Router: 142>)
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 INFO (MainThread) [zigpy_znp.zigbee.application] ZDO device announce: ZDO.EndDeviceAnnceInd.Callback(Src=0xE837, NWK=0xE837, IEEE=00:15:8d:00:04:ff:ff:ff, Capabilities=<MACCapabilities.AllocateShortAddrDuringAssocNeeded|RXWhenIdle|MainsPowered|Router: 142>)
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 INFO (MainThread) [zigpy.application] New device 0xe837 (00:15:8d:00:04:ff:ff:ff) joined the network
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy.device] [0xe837] Scheduling initialization
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy_znp.zigbee.application] Pretending we received a ZDO message: b'\xFF\x37\xE8\xFF\xFF\xFF\x04\x00\x8D\x15\x00\x8E'
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy.application] Received frame on uninitialized device <Device model=None manuf=None nwk=0xE837 ieee=00:15:8d:00:04:ff:ff:ff is_initialized=False> from ep 0 to ep 0, cluster ZDOCmd.Device_annce: b'\xFF\x37\xE8\xFF\xFF\xFF\x04\x00\x8D\x15\x00\x8E'
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy.zdo] [0xe837:zdo] ZDO request ZDOCmd.Device_annce: [0xE837, 00:15:8d:00:04:ff:ff:ff, 142]
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy.util] Tries remaining: 3
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 INFO (MainThread) [zigpy.device] [0xe837] Requesting 'Node Descriptor'
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy.util] Tries remaining: 2
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy.device] [0xe837] Extending timeout for 0xfa request
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0xE837, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>)
Nov 06 16:08:58 myhost hass[1643]: 2021-11-06 16:08:58 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.FAIL: 1>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted a ZDO request: dst_addr=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), dst_ep=0, src_ep=0, cluster=ZDOCmd.Node_Desc_req, sequence=250, options=TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST, radius=30, data=b'\xfa7\xe8'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted AP ZDO request ZDOCmd.Node_Desc_req({'NWKAddrOfInterest': 0xE837}) and replaced with ZDO.NodeDescReq.Req(DstAddr=0xE837, NWKAddrOfInterest=0xE837)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.NodeDescReq.Req(DstAddr=0xE837, NWKAddrOfInterest=0xE837)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.NodeDescReq.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.NodeDescRsp.Callback(Src=0xE837, Status=<Status.SUCCESS: 0>, NWK=0xE837, NodeDescriptor=NullableNodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4151, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=11264, maximum_outgoing_transfer_size=100, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False))
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Pretending we received a ZDO message: b'\xFA\x00\x37\xE8\x01\x40\x8E\x37\x10\x7F\x64\x00\x00\x2C\x64\x00\x00'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.application] Received frame on uninitialized device <Device model=None manuf=None nwk=0xE837 ieee=00:15:8d:00:04:ff:ff:ff is_initialized=False> from ep 0 to ep 0, cluster ZDOCmd.Node_Desc_rsp: b'\xFA\x00\x37\xE8\x01\x40\x8E\x37\x10\x7F\x64\x00\x00\x2C\x64\x00\x00'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.device] [0xe837] Got Node Descriptor: NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4151, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=11264, maximum_outgoing_transfer_size=100, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.device] [0xe837] Discovering endpoints
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.util] Tries remaining: 3
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0xE837, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted a ZDO request: dst_addr=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), dst_ep=0, src_ep=0, cluster=ZDOCmd.Active_EP_req, sequence=251, options=TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST, radius=30, data=b'\xfb7\xe8'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted AP ZDO request ZDOCmd.Active_EP_req({'NWKAddrOfInterest': 0xE837}) and replaced with ZDO.ActiveEpReq.Req(DstAddr=0xE837, NWKAddrOfInterest=0xE837)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ActiveEpReq.Req(DstAddr=0xE837, NWKAddrOfInterest=0xE837)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ActiveEpReq.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ActiveEpRsp.Callback(Src=0xE837, Status=<Status.SUCCESS: 0>, NWK=0xE837, ActiveEndpoints=[1, 242])
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Pretending we received a ZDO message: b'\xFB\x00\x37\xE8\x02\x01\xF2'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.application] Received frame on uninitialized device <Device model=None manuf=None nwk=0xE837 ieee=00:15:8d:00:04:ff:ff:ff is_initialized=False> from ep 0 to ep 0, cluster ZDOCmd.Active_EP_rsp: b'\xFB\x00\x37\xE8\x02\x01\xF2'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.device] [0xe837] Discovered endpoints: [1, 242]
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.device] [0xe837] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>, <Endpoint id=242 in=[] out=[] status=<Status.NEW: 0>>]
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.endpoint] [0xe837:1] Discovering endpoint information
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.util] Tries remaining: 3
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0xE837, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted a ZDO request: dst_addr=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), dst_ep=0, src_ep=0, cluster=ZDOCmd.Simple_Desc_req, sequence=252, options=TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST, radius=30, data=b'\xfc7\xe8\x01'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted AP ZDO request ZDOCmd.Simple_Desc_req({'NWKAddrOfInterest': 0xE837, 'EndPoint': 1}) and replaced with ZDO.SimpleDescReq.Req(DstAddr=0xE837, NWKAddrOfInterest=0xE837, Endpoint=1)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.SimpleDescReq.Req(DstAddr=0xE837, NWKAddrOfInterest=0xE837, Endpoint=1)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.SimpleDescReq.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.SimpleDescRsp.Callback(Src=0xE837, Status=<Status.SUCCESS: 0>, NWK=0xE837, SimpleDescriptor=SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=83, device_version=1, input_clusters=[0, 3, 1794, 2820, 2817, 65382], output_clusters=[25]))
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Pretending we received a ZDO message: b'\xFC\x00\x37\xE8\x16\x01\x04\x01\x53\x00\x01\x06\x00\x00\x03\x00\x02\x07\x04\x0B\x01\x0B\x66\xFF\x01\x19\x00'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.application] Received frame on uninitialized device <Device model=None manuf=None nwk=0xE837 ieee=00:15:8d:00:04:ff:ff:ff is_initialized=False> from ep 0 to ep 0, cluster ZDOCmd.Simple_Desc_rsp: b'\xFC\x00\x37\xE8\x16\x01\x04\x01\x53\x00\x01\x06\x00\x00\x03\x00\x02\x07\x04\x0B\x01\x0B\x66\xFF\x01\x19\x00'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.endpoint] [0xe837:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=83, device_version=1, input_clusters=[0, 3, 1794, 2820, 2817, 65382], output_clusters=[25])
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.endpoint] [0xe837:242] Discovering endpoint information
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.util] Tries remaining: 3
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0xE837, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted a ZDO request: dst_addr=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), dst_ep=0, src_ep=0, cluster=ZDOCmd.Simple_Desc_req, sequence=253, options=TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST, radius=30, data=b'\xfd7\xe8\xf2'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted AP ZDO request ZDOCmd.Simple_Desc_req({'NWKAddrOfInterest': 0xE837, 'EndPoint': 242}) and replaced with ZDO.SimpleDescReq.Req(DstAddr=0xE837, NWKAddrOfInterest=0xE837, Endpoint=242)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.SimpleDescReq.Req(DstAddr=0xE837, NWKAddrOfInterest=0xE837, Endpoint=242)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.SimpleDescReq.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.SimpleDescRsp.Callback(Src=0xE837, Status=<Status.SUCCESS: 0>, NWK=0xE837, SimpleDescriptor=SizePrefixedSimpleDescriptor(endpoint=242, profile=41440, device_type=97, device_version=0, input_clusters=[33], output_clusters=[33]))
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Pretending we received a ZDO message: b'\xFD\x00\x37\xE8\x0C\xF2\xE0\xA1\x61\x00\x00\x01\x21\x00\x01\x21\x00'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.application] Received frame on uninitialized device <Device model=None manuf=None nwk=0xE837 ieee=00:15:8d:00:04:ff:ff:ff is_initialized=False> from ep 0 to ep 0, cluster ZDOCmd.Simple_Desc_rsp: b'\xFD\x00\x37\xE8\x0C\xF2\xE0\xA1\x61\x00\x00\x01\x21\x00\x01\x21\x00'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.endpoint] [0xe837:242] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=242, profile=41440, device_type=97, device_version=0, input_clusters=[33], output_clusters=[33])
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=0, TSN=254, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x00\xFE\x00\x04\x00\x05\x00')
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=254)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=0, SrcAddr=0xE837, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=69, SecurityUse=<Bool.false: 0>, TimeStamp=7407223, TSN=0, Data=b'\x18\xFE\x01\x04\x00\x00\x42\x05\x4C\x69\x58\x65\x65\x05\x00\x00\x42\x0B\x5A\x4C\x69\x6E\x6B\x79\x5F\x54\x49\x43\x00', MacSrcAddr=0x0BA5, MsgResultRadius=28)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.zcl] [0xe837: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=254 command_id=Command.Read_Attributes_rsp>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.device] [0xe837] Read model 'ZLinky_TIC' and manufacturer 'LiXee' from <Endpoint id=1 in=[basic:0x0000, identify:0x0003, smartenergy_metering:0x0702, electrical_measurement:0x0B04, meter_id:0x0B01, manufacturer_specific:0xFF66] out=[ota:0x0019] status=<Status.ZDO_INIT: 1>>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 INFO (MainThread) [zigpy.device] [0xe837] Discovered basic device information for <Device model='ZLinky_TIC' manuf='LiXee' nwk=0xE837 ieee=00:15:8d:00:04:ff:ff:ff is_initialized=True>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.application] Device is initialized <Device model='ZLinky_TIC' manuf='LiXee' nwk=0xE837 ieee=00:15:8d:00:04:ff:ff:ff is_initialized=True>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Checking quirks for LiXee ZLinky_TIC (00:15:8d:00:04:ff:ff:ff)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1, 242}
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1, 242}
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {11, 13} {1, 242}
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.discovery] 'sensor' component -> 'ElectricalMeasurement' using ['electrical_measurement']
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.discovery] 'sensor' component -> 'ElectricalMeasurementRMSCurrent' using ['electrical_measurement']
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.discovery] 'sensor' component -> 'ElectricalMeasurementRMSVoltage' using ['electrical_measurement']
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.discovery] 'sensor' component -> 'SmartEnergyMetering' using ['smartenergy_metering']
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.discovery] 'sensor' component -> 'SmartEnergySummation' using ['smartenergy_metering']
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.gateway] device - 0xE837:00:15:8d:00:04:ff:ff:ff entering async_device_initialized - is_new_join: True
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.gateway] device - 0xE837:00:15:8d:00:04:ff:ff:ff has joined the ZHA zigbee network
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xE837](ZLinky_TIC): started configuration
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:ZDO](ZLinky_TIC): 'async_configure' stage succeeded
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0xE837, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0000]: finished channel configuration
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0019]: finished channel configuration
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.appdb] Error handling '_save_attribute' event with (00:15:8d:00:04:ff:ff:ff, 1, 0, 4, 'LiXee') params: FOREIGN KEY constraint failed
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.appdb] Error handling '_save_attribute' event with (00:15:8d:00:04:ff:ff:ff, 1, 0, 5, 'ZLinky_TIC') params: FOREIGN KEY constraint failed
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted a ZDO request: dst_addr=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), dst_ep=0, src_ep=0, cluster=ZDOCmd.Bind_req, sequence=255, options=TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST, radius=30, data=b'\xff\xFF\xFF\xFF\x04\x00\x8d\x15\x00\x01\x04\x0b\x03\xa5\x7f\xb7!\x00K\x12\x00\x01'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted AP ZDO request ZDOCmd.Bind_req({'SrcAddress': 00:15:8d:00:04:ff:ff:ff, 'SrcEndpoint': 1, 'ClusterID': 2820, 'DstAddress': MultiAddress(addrmode=3, ieee=00:12:4b:00:21:b7:7f:a5, endpoint=1)}) and replaced with ZDO.BindReq.Req(Dst=0xE837, Src=00:15:8d:00:04:ff:ff:ff, SrcEndpoint=1, ClusterId=2820, Address=MultiAddress(addrmode=3, ieee=00:12:4b:00:21:b7:7f:a5, endpoint=1))
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0xE837, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted a ZDO request: dst_addr=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), dst_ep=0, src_ep=0, cluster=ZDOCmd.Bind_req, sequence=0, options=TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST, radius=30, data=b'\x00\xFF\xFF\xFF\x04\x00\x8d\x15\x00\x01\x02\x07\x03\xa5\x7f\xb7!\x00K\x12\x00\x01'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Intercepted AP ZDO request ZDOCmd.Bind_req({'SrcAddress': 00:15:8d:00:04:ff:ff:ff, 'SrcEndpoint': 1, 'ClusterID': 1794, 'DstAddress': MultiAddress(addrmode=3, ieee=00:12:4b:00:21:b7:7f:a5, endpoint=1)}) and replaced with ZDO.BindReq.Req(Dst=0xE837, Src=00:15:8d:00:04:ff:ff:ff, SrcEndpoint=1, ClusterId=1794, Address=MultiAddress(addrmode=3, ieee=00:12:4b:00:21:b7:7f:a5, endpoint=1))
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.BindReq.Req(Dst=0xE837, Src=00:15:8d:00:04:ff:ff:ff, SrcEndpoint=1, ClusterId=2820, Address=MultiAddress(addrmode=3, ieee=00:12:4b:00:21:b7:7f:a5, endpoint=1))
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.BindReq.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.BindReq.Req(Dst=0xE837, Src=00:15:8d:00:04:ff:ff:ff, SrcEndpoint=1, ClusterId=1794, Address=MultiAddress(addrmode=3, ieee=00:12:4b:00:21:b7:7f:a5, endpoint=1))
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.BindReq.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.BindRsp.Callback(Src=0xE837, Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Pretending we received a ZDO message: b'\xFF\x00'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0b04]: bound 'electrical_measurement' cluster: Status.SUCCESS
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=2820, TSN=1, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x00\x01\x06\x00\x0B\x05\x29\x05\x00\x84\x03\x01\x00\x00\x0D\x05\x29\x1E\x00\x84\x03\x01\x00\x00\x08\x05\x21\x05\x00\x84\x03\x01\x00')
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.BindRsp.Callback(Src=0xE837, Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.zigbee.application] Pretending we received a ZDO message: b'\x00\x00'
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0702]: bound 'smartenergy_metering' cluster: Status.SUCCESS
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=1794, TSN=2, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x00\x02\x06\x00\x00\x04\x2A\x05\x00\x84\x03\x01\x00\x00\x00\x00\x00\x25\x1E\x00\x84\x03\x01\x00\x00\x00\x00\x00\x00\x00\x02\x18\x01\x00\x84\x03')
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=1)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=2820, SrcAddr=0xE837, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=66, SecurityUse=<Bool.false: 0>, TimeStamp=7423626, TSN=0, Data=b'\x18\x01\x07\x8C\x00\x0D\x05', MacSrcAddr=0x0BA5, MsgResultRadius=28)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.zcl] [0xe837:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=1 command_id=Command.Configure_Reporting_rsp>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0b04]: Successfully configured reporting for '{'active_power', 'rms_current'}' on 'electrical_measurement' cluster
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0b04]: Failed to configure reporting for '['active_power_max']' on 'electrical_measurement' cluster: [ConfigureReportingResponseRecord(status=140, direction=0, attrid=1293)]
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xE837), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=2820, TSN=3, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x00\x03\x06\x00\x0A\x05\x21\x1E\x00\x84\x03\x01\x00\x00\x05\x05\x21\x05\x00\x84\x03\x01\x00\x00\x07\x05\x21\x1E\x00\x84\x03\x01\x00')
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=2)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=3)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=1794, SrcAddr=0xE837, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=66, SecurityUse=<Bool.false: 0>, TimeStamp=7434195, TSN=0, Data=b'\x18\x02\x07\x86\x00\x00\x04\x86\x00\x84\x03\x8C\x00\x00\x00', MacSrcAddr=0x0BA5, MsgResultRadius=28)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.zcl] [0xe837:1:0x0702] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=2 command_id=Command.Configure_Reporting_rsp>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0702]: Successfully configured reporting for '{'status'}' on 'smartenergy_metering' cluster
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0702]: Failed to configure reporting for '['instantaneous_demand', 900, 'current_summ_delivered']' on 'smartenergy_metering' cluster: [ConfigureReportingResponseRecord(status=134, direction=0, attrid=1024), ConfigureReportingResponseRecord(status=134, direction=0, attrid=900), ConfigureReportingResponseRecord(status=140, direction=0, attrid=0)]
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0702]: finished channel configuration
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=2820, SrcAddr=0xE837, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=69, SecurityUse=<Bool.false: 0>, TimeStamp=7440070, TSN=0, Data=b'\x18\x03\x07\x8C\x00\x0A\x05\x86\x00\x07\x05', MacSrcAddr=0x0BA5, MsgResultRadius=28)
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [zigpy.zcl] [0xe837:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=3 command_id=Command.Configure_Reporting_rsp>
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0b04]: Successfully configured reporting for '{'rms_voltage'}' on 'electrical_measurement' cluster
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0b04]: Failed to configure reporting for '['rms_current_max', 'rms_voltage_max']' on 'electrical_measurement' cluster: [ConfigureReportingResponseRecord(status=140, direction=0, attrid=1290), ConfigureReportingResponseRecord(status=134, direction=0, attrid=1287)]
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0b04]: finished channel configuration
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0b04]: 'async_configure' stage succeeded
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0702]: 'async_configure' stage succeeded
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0000]: 'async_configure' stage succeeded
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xE837:1:0x0019]: 'async_configure' stage succeeded
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xE837](ZLinky_TIC): completed configuration
Nov 06 16:09:00 myhost hass[1643]: 2021-11-06 16:09:00 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xE837](ZLinky_TIC): stored in registry: ZhaDeviceEntry(name='LiXee ZLinky_TIC', ieee='00:15:8d:00:04:ff:ff:ff', last_seen=1636211340.9443586)

Additional context

Device is distributed directly by its independent French manufacturer at https://lixee.fr/produits/37-zigate-usb-ttl-3770014375148.html

@github-actions
Copy link

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale Issue is inactivate and might get closed soon label May 10, 2022
@pdecat
Copy link
Contributor Author

pdecat commented May 10, 2022

Still waiting on firmware update to unblock PR #1165

@mathuieu
Copy link

mathuieu commented Sep 2, 2022

Hello,
any news on this integration ?
thanks for your help

@Hedda
Copy link
Contributor

Hedda commented Oct 3, 2022

any news on this integration ?

FYI, there is some news about new quirk code for ZHA Device Handlers now as well as a new firmware needed for it, see -> #1165

fairecasoimeme as the manufacturer of ZLinky_TIC has also posted there mentioning that he released new pre-release (beta) Zigbee firmware for this device which is supposed to fix or address at least some of the issues seen in ZHA, so guess they are looking for experienced ZHA Zigbee users to test it, see:

Originally posted by @fairecasoimeme in #1165 (comment)

This pre-release fix the manufacturer issue :
https://github.com/fairecasoimeme/Zlinky_TIC/releases/tag/v9.0

@Hedda
Copy link
Contributor

Hedda commented Oct 17, 2022

FYI, you still need to manually update ZLinky TIC firmware but at least quirk code has now been merged into ZHA Device Handlers:

#1165

Another problem with Lixee ZLinky TIC needing firmware update now instead really becomes a user experience problem as now the first impression without a such Zigbee OTA Provider code firmware for ZLinky TIC is that it can not be updated automatically with the ZHA integration so users who can pair/join it will still not be able to use it until they manually updated the firmware on ZLinky TIC via other means.

Would now be great if someone with the necessary skills and interest would consider submitting a pull request to zigpy with ZLinky TIC Zigbee OTA Provider code now that ZHA Device Handlers support for your Lixee ZLinky TIC has now been merged into the zha-quirks package that will likely be added around the time that the next upcoming major Home Assistant core version is released.

See details in related feature request for zigpy which is Zigbee library Home Assistant ZHA depends on -> zigpy/zigpy#1060

@fairecasoimeme
Copy link

Sorry, but I think it's not a ZLinky problem but a zigpy-zigate problem. I think you can update ZLinky with OTA with other compatible coordinator than ZiGate.
By the way, on my side, I try to find and motivate a developer to add OTA functionnality to Zigpy-Zigate

@pdecat
Copy link
Contributor Author

pdecat commented Oct 17, 2022

I guess @Hedda means adding Lixee to the list of OTA supported manufacturers here: https://www.home-assistant.io/integrations/zha/#ota-firmware-updates

In the mean time, people can use @mdeweerd's excellent https://github.com/mdeweerd/zha-toolkit to download OTA updates from Koenkk/zigbee-OTA and install them automatically without having to manipulate file by hand.

One issue that needs to be addressed in 100% automated mode is how to select the router / non-router OTA firmware.

@fairecasoimeme
Copy link

OK,
I think I'll use a different way to manage route / non-route OTA firmware. Don't hesitate to give suggestions to be easier for OTA plugins ;)

@Hedda
Copy link
Contributor

Hedda commented Oct 17, 2022

I guess @Hedda means adding Lixee to the list of OTA supported manufacturers here: https://www.home-assistant.io/integrations/zha/#ota-firmware-updates

Yes, for that in practice zigpy needs to get a downloader code as an LiXee/ZLinky firmware Zigbee OTA provider added to it here:

https://github.com/zigpy/zigpy/blob/dev/zigpy/ota/provider.py

I do not think you need to change anything in the zigpy-zigate radio library code as the OTA provided is only in the zigpy code:

https://github.com/zigpy/zigpy/blob/dev/zigpy/ota/

Anyway, ZHA only supports automatic OTA firmware update for Zigbee OTA providers that is available in the zigpy code there. See:

zigpy/zigpy#1060

zigpy library is the Zigbee framework library that the ZHA integration component that Home Assistant core depends on, and Home Assistant is not alone in depending on it as zigpy is partially also used by Jeedom Zigbee Plugin and Domoticz Zigbee Plugin (which I believe both are also very popular in France).

https://www.home-assistant.io/integrations/zha

https://www.domoticz.com/wiki/ZigbeeForDomoticz

https://doc.jeedom.com/en_US/plugins/automation%20protocol/zigbee/

So there is a very large userbase of Zigbee users that is indirectly using the zigpy library and by default only get its OTA providers.

PS: It is believed that ZHA userbase alone is now over 150,000 users so that might motivate manufacturers to add OTA providers:

https://community.home-assistant.io/t/home-assistant-founders-believe-there-is-currently-around-50-000-installations-of-zha-integration-what-do-you-zigbee-users-in-the-community-think-about-those-statistics/357305/51

@Hedda
Copy link
Contributor

Hedda commented Oct 17, 2022

I think I'll use a different way to manage route / non-route OTA firmware. Don't hesitate to give suggestions to be easier for OTA plugins ;)

@fairecasoimeme Regarding managing router or non-router firmware; could you not make unified firmware that is configurable remotely by modifying the custom ZHA Device Handler (quirk) for ZHA or custom zigbee-herdsman converter for Zigbee2MQTT?

I do not know much about Zigbee application firmware development but read that for example, the "premium version" of PTVO Zigbee Configurable Firmware is configurable so that you can control the RF transmit power output dBm as "signal level " remotely in run-time, see an explanation of that feature here with instruction on how to use change that signal level "remotely via a custom converter (a.k.a. quirk) for Zigbee2MQTT -> https://ptvo.info/zigbee-configurable-firmware-features/rf-signal-level-control/

@fairecasoimeme
Copy link

not possible because non router and router mode have differents flash structures. :(

@mdeweerd
Copy link
Contributor

Rather than updating ZHA specific settings, I still strongly believe that it is better to maintain a central open list such as Koenkk/zigbee-OTA. Maybe that list does need some extra info such as:

  • A quality indicator (reverse (from packet capture), pre-release, from manufacturer);
  • More than one FW version for a device (to be able to update to another version than the latest one.

Regarding ZLinky: I think it should create two "models" so that the versions and updates apply to only one "branch" of the software versions. Which implies that in the future the end user should be able to choose an apparently not compatible FW update for his device.

@Hedda
Copy link
Contributor

Hedda commented Oct 18, 2022

Rather than updating ZHA specific settings, I still strongly believe that it is better to maintain a central open list such as Koenkk/zigbee-OTA. Maybe that list does need some extra info such as:

  • A quality indicator (reverse (from packet capture), pre-release, from manufacturer);
  • More than one FW version for a device (to be able to update to another version than the latest one.

Regarding ZLinky: I think it should create two "models" so that the versions and updates apply to only one "branch" of the software versions. Which implies that in the future the end user should be able to choose an apparently not compatible FW update for his device.

Interesting ideas but such new zigpy OTA feature ideas probably instead belong in a more general zigpy discussion about OTA features and functions so therefor suggest starting a new discussion about that here -> https://github.com/zigpy/zigpy/discussions

Or alternatively, if the ideas are specifically related to Zigbee OTA for fairecasoimeme ZLinky TIC device then in that existing zigpy feature request here -> zigpy/zigpy#1060

There is also an existing feature request for zigpy that is specifically about getting OTA files from Koenkk/zigbee-OTA repository here -> zigpy/zigpy#535

@Hedda
Copy link
Contributor

Hedda commented Oct 18, 2022

By the way, on my side, I try to find and motivate a developer to add OTA functionality to zigpy

@fairecasoimeme May I suggest that you re-post that comment as reply to that zigpy feature request here -> zigpy/zigpy#1060

@mdeweerd
Copy link
Contributor

Interesting ideas but such new zigpy OTA feature ideas probably instead belong in a more general zigpy discussion

See zigpy/zigpy#654 (comment)

I was "reminding" my view because of the comment:

I guess @Hedda means adding Lixee to the list of OTA supported manufacturers here: https://www.home-assistant.io/integrations/zha/#ota-firmware-updates

@Hedda
Copy link
Contributor

Hedda commented Oct 20, 2022

I think I'll use a different way to manage route / non-route OTA firmware. Don't hesitate to give suggestions to be easier for OTA plugins ;)

Please also see the related discussion in zigbee-herdsman-converters repo which have the same OTA firmware image selection dilemma with there being two firmware with the same "Zigbee Device Signature" -> Koenkk/zigbee-herdsman-converters#4785

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants