Z-wave ZW20R 20a dual switch

I have one of these and it was working fine in OH1.8, but since the syntax changed in OH2 I can’t get it to work

My 2 items were
Switch Kitchen_Fluorescent “Kitchen_Fluorescent” {zwave=“9:1”}
Switch Kitchen_Cans “Kitchen_Cans” {zwave=“9:2”}

now I have tried to conform to the new synatax in oh2:
Switch Kitchen_Fluorescent “Kitchen_Fluorescent” {channel=“zwave:device:a1a97d44:node9:1”}
Switch Kitchen_Cans “Kitchen_Cans” {channel=“zwave:device:a1a97d44:node9:2”}

Now only the first one works. Also in Paperui under things, the device only shows up as having one switch (channel), the same in habmin.

Any ideas?

The new syntax looks correct, my guess is that the device is not in the database correctly. I had that problem with Yale YRD220 locks that showed up in 1.9, but don’t some of the variants are not in the db for openHAB 2.0. Security is not in 2.0 anyway, so I went back to the 1.9 binding.

It looks like there’s only a single endpoint in the database. Please can you post the XML for this node.

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>MULTILEVEL_SWITCH</genericDeviceClass>
    <specificDeviceClass>POWER_SWITCH_MULTILEVEL</specificDeviceClass>
  </deviceClass>
  <homeId>0xe120682c</homeId>
  <nodeId>5</nodeId>
  <version>4</version>
  <manufacturer>0x11a</manufacturer>
  <deviceId>0x201</deviceId>
  <deviceType>0x102</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame>
    <commandClass>SWITCH_ALL</commandClass>
    <commandClass>CONFIGURATION</commandClass>
    <commandClass>VERSION</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>ASSOCIATION</commandClass>
    <commandClass>SWITCH_MULTILEVEL</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <libraryType>LIB_SLAVE_ROUTING</libraryType>
        <protocolVersion>3.42</protocolVersion>
        <applicationVersion>1.4</applicationVersion>
      </versionCommandClass>
    </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>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>2</int>
            <configurationParameter>
              <index>2</index>
              <size>1</size>
              <value>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
        </configParameters>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <maxGroups>1</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_ALL</commandClass>
      <switchAllCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
        <mode>SWITCH_ALL_INCLUDE_ON_OFF</mode>
      </switchAllCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_MULTILEVEL</commandClass>
      <multiLevelSwitchCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <isGetSupported>true</isGetSupported>
      </multiLevelSwitchCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>282</deviceManufacturer>
        <deviceType>258</deviceType>
        <deviceId>513</deviceId>
      </manufacturerSpecificCommandClass>
    </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>4</int>
    <int>8</int>
  </nodeNeighbors>
  <lastSent>2017-01-24 21:15:16.699 UTC</lastSent>
  <lastReceived>2017-01-24 21:15:16.913 UTC</lastReceived>
</node>

Interestingly your XML also seems to only have a single endpoint…

Sorry pulled the wrong one

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
    <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
  </deviceClass>
  <homeId>0xe120682c</homeId>
  <nodeId>9</nodeId>
  <version>4</version>
  <manufacturer>0x11a</manufacturer>
  <deviceId>0x603</deviceId>
  <deviceType>0x101</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame>
    <commandClass>SWITCH_BINARY</commandClass>
    <commandClass>SWITCH_ALL</commandClass>
    <commandClass>MULTI_INSTANCE</commandClass>
    <commandClass>CONFIGURATION</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>VERSION</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>MULTI_INSTANCE</commandClass>
      <multiInstanceCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <endpoints>
          <entry>
            <int>1</int>
            <endPoint>
              <deviceClass>
                <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
                <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
                <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
              </deviceClass>
              <endpointId>1</endpointId>
              <supportedCommandClasses>
                <entry>
                  <commandClass>BASIC</commandClass>
                  <basicCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>0</version>
                    <instances>0</instances>
                    <versionSupported>0</versionSupported>
                    <isGetSupported>true</isGetSupported>
                  </basicCommandClass>
                </entry>
                <entry>
                  <commandClass>SWITCH_BINARY</commandClass>
                  <binarySwitchCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                    <versionSupported>1</versionSupported>
                    <isGetSupported>true</isGetSupported>
                  </binarySwitchCommandClass>
                </entry>
              </supportedCommandClasses>
            </endPoint>
          </entry>
          <entry>
            <int>2</int>
            <endPoint>
              <deviceClass>
                <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
                <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
                <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
              </deviceClass>
              <endpointId>2</endpointId>
              <supportedCommandClasses>
                <entry>
                  <commandClass>BASIC</commandClass>
                  <basicCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>0</version>
                    <instances>0</instances>
                    <versionSupported>0</versionSupported>
                    <isGetSupported>true</isGetSupported>
                  </basicCommandClass>
                </entry>
                <entry>
                  <commandClass>SWITCH_BINARY</commandClass>
                  <binarySwitchCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                    <versionSupported>1</versionSupported>
                    <isGetSupported>true</isGetSupported>
                  </binarySwitchCommandClass>
                </entry>
              </supportedCommandClasses>
            </endPoint>
          </entry>
        </endpoints>
        <useDestEndpointAsSource>false</useDestEndpointAsSource>
        <endpointsAreTheSameDeviceClass>true</endpointsAreTheSameDeviceClass>
      </multiInstanceCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <libraryType>LIB_SLAVE_ROUTING</libraryType>
        <protocolVersion>3.42</protocolVersion>
        <applicationVersion>4.1</applicationVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <configParameters/>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_ALL</commandClass>
      <switchAllCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
        <mode>SWITCH_ALL_INCLUDE_ON_OFF</mode>
      </switchAllCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>282</deviceManufacturer>
        <deviceType>257</deviceType>
        <deviceId>1539</deviceId>
      </manufacturerSpecificCommandClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_BINARY</commandClass>
      <binarySwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </binarySwitchCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups/>
  <nodeNeighbors>
    <int>1</int>
    <int>4</int>
    <int>7</int>
    <int>8</int>
  </nodeNeighbors>
  <lastSent>2017-01-25 14:21:58.482 UTC</lastSent>
  <lastReceived>2017-01-25 01:51:58.590 UTC</lastReceived>
</node>

That looks better :wink:

Can anything be done to get the 2nd channel working in OH2?

Sure - I guess the database needs to be updated to correctly reflect the configuration of the device? Please feel free to update this.

Ok, thanks. Looking around to see how to add it.

There is some information here. From memory it needs the additional endpoints and at least the applicable command classes adding.

OK, dumb question. Does Openhab periodically poll for the latest copy of the online z-wave database?

No - the database is exported into the binding so you will need to update the binding once it’s added.

NEVERMIND! i purged my oh2 packages and reinstalled the snapshot packages and now i’m seeing the right thing. guess it was some stale config somewhere…

leaving original post for posterity:

hi @chris, i’ve also got one of these devices, and i’m only getting a single endpoint (only one channel available in paper ui or habmin).

the database entry looks like it correctly lists the multiple endpoints: http://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/185

it also says the entry was last updated on Jan 25th, and last exported on Apr 6th.

i’m reasonably certain that OH2 is using some version of this database entry for my device, because the details i see in habmin and paper ui line up exactly with it.

i’m using a snapshot build of OH2 that appears to be from Mar 31st:

ii  openhab2                                             2.1.0~20170331113737-1                        all          openhab2
ii  openhab2-addons                                      2.1.0~20170331113737-1                        all          openhab2-addons
ii  openhab2-addons-legacy                               2.1.0~20170331113737-1                        all          openhab2-addons-legacy

so i guess the question is–did the version of the database entry on your site make it into this snapshot or not, right? is there any way for me to determine this? is there anything else you’re aware of that could be preventing me from getting the right number of endpoints/channels for this device?

thanks!

in case it helps, here’s the full xml for my device:

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
    <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
  </deviceClass>
  <homeId>0xf8de84fc</homeId>
  <nodeId>18</nodeId>
  <version>4</version>
  <manufacturer>0x11a</manufacturer>
  <deviceId>0x603</deviceId>
  <deviceType>0x101</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <healState>DONE @ 2017-04-08T09:10:11+0000</healState>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame/>
  <supportedCommandClasses>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
      </manufacturerSpecificCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_BINARY</commandClass>
      <binarySwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <isGetSupported>true</isGetSupported>
      </binarySwitchCommandClass>
    </entry>
    <entry>
      <commandClass>MULTI_INSTANCE</commandClass>
      <multiInstanceCommandClass>
        <version>2</version>
        <instances>1</instances>
        <endpoints>
          <entry>
            <int>1</int>
            <endPoint>
              <deviceClass>
                <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
                <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
                <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
              </deviceClass>
              <endpointId>1</endpointId>
              <supportedCommandClasses>
                <entry>
                  <commandClass>SWITCH_BINARY</commandClass>
                  <binarySwitchCommandClass>
                    <version>1</version>
                    <instances>1</instances>
                    <isGetSupported>true</isGetSupported>
                  </binarySwitchCommandClass>
                </entry>
                <entry>
                  <commandClass>BASIC</commandClass>
                  <basicCommandClass>
                    <version>0</version>
                    <instances>0</instances>
                    <isGetSupported>true</isGetSupported>
                  </basicCommandClass>
                </entry>
              </supportedCommandClasses>
            </endPoint>
          </entry>
          <entry>
            <int>2</int>
            <endPoint>
              <deviceClass>
                <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
                <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
                <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
              </deviceClass>
              <endpointId>2</endpointId>
              <supportedCommandClasses>
                <entry>
                  <commandClass>SWITCH_BINARY</commandClass>
                  <binarySwitchCommandClass>
                    <version>1</version>
                    <instances>1</instances>
                    <isGetSupported>true</isGetSupported>
                  </binarySwitchCommandClass>
                </entry>
                <entry>
                  <commandClass>BASIC</commandClass>
                  <basicCommandClass>
                    <version>0</version>
                    <instances>0</instances>
                    <isGetSupported>true</isGetSupported>
                  </basicCommandClass>
                </entry>
              </supportedCommandClasses>
            </endPoint>
          </entry>
        </endpoints>
        <endpointsAreTheSameDeviceClass>true</endpointsAreTheSameDeviceClass>
      </multiInstanceCommandClass>
    </entry>
    <entry>
      <commandClass>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <configParameters/>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_ALL</commandClass>
      <switchAllCommandClass>
        <version>1</version>
        <instances>1</instances>
        <isGetSupported>true</isGetSupported>
        <mode>SWITCH_ALL_INCLUDE_ON_OFF</mode>
      </switchAllCommandClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>1</version>
        <instances>1</instances>
        <libraryType>LIB_SLAVE_ROUTING</libraryType>
        <protocolVersion>3.42</protocolVersion>
        <applicationVersion>4.1</applicationVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
      </noOperationCommandClass>
    </entry>
  </supportedCommandClasses>
  <nodeNeighbors>
    <int>1</int>
    <int>2</int>
    <int>4</int>
    <int>6</int>
    <int>7</int>
    <int>8</int>
    <int>9</int>
    <int>11</int>
    <int>12</int>
    <int>13</int>
    <int>17</int>
    <int>20</int>
    <int>21</int>
  </nodeNeighbors>
  <lastSent>2017-04-08 09:10:10.410 UTC</lastSent>
  <lastReceived>2017-04-08 09:10:10.434 UTC</lastReceived>
</node>