Smoke Sensor Heiman HS1SA Zigbee Control/Configuration settings

I bought Smart Mini Smoke Sensor Heiman HS1SA for testing with Home Assistant before apply the same for all rooms.

http://www.heimantech.com/product/index.php?type=detail&id=3

This product has smoke detector and Siren together.
I have integrate it with ZHA and it is connected fine

image

There is a control entity which I assume when enabled it will turn ON the siren. but it is not working i am not sure why.

image

also there are few configuration parameters’ which can be set through ZHA but they are not making any difference when I change them. they seems to working between ZHA and the device

image

I have tried to make a test smoke, the siren start the sound. also I get notification “Detected” on the entity. but I tried to mute the sound through the configuration option and it is not working.

image

anyone have idea why the configuration options and control entities not working between ZHA and the device.

1 Like

If a device does not follow Zigbee specs then need a “quirk” in ZHA Device Handlers (a.k.a. zha-quirks):

https://www.home-assistant.io/integrations/zha#zha-exception-and-deviation-handling

If there is not already an existing request for it then submit a new “Device support request” for it here:

https://github.com/zigpy/zha-device-handlers/issues

Be sure to fill provide all the information requested as well as additional info or links about the device.

https://github.com/zigpy/zha-device-handlers

Thanks for reply
Does ZHA support sending “set commands” to the device using zigbee protocol?

How about zigbee2mqtt ?

By default the ZHA integration currently really just exposes device configuration attributes, however the developers are usually open to constructive suggestions and requests, see example discussion here:

https://github.com/zigpy/zigpy/discussions/934

For using advanced Zigbee command you can utilize “ZHA Toolkit” (Zigbee Home Assistant Toolkit):

https://github.com/mdeweerd/zha-toolkit

ZHA Toolkit by @le_top provide both low-evel and high-level Zigbee commands through ZHA via zigpy:

https://community.home-assistant.io/t/zha-toolkit-toolkit-providing-low-and-high-level-zigbee-commands-through-zha-zigpy/373346

Again, still need ZHA to have ZHA Device Handler for the device in ZHA Device Handlers (zha-quirks):

https://github.com/zigpy/zha-device-handlers

FYI, he posted this relative information in another thread:

https://community.home-assistant.io/t/help-understanding-zha-quirks/411253/15

Hi Yousuf, did you find any solution to this?
I have exactly the same. The warning device does nothing really, just ornamental.

1 Like

You apparently found the automatically closed github topic for the HS1AS-E https://github.com/zigpy/zha-device-handlers/issues/518 .

I can see that in principle the smoke detection is functionally present, but at the same time it is not reported to be functional.

This may be because (re)configuration is not successful for the device which is often because the device is sleepy. I do not know if pushing the button makes the detector wake up and communicate, but if it does, it is usefull to repeatedly push it during the (re)configuration process.

The configuration process is important to tell the device that it should report states to the coordinator (home assistant) which is what the bindings are for.

There are other ways to setup and check the bindings (zha-toolkit/bind_ieee, (zha-toolkit/binds_get)[https://github.com/zigpy/zha-device-handlers/issues/518#issuecomment-872616884] but that is more involved. You could at least check the bindings are there using binds_get.

Further, the alert state is often temporary: the device will report smoke detection and just after that notify the the alert is cleared. So you may just see the state change for a short time which means that the logbook may be more readable than the history (graph).

1 Like

Thanks you @le_top. Do you know what the state of the “ias_WD” should be?
Am I supposed to turn this ON or OFF? It doesn’t do anything when I turn it on but does it mean that the alarm will not sound or not be transmitted to home assistant if there is a fire? There doesn’t seem to be any any info on this. Thank you!

IMHO the control is only there so that you can clear the alarm.

Ideally the detector would position the alarm and leave it active until cleared. There is the “clear” button and I guess that switching it off does the same.

When you trigger the alarm, does it notify HA now?

I have not managed to trigger an actual alarm yet.
When I press the big test button on the right of the device, the device does sound the alarm but home assistant does not show this in any way. The smoke sensor itself in the device in home assistant remains in “clear”, never changes state. But I am not sure if it’s supposed to change stage. I guess, I would have to test this with real smoke?

Normally the test button triggers the alarm, but it then also disappears in my experience.

I would check the bindings as indicated.

Yes! It works now.
I had to delete the device and pair it again. Now the test button does trigger the smoke sensor in home assistant and it works fine! Notifications work too! Thanks for the help!

Hi, just wanted to second this, it suddenly started working after deleting and repairing it several times!

@oneiropagides @eskillx That’s good to know, since I’m considering buying one as well.
Could you please summarize how you got it working ? Any changes to home-assistant / zha needed ?

@oneiropagides @eskillx Same question as Varac from me. Did you have to do any other changes? I deleted and repaired my devices a couple of times but no difference. Still no notifications.

I also bought this device but the button does nothing. Actually the interview process does not seem to finish, I have to repair the device but it gets to “Unavailable” after 6 hours. Any idea?

The interview not completing is something I had in the past. What I did was reset the device. Start the interview and press the reset button with a paperclip every 2 seconds. After a minute or so the interview completed successfully. Note this was on z2m but recon it could work the same on zha.

where you able to make it work?? please tell me how!

Hi Guys,

Really sorry to bother you in case I miss something.

But did anyone ever get the Siren to sound in a recent version?

I have 10 of those detectors (Heiman SmokeSensor-EF-3.0).

They work just fine as smoke detectors and are stable in the ZHA network and send alerts and check-ins just fine.

But I can’t get the siren to trigger from HomeAssistant no matter what I try.

This is somewhat important for my fire safty plan because I need all of them to sound when there is a smoke somewhere as the area it covers is quite large.

Of course I have tried to press the siren button in home assistant but this still doesn’t do anything (Log shows “Device did not respond”).

I tried to send all of the following (and many more) in the developer tools → Services tab:

service: zha.warning_device_warn
data:
  mode: 1
  level: 3
  duration: 1
  ieee: '8c:f6:81:ff:fe:22:4d:33'
service: siren.turn_on
data:
  duration: "100"
  volume_level: 1
target:
  device_id: bc78ddb761e20b7fc88853b28c4a9988

Could anyone tell me what I need to post into the developer tools → services field to call the siren on/off?

I would really appreciate help on this.

Here is the the dignostics manifest of one of the detectors:

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.8.4",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.4",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Atlantic/Canary",
    "os_name": "Linux",
    "os_version": "6.1.45",
    "supervisor": "2023.08.3",
    "host_os": "Home Assistant OS 10.5",
    "docker_version": "23.0.6",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "hacs": {
      "version": "1.32.1",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "meross_lan": {
      "version": "4.3.0",
      "requirements": []
    },
    "meross_cloud": {
      "version": "1.2.8",
      "requirements": [
        "meross_iot==0.4.5.7"
      ]
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "after_dependencies": [
      "onboarding",
      "usb"
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "config_flow": true,
    "dependencies": [
      "file_upload"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp"
    ],
    "requirements": [
      "bellows==0.35.9",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.102",
      "zigpy-deconz==0.21.0",
      "zigpy==0.56.4",
      "zigpy-xbee==0.18.1",
      "zigpy-zigate==0.11.0",
      "zigpy-znp==0.11.4"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      },
      {
        "type": "_slzb-06._tcp.local.",
        "name": "slzb-06*"
      }
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 23022,
    "manufacturer": "HEIMAN",
    "model": "SmokeSensor-EF-3.0",
    "name": "HEIMAN SmokeSensor-EF-3.0",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "manufacturer_code": 4619,
    "power_source": "Battery or Unknown",
    "lqi": 141,
    "rssi": null,
    "last_seen": "2023-09-06T21:17:38",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4619, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *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)",
      "endpoints": {
        "1": {
          "profile_id": "0x0104",
          "device_type": "0x0402",
          "input_clusters": [
            "0x0000",
            "0x0001",
            "0x0003",
            "0x0020",
            "0x0500",
            "0x0502",
            "0x0b05"
          ],
          "output_clusters": [
            "0x0003",
            "0x0019"
          ]
        }
      },
      "manufacturer": "HEIMAN",
      "model": "SmokeSensor-EF-3.0"
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "binary_sensor.heiman_smokesensor_ef_3_0_smoke_2",
        "name": "HEIMAN SmokeSensor-EF-3.0"
      },
      {
        "entity_id": "sensor.heiman_smokesensor_ef_3_0_battery_2",
        "name": "HEIMAN SmokeSensor-EF-3.0"
      },
      {
        "entity_id": "button.heiman_smokesensor_ef_3_0_identify_2",
        "name": "HEIMAN SmokeSensor-EF-3.0"
      },
      {
        "entity_id": "select.heiman_smokesensor_ef_3_0_default_siren_tone_2",
        "name": "HEIMAN SmokeSensor-EF-3.0"
      },
      {
        "entity_id": "select.heiman_smokesensor_ef_3_0_default_siren_level_2",
        "name": "HEIMAN SmokeSensor-EF-3.0"
      },
      {
        "entity_id": "select.heiman_smokesensor_ef_3_0_default_strobe_level_2",
        "name": "HEIMAN SmokeSensor-EF-3.0"
      },
      {
        "entity_id": "select.heiman_smokesensor_ef_3_0_default_strobe_2",
        "name": "HEIMAN SmokeSensor-EF-3.0"
      },
      {
        "entity_id": "siren.heiman_smokesensor_ef_3_0_siren_2",
        "name": "HEIMAN SmokeSensor-EF-3.0"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "IAS_ZONE"
      }
    ],
    "user_given_name": "SMOKE detector kichen",
    "device_reg_id": "bc78ddb761e20b7fc88853b28c4a9988",
    "area_id": "kitchen",
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "IAS_ZONE",
          "id": 1026
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "HEIMAN"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "SmokeSensor-EF-3.0"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0001": {
            "endpoint_attribute": "power",
            "attributes": {
              "0x0021": {
                "attribute_name": "battery_percentage_remaining",
                "value": 200
              },
              "0x0020": {
                "attribute_name": "battery_voltage",
                "value": 31
              }
            },
            "unsupported_attributes": {
              "0x0031": {
                "attribute_name": "battery_size"
              },
              "0x0033": {
                "attribute_name": "battery_quantity"
              }
            }
          },
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0020": {
            "endpoint_attribute": "poll_control",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0500": {
            "endpoint_attribute": "ias_zone",
            "attributes": {
              "0x0010": {
                "attribute_name": "cie_addr",
                "value": "00:12:4b:00:25:7b:6d:4f"
              },
              "0x0000": {
                "attribute_name": "zone_state",
                "value": 1
              },
              "0x0002": {
                "attribute_name": "zone_status",
                "value": 48
              },
              "0x0001": {
                "attribute_name": "zone_type",
                "value": 40
              }
            },
            "unsupported_attributes": {}
          },
          "0x0502": {
            "endpoint_attribute": "ias_wd",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0b05": {
            "endpoint_attribute": "diagnostic",
            "attributes": {},
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

I’m glad it’s not just me. I’ve got the same issue whereby it will detect I’ve pushed the “test” button, but no further. I can’t trigger a test alarm.
Same device, SmokeSensor-EF-3.0

If anybody has any ideas I’m happy to try test :thinking: