What is wrong with this Thing declaration?

Using OH2 and moving from PaperUI to file config? OH doesnt like this:definition of my Z.Me controller stick and a Danfoss 2-ch switch…

First I listed the Things using the OH Console:

openhab> smarthome:things list
zwave:device:4849599d:node3 (Type=Thing, Status=ONLINE, Label=Danfoss RX2 Contoller, Bridge=zwave:serial_zstick:4849599d)
mqtt:topic:t_MQTT_Broker:t_TRV_Lounge (Type=Thing, Status=ONLINE, Label=Lounge TRV, Bridge=mqtt:broker:t_MQTT_Broker)
mqtt:topic:t_MQTT_Broker:t_TRV_Dad (Type=Thing, Status=ONLINE, Label=Dad TRV, Bridge=mqtt:broker:t_MQTT_Broker)
zwave:serial_zstick:4849599d (Type=Bridge, Status=ONLINE, Label=Z-Wave Serial Controller, Bridge=null)
mqtt:topic:t_MQTT_Broker:t_TRV_Summer (Type=Thing, Status=ONLINE, Label=Summer TRV, Bridge=mqtt:broker:t_MQTT_Broker)
mqtt:broker:t_MQTT_Broker (Type=Bridge, Status=ONLINE, Label=MQTT Broker, Bridge=null)

Then try to set this up in a .things file

/* Z.me Z-Wave Controller */
Bridge zwave:serial_zstick:t_Zcontroller "Z-Wave serial controller" @ "Z-Wave" [ port="/dev/ttyACM0", controller_softreset="false", controller_master="true", heal_enable="true", security_networkkey="xxx..." ]
{
   Thing z_wave:t_Danfoss_RX2:t_Zcontroller:node3 "Danfoss RX2 RF Programmer" (zwave:serial_zstick:controller) @ "Z-Wave"     [node_id=4849599d]
}

Prey tell Why?

EDIT: Key abstracted - thanks @H101 (oops!)

You may want to edit out your security_network key.

Your welcome. :wink:

I don’t use ZWave but I think it’s recommended to use PaperUI to configure the thing and use files for items. This helps prevent syntax/config errors and it’s recommended for all bindings not just ZWave.

@Bruce_Osborne uses Zwave so maybe he can help with your config if you still wanna use files for everything.

1 Like

Never mind, I sussed it out.

Bridge zwave:serial_zstick:t_Zcontroller "Z-Wave serial controller" @ "Z-Wave" [ port="/dev/ttyACM0", controller_softreset="false", controller_master="true", heal_enable="true", security_networkkey="AF 5B A0 8B 38 31 78 52 FC C2 08 14 26 39 0D C7" ]
{
   Thing zwave:4849599d:t_Zcontroller:t_Danfoss_RX2 "Danfoss RX2 RF Programmer" (zwave:serial_zstick:t_Zcontroller) @ "Z-Wave"     [node_id=3]  
} 

UNINITIALIZED - HANDLER_MISSING_ERROR

Now for the Channels…But stuck again…

What would need to be the Channels definition for the t_Danfoss_controller Thing , please, for my item here https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/1189

Is the Danfoss Programmer already joined to the Z-Wave network? If so, it is usually recommended to create the Thing through the UI ( I tend to use HABmin).
If it is not yet partrt of the network I usually use HABmin to put the controller into Include mode, but the Device into include mode, and discover through the UI.

The Device thing needs to reference the network node. For (redacted) example,

zwave:device:[NetworkId]:node18

Hi Bruce

I’ts showing up online in Things in PaperUI. But I have no channels. Wanted to move from UI to files based config. The channels on the Danfoss is all that I need now, but not sure how to define the channels for this Thing which id documented as above (link to the database). Chris put this in the db on Monday , it associated fine, but through the UI. I would like to do this in files. as I say, the Danfoss is now online but no channels ??

Try querying the Thing definition through the REST API. That is how the UI added and accesses the Thing.

Here is the (redacted) response to querying my example, above.

{
  "statusInfo": {
    "status": "ONLINE",
    "statusDetail": "NONE"
  },
  "editable": true,
  "label": "Christmas Tree Plug",
  "bridgeUID": "zwave:serial_zstick:[NetworkId]",
  "configuration": {
    "config_20_1": 1,
    "config_21_1": 0,
    "binding_cmdrepollperiod": 1500,
    "action_failed": false,
    "group_1": [
      "controller"
    ],
    "action_remove": false,
    "binding_pollperiod": 86400,
    "config_173_4": 300,
    "config_172_4": 300,
    "action_heal": false,
    "switchall_mode": 255,
    "config_174_4": 300,
    "action_reinit": false,
    "config_171_4": 30,
    "config_151_2": 50,
    "config_152_1": 10,
    "config_27_1": 1,
    "config_24_1": 1,
    "node_id": 18
  },
  "properties": {
    "zwave_class_basic": "BASIC_TYPE_ROUTING_SLAVE",
    "zwave_class_generic": "GENERIC_TYPE_SWITCH_BINARY",
    "zwave_frequent": "false",
    "zwave_neighbours": "1,4,5,11,15",
    "modelId": "ZEN15",
    "zwave_version": "1.4",
    "zwave_listening": "true",
    "zwave_plus_devicetype": "NODE_TYPE_ZWAVEPLUS_NODE",
    "manufacturerId": "027A",
    "manufacturerRef": "0101:000D",
    "dbReference": "758",
    "zwave_deviceid": "13",
    "zwave_nodeid": "18",
    "zwave_lastheal": "2020-01-09T07:48:59Z",
    "vendor": "Zooz",
    "defaultAssociations": "1",
    "zwave_routing": "true",
    "zwave_plus_roletype": "ROLE_TYPE_SLAVE_ALWAYS_ON",
    "zwave_beaming": "true",
    "zwave_secure": "false",
    "zwave_class_specific": "SPECIFIC_TYPE_POWER_SWITCH_BINARY",
    "zwave_manufacturer": "634",
    "zwave_devicetype": "257"
  },
  "UID": "zwave:device:[NetworkId]:node18",
  "thingTypeUID": "zwave:zooz_zen15_00_000",
  "channels": [
    {
      "linkedItems": [
        "tree_plug"
      ],
      "uid": "zwave:device:[NetworkId]:node18:switch_binary",
      "id": "switch_binary",
      "channelTypeUID": "zwave:switch_binary",
      "itemType": "Switch",
      "kind": "STATE",
      "label": "Switch",
      "description": "Switch the power on and off",
      "defaultTags": [],
      "properties": {
        "binding:*:OnOffType": "COMMAND_CLASS_SWITCH_BINARY,COMMAND_CLASS_BASIC"
      },
      "configuration": {}
    },
    {
      "linkedItems": [],
      "uid": "zwave:device:[NetworkId]:node18:scene_number",
      "id": "scene_number",
      "channelTypeUID": "zwave:scene_number",
      "itemType": "Number",
      "kind": "STATE",
      "label": "Scene Number",
      "description": "Triggers when a scene button is pressed",
      "defaultTags": [],
      "properties": {
        "binding:*:DecimalType": "COMMAND_CLASS_SCENE_ACTIVATION"
      },
      "configuration": {}
    },
    {
      "linkedItems": [],
      "uid": "zwave:device:[NetworkId]:node18:meter_voltage",
      "id": "meter_voltage",
      "channelTypeUID": "zwave:meter_voltage",
      "itemType": "Number",
      "kind": "STATE",
      "label": "Electric meter (volts)",
      "description": "Indicates the instantaneous voltage",
      "defaultTags": [],
      "properties": {
        "binding:*:DecimalType": "COMMAND_CLASS_METER;type=E_V"
      },
      "configuration": {}
    },
    {
      "linkedItems": [],
      "uid": "zwave:device:[NetworkId]:node18:meter_current",
      "id": "meter_current",
      "channelTypeUID": "zwave:meter_current",
      "itemType": "Number",
      "kind": "STATE",
      "label": "Electric meter (amps)",
      "description": "Indicates the instantaneous current consumption",
      "defaultTags": [],
      "properties": {
        "binding:*:DecimalType": "COMMAND_CLASS_METER;type=E_A"
      },
      "configuration": {}
    },
    {
      "linkedItems": [],
      "uid": "zwave:device:[NetworkId]:node18:meter_kwh",
      "id": "meter_kwh",
      "channelTypeUID": "zwave:meter_kwh",
      "itemType": "Number",
      "kind": "STATE",
      "label": "Electric meter (kWh)",
      "description": "Indicates the energy consumption (kWh)",
      "defaultTags": [],
      "properties": {
        "binding:*:DecimalType": "COMMAND_CLASS_METER;type=E_KWh"
      },
      "configuration": {}
    },
    {
      "linkedItems": [],
      "uid": "zwave:device:[NetworkId]:node18:meter_watts",
      "id": "meter_watts",
      "channelTypeUID": "zwave:meter_watts",
      "itemType": "Number",
      "kind": "STATE",
      "label": "Electric meter (watts)",
      "description": "Indicates the instantaneous power consumption",
      "defaultTags": [],
      "properties": {
        "binding:*:DecimalType": "COMMAND_CLASS_METER;type=E_W"
      },
      "configuration": {}
    },
    {
      "linkedItems": [],
      "uid": "zwave:device:[NetworkId]:node18:meter_reset",
      "id": "meter_reset",
      "channelTypeUID": "zwave:meter_reset",
      "itemType": "Switch",
      "kind": "STATE",
      "label": "Reset Meter",
      "description": "Reset the meter",
      "defaultTags": [],
      "properties": {
        "binding:*:OnOffType": "COMMAND_CLASS_METER"
      },
      "configuration": {}
    }
  ]
}

I would guess quickly the Thing might look like
Thing "Christmas Tree Plug" zwave:device:[NetworkId]:node18 or similar

The db item was last updated 3 days ago. The database was last exported 11 days ago. The current entry is not in any binding snapshot currently.

After you get an updated binding I recommend deleting and re-adding the Thing from OH so OH gets the new database information…

Yeah, thing is though Bruce the Bridge and Thing are fine. IT IS WORKING pal. I have updated binding :slight_smile:

It is the channels config I dont know how to write for Endpoint 1 and Endpoints 2 of the device - see above. I am searching the forums but cant fins an example of how to bind a channel to an endpoint of type SWITCH_BINARY.

Capitals to highlight key points - not shouting

It was all working through PaperUI and Discovery, but I am moving to files based config and not sure what to write. I dont know how to use REST API and dont have time right now to learn it just to add a channel line to a Thing. There must be another way, a quick way, using th Z-wave xml maybe:

[17:06:59] root@openhab:/home/openhabian# cat /var/lib/openhab2/zwave/network_e72762f2__node_3.xml
<node>
  <homeId>0xe72762f2</homeId>
  <nodeId>3</nodeId>
  <version>3</version>
  <manufacturer>0x2</manufacturer>
  <deviceId>0x2000</deviceId>
  <deviceType>0x8004</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>false</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>
    <commandClass>COMMAND_CLASS_MULTI_CHANNEL</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_PROPRIETARY</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
    <commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>
    <commandClass>COMMAND_CLASS_MARK</commandClass>
    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
  </nodeInformationFrame>
  <associationGroups class="concurrent-hash-map"/>
  <endpoints class="concurrent-hash-map">
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_STATIC_CONTROLLER</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_SWITCH_BINARY</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_NOT_USED</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses/>
        <supportedCommandClasses class="concurrent-hash-map">
          <entry>
            <commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>
            <COMMAND__CLASS__THERMOSTAT__SETPOINT>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <setpoints>
                <entry>
                  <setpointType>HEATING</setpointType>
                  <setpoint>
                    <setpointType>HEATING</setpointType>
                    <initialised>true</initialised>
                    <initCount>0</initCount>
                    <outer-class reference="../../../.."/>
                  </setpoint>
                </entry>
              </setpoints>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__THERMOSTAT__SETPOINT>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
            <COMMAND__CLASS__MULTI__CMD>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__MULTI__CMD>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
            <COMMAND__CLASS__NO__OPERATION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <libraryType>LIB_CONTROLLER_STATIC</libraryType>
              <protocolVersion>2.67</protocolVersion>
              <applicationVersion>5.5</applicationVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
            <COMMAND__CLASS__ASSOCIATION>
              <version>1</version>
              <instances>1</instances>
              <control>true</control>
              <versionSupported>1</versionSupported>
              <maxGroups>0</maxGroups>
            </COMMAND__CLASS__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>
            <COMMAND__CLASS__SWITCH__BINARY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__SWITCH__BINARY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MULTI_CHANNEL</commandClass>
            <COMMAND__CLASS__MULTI__CHANNEL>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <useDestEndpointAsSource>false</useDestEndpointAsSource>
              <endpointsAreTheSameDeviceClass>true</endpointsAreTheSameDeviceClass>
            </COMMAND__CLASS__MULTI__CHANNEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
            <COMMAND__CLASS__WAKE__UP>
              <version>2</version>
              <instances>1</instances>
              <control>true</control>
              <versionSupported>2</versionSupported>
              <targetNodeId>0</targetNodeId>
              <interval>0</interval>
              <minInterval>0</minInterval>
              <maxInterval>2147483647</maxInterval>
              <defaultInterval>0</defaultInterval>
              <intervalStep>0</intervalStep>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__WAKE__UP>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>
            <COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>
              <version>2</version>
              <instances>1</instances>
              <control>true</control>
              <versionSupported>2</versionSupported>
              <maxGroups>0</maxGroups>
            </COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>2</deviceManufacturer>
              <deviceType>32772</deviceType>
              <deviceId>8192</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
    <entry>
      <int>1</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_STATIC_CONTROLLER</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_SWITCH_BINARY</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_NOT_USED</specificDeviceClass>
        </deviceClass>
        <endpointId>1</endpointId>
        <secureCommandClasses/>
        <supportedCommandClasses class="concurrent-hash-map">
          <entry>
            <commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>
            <COMMAND__CLASS__THERMOSTAT__SETPOINT>
              <endpoint reference="../../../.."/>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <setpoints>
                <entry>
                  <setpointType>HEATING</setpointType>
                  <setpoint>
                    <setpointType>HEATING</setpointType>
                    <initialised>true</initialised>
                    <initCount>0</initCount>
                    <outer-class reference="../../../.."/>
                  </setpoint>
                </entry>
              </setpoints>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__THERMOSTAT__SETPOINT>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>
            <COMMAND__CLASS__SWITCH__BINARY>
              <endpoint reference="../../../.."/>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__SWITCH__BINARY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <endpoint reference="../../../.."/>
              <version>0</version>
              <instances>0</instances>
              <control>false</control>
              <versionSupported>0</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
    <entry>
      <int>2</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_STATIC_CONTROLLER</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_SWITCH_BINARY</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_NOT_USED</specificDeviceClass>
        </deviceClass>
        <endpointId>2</endpointId>
        <secureCommandClasses/>
        <supportedCommandClasses class="concurrent-hash-map">
          <entry>
            <commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>
            <COMMAND__CLASS__THERMOSTAT__SETPOINT>
              <endpoint reference="../../../.."/>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <setpoints>
                <entry>
                  <setpointType>HEATING</setpointType>
                  <setpoint>
                    <setpointType>HEATING</setpointType>
                    <initialised>true</initialised>
                    <initCount>0</initCount>
                    <outer-class reference="../../../.."/>
                  </setpoint>
                </entry>
              </setpoints>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__THERMOSTAT__SETPOINT>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>
            <COMMAND__CLASS__SWITCH__BINARY>
              <endpoint reference="../../../.."/>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__SWITCH__BINARY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <endpoint reference="../../../.."/>
              <version>0</version>
              <instances>0</instances>
              <control>false</control>
              <versionSupported>0</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors>
    <int>1</int>
  </nodeNeighbors>
  <lastReceived>2020-01-09 17:06:54.188 UTC</lastReceived>
</node>[17:08:01] root@openhab:/home/openhabian# cat /var/lib/openhab2/zwave/network_e72762f2__node_3.xml

This is what I have but its not working - syntax error.


Bridge zwave:serial_zstick:t_Zcontroller "Z-Wave serial controller" @ "Z-Wave" [ port="/dev/ttyACM0", controller_softreset="false", controller_master="true", heal_enable="true", security_networkkey="AF 5B A0 8B 38 31 78 52 FC C2 08 14 26 39 0D C7" ] {
   Thing zwave:4849599d:t_Zcontroller:t_Danfoss_RX2 "Danfoss RX2 RF Programmer" (zwave:serial_zstick:t_Zcontroller) @ "Z-Wave"     [node_id=3 ] {
        Channels:
/* THE FOLLOWING LINES ARE THROWING AN ERROR */
                Type Switch_Binary : HeatSW   "HW Switch" /* need to access Endpoint 1 */
                Type Switch_Binary : HeatCH   "CH Switch" /* need to access Endpoint 2 */
   }
} 

That is automatically done by the binding database entry. If you are impatient you can try this but do not blame us if it fails.

xml should be here.
https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/1189?layout=openhab2new

I am completely baffledby the config system, because, I commented out the Thing definition for the Thermostat from the Bridge, so now I just have:

Bridge zwave:serial_zstick:t_Zcontroller "Z-Wave serial controller" @ "Z-Wave" [ port="/dev/ttyACM0", controller_softreset="false", controller_master="true", heal_enable="true", security_networkkey="AF 5B A0 8B 38 31 78 52 FC C2 08 14 26 39 0D C7" ] {
/*
   Thing zwave:4849599d:t_Zcontroller:t_Danfoss_RX2 "Danfoss RX2 RF Programmer" (zwave:serial_zstick:t_Zcontroller) @ "Z-Wave"     [node_id=3 ] {
        Channels:
                Type Switch_Binary : Mech_Vent_High   "HW Switch"  {zwave:device:t_Zcontroller:node3:switch_binary1}
   }
*/
} 

Then, I created a new item using IDs for the channel binding

Switch CH "CH" {
    channel = "zwave:4849599d:t_Zcontroller:node3:swtich_binary1"
}

Now OH seems to be pulling the channels from discovery of the device with ID 4849599d: , and, now correctly creates a new Thing for the thermostat switch and lists all the channels for me. But I wanted to define the channels myself so the config is in files.

Anyway, ut’s working so I shall leave it for a guru to explain what’s going on.

I’m lost now and head hurts so Im going for a pint :slight_smile:

Yes, and you link the channels you wish to use to Items. You query & control the Item, not the channel directly.

It appears I perhaps was not clear.

I have channel definitions im my mqqt broker generic thing, in the .things file , so initially that would seem to counter your statement?

In the same vane, I wanted to define channels, for my z-wave device Thing…but, i cannot find anywhere, the syntax for defining the z-wave device channels , inside the z-wave device Thing, inside the z-wave controller bridge.

Moving the channel defintition out if my Thing and into an item’s channel binding works, but i wanted to create the link manually in .items/.things files.

catch my drift?

Yes I do.
You cannot because it is defined in the Z-Wave database base off the NIF Frame information gathered from the device. We do not usually create the channels either. That is determined by the device firmware programmers.
OH dumps the NIF information into an XML file. We take that Endpoint and Channel data and add the Group and Configuration Parameters that are not in the NIF Frame.

ah, ok, that is a logical explanation. No wonder I couldn’t configure it , as desired