openhab-docs/v2.1/addons/bindings/zwave1
Yannick Schaus 0965e5ec24 Revert "Clean up the master branch"
This reverts commit bad6b47ef9.

Signed-off-by: Yannick Schaus <habpanel@schaus.net>
2018-06-14 16:43:24 +02:00
..
readme.html Revert "Clean up the master branch" 2018-06-14 16:43:24 +02:00

readme.html

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  



  <!--<link rel="shortcut icon" href="https://www.openhab.org/favicon.png"></link>-->
  <title>Z-Wave - Bindings - openHAB 2 - Empowering the Smart Home</title>

  <!-- CSS -->
  <link type="text/css" rel="stylesheet" href="/v2.1/css/materialize.css" media="screen,projection" />
  <link type="text/css" rel="stylesheet" href="/v2.1/css/pygments-jekyll-style.css" />
  <link type="text/css" rel="stylesheet" href="/v2.1/css/styles.css" />
  <link type="text/css" rel="stylesheet" href="/v2.1/css/openhab.css" />
  <link type="text/css" rel="stylesheet" href="/v2.1/css/collapsible.css" />

  <!-- Font -->
  <link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
  <link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400,700" />
  <link rel="canonical" href="http://docs.openhab.org/addons/bindings/zwave1/readme.html" />
  <script type="text/javascript">var gaProperty = 'UA-47717934-3';var disableStr = 'ga-disable-' + gaProperty;if (document.cookie.indexOf(disableStr + '=true') > -1) {window[disableStr] = true;}</script>
  <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-47717934-3', 'auto');
  ga('set', 'anonymizeIp', true);
  ga('send', 'pageview');
  </script>
</head>


<body class="documentation">
  <div id="header" class="navbar-fixed">
    <nav role="navigation">
      <div class="container">
        <div class="nav-wrapper">
          <a href="/v2.1/index.html"><img id="logo" src="/images/logo.png" /></a>
          <a href="#" data-activates="nav-mobile" class="button-collapse"><i class="material-icons">menu</i></a>
          <ul class="right hide-on-med-and-down">
            <li><a href="/tutorials/index.html">Tutorials</a></li>
            <li><a href="/v2.1/introduction.html">User Manual</a></li>
            <li><a href="/developers/index.html">Developer Guide</a></li>
            <li><a target="_blank" href="https://community.openhab.org">Community Forum</a></li>
            <li><a target="_blank" href="https://github.com/openhab">GitHub</a></li>
            <li class="search"><i class="material-icons">search</i></li>
            <li class="search">
              <form method="GET" id="searchform" class="search-form" action="/search">
                <input id="query" name="q" type="text" class="search-form-input" placeholder="search" />
              </form>
            </li>
          </ul>
          <ul id="nav-mobile" class="side-nav">
            <li><a href="/v2.1/index.html">Home</a></li>
            <li><a href="/tutorials/index.html">Tutorials</a></li>
            <li><a href="/v2.1/introduction.html">User Manual</a></li>
            <li><a href="/developers/index.html">Developer Guide</a></li>
            <li><a target="_blank" href="https://community.openhab.org">Community Forum</a></li>
            <li><a target="_blank" href="https://github.com/openhab">GitHub</a></li>
            <li class="search">
              <form method="GET" id="searchformmob" class="search-form" action="/search">
                <input id="querymob" name="q" type="text" class="search-form-input" placeholder="search" />
              </form>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </div>


<section id="documentation" class="text content-wrapper">
  <div class="container">
    <div class="side-nav-wrapper">
      





<ul class="nav">
  <li><a href="/v2.1/introduction.html">Introduction</a></li>
  <li><a href="/v2.1/concepts/index.html">Concepts</a>
    <ul>
      <li><a href="/v2.1/concepts/index.html">Overview</a></li>
      <hr />
      <li><a href="/v2.1/concepts/things.html">Things</a></li>
      <li><a href="/v2.1/concepts/items.html">Items</a></li>
      <li><a href="/v2.1/concepts/discovery.html">Inbox &amp; Discovery</a></li>
      <li><a href="/v2.1/concepts/audio.html">Audio &amp; Voice</a></li>
    </ul>
  </li>
  <li><a href="/v2.1/installation/index.html">Installation</a>
    <ul>
      <li><a href="/v2.1/installation/index.html">Overview</a></li>
      <hr />
      <li><a href="/v2.1/installation/linux.html">Linux</a></li>
      <li><a href="/v2.1/installation/windows.html">Windows</a></li>
      <li><a href="/v2.1/installation/macosx.html">Mac OS X</a></li>
      <hr />
      <li><a href="/v2.1/installation/openhabian.html">openHABian</a></li>
      <li><a href="/v2.1/installation/docker.html">Docker</a></li>
      <hr />
      <li><a href="/v2.1/installation/rasppi.html">Raspberry Pi</a></li>
      <li><a href="/v2.1/installation/pine.html">Pine A64</a></li>
      <li><a href="/v2.1/installation/synology.html">Synology DiskStation</a></li>
      <li><a href="/v2.1/installation/qnap.html">QNAP NAS</a></li>
      <hr />
      <li><a href="/v2.1/installation/designer.html">SmartHome Designer</a></li>
      <li><a href="/v2.1/installation/security.html">Security &amp; Remote Access</a></li>
      <li><a href="http://www.myopenhab.org">myopenHAB</a></li>
    </ul>
  </li>
  <li><a href="/v2.1/configuration/index.html">Configuration</a>
    <ul>
      <li><a href="/v2.1/configuration/index.html">Overview</a></li>
      <hr />
      <li><a href="/v2.1/configuration/things.html">Things</a></li>
      <li><a href="/v2.1/configuration/items.html">Items</a></li>
      <li><a href="/v2.1/configuration/sitemaps.html">Sitemaps</a></li>
      <li><a href="/v2.1/configuration/transform.html">Transformations</a></li>
      <li><a href="/v2.1/configuration/persistence.html">Persistence</a></li>
      <li><a href="/v2.1/configuration/rules-dsl.html">Rules</a></li>
      <li><a href="/v2.1/configuration/services.html">Services</a></li>
      <hr />
      <li><a href="/v2.1/configuration/packages.html">Initial Setup Packages</a></li>
      <li><a href="/v2.1/configuration/paperui.html">Paper UI</a></li>
      <li><a href="/v2.1/configuration/habmin.html">HABmin</a></li>
      <li><a href="/v2.1/configuration/rules-ng.html">Rules (Experimental)</a></li>
      <hr />
      <li><a href="/v2.1/configuration/multimedia.html">Audio &amp; Voice</a></li>
    </ul>
  </li>
  <li><a href="/v2.1/addons/index.html">Add-ons</a>
    <ul>
      <li><a href="/v2.1/addons/index.html">Overview</a></li>
      <hr />
      <li><a href="/v2.1/addons/bindings.html">Bindings</a>
        <ul>
          <li><a href="/v2.1/addons/bindings.html">Overview</a></li>
          <hr />
          
          <li><a href="/v2.1/addons/bindings/airquality/readme.html">Air Quality</a></li>
          
          <li><a href="/v2.1/addons/bindings/akm8681/readme.html">AKM868</a></li>
          
          <li><a href="/v2.1/addons/bindings/alarmdecoder1/readme.html">Alarm Decoder</a></li>
          
          <li><a href="/v2.1/addons/bindings/allplay/readme.html">AllPlay</a></li>
          
          <li><a href="/v2.1/addons/bindings/amazondashbutton/readme.html">Amazon Dash Button</a></li>
          
          <li><a href="/v2.1/addons/bindings/anel1/readme.html">Anel NET-PwrCtrl</a></li>
          
          <li><a href="/v2.1/addons/bindings/asterisk1/readme.html">Asterisk</a></li>
          
          <li><a href="/v2.1/addons/bindings/astro/readme.html">Astro</a></li>
          
          <li><a href="/v2.1/addons/bindings/astro1/readme.html">Astro</a></li>
          
          <li><a href="/v2.1/addons/bindings/atlona/readme.html">Atlona</a></li>
          
          <li><a href="/v2.1/addons/bindings/autelis/readme.html">Autelis Pool Control</a></li>
          
          <li><a href="/v2.1/addons/bindings/autelis1/readme.html">Autelis</a></li>
          
          <li><a href="/v2.1/addons/bindings/avmfritz/readme.html">AVM FRITZ!</a></li>
          
          <li><a href="/v2.1/addons/bindings/benqprojector1/readme.html">BenQ Projector</a></li>
          
          <li><a href="/v2.1/addons/bindings/bigassfan/readme.html">BigAssFan</a></li>
          
          <li><a href="/v2.1/addons/bindings/bluetooth1/readme.html">Bluetooth</a></li>
          
          <li><a href="/v2.1/addons/bindings/boschindego/readme.html">Bosch Indego</a></li>
          
          <li><a href="/v2.1/addons/bindings/bticino1/readme.html">Bticino</a></li>
          
          <li><a href="/v2.1/addons/bindings/caldav-command1/readme.html">CalDAV Command</a></li>
          
          <li><a href="/v2.1/addons/bindings/caldav-personal1/readme.html">CalDAV Personal</a></li>
          
          <li><a href="/v2.1/addons/bindings/chromecast/readme.html">Chromecast</a></li>
          
          <li><a href="/v2.1/addons/bindings/comfoair1/readme.html">ComfoAir</a></li>
          
          <li><a href="/v2.1/addons/bindings/configadmin1/readme.html">ConfigAdmin</a></li>
          
          <li><a href="/v2.1/addons/bindings/coolmasternet/readme.html">CoolMasterNet</a></li>
          
          <li><a href="/v2.1/addons/bindings/cups1/readme.html">CUPS</a></li>
          
          <li><a href="/v2.1/addons/bindings/daikin1/readme.html">Daikin</a></li>
          
          <li><a href="/v2.1/addons/bindings/davis1/readme.html">Davis</a></li>
          
          <li><a href="/v2.1/addons/bindings/ddwrt1/readme.html">DD-WRT</a></li>
          
          <li><a href="/v2.1/addons/bindings/denon1/readme.html">Denon</a></li>
          
          <li><a href="/v2.1/addons/bindings/digitalstrom/readme.html">digitalSTROM</a></li>
          
          <li><a href="/v2.1/addons/bindings/digitalstrom1/readme.html">digitalSTROM</a></li>
          
          <li><a href="/v2.1/addons/bindings/diyonxbee1/readme.html">DIYOnXBee</a></li>
          
          <li><a href="/v2.1/addons/bindings/dlinksmarthome/readme.html">D-Link Smart Home</a></li>
          
          <li><a href="/v2.1/addons/bindings/dmx1/readme.html">DMX</a></li>
          
          <li><a href="/v2.1/addons/bindings/dscalarm/readme.html">DSC Alarm</a></li>
          
          <li><a href="/v2.1/addons/bindings/dscalarm1/readme.html">DSC PowerSeries Alarm System</a></li>
          
          <li><a href="/v2.1/addons/bindings/dsmr1/readme.html">DSMR</a></li>
          
          <li><a href="/v2.1/addons/bindings/ebus1/readme.html">eBUS</a></li>
          
          <li><a href="/v2.1/addons/bindings/ecobee1/readme.html">Ecobee</a></li>
          
          <li><a href="/v2.1/addons/bindings/ecotouch1/readme.html">EcoTouch</a></li>
          
          <li><a href="/v2.1/addons/bindings/ekey1/readme.html">ekey</a></li>
          
          <li><a href="/v2.1/addons/bindings/energenie1/readme.html">Energenie</a></li>
          
          <li><a href="/v2.1/addons/bindings/enocean1/readme.html">EnOcean</a></li>
          
          <li><a href="/v2.1/addons/bindings/enphaseenergy1/readme.html">Enphase Energy</a></li>
          
          <li><a href="/v2.1/addons/bindings/epsonprojector1/readme.html">Epson Projector</a></li>
          
          <li><a href="/v2.1/addons/bindings/exec/readme.html">Exec</a></li>
          
          <li><a href="/v2.1/addons/bindings/exec1/readme.html">Exec</a></li>
          
          <li><a href="/v2.1/addons/bindings/expire1/readme.html">Expire</a></li>
          
          <li><a href="/v2.1/addons/bindings/fatekplc1/readme.html">Fatek PLC</a></li>
          
          <li><a href="/v2.1/addons/bindings/feed/readme.html">Feed</a></li>
          
          <li><a href="/v2.1/addons/bindings/fht1/readme.html">FHT</a></li>
          
          <li><a href="/v2.1/addons/bindings/folding/readme.html">Folding@home</a></li>
          
          <li><a href="/v2.1/addons/bindings/freebox/readme.html">Freebox</a></li>
          
          <li><a href="/v2.1/addons/bindings/freebox1/readme.html">Freebox</a></li>
          
          <li><a href="/v2.1/addons/bindings/freeswitch1/readme.html">FreeSWITCH</a></li>
          
          <li><a href="/v2.1/addons/bindings/fritzaha1/readme.html">Fritz AHA</a></li>
          
          <li><a href="/v2.1/addons/bindings/fritzbox1/readme.html">Fritz!Box</a></li>
          
          <li><a href="/v2.1/addons/bindings/fritzboxtr0641/readme.html">Fritzbox (using TR064 protocol)</a></li>
          
          <li><a href="/v2.1/addons/bindings/frontiersiliconradio1/readme.html">Frontier Silicon Radio</a></li>
          
          <li><a href="/v2.1/addons/bindings/fs201/readme.html">FS20</a></li>
          
          <li><a href="/v2.1/addons/bindings/fsinternetradio/readme.html">FS Internet Radio</a></li>
          
          <li><a href="/v2.1/addons/bindings/garadget1/readme.html">Garadget</a></li>
          
          <li><a href="/v2.1/addons/bindings/gardena/readme.html">Gardena</a></li>
          
          <li><a href="/v2.1/addons/bindings/gc100ir1/readme.html">Global Cache IR</a></li>
          
          <li><a href="/v2.1/addons/bindings/globalcache/readme.html">GlobalCache</a></li>
          
          <li><a href="/v2.1/addons/bindings/gpio1/readme.html">GPIO</a></li>
          
          <li><a href="/v2.1/addons/bindings/harmonyhub/readme.html">Logitech Harmony Hub</a></li>
          
          <li><a href="/v2.1/addons/bindings/harmonyhub1/readme.html">Harmony Hub</a></li>
          
          <li><a href="/v2.1/addons/bindings/hdanywhere/readme.html">HDanywhere</a></li>
          
          <li><a href="/v2.1/addons/bindings/hdanywhere1/readme.html">HDanywhere</a></li>
          
          <li><a href="/v2.1/addons/bindings/hdpowerview/readme.html">Hunter Douglas PowerView</a></li>
          
          <li><a href="/v2.1/addons/bindings/heatmiser1/readme.html">Heatmiser</a></li>
          
          <li><a href="/v2.1/addons/bindings/hms1/readme.html">HMS</a></li>
          
          <li><a href="/v2.1/addons/bindings/homematic/readme.html">Homematic</a></li>
          
          <li><a href="/v2.1/addons/bindings/homematic1/readme.html">Homematic</a></li>
          
          <li><a href="/v2.1/addons/bindings/horizon1/readme.html">Horizon mediabox</a></li>
          
          <li><a href="/v2.1/addons/bindings/http1/readme.html">HTTP</a></li>
          
          <li><a href="/v2.1/addons/bindings/hue/readme.html">Philips Hue</a></li>
          
          <li><a href="/v2.1/addons/bindings/hue1/readme.html">Hue</a></li>
          
          <li><a href="/v2.1/addons/bindings/iec6205621meter1/readme.html">IEC 62056-21 Meter</a></li>
          
          <li><a href="/v2.1/addons/bindings/ihc1/readme.html">IHC / ELKO</a></li>
          
          <li><a href="/v2.1/addons/bindings/insteonhub1/readme.html">Insteon Hub</a></li>
          
          <li><a href="/v2.1/addons/bindings/insteonplm1/readme.html">Insteon PLM</a></li>
          
          <li><a href="/v2.1/addons/bindings/intertechno1/readme.html">Intertechno</a></li>
          
          <li><a href="/v2.1/addons/bindings/ipp/readme.html">IPP</a></li>
          
          <li><a href="/v2.1/addons/bindings/ipx8001/readme.html">IPX800</a></li>
          
          <li><a href="/v2.1/addons/bindings/irtrans1/readme.html">IRTrans</a></li>
          
          <li><a href="/v2.1/addons/bindings/isy1/readme.html">Description</a></li>
          
          <li><a href="/v2.1/addons/bindings/jointspace1/readme.html">jointSPACE</a></li>
          
          <li><a href="/v2.1/addons/bindings/k80551/readme.html">Velleman k8055 USB IO Board</a></li>
          
          <li><a href="/v2.1/addons/bindings/keba/readme.html">Keba</a></li>
          
          <li><a href="/v2.1/addons/bindings/km2001/readme.html">KM200</a></li>
          
          <li><a href="/v2.1/addons/bindings/knx1/readme.html">KNX</a></li>
          
          <li><a href="/v2.1/addons/bindings/kodi/readme.html">Kodi</a></li>
          
          <li><a href="/v2.1/addons/bindings/kostalinverter/readme.html">Kostal Inverter</a></li>
          
          <li><a href="/v2.1/addons/bindings/koubachi1/readme.html">Koubachi</a></li>
          
          <li><a href="/v2.1/addons/bindings/lcn1/readme.html">LCN</a></li>
          
          <li><a href="/v2.1/addons/bindings/lgtv1/readme.html">LG TV</a></li>
          
          <li><a href="/v2.1/addons/bindings/lgtvserial/readme.html">LG TV control using serial protocol</a></li>
          
          <li><a href="/v2.1/addons/bindings/lifx/readme.html">LIFX</a></li>
          
          <li><a href="/v2.1/addons/bindings/lightwaverf1/readme.html">LightwaveRF</a></li>
          
          <li><a href="/v2.1/addons/bindings/lutron/readme.html">Lutron</a></li>
          
          <li><a href="/v2.1/addons/bindings/mailcontrol1/readme.html">MailControl</a></li>
          
          <li><a href="/v2.1/addons/bindings/max/readme.html">MAX!</a></li>
          
          <li><a href="/v2.1/addons/bindings/maxcube1/readme.html">MAX!Cube</a></li>
          
          <li><a href="/v2.1/addons/bindings/maxcul1/readme.html">MAX!CUL</a></li>
          
          <li><a href="/v2.1/addons/bindings/mcp230171/readme.html">MCP23017</a></li>
          
          <li><a href="/v2.1/addons/bindings/mcp34241/readme.html">MCP3424</a></li>
          
          <li><a href="/v2.1/addons/bindings/meteostick/readme.html">Meteostick</a></li>
          
          <li><a href="/v2.1/addons/bindings/miele/readme.html">Miele@home</a></li>
          
          <li><a href="/v2.1/addons/bindings/mihome/readme.html">Xiaomi Mi Smart Home</a></li>
          
          <li><a href="/v2.1/addons/bindings/milight/readme.html">Milight/Easybulb/Limitless</a></li>
          
          <li><a href="/v2.1/addons/bindings/milight1/readme.html">Milight</a></li>
          
          <li><a href="/v2.1/addons/bindings/minecraft/readme.html">Minecraft</a></li>
          
          <li><a href="/v2.1/addons/bindings/mios1/readme.html">MiOS Bridge</a></li>
          
          <li><a href="/v2.1/addons/bindings/mochadx101/readme.html">Mochad X10</a></li>
          
          <li><a href="/v2.1/addons/bindings/modbus1/readme.html">Modbus</a></li>
          
          <li><a href="/v2.1/addons/bindings/mpd1/readme.html">MPD</a></li>
          
          <li><a href="/v2.1/addons/bindings/mqtt1/readme.html">MQTT</a></li>
          
          <li><a href="/v2.1/addons/bindings/mqttitude1/readme.html">OwnTracks (formerly MQTTitude)</a></li>
          
          <li><a href="/v2.1/addons/bindings/myq1/readme.html">Chamberlain MyQ</a></li>
          
          <li><a href="/v2.1/addons/bindings/mystromecopower1/readme.html">Mystrom Eco Power</a></li>
          
          <li><a href="/v2.1/addons/bindings/neohub1/readme.html">NeoHub</a></li>
          
          <li><a href="/v2.1/addons/bindings/nest1/readme.html">Nest</a></li>
          
          <li><a href="/v2.1/addons/bindings/netatmo/readme.html">Netatmo</a></li>
          
          <li><a href="/v2.1/addons/bindings/netatmo1/readme.html">Netatmo</a></li>
          
          <li><a href="/v2.1/addons/bindings/network/readme.html">Network</a></li>
          
          <li><a href="/v2.1/addons/bindings/networkhealth1/readme.html">Network Health</a></li>
          
          <li><a href="/v2.1/addons/bindings/networkupstools1/readme.html">Network UPS Tools</a></li>
          
          <li><a href="/v2.1/addons/bindings/nibeheatpump1/readme.html">Nibe Heatpump</a></li>
          
          <li><a href="/v2.1/addons/bindings/nikobus1/readme.html">Nikobus</a></li>
          
          <li><a href="/v2.1/addons/bindings/nikohomecontrol/readme.html">Niko Home Control</a></li>
          
          <li><a href="/v2.1/addons/bindings/novelanheatpump1/readme.html">Novelan/Luxtronic Heat Pump</a></li>
          
          <li><a href="/v2.1/addons/bindings/ntp/readme.html">NTP</a></li>
          
          <li><a href="/v2.1/addons/bindings/ntp1/readme.html">Network Time Protocol (NTP)</a></li>
          
          <li><a href="/v2.1/addons/bindings/oceanic/readme.html">Oceanic</a></li>
          
          <li><a href="/v2.1/addons/bindings/omnilink1/readme.html">HAI/Leviton Omni and Lumina</a></li>
          
          <li><a href="/v2.1/addons/bindings/onebusaway/readme.html">OneBusAway</a></li>
          
          <li><a href="/v2.1/addons/bindings/onewire1/readme.html">OneWire</a></li>
          
          <li><a href="/v2.1/addons/bindings/onkyo/readme.html">Onkyo</a></li>
          
          <li><a href="/v2.1/addons/bindings/onkyo1/readme.html">Onkyo AV Receiver</a></li>
          
          <li><a href="/v2.1/addons/bindings/openenergymonitor1/readme.html">Open Energy Monitor</a></li>
          
          <li><a href="/v2.1/addons/bindings/openpaths1/readme.html">OpenPaths</a></li>
          
          <li><a href="/v2.1/addons/bindings/opensprinkler/readme.html">OpenSprinkler</a></li>
          
          <li><a href="/v2.1/addons/bindings/opensprinkler1/readme.html">OpenSprinkler</a></li>
          
          <li><a href="/v2.1/addons/bindings/orvibo/readme.html">Orvibo</a></li>
          
          <li><a href="/v2.1/addons/bindings/owserver1/readme.html">OWServer</a></li>
          
          <li><a href="/v2.1/addons/bindings/panasonictv1/readme.html">Panasonic TV</a></li>
          
          <li><a href="/v2.1/addons/bindings/panstamp1/readme.html">panStamp</a></li>
          
          <li><a href="/v2.1/addons/bindings/piface1/readme.html">Piface</a></li>
          
          <li><a href="/v2.1/addons/bindings/pilight1/readme.html">pilight</a></li>
          
          <li><a href="/v2.1/addons/bindings/pioneeravr/readme.html">PioneerAVR Configuration</a></li>
          
          <li><a href="/v2.1/addons/bindings/pioneeravr1/readme.html">Pioneer AV Receiver (1.x)</a></li>
          
          <li><a href="/v2.1/addons/bindings/plcbus1/readme.html">PLCBus</a></li>
          
          <li><a href="/v2.1/addons/bindings/plclogo1/readme.html">PLCLogo</a></li>
          
          <li><a href="/v2.1/addons/bindings/plex1/readme.html">Plex</a></li>
          
          <li><a href="/v2.1/addons/bindings/plugwise1/readme.html">Plugwise</a></li>
          
          <li><a href="/v2.1/addons/bindings/powerdoglocalapi1/readme.html">PowerDog Local API</a></li>
          
          <li><a href="/v2.1/addons/bindings/powermax1/readme.html">Visonic Powermax</a></li>
          
          <li><a href="/v2.1/addons/bindings/primare1/readme.html">Primare</a></li>
          
          <li><a href="/v2.1/addons/bindings/pulseaudio/readme.html">Pulseaudio</a></li>
          
          <li><a href="/v2.1/addons/bindings/pulseaudio1/readme.html">Pulseaudio</a></li>
          
          <li><a href="/v2.1/addons/bindings/rfxcom/readme.html">RFXCOM</a></li>
          
          <li><a href="/v2.1/addons/bindings/rfxcom1/readme.html">RFXCOM</a></li>
          
          <li><a href="/v2.1/addons/bindings/rme/readme.html">RME</a></li>
          
          <li><a href="/v2.1/addons/bindings/rpircswitch1/readme.html">Raspberry Pi RC Switch</a></li>
          
          <li><a href="/v2.1/addons/bindings/russound/readme.html">Russound</a></li>
          
          <li><a href="/v2.1/addons/bindings/rwesmarthome1/readme.html">RWE SmartHome</a></li>
          
          <li><a href="/v2.1/addons/bindings/sagercaster1/readme.html">Sager Weathercaster</a></li>
          
          <li><a href="/v2.1/addons/bindings/sallegra1/readme.html">Sallegra</a></li>
          
          <li><a href="/v2.1/addons/bindings/samsungac1/readme.html">Samsung Air Conditioner</a></li>
          
          <li><a href="/v2.1/addons/bindings/samsungtv/readme.html">Samsung TV</a></li>
          
          <li><a href="/v2.1/addons/bindings/samsungtv1/readme.html">Samsung TV</a></li>
          
          <li><a href="/v2.1/addons/bindings/sapp1/readme.html">Picnet Sapp</a></li>
          
          <li><a href="/v2.1/addons/bindings/satel1/readme.html">Satel Integra Alarm System</a></li>
          
          <li><a href="/v2.1/addons/bindings/sensebox/readme.html">senseBox</a></li>
          
          <li><a href="/v2.1/addons/bindings/serial1/readme.html">Serial</a></li>
          
          <li><a href="/v2.1/addons/bindings/silvercrestwifisocket/readme.html">Silvercrest Wifi Plug</a></li>
          
          <li><a href="/v2.1/addons/bindings/sleepiq/readme.html">SleepIQ</a></li>
          
          <li><a href="/v2.1/addons/bindings/smaenergymeter/readme.html">SMA Energy Meter</a></li>
          
          <li><a href="/v2.1/addons/bindings/smarthomatic1/readme.html">Smarthomatic</a></li>
          
          <li><a href="/v2.1/addons/bindings/snmp1/readme.html">SNMP</a></li>
          
          <li><a href="/v2.1/addons/bindings/sonance1/readme.html">Sonance</a></li>
          
          <li><a href="/v2.1/addons/bindings/sonos/readme.html">Sonos</a></li>
          
          <li><a href="/v2.1/addons/bindings/sonos1/readme.html">Sonos</a></li>
          
          <li><a href="/v2.1/addons/bindings/souliss1/readme.html">Souliss</a></li>
          
          <li><a href="/v2.1/addons/bindings/squeezebox/readme.html">Logitech Squeezebox</a></li>
          
          <li><a href="/v2.1/addons/bindings/squeezebox1/readme.html">Squeezebox</a></li>
          
          <li><a href="/v2.1/addons/bindings/stiebelheatpump1/readme.html">Stiebel Eltron LWZ</a></li>
          
          <li><a href="/v2.1/addons/bindings/swegonventilation1/readme.html">Swegon Ventilation</a></li>
          
          <li><a href="/v2.1/addons/bindings/synopanalyzer/readme.html">Synop Analyzer</a></li>
          
          <li><a href="/v2.1/addons/bindings/systeminfo/readme.html">Systeminfo</a></li>
          
          <li><a href="/v2.1/addons/bindings/systeminfo1/readme.html">System Information</a></li>
          
          <li><a href="/v2.1/addons/bindings/tacmi1/readme.html">TACmi</a></li>
          
          <li><a href="/v2.1/addons/bindings/tankerkoenig/readme.html">Tankerkönig</a></li>
          
          <li><a href="/v2.1/addons/bindings/tcp1/readme.html">TCP & UDP</a></li>
          
          <li><a href="/v2.1/addons/bindings/tellstick/readme.html">Tellstick</a></li>
          
          <li><a href="/v2.1/addons/bindings/tellstick1/readme.html">Tellstick</a></li>
          
          <li><a href="/v2.1/addons/bindings/tesla/readme.html">Tesla</a></li>
          
          <li><a href="/v2.1/addons/bindings/tinkerforge1/readme.html">TinkerForge</a></li>
          
          <li><a href="/v2.1/addons/bindings/tivo1/readme.html">TiVo</a></li>
          
          <li><a href="/v2.1/addons/bindings/toon/readme.html">Toon</a></li>
          
          <li><a href="/v2.1/addons/bindings/tradfri/readme.html">Trådfri</a></li>
          
          <li><a href="/v2.1/addons/bindings/ucprelayboard1/readme.html">UCProjects.eu Relay Board</a></li>
          
          <li><a href="/v2.1/addons/bindings/upb1/readme.html">UPB</a></li>
          
          <li><a href="/v2.1/addons/bindings/urtsi/readme.html">Somfy URTSI II</a></li>
          
          <li><a href="/v2.1/addons/bindings/urtsi1/readme.html">Somfy URTSI II</a></li>
          
          <li><a href="/v2.1/addons/bindings/vdr1/readme.html">Video Disk Recorder (VDR)</a></li>
          
          <li><a href="/v2.1/addons/bindings/vitotronic/readme.html">Vitotronic</a></li>
          
          <li><a href="/v2.1/addons/bindings/wago1/readme.html">WAGO</a></li>
          
          <li><a href="/v2.1/addons/bindings/weather1/readme.html">Weather</a></li>
          
          <li><a href="/v2.1/addons/bindings/wemo/readme.html">Belkin Wemo</a></li>
          
          <li><a href="/v2.1/addons/bindings/wemo1/readme.html">Wemo</a></li>
          
          <li><a href="/v2.1/addons/bindings/wifiled/readme.html">WiFi LED</a></li>
          
          <li><a href="/v2.1/addons/bindings/windcentrale/readme.html">Windcentrale</a></li>
          
          <li><a href="/v2.1/addons/bindings/withings1/readme.html">Withings</a></li>
          
          <li><a href="/v2.1/addons/bindings/wol1/readme.html">Wake-on-LAN</a></li>
          
          <li><a href="/v2.1/addons/bindings/wr32231/readme.html">WR3223 ventilation controller</a></li>
          
          <li><a href="/v2.1/addons/bindings/xbmc1/readme.html">XBMC binding (for KODI) (1.x)</a></li>
          
          <li><a href="/v2.1/addons/bindings/xpl1/readme.html">xPL</a></li>
          
          <li><a href="/v2.1/addons/bindings/yahooweather/readme.html">YahooWeather</a></li>
          
          <li><a href="/v2.1/addons/bindings/yamahareceiver/readme.html">Yamahareceiver</a></li>
          
          <li><a href="/v2.1/addons/bindings/yamahareceiver1/readme.html">Yamaha Receiver (1.x)</a></li>
          
          <li><a href="/v2.1/addons/bindings/zibase1/readme.html">Zibase</a></li>
          
          <li><a href="/v2.1/addons/bindings/zigbee/readme.html">ZigBee</a></li>
          
          <li><a href="/v2.1/addons/bindings/zoneminder/readme.html">Zoneminder</a></li>
          
          <li><a href="/v2.1/addons/bindings/zwave/readme.html">ZWave</a></li>
          
          <li><a href="/v2.1/addons/bindings/zwave1/readme.html">Z-Wave</a></li>
          
          <li><a href="/v2.1/addons/bindings/zway/readme.html">Z-Way</a></li>
          
        </ul>
      </li>
      <li><a href="/v2.1/addons/uis.html">User Interfaces</a>
        <ul>
          <li><a href="/v2.1/addons/uis.html">Overview</a></li>
          <hr />
          
          <li><a href="/v2.1/addons/uis/basic/readme.html">Basic UI</a></li>
          
          <li><a href="/v2.1/addons/uis/classic/readme.html">Classic UI</a></li>
          
          <li><a href="/v2.1/addons/uis/habmin/readme.html">HABmin</a></li>
          
          <li><a href="/v2.1/addons/uis/habpanel/readme.html">HABPanel</a></li>
          
          <li><a href="/v2.1/addons/uis/paper/readme.html">Paper UI</a></li>
          
          <hr />
          <li><a href="/v2.1/addons/uis/apps/android.html">Android openHAB App</a></li>
          <li><a href="/v2.1/addons/uis/apps/ios.html">iOS openHAB App</a></li>
          <li><a href="/v2.1/addons/uis/apps/windows.html">Windows 10 openHAB App</a></li>
          <hr />
          <li><a href="/v2.1/addons/iconsets/classic/readme.html">Iconset (classic)</a></li>
        </ul>
      </li>
      <li><a href="/v2.1/addons/persistence.html">Persistence</a>
        <ul>
          <li><a href="/v2.1/addons/persistence.html">Overview</a></li>
          <hr />
          
          <li><a href="/v2.1/addons/persistence/caldav/readme.html">CalDAV</a></li>
          
          <li><a href="/v2.1/addons/persistence/cosm/readme.html">Xively (formerly Cosm)</a></li>
          
          <li><a href="/v2.1/addons/persistence/db4o/readme.html">db4o</a></li>
          
          <li><a href="/v2.1/addons/persistence/dynamodb/readme.html">Amazon DynamoDB</a></li>
          
          <li><a href="/v2.1/addons/persistence/exec/readme.html">Exec</a></li>
          
          <li><a href="/v2.1/addons/persistence/influxdb/readme.html">InfluxDB (0.9 and newer)</a></li>
          
          <li><a href="/v2.1/addons/persistence/influxdb08/readme.html">InfluxDB (up to 0.8.x)</a></li>
          
          <li><a href="/v2.1/addons/persistence/jdbc/readme.html">JDBC</a></li>
          
          <li><a href="/v2.1/addons/persistence/jpa/readme.html">Java Persistence API (JPA)</a></li>
          
          <li><a href="/v2.1/addons/persistence/mapdb/readme.html">mapdb</a></li>
          
          <li><a href="/v2.1/addons/persistence/mongodb/readme.html">MongoDB</a></li>
          
          <li><a href="/v2.1/addons/persistence/mqtt/readme.html">MQTT</a></li>
          
          <li><a href="/v2.1/addons/persistence/mysql/readme.html">MySQL</a></li>
          
          <li><a href="/v2.1/addons/persistence/rrd4j/readme.html">rrd4j</a></li>
          
          <li><a href="/v2.1/addons/persistence/sense/readme.html">Sen.Se</a></li>
          
          <li><a href="/v2.1/addons/persistence/sitewhere/readme.html">SiteWhere</a></li>
          
        </ul>
      </li>
      <li><a href="/v2.1/addons/actions.html">Actions</a>
        <ul>
          <li><a href="/v2.1/addons/actions.html">Overview</a></li>
          <hr />
          
          <li><a href="/v2.1/addons/actions/astro/readme.html">Astro</a></li>
          
          <li><a href="/v2.1/addons/actions/ciscospark/readme.html">Cisco Spark</a></li>
          
          <li><a href="/v2.1/addons/actions/dscalarm/readme.html">DSC Alarm</a></li>
          
          <li><a href="/v2.1/addons/actions/ecobee/readme.html">Ecobee</a></li>
          
          <li><a href="/v2.1/addons/actions/harmonyhub/readme.html">Logitech Harmony Hub</a></li>
          
          <li><a href="/v2.1/addons/actions/homematic/readme.html">Homematic</a></li>
          
          <li><a href="/v2.1/addons/actions/mail/readme.html">Mail</a></li>
          
          <li><a href="/v2.1/addons/actions/mios/readme.html">MiOS</a></li>
          
          <li><a href="/v2.1/addons/actions/mqtt/readme.html">MQTT</a></li>
          
          <li><a href="/v2.1/addons/actions/nma/readme.html">NotifyMyAndroid</a></li>
          
          <li><a href="/v2.1/addons/actions/openwebif/readme.html">OpenWebIf</a></li>
          
          <li><a href="/v2.1/addons/actions/pebble/readme.html">Pebble</a></li>
          
          <li><a href="/v2.1/addons/actions/prowl/readme.html">Prowl</a></li>
          
          <li><a href="/v2.1/addons/actions/pushover/readme.html">Pushover</a></li>
          
          <li><a href="/v2.1/addons/actions/pushsafer/readme.html">Pushsafer</a></li>
          
          <li><a href="/v2.1/addons/actions/satel/readme.html">Satel</a></li>
          
          <li><a href="/v2.1/addons/actions/squeezebox/readme.html">Squeezebox</a></li>
          
          <li><a href="/v2.1/addons/actions/telegram/readme.html">Telegram</a></li>
          
          <li><a href="/v2.1/addons/actions/tinkerforge/readme.html">TinkerForge</a></li>
          
          <li><a href="/v2.1/addons/actions/twitter/readme.html">Twitter</a></li>
          
          <li><a href="/v2.1/addons/actions/weather/readme.html">Weather</a></li>
          
          <li><a href="/v2.1/addons/actions/xbmc/readme.html">XBMC</a></li>
          
          <li><a href="/v2.1/addons/actions/xmpp/readme.html">XMPP</a></li>
          
          <li><a href="/v2.1/addons/actions/xpl/readme.html">xPL</a></li>
          
        </ul>
      </li>
      <li><a href="/v2.1/addons/transformations.html">Transformations</a>
        <ul>
          <li><a href="/v2.1/addons/transformations.html">Overview</a></li>
          <hr />
          
          <li><a href="/v2.1/addons/transformations/exec/readme.html">Exec</a></li>
          
          <li><a href="/v2.1/addons/transformations/javascript/readme.html">JavaScript</a></li>
          
          <li><a href="/v2.1/addons/transformations/jsonpath/readme.html">JsonPath</a></li>
          
          <li><a href="/v2.1/addons/transformations/map/readme.html">Map</a></li>
          
          <li><a href="/v2.1/addons/transformations/regex/readme.html">RegEx</a></li>
          
          <li><a href="/v2.1/addons/transformations/scale/readme.html">Scale</a></li>
          
          <li><a href="/v2.1/addons/transformations/xpath/readme.html">XPath</a></li>
          
          <li><a href="/v2.1/addons/transformations/xslt/readme.html">XSLT</a></li>
          
        </ul>
      </li>
      <li><a href="/v2.1/addons/voice.html">Voice Services</a>
        <ul>
          <li><a href="/v2.1/addons/voice.html">Overview</a></li>
          <hr />
          
          <li><a href="/v2.1/addons/voice/mactts/readme.html">MacOS Text-to-Speech</a></li>
          
          <li><a href="/v2.1/addons/voice/marytts/readme.html">Mary Text-to-Speech</a></li>
          
          <li><a href="/v2.1/addons/voice/voicerss/readme.html">VoiceRSS Text-to-Speech</a></li>
          
        </ul>
      </li>
      <hr />
      <li><a href="/v2.1/addons/io.html">3rd Party Integration</a>
        <ul>
          <li><a href="/v2.1/addons/io.html">Overview</a></li>
          <hr />
          
          <li><a href="/v2.1/addons/io/dropbox/readme.html">Dropbox Synchronization</a></li>
          
          <li><a href="/v2.1/addons/io/gcal/readme.html">Google Calendar Scheduler</a></li>
          
          <li><a href="/v2.1/addons/io/homekit/readme.html">HomeKit Add-on</a></li>
          
          <li><a href="/v2.1/addons/io/hueemulation/readme.html">openHAB Hue Emulation</a></li>
          
          <li><a href="/v2.1/addons/io/imperihome/readme.html">ImperiHome integration service</a></li>
          
          <li><a href="/v2.1/addons/io/openhabcloud/readme.html">openHAB Cloud Connector</a></li>
          
          <hr />
          <li><a href="/v2.1/configuration/restdocs.html">REST API</a></li>
          <li><a href="http://www.myopenhab.org/" target="_blank">IFTTT</a></li>
        </ul>
      </li>
    </ul>
  </li>
  <li><a href="/v2.1/administration/index.html">Advanced Functionality</a>
    <ul>
      <li><a href="/v2.1/administration/index.html">Overview</a></li>
      <hr />
      <li><a href="/v2.1/administration/console.html">Console</a></li>
      <li><a href="/v2.1/administration/runtime.html">Runtime Commands</a></li>
      <li><a href="/v2.1/administration/bundles.html">Bundle Management</a></li>
      <li><a href="/v2.1/administration/logging.html">Logging</a></li>
      <hr />
      <li><a href="/v2.1/administration/jsondb.html">JsonDB Storage</a></li>
    </ul>
  </li>
  <li><a href="/v2.1/appendix/help.html">Community Guidance</a>
    <ul>
      <li><a href="/v2.1/appendix/help.html">Finding Help &amp; FAQs</a></li>
      <li><a href="/v2.1/appendix/contributing.html">Contributing</a></li>
    </ul>
  </li>
</ul>

    </div>
    




<div id="versioning" class="row valign-wrapper">
  <div class="col s12 right-align">
    <ul id="dropdown-versioning" class="dropdown-content">
      <li><a href="/v2.1/../addons/bindings/zwave1/readme.html">latest version</a></li>
      <li><a href="/v2.1/../v2.2/addons/bindings/zwave1/readme.html">v2.2</a></li>
      <li><a href="/v2.1/addons/bindings/zwave1/readme.html">v2.1<i class="tiny material-icons right">lens</i></a></li>
    </ul>
    <a class="btn dropdown-button grey lighten-1" href="#!" data-activates="dropdown-versioning" title="Select which version of this openHAB documentation article you want to read.">
      Switch Article Version<i class="material-icons right">arrow_drop_down</i>
    </a>
  </div>
</div>

    <div class="content">
      <!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->

<h1 id="z-wave-binding">Z-Wave Binding</h1>

<p>The openHAB Z-Wave binding allows you to connect to your Z-Wave wireless mesh network.  A Z-Wave network typically consists of one primary controller “stick”, zero or more additional controllers and zero or more Z-Wave enabled devices, e.g. dimmers, switches, sensors etc.</p>

<!-- MarkdownTOC depth=1 -->

<ul>
  <li><a href="#prerequisites">Prerequisites</a></li>
  <li><a href="#binding-configuration">Binding Configuration</a></li>
  <li><a href="#item-configuration">Item Configuration</a></li>
  <li><a href="#battery-devices-and-wakeup">Battery Devices and Wakeup</a></li>
  <li><a href="#database">Database</a></li>
  <li><a href="#logging">Logging</a></li>
  <li><a href="#examples">Examples</a></li>
  <li><a href="#z-wave-security-testing">Z-Wave Security Testing</a></li>
</ul>

<!-- /MarkdownTOC -->

<p>There is also a binding specifically for openHAB 2 <a href="http://docs.openhab.org/addons/bindings/zwave/readme.html">here</a>.</p>

<h2 id="prerequisites">Prerequisites</h2>

<p>Connection to the Z-Wave controller is done through the serial port of your host system. USB controllers typically create a virtual COM port to connect to the stick. Please write down the port name before configuring this binding. In case your port name changes dynamically and you want to use a symlink, see <a href="https://github.com/openhab/openhab1-addons/wiki/Samples-Tricks#how-to-configure-openhab-to-connect-to-device-symlinks-on-linux">Tricks</a>.</p>

<p>Initialization of the binding typically takes several seconds to minutes depending on the number of devices in the network. When battery operated devices are used the binding tries to reach the device first. After one minute the node is marked sleeping. On wake up of the device initialization will continue.</p>

<p><a href="https://github.com/cdjackson/HABmin">HABmin</a> can be used to configure devices (<a href="https://github.com/cdjackson/HABmin/wiki/Z-Wave-Configuration">setting configuration parameters and association groups</a>) directly within openHAB. Alternatively the <a href="https://code.google.com/p/openzwave-control-panel/">open-zwave control panel</a> is a good choice to set up your network. Commercial software like Homeseer can be used as well.</p>

<p><strong>For technical reference and implementation:</strong> Chris Jackson maintains an excellent technical resource for the ZWave binding on the <a href="https://github.com/cdjackson/HABmin/wiki/Z-Wave-Configuration">HABmin Wiki</a></p>

<h3 id="supported-controllers">Supported controllers</h3>

<p>The binding supports all controllers that implement the Z-Wave Serial API. A list of confirmed supported controllers is</p>

<table>
  <thead>
    <tr>
      <th>Controller</th>
      <th>Remarks</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Aeon Labs USB Z-Stick</td>
      <td>No remarks</td>
    </tr>
    <tr>
      <td>Aeon Labs USB Z-Stick Gen5</td>
      <td>Do NOT enable Soft Reset</td>
    </tr>
    <tr>
      <td>The Razberry-Zwave-Daughterboard</td>
      <td>See known issues</td>
    </tr>
    <tr>
      <td>Vision USB stick Z-wave</td>
      <td>Do NOT enable Soft Reset</td>
    </tr>
    <tr>
      <td>Z-Wave.me Z-StickC</td>
      <td>No remarks</td>
    </tr>
    <tr>
      <td>Z-Wave.me ZME-UZB1</td>
      <td>Do NOT enable Soft Reset</td>
    </tr>
    <tr>
      <td>Sigma UZB ZWave-Plus</td>
      <td>No Windows drivers ?</td>
    </tr>
  </tbody>
</table>

<p><strong>NOTE:</strong> Sigma UZB ZWave-Plus driver can be get there https://github.com/benoit934/drivers/blob/master/ZW050x_USB_VCP_PC_Driver.zip 
This is an official driver for the RS232 chip, you just have to install it manually using the inf file, actually working on Windows 7, probably any Windows version.</p>

<h2 id="binding-configuration">Binding Configuration</h2>

<p>First of all you need to introduce the port settings of your Z-Wave controller in the file <code class="highlighter-rouge">services/zwave.cfg</code>.</p>

<table>
  <thead>
    <tr>
      <th>Property</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>port</td>
      <td>value indicates the serial port on the host system to which the Z-Wave controller is connected, e.g. “COM1” on Windows, “/dev/ttyS0” or “/dev/ttyUSB0” on Linux or “/dev/tty.PL2303-0000103D” on Mac.<br />Note that some controllers register themselves as a modem (/dev/ttyACM) on Linux. In this case it is necessary to add user “openhab” to the group “dialout”. Else openHAB wont be able to access the controller.</td>
    </tr>
    <tr>
      <td>healtime</td>
      <td>Sets the hour of the day when a network heal will be performed. This will try to update the neighbor node list, associations and routes. The actual routing is performed by the controller.</td>
    </tr>
    <tr>
      <td>pollingQueue</td>
      <td>Sets the maximum number of frames in the polling queue at once. This avoids swamping the network with poll messages.</td>
    </tr>
    <tr>
      <td>aliveCheckPeriod</td>
      <td>Sets the time (in milliseconds) between each node health check message. This is used to periodically check if a node is alive.</td>
    </tr>
    <tr>
      <td>softReset</td>
      <td>Set to <code class="highlighter-rouge">true</code> to perform a soft reset on the controller during the heal, and when the binding starts. This can help solve some problems with the stick, but it can also cause some new controllers to lock up (eg the ZWave Plus controllers)</td>
    </tr>
    <tr>
      <td>masterController</td>
      <td>This option tells the binding that it is the main controller in the network.  This isnt necessarily the same as a primary controller - it simply means that your openhab binding is being used as the main network interface. If set to <code class="highlighter-rouge">true</code>, the binding will configure devices automatically to send some communications to the binding. This would include setting the wakeup class to send notifications to openhab, and set some associations so that the binding recieves notifications of configuration change or alarms.</td>
    </tr>
    <tr>
      <td>setSUC</td>
      <td>Set to <code class="highlighter-rouge">true</code> to set the controller to the special role of Static Update Controller, whereby it will be the keeper of the routing table from the primary controller and offer it to all other controllers in the network.</td>
    </tr>
    <tr>
      <td>networkKey</td>
      <td>See <a href="#z-wave-security-testing">Z-Wave Security Testing</a></td>
    </tr>
  </tbody>
</table>

<h2 id="item-configuration">Item Configuration</h2>

<p>The format of the binding configuration is simple and looks like this:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>zwave="&lt;nodeId&gt;[:&lt;endpointId&gt;][:command=&lt;command&gt;[,parameter=&lt;value&gt;][,parameter=&lt;value&gt;]...]"
</code></pre></div></div>

<p>where parts in <code class="highlighter-rouge">[square brackets]</code> indicate an optional component. Usually, only one item is bound to a device, but more items can be bound to a device as well, either for reporting variables, or in case the device consists of multiple endpoints / instances.</p>

<p>The <code class="highlighter-rouge">&lt;nodeId&gt;</code> indicates the number (in decimal notation) of the node, to which this item is bound. To find out your devices <code class="highlighter-rouge">&lt;nodeIds&gt;</code>, either look at the startup log of openHAB, or use other Z-Wave configuration programs like openzwave control panel to detect and configure your setup.</p>

<p>The <code class="highlighter-rouge">&lt;endpointId&gt;</code> is only required/allowed when using the <code class="highlighter-rouge">multi_instance</code> command class. In case a node consists of multiple instances or endpoints, the instance number can be specified using this value. The default value is not to use the <code class="highlighter-rouge">multi_instance</code> command class - the number must be positive and must not be 0. An example of a multi-endpoint device is the Fibaro FGS 221 double relay.</p>

<p>If youre not sure about endpoint numbering, look in the logs to see if sensor data is being correlated. You may see the following warning -:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[WARN ]  o.o.b.z.i.ZWaveActiveBinding[:459]- NODE 8: No item bound for event, endpoint = 0, command class = SENSOR_MULTILEVEL, value = 51, ignoring.
</code></pre></div></div>

<p>This indicates that the binding cant find an item linked to this sensor - often this is because the endpoint numbering is incorrect. If the warning above says endpoint = 0, then the binding string shouldnt include an endpoint number.</p>

<p>The <code class="highlighter-rouge">&lt;command&gt;</code> is optional, but recommended if you have multiple items bound to the same device, or the device reports multiple bits of information. Without the command class, the binding can not unambiguously differentiate different data, so it is recommended to provide a command class. Z-Wave nodes support functionality through command classes. A specific command class can be specified to use that specific functionality of the node. A node can contain multiple supported command classes. If the command is omitted, the best suitable command class for the item / node combination is automatically chosen.</p>

<p>Command classes may support parameters. A parameter is a name=value pair that configures some aspect of the command class on the node or in the binding.</p>

<h3 id="supported-command-classes">Supported Command Classes</h3>

<p>Each node in the network provides functionality in the form of Command Classes. The OpenHAB Z-Wave binding implements the same Command Classes to be able to use the nodes in the network. Not all Z-Wave Command classes are currently supported by the binding. The supported command classes are listed in the table below.</p>

<table>
  <thead>
    <tr>
      <th>Command Class</th>
      <th>Remarks</th>
      <th>Supported parameters</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>NO_OPERATION</td>
      <td>Used by the binding during initialization</td>
      <td> </td>
    </tr>
    <tr>
      <td>BASIC</td>
      <td>Provides basic SET and GET of the default node value</td>
      <td> </td>
    </tr>
    <tr>
      <td>HAIL</td>
      <td>Used by nodes to indicate that they want to be polled. The binding handles this automatically</td>
      <td> </td>
    </tr>
    <tr>
      <td>METER</td>
      <td>Used to get measurements from a node</td>
      <td><strong>meter_scale=value</strong> :  optional parameter to select the meter scale in case the meter supports multiple scales (and types). Value is one of the following <strong>textual</strong> values:<br />E_KWh (0, MeterType.ELECTRIC, “kWh”, “Energy”) <br />E_KVAh (1, MeterType.ELECTRIC, “kVAh”, “Energy”)<br />E_W(2, MeterType.ELECTRIC, “W”, “Power”)<br />E_Pulses (3, MeterType.ELECTRIC, “Pulses”, “Count”)<br />E_V (4, MeterType.ELECTRIC, “V”, “Voltage”)<br />E_A (5, MeterType.ELECTRIC, “A”, “Current”)<br />E_Power_Factor (6, MeterType.ELECTRIC, “Power Factor”, “Power Factor”)<br />G_Cubic_Meters (0, MeterType.GAS, “Cubic Meters”, “Volume”)<br />G_Cubic_Feet (1, MeterType.GAS, “Cubic Feet”, “Volume”)<br /> G_Pulses(3, MeterType.GAS, “Pulses”, “Count”)<br />W_Cubic_Meters (0, MeterType.WATER, “Cubic Meters”, “Volume”)<br />W_Cubic_Feet (1, MeterType.WATER, “Cubic Feet”, “Volume”)<br />W_Gallons (2, MeterType.WATER, “US gallons”, “Volume”)<br />W_Pulses (3, MeterType.WATER, “Pulses”, “Count”)</td>
    </tr>
    <tr>
      <td>METER_RESET</td>
      <td>Used to reset a meter back to 0</td>
      <td>To reset a meter use the “meter_reset=true” attribute on the meter.    When moving the switch from off to on it will reset the meter.<br />e.g.:<br /><code class="highlighter-rouge">Switch sReset { zwave="8:command=meter, meter_reset=true"}</code></td>
    </tr>
    <tr>
      <td>SWITCH_BINARY</td>
      <td>Used to bind directly to a SWITCH</td>
      <td> </td>
    </tr>
    <tr>
      <td>SWITCH_MULTILEVEL</td>
      <td>Used to bind directly to a DIMMER</td>
      <td>restore_last_value=true : restores the dimmer to its last value if an ON command is sent to the dimmer (as opposed to setting its value to 100%)</td>
    </tr>
    <tr>
      <td>SENSOR_BINARY</td>
      <td>Used to bind to a sensor.</td>
      <td><strong>sensor_type=value</strong> : optional parameter to select a sensor in case the node supports multiple sensors. Value is one of the following <strong>numerical</strong> values:<br />  1 = General Purpose<br />  2 = Smoke<br />  3 = Carbon Monoxide<br />  4 = Carbon Dioxide<br /> 5 = Heat<br /> 6 = Water<br />  7 = Freeze<br /> 8 = Tamper<br /> 9 = Aux<br />  10 = Door/Window<br /> 11 = Tilt<br />  12 = Motion<br />  13 = Glass Break</td>
    </tr>
    <tr>
      <td>SENSOR_MULTILEVEL</td>
      <td>Used to bind to e.g. a temperature sensor. Currently only single sensors are supported.</td>
      <td><strong>sensor_type=value</strong> : optional parameter to select a sensor in case the node supports multiple sensors. Value is one of the following <strong>numerical</strong> values:<br />1 = Temperature<br />2 = General<br />3 = Luminance<br />4 = Power<br />5 = RelativeHumidity<br />6 = Velocity<br />7 = Direction<br />8 = AtmosphericPressure<br />9 = BarometricPressure<br />10 = SolarRadiation<br />11 = DewPoint<br />12 = RainRate<br />13 = TideLevel<br />14 = Weight<br />15 = Voltage<br />16 = Current<br />17 = CO2<br />18 = AirFlow<br />19 = TankCapacity<br />20 = Distance<br />21 = AnglePosition<br />22 =Rotation<br />23 = WaterTemperature<br />24 = SoilTemperature<br />25 = SeismicIntensity<br />26 = SeismicMagnitude<br />27 = Ultraviolet<br />28 = ElectricalResistivity<br />29 = ElectricalConductivity<br />30 = Loudness<br />31 = Moisture<br />32 = MaxType</td>
    </tr>
    <tr>
      <td>MULTI_INSTANCE</td>
      <td>Used to channel commands to the right endpoint on multi-channel devices. See item configuration.</td>
      <td> </td>
    </tr>
    <tr>
      <td>MANUFACTURER_SPECIFIC</td>
      <td>Used to get manufacturer info from the device</td>
      <td> </td>
    </tr>
    <tr>
      <td>BATTERY</td>
      <td>Used to get the battery level from battery operated devices. See item configuration.</td>
      <td> </td>
    </tr>
    <tr>
      <td>WAKE_UP</td>
      <td>Used to respond to wake-up signals of battery operated devices.</td>
      <td> </td>
    </tr>
    <tr>
      <td>VERSION</td>
      <td>Used to get version info from a node.</td>
      <td> </td>
    </tr>
    <tr>
      <td>SENSOR_ALARM</td>
      <td>Used to get alarm info from sensors.</td>
      <td><em>alarm_type=value</em> : optional parameter to select an alarm type in case the node supports multiple alarms. Value is one of the following <strong>numerical</strong> values: <br />GENERAL(0, “General”)<br />SMOKE(1, “Smoke”)<br />CARBON_MONOXIDE(2, “Carbon Monoxide”)<br />CARBON_DIOXIDE(3, “Carbon Dioxide”)<br />HEAT(4, “Heat”)<br />FLOOD(5, “Flood”)</td>
    </tr>
    <tr>
      <td>SCENE_ACTIVATION</td>
      <td>Used to respond to Scene events.</td>
      <td>scene=xx to identify the scene to trigger on <br /> state=xx to set the item to the specified state (xx is an integer)</td>
    </tr>
    <tr>
      <td>ALARM</td>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <td>MULTI_CMD</td>
      <td>Used to send multiple command classes in a single packet.</td>
      <td> </td>
    </tr>
    <tr>
      <td>THERMOSTAT_MODE</td>
      <td>Used to get and set the mode (of Number type) of the thermostat</td>
      <td>numeric values translate to the following types <br />0 = “Off”<br />    1 = “Heat”<br />   2 = “Cool”<br />   3 = “Auto”<br />   4 = “Aux Heat”<br />   5 = “Resume”<br />   6 = “Fan Only”<br />   7 = “Furnace”<br />    8 = “Dry Air”<br />    9 = “Moist Air”<br />    10 = “Auto Changeover”<br />   11 = “Heat Econ”<br />   12 = “Cool Econ”<br />   13 = “Away”</td>
    </tr>
    <tr>
      <td>THERMOSTAT_OPERATING_STATE</td>
      <td>Used to get the operating state (of Number type) of the thermostat</td>
      <td>numeric values translate to the following types <br />    0 = “Idle”<br />    1 = “Heating”<br />    2 = “Cooling”<br />    3 = “Fan Only”<br />   4 = “Pending Heat”<br />   5 = “Pending Cool”<br />   6 = “Vent / Economizer”<br /></td>
    </tr>
    <tr>
      <td>THERMOSTAT_SETPOINT</td>
      <td>Used to get and set the setpoint of the thermostat</td>
      <td><strong>setpoint_type=value</strong> : parameter to select setpoint type, value is one of the following numerical values:<br />               1 = Heat <br />               2 = Cool <br /> *setpoint_scale=value** : parameter to select setpoint scale, value is one of the following numerical values:<br />               0 = Celsius <br />              1 = Fahrenheit <br /></td>
    </tr>
    <tr>
      <td>THERMOSTAT_FAN_MODE</td>
      <td>(since 1.6.0) Used to get the fan mode (of Number type) of the thermostat</td>
      <td>numeric values translate to the following types <br />                0 = “Auto Low”<br />   1 = “On Low”<br />   2 = “Auto High”<br />    3 = “On High”<br />    4 = “Unknown”<br />    5 = “Unknown”<br />    6 = “Circulate”<br /></td>
    </tr>
    <tr>
      <td>THERMOSTAT_FAN_STATE</td>
      <td>(since 1.6.0) Used to get the fan state (of Number type) of the thermostat</td>
      <td>numeric values translate to the following types <br />                0 = “Idle”<br />   1 = “Running”<br />    2 = “Running High”<br /></td>
    </tr>
    <tr>
      <td>CONFIGURATION</td>
      <td>Used to set configuration parameters. Normally, this is done through HABmin as most configuration is static, but some devices have parameters that need to be changed via a rule or sitemap.</td>
      <td>Use the “parameter=” option in the binding string to set the parameter number linked to this item.</td>
    </tr>
    <tr>
      <td>INFO</td>
      <td>This is not a real zwave command class, but can be used to get information from the binding about a node and its state.</td>
      <td>Controller only:<br />HOME_ID<br />SOF<br />CAN<br />NAK<br />OOF<br />ACK<br />TIME_OUT<br />TX_QUEUE<br /><br />All Nodes:<br />NODE_ID<br />LISTENING<br />DEAD<br />ROUTING<br />VERSION<br />BASIC<br />BASIC_LABEL<br />GENERIC<br />GENERIC_LABEL<br />SPECIFIC<br />SPECIFIC_LABEL<br />MANUFACTURER<br />DEVICE_ID<br />DEVICE_TYPE<br />LAST_UPDATE<br /></td>
    </tr>
    <tr>
      <td>INDICATOR</td>
      <td>Show the state, or level of a device, usually through a button LED, or display on the actual device</td>
      <td>If you use the bit=n (n between 0 and 8) parameter then you can bind Switch Items to individual bits in the indicator value which can be used to turn on and off status LEDs on device buttons for instance.</td>
    </tr>
  </tbody>
</table>

<h3 id="parameters-that-can-be-added-to-any-item">Parameters that can be added to any item</h3>

<p>There are some general parameters that can be added to any command class in an item string. These are <code class="highlighter-rouge">refresh_interval=value</code> and <code class="highlighter-rouge">respond_to_basic=true</code></p>

<p><code class="highlighter-rouge">refresh_interval=&lt;value&gt;</code> sets the refresh interval to <code class="highlighter-rouge">&lt;value&gt;</code> seconds. <code class="highlighter-rouge">0</code> indicates that no polling is performed and the node should inform the binding itself on value changes. This is the default value.</p>

<p><code class="highlighter-rouge">respond_to_basic=true</code> indicates that the item will respond to basic reports. Some Fibaro contacts and universal sensors report their values as BASIC reports instead of a specific command class. You can add this parameter to an item to indicate that this item should respond to those reports.</p>

<p><code class="highlighter-rouge">meter_zero=xx.x</code> can be set when using the Meter command class. If set, anything below the value specified will be considered as 0. This allows the user to account for small power consumption readings even when a device is off.</p>

<p><code class="highlighter-rouge">sensor_scale=X</code> can be set for the multilevel sensor class to force the sensor to be converted to a specific scale. This uses the scale information provided by the device to decide how, or if, the conversion needs to be applied. Currently this is only available for temperature sensors. eg. <code class="highlighter-rouge">sensor_scale=0</code> will ensure that a temperature sensor is always shown in celsius, while <code class="highlighter-rouge">sensor_scale=1</code> will ensure fahrenheit.</p>

<p><code class="highlighter-rouge">invert_state=true</code> can be used to invert the state of a multilevel switch command class. eg this can be used to reverse the direction of a rollershutter.</p>

<h3 id="basic-command-class">Basic command class</h3>

<p>The basic Command Class is a special command class that almost every node implements. It provides functionality to set a value on the device and/or to read back values. It can be used to address devices that are currently not supported by their native command class like thermostats.</p>

<p>When the basic command class is used, devices support setting values and reporting values when polling. Direct updates from the device on changes will fail however.</p>

<p>You can force a device to work with the basic command set (or any specific command set for that matter using a syntax like:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch    ZwaveDevice        { zwave="3:1:command=BASIC" }
</code></pre></div></div>

<p>To find out which command classes are supported by your Z-Wave device, you can look in the manual or use the list at http://www.pepper1.net/zwavedb/ or http://products.z-wavealliance.org/. In case your command class is supported by the device and binding, but you have a problem, you can create an issue at: https://github.com/openhab/openhab/issues. In case you want a command class implemented by the binding, please create an issue.</p>

<h2 id="battery-devices-and-wakeup">Battery Devices and Wakeup</h2>

<p>One of the questions that gets asked a lot is <em>“my battery device is sending information, so its clearly awake, but I cant change parameters”</em>. ZWave battery devices only wake up periodically however they will send their data whenever THEY want. So if the door opens, then a sensor will send its data immediately (otherwise it would be of no use!) and for temperature sensors, or multi sensors, theres normally a configuration that allows you to configure how often the sensor will send the data, or how much change there needs to be before it will send an update (or a combination of the two).</p>

<p>However, wakeup is different. In the above scenarios, the device is not awake - its just sending notifications. When a device wakes up, it sends a special message to the binding to say “Im awake, do you have anything to send me”. We can then send data to the device (configuration setting, parameter requests etc), and the device can respond. When we have no more messages to send to the device, we tell it to go back to sleep (this currently happens 1 second after we send the last message - just to give the system time to respond to any rules etc before the device goes to sleep again).</p>

<p>A device will wake up based on the information in the wakeup command class, which is available in HABmin. If wakeup isnt set correctly, then we cant command the device, even though we may receive sensor data etc. The binding will attempt to configure this automatically when the device/binding initialises - it will make sure that the node is set to reference the binding, but in general it wont touch the time. The exception to this is where the time is set to 0, it will set it to 1 hour.</p>

<p>If wakeup hasnt been set, then we will never be able to send commands to the device to initialise it, or change parameters. In this case, you need to wake the device up manually. Normally, this is achieved by pressing a button on the device (maybe 3 times). This causes the device to send whats called a NIF (Node Information Frame) - this is sent as a broadcast though so its not routed. This means that the device MUST be able to communicate directly to the controller, so it needs to be close by.</p>

<p>The last wakeup time is shown in HABmin in the wakeup area for a battery device.</p>

<p>One last point on the wakeup configuration node. There is (currently) no way to set the target node - the binding will automatically set it to its own ID when the interval is changed. Some people have used a value of 255 for the target node, or it may come as the default value - this means that the wakeup is broadcast to anyone who wants to listen. This might seem a good idea as multiple controllers can receive the message however, broadcast messages do not get routed, so this only works if the controller is in direct contact with the device which is often not the case.</p>

<h2 id="database">Database</h2>

<p><strong>Note</strong>: A new online database editor is being produced. This should make it easier for most people to add and update devices within the database, and will improve support for both the OH1 and OH2 bindings. Please support this <a href="http://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-database-guide">here</a>.</p>

<p>The binding uses a database of devices so that it can work around any quirks, or present information about association groups and configuration data. The format for the database is <a href="https://github.com/cdjackson/HABmin2/wiki/Z-Wave-Product-Database">here</a>.</p>

<p>If you are not able to produce the XML file yourself, then please open an issue. The following information is required -:</p>
<ul>
  <li>Type and ID for the device - HABmin will print this information when a device is not in the database</li>
  <li>Manufacturer</li>
  <li>Reference to the device manual (ie link to PDF)</li>
  <li>Link to device in pepper1 database (if it exists). <a href="http://www.pepper1.net/zwavedb/">http://www.pepper1.net/zwavedb/</a></li>
</ul>

<h2 id="logging">Logging</h2>

<p>The loggers used by the binding, which you can set to <code class="highlighter-rouge">DEBUG</code> or <code class="highlighter-rouge">TRACE</code> (more verbose than <code class="highlighter-rouge">DEBUG</code>) are:</p>

<ul>
  <li><code class="highlighter-rouge">org.openhab.binding.zwave</code></li>
</ul>

<p>It is highly recommended to turn on at least DEBUG logging whilst setting up and configuring your ZWave network for the first time.</p>

<h2 id="examples">Examples</h2>

<p>Here are some examples of valid Z-Wave binding configuration strings, as defined in your items file:</p>

<h3 id="generic">Generic</h3>

<h4 id="z-wave-statistics">Z-Wave statistics</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number ZwaveStatsSOF "Number Start of Frames[%s]" (gZwaveStats) {zwave="1:command=info,item=sof"}
Number ZwaveStatsACK "Number of Acknowledgments [%s]" (gZwaveStats) {zwave="1:command=info,item=ack"}
Number ZwaveStatsCAN "Number of CAN [%s]" (gZwaveStats) {zwave="1:command=info,item=can"}
Number ZwaveStatsNAK "Number of NAK [%s]" (gZwaveStats) {zwave="1:command=info,item=nak"}
Number ZwaveStatsOOF "Number of OOF [%s]" (gZwaveStats) {zwave="1:command=info,item=oof"}
Number ZwaveStatsTimeout "Number of Time-outs [%s]" (gZwaveStats) {zwave="1:command=info,item=time_out"}
String ZwaveNode01HomeID  "Home ID [%s]" (gZwaveNode01) {zwave="1:command=info,item=home_id"}
Number ZwaveNode01NetworkID "Node ID [%s]" (gZwaveNode01) {zwave="1:command=info,item=node_id"}
</code></pre></div></div>

<h4 id="dimmer-and-a-contact">Dimmer and a Contact</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Dimmer Light_Corridor_Dimmer "Hallway Dimmer [%d %%]" (GF_Corridor) {zwave="6"}
Contact Door_Corridor_Switch "Front door sensor [MAP(nl.map):%s]" (GF_Corridor) {zwave="21:command=sensor_binary,respond_to_basic=true"} 
Number Door_Corridor_Battery "Front door sensor battery level [%d %%]" (GF_Corridor) { zwave="21:command=battery" }
</code></pre></div></div>

<h4 id="node-with-multiple-endpoints">Node with multiple endpoints</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch Mech_Vent      "Mechanical ventilation middle."  (GF_Kitchen) {zwave="11:1"}
Switch Mech_Vent_High   "Mechanical ventilation high."  (GF_Kitchen) {zwave="11:2"}
</code></pre></div></div>

<h3 id="lighting-and-bulbs">Lighting and Bulbs</h3>

<h4 id="aeotec-micro-smart-switch-2nd-gen-mss2e">Aeotec Micro Smart Switch (2nd Gen) (MSS2E)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch     Bathroom_Switch       "Bathroom Switch"     &lt;switch&gt;        { zwave="4:command=switch_binary,respond_to_basic=true" }
Number     Bathroom_Switch_Power "Bathroom Switch Power [%.1f W]"               { zwave="4:command=meter,meter_scale=E_W" }
</code></pre></div></div>

<h4 id="domitech-zbulb">Domitech ZBULB</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch  Light_Landing   "Landing Light" &lt;whites&gt;    (FF_Hall,Lights)   {zwave="37:respond_to_basic=true"}
Dimmer  Light_LandingBrightness   "Landing Brightness" &lt;whites&gt;    (FF_Hall,Lights)   {zwave="37:command=switch_multilevel"}
</code></pre></div></div>

<h4 id="everspring-wireless-dimmer-ada1311">Everspring Wireless Dimmer ADA1311</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Dimmer Light { zwave="6:command=SWITCH_MULTILEVEL,respond_to_basic=true" }
</code></pre></div></div>

<h4 id="fibaro-relay-1x25kw">Fibaro Relay 1x2.5kW</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch      Fibaro_Relay    "Fibaro Relay"          &lt;switch&gt;                { zwave="2" }
</code></pre></div></div>

<h4 id="fibaro-rgbw-controller">Fibaro RGBW Controller</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Group gWohnzimmer   "Wohnzimmer"      &lt;sofa&gt;  (gAlles)
Group gwzRGBW     "TV Rücklicht Erweitert"  &lt;sofa&gt;  (gWohnzimmer)

Color   wzRGBW    "TV Rücklicht"    &lt;slider&gt; (gwzRGBW)
Dimmer  wzRGBW_All  "Helligkeit [%d %%]"  &lt;switch&gt; (gwzRGBW)  {zwave="2"}
Dimmer  wzRGBW_R  "Rot [%d %%]"     &lt;switch&gt; (gwzRGBW)  {zwave="2:2:command=switch_multilevel"}
Dimmer  wzRGBW_G  "Grün [%d %%]"    &lt;switch&gt; (gwzRGBW)  {zwave="2:3:command=switch_multilevel"}
Dimmer  wzRGBW_B  "Blau [%d %%]"    &lt;switch&gt; (gwzRGBW)  {zwave="2:4:command=switch_multilevel"}
Dimmer  wzRGBW_W  "Weiß [%d %%]"    &lt;switch&gt; (gwzRGBW)  {zwave="2:5:command=switch_multilevel"}

Switch  wzRGBW_Switch "Schalter Alle"   &lt;switch&gt;  (gwzRGBW) { zwave="2:1"}
Switch  wzRGBW_R_Switch "Schalter Rot"    &lt;switch&gt;  (gwzRGBW) { zwave="2:2"}
Switch  wzRGBW_G_Switch "Schalter Grün"   &lt;switch&gt;  (gwzRGBW) { zwave="2:3"}
Switch  wzRGBW_B_Switch "Schalter Blau"   &lt;switch&gt;  (gwzRGBW) { zwave="2:4"}
Switch  wzRGBW_W_Switch "Schalter Weiß"         &lt;switch&gt;  (gwzRGBW) { zwave="2:5"}

Number wzRGBW_Power     "Stromverbrauch [%.1f W]"     &lt;energy&gt;  (gwzRGBW) { zwave="2:command=sensor_multilevel"}
Number wzRGBW_Energy    "Gesamtverbrauch [%.2f KWh]"    &lt;energy&gt;  (gwzRGBW) { zwave="2:command=meter", refresh_interval=60}
</code></pre></div></div>

<h4 id="fibaro-universal-dimmer-fgd-211">Fibaro Universal Dimmer (FGD-211)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch  swLight_HallCeiling      "Hall: Ceiling"          { zwave="9:command=SWITCH_MULTILEVEL" }
Dimmer  diLight_HallCeiling      "Hall: Ceiling [%d %%]"  { zwave="9:command=SWITCH_MULTILEVEL" }
Switch  swScene1_HallCeiling     "Hall-Simpleclick"       { zwave="9:command=SCENE_ACTIVATION,scene=26,state=0" }
Switch  swScene2_HallCeiling     "Hall-Doubleclick"       { zwave="9:command=SCENE_ACTIVATION,scene=24,state=0" }
Switch  swScene3_HallCeiling     "Hall-Tripleclick"       { zwave="9:command=SCENE_ACTIVATION,scene=25,state=0" }
</code></pre></div></div>

<h4 id="fibaro-universal-dimmer-2-fgd-212">Fibaro Universal Dimmer 2 (FGD-212)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch      foo             "Foo"                                           { zwave="42:command=SWITCH_MULTILEVEL" }
Dimmer      foo_dim         "Foo [%d %%]"                                   { zwave="42:command=SWITCH_MULTILEVEL" }
Number      foo_power       "Foo - current power consumption [%.2f W]"      { zwave="42:command=METER,meter_scale=E_W,refresh_interval=300" }
Number      foo_energy      "Foo - total energy use [%.2f KWh]"             { zwave="42:command=METER,meter_scale=E_KWh,refresh_interval=300" }
</code></pre></div></div>

<h4 id="lineartec-lb60z-1">Lineartec LB60Z-1</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Dimmer myLight "Light" { zwave="2:command=SWITCH_MULTILEVEL" }
</code></pre></div></div>

<h4 id="qubino-flush-dimmer-plus-zmnhdd">Qubino Flush Dimmer Plus (ZMNHDD)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Dimmer     Qubino_Dimmer     "Qubino Dimmer [%d %%]"                        { zwave="3:command=switch_multilevel" }
Number     Qubino_Power      "Qubino Power [%.2f W]"                        { zwave="3:command=meter,meter_scale=E_W" }
Number     Qubino_Energy     "Qubino Energy [%.2f kWh]"                     { zwave="3:command=meter,meter_scale=E_KWh,refresh_interval=900" }   
</code></pre></div></div>

<h4 id="qubino-flush-1-relay-zmnhaa">Qubino Flush 1 Relay (ZMNHAA)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch     Qubino_Switch     "Qubino Switch"     &lt;switch&gt;                   { zwave="2:command=switch_binary" }
Number     Qubino_Power      "Qubino Power [%.2f W]"                        { zwave="2:command=meter,meter_scale=E_W" }
Number     Qubino_Energy     "Qubino Energy [%.2f kWh]"                     { zwave="2:command=meter,meter_scale=E_KWh" }
</code></pre></div></div>

<h3 id="remote-controls">Remote Controls</h3>

<h4 id="nodon-crc-3100-octan-remote-and-crc3605-softremote">Nodon CRC 3100 (Octan Remote) and CRC3605 (SoftRemote)</h4>

<ol>
  <li>Change the configuration parameter 3 to 1.</li>
  <li>Create the items as shown below:</li>
</ol>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    Switch  Nodon_Button1_Single  "Nodon_Button1_Single"  &lt;switch&gt;  { zwave="8:command=SCENE_ACTIVATION,scene=10,state=1" }
    Switch  Nodon_Button2_Single  "Nodon_Button2_Single"  &lt;switch&gt;  { zwave="8:command=SCENE_ACTIVATION,scene=20,state=1" }
    Switch  Nodon_Button3_Single  "Nodon_Button3_Single"  &lt;switch&gt;  { zwave="8:command=SCENE_ACTIVATION,scene=30,state=1" }
    Switch  Nodon_Button4_Single  "Nodon_Button4_Single"  &lt;switch&gt;  { zwave="8:command=SCENE_ACTIVATION,scene=40,state=1" }

    Switch  Nodon_Button1_Long      "Nodon_Button1_Long"  &lt;switch&gt;          { zwave="8:command=SCENE_ACTIVATION,scene=12,state=1" }
    Switch  Nodon_Button2_Long      "Nodon_Button2_Long"  &lt;switch&gt;          { zwave="8:command=SCENE_ACTIVATION,scene=22,state=1" }
    Switch  Nodon_Button3_Long      "Nodon_Button3_Long"  &lt;switch&gt;          { zwave="8:command=SCENE_ACTIVATION,scene=32,state=1" }
    Switch  Nodon_Button4_Long      "Nodon_Button4_Long"  &lt;switch&gt;          { zwave="8:command=SCENE_ACTIVATION,scene=42,state=1" }

    Switch  Nodon_Button1_Release   "Nodon_Button1_Release" &lt;switch&gt;        { zwave="8:command=SCENE_ACTIVATION,scene=11,state=1" }
    Switch  Nodon_Button2_Release   "Nodon_Button2_Release" &lt;switch&gt;        { zwave="8:command=SCENE_ACTIVATION,scene=21,state=1" }
    Switch  Nodon_Button3_Release   "Nodon_Button3_Release" &lt;switch&gt;        { zwave="8:command=SCENE_ACTIVATION,scene=31,state=1" }
    Switch  Nodon_Button4_Release   "Nodon_Button4_Release" &lt;switch&gt;        { zwave="8:command=SCENE_ACTIVATION,scene=41,state=1" }

    Switch  Nodon_Button1_Double    "Nodon_Button1_Double" &lt;switch&gt;         { zwave="8:command=SCENE_ACTIVATION,scene=13,state=1" }
    Switch  Nodon_Button2_Double    "Nodon_Button2_Double" &lt;switch&gt;         { zwave="8:command=SCENE_ACTIVATION,scene=23,state=1" }
    Switch  Nodon_Button3_Double    "Nodon_Button3_Double" &lt;switch&gt;         { zwave="8:command=SCENE_ACTIVATION,scene=33,state=1" }
    Switch  Nodon_Button4_Double    "Nodon_Button4_Double" &lt;switch&gt;         { zwave="8:command=SCENE_ACTIVATION,scene=43,state=1" }
</code></pre></div></div>

<h3 id="sensors">Sensors</h3>

<h4 id="aeotec-doorwindow-sensor-2nd-edition-model-dsb29-zwus">Aeotec Door/Window Sensor (2nd Edition) Model: DSB29-ZWUS</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact     zwave_contact_16_sensor "office - test door"                                             (doors,monitor)  {zwave="16:command=basic,respond_to_basic=true"}
Contact     zwave_contact_16_tamper "office - test door tamper"                                      (doors,tamper)   {zwave="16:command=ALARM"}
Number      FrontDoorBattery        "office - test door battery [%d %%]"              &lt;battery&gt;      (doors,battery)  {zwave="16:command=BATTERY"}
</code></pre></div></div>

<h4 id="aeotec-hidden-door-sensor-gen-5-dsb54">Aeotec hidden door sensor (gen 5, DSB54)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact garagewalkin_1_sensor    "garage walk-in [%s]"                                         (ALL,ff,sensor)              {zwave="3:command=BASIC"}
Number  garagewalkin_1_battery   "garage walk-in battery [%d %%]"              &lt;battery&gt;       (ALL,battery)                {zwave="3:command=BATTERY"}
</code></pre></div></div>

<h4 id="aeotec-multi-sensor-4">Aeotec Multi Sensor 4</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number      Multi1_temp                "office - Multi Temperature [%.1f °F]"                  (multi,multiGraph) {zwave="10:command=SENSOR_MULTILEVEL,sensor_type=1"}
Number      Multi1_humidity            "office - Multi Humidity    [%.0f %%]"                  (multi,multiGraph) {zwave="10:command=SENSOR_MULTILEVEL,sensor_type=5"}
Number      Multi1_luminance           "office - Multi Luminance    [%.0f Lux]"                (multi)            {zwave="10:command=SENSOR_MULTILEVEL,sensor_type=3"}
Contact     Multi1_motion              "office - Multi motion [MAP(motion.map):%s]" &lt;motion&gt;   (multi,motion)     {zwave="10:command=SENSOR_BINARY,respond_to_basic=true"}
Number      Multi1_battery             "office - Multi battery [%d %%]"             &lt;battery&gt;  (multi,battery)    {zwave="10:command=BATTERY"}
</code></pre></div></div>

<h4 id="aeotec-multi-sensor-6">Aeotec Multi Sensor 6</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact Motion_GFToilet "Motion [MAP(motion.map):%s]" (GF_Toilet) { zwave="8:command=sensor_binary,respond_to_basic=true" }
Number Alarm_GFToilet "Alarm: [%s]" (GF_Toilet) { zwave="8:command=alarm" }
Number Temp_GFToilet "Temperature: [%.1f °C]" (GF_Toilet) { zwave="8:command=sensor_multilevel,sensor_type=1,sensor_scale=0" }
Number Humid_GFToilet "Humidity: [%.0f %%]" (GF_Toilet) { zwave="8:command=sensor_multilevel,sensor_type=5" }
Number Lumin_GFToilet "Luminance: [%.0f Lux]" (GF_Toilet) { zwave="8:command=sensor_multilevel,sensor_type=3" }
Number UV_GFToilet "Luminance: [UV index %d]" (GF_Toilet) { zwave="8:command=sensor_multilevel,sensor_type=27" }
Number Battery_GFToilet "Battery: [%d %%]" (GF_Toilet) { zwave="8:command=battery" }
DateTime LastUpdated_GFToilet "Last update [%1$tH:%1$tM]" (GF_Toilet) { zwave="8:command=info,item=LAST_UPDATE" }
</code></pre></div></div>

<h4 id="d-link-dch-z110">D-Link DCH-Z110</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact C "Movement [%s]" (gf)  { zwave="10:command=SENSOR_BINARY,respond_to_basic=TRUE" }
Number  T "Temperature [%.1f °C]" (gf)  { zwave="10:command=sensor_multilevel,sensor_type=1" }
Number  H "Luminance [%.0f Lux]"  (gf)  { zwave="10:command=sensor_multilevel,sensor_type=3" }
DateTime    L "Last update [%1$tH:%1$tM]" (gf)  { zwave="10:command=info,item=LAST_UPDATE" }
</code></pre></div></div>

<h4 id="ecolink-tiltzwave1-garage-door-sensor">Ecolink tiltzwave1 garage door sensor:</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Group DoorsWindows "Doors and Windows"
Contact GarageDoor "Garage Door is [MAP(en.map):%s]" (DoorsWindows){zwave="3:command=SENSOR_BINARY"}
</code></pre></div></div>

<h4 id="ecolink-pir-motion-detector">Ecolink PIR motion detector</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact EntryMotion              "entry motion [MAP(motion.map):%s]"                           (ALL,motion,ff)              {zwave="4:command=SENSOR_BINARY"}
Contact EntryMotionTamper        "entry motion tamper [MAP(tamper.map):%s]"    &lt;battery&gt;       (ALL,tamper)                 {zwave="4:command=ALARM"}
Number  EntryMotionBattery       "entry motion battery [%d %%]"                &lt;battery&gt;       (ALL,battery)                {zwave="4:command=BATTERY"}
</code></pre></div></div>

<h4 id="everspring-flood-detector-modelst812-2">Everspring Flood Detector model:ST812-2</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact     zwave_water_9_sensor       "office - water sensor 2"                    &lt;water&gt;    (water,monitor)    {zwave="9:command=SENSOR_ALARM"}
Number      Water_sensor_battery       "office - water sensor 2 battery [%d %%]"    &lt;battery&gt;  (water,battery)    {zwave="9:command=BATTERY"}
</code></pre></div></div>

<h4 id="everspring-st814-temperature-and-humidity-sensor">Everspring ST814 temperature and humidity sensor</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number T_AZH  "Temperature [%.1f °C]" (AZH) {zwave="32:command=sensor_multilevel,sensor_type=1" }
Number RH_AZH "Humidity    [%.0f %%]" (AZH) { zwave="32:command=sensor_multilevel,sensor_type=5" }
Number BAT_AZH "Battery    [%.0f %%]" (AZH) { zwave="32:command=battery" }
</code></pre></div></div>

<h4 id="fortrez-watertemperature-sensor">Fortrez water/temperature sensor</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number WaterTemp3 "Water Temp 3" (water,temp) {zwave="18:command=SENSOR_MULTILEVEL,sensor_type=1"}
Contact Water3 "water sensor 3" (water) {zwave="18"}
Number Water3_battery "Water 3 battery [%s %%]" (water) {zwave="18:command=BATTERY"}
</code></pre></div></div>

<h4 id="fibaro-door-contact-fgk-101">Fibaro Door-Contact (FGK-101)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact   coStatus_DoorBell     "Doorbell: [MAP(bell.map):%s]"   { zwave="10:command=SENSOR_BINARY,respond_to_basic=TRUE" }
Number    nuBattery_DoorBell   "Doorbell: Battery [%s %%]"      { zwave="10:command=BATTERY" }
</code></pre></div></div>

<h4 id="fibaro-fgk-101-door-sensor-requires-ds18b20-to-be-added">Fibaro FGK-101 door sensor (requires DS18B20 to be added):</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number  Temp_UtilityRoom "Utility room temperature [%.1f °C]" { zwave="7:2:command=SENSOR_MULTILEVEL" }
</code></pre></div></div>

<h4 id="fibaro-flood-sensor-fgfs-101">Fibaro Flood-Sensor (FGFS-101)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact coFibFlood_Alarm    "Water-Sensor: [MAP(water.map):%s]"   { zwave="11:command=SENSOR_ALARM, alarm_type=5,respond_to_basic=TRUE" }
Number nuFibFlood_Battery   "Water-Sensor: Batterie [%s %%]"      { zwave="11:command=BATTERY" }
Number nuFibFlood_Temp      "Water-Sensor: Temperatur [%.1f °C]" { zwave="11:2:command=sensor_multilevel" }
Switch swFibFlood_Tamper    "Water-Sensor: Tamper"                { zwave="11:command=sensor_alarm, alarm_type=0,respond_to_basic=true" }
</code></pre></div></div>

<h4 id="fibaro-multisensor-fib_fgms-001">Fibaro Multisensor (FIB_FGMS-001)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number  Movement         "Movement: [%s]"          &lt;present&gt;      { zwave="4:command=sensor_binary" }
Number  Alarm            "Alarm: [%s]"             &lt;fire&gt;         { zwave="4:command=sensor_alarm" }
Number  Lux              "Lux: [%.2f Lux]"         &lt;sun&gt;          { zwave="4:command=sensor_multilevel,sensor_type=3" }
Number  Bat              "Battery: [%d %%]"        &lt;energy&gt;       { zwave="4:command=battery" }
Number  Temp             "Temperature: [%.1f °C]"  &lt;temperature&gt;  { zwave="4:command=sensor_multilevel,sensor_type=1" }
</code></pre></div></div>

<h4 id="fibaro-universal-sensor">Fibaro Universal Sensor</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact Z_deurbel0  "Z_deurbel_sensor"  { zwave="8:0:command=SENSOR_BINARY,respond_to_basic=TRUE" }
Contact Z_deurbel1  "Z_deurbel_input1"  { zwave="8:1:command=SENSOR_BINARY,respond_to_basic=TRUE" }
Contact Z_deurbel2  "deurbel" { zwave="8:2:command=SENSOR_BINARY,respond_to_basic=TRUE" }
</code></pre></div></div>

<h4 id="fibaro-universal-sensor-with-attached-ds18b20-temperature-sensors">Fibaro Universal Sensor with attached DS18B20 temperature sensors</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number Sensor_Temp_1 "Temp1 [%.2f °C]" { zwave="17:3:command=sensor_multilevel" }
Number Sensor_Temp_2 "Temp2 [%.2f °C]" { zwave="17:4:command=sensor_multilevel" }
Number Sensor_Temp_3 "Temp3 [%.2f °C]" { zwave="17:5:command=sensor_multilevel" }
</code></pre></div></div>

<h4 id="monoprice-motion-detector-zp3102">Monoprice motion detector (ZP3102)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact OfficeMotion            "office motion [MAP(motion.map):%s]"                               (ALL,motion,ff)              {zwave="2:command=BASIC"}
Number  OfficeMotionBattery     "office motion battery [%d %%]"                                    (ALL,battery)                {zwave="2:command=BATTERY"}
Contact OfficeMotionTamper      "office motion tamper [MAP(tamper.map):%s]"                        (ALL,tamper)                 {zwave="2:command=ALARM"}
Number  OfficeMotionTemp        "office temp [%.1f °F]"                            &lt;temperature&gt;   (ALL,temperature,ff)         {zwave="2:command=sensor_multilevel,sensor_type=1,sensor_scale=1" }
</code></pre></div></div>

<h4 id="philio-4in1-multisensor-pst-02">Philio 4in1 Multisensor (PST-02)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact    KitchenMotion     "Kitchen Motion [%s]"     (motion)     { zwave="2:command=sensor_binary,sensor_type=12" }
Contact    KitchenDoor       "Kitchen Door [%s]"       (door)       { zwave="2:command=sensor_binary,sensor_type=10" }
Number     KitchenTemp       "Kitchen Temp [%.1f]"     (temp)       { zwave="2:command=sensor_multilevel,sensor_type=1,sensor_scale=0" }
Number     KitchenBrightness "Kitchen Brightness [%d]" (brightness) { zwave="2:command=sensor_multilevel,sensor_type=3" }
Contact    KitchenTamper     "Kitchen Tamper [%s]"     (alarm)      { zwave="2:command=alarm" }
Number     KitchenBattery    "Kitchen Battery [%d]"    (battery)    { zwave="2:command=battery" }
</code></pre></div></div>

<h4 id="vision-security-doorwindow-sensor">Vision Security Door/Window Sensor</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact Contact_BackDoor  "Back Door [MAP(motion.map):%s]"  &lt;frontdoor&gt; (GF_Kitchen)  {zwave="5:command=basic,respond_to_basic=true"}
Number  Battery_BackDoor  "Back Door Battery: [%d %%]"  &lt;battery&gt; (GF_Kitchen,Battery)  {zwave="5:command=battery"}
</code></pre></div></div>

<h4 id="zooz-4-in-1-multisensor-zse40">Zooz 4-in-1 Multisensor (ZSE40)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact UPSTAIRS_HALLWAY_PIR_TAMPER "Upstairs Hallway Tamper [MAP(zwave_motion.map):%s]" (Group_Motion, Group_Persistence, Group_Upstairs) {zwave="58:command=ALARM"}
Number UPSTAIRS_HALLWAY_PIR_BATTERY "Upstairs Hallway Battery [%d %%]" (Group_Motion, Group_Persistence, Group_Upstairs) {zwave="58:command=BATTERY"}
Number UPSTAIRS_HALLWAY_PIR_TEMPERATURE "Upstairs Hallway Temperature [%.2f F]" (Group_Motion, Group_Persistence, Group_Upstairs) {zwave="58:command=sensor_multilevel,sensor_type=1,sensor_scale=1"}
Number UPSTAIRS_HALLWAY_PIR_LIGHT "Upstairs Hallway Light [%.1f %%]" (Group_Motion, Group_Persistence, Group_Upstairs) {zwave="58:command=sensor_multilevel,sensor_type=3"}
Number UPSTAIRS_HALLWAY_PIR_REL_HUMID "Upstairs Hallway RH [%.0f %%]" (Group_Motion, Group_Persistence, Group_Upstairs) {zwave="58:command=sensor_multilevel,sensor_type=5"}
Contact UPSTAIRS_HALLWAY_PIR_MOTION "Upstairs Hallway Motion [MAP(zwave_motion.map):%s]" (Group_Motion, Group_Persistence, Group_Upstairs) {zwave="58:command=BASIC"}
</code></pre></div></div>

<p>zwave_motion.map</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>CLOSED=No Motion
OPEN=MOTION
-=(No value yet)
</code></pre></div></div>

<p>zwave_tamper.map</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>CLOSED=No Tamper
OPEN=TAMPER
-=(No value yet)
</code></pre></div></div>

<h3 id="shutters">Shutters</h3>

<h4 id="fibaro-rollershutter-fgrm-222-v1-and-v2-hw-revisions">Fibaro Rollershutter FGRM-222 (v1 and v2 HW revisions)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Rollershutter kdSHUTTER   "Roller shutter [%d %%]"        (gkdSHUTTER)  {zwave="3:command=switch_multilevel,invert_state=false,invert_percent=true"}
Rollershutter VenetianSHUTTERv1 "Venetian blind (blind position) [%d %%]"     (gkdSHUTTER)  {zwave="4:command=FIBARO_FGRM_222,type=shutter"}
Rollershutter VenetianLAMELLAv1 "Venetian blind (lamella tilt) [%d %%]"     (gkdSHUTTER)  {zwave="4:command=FIBARO_FGRM_222,type=lamella"}
Rollershutter VenetianSHUTTERv2 "Venetian blind (blind position) [%d %%]"     (gkdSHUTTER)  {zwave="4:command=MANUFACTURER_PROPRIETARY,type=shutter"}
Rollershutter VenetianLAMELLAv2 "Venetian blind (lamella tilt) [%d %%]"     (gkdSHUTTER)  {zwave="4:command=MANUFACTURER_PROPRIETARY,type=lamella"}

Number kdSHUTTER_Power    "current power usage [%.1f W]"  &lt;energy&gt;  (gkdSHUTTER)  { zwave="3:command=sensor_multilevel"}
Number kdSHUTTER_Energy   "power consumption [%.2f KWh]"  &lt;energy&gt;  (gkdSHUTTER)  { zwave="3:command=meter" }
</code></pre></div></div>

<h3 id="smoke-detectors">Smoke Detectors</h3>

<h4 id="monoprice-smoke-detector-vision-security-zs6101">Monoprice Smoke detector (Vision Security ZS6101)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact iSmokeSensorMasterAlarm     "Master Status [%s]"    &lt;fire&gt;    (gSmokeSensorMaster)    { zwave="8:command=SENSOR_BINARY,respond_to_basic=true" }
Number  iSmokeSensorMasterBattery   "Master Battery [%s]"   &lt;battery&gt; (gSmokeSensorMaster)    { zwave="8:command=BATTERY" }
</code></pre></div></div>

<h4 id="fibaro-smoke-detector-fgss101-fgsd002">Fibaro Smoke detector (FGSS101, FGSD002)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Contact Z_Kitchen_Smoke "Smoke detector is [%s]"  (Smoke_Alarm) {zwave="6:command=sensor_alarm,alarm_type=1" }
Contact Z_Kitchen_Heat  "Heat detector is [%s]" (Smoke_Alarm) {zwave="6:command=sensor_alarm,alarm_type=4" }
Contact Z_Kitchen_Tamper  "Smoke_sensor_K Tamper is[MAP(en.map):%s]"  (Tamper_Alarm)  { zwave="6:command=sensor_alarm,alarm_type=0" }
Number  Z_Kitchen_Battery "Smoke_sensor_batt [%d %%]" (Battery_Levels)  {zwave="6:command=battery" }
Number  Z_Kitchen_Temp  "Kitchen_temperature [%.1f°C]"  (Temperatures) {zwave="6:command=sensor_multilevel,sensor_type=1" }
</code></pre></div></div>

<h3 id="switches">Switches</h3>

<h4 id="fibaro-wall-plug-fgwpf-101--fgwpf-102--fgwpe">Fibaro Wall Plug (FGWPF-101 &amp; FGWPF-102 &amp; FGWPE)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch Wall_Plug           "Wall Plug"                             { zwave="3:command=switch_binary"} 
Number Wall_Plug_Power     "Wall Plug - current energy [%.1f W]"   { zwave="3:command=sensor_multilevel"}
Number Wall_Plug_Energy    "Wall Plug - total energy [%.2f KWh]"   { zwave="3:command=meter" }
</code></pre></div></div>

<h4 id="general-electric-ge12722">General Electric GE12722</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch  bedroom_light "Bedroom Light" { zwave="8:command=SWITCH_BINARY" }
</code></pre></div></div>

<h4 id="greenwave-powernode-6-port-power-strip">GreenWave PowerNode 6-port power strip</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch Switch_Powerbar_Subwoofer "Subwoofer" (GF_Living) {zwave="26:1:command=switch_binary"} 
Switch Switch_Powerbar_Reiceiver "Receiver" (GF_Living) {zwave="26:2:command=switch_binary"} 
Switch Switch_Powerbar_DVD "DVD" (GF_Living) {zwave="26:3:command=switch_binary"} 
Switch Switch_Powerbar_TV "TV" (GF_Living) {zwave="26:4:command=switch_binary"} 
Switch Switch_Powerbar_Xbox "XBOX-360" (GF_Living) {zwave="26:5:command=switch_binary"} 
Switch Switch_Powerbar_PC "Mediacenter" (GF_Living) {zwave="26:6:command=switch_binary"} 

Number Power_Powerbar_Subwoofer "Subwoofer power consumption  [%d W]" (GF_Living,GF_Energy) {zwave="26:1:command=meter,meter_scale=E_W,refresh_interval=60"} 
Number Power_Powerbar_Reiceiver "Receiver power consumption  [%d W]" (GF_Living,GF_Energy) {zwave="26:2:command=meter,meter_scale=E_W,refresh_interval=70"} 
Number Power_Powerbar_DVD "DVD power consumption [%d W]" (GF_Living,GF_Energy) {zwave="26:3:command=meter,meter_scale=E_W,refresh_interval=60"} 
Number Power_Powerbar_TV "TV power consumption [%d W]" (GF_Living,GF_Energy) {zwave="26:4:command=meter,meter_scale=E_W,refresh_interval=70"} 
Number Power_Powerbar_Xbox "XBOX-360 power consumption [%d W]" (GF_Living,GF_Energy) {zwave="26:5:command=meter,meter_scale=E_W,refresh_interval=80"} 
Number Power_Powerbar_PC "Mediacenter power consumption [%d W]" (GF_Living,GF_Energy) {zwave="26:6:command=meter,meter_scale=E_W,refresh_interval=80"} 

Number Energy_Powerbar_Subwoofer "Subwoofer total energy usage  [%.4f KWh]" (GF_Living) {zwave="26:1:command=meter,meter_scale=E_KWh,refresh_interval=300"} 
Number Energy_Powerbar_Reiceiver "Receiver total energy usage  [%.4f KWh]" (GF_Living) {zwave="26:2:command=meter,meter_scale=E_KWh,refresh_interval=310"} 
Number Energy_Powerbar_DVD "DVD totaal total energy usage  [%.4f KWh]" (GF_Living) {zwave="26:3:command=meter,meter_scale=E_KWh,refresh_interval=320"} 
Number Energy_Powerbar_TV "TV total energy usage [%.4f KWh]" (GF_Living) {zwave="26:4:command=meter,meter_scale=E_KWh,refresh_interval=330"} 
Number Energy_Powerbar_Xbox "XBOX-360 total energy usage  [%.4f KWh]" (GF_Living) {zwave="26:5:command=meter,meter_scale=E_KWh,refresh_interval=340"} 
Number Energy_Powerbar_PC "Mediacenter total energy usage  [%.4f KWh]" (GF_Living) {zwave="26:6:command=meter,meter_scale=E_KWh,refresh_interval=350"} 
</code></pre></div></div>

<h4 id="aeotec-smart-switch-6-zw096">Aeotec Smart Switch 6 (ZW096)</h4>

<p>Note: you may need to add “,refresh_interval=<em>&lt;secs&gt;</em>” at the end to get more than a single reading at startup.</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch Smart6         "Smart6 outlet"                   (ff,ALL,outlet)  {zwave="6:command=switch_binary" }
Number Smart6_Power   "Smart6 power  [%.2f W]"          (ALL,power)     {zwave="6:command=meter,meter_scale=E_W" }
Number Smart6_Energy  "Smart6 consumption  [%.2f KWh]"  (ALL,power)     {zwave="6:command=meter,meter_scale=E_KWh" }
Number Smart6_Volts   "Smart6 voltage [%.2f V]"         (ALL,power)      {zwave="6:command=meter,meter_scale=E_V"}
Number Smart6_Amps    "Smart6 amperage [%.2f A]"        (ALL,power)      {zwave="6:command=meter,meter_scale=E_A"}
</code></pre></div></div>

<h4 id="tkb-home-tz68e-wall-switches">TKB Home TZ68E Wall switches</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch  WallSwitch_Hall "Hallway Wall switch" (GF_Hall,MyOpenHAB) {zwave="3"}
</code></pre></div></div>

<h4 id="z-waveme-double-paddle-wall-switch">Z-wave.me double paddle wall switch</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch WCD1_1_BUT1 "Test BUT 1" { zwave="7:command=SCENE_ACTIVATION,scene=11,state=1" }
Switch WCD1_1_BUT3 "Test BUT 3" { zwave="7:command=SCENE_ACTIVATION,scene=12,state=0" }
Switch WCD1_1_BUT2 "Test BUT 2" { zwave="7:command=SCENE_ACTIVATION,scene=21,state=1" }
Switch WCD1_1_BUT4 "Test BUT 4" { zwave="7:command=SCENE_ACTIVATION,scene=22,state=0" }
Switch WCD1_1_SW1 "Test WCD SW 1" (gTest) 
Switch WCD1_1_SW2 "Test WCD SW 2" (gTest)
</code></pre></div></div>

<h4 id="aspirerf-rf9517">AspireRF RF9517</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch Remote_Button "button" { zwave="23:command=BASIC,respond_to_basic=true,refresh_interval=2" }
</code></pre></div></div>

<h3 id="thermostats">Thermostats</h3>

<h4 id="danfoss-lc13-radiator-thermostat">Danfoss LC13 radiator thermostat:</h4>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number          bedroom_thermostat_setpoint     "Bedroom Thermostat Setpoint [%.2f C]"  { zwave="3:command=THERMOSTAT_SETPOINT" }
Number          bedroom_thermostat_battery      "Bedroom Thermostat battery [%d %%]"    { zwave="3:command=BATTERY" }
</code></pre></div></div>

<h4 id="danfoss-rs-room-sensor-014g0160-drs21---devolo-mt2649">Danfoss RS Room Sensor (014G0160 DRS21) &amp;  Devolo MT:2649:</h4>

<p>Items:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number  EG_WoZi_Raumthermostat_Batteriestatus "EG WoZi Raumthermostat [%d %%]"  &lt;battery&gt; (Batt,gGraph)   { zwave="81:command=battery" }
Number  EG_WoZi_Raumthermostat_Temp "EG WoZi Raumthermostat Temperatur [%.1f °C]"  &lt;temperature&gt; (GaeZi,gGraph)    { zwave="81:command=SENSOR_MULTILEVEL" }
Number  EG_WoZi_Raumthermostat_Temp_Vorwahl "EG WoZi Raumthermostat Temperatur Vorwahl [%.1f °C]"  &lt;temperature&gt; { zwave="81:command=THERMOSTAT_SETPOINT" }
Number  EG_WoZi_Raumthermostat_Button "EG WoZi Raumthermostat Button" { zwave="81:command=central_scene" }
</code></pre></div></div>

<p>Rule:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rule "OG Gaestezimmer Thermostat Button"
when
  /** Item OG_GaesteZimmer_Raumthermostat_Button changed or **/
  Item OG_GaesteZimmer_Raumthermostat_Button received update
then
       /**the .state is every time "1" but the rule is triggered when button is pressed **/
       /** in the log you will get an error: "Protocoll Error (CAN), resending" **/
end
</code></pre></div></div>

<h4 id="eurotronic-stella-z-thermostat">Eurotronic Stella Z thermostat:</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number Temp_Sensor_StellaZ_Bad "Badezimmer Temperatur: [%.1f C]" &lt;temperature&gt; (Heizung,Bad,Temperaturen) { zwave="28:command=sensor_multilevel,sensor_type=1" }
Number Battery_Sensor_StellaZ_Bad "Badezimmer Batterie: [%d %%]" &lt;energy&gt; (Heizung,Batterien) { zwave="28:command=battery" }
Number Temp_Setpoint_StellaZ_Bad " [%d]" &lt;temperature&gt; (Heizung,Heizung_Soll) { zwave="28:command=thermostat_setpoint, setpoint_type=1" }
</code></pre></div></div>

<h4 id="honeywell-thermostat-with-both-heating-and-cooling-and-in-fahrenheit">Honeywell Thermostat with both heating and cooling and in Fahrenheit</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number Down_HVAC_HeatSetPoint "Heat Set [%.0f F]" &lt;thermostat&gt;  (Group_HVAC_Downstairs) { zwave="7:command=thermostat_setpoint,setpoint_type=1,setpoint_scale=1" }
Number Down_HVAC_CoolSetPoint "Cool Set [%.0f F]" &lt;thermostat&gt;  (Group_HVAC_Downstairs) { zwave="7:command=thermostat_setpoint,setpoint_type=2,setpoint_scale=1" }
Number Down_HVAC_Temperature  "Temperature [%.1f °F]" &lt;thermostat&gt; (Group_HVAC_Downstairs) { zwave="7:command=sensor_multilevel,sensor_type=1" }
Number Down_HVAC_Mode "Mode [%d]" (Group_HVAC_Downstairs) { zwave="7:command=thermostat_mode" }
Number Down_HVAC_Fan_Mode "Fan Mode [%d]" (Group_HVAC_Downstairs) { zwave="7:command=thermostat_fan_mode" }
Number Down_HVAC_Operating_State "Opp State [MAP(thermostatOpState.map):%d]" (Group_HVAC_Downstairs) { zwave="7:command=thermostat_operating_state" }
Number Down_HVAC_Fan_State "Fan State [MAP(thermostatFanState.map):%d]" (Group_HVAC_Downstairs) { zwave="7:command=thermostat_fan_state" }
</code></pre></div></div>

<h4 id="heat-it-thermostat">Heat-it thermostat</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number Temperature { zwave="4:0:command=SENSOR_MULTILEVEL,sensor_type=1" }
Number Set_Temp { zwave="4:command=THERMOSTAT_SETPOINT,setpoint_type=1,setpoint_scale=0" }
Number Mode {zwave="4:0:command=THERMOSTAT_MODE" }
DateTime LastUpdated { zwave="4:command=info,item=LAST_UPDATE"}
</code></pre></div></div>

<h4 id="secure-srt321-thermostat">Secure SRT321 thermostat</h4>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number Temperature_FF_Living "SRT Temperature [%.1f °C]" (ALL,FF_Living) &lt;temperature&gt; {zwave="4:command=SENSOR_MULTILEVEL,sensor_type=1"}
Number SRT_Temperature_Setpoint "SRT Temperature set point" (ALL,FF_Living {zwave="4:command=THERMOSTAT_SETPOINT,setpoint_type=1,setpoint_scale=0"}
Number SRT_Mode {zwave="4:0:command=THERMOSTAT_MODE"}
Number SRT_Battery "Thermostat battery [%d %%]" (ALL,power,batteries,FF_Living) &lt;battery&gt; {zwave="4:0:command=BATTERY"}
DateTime SRT_LastUpdated "SRT last updated" (ALL,temperatures,FF_Living) {zwave="4:command=INFO,item=LAST_UPDATE"}
</code></pre></div></div>

<h4 id="ct100-thermostat">CT100 Thermostat</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number HVAC_HeatSetPoint        "Heat Set [%.1f F]"                            &lt;thermostat&gt;    (ALL,HVAC)                   {zwave="5:command=thermostat_setpoint,setpoint_type=1,setpoint_scale=1" }
Number HVAC_CoolSetPoint        "Cool Set [%.1f F]"                            &lt;thermostat&gt;    (ALL,HVAC)                   {zwave="5:command=thermostat_setpoint,setpoint_type=2,setpoint_scale=1" }
Number HVAC_Temperature         "Thermostat temperature [%.1f °F]"             &lt;temperature&gt;   (ALL,HVAC,ff)                {zwave="5:1:command=sensor_multilevel,sensor_type=1,refresh_interval=60"}
Number HVAC_Humidity            "Thermostat humidity [%.1f %%]"                &lt;humidity&gt;      (ALL,HVAC,ff)                {zwave="5:2:command=sensor_multilevel,sensor_type=5,refresh_interval=60"}
Number HVAC_Mode                "Mode [MAP(thermostatMode.map):%s]"            &lt;climate&gt;       (ALL,HVAC)                   {zwave="5:command=thermostat_mode"}
Number HVAC_Fan_Mode            "Fan Mode [MAP(thermostatFanMode.map):%s]"                     (ALL,HVAC)                   {zwave="5:command=thermostat_fan_mode"}
Number HVAC_Operating_State     "Operation State [MAP(thermostatOpState.map):%s]"              (ALL,HVAC)                   {zwave="5:command=thermostat_operating_state,refresh_interval=60"}
Number HVAC_Fan_State           "Fan State [MAP(thermostatFanState.map):%s]"                   (ALL,HVAC)                   {zwave="5:command=thermostat_fan_state"}
Number HVAC_Battery             "Thermostat battery [%d %%]"                   &lt;battery&gt;       (ALL,HVAC,battery)           {zwave="5:command=BATTERY"}
</code></pre></div></div>

<h4 id="ct100-with-refreshing-setpoints-so-manual-changes-are-captured-items">CT100 with refreshing setpoints (so manual changes are captured) items:</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number HVAC_HeatSetPoint "Heat Set [%.0f F]" &lt;temperature&gt; (gHVAC) {zwave="7:command=thermostat_setpoint,setpoint_type=1,setpoint_scale=1,refresh_interval=20" }
Number HVAC_CoolSetPoint "Cool Set [%.0f F]" &lt;temperature&gt; (gHVAC) {zwave="7:command=thermostat_setpoint,setpoint_type=2,setpoint_scale=1,refresh_interval=20" }
Number HVAC_Temperature "Temperature [%.1f F]" &lt;temperature&gt; (gHVAC) {zwave="7:1:command=sensor_multilevel,sensor_type=1,refresh_interval=60" }
Number HVAC_Humidity "Rel Humidity [%.1f %%]" &lt;temperature&gt; (gHVAC) {zwave="7:2:command=sensor_multilevel,sensor_type=5,refresh_interval=60" }
Number HVAC_Mode "Mode [MAP(thermostatMode.map):%d]" (gHVAC) {zwave="7:command=thermostat_mode" }
Number HVAC_Fan_Mode "Fan Mode [MAP(thermostatFanMode.map):%d]" (gHVAC) {zwave="7:command=thermostat_fan_mode" }
Number HVAC_Operating_State "Op State [MAP(thermostatOpState.map):%d]" (gHVAC) {zwave="7:command=thermostat_operating_state,refresh_interval=60" }
Number HVAC_Fan_State "Fan State [MAP(thermostatFanState.map):%d]" (gHVAC) {zwave="7:command=thermostat_fan_state,refresh_interval=60" }
Number HVAC_Battery "Battery State [%d %%]" (gHVAC) {zwave="7:command=BATTERY"}
</code></pre></div></div>

<h4 id="tbz48-thermostat-does-not-have-humidity-sensor">TBZ48 thermostat (does not have humidity sensor)</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number      HVAC_HeatSetPoint       "Heat Set [%.1f F]"                               &lt;thermostat&gt;   (HVAC)           {zwave="15:command=THERMOSTAT_SETPOINT,setpoint_type=1,setpoint_scale=1" }
Number      HVAC_CoolSetPoint       "Cool Set [%.1f F]"                               &lt;thermostat&gt;   (HVAC)           {zwave="15:command=thermostat_setpoint,setpoint_type=2,setpoint_scale=1" }
Number      HVAC_Temperature        "Thermostat temperature [%.1f °F]"                &lt;temperature&gt;  (HVAC)           {zwave="15:command=sensor_multilevel,sensor_type=1,refresh_interval=60"}
Number      HVAC_Mode               "Mode [MAP(thermostatMode.map):%s]"               &lt;climate&gt;      (HVAC)           {zwave="15:command=thermostat_mode"}
Number      HVAC_Fan_Mode           "Fan Mode [MAP(thermostatFanMode.map):%s]"        &lt;wind&gt;         (HVAC)           {zwave="15:command=thermostat_fan_mode"}
Number      HVAC_Operating_State    "Operation State [MAP(thermostatOpState.map):%s]" &lt;climate&gt;      (HVAC)           {zwave="15:command=thermostat_operating_state,refresh_interval=60"}
Number      HVAC_Fan_State          "Fan State [MAP(thermostatFanState.map):%s]"      &lt;wind&gt;         (HVAC)           {zwave="15:command=thermostat_fan_state"}
Number      HVAC_Battery            "HVAC battery state [%d %%]"                      &lt;battery&gt;      (HVAC,battery)   {zwave="15:command=BATTERY"}
</code></pre></div></div>

<h4 id="horstmann-hrt4-zw-thermostat">Horstmann HRT4-ZW Thermostat</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number  Battery_Sensor_Thermostat "Thermostat Battery: [%d %%]" &lt;battery&gt; (GF_Lounge,Battery) {zwave="31:command=battery"}
Number  Temp_Desired_Thermostat "Thermostat Desired Temp: [%.1f C]" &lt;temperature&gt; (GF_Lounge,MyOpenHAB) {zwave="31:command=thermostat_setpoint, setpoint_type=1"}
Number  Temp_Sensor_Thermostat  "Thermostat Measured Temp: [%.1f C]" &lt;temperature&gt;  (GF_Lounge,MyOpenHAB) {zwave="31:command=sensor_multilevel, sensor_type=1"}
Number  HeatCall_Thermostat "Thermostat calling for heat [MAP(heat.map):%d]"  &lt;fire&gt;  (GF_Lounge) {zwave="31:command=switch_binary"}
</code></pre></div></div>

<h4 id="horstmann-asr-zw-boiler-switch">Horstmann ASR-ZW Boiler Switch</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch  Boiler_Sensor "Boiler Switch" &lt;fire&gt;  (GF_Hall) {zwave="33:command=switch_binary"}
Number  Boiler_Thermo "Boiler Status [MAP(thermostatmode.map):%d]"  &lt;fire&gt;  (GF_Hall) {zwave="33:command=thermostat_mode,refresh_interval=600"}
</code></pre></div></div>

<h3 id="weather-stations">Weather Stations</h3>

<h4 id="z-weather-weather-station">Z-Weather Weather Station</h4>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Number  Windspeed       "Wind [%.2f m/s]"       &lt;wind&gt;  (weather_station)               {     zwave="5:command=sensor_multilevel,sensor_type=6,refresh_interval=300" }
Number  Luminance       "Luminance [%.1f %%]"   (weather_station)               { zwave="5:command=sensor_multilevel,sensor_type=3,refresh_interval=300" }
Number  RelativeHumidity        "Humidity [%.1f %%]"    (weather_station)               { zwave="5:command=sensor_multilevel,sensor_type=5,refresh_interval=300" }
Number  DewPoint        "Dew Point [%.1f °C]"   (weather_station)               { zwave="5:command=sensor_multilevel,sensor_type=11,refresh_interval=300" }
Number  BarometricPressure      "Barometric Pressure [%.1f kPa]"        (weather_station)               { zwave="5:command=sensor_multilevel,sensor_type=9,refresh_interval=300" }
Number  TempWeatherStation      "Temp Weatherstation [%.1f °C]" &lt;temperature&gt;   (weather_station)               { zwave="5:command=sensor_multilevel,sensor_type=1,refresh_interval=300" }
Number  BatteryWeatherStation   "Battery Weatherstation [%.2f %%]"      { zwave="5:command=battery,refresh_interval=600" }This page is an attempt to creating a complete working example of CT100 Thermostat support.
</code></pre></div></div>

<p>I found the parent page only had items so was missing the needed transforms and rules.
I also did not want to accidentally break formatting for other entries.</p>

<h3 id="rules">Rules</h3>

<p>So far I only have a rule that turns on the Fan if the system has been idle for an hour. A simple effort to keep the air an even temperature/humidity in the house. Here in Florida this will typically only happen late at night.</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import org.openhab.model.script.actions.Timer

val String PATTERN = "HH:mm "
var Timer timerFanIdle = null
var Timer timerFanCirculate = null
var Integer ruleRunning = 0

rule "Idle Fan"
when
    Item HVAC_Fan_State changed to 0
then
    var String ts = now.toString(PATTERN)
    if (timerFanIdle != null) {
      timerFanIdle.cancel
      timerFanIdle = null
    }
    if (timerFanCirculate != null) {
      timerFanCirculate.cancel
      timerFanCirculate = null
    }
    timerFanIdle = createTimer(now.plusMinutes(60)) [|
        ts = now.toString(PATTERN)
        ruleRunning = 1
        sendCommand(HVAC_Fan_Mode, 1)
        sendBroadcastNotification(ts + "Run Fan to circulate")
        timerFanCirculate = createTimer(now.plusMinutes(15)) [|
                ts = now.toString(PATTERN)
          sendCommand(HVAC_Fan_Mode, 0)
          ruleRunning = 0 ]
        ]
     }
end

rule "Running Fan"
when
    Item HVAC_Fan_State changed to 1
then
    var String ts = now.toString(PATTERN)
    if (ruleRunning == 0) {
      if (timerFanIdle != null) {
        timerFanIdle.cancel
        timerFanIdle = null
      }
      if (timerFanCirculate != null) {
        timerFanCirculate.cancel
        timerFanCirculate = null
      }
    }
</code></pre></div></div>

<p>A second set of rules which simply turns on the heat in the morning (to 63F), lowers it to 60F for mid day, and sets it to 59F at night.</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rule "climate_morning"                                                 
when                                                                   
  Time cron "0 40 6 1/1 * ? *"                                         
then                                                                   
  logInfo("climate", "Temp: " + HVAC_Temperature.state + "; Target: 63")  
  sendCommand(HVAC_HeatSetPoint, 63)                                   
end                                                                    
                                                                       
rule "climate_day"                                                     
when                                                                   
  Time cron "0 0 11 1/1 * ? *"                                         
then                                                                   
  logInfo("climate", "Temp: " + HVAC_Temperature.state + "; Target: 60")  
  sendCommand(HVAC_HeatSetPoint, 60)                                   
end                                                                    
                                                                       
rule "climate_night"                                                   
when                                                                   
  Time cron "0 30 22 1/1 * ? *"                                        
then                                                                   
  logInfo("climate", "Temp: " + HVAC_Temperature.state + "; Target: 59")  
  sendCommand(HVAC_HeatSetPoint, 59)                                   
end
</code></pre></div></div>

<h2 id="z-wave-security-testing">Z-Wave Security Testing</h2>

<p>Many Z-Wave devices communicate with a basic radio protocol which can be intercepted or spoofed.  But Z-Wave also supports encrypted communications via the Security Command Class which is used for high value use cases such as door locks.  The Security Class provides extra protection to help prevent messages from being intercepted and/or spoofed.</p>

<ul>
  <li>Lock and unlock a door lock</li>
  <li>Reports battery percentage</li>
  <li>Update Lock status</li>
  <li>Set user codes</li>
</ul>

<h3 id="general-notes">General notes</h3>

<ul>
  <li>If you are using this code with a door lock, note that the toggle switch on the GUI may not represent the true state of the lock.  Please manually check that your doors are locked at night.</li>
  <li>The Security command classes in openhab are beta, use at your own risk!</li>
  <li>As with all modern crypto, the encryption is only as strong as the key.  Please take some time to generate a random key and do not use all zeros, etc.</li>
  <li>Door locks have very limited range.  This is not specific to openHAB and appears to be the case in general.  If the door lock is more than a few feet away from the controller, you will likely need a repeater (appliance module) for reliable communication.</li>
  <li>The secure protocol has more overhead than normal communications.  For example, turning on a light is near instantaneous - you hit the switch in the UI and light comes on very quickly.  Secure messages take much longer as there are messages to exchange prior to sending the actual message.  When locking/unlocking a door, its typical to take 5-10 seconds for the lock to respond.  It will then take additional time for the status to update on the UI.</li>
</ul>

<h3 id="limitationsknown-issues">Limitations/Known Issues</h3>

<p>Not a wishlist, just things that are necessary for the bare minimum functionality that arent working yet</p>

<ul>
  <li>Do not do a habmin reinitialize on a door lock.  It has been known to cause issues and require a new secure repairing to restore functionality</li>
</ul>

<h3 id="configuration">Configuration</h3>

<ul>
  <li>Edit <code class="highlighter-rouge">services/zwave.cfg</code> and add a new entry. You must replace each number with random hex digits (<a href="https://www.grc.com/passwords.htm">GRCs password generator</a> is a good source of random numbers):</li>
</ul>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>networkKey=0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##
</code></pre></div></div>

<ul>
  <li>
    <p>If you have already paired the device with openHAB you must unpair it using the exclusion function.  After it has been excluded, Stop openHAB and delete the etc/zwave/node#.xml that corresponded to the device</p>
  </li>
  <li>
    <p>Hard reset the device.  NOTE: if this is a door lock, this will likely erase all door codes you have programmed!</p>
  </li>
</ul>

<h3 id="steps-to-test">Steps to test</h3>

<ol>
  <li>Note that pairing process is different than with other Z-Wave devices. The Z-Wave controller needs to stay connected to the machine running openHAB and it needs to be very close to the secure device (a foot or less) during pairing.</li>
  <li>Put the Z-Wave controller into inclusion mode using HABmin <img src="http://community-openhab-org.s3-eu-central-1.amazonaws.com/original/1X/63ec67c2a6dff6a42c8ef18e46333b0404953cb7.png" alt="habmin" />
    <ul>
      <li>trigger secure pair from the device per the instructions.  You should see lots of activity in the log file at this time.  The device make show a confirmation or make noise that it is complete, but that is often premature. After a minute or 2, check your logs for “Secure Inclusion complete” or “Secure Inclusion FAILED”.  If it was complete, WAIT until you see “Node advancer: loop - DONE” before continuing to the next step.  This is the critical indication that openhab is done interrogating the device to see which commands it supports.  This literally took 4 minutes with my Yale lock, so be patient.</li>
    </ul>
  </li>
  <li>If secure inclusion failed, you can stop the server right away.  Post your results to the thread with the device you are using and the full openhab.log file.  Before trying to secure pair again, you must exclude the device using habmin</li>
  <li>Stop the openHAB server.  You will now add the device to the items config file.  For example, door lock would require 3 new entries: 1) control the lock, 2) show the current state (requesting a lock/unlock doesnt mean it worked, and someone can manually lock/unlock at any time, so its critical to NOT rely on the state of the switch), and 3) show battery status. For example:</li>
</ol>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch Door_Lock "Front door lock control" &lt;none&gt; (GF_Office) {zwave="#:command=door_lock"}
Contact Door_Basic "Front door lock status [%s]" &lt;lock&gt; (GF_Office) {zwave="#:command=door_lock,refresh_interval=120"}
Number Door_Corridor_Battery "Front door lock battery level [%d %%]" (GF_Office) { zwave="#:command=battery,refresh_interval=43200" }
</code></pre></div></div>

<p>Be sure to replace # above with the id of your door lock from the secure pairing session</p>

<ol>
  <li>
    <p>start openHAB, wait for everything to initialize and check the logs for errors</p>
  </li>
  <li>
    <p>Try the switch and wait 10 seconds.  If you hear the lock turn, great!  If not, the switch may have been in the wrong position to begin with, so try it again and wait 10 seconds</p>
  </li>
</ol>

<h3 id="user-codes">User Codes</h3>

<p>The user code command class allows the door entry codes to be set on the door lock by OH.  Currently this is a manual process which requires editing the node xml file.  Hopefully this will change in the future with OpenHab2.</p>

<p>The friendlyName value below is just a way for humans to track the codes.  The friendlyName is never sent to the door lock.  OH and the door lock track codes by the position in the userCodeList list.</p>

<h3 id="adding-codes">Adding Codes</h3>

<ol>
  <li>Make a backup of all files in openhabhome\etc\zwave.  Move the backup outside of the zwave directory.</li>
  <li>Open the node xml file for the door lock with a text editor.  Search for “<commandClass>USER_CODE</commandClass>” and you should see something like the example below.
<strong>NOTE:</strong> If you dont see the USER_CODE section, you probably paired the lock with OH before user code support was added to the security branch.  Do a git pull, then exclude and re-perform the secure inclusion process as described above</li>
</ol>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;entry&gt;</span>
   <span class="nt">&lt;commandClass&gt;</span>USER_CODE<span class="nt">&lt;/commandClass&gt;</span>
   <span class="nt">&lt;userCodeCommandClass&gt;</span>
     <span class="nt">&lt;version&gt;</span>1<span class="nt">&lt;/version&gt;</span>
     <span class="nt">&lt;instances&gt;</span>1<span class="nt">&lt;/instances&gt;</span>
     <span class="nt">&lt;numberOfUsersSupported&gt;</span>30<span class="nt">&lt;/numberOfUsersSupported&gt;</span>
     <span class="nt">&lt;userCodeList/&gt;</span>
   <span class="nt">&lt;/userCodeCommandClass&gt;</span>
 <span class="nt">&lt;/entry&gt;</span>
</code></pre></div></div>

<ol>
  <li>Note the value of numberOfUsersSupported.  This is the maximum number of user codes you can store in the lock.  If this value is zero, than no codes can be stored</li>
  <li>You will now edit the “<userCodeList></userCodeList>” line.  Each code is given a friendly name to go along with the code.  For example to add the user “Dave” with the code “1234” it would look like this:</li>
</ol>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;entry&gt;</span>
  <span class="nt">&lt;commandClass&gt;</span>USER_CODE<span class="nt">&lt;/commandClass&gt;</span>
  <span class="nt">&lt;userCodeCommandClass&gt;</span>
    <span class="nt">&lt;version&gt;</span>1<span class="nt">&lt;/version&gt;</span>
    <span class="nt">&lt;instances&gt;</span>1<span class="nt">&lt;/instances&gt;</span>
    <span class="nt">&lt;numberOfUsersSupported&gt;</span>30<span class="nt">&lt;/numberOfUsersSupported&gt;</span>
    <span class="nt">&lt;userCodeList&gt;</span>
      <span class="nt">&lt;userCode&gt;</span>
        <span class="nt">&lt;friendlyName&gt;</span>Dave<span class="nt">&lt;/friendlyName&gt;</span>
        <span class="nt">&lt;code&gt;</span>1234<span class="nt">&lt;/code&gt;</span>
      <span class="nt">&lt;/userCode&gt;</span>
    <span class="nt">&lt;/userCodeList&gt;</span>
  <span class="nt">&lt;/userCodeCommandClass&gt;</span>
<span class="nt">&lt;/entry&gt;</span>
</code></pre></div></div>

<ol>
  <li>To add multiple codes, simply repeat the userCode block, like so:</li>
</ol>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;entry&gt;</span>
  <span class="nt">&lt;commandClass&gt;</span>USER_CODE<span class="nt">&lt;/commandClass&gt;</span>
  <span class="nt">&lt;userCodeCommandClass&gt;</span>
    <span class="nt">&lt;version&gt;</span>1<span class="nt">&lt;/version&gt;</span>
    <span class="nt">&lt;instances&gt;</span>1<span class="nt">&lt;/instances&gt;</span>
    <span class="nt">&lt;numberOfUsersSupported&gt;</span>30<span class="nt">&lt;/numberOfUsersSupported&gt;</span>
    <span class="nt">&lt;userCodeList&gt;</span>
      <span class="nt">&lt;userCode&gt;</span>
        <span class="nt">&lt;friendlyName&gt;</span>Dave<span class="nt">&lt;/friendlyName&gt;</span>
        <span class="nt">&lt;code&gt;</span>1234<span class="nt">&lt;/code&gt;</span>
      <span class="nt">&lt;/userCode&gt;</span>
      <span class="nt">&lt;userCode&gt;</span>
        <span class="nt">&lt;friendlyName&gt;</span>Bob<span class="nt">&lt;/friendlyName&gt;</span>
        <span class="nt">&lt;code&gt;</span>5678<span class="nt">&lt;/code&gt;</span>
      <span class="nt">&lt;/userCode&gt;</span>
    <span class="nt">&lt;/userCodeList&gt;</span>
  <span class="nt">&lt;/userCodeCommandClass&gt;</span>
<span class="nt">&lt;/entry&gt;</span>
</code></pre></div></div>

<ol>
  <li>Once your edits are complete, restart OH and your changes should take effect shortly.</li>
</ol>

<p><strong>Editing codes</strong></p>

<ol>
  <li>You can add or change codes at any time, just edit the node xml and restart OH</li>
  <li>If you are removing an item from the list, set the code to 0 (zero) and recycle.  This will trigger OH to tell the door lock to remove the code in that position from the door lock.  Test it out to make sure the code no longer works, then you can remove that userCode block</li>
</ol>

    </div>
  </div>
</section>






<footer>
  <div class="container">
    <div class="row">
        <div class="col s12 m7">
            Copyright &copy; 2017 by the <a href="https://github.com/openhab">openHAB Community</a> and the <a href="http://www.openhabfoundation.org/">openHAB&nbsp;Foundation&nbsp;e.V.</a>
        </div>
        <div class="col s12 m5">
            <ul class="list-inline right-align">
               <li><a href="/imprint.html">Imprint</a></li>
               <li><a href="/privacy.html">Privacy Policy</a></li>
               <li><a href="http://www.openhab.org">openHAB Website</a></li>
            </ul>
        </div>
    </div>
  </div>
</footer>
<script src="/v2.1/js/jquery.min.js"></script>
<script src="/v2.1/js/jquery.scrollme.min.js"></script>
<script src="/v2.1/js/jquery.sticky.js"></script>
<script src="/v2.1/js/materialize.min.js"></script>
<script src="/v2.1/js/init.js"></script>

<script>
$(document).ready(function () {

    $('#oh2-checkbox').change(function () {
        if (this.checked) $('.since-2x').show('slow');
        else $('.source-oh2').hide('slow');
    });

    $('#oh1-checkbox').change(function () {
        if (this.checked) $('.since-1x').show('slow');
        else $('.source-oh1').hide('slow');
    });

    $('#legacy-checkbox').change(function () {
        if (this.checked) $('.install-legacy').show('slow');
        else $('.install-legacy').hide('slow');
    });

    $('#manual-checkbox').change(function () {
        if (this.checked) $('.install-manual').show('slow');
        else $('.install-manual').hide('slow');
    });

});
</script>

</body>
</html>