Please help with 4-in-1 Sensor

I’ve been struggling for months to get a 4-in-1 Sensor to work in Home Assistant. Initially, I got a reply from Inovelli support back in the summer, but then they went radio silent and I never got any help from them. I’m pretty new to Home Assistant and I’ve never owned any Inovelli devices before so my knowledge of both is pretty minimal.

I’m using an AEON Labs Z-stick Gen 5 US, and the Sensor appears to have initialized in Home Assistant. There are several entities battery, temp, lux, rel. hum, burglar, alarm type, alarm level, and battey level. The values don’t change very much, for example, I just moved the sensor from a dark location to a light location, and the lux value didn’t change. A red light toggles on/off on the sensor when I pass by it, but other than that I don’t see any changes in the HA log or interface.

I tried setting up an automation following instructions from Inovelli to have it turn on a light when motion was detected, but it didn’t work. Actually, the instructions weren’t up to date with the current HA UI, so who knows if I had it set up right. However, when I clicked “execute” on the configuration page the light came on but it would not execute from motion detection.

I followed the directions to set up the LZW60 from Inovelli, but I don’t have any confidence at all that this is working correctly. So, I’m hoping to find some help here, or possibly direction to a help source before I put these sensors on eBay and buy something that works.

Thanks, in advance for jumping in to help me.

The brightness, temperature, and humidity sensors are on a timer interval (config parameters 101, 102 and 103). Every time the interval is reached, the sensor value is checked. If the sensor value differs from the previous value by more than the value set in parameters 111, 112, or 113 (or if parameter 110 is set to always send updates), the sensor will send a report to the hub.

For example, if temperature interval is set to 1 hour with a threshold of 5 degrees, and the sensor sent its most recent report at 1pm with a value of 50 degrees:

  • Sensor will check the temperature every hour
  • When the sensor checks the temperature, if the value is greater than 55 or less than 45, it will send a report.

You can change the reporting intervals down as low as once per minute for brightness/temp/humidity, but the lower the interval, the faster the battery will drain.

Back when I was using the built-in zwave component, I had to create a custom sensor to handle the motion detection

binary_sensor:
  - platform: template
    sensors:
      sensor_name:
        device_class: motion
        value_template: "{{ is_state('sensor.bathroom', '8') }}"

Once the template sensor was created, you can easily build automations off of it.

Thanks for your reply, jtronicus. That’s more information that I’ve gotten anywhere else in 6 months. I actually ran across your post about the binary sensor through a google search, but the problems is, I don’t know where these values get set??? And, templates are so new, I really don’t know how to use them yet. Where the heck can one find this information??? So, you’re saying that if I use a sensor template for the Inovelli 4-in-1 I can build an automation???

THANKS AGAIN!!

What values are you referring to?

A template Binary Sensor allows us to take a sensor that normally reports a value (in this case the “burglar” sensor) and create a new sensor out of it that reports an ON/OFF state. This makes it easier to create automations because you are triggering off an ON of OFF state instead of a numeric value. For the template above, we are treating a value of ‘8’ to mean ON, and any other value to mean OFF.

I am not sure exactly what your sensor’s name is, but it may look similar to sensor.inovelli_lzw60_4_in_1_sensor_burglar (you should be able to use the template I provided above but replace sensor_name with whatever name you want to call the new sensor, replace sensor.bathroom with the actual name of your sensor, and place it in your configuration.yaml file.

Most of the information on templates I learned from the Home Assistant website: https://www.home-assistant.io/integrations/binary_sensor.template/

I’m sure you could create automations without a sensor template, but I found that the template was easier to work with (and looks better if you add the sensor to your dashboard). Can you share the code for your existing automation?

I was talking about the parameters/values like 101, 102, etc. I was able to find them in the config/ozw_config/inovelli/lsw60.xml file.

When I was talking about templates being new, I was actually referring to blueprints. I know they were just introduced, so that should tell you how familiar I am with HA. I’m really just learning.

I can do that. THANKS!

  • id: ‘1609790227441’
    alias: Laundry light on by motion
    description: Turn the laundry light on when motion detected
    trigger:
    • type: turned_on
      platform: device
      device_id: 454ccfb9a6fa4c7fb32553334b447067
      entity_id: binary_sensor.inovelli_unknown_type_000d_id_0001_sensor
      domain: binary_sensor
      for:
      hours: 0
      minutes: 1
      seconds: 0
      condition: []
      action:
    • type: turn_on
      device_id: c33d9838bf0b4086b8b935d52b959782
      entity_id: switch.honeywell_unknown_type_5052_id_3033_switch
      domain: switch
      mode: single

I havent used blueprints yet either. I actually switched to nodered for automations a few months back, and no longer use the built-in automations in HA.

A couple observations on your automation:

  • entity_id: binary_sensor.inovelli_unknown_type_000d_id_0001_sensor this is actually the wrong sensor. The sensor that changes when motion is detected should look more like this: sensor.inovelli_unknown_type_000d_id_0001_sensor_burglar
  • minutes: 1 you probably dont want a for section on this automation. What you are currently saying is to turn on the laundry room light when motion has been detected continuously for over 1 minute. This means you will be walking around in the dark for a whole minute before the light turns on.
  • This is an automation to turn the light on only. You probably want a second automation to turn the light off when motion stops being detected.

Based on the entity_id you provided, I think your binary_sensor template should look like this:

binary_sensor:
  - platform: template
    sensors:
      laundry_motion:
        device_class: motion
        value_template: "{{ is_state('sensor.inovelli_unknown_type_000d_id_0001_sensor_burglar', '8') }}"

Automation 1:

- id: '12345678'
  alias: Laundry light on by motion
  description: Turn the laundry light on when motion detected
  trigger:
  - platform: state
    entity_id: binary_sensor.laundry_motion
    to: on
  action:
  - service: switch.turn_on
    entity_id: switch.honeywell_unknown_type_5052_id_3033_switch

Automation 2:

- id: '98765432'
  alias: Laundry light off after motion cleared
  description: Turn the laundry light off when no motion has been detected for 1 minute
  trigger:
  - platform: state
    entity_id: binary_sensor.laundry_motion
    to: off
    for:
      minutes: 1
  action:
  - service: switch.turn_off
    entity_id: switch.honeywell_unknown_type_5052_id_3033_switch

THANK YOU!! I hope to be able to get back to this later this afternoon, and hopefully, with your generous help, I can make it work!

Yes, I did know a second automation would be necessary to turn the lights off, but I was just hoping to get the first one working.

One question I’m still curious about though…does the sensor not send a signal to HA that is recorded in the logbook when a motion event occurs??? Thanks, and have a good day!

I am not 100% sure on that one. For me, the logbook does not appear to track any of my sensors (but it does track binary_sensor). I have a feeling that certain sensor types are automatically excluded from the logbook. You should be able to see it in the history section though.

OK, I’ve placed your code into my configuration.yaml file and the automation code for the first automation into the automation.yaml file. On reboot, HA came up with Safe Mode Activated. I did not replace the original ID in the automations.yaml file, but left it with the original value. Here’s a screenshot of the error.

Screenshot 2021-01-05 152605

This is my configuration.yaml file. Sorry for the formatting. I didn’t see a way to paste in a code block. Also, I removed the api keys for my weather station. Line 20 where the error occurred is where the binary sensor is defined. I’ve removed the binary_sensor code, rebooted, and HA seems normal. Any ideas?

homeassistant:
customize: !include customize.yaml

Configure a default setup of Home Assistant (frontend, api, etc)

default_config:

Uncomment this if you are using SSL/TLS, running in Docker container, etc.

http:

base_url: example.duckdns.org:8123

zwave:

config_path: /config/config_path

#Ambient Weather Station - RathburneWX

ambient_station:

api_key: xxx
app_key: xxx

binary_sensor:

  • platform: template

    sensors:

    laundry_motion:
    
      device_class: motion
    
      value_template: "{{ is_state('sensor.inovelli_unknown_type_000d_id_0001_sensor_burglar', '8') }}"
    

Text to speech

tts:

  • platform: google_translate

cloud:

alexa:

entity_config:

  light.leviton_unknown_type_1706_id_0334_level:

    name: Basement Steps

    description: Dimmable strip lights on the steps to the Basement

    display_categories: LIGHT

entity_config:

  switch.leviton_dzpa1_1lw_plug_in_appliance_module_switch:

    name: Basement Fan

    description: Basement fan to blow cool air upstairs

    display_categories: SWITCH

group: !include groups.yaml

automation: !include automations.yaml

script: !include scripts.yaml

scene: !include scenes.yaml

To post a code block, surround the block of code with 3 grave accent characters (to the left of the 1/! key. It looks like a backwards apostrophe)
image

like this:

```
binary_sensor:
  - platform: template
    sensors:
      laundry_motion:
        device_class: motion
        value_template: "{{ is_state('sensor.inovelli_unknown_type_000d_id_0001_sensor_burglar', '8') }}"
```

With the .yaml file format, its important to make sure the spacing and formatting is correct. I cant really tell if the spacing is correct on your post above because it was not posted as a code block. Could you re-post it (or post it on a site like pastebin.com)?

Its also worth double-checking to make sure the sensor name is correct. My guess is that it is named sensor.inovelli_unknown_type_000d_id_0001_sensor_burglar, but I may be wrong.

I knew the spacing for .yaml, like Python, is critical, and I’m pretty sure my config file was OK. I’m going to try another sensor because I’ve seen some posts related to the burglar sensor and I’ve seen that as an entity in Home Assistant. I’ve restored my configuration.yaml file to it’s previous state, so there’s no code to share for now, but I’ll make this “burglar” change and see what happens. Thanks for following up.

Small progress. HA didn’t reboot into Safe Mode, but apparently there are issues with the configuration.yaml file. I got this notification…

I also noticed that on the automation page, the new automation is disabled and greyed-out/not editable…

Here’s the updated configuration.yaml…

homeassistant:
  customize: !include customize.yaml
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
#   base_url: example.duckdns.org:8123

zwave:
#  config_path: /config/config_path

#Ambient Weather Station - RathburneWX
ambient_station:
    api_key: xxx
    app_key: xxx

binary_sensor:
  - platform: template
    sensors:
      laundry_motion:
        device_class: motion
        value_template: "{{ is_state('sensor.inovelli_unknown_type_000d_id_0001_burglar', '8') }}"

# Text to speech
tts:
  - platform: google_translate

cloud:
  alexa:
    entity_config:
      light.leviton_unknown_type_1706_id_0334_level:
        name: Basement Steps
        description: Dimmable strip lights on the steps to the Basement
        display_categories: LIGHT
    entity_config:
      switch.leviton_dzpa1_1lw_plug_in_appliance_module_switch:
        name: Basement Fan
        description: Basement fan to blow cool air upstairs
        display_categories: SWITCH

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

and, automations.yaml

- id: '1589648897459'
  alias: Steps on at sunset
  description: Turns on the steps strip light at sunset
  trigger:
  - event: sunset
    offset: -00:30
    platform: sun
  condition: []
  action:
  - brightness_pct: 20
    device_id: 8b97d9029be54e9ab8bf6a0f87ef6cf5
    domain: light
    entity_id: light.leviton_unknown_type_1706_id_0334_level
    type: turn_on
- id: '1589660672772'
  alias: Steps off at bedtime
  description: Turn the steps lights off at bedtime
  trigger:
  - at: '23:15:00'
    platform: time
  condition: []
  action:
  - device_id: 8b97d9029be54e9ab8bf6a0f87ef6cf5
    domain: light
    entity_id: light.leviton_unknown_type_1706_id_0334_level
    type: turn_off
- id: '1609790227441'
  alias: Laundry light on by motion
  description: Turn the laundry light on when motion detected
  trigger:
  - platform: state
    entity_id: binary_sensor.laundry_motion
    to: on
  action:
  - service: switch.turn_on
    entity_id: switch.honeywell_unknown_type_5052_id_3033_switch

By the way, that Node 9 is something that I’ve never been able to clear. I’ve followed the instructions to remove it, and it keeps coming back.

Looks like I forgot the quotes on line 42. It should be to: "on"

BINGO!! Works perfectly!

I also added in the second automation to shut off the light, remembered to put “off” in quotes, and all works as it should.

You’re a good egg, jtronicus!! Thank you VERY much for your tolerance.

1 Like