Fixed: How to make a Monoprice ZWave Window/Binary Sensor Work

Howdy. I picked up a couple of door sensors from monoprice: http://www.monoprice.com/product?p_id=15270.

I have one paired securely and it seems to be detecting just fine but…

It added 9 different “devices” including one “binary” sensor that doesn’t seem to trigger. My configuration current looks like this:

binary_sensor.vision_zd2102_eu_doorwindow_sensor_sensor_5_0:
  sensor_class: opening
sensor.vision_zd2102_eu_doorwindow_sensor_access_control_5_9:
  hidden: true
sensor.vision_zd2102_eu_doorwindow_sensor_alarm_type_5_0:
  hidden: true
sensor.vision_zd2102_eu_doorwindow_sensor_alarm_level_5_1:
  sensor_class: opening
sensor.vision_zd2102_eu_doorwindow_sensor_burglar_5_10:
  hidden: true
sensor.vision_zd2102_eu_doorwindow_sensor_clock_5_14:
  hidden: true
sensor.vision_zd2102_eu_doorwindow_sensor_power_management_5_11:
  hidden: true
sensor.vision_zd2102_eu_doorwindow_sensor_sourcenodeid_5_2:
  hidden: true
sensor.vision_zd2102_eu_doorwindow_sensor_system_5_12:
  hidden: true

sensor.vision_zd2102_eu_doorwindow_sensor_alarm_level_5_1 toggles between 0 and 255 when I move the magnet around.

sensor.vision_zd2102_eu_doorwindow_sensor_access_control_5_9 toggles between 22 and 23 which, according to the manual, indicate open and closed states.

The binary sensor, as I mentioned, doesn’t do anything, though it does display itself as a binary sensor rather than just an random integer.

How can I configure this to look and behave like a proper open/closed switch so that my family can interpret it at a glance?

Take a look at this. I use the same sensors. This is from my sensors.yaml:

- platform: template
  sensors:
    fdstatus:
      value_template: '{% if is_state("sensor.frontd_alarm_level_5_1", "0") %}Closed{% else %}Open{% endif %}'
      friendly_name: 'FD'
    bdstatus:
      value_template: '{% if is_state("sensor.backd_alarm_level_7_1", "0") %}Closed{% else %}Open{% endif %}'
      friendly_name: 'BD'
    gdstatus:
      value_template: '{% if is_state("sensor.garaged_alarm_level_6_1", "0") %}Closed{% else %}Open{% endif %}'
      friendly_name: 'GD'

then in my customize.yaml I hid the rest of the sensors and gave the door an icon:

sensor.fdstatus:
  friendly_name: Front Door
  icon: mdi:glassdoor
binary_sensor.frontd_sensor_5_0:
  hidden: true
sensor.frontd_access_control_5_9:
  hidden: true
sensor.frontd_alarm_type_5_0:
  hidden: true
sensor.frontd_burglar_5_10:
  hidden: true
sensor.frontd_clock_5_14:
  hidden: true
sensor.frontd_sourcenodeid_5_2:
  hidden: true
2 Likes

That did it, thanks!

1 Like

Sorry guys new to Home-assistant here. I bought 15 of these sensors for all of my windows & doors. I get them to appear in Home-Assistant. I have done what @Corey_Johnson described in the above response.

My question is since I’ll have multiple sensors how do I make sense of the different sensors. I have only added two so far and it looks like the only difference between the sensors is “Node ID”. Which so far is 2 & 3.

Thanks for the help!

You can identify them by triggering some change like light or temperature on them individually then you can name them to something more easy to identify through the services option: zwave - rename_node:

I am trying to use the developer tools specifically -> services ->zwave ->rename_node. It’s not clear how I go about doing this what Service Data do I put in to call this service. Once it is called where do I go to rename the node?

I’ve been looking for documentation for this but can’t seem to find it anywhere and the OZWCP doesn’t seem to be working for me so this is the alternative method of renaming the nodes.

thank you

@Corey_Johnson Any assistance on how to actually rename these puppies?

I’m in the same boat. I can’t find any documentation that explains the syntax of the service data to be passed using the rename_node service call. I hope one of the kind people here will answer the question. I’ve tried searching all the threads here as well and I see several had images linked, but they all appear to be broken.

For the benefit of anyone else that stumbles across this thread. I figured this out.

Format for Service Data to rename a node:

{ "node_id": "3", "name": "LR Light" }

5 Likes

So I more or less did this for my setup and it does not appear to be working. I do get the new sensors created however they are always just “off” regardless of the magnet state.
sensors.yaml

- platform: template
  sensors:
    deck_door_status:
      value_template: '{% if is_state("sensor.deck_door_sensor_alarm_level_7_1", "0") %}Closed{% else %}Open{% endif %}'
      friendly_name: 'Deck Door Status'
    living_room_door_status:
      value_template: '{% if is_state("sensor.living_room_door_sensor_alarm_level_8_1", "0") %}Closed{% else %}Open{% endif %}'
      friendly_name: 'Living Room Door Status'

customize.yaml

binary_sensor.deck_door_status:
  friendly_name: Deck Door
  icon: mdi:glassdoor
binary_sensor.deck_door_sensor_sensor_7_0:
  hidden: true
sensor.deck_door_sensor_access_control_7_9:
  hidden: true
sensor.deck_door_sensor_alarm_type_7_0:
  hidden: true
sensor.deck_door_sensor_burglar_7_10:
  hidden: true
sensor.deck_door_sensor_clock_7_14:
  hidden: true
sensor.deck_door_sensor_sourcenodeid_7_2:
  hidden: true

binary_sensor.living_room_door_status:
  friendly_name: Living Room Door
  icon: mdi:glassdoor
binary_sensor.living_room_door_sensor_sensor_8_0:
  hidden: true
sensor.living_room_door_sensor_access_control_8_9:
  hidden: true
sensor.living_room_door_sensor_alarm_type_8_0:
  hidden: true
sensor.living_room_door_sensor_burglar_8_10:
  hidden: true
sensor.living_room_door_sensor_clock_8_14:
  hidden: true
sensor.living_room_door_sensor_sourcenodeid_8_2:
  hidden: true

Here are a few picture of the sensors in hopes that it will help out.

Perhaps try it without ‘binary_’. The way I used the template, it would just be sensor.deck_door_status.

sensor.deck_door_status:
  friendly_name: Deck Door
  icon: mdi:glassdoor

Thanks for the suggestion but I had already tried that. The sensor exists in my states section as “binary_sensor.deck_door_status”. I must be doing something wrong though.

I have a number of the Monoprice sensors and I have never been able to use the binary on/off sensor consistently. Sometimes it works but most times it doesn’t. I have setup all my triggers by using a combination of the alarm status moving from 0 to 255 or vice versa and the binary sensor going from on/off or off/on. The alarm status almost always works but on the rare occasion it doesn’t is when the binary sensor changes. I figured it was a setting in OZWCP but never really investigated to figure it out. I would be interested if you do find a solution.

I am going to give it 2 more days of messing with it then sending them back. Honestly not worth the hassle.

I can’t blame you. Mine work for what I need and when the go on sale you generally can’t beat the price.

Ok FINALLY got it. Followed this guy’s setup here. Not sure what my issue was but it is working now. Now would probably be a good time to get my configs up on github as well…

1 Like

I would definitely read anything Bruh has posted. His work helped me a lot in the beginning (and still does).

I did all mine as binary sensors and they work great as is. Also, I would suggest you add the entity_id to each template sensor so that HASS only looks for a change in state of that sensor. Otherwise, its monitoring every sensor to update that template sensor:

  - platform: template
    sensors:
      motion_upstairs:
        value_template: '{% if is_state("sensor.d1_motion_upstairs_alarm_level_6_1", "0") %}false{% else %}true{% endif %}'
        device_class: motion
        friendly_name: 'Upstairs'
        entity_id: sensor.d1_motion_upstairs_alarm_level_6_1
2 Likes

This should definitely be in the docs.

1 Like

It will be :wink:

First set of updates is in awaiting merging. Once those are done I’ve got a list of things to add, and I’ll include these.

2 Likes