Does openhab2 zwave binding support FLiRS beams?

Hi everyone!

I am newbie to the whole home-automation concept but I’ve now spent the last few weeks reading endlessly the different material available here and have a good start on my home automation network. During the many hours of journey into setting up the openhab2 solution many of my issues were able to be solved by finding a thread here or via the git docs or the openhab documentation, But now I’ve come across an issue that I cannot find any existing documentation on.

Does Openhab2 with the Z-wave binding support devices that use FLiRS beams to sync up with your z-wave network?

You see I’ve purchased the Vision ZM1601 siren. I included it into my z-wave network using habmin and the node was discovored. But like other battery devices I have the complete device config was not updated. So I wanted to do as I usaully do, wake the device up a few times so that it could be correctly identified and fully included in the network.

Now, the official instructions state under “wake up” that it’s a flirs device. Thus there is no wake up method/button. Intstead your controller has to send the beam that tells the device to stay awake for some instructions when it wakes up.
But nothing seems to be happening at all in 24 hours. So I’m trying to establish if openhab2 + z-wave binding can send flirs beams.

If it does, do I have to initiate something for the beams to start?

Cheers and happy new years to everyone! :slight_smile:

My set up:
Raspberry Pi3 + Razberry z-wave card
Raspbian Jessie
Openhab2
Z-Wave binding

I’ve done some more research into my problem. At first I thought I’d try out a different Siren (never buy another device without a wake up button!).

But I was able to get some more info on the node. At first it just said “Node 8”. I removed the batteries for a few minutes and deleted the Z-Wave Node in habmin. In an attempt at a last inclusion. I plugged in the batteries and ran the habmin inclusion process. Node 9 came up again, but this time with a little more information to it.

It’s still an “Unkown device” but this time it showed numbers at the end of the label like this:
Z-Wave Node 8 (0109:2005:0508:15.10)

After some more reading I found Chris’s Z-wave binding database. Now from what I can see there are two entries for this device.

The later of the entries being the “template” attempted to being assigned to my device. Now I don’t fully understand if my device is identifying itself as ZM1601v5 or if the ZM1601v5 template is trying to assert itself onto my device when perhaps the first template ZM1601 would work instead. It does have the green check box so it seems it has all the needed info to work?

I’ve tried locating more than one version of ZM1601 on the web, but I cannot. On the z-wave alliance homepage there is only one ZM1601 http://products.z-wavealliance.org/products/1009

Also on the manufacturer homepage there seems to be only one.
http://www.visionsecurity.com.tw/index.php?option=product&lang=en&task=pageinfo&id=52&belongid=147&index=0

Any idea’s on how I should proceed?

FLiRS devices should work fine - there shouldn’t be anything for the binding to do as they are treated as listening devices - since they listen fine (you just end up with a slightly longer delay). Certainly here my lock (a FLiRS1000 device) works fine.

The fact that the device is showing up with manufacturer information shows that the binding is talking to it. You say “nothing at all is happening” - but I seriously doubt that based on the above - clearly it is communicating.

Is there an XML created for this device? (in the userdata/zwave folder)? If not, what does the debug log show?

I can see that there is actually an XML file created for it.

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
    <specificDeviceClass>SIREN_SWITCH_BINARY</specificDeviceClass>
  </deviceClass>
  <homeId>0xf2e219e5</homeId>
  <nodeId>8</nodeId>
  <version>4</version>
  <manufacturer>0x109</manufacturer>
  <deviceId>0x508</deviceId>
  <deviceType>0x2005</deviceType>
  <listening>false</listening>
  <frequentlyListening>true</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <supportedCommandClasses>
    <entry>
      <commandClass>ALARM</commandClass>
      <alarmCommandClass>
        <version>4</version>
        <instances>1</instances>
        <versionSupported>4</versionSupported>
        <alarms>
          <entry>
            <alarmType>GENERAL</alarmType>
            <alarmState>
              <alarmType>GENERAL</alarmType>
              <reportedEvents/>
              <outer-class reference="../../../.."/>
            </alarmState>
          </entry>
          <entry>
            <alarmType>BURGLAR</alarmType>
            <alarmState>
              <alarmType>BURGLAR</alarmType>
              <reportedEvents>
                <int>3</int>
              </reportedEvents>
              <outer-class reference="../../../.."/>
            </alarmState>
          </entry>
        </alarms>
        <v1Supported>false</v1Supported>
        <isGetSupported>true</isGetSupported>
      </alarmCommandClass>
    </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/>
      </configurationCommandClass>
    </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>ZWAVE_PLUS_INFO</commandClass>
      <zwavePlusCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <zwPlusVersion>1</zwPlusVersion>
        <zwPlusRole>7</zwPlusRole>
        <zwPlusNodeType>0</zwPlusNodeType>
        <zwPlusDeviceType>0xf00</zwPlusDeviceType>
        <zwPlusInstallerIcon>0xf00</zwPlusInstallerIcon>
        <isGetSupported>true</isGetSupported>
      </zwavePlusCommandClass>
    </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>0</version>
        <instances>0</instances>
        <versionSupported>0</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>265</deviceManufacturer>
        <deviceType>8197</deviceType>
        <deviceId>1288</deviceId>
      </manufacturerSpecificCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_BINARY</commandClass>
      <binarySwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </binarySwitchCommandClass>
    </entry>
    <entry>
      <commandClass>DEVICE_RESET_LOCALLY</commandClass>
      <deviceResetLocallyCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </deviceResetLocallyCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <libraryType>LIB_SLAVE_ENHANCED</libraryType>
        <protocolVersion>4.5</protocolVersion>
        <applicationVersion>15.10</applicationVersion>
        <hardwareVersion>2</hardwareVersion>
      </versionCommandClass>
    </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>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>0</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <name>Lifeline</name>
        <profile>0x1</profile>
        <commands>
          <commandClass>ALARM</commandClass>
          <commandClass>DEVICE_RESET_LOCALLY</commandClass>
          <commandClass>BATTERY</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors>
    <int>1</int>
    <int>4</int>
    <int>7</int>
  </nodeNeighbors>
  <lastSent>2016-12-31 21:56:05.691 UTC</lastSent>
  <lastReceived>2016-12-31 21:56:24.949 UTC</lastReceived>
</node>

What could it mean? Should I just wait a few more days and perhaps the device will get fully synced? Or should I perhaps type in some values manually into the XML file?

Cheers :slight_smile:

It looks like everything is probably working ok but you have a version of the device that isn’t in the database. I’ll take a look at this later today.

Great, thanks a lot! Let me know if I can help by providing more data from the device somehow. :slight_smile:

/Erik

It’s fine - thanks. I’ve just had a look and will update the binding tonight - hopefully this will solve your problem.

1 Like

@chris want to ask you advice once more. :slight_smile:

Since you did the update to the binding info for this device I’ve been eagerly awaiting it’s full identification process to complete.
In the habmin gui there has been no visible change so far. The siren is still listed as unknown. Do you reccon these devices can take many days to complete the identification process?

Or maybe there are some tricks I can do to quicken the process?

As there is no wake-up mechanism for me to press I’m kinda just talking to it right now and asking it to talk to the controller. hehe

Below is a copy paste of the current xml for this device. Not much changes since last time. But it is talking or listening or doing something at least it seems by looking at the date at the end of the file.

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
    <specificDeviceClass>SIREN_SWITCH_BINARY</specificDeviceClass>
  </deviceClass>
  <homeId>0xf2e219e5</homeId>
  <nodeId>8</nodeId>
  <version>4</version>
  <manufacturer>0x109</manufacturer>
  <deviceId>0x508</deviceId>
  <deviceType>0x2005</deviceType>
  <listening>false</listening>
  <frequentlyListening>true</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <supportedCommandClasses>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>0</version>
        <instances>0</instances>
        <versionSupported>0</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>0</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_BINARY</commandClass>
      <binarySwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </binarySwitchCommandClass>
    </entry>
    <entry>
      <commandClass>ALARM</commandClass>
      <alarmCommandClass>
        <version>4</version>
        <instances>1</instances>
        <versionSupported>4</versionSupported>
        <alarms>
          <entry>
            <alarmType>GENERAL</alarmType>
            <alarmState>
              <alarmType>GENERAL</alarmType>
              <reportedEvents/>
              <outer-class reference="../../../.."/>
            </alarmState>
          </entry>
          <entry>
            <alarmType>BURGLAR</alarmType>
            <alarmState>
              <alarmType>BURGLAR</alarmType>
              <reportedEvents>
                <int>3</int>
              </reportedEvents>
              <outer-class reference="../../../.."/>
            </alarmState>
          </entry>
        </alarms>
        <v1Supported>false</v1Supported>
        <isGetSupported>true</isGetSupported>
      </alarmCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <maxGroups>1</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>FIRMWARE_UPDATE_MD</commandClass>
      <firmwareUpdateCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
      </firmwareUpdateCommandClass>
    </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>POWERLEVEL</commandClass>
      <powerLevelCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <powerLevel>0</powerLevel>
        <powerTimeout>0</powerTimeout>
      </powerLevelCommandClass>
    </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>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <configParameters/>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <libraryType>LIB_SLAVE_ENHANCED</libraryType>
        <protocolVersion>4.5</protocolVersion>
        <applicationVersion>15.10</applicationVersion>
        <hardwareVersion>2</hardwareVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>ZWAVE_PLUS_INFO</commandClass>
      <zwavePlusCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <zwPlusVersion>1</zwPlusVersion>
        <zwPlusRole>7</zwPlusRole>
        <zwPlusNodeType>0</zwPlusNodeType>
        <zwPlusDeviceType>0xf00</zwPlusDeviceType>
        <zwPlusInstallerIcon>0xf00</zwPlusInstallerIcon>
        <isGetSupported>true</isGetSupported>
      </zwavePlusCommandClass>
    </entry>
    <entry>
      <commandClass>DEVICE_RESET_LOCALLY</commandClass>
      <deviceResetLocallyCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </deviceResetLocallyCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>265</deviceManufacturer>
        <deviceType>8197</deviceType>
        <deviceId>1288</deviceId>
      </manufacturerSpecificCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <name>Lifeline</name>
        <profile>0x1</profile>
        <commands>
          <commandClass>ALARM</commandClass>
          <commandClass>BATTERY</commandClass>
          <commandClass>DEVICE_RESET_LOCALLY</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors>
    <int>1</int>
    <int>4</int>
    <int>7</int>
  </nodeNeighbors>
  <lastSent>2017-01-03 10:50:21.744 UTC</lastSent>
  <lastReceived>2017-01-03 10:50:22.891 UTC</lastReceived>
</node>

This is how the thing looks in habmin:

No - if there’s already an XML, then it should be done or something is wrong.

My guess is that your binding hasn’t updated to a version with this device. Have you updated the binding today or last night? It looks like I did this change 2 days ago, but I did notice there was a failure of the build and it might not have updated until last night. If you’re not running the latest snapshot binding, then I’d suggest to update and see if it solves the issue.

1 Like

Ah okay, I didn’t relize it was set up in that kind of way. With the relation of the binding to what is in the binding database.
And your right last time I did an update of the snapshot was a day or two prior to me starting to try to include the Siren device. I never crossed my mind that I needed to update! But now I know for future times.

After the update of OH2 snapshot the Siren is identified successfully! Yes! :smiley:

Thanks for the help! :slight_smile: