[SOLVED] Vision Door/Windows sensor zd2102 open/close and tamper are not triggered to different events

Then you still have the same thing as you had before - same thing = same result :wink:

I see. Now I deleted the thing and added it again. Partly working.

open/close comes alone now without tamper alarm ==> perfect
tamper alarm same, comes alone without door sensor ==> perfect

But the external switch is now acting as the door/window sensor not as the tamper switch.

In the documentation is written:
The ZD2102 sensor equipped with tamper switch. If the cover of sensor is removed, the door sensor will send an alarm report (type:01, level:11) to the Z-Wave

Should I send a new log only for this problem?

Sorry - I don’t understand.

The device only has 2 channels - a tamper and a door sensor. If I understand you correctly, these work fine? If there are more channels defined, then probably this needs to be added to the database.

You are right.

two channels
Contact DoorSensor03 {channel=“zwave:device:15a7a49f3a6:node6:sensor_door”}
Switch DoorSensor03_Sabotage {channel=“zwave:device:15a7a49f3a6:node6:alarm_burglar”}

But if I understood the documentation right the external switch acts in parallel to the tamper switch and not to the door open/close sensor:

The ZD2102 sensor equipped with tamper switch. If the cover of sensor is removed, the door sensor will send an alarm report (type:01, level:11) to the Z-Wave
The external switch will send an alarm report (type:01,level:11) by opening the window/door.

I will do a debug and see if there is a difference.

Ok, so the database would need to be updated to add the extra channel and to set the types for these channels. Please provide the XML.

I think the documentation is wrong. Nothing different in the log if I open door/window magnet or open binary switch. Looks like a error in documenation. Tamper switch acts different

tamper:

2017-05-30 20:32:05.365 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 6: Application Command Request (ALIVE:DETAILS)
2017-05-30 20:32:05.365 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 6: Incoming command class ALARM
2017-05-30 20:32:05.366 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 6: Received ALARM command V4
2017-05-30 20:32:05.366 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 6: Process NOTIFICATION_REPORT V4
2017-05-30 20:32:05.367 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 6: NOTIFICATION report - 7 = 255, event=3, status=255
2017-05-30 20:32:05.367 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 6: Alarm Type = BURGLAR (7)

external switch:

2017-05-30 20:29:16.175 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 6: Application Command Request (ALIVE:DETAILS)
2017-05-30 20:29:16.176 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 6: Incoming command class BASIC
2017-05-30 20:29:16.177 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 6: Received Basic Request
2017-05-30 20:29:16.178 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 6: Basic Set sent to the controller will be processed as Basic Report
2017-05-30 20:29:16.179 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 6: Basic report, value = 0xFF
2017-05-30 20:29:16.180 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2017-05-30 20:29:16.181 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 6: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-05-30 20:29:16.182 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 6: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 255
2017-05-30 20:29:16.184 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=6, callback=25, payload=06 01 00
2017-05-30 20:29:16.186 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 06 03 20 01 FF
2017-05-30 20:29:16.187 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, callback id=25, expected=SendData, cancelled=false      MISMATCH

door/window magnet:

2017-05-30 20:27:46.061 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 6: Application Command Request (ALIVE:DETAILS)
2017-05-30 20:27:46.061 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 6: Incoming command class BASIC
2017-05-30 20:27:46.062 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 6: Received Basic Request
2017-05-30 20:27:46.062 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 6: Basic Set sent to the controller will be processed as Basic Report
2017-05-30 20:27:46.063 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 6: Basic report, value = 0xFF
2017-05-30 20:27:46.063 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2017-05-30 20:27:46.064 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 6: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-05-30 20:27:46.064 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 6: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 255

I think we can close here. Thanks for the new binding. Now it works well.

External sensor is useless but this is by design :wink:

Can you provide the log with the received messages, and/or provide the xml?

Here are the logs and the xml from node

Timestamp in log:
door/window magnet sensor open:
2017-05-30 21:16:27.100 [ItemStateChangedEvent ] - DoorSensor03 changed from CLOSED to OPEN

door/window magnet sensor closed:
2017-05-30 21:17:16.360 [ItemStateChangedEvent ] - DoorSensor03 changed from OPEN to CLOSED

external switch open:
2017-05-30 21:17:37.511 [ItemStateChangedEvent ] - DoorSensor03 changed from CLOSED to OPEN

external switch closed:
2017-05-30 21:18:14.673 [ItemStateChangedEvent ] - DoorSensor03 changed from OPEN to CLOSED

tamper open:
2017-05-30 21:18:50.601 [ItemStateChangedEvent ] - DoorSensor03_Sabotage changed from OFF to ON

tamper closed:
2017-05-30 21:19:19.965 [ItemStateChangedEvent ] - DoorSensor03_Sabotage changed from ON to OFF

node6.xml (8.7 KB)

openhab.xml (43.6 KB)

Looking at the XML, there are 3 alarms showing as being supported -:

        <alarms>
          <entry>
            <alarmType>BURGLAR</alarmType>
            <alarmState>
              <alarmType>BURGLAR</alarmType>
              <reportedEvents>
                <int>3</int>
              </reportedEvents>
            </alarmState>
          </entry>
          <entry>
            <alarmType>ACCESS_CONTROL</alarmType>
            <alarmState>
              <alarmType>ACCESS_CONTROL</alarmType>
              <reportedEvents>
                <int>22</int>
                <int>23</int>
              </reportedEvents>
            </alarmState>
          </entry>
        </alarms>

The alarms 22 and 23 if I remember correctly are the door open/closed notifications, so this doesn’t seem to have one for the external switch. The manual seems to indicate that there might be a way to differentiate them although the manual I found states it uses event FE which I thought had a special meaning in the protocol so this might not be standard.

Looking at the log though, it seems the device isn’t using these messages a lot of the time - it is often using BASIC commands…

It looks like you are right:

in both times the device send event 23 by opening door/window or external switch:
Alarm converter NOTIFICATION event is 23, type OpenClosedType

in both times the device send event 22 by closing door/window or external switch:
Alarm converter NOTIFICATION event is 22, type OpenClosedType

So we cannot seperate which one triggeres the event. very sad.

I search for a solution to connect an external binary sensor for breaking glass to the door/window sensor to detect this too. My thought was to use the external switch for this, but with this result I cannot seperate the events. very sad. documentation from vision is wrong.

I have another door/window sensor from Fibaro which has an external switch too. I will try this one, if it works better.

I think all is done here,

thanks a lot.

Hi chris,

i come back to this. I opened a ticket at vsison and they send me this overview:

This means that it should be possible to separate the events. But I cannot see this in the debug log of the zwave protocol.

Where to find in the log “Alarm Event”? With this event type in combiantion with “Alarm Level” I can separate which sensor is triggered.

Alarm Event 0x02 ==> door/windows contact (status 0x00 or 0xff)
Alarm Event 0x03 ==> tamper switch contact (0xff)
Alarm Event 0xfe ==> external contact (status 0x00 or 0xff)

It is logged in the log.

If I remember correctly, FE is not a valid event - I think it means “no more events”.

Ok,

but I think vision uses it not for “no more events” but to detect external switch. Can you implement this? If yes, I can separate tamper switch from external switch and reed switch. Would be very helpful. With this solution I can use the door/window sensor with an additional binary sensor too and separate the events.

Maybe CO or CO² sensor or flood sensor or glas break sensor. All these external sensors are working as binary contact and can then connected to the external switch.

Hi chris,

do you see a change to implement a way to detect external switch for this device?
You wrote that 0xfe indicates “no more events”.

from Vision:
Alarm Event 0xfe ==> external contact (status 0x00 or 0xff)

If no, I will not spend more time with this device and try another one form a different supplier.

It’s problematic to do this since FE means “no more events”.

ok, so we do not go forward with this. makes the game too difficult.

Thanks a lot.

Hi!

I have the same door/window sensor. Is this binding still available for downloading? Sorry, but I’m a beginner. How to add this binding for openhab2?

Regards,

automasjon

use the normal zwave binding. Sensor is included. But additional open/close binary sensor cannot be used unindependent to the magnet sensor. Works in parallel

I have five of these and something is not working properly. They’ve been included on my z-wave network for days.

I remove the cover, which I assume is “alarm_burglar” and I get:

2018-01-18 20:43:17.828 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2018-01-18 20:43:17.841 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 28: Application Command Request (ALIVE:DONE)
2018-01-18 20:43:17.844 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 28: Starting initialisation from DONE
2018-01-18 20:43:17.848 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 28: Incoming command class ALARM
2018-01-18 20:43:17.854 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 28: Received ALARM command V2
2018-01-18 20:43:17.857 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 28: Process NOTIFICATION_REPORT V2
2018-01-18 20:43:17.860 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 28: NOTIFICATION report - 7 = 255, event=3, status=255
2018-01-18 20:43:17.862 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 28: Alarm Type = BURGLAR (7)
2018-01-18 20:43:17.867 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 28: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2018-01-18 20:43:17.869 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 28: Got a value event from Z-Wave network, endpoint = 0, command class = ALARM, value = 255
2018-01-18 20:43:17.876 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 28: Updating channel state zwave:device:cab10335:node28:alarm_burglar to ON [OnOffType]
2018-01-18 20:43:17.884 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=28, callback=255, payload=1C 02 84 08 

i put the magnet next to the device, which I assume is “sensor_door” I get:

2018-01-18 20:44:12.721 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 28: Application Command Request (ALIVE:DONE)
2018-01-18 20:44:12.723 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 28: Starting initialisation from DONE
2018-01-18 20:44:12.728 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 28: Incoming command class BASIC
2018-01-18 20:44:12.730 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 28: Received Basic Request
2018-01-18 20:44:12.732 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 28: Basic Set sent to the controller will be processed as Basic Report
2018-01-18 20:44:12.734 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 28: Basic report, value = 0x00
2018-01-18 20:44:12.738 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 28: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2018-01-18 20:44:12.740 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 28: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 0
2018-01-18 20:44:12.743 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=28, callback=1, payload=1C 02 84 08 
2018-01-18 20:44:12.773 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 28: Application Command Request (ALIVE:DONE)
2018-01-18 20:44:12.775 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 28: Starting initialisation from DONE
2018-01-18 20:44:12.779 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 28: Incoming command class ALARM
2018-01-18 20:44:12.781 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 28: Received ALARM command V2
2018-01-18 20:44:12.783 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 28: Process NOTIFICATION_REPORT V2
2018-01-18 20:44:12.784 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 28: NOTIFICATION report - 7 = 0, event=2, status=255
2018-01-18 20:44:12.786 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 28: Alarm Type = BURGLAR (7)
2018-01-18 20:44:12.790 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 28: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2018-01-18 20:44:12.791 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 28: Got a value event from Z-Wave network, endpoint = 0, command class = ALARM, value = 255
2018-01-18 20:44:12.797 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 28: Updating channel state zwave:device:cab10335:node28:alarm_burglar to ON [OnOffType]
2018-01-18 20:44:12.804 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=28, callback=1, payload=1C 02 84 08 

The XML file is:

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>BINARY_SENSOR</genericDeviceClass>
    <specificDeviceClass>ROUTING_SENSOR_BINARY</specificDeviceClass>
  </deviceClass>
  <homeId>0xf67d3453</homeId>
  <nodeId>28</nodeId>
  <version>4</version>
  <manufacturer>0x109</manufacturer>
  <deviceId>0x102</deviceId>
  <deviceType>0x2001</deviceType>
  <listening>false</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame>
    <commandClass>ALARM</commandClass>
    <commandClass>ASSOCIATION</commandClass>
    <commandClass>BATTERY</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>SENSOR_BINARY</commandClass>
    <commandClass>VERSION</commandClass>
    <commandClass>WAKE_UP</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <maxGroups>1</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>ALARM</commandClass>
      <alarmCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <alarms>
          <entry>
            <alarmType>BURGLAR</alarmType>
            <alarmState>
              <alarmType>BURGLAR</alarmType>
              <reportedEvents/>
              <outer-class reference="../../../.."/>
            </alarmState>
          </entry>
        </alarms>
        <v1Supported>true</v1Supported>
        <isGetSupported>true</isGetSupported>
      </alarmCommandClass>
    </entry>
    <entry>
      <commandClass>WAKE_UP</commandClass>
      <WakeUpCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <targetNodeId>1</targetNodeId>
        <interval>3600</interval>
        <minInterval>600</minInterval>
        <maxInterval>604800</maxInterval>
        <defaultInterval>3600</defaultInterval>
        <intervalStep>200</intervalStep>
        <lastWakeup>2018-01-19 01:31:47.895 UTC</lastWakeup>
        <isGetSupported>true</isGetSupported>
      </WakeUpCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <libraryType>LIB_SLAVE_ROUTING</libraryType>
        <protocolVersion>3.52</protocolVersion>
        <applicationVersion>4.84</applicationVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>SENSOR_BINARY</commandClass>
      <binarySensorCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
        <types/>
      </binarySensorCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>265</deviceManufacturer>
        <deviceType>8193</deviceType>
        <deviceId>258</deviceId>
      </manufacturerSpecificCommandClass>
    </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>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors>
    <int>1</int>
    <int>2</int>
    <int>3</int>
    <int>5</int>
    <int>6</int>
    <int>9</int>
    <int>11</int>
    <int>12</int>
    <int>13</int>
    <int>14</int>
    <int>19</int>
    <int>20</int>
    <int>26</int>
    <int>27</int>
  </nodeNeighbors>
  <lastSent>2018-01-19 01:31:48.247 UTC</lastSent>
  <lastReceived>2018-01-19 01:31:48.371 UTC</lastReceived>
</node>

My Items file has:

Contact FF_Foyer_Entry_Sensor "Foyer Entry [%s]" <door> (FF_Foyer, Door) {channel="zwave:device:cab10335:node28:sensor_door"}
Number FF_Foyer_Entry_Battery "Foyer Entry Battery [%d %%]" <energy> (FF_Foyer, Status) {channel="zwave:device:cab10335:node28:battery-level"}
Contact FF_Foyer_Entry_Tamper "Foyer Tamper [%s]" <siren> (FF_Foyer, Status) {channel="zwave:device:cab10335:node28:alarm_burglar"}

Any thoughts? I’m running openHAB 2.3.0 Build #1188. I’ve removed and re-added the things using habmin and PaperUI a few times. Not luck