Z-Wave KFOB binding - how-to

Hi friends, with the existing material from this community I was able to get my OH2 up and running, thank you! However I now got stuck on implementing working items/rules for a zwave remote (Fibaro KFOB).

Could you help me with the following:

  • The system already lists the remote as zwave device, but not more: “unknown device”. Do I need to add more information in form of a XML?
  • The remote sends CENTRAL_SCENE with values 1.0-6.0 when a button is short-pressed. How do I configure this in items/rules?

Following my debug:

2017-06-22 19:48:22.051 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0B 00 04 00 02 05 5B 03 31 80 01 1F 
2017-06-22 19:48:22.057 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-06-22 19:48:22.062 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0B 00 04 00 02 05 5B 03 31 80 01 1F 
2017-06-22 19:48:22.068 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 0B 00 04 00 02 05 5B 03 31 80 01 1F 
2017-06-22 19:48:22.074 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 05 5B 03 31 80 01 
2017-06-22 19:48:22.077 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Application Command Request (ALIVE:WAIT)
2017-06-22 19:48:22.081 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Incoming command class CENTRAL_SCENE
2017-06-22 19:48:22.085 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 2: Received CENTRAL_SCENE command V0
2017-06-22 19:48:22.089 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 2: Received scene 1 at key 0 [Single Press]
2017-06-22 19:48:22.093 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2017-06-22 19:48:22.097 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-06-22 19:48:22.100 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = CENTRAL_SCENE, value = 1.0
2017-06-22 19:48:22.104 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 255: Transaction not completed: node address inconsistent.  lastSent=255, incoming=255

Possible ITEMS:

Switch remote_1_scene { channel="zwave:device:3eba1f1f:node2:central_scene" }
// or maybe
Switch remote_1_button_1 "KFOB Short Button 1" <switch> {zwave="5:command=scene_activation,scene=1.0"}

Possible RULE:

rule "remote_1_scene_update"
when
	Item remote_1_scene received update
then	
	if (remote_1_scene.state == 1.0) {
		logInfo("Remote Nodon", "Rule: Button1 SingleClick")
	}
end

I found so many examples in this forum but none worked. I hope someone can point me in the right direction…? Thank you!!

I assume it is a battery powered device. So at a minimum, you need to wake it up, sometimes as many as a dozen times, to give the binding a chance to get all the information it needs to identify the device.

Furthermore, the device may not be in the database yet. Please see

http://www.cd-jackson.com/index.php/zwave/zwave-device-database

Search to see if your make/model device is in the database and if not, follow the instructions for how to request an account and which files to upload.

Hi Rich, thanks a lot for your response!

I now tried everything, waking the device up close to the USB receiver dozens of times, as well excluding and re-including the node, reseting the node and the usb stick, etc. No result.

Now, the Fibaro Keyfob is in the database you linked: http://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/542

However, all my attempts resulted in listing an “unknown device” in the paper UI Things config. Weird, because the xml in /userdata/zwave shows a lot of useful data. Here is is:

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>REMOTE_SWITCH_2</genericDeviceClass>
    <specificDeviceClass>SWITCH_REMOTE2_MULTILEVEL</specificDeviceClass>
  </deviceClass>
  <homeId>0xeb099d82</homeId>
  <nodeId>2</nodeId>
  <version>4</version>
  <manufacturer>0x10f</manufacturer>
  <deviceId>0x1000</deviceId>
  <deviceType>0x1001</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>ASSOCIATION</commandClass>
    <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
    <commandClass>BATTERY</commandClass>
    <commandClass>CENTRAL_SCENE</commandClass>
    <commandClass>CONFIGURATION</commandClass>
    <commandClass>CRC_16_ENCAP</commandClass>
    <commandClass>DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>FIRMWARE_UPDATE_MD</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>MULTI_INSTANCE_ASSOCIATION</commandClass>
    <commandClass>POWERLEVEL</commandClass>
    <commandClass>VERSION</commandClass>
    <commandClass>WAKE_UP</commandClass>
    <commandClass>PROTECTION</commandClass>
    <commandClass>APPLICATION_STATUS</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <libraryType>LIB_SLAVE_ENHANCED</libraryType>
        <protocolVersion>4.38</protocolVersion>
        <applicationVersion>3.2</applicationVersion>
        <hardwareVersion>1</hardwareVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>DEVICE_RESET_LOCALLY</commandClass>
      <deviceResetLocallyCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </deviceResetLocallyCommandClass>
    </entry>
    <entry>
      <commandClass>CENTRAL_SCENE</commandClass>
      <centralSceneCommandClass>
        <version>3</version>
        <instances>1</instances>
        <versionSupported>3</versionSupported>
        <sceneCount>12</sceneCount>
      </centralSceneCommandClass>
    </entry>
    <entry>
      <commandClass>CRC_16_ENCAP</commandClass>
      <crc16EncapsulationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </crc16EncapsulationCommandClass>
    </entry>
    <entry>
      <commandClass>BATTERY</commandClass>
      <batteryCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <batteryLevel>37</batteryLevel>
        <batteryLow>false</batteryLow>
        <isGetSupported>true</isGetSupported>
      </batteryCommandClass>
    </entry>
    <entry>
      <commandClass>WAKE_UP</commandClass>
      <WakeUpCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <targetNodeId>1</targetNodeId>
        <interval>0</interval>
        <minInterval>0</minInterval>
        <maxInterval>0</maxInterval>
        <defaultInterval>0</defaultInterval>
        <intervalStep>0</intervalStep>
        <lastWakeup>2017-06-24 09:58:20.122 UTC</lastWakeup>
        <isGetSupported>true</isGetSupported>
      </WakeUpCommandClass>
    </entry>
    <entry>
      <commandClass>MULTI_INSTANCE_ASSOCIATION</commandClass>
      <multiAssociationCommandClass>
        <version>3</version>
        <instances>1</instances>
        <versionSupported>3</versionSupported>
        <maxGroups>13</maxGroups>
      </multiAssociationCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <maxGroups>13</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>ZWAVE_PLUS_INFO</commandClass>
      <zwavePlusCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <zwPlusVersion>1</zwPlusVersion>
        <zwPlusRole>4</zwPlusRole>
        <zwPlusNodeType>0</zwPlusNodeType>
        <zwPlusDeviceType>0x1600</zwPlusDeviceType>
        <zwPlusInstallerIcon>0x1600</zwPlusInstallerIcon>
        <isGetSupported>true</isGetSupported>
      </zwavePlusCommandClass>
    </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>PROTECTION</commandClass>
      <protectionCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <localModes>
          <localProtection>UNPROTECTED</localProtection>
          <localProtection>SEQUENCE</localProtection>
        </localModes>
        <rfModes>
          <rfProtection>UNPROTECTED</rfProtection>
        </rfModes>
      </protectionCommandClass>
    </entry>
    <entry>
      <commandClass>APPLICATION_STATUS</commandClass>
      <ZWaveApplicationStatusClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </ZWaveApplicationStatusClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </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>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <configParameters/>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>FIRMWARE_UPDATE_MD</commandClass>
      <firmwareUpdateCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>3</versionSupported>
      </firmwareUpdateCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>271</deviceManufacturer>
        <deviceType>4097</deviceType>
        <deviceId>4096</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>CENTRAL_SCENE</commandClass>
          <commandClass>BATTERY</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>2</int>
      <associationGroup>
        <index>2</index>
        <name>Square (On/Off)</name>
        <profile1>0x20</profile1>
        <profile2>0x1</profile2>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>3</int>
      <associationGroup>
        <index>3</index>
        <name>Square (Multilevel)</name>
        <profile1>0x20</profile1>
        <profile2>0x1</profile2>
        <commands/>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>4</int>
      <associationGroup>
        <index>4</index>
        <name>Circle (On/Off)</name>
        <profile1>0x20</profile1>
        <profile2>0x2</profile2>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>5</int>
      <associationGroup>
        <index>5</index>
        <name>Circle (Multilevel)</name>
        <profile1>0x20</profile1>
        <profile2>0x2</profile2>
        <commands/>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>6</int>
      <associationGroup>
        <index>6</index>
        <name>Cross (On/Off)</name>
        <profile1>0x20</profile1>
        <profile2>0x3</profile2>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>7</int>
      <associationGroup>
        <index>7</index>
        <name>Cross (Multilevel)</name>
        <profile1>0x20</profile1>
        <profile2>0x3</profile2>
        <commands/>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>8</int>
      <associationGroup>
        <index>8</index>
        <name>Triangle (On/Off)</name>
        <profile1>0x20</profile1>
        <profile2>0x4</profile2>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>9</int>
      <associationGroup>
        <index>9</index>
        <name>Triangle (Multilevel)</name>
        <profile1>0x20</profile1>
        <profile2>0x4</profile2>
        <commands/>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>10</int>
      <associationGroup>
        <index>10</index>
        <name>Minus (On/Off)</name>
        <profile1>0x20</profile1>
        <profile2>0x5</profile2>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>11</int>
      <associationGroup>
        <index>11</index>
        <name>Minus (Multilevel)</name>
        <profile1>0x20</profile1>
        <profile2>0x5</profile2>
        <commands/>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>12</int>
      <associationGroup>
        <index>12</index>
        <name>Plus (On/Off)</name>
        <profile1>0x20</profile1>
        <profile2>0x6</profile2>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>13</int>
      <associationGroup>
        <index>13</index>
        <name>Plus (Multilevel)</name>
        <profile1>0x20</profile1>
        <profile2>0x6</profile2>
        <commands/>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors>
    <int>1</int>
  </nodeNeighbors>
  <lastSent>2017-06-24 09:58:22.899 UTC</lastSent>
  <lastReceived>2017-06-24 09:58:22.950 UTC</lastReceived>
</node>

Any ideas?

When was the item added to the database and what version of OH are you using. If it was added after the version of OH you are using was released than you need to use a later release (e.g. 2.1 snapshot verses 2.0 release).