Zooz 4-in-1 Sensor

Has anyone set up this sensor in HA? I have one configured and set up in HA and everything seems to be working except the binary sensor which is the motion detector.

When there is motion, I do see the alarm type and burglar sensor change values, but the motion sensor itself constantly report off.

Also, is there any way to get the battery levels to report to HA? The three multi-sensors I have along with about half-dozen door/window sensors all show battery levels in OZWCP, but don’t show up in HA. Is there a way to change this?

I have this sensor setup, but even when securely paired to the Zwave network, I never see the binary sensor status change in Hass.

To combat this, I’ve hidden the binary sensor and created a template sensor based on the alarm level value.

    hidden: true

  - platform: template
        value_template: "{{ states(sensor.vision_zp311_multisensor_alarm_level_10_1) > 0 }}"
        friendly_name: "Zooz Motion"
        device_class: motion
        entity_id: sensor.vision_zp3111_multisensor_alarm_level_10_1

Id be careful with that template, sometimes my sensor displays 8 (for motion) but also sometimes it displays 254 which is sleep I think. Most of the time it is on 0 though. This is for the burglar sensor value anyway.

Personally I have a template sensor with the template that checks if burglar level is 8, if it is then motion detected, otherwise no motion.

And to answer your question about battery level, the answer is yes, but it is only exposed as an attribute. So you need to create an additional template sensor (regular sensor, not binary this time).

  - platform: template
        value_template: "{{ states.sensor.vision_zp3111_multisensor_alarm_level_10_1.attributes.battery }}"
        friendly_name: "Zooz Sensor Battery"
        entity_id: sensor.vision_zp3111_multisensor_alarm_level_10_1
        unit_of_measurement: '%'

Ah, I use alarm_level, not burglar.

I find that 255 is when motion is instantly detected, and 254 for the wait period before “un-triggering” the motion event. I want my motion sensor to show motion throughout that period, so I set it > 0.

Be aware that the “burglar” value will also change to 7 (i think) if the casing on the zooz sensor is opened, so is useful for detecting physical tampering of the device.

Oh thanks, actually I might try to update mine to use alarm level then. I didn’t really know what I was doing when setting mine up to be honest.

Might be useful to use those differences in 255 vs 254

Yes definitely! you can set the amount of time before it goes from 254 back to 0 via Zwave config parameter as well.

@mike1237 and @stunts1337 thank you both for your input. Especially about retrieving the battery level. I have now tried that and it works perfectly.

I bought the Zooz sensor simply to test out as I have two other motion sensors, both Aeotec Multisensor 6’s. They work great but I am not a huge fan of the non-standard, odd battery size they use, but I have no issues with them, particularly with detecting and showing motion in HA.

I thought I would try the Zooz out and perhaps do a write-up on how to set it up, configure it, etc.

It’s just purely personal preference, but I am not a fan of using templates to work around something that should just work. I know, I know. I am just quirky that way I suppose.

Anyway, I may play around with it in OZWCP and see if I can get the motion binary sensor to work, if not I may have to toss it on a shelf somewhere or sell it or something and just stick with the Aeotec sensors.

Again, thank you both for your input, at least I now know how to get battery levels. Though, it seems that not all my sensors support that. I have some Aeotec Door/Window Sensor 6’s and not all of them seem to report battery levels.

I definitely think you need to reconsider your position on using template sensors for things that should “just work”.

One of the best features of HA is the ability to make anything work with the right configuration.
The Zooz sensors are 20$ cheaper than the Aeotecs. I’m happy to write a few lines to get the status.

For your fibaro sensors, i’d guess they may not have the battery level provided as a sensor attribute, but rather as an additional sensor.

In fact, I no longer need to use a template to get the battery!

The trick was, I had to use the zwave.add_node_secur function within HA, not OZWCP (I did it in both) to get the battery sensor to display from ZOOZ device directly.


This was true with all my zwave plus devices (mainly scene controllers).

However, the binary sensor still doesn’t work and I need a template.

@mike1237 thank you for that input. I guess, and again, give room for my quirky ways, my larger concern with using templates, particularly if you use a lot of them is the number of breaking changes that come across in HA. My thought process was to keep things as simple as possible. I’ve been dinged a couple times with breaking changes and it’s kind of wore on me, LOL

Anyway, here’s what I will do since you seem adamant about giving it a shot, I will try and do that. Since this is a test sensor (I have a ‘Testing’ tab in HA where I put all such devices until I am ready to deploy them) I will play with it and see if I can get comfortable with using the templates. I see the value in what you are saying, I am just concerned about some breaking change coming down the pipe that just mucks up all the work.

I may need your help to get my head around them but let me take a stab at getting it done first. Maybe if I can work through the process then I can, in turn, have a better understanding to help someone else.

Bam! And just like that, I can now see my battery levels. I will be curious to see how frequently this updates. I assume, since battery power devices would go into a sleep state, that they would only report once a day or whenever their wake up time is to see if there are any configuration changes.

Anytime the sensor updates the battery level should update.

You can also set the zwave polling period to be more or less frequent as to when the controller polls the device (versus the device waking up due to external input and sending the command).

The config component released in 0.39 allows you to configure the zwave polling (or choose to ignore certain zwave devices completely) easily!

I just upgraded to 0.40.2 today. I was on .37 or .38, I was a few steps behind due to breaking changes. Kinda got frustrating to keep fighting those, but I think I got the kinks worked out and thus upgraded today and discovered the Configuration Panel and that’s when I saw the battery levels in the entities list. I will monitor the update frequency and see how it goes.

I ask because the Master Bedroom Sensor and Front Door Sensor have been running a while and I highly doubt they are sitting at 100%, especially as much as those two sensors are triggered.

Anyway, now I got to learn about templates to see if I can make the Zooz motion sensor work like I hoped it would.

Byt the way @mike1237, since you have experience with the Zooz, what kind of battery life are you getting out of those things?

Again, thank you for all of your help.

No problem, my pleasure to speak to someone else who enjoys the hobby as much as I do.

I got 3 months out of my first set of batteries, but that’s because I changed one of the parameters to a higher battery use setting, I forget which exactly, but even the manual said it would be bad for the battery.

I changed the batteries and set it to its defaults and those have lasted 6 months and are reading 20%. although i must say all my devices, regardless of brand, seem pretty bad at accurately reporting their battery status. I only store them because some data is better than none.

So mine always reports a battery level of 0%.

I removed and then re-secure-added it via HASS, and I now have a bunch of new sensors (appliance? clock??), but battery_level on zwave.vision_zp3111_multisensor_4in1 always says 0.

Thoughts, anyone?

Edit: This thread should be moved the Z-Wave section. Anyone (admin) help with that?

I am also looking for some help with this sensor and getting motion working.

I bought it at Monoprice found here:

[https://www.monoprice.com/product?p_id=15271](http://Monoprice Z-Wave Plus Motion Sensor)

I have this added to my Z-wave network in a secure mode, as suggested in this thread. Home Assistant/Openzwave finds the device, and adds a bunch of devices: I have


Earlier in this thread, the recommendation is to create a binary sensor with the alarm sensor that is created automatically. However, I don’t see the “alarm” mentioned in this thread. But, whenever I trigger the device, I see in the open zwave log shows “something” (I don’t know how to identify the device) jump to 255. Here are some log entries from OZW_Log.txt:

2018-03-26 11:59:22.606 Detail, Node018, Decrypted Packet: 0x00, 0x20, 0x01, 0xff
2018-03-26 11:59:22.606 Detail, 
2018-03-26 11:59:22.606 Info, Node018, Received Basic set from node 18: level=255. Treating it as a Basic report.
2018-03-26 11:59:22.606 Detail, Node018, Refreshed Value: old value=0, new value=255, type=byte
2018-03-26 11:59:22.606 Detail, Node018, Changes to this value are not verified
2018-03-26 11:59:22.606 Detail, Node018, Notification: ValueChanged

and back:

2018-03-26 12:02:31.140 Detail, Node018, Decrypted Packet: 0x00, 0x20, 0x01, 0x00
2018-03-26 12:02:31.140 Detail, 
2018-03-26 12:02:31.140 Info, Node018, Received Basic set from node 18: level=0. Treating it as a Basic report.
2018-03-26 12:02:31.140 Detail, Node018, Refreshed Value: old value=255, new value=0, type=byte
2018-03-26 12:02:31.140 Detail, Node018, Changes to this value are not verified
2018-03-26 12:02:31.140 Detail, Node018, Notification: ValueChanged

I know that Home Assistant, Open Zwave, have issues with the “Basic Set”, but I’m unable to make this do a binary set, as I don’t think the device supports it.

Any ideas on how to make this be recognized device I can use?

I’m having problems with this and hoping it’s just me messing up on the template or something.

I have this

 - platform: template
       value_template: "{{ states(sensor.front_door_motion_sensor_alarm_level) > 0 }}"
       friendly_name: "Front Door Motion"
       device_class: motion
       entity_id: sensor.front_door_motion_sensor_alarm_level

sensor.front_door_motion_sensor_alarm_level is the name of the sensor. That sensor does go from 0 to 255 immediately when motion is detected, but the template never changes to on.

        value_template: "{{ states.zwave.front_door_motion_sensor.attributes.battery }}"
        friendly_name: "Front Door Motion Sensor Battery Level"
        entity_id: zwave.front_door_motion_sensor
        unit_of_measurement: '%'

I also have a battery template that is not reporting anything either.

I know this post was from more than a year ago, so maybe the syntax has changed?


Posting for others.

 - platform: template
       value_template: "{{ states('sensor.front_door_motion_sensor_alarm_level')|float > 0 }}"
       friendly_name: "Front Door Motion"
       device_class: motion
       entity_id: sensor.front_door_motion_sensor_alarm_level

This works for me, found on another post in the community

1 Like

@ptdalen I found your comment about 5 minutes after I had come to the same solution!

I was able to get my battery level working also!

- platform: template
      value_template: "{{ states.zwave.unknown_id027a_unknown_type2021_id2101_3.attributes.battery_level }}"
      friendly_name: "Mudroom Battery"
      entity_id:  zwave.unknown_id027a_unknown_type2021_id2101_3
      unit_of_measurement: '%'

The key was to use the actual zwave device node, which has the battery level attribute (and others).

If you’re interested in custom/dynamic icon based on the battery level, here is what I use:

    - platform: template
          friendly_name: "Basement Hall Multisensor Battery"
          value_template: "{% if states.zwave.basement_hall_multisensor %}
              {{ states.zwave.basement_hall_multisensor.attributes.battery_level }}
            {% else %}
            {% endif %}"
          unit_of_measurement: '%'
          # entity_id: zwave.basement_hall_multisensor
          icon_template: >-
            {% set battery_level = states('sensor.basement_hall_multisensor_battery')|int('unknown') %}
            {% set battery_round = (battery_level|int / 10)|int * 10 %}
            {% if battery_level == 'unknown' %}
            {% else %}
              {% if battery_round >= 100 %}
              {% elif battery_round > 0 %}
                mdi:battery-{{ battery_round }}
              {% else %}
              {% endif %}
            {% endif %}

The value_template also catches the zwave startup timeframe and scenarios where the device may be disconnected or unavailable.