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

ZHA Develco Frient Devices #49127

Closed
Veldkornet opened this issue Apr 12, 2021 · 87 comments
Closed

ZHA Develco Frient Devices #49127

Veldkornet opened this issue Apr 12, 2021 · 87 comments

Comments

@Veldkornet
Copy link

Veldkornet commented Apr 12, 2021

The problem

I’ve paired a couple of Develco Frient devices with ZHA, and while they mostly work, the experience is not great.

In general, the devices seem to work a bit buggy compared to the other devices i have on ZHA. They are either slow to react or fail completely. Below my observations for the devices I already own:

SPLZB-131 Smart Plug Mini:

  • Adds 4 entities of which 1 seems to be redundant
    • Sensor: switch electrical measurement
    • Sensor: switch smartenergy metering
    • Switch: switch on off
    • Switch: switch on off 2 (this switch doesn’t work, no idea what it’s supposed to do)
  • ZigBee2MQTT Link

WISZB-120 Entry Sensor Pro:

  • Adds 4 entities where the battery sensor doesn’t seem to work and for some reason also includes a random switch??? The binary sensor doesn't seem to work either, making the purpose of this device useless basically. Actually, the only thing that does seem to work properly is the temperature sensor.
    • Binary Sensor: Opening Open / Close (although it doesn’t seem to work, is always set to open)
    • Sensor: Power (Should be the battery, but doesn’t seem to work)
    • Sensor: Temperature
    • Switch: switch on off (this switch doesn’t work, no idea what it’s supposed to do, a door sensor doesn’t even have a switch)
  • ZigBee2MQTT Link

SMSZB-120 Intelligent Smoke Alarm:

  • Adds 4 entities where the battery sensor doesn’t seem to work and for some reason also includes a random switch??? As with the door sensor, it seems that the temperature entity is the only one that actually works.
    • Binary Sensor: Smoke Clear / Detected (haven’t been able to test if this actually works\0
    • Sensor: Power (Should be the battery, but doesn’t seem to work)
    • Sensor: Temperature
    • Switch: switch on off (this switch doesn’t work, no idea what it’s supposed to do, a door sensor doesn’t even have a switch)
  • ZigBee2MQTT Link

MOSZB-140 Motion Sensor Pro:

  • Adds 8 entities. Although it seems that only the illumination and temperature work, the rest constatly are set to on (or don't seem to server a purpose).
    • Binary Sensor: ias_zone (seems to be always set to on)
    • Binary Sensor: occupancy (seems to be always set to on)
    • Binary Sensor: occupancy2 (seems to be always set to on)
    • Binary Sensor: occupancy3 (seems to be always set to on)
    • Switch: switch on off (this switch doesn’t work, no idea what it’s supposed to do, the device has no switches)
    • Sensor: Power (Should be the battery, but doesn’t seem to work)
    • Sensor: Illumination
    • Sensor: Temperature
  • ZigBee2MQTT Link

What is version of Home Assistant Core has the issue?

core-2021.4.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

zha

Link to integration documentation on our website

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

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

@Veldkornet
Copy link
Author

Veldkornet commented Apr 12, 2021

SPLZB-131 Signature:

{
  "node_descriptor": "NodeDescriptor(byte1=1, byte2=64, mac_capability_flags=142, manufacturer_code=4117, maximum_buffer_size=72, maximum_incoming_transfer_size=1560, server_mask=0, maximum_outgoing_transfer_size=1560, descriptor_capability_field=0, *allocate_address=True, *complex_descriptor_available=False, *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, *is_valid=True, *logical_type=<LogicalType.Router: 1>, *user_descriptor_available=False)",
  "endpoints": {
    "1": {
      "profile_id": 49353,
      "device_type": "0x0001",
      "in_clusters": [
        "0x0005",
        "0x0006"
      ],
      "out_clusters": []
    },
    "2": {
      "profile_id": 260,
      "device_type": "0x0051",
      "in_clusters": [
        "0x0000",
        "0x0002",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0x0009",
        "0x0702",
        "0x0b04"
      ],
      "out_clusters": [
        "0x0000",
        "0x0003",
        "0x000a",
        "0x0019",
        "0x0406"
      ]
    }
  },
  "manufacturer": "frient A/S",
  "model": "SPLZB-131",
  "class": "zigpy.device.Device"
}

@probot-home-assistant
Copy link

Hey there @dmulcahey, @Adminiuga, mind taking a look at this issue as its been labeled with an integration (zha) you are listed as a codeowner for? Thanks!
(message by CodeOwnersMention)

@Veldkornet
Copy link
Author

WISZB-120 Signature:

{
  "node_descriptor": "NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=0, manufacturer_code=4117, maximum_buffer_size=80, maximum_incoming_transfer_size=80, server_mask=0, maximum_outgoing_transfer_size=80, descriptor_capability_field=0, *allocate_address=False, *complex_descriptor_available=False, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False, *is_valid=True, *logical_type=<LogicalType.EndDevice: 2>, *user_descriptor_available=False)",
  "endpoints": {
    "1": {
      "profile_id": 49353,
      "device_type": "0x0001",
      "in_clusters": [
        "0x0003",
        "0x0005",
        "0x0006"
      ],
      "out_clusters": []
    },
    "35": {
      "profile_id": 260,
      "device_type": "0x0402",
      "in_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x000f",
        "0x0020",
        "0x0500"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "38": {
      "profile_id": 260,
      "device_type": "0x0302",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0402"
      ],
      "out_clusters": [
        "0x0003"
      ]
    }
  },
  "manufacturer": "frient A/S",
  "model": "WISZB-120",
  "class": "zigpy.device.Device"
}

@Veldkornet
Copy link
Author

SMSZB-120 Signature:

{
  "node_descriptor": "NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=0, manufacturer_code=4117, maximum_buffer_size=80, maximum_incoming_transfer_size=80, server_mask=0, maximum_outgoing_transfer_size=80, descriptor_capability_field=0, *allocate_address=False, *complex_descriptor_available=False, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False, *is_valid=True, *logical_type=<LogicalType.EndDevice: 2>, *user_descriptor_available=False)",
  "endpoints": {
    "1": {
      "profile_id": 49353,
      "device_type": "0x0001",
      "in_clusters": [
        "0x0003",
        "0x0005",
        "0x0006"
      ],
      "out_clusters": []
    },
    "35": {
      "profile_id": 260,
      "device_type": "0x0402",
      "in_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x000f",
        "0x0020",
        "0x0500",
        "0x0502"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "38": {
      "profile_id": 260,
      "device_type": "0x0302",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0402"
      ],
      "out_clusters": [
        "0x0003"
      ]
    }
  },
  "manufacturer": "frient A/S",
  "model": "SMSZB-120",
  "class": "zigpy.device.Device"
}

@Veldkornet
Copy link
Author

I also get errors in the log for these devices like this Failed to parse message (b'099c00300000') on cluster 1280, because Data is too short to contain 1 bytes:

2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0020] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=154 command_id=0>
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0020] ZCL request 0x0000: []
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0020] No handler for cluster command 0
2021-04-16 10:13:30 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x17E8:35:0x0020]: Received 154 tsn command 'checkin': []
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.device] [0x17e8] Extending timeout for 0x9a request
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 154 under 182 request id, data: b'019a00010800'
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x17e8>, ep: 35, profile: 0x0104, cluster_id: 0x0020, data: b'199a00'
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (21, 182, 0, <DeconzAddressEndpoint address_mode=2 address=0x17E8 endpoint=35>, 260, 32, 1, b'\x01\x9a\x00\x01\x08\x00', 2, 0)
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 182]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,)
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 182: 00
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb6 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x17e8 endpoint=35>, status: 0x00
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-04-16 10:13:30 DEBUG (MainThread) [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=0x17e8>, 35, 260, 10, b'\x00\x9b\x00\x00\x00', 0, 175, 191, 114, 243, 120, 0, -70]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x000a] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=155 command_id=Command.Read_Attributes>
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x000a] ZCL request 0x0000: [[0]]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 155 under 183 request id, data: b'189b01000000e2aa030c28'
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x17e8>, ep: 35, profile: 0x0104, cluster_id: 0x000a, data: b'009b000000'
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (26, 183, 0, <DeconzAddressEndpoint address_mode=2 address=0x17E8 endpoint=35>, 260, 10, 1, b'\x18\x9b\x01\x00\x00\x00\xe2\xaa\x03\x0c(', 2, 0)
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 183]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,)
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 183: 00
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb7 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x17e8 endpoint=35>, status: 0x00
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-04-16 10:13:30 DEBUG (MainThread) [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=0x17e8>, 35, 260, 1280, b'\t\x9c\x000\x00\x00\x00\xff\xff', 0, 175, 183, 114, 243, 120, 0, -71]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=0>
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] ZCL request 0x0000: [<ZoneStatus.Restore_reports|Supervision_reports: 48>, <bitmap8.0: 0>, 0, 65535]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] No handler for cluster command 0
2021-04-16 10:13:30 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x17E8:35:0x0500]: Updated alarm state: ZoneStatus.0
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x17e8>, ep: 35, profile: 0x0104, cluster_id: 0x0500, data: b'099c0030000000ffff'
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [29, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x17e8>, 35, 260, 1280, b'\t\x9c\x000\x00\x00', 0, 175, 191, 114, 243, 120, 0, -70]
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=0>
2021-04-16 10:13:30 ERROR (MainThread) [zigpy.device] Failed to parse message (b'099c00300000') on cluster 1280, because Data is too short to contain 1 bytes
2021-04-16 10:13:30 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x17e8>, ep: 35, profile: 0x0104, cluster_id: 0x0500, data: b'099c00300000'
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-04-16 10:13:31 DEBUG (MainThread) [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=0x17e8>, 35, 260, 32, b'\x18\x9a\x0b\x00\x00', 0, 175, 191, 114, 243, 120, 0, -70]
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0020] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=154 command_id=Command.Default_Response>
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x17e8>, ep: 35, profile: 0x0104, cluster_id: 0x0020, data: b'189a0b0000'
2021-04-16 10:13:31 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x17E8:35:0x0020]: executed 'checkin_response' command with args: '(True, 8)' kwargs: '{'tsn': 154}' result: [0, <Status.SUCCESS: 0>]
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy.device] [0x17e8] Extending timeout for 0xb8 request
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 184 under 185 request id, data: b'01b80218000000'
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (22, 185, 0, <DeconzAddressEndpoint address_mode=2 address=0x17E8 endpoint=35>, 260, 32, 1, b'\x01\xb8\x02\x18\x00\x00\x00', 2, 0)
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 185]
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,)
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 185: 00
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb9 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x17e8 endpoint=35>, status: 0x00
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-04-16 10:13:31 DEBUG (MainThread) [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=0x17e8>, 35, 260, 32, b'\x18\xb8\x0b\x02\x00', 0, 175, 191, 114, 243, 120, 0, -70]
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0020] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=184 command_id=Command.Default_Response>
2021-04-16 10:13:31 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x17e8>, ep: 35, profile: 0x0104, cluster_id: 0x0020, data: b'18b80b0200'
2021-04-16 10:13:31 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x17E8:35:0x0020]: executed 'set_long_poll_interval' command with args: '(24,)' kwargs: '{}' result: [2, <Status.SUCCESS: 0>]

@Adminiuga
Copy link
Contributor

This device would need a quirk in zha-device-handlers repo as it doesn't confirm to ZCL specs and sends an incorrectly formatted message on cluster 0x0500

For the redundant entity, just disable it in ha.

@Veldkornet
Copy link
Author

Hmm, that seems to happen for the two battery devices indeed, where the battery and binary sensors don't work.

WISZB-120

2021-04-16 17:42:15 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=50 command_id=0>
2021-04-16 17:42:15 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL request 0x0000: [<ZoneStatus.Restore_reports|Supervision_reports|Tamper|Alarm_1: 53>, <bitmap8.0: 0>, 0, 65535]
2021-04-16 17:42:15 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] No handler for cluster command 0
...
2021-04-16 17:46:29 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=51 command_id=0>
2021-04-16 17:46:29 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL request 0x0000: [<ZoneStatus.Restore_reports|Supervision_reports|Tamper|Alarm_1: 53>, <bitmap8.0: 0>, 0, 65535]
2021-04-16 17:46:29 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] No handler for cluster command 0
...
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [32, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 42>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x7562>, 35, 260, 1280, b'\t4\x005\x00\x00\x00\xff\xff', 0, 175, 215, 162, 27, 121, 0, -67]
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=52 command_id=0>
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL request 0x0000: [<ZoneStatus.Restore_reports|Supervision_reports|Tamper|Alarm_1: 53>, <bitmap8.0: 0>, 0, 65535]
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] No handler for cluster command 0
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x7562>, ep: 35, profile: 0x0104, cluster_id: 0x0500, data: b'09340035000000ffff'
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [29, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x7562>, 35, 260, 1280, b'\t4\x005\x00\x00', 0, 175, 215, 162, 27, 121, 0, -67]
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=52 command_id=0>
2021-04-16 17:48:04 ERROR (MainThread) [zigpy.device] Failed to parse message (b'093400350000') on cluster 1280, because Data is too short to contain 1 bytes
2021-04-16 17:48:04 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x7562>, ep: 35, profile: 0x0104, cluster_id: 0x0500, data: b'093400350000'
2021-04-16 17:48:11 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-04-16 17:48:11 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-04-16 17:48:11 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
2021-04-16 17:48:11 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [32, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 42>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x7562>, 35, 260, 1280, b'\t5\x005\x00\x00\x00\xff\xff', 0, 175, 223, 162, 27, 121, 0, -66]
2021-04-16 17:48:11 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=53 command_id=0>
2021-04-16 17:48:12 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL request 0x0000: [<ZoneStatus.Restore_reports|Supervision_reports|Tamper|Alarm_1: 53>, <bitmap8.0: 0>, 0, 65535]
2021-04-16 17:48:12 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] No handler for cluster command 0
2021-04-16 17:48:12 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x7562>, ep: 35, profile: 0x0104, cluster_id: 0x0500, data: b'09350035000000ffff'
2021-04-16 17:48:12 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
2021-04-16 17:48:12 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [29, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x7562>, 35, 260, 1280, b'\t5\x005\x00\x00', 0, 175, 223, 162, 27, 121, 0, -66]
2021-04-16 17:48:12 DEBUG (MainThread) [zigpy.zcl] [0x7562:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=53 command_id=0>
2021-04-16 17:48:12 ERROR (MainThread) [zigpy.device] Failed to parse message (b'093500350000') on cluster 1280, because Data is too short to contain 1 bytes
2021-04-16 17:48:12 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x7562>, ep: 35, profile: 0x0104, cluster_id: 0x0500, data: b'093500350000'

SMSZB-120

2021-04-16 17:43:50 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=61 command_id=0>
2021-04-16 17:43:50 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] ZCL request 0x0000: [<ZoneStatus.Restore_reports|Supervision_reports: 48>, <bitmap8.0: 0>, 0, 65535]
2021-04-16 17:43:50 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] No handler for cluster command 0
...
2021-04-16 17:48:50 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=62 command_id=0>
2021-04-16 17:48:50 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] ZCL request 0x0000: [<ZoneStatus.Restore_reports|Supervision_reports: 48>, <bitmap8.0: 0>, 0, 65535]
2021-04-16 17:48:50 DEBUG (MainThread) [zigpy.zcl] [0x17e8:35:0x0500] No handler for cluster command 0

@deapstack
Copy link

Hello @Veldkornet
Did you find any solution?
I have Frient motion and door sensors which are not working correclty.
The alarm binary status does not come back to default value (no alarm) because the Frient devices awaits a ZCL defaut response message to acknowledge the alarm status. If this default response is not sent by zha, the alarm stays triggered.

@deapstack
Copy link

deapstack commented Jun 2, 2021

As information, here is the note about alarm reset in the Develco device technical documenation :

Note: How to clear a alarm in the “Zone status”:
The sensor requests ZCL Default Response on the Zone Status Change notification, if any new Alarm bit has been set.Until the IAS CIE has acknowledged the received alarm by sending the mandated Default Response, the Alarm bits are not cleared –even if there is no longer an alarm situation on either tamper or movement. When the Default Response is received, a new Zone Status Change notification is sent with the Alarm bits cleared, if the alarm situation has disappeared since sending the Zone Status message with alarm set

@Veldkornet
Copy link
Author

Unfortunately no, all of my Frient devices just report the temperature at the moment (for the sensors). Nothing else works.
The switches you can at least turn on and off.

Pity...

I'm hoping that someone with ZHA knowledge and an interest in the Frient devices will come along and help out getting them supported.

@deapstack
Copy link

Yes, this is pity since these devices are well made.

I'll try to develop a quirck for these.

@Adminiuga , even if I can improve the integration of Frient devices, I will not be able to handle the ZCL default response issue (Frient devices awaits a ZCL default response as acknowledge). Do you have any hint for this ?

THanks

@Adminiuga
Copy link
Contributor

Here's Tuya sending a default response on a zcl cluster command https://github.com/zigpy/zha-device-handlers/blob/eecdcb4364d5846d6635985b60765177fd7c1930/zhaquirks/tuya/__init__.py#L223

Zigpy would send default response for attribute reports

@deapstack
Copy link

Thanks @Adminiuga . Do you know if there is a possibility to generate "manually" the ZCL default response using ZHA?

In order to check if this commands solves the binary status locked issue before making the custom quirk,

Thanks

@Adminiuga
Copy link
Contributor

Not with zha. The default response needs to have the same sequence number as the request.

@Adminiuga
Copy link
Contributor

I meant with ZHA services you can't send the response, but if you modify the IASZoneChannel you could craft a default response, although currently we do not pass the ZCL header down to the channel cluster_command() listener, so you won't know if the default response was disabled. Until that is fixed, you would need to always reply, something like:

on top:

import zigpy.zcl.foundation as zcl_f

and in the IASZoneChannel

if command_id == 0:
    hdr = zcl_f.ZCLHeader.cluster(tsn, command_id, is_reply=True)
    self.send_default_rsp(hdr, status=foundation.Status.SUCCESS)

@deapstack
Copy link

@Adminiuga Thanks for this information.

I am totally new to this. I have some difficulties to locate the directory where I have to put custom quirks in HA OS and how to force HA to use them?

Do you have any help for that?

Thanks

@deapstack
Copy link

Hi, @Adminiuga @Veldkornet

By browsing custom quirks, I have found a quirk for a "develco open-close" sensor in the zhaquirks folder of my HAOS

"""Door/Windows sensors."""
from zigpy.profiles import zha
from zigpy.quirks import CustomCluster, CustomDevice
import zigpy.types as t
from zigpy.zcl.clusters.general import (
    Basic,
    BinaryInput,
    Identify,
    OnOff,
    Ota,
    PollControl,
    PowerConfiguration,
    Scenes,
    Time,
)
from zigpy.zcl.clusters.measurement import TemperatureMeasurement
from zigpy.zcl.clusters.security import IasZone

from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)
from zhaquirks.develco import DEVELCO, DevelcoPowerConfiguration


class DevelcoIASZone(CustomCluster, IasZone):
    """IAS Zone."""

    manufacturer_client_commands = {
        0x0000: (
            "status_change_notification",
            (
                IasZone.ZoneStatus,
                t.bitmap8,
                t.Optional(t.uint8_t),
                t.Optional(t.uint16_t),
            ),
            False,
        )
    }


class WISZB120(CustomDevice):
    """Custom device representing door/windows sensors."""

    signature = {
        # <SimpleDescriptor endpoint=1 profile=49353 device_type=1 device_version=1
        # input_clusters=[3, 5, 6] output_clusters=[]>
        # <SimpleDescriptor endpoint=35 profile=260 device_type=1026 device_version=0
        # input_clusters=[0, 1, 3, 15, 32, 1280] output_clusters=[10, 25]>
        # <SimpleDescriptor endpoint=38 profile=260 device_type=770 device_version=0
        # input_clusters=[0, 3, 1026] output_clusters=[3]>
        MODELS_INFO: [(DEVELCO, "WISZB-120")],
        ENDPOINTS: {
            1: {
                PROFILE_ID: 0xC0C9,
                DEVICE_TYPE: 1,
                INPUT_CLUSTERS: [
                    Identify.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
            35: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.IAS_ZONE,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    PowerConfiguration.cluster_id,
                    Identify.cluster_id,
                    BinaryInput.cluster_id,
                    PollControl.cluster_id,
                    IasZone.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            38: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.TEMPERATURE_SENSOR,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    TemperatureMeasurement.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Identify.cluster_id],
            },
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                INPUT_CLUSTERS: [
                    Identify.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
            35: {
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    DevelcoPowerConfiguration,
                    Identify.cluster_id,
                    BinaryInput.cluster_id,
                    PollControl.cluster_id,
                    DevelcoIASZone,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            38: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.TEMPERATURE_SENSOR,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    TemperatureMeasurement.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Identify.cluster_id],
            },
        }
    }

I am not sure that it handles default response, but this can be a starting point...

@Veldkornet
Copy link
Author

Ah yes, I found that too, thought I mentioned it somewhere in zigpy/zha-device-handlers#853 ; it was added via zigpy/zha-device-handlers#317

Anyway, even the model number is the same. I don’t know if there is a difference between the Develco vs Develco Frient version, but my guess is there’s not.

@Adminiuga
Copy link
Contributor

I am totally new to this. I have some difficulties to locate the directory where I have to put custom quirks in HA OS and how to force HA to use them?

The changes I outlined, are for ZHA integration. You could copy zha folder into /config/custom_components/zha and run it from there (just need to add "version": "0.1.0" to manifest.json

If you go the quirk route, then check the contribution guide and afaik you could drop a new quirk in some special folder in your /config

@puddly how do you test a quirk with the latest zha changes? What was the configuration or folder name?

@Adminiuga
Copy link
Contributor

For default response handling in quirks, there's one of Tuya s quirk that does that. Check my earlier messages

@puddly
Copy link
Contributor

puddly commented Jun 3, 2021

Configure the custom quirks folder:

zha:
    custom_quirks_path: /config/custom_zha_quirks/

And then download any quirk submodule (.py file) and put it in that folder. Restarting HA will get the new quirk to load.

The "old way" works better if you're editing more than a single file because the custom quirk loads constants and things like that from the main zhaquirks package. Maybe using the /config/deps/ folder is better?

@deapstack
Copy link

Hi,

That's useful hints, thank you. I think that I have all I need to write custom quirks. I have 3 devices from Frient (motion, door & humidity sensors), I'll try to make them all compatible.

Just one thing : Is it necessary to reset the zigbee association of the device in order to change the quirk used by ZHA? How ZHA is able to associate one custom quirk to a device? is it just with the "MODELS_INFO: [(DEVELCO, "WISZB-120")]," line ?

Thanks,

Sam

@Adminiuga
Copy link
Contributor

You don't have to re-pair the device, just restart the ha and if the quirk match the device signature it would be applied

@byrongamatos
Copy link

My frient smoke alarms are also on firmware: 0x00040002 but still nothing works.
Are there steps to take to try to fix this?

@mvdkleijn
Copy link

I'm having the same problems with the Frient smoke alarm. Entities show up in home assistant but nothing seems to work, apart (maybe) from the battery and the temperature sensor.

Is this something someone is actively working on (no pressure, just asking) or would I be better off buying a different fire alarm?

I'd prefer not going the zigbee2mqtt route. Though that works (from what I hear), the zha route seems better for me.

@Ditskys
Copy link

Ditskys commented Jun 5, 2022

So I have 2 of the frient smart smoke alarms and a frient heat alarm. Adding to HA via ZHA and a conbee I get as attached. I can trigger siren, a random switch and some settings that dont seem to do anything.
Screenshot_20220605-163141_Home Assistant

@mvdkleijn
Copy link

So I have 2 of the frient smart smoke alarms and a frient heat alarm. Adding to HA via ZHA and a conbee I get as attached. I can trigger siren, a random switch and some settings that dont seem to do anything.
Screenshot_20220605-163141_Home Assistant

So basically the same as me from what I gather. I assume that triggering the siren does nothing?

@Ditskys
Copy link

Ditskys commented Jun 6, 2022

Triggering siren works for me! But the other options and the random switch does nothing!

@Ditskys
Copy link

Ditskys commented Jun 7, 2022

The thing I would like to do but can't is trigger it so that when one siren goes off, it triggers others to go off as well. Any ideas?

@oza1701
Copy link

oza1701 commented Jun 7, 2022

You need to create an automation for that.

@mvdkleijn
Copy link

Triggering siren works for me! But the other options and the random switch does nothing!

interesting... for me nothing works but the battery level

@ark-
Copy link

ark- commented Jul 24, 2022

Not working for me and my smart heat alarm either, happy to share logs if needed. Sometimes it pairs, usually it doesn't, when it does pair options are available but do nothing, e.g. the siren trigger.

Seems like the zha-device-handlers are happy it's implemented properly, here: zigpy/zha-device-handlers#854

@zeus86
Copy link

zeus86 commented Aug 23, 2022

I had the same Problem described in the initial post.

Turns out, my LQI-Value is very low on this device (zigbee-dongle at HA-Instance is only a few meters and one wall away), reporting an LQI of 30. After placing the siren directly next to the dongle, and triggered a reconfiguration, i noticed that actually some of the checkmarks turned from yellow to green (by far not all of them), and even more interesting, after doing so, the siren-toggleswitch actually works now and the LQI has risen to ~66 (i am on homeassistant docker 2022.8.6).

@mvdkleijn
Copy link

I've also noticed a very low lqi (in the 30s) and am now waiting for some plugs to arrive that can work as repeaters.

It feels like the Frient devices have very poor zigbee transmitters.

@zeus86
Copy link

zeus86 commented Aug 28, 2022

yeah, the smoke detector is basically sitting in plain view to the dongle, for that, the lqi is far to low. beside that, i think the temperature sensor is also not working correctly. it shows a value (which seems to be halfway realistic), but it doesn't change at all. straight line over several days beside some window-open-cycles...

@mvdkleijn
Copy link

I find the same behavior for me. Flat line temperature. LQI improved a little, but still not great.

@ark-
Copy link

ark- commented Sep 11, 2022

Hmm tried re-pairing with the same results.

I much prefer ZHA but I've been toying with the idea of having a 2nd Zigbee coordinator (I have a spare) using Zigbee2MQTT. This means for compatibilities sake I can use Z2M for edge case devices such as this and some Tuya thermostats I have but don't need to port everything over. Just a thought for others on here.

@mgraeuler
Copy link

I have two SMSZB-120 and I'm experiencing the exact same issues as others via ZHA:
I had hoped to use these to control my heating, but they are showing a flat temperature and neither of my two devices is updating. Reconfiguring them doesn't help and LQI is arount 90/255 although the device is right next to the controller (SONOFF Zigbee 3.0 USB Dongle Plus,TI CC2652P + CP2102N via Raspberry Pi 4).
I removed the battery from one of the SMSZB-120's and re-paired the other one, but to no avail.

Technical Manual:
https://www.develcoproducts.com/media/1742/smszb-120-technical-manual-smoke-alarm.pdf

@cpt1gl0
Copy link

cpt1gl0 commented Oct 2, 2022

Also for me temperature seems to be stuck at the value from when the device was pairing.

@ChristophCaina
Copy link
Contributor

Hi all,
I also have a frient intelligent heat alarm.

The Siren Switch does work as expected - it does trigger the alarm on the device.
In that case, the binary sensor will also be set to "on"...
So the binary sensor will show an active alarm.

I don't yet know, what the "switch" might do - haven't tested that so far, and also, I haven't test other settings like "alarm sound, alarm level, etc...

Regarding the IASZone Binary Sensor:
As far as I understood the documentation, this should be active, when the device detected an alarm (not triggered by the testing push-button or via the alarm switch).

I've received some documentation from the frient - I can attach them, if this might help to improve either the integration of the device, or others?

@oza1701
Copy link

oza1701 commented Dec 12, 2022

I've received some documentation from the frient - I can attach them, if this might help to improve either the integration of the device, or others?

Yes please!

@ChristophCaina
Copy link
Contributor

Heat Alarm datasheet v2.7_0.pdf
HESZB-120 Technical Manual - Heat Alarm.pdf

@pvandegeer
Copy link

Anyone has better results with the 4.05 firmware for the smoke detectors? I bought a 3-pack a couple of months ago and only one of them shows the proper temperature. The other two basically show the same temperature al the time. After upgrading the firmware just now, the temperature changed, but it looks as though it is again fixed to the new temperature.

@mvdkleijn
Copy link

Anyone has better results with the 4.05 firmware for the smoke detectors? I bought a 3-pack a couple of months ago and only one of them shows the proper temperature. The other two basically show the same temperature al the time. After upgrading the firmware just now, the temperature changed, but it looks as though it is again fixed to the new temperature.

How did you check your firmware version and how did you upgrade it?

@pvandegeer
Copy link

The firmware version is shown with the device info in Home Assistant. Firmware: 0x00040004 for v4.04.

image

I've followed the guide here: https://github.com/zigpy/zigpy/wiki/OTA-Device-Firmware-Updates
Firmware can be found here: https://github.com/Koenkk/zigbee-OTA/raw/master/images/Develco/ED_Smoke_Sensor_SSIG_4.0.5.zigbee

When triggering the firmware update manually, follow the example in the wiki but use endpoint_id 35 instead of 1.

service: zha.issue_zigbee_cluster_command
data:
  ieee: 00:15:bc:00:31:01:00:00   <--- your ieee here
  endpoint_id: 35
  cluster_type: out
  command_type: client
  cluster_id: 25
  command: 0
  args:
    - 0
    - 100

On a side note: after resetting, recoupling and moving one of the updated device to a warmer room, it is now displaying correct temperatures it seems. The other one is in an update loop however and is still at 4.04.

@mvdkleijn
Copy link

@pvandegeer Thanks for you hints! I followed what you did and what the instructions said with the change that I updated using the GUI method.

For some reason the service method kept complaining about deprecated arguments.

Anyway, it took a good long while to update but it successfully installed 4.0.5 on my 1st smoke detector.

This did not fix anything until I enabled the temperature entity and hit "reconfigure" on the sensor's device overview.

The second smoke detector automatically updated its firmware overnight so I hit its reconfigure button too and its temperature started working.

What I did notice it that the reconfigure works but sometimes parts of it fails.

Also the LQI is still terrible for bot devices. One is at the far end of the house so that makes sense but the other is right next to the controller and still only does 120 LQI. (which is about 50% dropped packets I believe)

@Adminiuga
Copy link
Contributor

What I did notice it that the reconfigure works but sometimes parts of it fails.

These are battery operated devices and may sleep. Keep device awake when reconfiguring, like pressing a button every other second

@pvandegeer
Copy link

All of mine are now reading the temperature after the firmware update. :)

@mvdkleijn
Copy link

What I did notice it that the reconfigure works but sometimes parts of it fails.

These are battery operated devices and may sleep. Keep device awake when reconfiguring, like pressing a button every other second

I realize that @Adminiuga but the sync/connect button on the back didn't seem to have any effect and the only other button activates a particularly loud siren which I wasn't in the mood to do. 😄

Any way, for me the same as @pvandegeer .. all temperature sensors now work and all I did was reconfigure, not re-pair.

@issue-triage-workflows
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 Home Assistant 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.

@issue-triage-workflows issue-triage-workflows bot closed this as not planned Won't fix, can't repro, duplicate, stale Apr 27, 2023
@github-actions github-actions bot locked and limited conversation to collaborators May 27, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests