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>Network - Bindings - openHAB 2 - Empowering the Smart Home</title>
<!-- CSS -->
<link type="text/css" rel="stylesheet" href="/v2.2/css/materialize.css" media="screen,projection" />
<link type="text/css" rel="stylesheet" href="/v2.2/css/pygments-jekyll-style.css" />
<link type="text/css" rel="stylesheet" href="/v2.2/css/styles.css" />
<link type="text/css" rel="stylesheet" href="/v2.2/css/openhab.css" />
<link type="text/css" rel="stylesheet" href="/v2.2/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="https://docs.openhab.org/addons/bindings/network/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.2/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.2/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.2/index.html">Home</a></li>
<li><a href="/tutorials/index.html">Tutorials</a></li>
<li><a href="/v2.2/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.2/introduction.html">Introduction</a></li>
<li><a href="/v2.2/concepts/index.html">Concepts</a>
<ul>
<li><a href="/v2.2/concepts/index.html">Overview</a></li>
<hr />
<li><a href="/v2.2/concepts/things.html">Things</a></li>
<li><a href="/v2.2/concepts/items.html">Items</a></li>
<li><a href="/v2.2/concepts/discovery.html">Inbox & Discovery</a></li>
<li><a href="/v2.2/concepts/audio.html">Audio & Voice</a></li>
</ul>
</li>
<li><a href="/v2.2/installation/index.html">Installation</a>
<ul>
<li><a href="/v2.2/installation/index.html">Overview</a></li>
<hr />
<li><a href="/v2.2/installation/linux.html">Linux</a></li>
<li><a href="/v2.2/installation/windows.html">Windows</a></li>
<li><a href="/v2.2/installation/macosx.html">Mac OS X</a></li>
<hr />
<li><a href="/v2.2/installation/openhabian.html">openHABian</a></li>
<li><a href="/v2.2/installation/docker.html">Docker</a></li>
<hr />
<li><a href="/v2.2/installation/rasppi.html">Raspberry Pi</a></li>
<li><a href="/v2.2/installation/pine.html">Pine A64</a></li>
<li><a href="/v2.2/installation/synology.html">Synology DiskStation</a></li>
<li><a href="/v2.2/installation/qnap.html">QNAP NAS</a></li>
<hr />
<li><a href="/v2.2/installation/security.html">Security & Remote Access</a></li>
<li><a href="http://www.myopenhab.org">myopenHAB</a></li>
</ul>
</li>
<li><a href="/v2.2/configuration/index.html">Configuration</a>
<ul>
<li><a href="/v2.2/configuration/index.html">Overview</a></li>
<hr />
<li><a href="/v2.2/configuration/things.html">Things</a></li>
<li><a href="/v2.2/configuration/items.html">Items</a></li>
<li><a href="/v2.2/configuration/sitemaps.html">Sitemaps</a></li>
<li><a href="/v2.2/configuration/transform.html">Transformations</a></li>
<li><a href="/v2.2/configuration/persistence.html">Persistence</a></li>
<li><a href="/v2.2/configuration/rules-dsl.html">Rules</a></li>
<li><a href="/v2.2/configuration/jsr223.html">JSR223 Scripting</a>
<ul>
<li><a href="/v2.2/configuration/jsr223.html">Overview</a>
<hr />
<li><a href="/v2.2/configuration/jsr223-js.html">Javascript</a></li>
<li><a href="/v2.2/configuration/jsr223-jython.html">Jython</a></li>
</ul>
</li>
<li><a href="/v2.2/configuration/services.html">Services</a></li>
<hr />
<li><a href="/v2.2/configuration/packages.html">Initial Setup Packages</a></li>
<li><a href="/v2.2/configuration/homebuilder.html">Home Builder</a></li>
<li><a href="/v2.2/configuration/paperui.html">Paper UI</a></li>
<li><a href="/v2.2/configuration/habmin.html">HABmin</a></li>
<li><a href="/v2.2/configuration/habpanel.html">HABPanel</a></li>
<li><a href="/v2.2/configuration/rules-ng.html">Rules (Experimental)</a></li>
<li><a href="/v2.2/configuration/editors.html">Editors</a></li>
<hr />
<li><a href="/v2.2/configuration/multimedia.html">Audio & Voice</a></li>
</ul>
</li>
<li><a href="/v2.2/addons/index.html">Add-ons</a>
<ul>
<li><a href="/v2.2/addons/index.html">Overview</a></li>
<hr />
<li><a href="/v2.2/addons/bindings.html">Bindings</a>
<ul>
<li><a href="/v2.2/addons/bindings.html">Overview</a></li>
<hr />
<li><a href="/v2.2/addons/bindings/airquality/readme.html">Air Quality</a></li>
<li><a href="/v2.2/addons/bindings/alarmdecoder1/readme.html">Alarm Decoder</a></li>
<li><a href="/v2.2/addons/bindings/allplay/readme.html">AllPlay</a></li>
<li><a href="/v2.2/addons/bindings/amazondashbutton/readme.html">Amazon Dash Button</a></li>
<li><a href="/v2.2/addons/bindings/anel1/readme.html">Anel NET-PwrCtrl</a></li>
<li><a href="/v2.2/addons/bindings/astro/readme.html">Astro</a></li>
<li><a href="/v2.2/addons/bindings/atlona/readme.html">Atlona</a></li>
<li><a href="/v2.2/addons/bindings/autelis/readme.html">Autelis Pool Control</a></li>
<li><a href="/v2.2/addons/bindings/avmfritz/readme.html">AVM FRITZ!</a></li>
<li><a href="/v2.2/addons/bindings/bigassfan/readme.html">BigAssFan</a></li>
<li><a href="/v2.2/addons/bindings/boschindego/readme.html">Bosch Indego</a></li>
<li><a href="/v2.2/addons/bindings/bticino1/readme.html">Bticino</a></li>
<li><a href="/v2.2/addons/bindings/caldav-command1/readme.html">CalDAV Command</a></li>
<li><a href="/v2.2/addons/bindings/caldav-personal1/readme.html">CalDAV Personal</a></li>
<li><a href="/v2.2/addons/bindings/chromecast/readme.html">Chromecast</a></li>
<li><a href="/v2.2/addons/bindings/cm11a/readme.html">Cm11a (X10 controller)</a></li>
<li><a href="/v2.2/addons/bindings/comfoair1/readme.html">ComfoAir</a></li>
<li><a href="/v2.2/addons/bindings/coolmasternet/readme.html">CoolMasterNet</a></li>
<li><a href="/v2.2/addons/bindings/denon1/readme.html">Denon</a></li>
<li><a href="/v2.2/addons/bindings/digitalstrom/readme.html">digitalSTROM</a></li>
<li><a href="/v2.2/addons/bindings/dlinksmarthome/readme.html">D-Link Smart Home</a></li>
<li><a href="/v2.2/addons/bindings/dmx/readme.html">DMX</a></li>
<li><a href="/v2.2/addons/bindings/dscalarm/readme.html">DSC Alarm</a></li>
<li><a href="/v2.2/addons/bindings/dsmr1/readme.html">DSMR</a></li>
<li><a href="/v2.2/addons/bindings/ebus1/readme.html">eBUS</a></li>
<li><a href="/v2.2/addons/bindings/ecobee1/readme.html">Ecobee</a></li>
<li><a href="/v2.2/addons/bindings/ecotouch1/readme.html">EcoTouch</a></li>
<li><a href="/v2.2/addons/bindings/ekey1/readme.html">ekey</a></li>
<li><a href="/v2.2/addons/bindings/energenie1/readme.html">Energenie</a></li>
<li><a href="/v2.2/addons/bindings/enocean1/readme.html">EnOcean</a></li>
<li><a href="/v2.2/addons/bindings/enphaseenergy1/readme.html">Enphase Energy</a></li>
<li><a href="/v2.2/addons/bindings/epsonprojector1/readme.html">Epson Projector</a></li>
<li><a href="/v2.2/addons/bindings/exec/readme.html">Exec</a></li>
<li><a href="/v2.2/addons/bindings/expire1/readme.html">Expire</a></li>
<li><a href="/v2.2/addons/bindings/fatekplc1/readme.html">Fatek PLC</a></li>
<li><a href="/v2.2/addons/bindings/feed/readme.html">Feed</a></li>
<li><a href="/v2.2/addons/bindings/feican/readme.html">Feican</a></li>
<li><a href="/v2.2/addons/bindings/folding/readme.html">Folding@home</a></li>
<li><a href="/v2.2/addons/bindings/freebox/readme.html">Freebox</a></li>
<li><a href="/v2.2/addons/bindings/freeswitch1/readme.html">FreeSWITCH</a></li>
<li><a href="/v2.2/addons/bindings/fritzbox1/readme.html">Fritz!Box</a></li>
<li><a href="/v2.2/addons/bindings/fritzboxtr0641/readme.html">Fritzbox (using TR064 protocol)</a></li>
<li><a href="/v2.2/addons/bindings/fs201/readme.html">FS20</a></li>
<li><a href="/v2.2/addons/bindings/fsinternetradio/readme.html">FS Internet Radio</a></li>
<li><a href="/v2.2/addons/bindings/garadget1/readme.html">Garadget</a></li>
<li><a href="/v2.2/addons/bindings/gardena/readme.html">Gardena</a></li>
<li><a href="/v2.2/addons/bindings/gc100ir1/readme.html">Global Cache IR</a></li>
<li><a href="/v2.2/addons/bindings/globalcache/readme.html">GlobalCache</a></li>
<li><a href="/v2.2/addons/bindings/harmonyhub/readme.html">Logitech Harmony Hub</a></li>
<li><a href="/v2.2/addons/bindings/hdanywhere/readme.html">HDanywhere</a></li>
<li><a href="/v2.2/addons/bindings/hdpowerview/readme.html">Hunter Douglas PowerView</a></li>
<li><a href="/v2.2/addons/bindings/heatmiser1/readme.html">Heatmiser</a></li>
<li><a href="/v2.2/addons/bindings/homematic/readme.html">Homematic</a></li>
<li><a href="/v2.2/addons/bindings/http1/readme.html">HTTP</a></li>
<li><a href="/v2.2/addons/bindings/hue/readme.html">Philips Hue</a></li>
<li><a href="/v2.2/addons/bindings/icloud/readme.html">iCloud</a></li>
<li><a href="/v2.2/addons/bindings/ihc1/readme.html">IHC / ELKO</a></li>
<li><a href="/v2.2/addons/bindings/insteonplm1/readme.html">Insteon PLM</a></li>
<li><a href="/v2.2/addons/bindings/intertechno1/readme.html">Intertechno</a></li>
<li><a href="/v2.2/addons/bindings/ipp/readme.html">IPP</a></li>
<li><a href="/v2.2/addons/bindings/ipx8001/readme.html">IPX800</a></li>
<li><a href="/v2.2/addons/bindings/irtrans1/readme.html">IRTrans</a></li>
<li><a href="/v2.2/addons/bindings/jeelink/readme.html">Jeelink</a></li>
<li><a href="/v2.2/addons/bindings/jointspace1/readme.html">jointSPACE</a></li>
<li><a href="/v2.2/addons/bindings/keba/readme.html">Keba</a></li>
<li><a href="/v2.2/addons/bindings/knx1/readme.html">KNX</a></li>
<li><a href="/v2.2/addons/bindings/kodi/readme.html">Kodi</a></li>
<li><a href="/v2.2/addons/bindings/kostalinverter/readme.html">Kostal Inverter</a></li>
<li><a href="/v2.2/addons/bindings/koubachi1/readme.html">Koubachi</a></li>
<li><a href="/v2.2/addons/bindings/lcn1/readme.html">LCN</a></li>
<li><a href="/v2.2/addons/bindings/lgtv1/readme.html">LG TV</a></li>
<li><a href="/v2.2/addons/bindings/lgtvserial/readme.html">LG TV control using serial protocol</a></li>
<li><a href="/v2.2/addons/bindings/lgwebos/readme.html">LG webOS</a></li>
<li><a href="/v2.2/addons/bindings/lifx/readme.html">LIFX</a></li>
<li><a href="/v2.2/addons/bindings/lirc/readme.html">LIRC</a></li>
<li><a href="/v2.2/addons/bindings/loxone/readme.html">Loxone</a></li>
<li><a href="/v2.2/addons/bindings/lutron/readme.html">Lutron</a></li>
<li><a href="/v2.2/addons/bindings/max/readme.html">MAX!</a></li>
<li><a href="/v2.2/addons/bindings/maxcul1/readme.html">MAX!CUL</a></li>
<li><a href="/v2.2/addons/bindings/meteostick/readme.html">Meteostick</a></li>
<li><a href="/v2.2/addons/bindings/miele/readme.html">Miele@home</a></li>
<li><a href="/v2.2/addons/bindings/mihome/readme.html">Xiaomi Mi Smart Home</a></li>
<li><a href="/v2.2/addons/bindings/milight/readme.html">Milight/Easybulb/Limitless</a></li>
<li><a href="/v2.2/addons/bindings/minecraft/readme.html">Minecraft</a></li>
<li><a href="/v2.2/addons/bindings/mios1/readme.html">MiOS Bridge</a></li>
<li><a href="/v2.2/addons/bindings/mochadx101/readme.html">Mochad X10</a></li>
<li><a href="/v2.2/addons/bindings/modbus1/readme.html">Modbus</a></li>
<li><a href="/v2.2/addons/bindings/mqtt1/readme.html">MQTT</a></li>
<li><a href="/v2.2/addons/bindings/mqttitude1/readme.html">OwnTracks (formerly MQTTitude)</a></li>
<li><a href="/v2.2/addons/bindings/myq1/readme.html">Chamberlain MyQ</a></li>
<li><a href="/v2.2/addons/bindings/neohub1/readme.html">NeoHub</a></li>
<li><a href="/v2.2/addons/bindings/nest/readme.html">Nest</a></li>
<li><a href="/v2.2/addons/bindings/netatmo/readme.html">Netatmo</a></li>
<li><a href="/v2.2/addons/bindings/network/readme.html">Network</a></li>
<li><a href="/v2.2/addons/bindings/networkupstools1/readme.html">Network UPS Tools</a></li>
<li><a href="/v2.2/addons/bindings/nibeheatpump1/readme.html">Nibe Heatpump</a></li>
<li><a href="/v2.2/addons/bindings/nikobus1/readme.html">Nikobus</a></li>
<li><a href="/v2.2/addons/bindings/nikohomecontrol/readme.html">Niko Home Control</a></li>
<li><a href="/v2.2/addons/bindings/novelanheatpump1/readme.html">Novelan/Luxtronic Heat Pump</a></li>
<li><a href="/v2.2/addons/bindings/ntp/readme.html">NTP</a></li>
<li><a href="/v2.2/addons/bindings/oceanic/readme.html">Oceanic</a></li>
<li><a href="/v2.2/addons/bindings/onebusaway/readme.html">OneBusAway</a></li>
<li><a href="/v2.2/addons/bindings/onewire1/readme.html">OneWire</a></li>
<li><a href="/v2.2/addons/bindings/onkyo/readme.html">Onkyo</a></li>
<li><a href="/v2.2/addons/bindings/openenergymonitor1/readme.html">Open Energy Monitor</a></li>
<li><a href="/v2.2/addons/bindings/opensprinkler/readme.html">OpenSprinkler</a></li>
<li><a href="/v2.2/addons/bindings/orvibo/readme.html">Orvibo</a></li>
<li><a href="/v2.2/addons/bindings/owserver1/readme.html">OWServer</a></li>
<li><a href="/v2.2/addons/bindings/panasonictv1/readme.html">Panasonic TV</a></li>
<li><a href="/v2.2/addons/bindings/piface1/readme.html">Piface</a></li>
<li><a href="/v2.2/addons/bindings/pioneeravr/readme.html">PioneerAVR Configuration</a></li>
<li><a href="/v2.2/addons/bindings/plex1/readme.html">Plex</a></li>
<li><a href="/v2.2/addons/bindings/plugwise/readme.html">Plugwise</a></li>
<li><a href="/v2.2/addons/bindings/powermax1/readme.html">Visonic Powermax</a></li>
<li><a href="/v2.2/addons/bindings/pulseaudio/readme.html">Pulseaudio</a></li>
<li><a href="/v2.2/addons/bindings/regoheatpump/readme.html">RegoHeatPump</a></li>
<li><a href="/v2.2/addons/bindings/rfxcom/readme.html">RFXCOM</a></li>
<li><a href="/v2.2/addons/bindings/rme/readme.html">RME</a></li>
<li><a href="/v2.2/addons/bindings/rotelra1x/readme.html">Rotel Amplifier</a></li>
<li><a href="/v2.2/addons/bindings/russound/readme.html">Russound</a></li>
<li><a href="/v2.2/addons/bindings/rwesmarthome1/readme.html">RWE SmartHome</a></li>
<li><a href="/v2.2/addons/bindings/samsungac1/readme.html">Samsung Air Conditioner</a></li>
<li><a href="/v2.2/addons/bindings/samsungtv/readme.html">Samsung TV</a></li>
<li><a href="/v2.2/addons/bindings/sapp1/readme.html">Picnet Sapp</a></li>
<li><a href="/v2.2/addons/bindings/satel1/readme.html">Satel Integra Alarm System</a></li>
<li><a href="/v2.2/addons/bindings/sensebox/readme.html">senseBox</a></li>
<li><a href="/v2.2/addons/bindings/serial1/readme.html">Serial</a></li>
<li><a href="/v2.2/addons/bindings/serialbutton/readme.html">Serial Button</a></li>
<li><a href="/v2.2/addons/bindings/silvercrestwifisocket/readme.html">Silvercrest Wifi Plug</a></li>
<li><a href="/v2.2/addons/bindings/sleepiq/readme.html">SleepIQ</a></li>
<li><a href="/v2.2/addons/bindings/smaenergymeter/readme.html">SMA Energy Meter</a></li>
<li><a href="/v2.2/addons/bindings/snmp1/readme.html">SNMP</a></li>
<li><a href="/v2.2/addons/bindings/sonance1/readme.html">Sonance</a></li>
<li><a href="/v2.2/addons/bindings/sonos/readme.html">Sonos</a></li>
<li><a href="/v2.2/addons/bindings/souliss1/readme.html">Souliss</a></li>
<li><a href="/v2.2/addons/bindings/squeezebox/readme.html">Logitech Squeezebox</a></li>
<li><a href="/v2.2/addons/bindings/swegonventilation1/readme.html">Swegon Ventilation</a></li>
<li><a href="/v2.2/addons/bindings/synopanalyzer/readme.html">Synop Analyzer</a></li>
<li><a href="/v2.2/addons/bindings/systeminfo/readme.html">Systeminfo</a></li>
<li><a href="/v2.2/addons/bindings/tankerkoenig/readme.html">Tankerkönig</a></li>
<li><a href="/v2.2/addons/bindings/tcp1/readme.html">TCP & UDP</a></li>
<li><a href="/v2.2/addons/bindings/tellstick/readme.html">Tellstick</a></li>
<li><a href="/v2.2/addons/bindings/tesla/readme.html">Tesla</a></li>
<li><a href="/v2.2/addons/bindings/tinkerforge1/readme.html">TinkerForge</a></li>
<li><a href="/v2.2/addons/bindings/toon/readme.html">Toon</a></li>
<li><a href="/v2.2/addons/bindings/tplinksmarthome/readme.html">TPLinkSmartHome</a></li>
<li><a href="/v2.2/addons/bindings/tradfri/readme.html">TRÅDFRI</a></li>
<li><a href="/v2.2/addons/bindings/upb1/readme.html">UPB</a></li>
<li><a href="/v2.2/addons/bindings/urtsi/readme.html">Somfy URTSI II</a></li>
<li><a href="/v2.2/addons/bindings/vitotronic/readme.html">Vitotronic</a></li>
<li><a href="/v2.2/addons/bindings/weather1/readme.html">Weather</a></li>
<li><a href="/v2.2/addons/bindings/weatherunderground/readme.html">WeatherUnderground</a></li>
<li><a href="/v2.2/addons/bindings/wemo/readme.html">Belkin Wemo</a></li>
<li><a href="/v2.2/addons/bindings/wifiled/readme.html">WiFi LED</a></li>
<li><a href="/v2.2/addons/bindings/windcentrale/readme.html">Windcentrale</a></li>
<li><a href="/v2.2/addons/bindings/wol1/readme.html">Wake-on-LAN</a></li>
<li><a href="/v2.2/addons/bindings/xbmc1/readme.html">XBMC binding (for KODI) (1.x)</a></li>
<li><a href="/v2.2/addons/bindings/yahooweather/readme.html">YahooWeather</a></li>
<li><a href="/v2.2/addons/bindings/yamahareceiver/readme.html">Yamahareceiver</a></li>
<li><a href="/v2.2/addons/bindings/zigbee/readme.html">ZigBee</a></li>
<li><a href="/v2.2/addons/bindings/zoneminder/readme.html">Zoneminder</a></li>
<li><a href="/v2.2/addons/bindings/zwave/readme.html">ZWave</a></li>
<li><a href="/v2.2/addons/bindings/zway/readme.html">Z-Way</a></li>
</ul>
</li>
<li><a href="/v2.2/addons/uis.html">User Interfaces</a>
<ul>
<li><a href="/v2.2/addons/uis.html">Overview</a></li>
<hr />
<li><a href="/v2.2/addons/uis/basic/readme.html">Basic UI</a></li>
<li><a href="/v2.2/addons/uis/classic/readme.html">Classic UI</a></li>
<li><a href="/v2.2/addons/uis/habmin/readme.html">HABmin</a></li>
<li><a href="/v2.2/addons/uis/habpanel/doc/habpanel.html"></a></li>
<li><a href="/v2.2/addons/uis/habpanel/readme.html">HABPanel</a></li>
<li><a href="/v2.2/addons/uis/paper/readme.html">Paper UI</a></li>
<hr />
<li><a href="/v2.2/addons/uis/apps/android.html">Android App</a></li>
<li><a href="/v2.2/addons/uis/apps/ios.html">iOS App</a></li>
<li><a href="/v2.2/addons/uis/apps/windows.html">Windows 10 App</a></li>
<hr />
<li><a href="/v2.2/addons/iconsets/classic/readme.html">Iconset (classic)</a></li>
</ul>
</li>
<li><a href="/v2.2/addons/persistence.html">Persistence</a>
<ul>
<li><a href="/v2.2/addons/persistence.html">Overview</a></li>
<hr />
<li><a href="/v2.2/addons/persistence/influxdb/readme.html">InfluxDB (0.9 and newer)</a></li>
<li><a href="/v2.2/addons/persistence/jdbc/readme.html">JDBC</a></li>
<li><a href="/v2.2/addons/persistence/jpa/readme.html">Java Persistence API (JPA)</a></li>
<li><a href="/v2.2/addons/persistence/mapdb/readme.html">mapdb</a></li>
<li><a href="/v2.2/addons/persistence/mqtt/readme.html">MQTT</a></li>
<li><a href="/v2.2/addons/persistence/mysql/readme.html">MySQL</a></li>
<li><a href="/v2.2/addons/persistence/rrd4j/readme.html">rrd4j</a></li>
</ul>
</li>
<li><a href="/v2.2/addons/actions.html">Actions</a>
<ul>
<li><a href="/v2.2/addons/actions.html">Overview</a></li>
<hr />
<li><a href="/v2.2/addons/actions/ecobee/readme.html">Ecobee</a></li>
<li><a href="/v2.2/addons/actions/mail/readme.html">Mail</a></li>
<li><a href="/v2.2/addons/actions/mios/readme.html">MiOS</a></li>
<li><a href="/v2.2/addons/actions/mqtt/readme.html">MQTT</a></li>
<li><a href="/v2.2/addons/actions/nma/readme.html">NotifyMyAndroid</a></li>
<li><a href="/v2.2/addons/actions/pebble/readme.html">Pebble</a></li>
<li><a href="/v2.2/addons/actions/prowl/readme.html">Prowl</a></li>
<li><a href="/v2.2/addons/actions/pushbullet/readme.html">Pushbullet</a></li>
<li><a href="/v2.2/addons/actions/pushover/readme.html">Pushover</a></li>
<li><a href="/v2.2/addons/actions/pushsafer/readme.html">Pushsafer</a></li>
<li><a href="/v2.2/addons/actions/satel/readme.html">Satel</a></li>
<li><a href="/v2.2/addons/actions/telegram/readme.html">Telegram</a></li>
<li><a href="/v2.2/addons/actions/twitter/readme.html">Twitter</a></li>
<li><a href="/v2.2/addons/actions/xbmc/readme.html">XBMC</a></li>
<li><a href="/v2.2/addons/actions/xmpp/readme.html">XMPP</a></li>
</ul>
</li>
<li><a href="/v2.2/addons/transformations.html">Transformations</a>
<ul>
<li><a href="/v2.2/addons/transformations.html">Overview</a></li>
<hr />
<li><a href="/v2.2/addons/transformations/exec/readme.html">Exec</a></li>
<li><a href="/v2.2/addons/transformations/javascript/readme.html">JavaScript</a></li>
<li><a href="/v2.2/addons/transformations/jsonpath/readme.html">JsonPath</a></li>
<li><a href="/v2.2/addons/transformations/map/readme.html">Map</a></li>
<li><a href="/v2.2/addons/transformations/regex/readme.html">RegEx</a></li>
<li><a href="/v2.2/addons/transformations/scale/readme.html">Scale</a></li>
<li><a href="/v2.2/addons/transformations/xpath/readme.html">XPath</a></li>
<li><a href="/v2.2/addons/transformations/xslt/readme.html">XSLT</a></li>
</ul>
</li>
<li><a href="/v2.2/addons/voices.html">Voice Services</a>
<ul>
<li><a href="/v2.2/addons/voices.html">Overview</a></li>
<hr />
<li><a href="/v2.2/addons/voices/mactts/readme.html">MacOS Text-to-Speech</a></li>
<li><a href="/v2.2/addons/voices/marytts/readme.html">Mary Text-to-Speech</a></li>
<li><a href="/v2.2/addons/voices/voicerss/readme.html">VoiceRSS Text-to-Speech</a></li>
</ul>
</li>
<hr />
<li><a href="/v2.2/addons/io.html">3rd Party Integration</a>
<ul>
<li><a href="/v2.2/addons/io.html">Overview</a></li>
<hr />
<li><a href="/v2.2/addons/ios/alexa-skill/readme.html">Amazon Alexa Skill</a></li>
<li><a href="/v2.2/addons/ios/dropbox/readme.html">Dropbox Synchronization</a></li>
<li><a href="/v2.2/addons/ios/gcal/readme.html">Google Calendar Scheduler</a></li>
<li><a href="/v2.2/addons/ios/homekit/readme.html">HomeKit Add-on</a></li>
<li><a href="/v2.2/addons/ios/hueemulation/readme.html">openHAB Hue Emulation</a></li>
<li><a href="/v2.2/addons/ios/imperihome/readme.html">ImperiHome integration service</a></li>
<li><a href="/v2.2/addons/ios/mycroft-skill/readme.html">Mycroft AI Skill</a></li>
<li><a href="/v2.2/addons/ios/openhabcloud/readme.html">openHAB Cloud Connector</a></li>
<hr />
<li><a href="/v2.2/configuration/restdocs.html">REST API</a></li>
<li><a href="/v2.2/configuration/eclipseiotmarket.html">Eclipse IoT Marketplace</a></li>
<li><a href="http://www.myopenhab.org/" target="_blank">IFTTT</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="/v2.2/administration/index.html">Advanced Functionality</a>
<ul>
<li><a href="/v2.2/administration/index.html">Overview</a></li>
<hr />
<li><a href="/v2.2/administration/console.html">Console</a></li>
<li><a href="/v2.2/administration/runtime.html">Runtime Commands</a></li>
<li><a href="/v2.2/administration/bundles.html">Bundle Management</a></li>
<li><a href="/v2.2/administration/logging.html">Logging</a></li>
<hr />
<li><a href="/v2.2/administration/jsondb.html">JsonDB Storage</a></li>
</ul>
</li>
<li><a href="/v2.2/appendix/help.html">Community Guidance</a>
<ul>
<li><a href="/v2.2/appendix/help.html">Finding Help & FAQs</a></li>
<li><a href="/v2.2/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.2/../addons/bindings/network/readme.html">latest version</a></li>
<li><a href="/v2.2/addons/bindings/network/readme.html">v2.2<i class="tiny material-icons right">lens</i></a></li>
<li><a href="/v2.2/../v2.1/addons/bindings/network/readme.html">v2.1</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="network-binding">Network Binding</h1>
<p>This binding allows to check, whether a device is currently available on the network.
This happens by either using <a href="https://en.wikipedia.org/wiki/Ping_%28networking_utility%29">ping</a> or by a successful TCP connection on a port of your choice.</p>
<h2 id="binding-configuration">Binding configuration</h2>
<p>You can use the following configuration options:</p>
<ul>
<li><strong>allowSystemPings:</strong> Use the external ICMP ping program of the operating system, instead of the Java ping. Useful if the devices cannot be reached by Java ping. Default is true.</li>
<li><strong>allowDHCPlisten:</strong> If devices leave and reenter a network, they usually request their last IPv4 address by using DHCP requests. If we listen for those messages, we can make the status update more “real-time” and do not have to wait for the next refresh cycle. Default is true.</li>
<li><strong>arpPingToolPath:</strong> If your arp ping tool is not called arping and cannot be found in the PATH environment, you can configure the absolute path here. Default is “arping”.</li>
<li><strong>cacheDeviceStateTimeInMS:</strong> The result of a device presence detection is cached for a small amount of time. Set this time here in milliseconds. Be aware that no new pings will be issued within this time frame, even if explicitly requested. Default is 2000.</li>
</ul>
<p>Create a file <em>org.openHAB.binding.network.cfg</em> in your openHAB/etc directory and use the above options like this:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>allowSystemPings=false
</code></pre></div></div>
<h2 id="supported-things">Supported Things</h2>
<ul>
<li><strong>pingdevice:</strong> Detects device presence by using icmp pings, arp pings and dhcp packet sniffing.</li>
<li><strong>servicedevice:</strong> Detects device presence by scanning for a specific open tcp port.</li>
</ul>
<h2 id="discovery">Discovery</h2>
<p>Auto discovery can be used to scan the local network for <strong>pingdevice</strong> things by sending a ping to every IP on the network.
Some network tools will identify this as a network intruder alarm, therefore automatic background discovery is disabled and a manual scan needs to be issued.</p>
<p>Please note: things discovered by the network binding will be provided with a time to live (TTL) and will automatically disappear from the Inbox after 10 minutes.</p>
<h2 id="thing-configuration">Thing Configuration</h2>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>network:pingdevice:one_device [ hostname="192.168.0.64" ]
network:pingdevice:second_device [ hostname="192.168.0.65", retry=1, timeout=5000, refreshInterval=60000 ]
network:servicedevice:important_server [ hostname="192.168.0.62", port=1234 ]
</code></pre></div></div>
<p>Use the following options for a <strong>network:pingdevice</strong>:</p>
<ul>
<li><strong>hostname:</strong> IP address or hostname of the device</li>
<li><strong>retry:</strong> After how many refresh interval cycles shall the device be assumed as offline. Default is 1.</li>
<li><strong>timeout:</strong> How long shall the ping wait for an answer (in milliseconds. Default: <code class="highlighter-rouge">5000</code> = 5 seconds)</li>
<li><strong>refreshInterval:</strong> How often shall the device be checked (in milliseconds. Default: <code class="highlighter-rouge">60000</code> = one minute)</li>
</ul>
<p>Use the following additional options for a <strong>network:servicedevice</strong>:</p>
<ul>
<li><strong>port:</strong> Must not be 0. The destination port needs to be a TCP service.</li>
</ul>
<h2 id="presence-detection---configure-target-device">Presence detection - Configure target device</h2>
<p>You may need to configure devices to be reachable.
A device may not answer ping requests by default.
This is the case with Windows 10 equipped systems or Android and iOS devices in deep sleep mode.</p>
<h3 id="respond-to-pings-on-windows-10">Respond to pings on Windows 10+</h3>
<p>Pings on windows 10 are usually blocked by the internal firewall.
You need to allow “Echo Request for ICMPv4” to allow your windows to respond to pings.</p>
<h3 id="android-and-ios-devices">Android and iOS devices</h3>
<p>Because mobile devices put themselves in a deep sleep mode after some inactivity, they do not react to normal ICMP pings.
Configure ARP ping to realize presence detection for those devices.
This only works if your devices have WIFI enabled, have been configured to use your home WIFI network, and have the option “Disable wifi in standby” disabled (default).
An almost immediate presence detection for phones and tables, if they (re)join the home Wifi network, is to use DHCP listen.</p>
<h3 id="iphones-ipads">iPhones, iPads</h3>
<p>Apple iOS devices are usually in a deep sleep mode and do not respond to ARP pings under all conditions, but to Bonjour service discovery messages (UDP port 5353).
Therefore first a Bonjour message is send, before the ARP presence detection is performed.
The binding automatically figures out if the target device is an iOS device.
You can check if the binding has correctly recognised your device by having a look at the <em>uses_ios_wakeup</em> property of your thing.
An almost immediate presence detection for phones and tables, if they (re)join the home Wifi network, is to use DHCP listen.</p>
<h3 id="use-open-tcp-ports">Use open TCP ports</h3>
<p>Many devices provide services on TCP ports (web-frontends, streaming servers, …), which you can use to confirm there presence in the network.
Most operating systems have options to list open ports.
On a linux-based system, you may use <em>nmap</em> to discover all open TCP ports on the device with the specified IP address:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo nmap -Pn -sT -p- 192.168.0.42
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-31 20:00 CEST
Nmap scan report for linuxPC (192.168.0.42)
Host is up (0.0011s latency).
Not shown: 65531 filtered ports
PORT STATE SERVICE
554/tcp open rtsp
8089/tcp open unknown
8090/tcp open unknown
8889/tcp open ddi-tcp-2
Nmap done: 1 IP address (1 host up) scanned in 106.17 seconds
</code></pre></div></div>
<p>In this example, there are four suitable ports to use.
The port 554 (Windows network file sharing service) is open on most Windows PCs and Windows compatible Linux systems.
Port 1025 (MS RPC) is open on XBox systems. Port 548 (Apple Filing Protocol (AFP)) is open on Mac OS X systems.</p>
<p>Please don’ t forget to open the required ports in your firewall setup.</p>
<h2 id="presence-detection---configure-your-openhab-installation">Presence detection - Configure your openHAB installation</h2>
<p>Because we use external tools for some of the presence detection mechanism or need elevated permissions for others, your OpenHAB installation needs to be altered.</p>
<h3 id="arping">Arping</h3>
<p>For arp pings to work, you need a separate tool, called “arping”.
On Linux there exists three different tools:</p>
<ul>
<li>arp-scan (not yet supported by this binding)</li>
<li>arping of the ip-utils (Ubuntu/Debian: <code class="highlighter-rouge">apt-get install iputils-arping</code>)</li>
<li>arping by Thomas Habets (Ubuntu/Debian: <code class="highlighter-rouge">apt-get install arping</code>)</li>
</ul>
<p>arping by Thomas Habets runs on Windows and MacOS as well.</p>
<p>Make sure the tool is available in $PATH (%PATH% respectively on Windows) or in the same path as the openHAB executable.</p>
<p>On Linux and MacOS you might need elevated access permissions, for instance by making the executable a suid executable (<code class="highlighter-rouge">chmod u+s /usr/sbin/arping</code>).
Just test the executable on the command line, if <code class="highlighter-rouge">sudo</code> is required, you need to grant elevated permissions.</p>
<h3 id="dhcp-listen">DHCP Listen</h3>
<p>If devices leave and reenter a network, they usually request their last IPv4 address by using DHCP requests.
If we listen for those messages, we can make the status update more “real-time” and do not have to wait for the next refresh cycle.</p>
<p>Some operating systems such as Linux restrict applications to only use ports >= 1024 without elevated privileges.
If the binding is not able to use port 67 (DHCP), because of such a restriction or because the same system is used as a DHCP server, port 6767 will be used instead.
Check the property <em>dhcp_state</em> on your thing for such a hint. You need to establish a port forwarding in this case:</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sysctl <span class="nt">-w</span> net.ipv4.ip_forward<span class="o">=</span>1
iptables <span class="nt">-A</span> INPUT <span class="nt">-p</span> udp <span class="nt">--dport</span> 6767 <span class="nt">-j</span> ACCEPT
iptables <span class="nt">-t</span> nat <span class="nt">-A</span> PREROUTING <span class="nt">-p</span> udp <span class="nt">--dport</span> 67 <span class="nt">-j</span> REDIRECT <span class="nt">--to-ports</span> 6767
</code></pre></div></div>
<p>If you operate a DHCP server on port 67, you need to duplicate the received traffic and
forward it to port 6767:</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>iptables <span class="nt">-A</span> PREROUTING <span class="nt">-t</span> mangle <span class="nt">-p</span> udp <span class="o">!</span> <span class="nt">-s</span> 127.0.0.1 <span class="nt">--dport</span> 67 <span class="nt">-j</span> TEE <span class="nt">--gateway</span> 127.0.0.1
iptables <span class="nt">-A</span> OUTPUT <span class="nt">-t</span> nat <span class="nt">-p</span> udp <span class="nt">-s</span> 127.0.0.1/32 <span class="nt">--dport</span> 67 <span class="nt">-j</span> DNAT <span class="nt">--to</span> 127.0.0.1:6767
</code></pre></div></div>
<h2 id="channels">Channels</h2>
<p>Things support the following channels:</p>
<table>
<thead>
<tr>
<th>Channel Type ID</th>
<th>Item Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>online</td>
<td>Switch</td>
<td>This channel indicates whether a device is online or not</td>
</tr>
<tr>
<td>lastseen</td>
<td>DateTime</td>
<td>The last seen date/time of the device in question. May be 1. Jan 1970 if no time is known.</td>
</tr>
<tr>
<td>latency</td>
<td>Number</td>
<td>This channel indicates the ping latency in milliseconds. May be 0 if no time is known.</td>
</tr>
</tbody>
</table>
<h2 id="example">Example</h2>
<p>demo.things:</p>
<pre><code class="language-xtend">Thing network:pingdevice:devicename [ hostname="192.168.0.42" ]
</code></pre>
<p>demo.items:</p>
<pre><code class="language-xtend">Switch MyDevice { channel="network:pingdevice:devicename:online" }
Number MyDeviceResponseTime { channel="network:pingdevice:devicename:latency" }
</code></pre>
<p>demo.sitemap:</p>
<pre><code class="language-xtend">sitemap demo label="Main Menu"
{
Frame {
Text item=MyDevice label="Device [%s]"
Text item=MyDeviceResponseTime label="Device Response Time [%s]"
}
}
</code></pre>
</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>
<li><a href=# onclick="printPage()">Print This Page</a></li>
</ul>
</div>
</div>
</div>
</footer>
<script src="/v2.2/js/jquery.min.js"></script>
<script src="/v2.2/js/jquery.scrollme.min.js"></script>
<script src="/v2.2/js/jquery.sticky.js"></script>
<script src="/v2.2/js/materialize.min.js"></script>
<script src="/v2.2/js/init.js"></script>
<script src="/v2.2/js/functions.js"></script>
</body>
</html>