ZWAVE Zooz 4-in-one motion/temperature/humidity/luminance sensor

I am having trouble getting this sensor to not report motion when the item get a “wakeup” ping. it reports motion every time this happens causing false motion reports. i contacted the sensor manufacture and then replied with the below text.

“We’re not sure why OpenHab is showing motion through the binary sensor, since the ZSE40 uses notifications to report motion (not the binary sensor command class). In Home Assistant, for example, motion is reported as Burglar Alarm, but here it may be identified as another type of alarm or notification. We know for sure it won’t be recognized as a binary sensor, since it doesn’t send binary sensor events for motion. This is in line with instructions from the Z-Wave Alliance for the Z-Wave Plus protocol.”

Any idea what my item should look like? Currently I use zwave:device:xxxnode11:sensor_binary

Try alarm_motion:

https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/491

There are a lot of channels in this device - often devices have different ways to send the same data. If we find that some aren’t doing anything, then it’s probably wise to remove them from the database. It’s also possible that people have added channels, or even command classes that are wrong, or, that older versions of these devices used to work differently (which we’d need to think about some more to avoid screwing up support for them).

I know the Zooz devices changed quite a bit in the early days, and there are already a couple of versions in the database -:

1 Like

Alarm_motion does not trigger on motion, it seems to maybe just be a tamper type of switch. I have that mapped as well but it’s not being triggered on motion. The problem is both motion and binary sensor both go to “zwave:device:xxx:node11:sensory_binary. So then I create an item that links to that the motion works as intended but also get me triggered on wakeups. The problem is there because every time the sensor gets woke up I also get a false motion activation. I’m using this to turn on a light and it works well, just also turns it on during the wake up time.

maybe we take a step back… is this how items should be linked in a .items file, because the binding documentation talks about doing it a different way but i have had no luck doing it that way.

//Zooz 4 in 1
Number Motion_Kitchen_Humidity “Kitchen Humidity [%.2f %%]” (gKitchen, gHumid) {channel=“zwave:device:a7ab4af2:node11:sensor_relhumidity”}
Number Motion_Kitchen_Lux “Kitchen Lux [%.2f %%]” (gKitchen, gLuxPercent) {channel=“zwave:device:a7ab4af2:node11:sensor_luminance”}
Number Motion_Kitchen_TempC “Kitchen Temperature [%.1f °C]” (gKitchen, gTemp) {channel=“zwave:device:a7ab4af2:node11:sensor_temperature”}
Number Motion_Kitchen_TempF “Kitchen Temperature [%.1f °F]” (gKitchen, IndoorTemperatureContol)
Switch Motion_Kitchen_Motion “Kitchen Motion” (gKitchen, gMotionIndoor) {channel=“zwave:device:a7ab4af2:node11:sensor_binary”}
Switch Motion_Kitchen_MotionAlarm “Kitchen Motion Alarm” (gKitchen, gTamper) {channel=“zwave:device:a7ab4af2:node11:alarm_motion”}
Switch Motion_Kitchen_TamperAlarm “Kitchen Tamper Alarm” (gKitchen, gTamper) {channel=“zwave:device:a7ab4af2:node11:alarm_tamper”}
Number Motion_Kitchen_Battery “Kitchen Motion Battery Level [%d %%]” (gKitchen, gBattery) {channel=“zwave:device:a7ab4af2:node11:battery-level”}

I’m not sure if that is really THE problem, but it is certainly incorrectly defined in the database so I’ll delete this.

I don’t know the device, so I’m not sure what commands it’s using. Probably, it should use the alarms and not the binary sensor, but often devices provide multiple ways to do the same thing.

Can you post your XML for this device (from the {userdata}/zwave folder).

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>SENSOR_NOTIFICATION</genericDeviceClass>
    <specificDeviceClass>NOTIFICATION_SENSOR</specificDeviceClass>
  </deviceClass>
  <homeId>0xda4df289</homeId>
  <nodeId>11</nodeId>
  <version>4</version>
  <manufacturer>0x27a</manufacturer>
  <deviceId>0x2101</deviceId>
  <deviceType>0x2021</deviceType>
  <listening>false</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame>
    <commandClass>ZWAVE_PLUS_INFO</commandClass>
    <commandClass>VERSION</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>ASSOCIATION</commandClass>
    <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
    <commandClass>POWERLEVEL</commandClass>
    <commandClass>BATTERY</commandClass>
    <commandClass>ALARM</commandClass>
    <commandClass>SENSOR_MULTILEVEL</commandClass>
    <commandClass>CONFIGURATION</commandClass>
    <commandClass>WAKE_UP</commandClass>
    <commandClass>FIRMWARE_UPDATE_MD</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>WAKE_UP</commandClass>
      <WakeUpCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <targetNodeId>1</targetNodeId>
        <interval>604800</interval>
        <minInterval>600</minInterval>
        <maxInterval>604800</maxInterval>
        <defaultInterval>43200</defaultInterval>
        <intervalStep>600</intervalStep>
        <lastWakeup>2018-06-17 17:12:18.286 UTC</lastWakeup>
        <isGetSupported>true</isGetSupported>
      </WakeUpCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <maxGroups>1</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <configParameters>
          <entry>
            <int>1</int>
            <configurationParameter>
              <index>1</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>2</int>
            <configurationParameter>
              <index>2</index>
              <size>1</size>
              <value>10</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>3</int>
            <configurationParameter>
              <index>3</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>4</int>
            <configurationParameter>
              <index>4</index>
              <size>1</size>
              <value>5</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>5</int>
            <configurationParameter>
              <index>5</index>
              <size>1</size>
              <value>15</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>6</int>
            <configurationParameter>
              <index>6</index>
              <size>1</size>
              <value>3</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>7</int>
            <configurationParameter>
              <index>7</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
        </configParameters>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>DEVICE_RESET_LOCALLY</commandClass>
      <deviceResetLocallyCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </deviceResetLocallyCommandClass>
    </entry>
    <entry>
      <commandClass>ALARM</commandClass>
      <alarmCommandClass>
        <version>4</version>
        <instances>1</instances>
        <versionSupported>4</versionSupported>
        <alarms>
          <entry>
            <alarmType>BURGLAR</alarmType>
            <alarmState>
              <alarmType>BURGLAR</alarmType>
              <reportedEvents>
                <int>3</int>
                <int>8</int>
              </reportedEvents>
              <outer-class reference="../../../.."/>
            </alarmState>
          </entry>
        </alarms>
        <v1Supported>false</v1Supported>
        <isGetSupported>true</isGetSupported>
      </alarmCommandClass>
    </entry>
    <entry>
      <commandClass>POWERLEVEL</commandClass>
      <powerLevelCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <powerLevel>0</powerLevel>
        <powerTimeout>0</powerTimeout>
      </powerLevelCommandClass>
    </entry>
    <entry>
      <commandClass>FIRMWARE_UPDATE_MD</commandClass>
      <firmwareUpdateCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
      </firmwareUpdateCommandClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <libraryType>LIB_SLAVE_ENHANCED</libraryType>
        <protocolVersion>4.54</protocolVersion>
        <applicationVersion>17.9</applicationVersion>
        <hardwareVersion>1</hardwareVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>BATTERY</commandClass>
      <batteryCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <batteryLevel>100</batteryLevel>
        <batteryLow>false</batteryLow>
        <isGetSupported>true</isGetSupported>
      </batteryCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
      <associationGroupInfoCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <autoSubscribeGroups>
          <int>1</int>
        </autoSubscribeGroups>
      </associationGroupInfoCommandClass>
    </entry>
    <entry>
      <commandClass>SENSOR_BINARY</commandClass>
      <binarySensorCommandClass>
        <version>0</version>
        <instances>0</instances>
        <versionSupported>0</versionSupported>
        <isGetSupported>true</isGetSupported>
        <types/>
      </binarySensorCommandClass>
    </entry>
    <entry>
      <commandClass>SENSOR_MULTILEVEL</commandClass>
      <multiLevelSensorCommandClass>
        <version>7</version>
        <instances>1</instances>
        <versionSupported>7</versionSupported>
        <sensors>
          <entry>
            <multilevelSensorType>RELATIVE_HUMIDITY</multilevelSensorType>
            <multilevelSensor>
              <sensorType>RELATIVE_HUMIDITY</sensorType>
              <initialised>true</initialised>
            </multilevelSensor>
          </entry>
          <entry>
            <multilevelSensorType>LUMINANCE</multilevelSensorType>
            <multilevelSensor>
              <sensorType>LUMINANCE</sensorType>
              <initialised>true</initialised>
            </multilevelSensor>
          </entry>
          <entry>
            <multilevelSensorType>TEMPERATURE</multilevelSensorType>
            <multilevelSensor>
              <sensorType>TEMPERATURE</sensorType>
              <initialised>true</initialised>
            </multilevelSensor>
          </entry>
        </sensors>
        <isGetSupported>true</isGetSupported>
      </multiLevelSensorCommandClass>
    </entry>
    <entry>
      <commandClass>ZWAVE_PLUS_INFO</commandClass>
      <zwavePlusCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <zwPlusVersion>1</zwPlusVersion>
        <zwPlusRole>6</zwPlusRole>
        <zwPlusNodeType>0</zwPlusNodeType>
        <zwPlusDeviceType>0xc07</zwPlusDeviceType>
        <zwPlusInstallerIcon>0xc07</zwPlusInstallerIcon>
        <isGetSupported>true</isGetSupported>
      </zwavePlusCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>634</deviceManufacturer>
        <deviceType>8225</deviceType>
        <deviceId>8449</deviceId>
      </manufacturerSpecificCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <name>Lifeline</name>
        <profile1>0x0</profile1>
        <profile2>0x1</profile2>
        <commands>
          <commandClass>DEVICE_RESET_LOCALLY</commandClass>
          <commandClass>ALARM</commandClass>
          <commandClass>BASIC</commandClass>
          <commandClass>SENSOR_MULTILEVEL</commandClass>
          <commandClass>BATTERY</commandClass>
        </commands>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors/>
  <lastSent>2018-06-17 17:12:18.881 UTC</lastSent>
  <lastReceived>2018-06-17 17:12:18.924 UTC</lastReceived>
</node>

Thanks. From a quick look, this looks consistent with the database. I was wondering if command classes like the sensor binary were not really supported and had been added by someone incorrectly, but from your XML, it seems it is supported.

I have removed the Motion channel from the database for now at least - I suspect once we work out what the different channels do, we might want to remove some others to avoid confusion.

Again, the motion channel reports motion, but it’s also reporting when the device wakes up.

From smarter things help it seems burglar is the one that reports motion.

Can I get confirmation that my items I have post d above are set up correct? On the zwave binding page it seems the syntax is something like zwave=“11:command=xxxx” and that does not seem to work for me at all. I want to make sure I’m not missing the basic step first.

Now it won’t report anything as it’s removed :slight_smile:

As I said yesterday, the alarm channels are more likely to be the ones that provide the reports you want.

At first glance it looks ok, but I’m not familiar with this device so can’t be 100% sure what the channels all mean.

Please can you provide the link to this “binding page”? It looks like OH1 syntax, not OH2 so we should remove it.

your correct. the zwave=“11:command=xxxx” is the legacy version. and exactly why it didnt work :).

so again my items file links to every available channel on the device in habmin. the only one that reports motion was the “sensor_binary” one. all the others report what they say they are reporting. “Kitchen Motion Alarm” is the only one that has not been triggered much in my logs so im not sure what is does but its for sure not motion.
i also cannot get the sensor to report in °F but thats a minor problem. i just have a rule that converts it.
i was using “sensor_binary” to turn on my lights and it was working. i currently just have the wake up set for once a week so i will just get a false reading one time a week. but it would be nice to not have to get that one ever.

It might be worth you trying the development branch -:

This is a little different in the way it handles notifications (alarms). Maybe it helps - if not, then it might be worth getting a log to see what is being reported. It may also be a device config issue.

Again, this may be better resolved with the development version since UoM is supported there and it should better support degF.

I will try that tonight. If that doesn’t do much I will try another reset on the device

i am actually currently on 2.4 snapshot. i had you update some light switched a few weeks back and got that one. im not sure if the one linked is more up to date or not…

The development binding has been refactored and is very different than what you will get in the release or snapshot versions. Be sure to delete/rediscover (no need to exclude/reinclude) your zwave Things after upgrading to get the updated Thing definitions.

i have the .jar in the addons folder, rebooted, and nothing… verified that the bundle was installed (see below) and the only one…

openhab> bundle:list | grep -i zwave
329 │ Installed │ 80 │ 2.3.0.201806192227 │ ZWave Binding

when i tried to start is i get the below error…

329 │ Installed │ 80 │ 2.3.0.201806192227 │ ZWave Binding
openhab> bundle:start 329
Error executing command: Error executing command on bundles:
Error starting bundle 329: Could not resolve module: org.openhab.binding.zwave [329]
Unresolved requirement: Import-Package: javax.measure.quantity

That is referencing UoM. Are you not running OH 2.3 or above?

i was not, now i am… it also seems that with the new binding the motion is triggered under the alarm (motion) channel… i think this solved my problem… i will need to do a little more testing tomorrow but this is looking good.

2 Likes