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>Russound - 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/russound/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 & Discovery</a></li>
<li><a href="/v2.1/concepts/audio.html">Audio & 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 & 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 & 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 & 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/russound/readme.html">latest version</a></li>
<li><a href="/v2.1/../v2.2/addons/bindings/russound/readme.html">v2.2</a></li>
<li><a href="/v2.1/addons/bindings/russound/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="russound-binding">Russound Binding</h1>
<p>This binding provides integration with any Russound system that support the RIO protocol (all MCA systems, all X systems). This binding provides compatibility with RIO Protocol v1.10. The protocol document can be found in the Russound Portal (“RIO Protocol for 3rd Party Integrators.pdf”). Please update to the latest firmware to provide full compatibility with this binding. This binding does provide full feedback from the Russound system if events occur outside of openHAB (such as keypad usage).</p>
<p><em>Warning:</em> Russound becomes unstable if you have two IP based clients connected to the same system. Do NOT run multiple instances of this binding against the same system - this definitely causes unstability. Running this binding in addition to the MyRussound application seems to work fine however.</p>
<p><em>Warning:</em> Try to avoid having multiple media management functions open in different clients (keypads, My Russound app, HABPanel, etc). Although it seems to work a majority of the times, there have been instances where the sessions become confused.</p>
<h2 id="supported-bridgesthings">Supported Bridges/Things</h2>
<ul>
<li>Bridge: Russound System (usually the main controller)</li>
<li>Bridge: Russound Controller (1-6 controllers supported)</li>
<li>Thing: Russound Source (1-8 sources supported)</li>
<li>Thing: Russound Zone (1-8 [depending on the controller] zones supported for each controller)</li>
</ul>
<h2 id="device-discovery">Device Discovery</h2>
<p>The Russound binding does support devices discovery via the paperUI. When you start device discovery, the system will scan all network interfaces and <strong>all IP Addresses in the subnet on each interface</strong> looking for a Russound system device. If found, the device will be added to the inbox. Adding the device will then start a scan of the device to discover all the controllers, sources, and zones attached defined on the device. As these are found, they will be added to the inbox.</p>
<h2 id="habpanel-or-other-ui">HABPANEL or other UI</h2>
<p>All media management functions are supported to allow building of a dynamic UI for the various streaming sources. All media management channels begin with “mm”. An example HABPanel implementation can be found in the HABPanel forum.</p>
<h2 id="thing-configuration">Thing Configuration</h2>
<p>The following configurations occur for each of the bridges/things:</p>
<h3 id="russound-system">Russound System</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>ipAddress</td>
<td>string</td>
<td>IP Address or host name of the russound system (usually main controller)</td>
</tr>
<tr>
<td>ping</td>
<td>int</td>
<td>Interval, in seconds, to ping the system to keep connection alive</td>
</tr>
<tr>
<td>retryPolling</td>
<td>int</td>
<td>Interval, in seconds, to retry a failed connection attempt</td>
</tr>
<tr>
<td>scanDevice</td>
<td>boolean</td>
<td>Whether to scan device at startup and discover controllers/sources/zones</td>
</tr>
</tbody>
</table>
<h3 id="russound-source">Russound Source</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>source</td>
<td>int</td>
<td>The source # (1-12)</td>
</tr>
</tbody>
</table>
<h3 id="russound-controller">Russound Controller</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>controller</td>
<td>int</td>
<td>The controller address # (1-6)</td>
</tr>
</tbody>
</table>
<h3 id="russound-zone">Russound Zone</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>zone</td>
<td>int</td>
<td>The zone # (1-6)</td>
</tr>
</tbody>
</table>
<h2 id="channels">Channels</h2>
<p>The following channels are supported for each bridge/thing</p>
<h3 id="russound-system-1">Russound System</h3>
<table>
<thead>
<tr>
<th>Channel Type ID</th>
<th>Read/Write</th>
<th>Item Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>lang</td>
<td>RW</td>
<td>String</td>
<td>System language (english, chinese and russian are supported)</td>
</tr>
<tr>
<td>allon</td>
<td>RW</td>
<td>Switch</td>
<td>Turn on/off all zones</td>
</tr>
<tr>
<td>controller</td>
<td>R</td>
<td>String</td>
<td>JSON representation of all controllers in the system</td>
</tr>
<tr>
<td>sources</td>
<td>R</td>
<td>String</td>
<td>JSON representation of all sources in the system</td>
</tr>
</tbody>
</table>
<h4 id="notes">Notes</h4>
<ol>
<li>The JSON will look like: <code class="highlighter-rouge">[{"id":1, "name":"XXX"},...]</code>. The controller channel will contain up to 6 controllers and the sources will contain up to 8 sources (depending on how the system is configured).</li>
</ol>
<h3 id="russound-source-please-see-source-cross-reference-below-for-what-is-supported-by-which-sources">Russound Source (please see source cross-reference below for what is supported by which sources)</h3>
<table>
<thead>
<tr>
<th>Channel Type ID</th>
<th>Read/Write</th>
<th>Item Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>name</td>
<td>R</td>
<td>String</td>
<td>The name of the source</td>
</tr>
<tr>
<td>type</td>
<td>R</td>
<td>String</td>
<td>The type of source</td>
</tr>
<tr>
<td>channel</td>
<td>R</td>
<td>String</td>
<td>The currently playing channel (usually tuner frequency)</td>
</tr>
<tr>
<td>channelname</td>
<td>R</td>
<td>String</td>
<td>The currently playing channel name</td>
</tr>
<tr>
<td>composername</td>
<td>R</td>
<td>String</td>
<td>The currently playing composer name</td>
</tr>
<tr>
<td>genre</td>
<td>R</td>
<td>String</td>
<td>The currently playing genre</td>
</tr>
<tr>
<td>artistname</td>
<td>R</td>
<td>String</td>
<td>The currently playing artist name</td>
</tr>
<tr>
<td>albumname</td>
<td>R</td>
<td>String</td>
<td>The currently playing album name</td>
</tr>
<tr>
<td>coverarturl</td>
<td>R</td>
<td>String</td>
<td>The currently playing URL to the cover art</td>
</tr>
<tr>
<td>playlistname</td>
<td>R</td>
<td>String</td>
<td>The currently playing play list name</td>
</tr>
<tr>
<td>songname</td>
<td>R</td>
<td>String</td>
<td>The currently playing song name</td>
</tr>
<tr>
<td>rating</td>
<td>R</td>
<td>String</td>
<td>The rating for the currently played song (can be changed via zone)</td>
</tr>
<tr>
<td>mode</td>
<td>R</td>
<td>String</td>
<td>The provider mode or streaming service</td>
</tr>
<tr>
<td>shufflemode</td>
<td>R</td>
<td>String</td>
<td>The current shuffle mode</td>
</tr>
<tr>
<td>repeatmode</td>
<td>R</td>
<td>String</td>
<td>The current repeat mode</td>
</tr>
<tr>
<td>programservicename</td>
<td>R</td>
<td>String</td>
<td>The program service name (PSN)</td>
</tr>
<tr>
<td>radiotext</td>
<td>R</td>
<td>String</td>
<td>The radio text</td>
</tr>
<tr>
<td>radiotext2</td>
<td>R</td>
<td>String</td>
<td>The radio text (line 2)</td>
</tr>
<tr>
<td>radiotext3</td>
<td>R</td>
<td>String</td>
<td>The radio text (line 3)</td>
</tr>
<tr>
<td>radiotext4</td>
<td>R</td>
<td>String</td>
<td>The radio text (line 4)</td>
</tr>
<tr>
<td>volume</td>
<td>R</td>
<td>String</td>
<td>The source’ s volume level (undocumented)</td>
</tr>
<tr>
<td>banks</td>
<td>RW</td>
<td>String</td>
<td>JSON representation of all banks in the system</td>
</tr>
<tr>
<td>mmscreen</td>
<td>R</td>
<td>String</td>
<td>The media management screen id</td>
</tr>
<tr>
<td>mmtitle</td>
<td>R</td>
<td>String</td>
<td>The media management screen title</td>
</tr>
<tr>
<td>mmmenu</td>
<td>R</td>
<td>String</td>
<td>The media management screen menu json</td>
</tr>
<tr>
<td>mmattr</td>
<td>R</td>
<td>String</td>
<td>The media management attribute</td>
</tr>
<tr>
<td>mmmenubuttonoktext</td>
<td>R</td>
<td>String</td>
<td>The media management OK button text</td>
</tr>
<tr>
<td>mmmenubuttonbacktext</td>
<td>R</td>
<td>String</td>
<td>The media management Cancel button text</td>
</tr>
<tr>
<td>mminfotext</td>
<td>R</td>
<td>String</td>
<td>The media management information text</td>
</tr>
<tr>
<td>mmhelptext</td>
<td>R</td>
<td>String</td>
<td>The media management help text</td>
</tr>
<tr>
<td>mmtextfield</td>
<td>R</td>
<td>String</td>
<td>The media management text field</td>
</tr>
</tbody>
</table>
<h4 id="notes-1">Notes</h4>
<ol>
<li>
<p>Banks are only supported tuner sources and the JSON array will have exactly 6 banks in it (with IDs from 1 to 6). For non-tuner sources, an empty JSON array (<code class="highlighter-rouge">[]</code>) will be returned. For tuner sources, the JSON will look like: <code class="highlighter-rouge">[{"id":1, "name":"XXX"},...]</code>. A bank’ s name can be updated by sending the representation back to the channel. Example: <code class="highlighter-rouge">[{"id":1,"name":"FM1"},{"id":3,"name":"FM3"}]</code> will set the name of bank #1 to “FM1 and bank#3 to “FM3” (leaving all other bank names the same). After an update, the banks channel will be refreshed with the full JSON representation of all banks. If the name has not been changed in the refreshed value, the russound rejected the name change for some reason (generally too long of a name or a duplicate name).</p>
</li>
<li>
<p>All media management channels are ONLY valid on streaming sources (not tuners). All channels will return a JSON representation like <code class="highlighter-rouge">{"id":xxx, "value":"yyy"}</code> where ‘ xxx’ will be a sequential identifier of the message and ‘ yyy’ will be the payload. The payload will be a simple string in all cases. However, the mmmenu string will be a raw JSON string representing the menu structure. Please review the media management section in the RIO protocol document from russound for the specifications.</p>
</li>
</ol>
<h3 id="russound-controller-1">Russound Controller</h3>
<table>
<thead>
<tr>
<th>Channel Type ID</th>
<th>Read/Write</th>
<th>Item Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>zones</td>
<td>R</td>
<td>String</td>
<td>The JSON representation of all zones in the controller</td>
</tr>
</tbody>
</table>
<h4 id="notes-2">Notes</h4>
<ul>
<li>The JSON will look like: <code class="highlighter-rouge">[{"id":1, "name":"XXX"},...]</code></li>
</ul>
<h3 id="russound-zone-1">Russound Zone</h3>
<table>
<thead>
<tr>
<th>Channel Type ID</th>
<th>Read/Write</th>
<th>Item Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>name</td>
<td>R</td>
<td>String</td>
<td>The name of the zone (changed by SCS-C5 software)</td>
</tr>
<tr>
<td>source</td>
<td>RW</td>
<td>Number</td>
<td>The (physical) number for the current source</td>
</tr>
<tr>
<td>bass</td>
<td>RW</td>
<td>Number</td>
<td>The bass setting (-10 to 10)</td>
</tr>
<tr>
<td>treble</td>
<td>RW</td>
<td>Number</td>
<td>The treble setting (-10 to 10)</td>
</tr>
<tr>
<td>balance</td>
<td>RW</td>
<td>Number</td>
<td>The balance setting (-10 [full left] to 10 [full right])</td>
</tr>
<tr>
<td>loudness</td>
<td>RW</td>
<td>Switch</td>
<td>Set’ s the loudness on/off</td>
</tr>
<tr>
<td>turnonvolume</td>
<td>RW</td>
<td>Dimmer</td>
<td>The initial volume when turned on (0 to 100)</td>
</tr>
<tr>
<td>donotdisturb</td>
<td>RW</td>
<td>String</td>
<td>The do not disturb setting (on/off/slave)</td>
</tr>
<tr>
<td>partymode</td>
<td>RW</td>
<td>String</td>
<td>The party mode (on/off/master)</td>
</tr>
<tr>
<td>status</td>
<td>RW</td>
<td>Switch</td>
<td>Whether the zone is on or off</td>
</tr>
<tr>
<td>volume</td>
<td>RW</td>
<td>Dimmer</td>
<td>The current volume of the zone (0 to 100)</td>
</tr>
<tr>
<td>mute</td>
<td>RW</td>
<td>Switch</td>
<td>Whether the zone is muted or not</td>
</tr>
<tr>
<td>page</td>
<td>R</td>
<td>Switch</td>
<td>Whether the zone is in paging mode or not</td>
</tr>
<tr>
<td>sharedsource</td>
<td>R</td>
<td>Switch</td>
<td>Whether the zone’ s source is being shared or not</td>
</tr>
<tr>
<td>sleeptimeremaining</td>
<td>RW</td>
<td>Number</td>
<td>Sleep time, in minutes, remaining (0 to 60 in 5 step increments)</td>
</tr>
<tr>
<td>lasterror</td>
<td>R</td>
<td>String</td>
<td>The last error that occurred in the zone</td>
</tr>
<tr>
<td>enabled</td>
<td>R</td>
<td>Switch</td>
<td>Whether the zone is enabled or not</td>
</tr>
<tr>
<td>repeat</td>
<td>W</td>
<td>Switch</td>
<td>Toggle the repeat mode for the current source</td>
</tr>
<tr>
<td>shuffle</td>
<td>W</td>
<td>Switch</td>
<td>Toggle the shuffle mode for the current source</td>
</tr>
<tr>
<td>rating</td>
<td>W</td>
<td>Switch</td>
<td>Signal a like (ON) or dislike (OFF) to the current source</td>
</tr>
<tr>
<td>keypress</td>
<td>W</td>
<td>String</td>
<td>(Advanced) Send a keypress from the zone</td>
</tr>
<tr>
<td>keyrelease</td>
<td>W</td>
<td>String</td>
<td>(Advanced) Send a keyrelease from the zone</td>
</tr>
<tr>
<td>keyhold</td>
<td>W</td>
<td>String</td>
<td>(Advanced) Send a keyhold from the zone</td>
</tr>
<tr>
<td>keycode</td>
<td>W</td>
<td>String</td>
<td>(Advanced) Send a keycode from the zone</td>
</tr>
<tr>
<td>event</td>
<td>W</td>
<td>String</td>
<td>(Advanced) Send an event from the zone</td>
</tr>
<tr>
<td>systemfavorites</td>
<td>RW</td>
<td>String*</td>
<td>The JSON representation for system favorites</td>
</tr>
<tr>
<td>zonefavorites</td>
<td>RW</td>
<td>String**</td>
<td>The JSON representation for zone favorites</td>
</tr>
<tr>
<td>presets</td>
<td>RW</td>
<td>String***</td>
<td>The JSON representation for zone presets</td>
</tr>
<tr>
<td>mminit</td>
<td>W</td>
<td>Switch<em>**</em></td>
<td>Whether to initial a media management session (ON) or close an existing one (OFF)</td>
</tr>
<tr>
<td>mmcontextmenu</td>
<td>W</td>
<td>Switch<em>**</em></td>
<td>Whether to initial a media management context session (ON) or close an existing one (OFF)</td>
</tr>
</tbody>
</table>
<h4 id="notes-3">Notes:</h4>
<ol>
<li>As of the time of this document, rating ON (like) produced an error in the firmware from the related command. This has been reported to Russound.</li>
<li>keypress/keyrelease/keyhold/keycode/event are advanced commands that will pass the related event string to Russound (i.e. “EVENT C[x].Z[y]!KeyPress [stringtype]”). Please see the “RIO Protocol for 3rd Party Integrators.pdf” (found at the Russound Portal) for proper string forms.</li>
<li>If you send a OnOffType to the volume will have the same affect as turning the zone on/off (ie sending OnOffType to “status”)</li>
<li>The volume PercentType will be scaled to Russound’ s volume of 0-50 (ie 50% = volume of 25, 100% = volume of 50)</li>
<li>Initialize a media management session by sending ON to the channel. The related source thing will then start sending out media management information in the MM channels. To close the session - simply send OFF to the channel. Sending OFF to the channel when a session has not been initialized does nothing. Likewise if the related source is a tuner, this command does nothing.</li>
</ol>
<h5 id="system-favorites">System Favorites</h5>
<p>The JSON will look like <code class="highlighter-rouge">[{"id":xxx,"valid":true,"name":"yyyy"},...]</code> and will have a representation for each VALID favorite on the system (ie where “valid” is true). You will have up to 32 system favorites in the JSON array (the ID field will be between 1 and 32). System favorites will be the same on ALL zones (because they are system level). This channel appears on the zone because when you send a system favorite representation to zone channel, it sets the system favorite to what is playing in the zone.</p>
<p>There are three different ways to use this channel:</p>
<ol>
<li>Save a system favorite. Send a representation with “valid” set to true. Example: to set system favorite 3 to what is playing in the zone: <code class="highlighter-rouge">[{"id":3,"valid":true,"name":"80s Rock"}]</code>. If system favorite 3 was invalid, this would save what is currently playing and make it valid. If system favorite 3 was already valid, this would overlay the favorite with what is currently playing and change it’ s name.</li>
<li>Update the name of a system favorite. Send a representation of an existing ID with “valid” set to true and the new name. Example: we could update system favorite 3 (after the above statement) by sending: <code class="highlighter-rouge">[{"id":3,"valid":true,"name":"80s Rock Even More"}]</code>. Note this will ONLY change the name (this will NOT save what is currently playing to the system favorite).</li>
<li>Delete a system favorite. Send a representation with “valid” as false. Example: deleting system favorite 3 (after the above statements) by sending: <code class="highlighter-rouge">[{"id":3","valid":false"}]</code></li>
</ol>
<p>The channel will be refreshed with the new representation after processing. If the refreshed representation doesn’ t include the changes, the russound system rejected them for some reason (generally length of the name).</p>
<h5 id="zone-favorites">Zone Favorites</h5>
<p>The JSON will look like <code class="highlighter-rouge">[{"id":xxx,"valid":true,"name":"yyyy"},...]</code> and will have a representation for each VALID favorite in the zone (ie where “valid” is true). You will have up to 2 zone favorites in the JSON array (the ID field will be between 1 and 2).</p>
<p>There are two different ways to use this channel:</p>
<ol>
<li>Save a zone favorite. Send a representation with “valid” set to true. Example: to set zone favorite 2 to what is playing in the zone: <code class="highlighter-rouge">[{"id":2,"valid":true,"name":"80s Rock"}]</code>.</li>
<li>Delete a zone favorite. Send a representation with “valid” as false. Example: deleting zone favorite 2 (after the above statement) by sending: <code class="highlighter-rouge">[{"id":2","valid":false"}] </code></li>
</ol>
<p>There is no ability to change JUST the name. Sending a new name will save the new name AND set the favorite to what is currently playing.</p>
<p>The channel will be refreshed with the new representation after processing. If the refreshed representation doesn’ t include the changes, the russound system rejected them for some reason (generally length of the name).</p>
<h5 id="zone-presets">Zone Presets</h5>
<p>The JSON will look like <code class="highlighter-rouge">[{"id":xxx,"valid":true,"name":"yyyy", "bank": xxx, "bankPreset":yyyy},...]</code> and will have a representation for each VALID preset in the zone (ie where “valid” is true). Please note that this channel is only valid if the related source is a tuner. If not a tuner, an empty json array will be returned. You will have up to 36 presets to choose from (ID from 1 to 36). The “bank” and “bankPreset” are readonly (will be ignored if sent) and are informational only (i.e. specify the bank and the preset within the bank for convenience).</p>
<p>There are two different ways to use this channel:</p>
<ol>
<li>Save a preset. Send a representation to an ID that is invalid with “valid” set to true. Example: to set a zone pret 2 to what is playing in the zone: <code class="highlighter-rouge">[{"id":2,"valid":true,"name":"103.7 FM"}]</code>.</li>
<li>Save a preset with default name. Send a representation to an ID that is invalid with “valid” set to true. Example: to set a zone pret 2 to what is playing in the zone: <code class="highlighter-rouge">[{"id":2,"valid":true,"name":"103.7 FM"}]</code>.</li>
<li>Delete a zone favorite. Send a representation with “valid” as false. Example: deleting zone favorite 2 (after the above statement) by sending: <code class="highlighter-rouge">[{"id":2","valid":false"}]</code></li>
</ol>
<p>There is no ability to change JUST the name. Sending a new name will save the new name AND set the favorite to what is currently playing.</p>
<p>The channel will be refreshed with the new representation after processing. If the refreshed representation doesn’ t include the changes, the russound system rejected them for some reason (generally length of the name).</p>
<h3 id="source-channel-support-cross-reference">Source channel support cross reference</h3>
<table>
<thead>
<tr>
<th>Channel Type ID</th>
<th>Sirius</th>
<th>XM</th>
<th>SMS3</th>
<th>DMS 3.1 Media</th>
<th>DMS 3.1 AM/FM</th>
<th>iBridge</th>
<th>Internal AM/FM</th>
<th>Arcam T32</th>
<th>Others</th>
</tr>
</thead>
<tbody>
<tr>
<td>name</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>type</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>ipaddress</td>
<td> </td>
<td> </td>
<td>X</td>
<td>X</td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>composername</td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>channel</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>channelname</td>
<td>X</td>
<td>X</td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
</tr>
<tr>
<td>genre</td>
<td>X</td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
</tr>
<tr>
<td>artistname</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>albumname</td>
<td> </td>
<td> </td>
<td>X</td>
<td>X</td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>coverarturl</td>
<td>1</td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>playlistname</td>
<td> </td>
<td> </td>
<td>X</td>
<td>X</td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>songname</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>mode</td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>shufflemode</td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>repeatmode</td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>rating</td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>programservicename</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>radiotext</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td>X</td>
<td>X</td>
<td> </td>
</tr>
<tr>
<td>radiotext2</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
</tr>
<tr>
<td>radiotext3</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
</tr>
<tr>
<td>radiotext4</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
</tr>
</tbody>
</table>
<ol>
<li>Sirius Internal Radio Only</li>
</ol>
<h2 id="full-example">Full Example</h2>
<p>The following is an example of</p>
<ol>
<li>Main controller (#1) at ipaddress 192.168.1.24</li>
<li>One Sources connected to it (#1 is the internal AM/FM)</li>
<li>Four zones on the controller (1-4 in various rooms)</li>
</ol>
<p>.things</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>russound:rio:home [ ipAddress="192.168.1.24", ping=30, retryPolling=10 ]
russound:controller:1 (russound:rio:home) [ controller=1 ]
russound:source:1 (russound:rio:home) [ source=1 ]
russound:zone:1 (russound:controller:1) [ zone=1 ]
russound:zone:2 (russound:controller:1) [ zone=2 ]
russound:zone:3 (russound:controller:1) [ zone=3 ]
russound:zone:4 (russound:controller:1) [ zone=4 ]
</code></pre></div></div>
<p>This is an example of all the items that can be included (regardless of the above setup)
.items</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Switch Rio_Status "Status [%s]" { channel="russound:rio:home:status" }
Switch Rio_AllOn "All Zones" { channel="russound:rio:home:allon" }
String Rio_Zone_Name "Name [%s]" { channel="russound:zone:1:name" }
Switch Rio_Zone_Status "Status" { channel="russound:zone:1:status" }
Number Rio_Zone_Source "Source [%s]" { channel="russound:zone:1:source" }
Number Rio_Zone_Bass "Bass [%s]" { channel="russound:zone:1:bass" }
Number Rio_Zone_Treble "Treble [%s]" { channel="russound:zone:1:treble" }
Number Rio_Zone_Balance "Balance [%s]" { channel="russound:zone:1:balance" }
Switch Rio_Zone_Loudness "Loudness [%s]" { channel="russound:zone:1:loudness" }
Number Rio_Zone_TurnOnVolume "Turn on Volume [%s]" { channel="russound:zone:1:turnonvolume" }
String Rio_Zone_DoNotDisturb "Do not Disturb [%s]" { channel="russound:zone:1:donotdisturb" }
String Rio_Zone_PartyMode "Party Mode [%s]" { channel="russound:zone:1:partymode" }
Dimmer Rio_Zone_Volume "Volume [%s %%]" { channel="russound:zone:1:volume" }
Switch Rio_Zone_Mute "Mute [%s]" { channel="russound:zone:1:mute" }
Switch Rio_Zone_Page "Page [%s]" { channel="russound:zone:1:page" }
Switch Rio_Zone_SharedSource "Shared Source [%s]" { channel="russound:zone:1:sharedsource" }
Number Rio_Zone_SleepTime "Sleep Time Remaining [%s]" { channel="russound:zone:1:sleeptimeremaining" }
String Rio_Zone_LastError "Last Error [%s]" { channel="russound:zone:1:lasterror" }
Switch Rio_Zone_Enabled "Enabled [%s]" { channel="russound:zone:1:enabled" }
Switch Rio_Zone_Repeat "Toggle Repeat" { channel="russound:zone:1:repeat", autoupdate="false" }
Switch Rio_Zone_Shuffle "Toggle Shuffle" { channel="russound:zone:1:shuffle", autoupdate="false" }
Switch Rio_Zone_Rating "Rating" { channel="russound:zone:1:rating", autoupdate="false" }
String Rio_Src_Name "Name [%s]" { channel="russound:source:1:name" }
String Rio_Src_Type "Type [%s]" { channel="russound:source:1:type" }
String Rio_Src_Composer "Composer [%s]" { channel="russound:source:1:composername" }
String Rio_Src_Channel "Channel [%s]" { channel="russound:source:1:channel" }
String Rio_Src_ChannelName "Channel Name [%s]" { channel="russound:source:1:channelname" }
String Rio_Src_Genre "Genre [%s]" { channel="russound:source:1:genre" }
String Rio_Src_ArtistName "Artist [%s]" { channel="russound:source:1:artistname" }
String Rio_Src_AlbumName "Album [%s]" { channel="russound:source:1:albumname" }
String Rio_Src_Cover "Cover Art [%s]" { channel="russound:source:1:coverarturl" }
String Rio_Src_PlaylistName "PlayList [%s]" { channel="russound:source:1:playlistname" }
String Rio_Src_SongName "Song [%s]" { channel="russound:source:1:songname" }
String Rio_Src_Mode "Mode [%s]" { channel="russound:source:1:mode" }
String Rio_Src_Shuffle "Shuffle [%s]" { channel="russound:source:1:shufflemode" }
String Rio_Src_Repeat "Repeat [%s]" { channel="russound:source:1:repeatmode" }
String Rio_Src_Rating "Rating [%s]" { channel="russound:source:1:rating" }
String Rio_Src_ProgramServiceName "PSN [%s]" { channel="russound:source:1:programservicename" }
String Rio_Src_RadioText "Radio Text [%s]" { channel="russound:source:1:radiotext" }
String Rio_Src_RadioText2 "Radio Text #2 [%s]" { channel="russound:source:1:radiotext2" }
String Rio_Src_RadioText3 "Radio Text #3 [%s]" { channel="russound:source:1:radiotext3" }
String Rio_Src_RadioText4 "Radio Text #4 [%s]" { channel="russound:source:1:radiotext4" }
</code></pre></div></div>
<p>.sitemap</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Frame label="Russound" {
Text label="System" {
Selection item=Rio_Lang mappings=[ENGLISH="English", RUSSIAN="Russian", CHINESE="Chinese"]
Switch item=Rio_AllOn
}
Text label="Controller 1" {
Text label="Zone 1" {
Text item=Rio_Zone_Name
Switch item=Rio_Zone_Status
Selection item=Rio_Zone_Source mappings=[1="AM/FM", 2="Stream #1", 3="Stream #2", 4="Stream #3"]
Setpoint item=Rio_Zone_Bass
Setpoint item=Rio_Zone_Treble
Setpoint item=Rio_Zone_Balance
Switch item=Rio_Zone_Loudness
Setpoint item=Rio_Zone_TurnOnVolume
Selection item=Rio_Zone_DoNotDisturb mappings=[ON="On", OFF="Off", SLAVE="Slave"]
Selection item=Rio_Zone_PartyMode mappings=[ON="On", OFF="Off", MASTER="Master"]
Slider item=Rio_Zone_Volume
Switch item=Rio_Zone_Mute
Text item=Rio_Zone_Page
Text item=Rio_Zone_SharedSource
Setpoint item=Rio_Zone_SleepTime minValue="0" maxValue="60" step="5"
Text item=Rio_Zone_LastError
Text item=Rio_Zone_Enabled
Switch item=Rio_Zone_Shuffle mappings=[ON="Toggle"]
Switch item=Rio_Zone_Repeat mappings=[ON="Toggle"]
Switch item=Rio_Zone_Rating mappings=[ON="Like"]
Switch item=Rio_Zone_Rating mappings=[OFF="Dislike"]
Text label="Source" {
Text item= Rio_Src_Type
Text item= Rio_Src_IP
Text item= Rio_Src_Composer
Text item= Rio_Src_Channel
Text item= Rio_Src_ChannelName
Text item= Rio_Src_Genre
Text item= Rio_Src_ArtistName
Text item= Rio_Src_AlbumName
Text item= Rio_Src_Cover
Text item= Rio_Src_PlaylistName
Text item= Rio_Src_SongName
Text item= Rio_Src_Mode
Text item= Rio_Src_Shuffle
Text item= Rio_Src_Repeat
Text item= Rio_Src_Rating
Text item= Rio_Src_ProgramServiceName
Text item= Rio_Src_RadioText
Text item= Rio_Src_RadioText2
Text item= Rio_Src_RadioText3
Text item= Rio_Src_RadioText4
}
}
}
}
</code></pre></div></div>
</div>
</div>
</section>
<footer>
<div class="container">
<div class="row">
<div class="col s12 m7">
Copyright © 2017 by the <a href="https://github.com/openhab">openHAB Community</a> and the <a href="http://www.openhabfoundation.org/">openHAB Foundation 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>