Categories
Hacking

cheap Chinese Z-Wave Sensors and Home Assistant…

cheap z-wave door sensor
cheap z-wave door sensor

I was looking for sensors that allow to monitor the status of a door. Typically those are magnet triggered switches that send some sort of signal when the magnet moves away and comes back. I wanted something based on Z-Wave. I’ve already light switch relays that are running on Z-Wave and am very happy with them. Z-Wave is on the pricier end of RF-devices. 433Mhz switches would be much cheaper, but Z-Wave offers nicer handling and hopefully more reliability.

Many of these sensors come in at around 40€. That is quite pricy so I opted for the cheap chinese solution at around 13.5€ per piece. You just have to be patient: 4+ weeks delivery time.

Setup into Home Assistant was straight forward. Add the device to the Z-Wave network via the web interface, rename it to mydoor… but then… How does the device report ‘door open’? The binary sensor that showed up, did nothing.

After some fiddling and searching I found that the sensor.mydoor_access_control changes it’s state rather unspectacularly from 23 to 22. It’s so inconspicuous that I didn’t notice the change the first few times I kept looking for changes.

Perfect! there is something we can use to integrate it to Home Assistant for automation and other stuff. Luckily there are templates that allow us to turn this into a binary sensor which is more useful in automations.
Add this to your configuration.yml:

1
2
3
4
5
6
7
8
9
10
11
12
binary_sensor:
platform
: template
sensors
:
door1
:
device_class
: opening
friendly_name
: 'Haustür'
value_template
: >-
{%- if is_state("sensor.mydoor_access_control", "22") -%}
True
{%- else -%}
False
{%- endif -%}

this can then be integrated into an automation like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
automation:
alias
: "coming home"
hide_entity
: False
trigger
:
platform
: state
entity_id
: binary_sensor.door1
from
: 'off'
to
: 'on'
condition
:
condition
: sun
after
: sunset
action
:
- service
: homeassistant.turn_on
entity_id
:
- switch.main_light

that’s it. hope this helps.

thanks to @Tinkerer from the Home Assistant chat group for the help.