Using an Aeotech recessed door sensor in home-assistant

I went over to my friend’s house last night to help get home-assistant on a Raspberry Pi working for his z-wave door sensors and siren. The Ecotech sensor showed up fine but the Aeotech recessed one (Recessed Door Sensor Gen5 , ZW089-A) did not show up by default. After poking around in the logs for a while, we realized that it was sending BASIC_SET command classes instead of BinarySensor commands. Apparently (I thought I had fixed this already), home-assistant doesn’t recognize the BASIC_SET commands just yet. But looking at the config file for this device, we discovered that config item 121 changes which kind of report this sensor sends:

To set which command will be sent to the associated nodes
when the magnet switch is triggered.
Bitsets:
4 -> Sensor Binary
8 -> Basic Set
Default setting: 0x100 (Basic Set)
OZW Ideal Setting: 0x10 (Sensor Binary Report)

So, we went in on the Python3 command line and used python-openzwave to change the sensor’s setting from 0x100 (256) to 0x10 (16). We used code very similar to that shown on my previous post to do this over the z-wave radio.

One final trick was that we had to press the action button of the sensor before requesting and/or setting the command (because the device was otherwise sleeping). After that, it showed right up in home-assistant and all is well!

I’ve seen tickets related to this with other devices so if you have a z-wave device that’s not showing up, check the config options.

4 thoughts on “Using an Aeotech recessed door sensor in home-assistant”

  1. Hey Nick,

    I have the same sensor and have been searching for a fix to this problem for a while now. Would you mind explaining a bit more about the code you ran over the z-wave radio to get this to work properly? I am still pretty new to this. Thanks!

    1. Great! I was hoping someone like you would find this useful.

      So to run the code, first type python3 to open a python3 terminal. Then run all the lines before node2 = network.nodes[2]. (You will have to adjust your /dev/zwave and config path to match your settings in your configuration.yaml)

      Now you need to know what z-wave node has been assigned to your door sensor. In my friend’s case it was 5, but it is totally dependent on how many things are paired to your network. The easiest way to find out is to print out various things like product_name and whatnot of each node until you either find the door sensor or determine it by process of elimination. I think the product_name was blank at my friend’s house so we figured it out by process of elimination.

      Once you figure out what node the sensor is, you should check to see if you’re right by running something like: node2.request_config_param(121). You will want to run this right after pressing the action button on the sensor with a screwdriver (to make sure it’s awake and ready to respond). You should see a response print out on the screen that has a 256 in it as the current value of config item 121. If you get that, then you’re really close.

      Finally, set the param to 16 with something like node2.set_config_param(121,16). This modifies the settings in the internal chip on the sensor. You may want to press the action button briefly before submitting this command to ensure it’s awake. Then just run network.stop() and you’re done. Reboot home-assistant and it should show right up.

      1. Thank you! It works and all is good as far as I can tell. Just had to remember to close hass before trying to do anything with the zwave network in python. Oops.

        Also I did watch your video on the setup and I had to try the “Romantic Mode” out. Not sure if you have fixed it yet, but I used “music on console” with shell_command and an input_boolean so it will stop the song and keep it from playing over itself. Then it will just restart the song if the switch is turned on again. Of course if you do this you will lose the the “extra” romantic feature.

  2. Hey Nick,

    Just came by this post while searching for a way for hass to show my Aeotec ZW112 Door / Window sensor 6. It uses the same config param for the open/close command (121) but I can only chose these 3 options:

    Configure which sensor report will be sent when the door is Opened/Closed

    Openzwave shows 0-255 as a value when the door opens/closes but so far I couldn’t find a way to alter the values the sensor sends. I changed it to Sensor Binary Report but again nothing shows up in hass when I wake up and trigger the sensor.

Leave a Reply

Your email address will not be published. Required fields are marked *