1829 lines
60 KiB
HTML
1829 lines
60 KiB
HTML
<!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>JSR223 Scripting - 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/configuration/jsr223.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/../configuration/jsr223.html">latest version</a></li>
|
||
<li><a href="/v2.2/configuration/jsr223.html">v2.2<i class="tiny material-icons right">lens</i></a></li>
|
||
<li><a href="/v2.2/../v2.1/configuration/jsr223.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">
|
||
|
||
<h1 id="jsr223-scripting">JSR223 Scripting</h1>
|
||
|
||
<blockquote>
|
||
<p>Note: This feature is for users who have or are willing to learn some programming skills
|
||
and are comfortable working with the command line prompt of the operating system hosting openHAB.
|
||
<em>The Experimental Rule Engine add-on must be installed to define rules.</em></p>
|
||
</blockquote>
|
||
|
||
<h2 id="overview">Overview</h2>
|
||
|
||
<p><a href="https://docs.oracle.com/javase/6/docs/technotes/guides/scripting/">JSR223</a> (<a href="https://jcp.org/aboutJava/communityprocess/pr/jsr223/index.html">spec</a>)
|
||
is a standard scripting API for Java Virtual Machine (JVM)
|
||
<a href="https://en.wikipedia.org/wiki/List_of_JVM_languages">languages</a>.
|
||
The JVM languages provide varying levels of support for the JSR223 API and interoperability with the Java runtime.
|
||
Currently the following languages are known to work well for openHAB scripting:
|
||
<a href="http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html"><strong>Oracle Nashorn</strong></a> (Javascript bundled with Java),
|
||
<a href="http://www.jython.org/"><strong>Jython</strong></a> (Python on the JVM) and
|
||
<a href="http://www.groovy-lang.org/"><strong>Apache Groovy</strong></a> (JVM scripting language).</p>
|
||
|
||
<p>Although JSR223 scripts can be used as a general-purpose extension language for openHAB,
|
||
the most common usage will be for defining openHAB rules.</p>
|
||
|
||
<h3 id="language-specific-documentation">Language-Specific Documentation</h3>
|
||
|
||
<ul>
|
||
<li><a href="jsr223-js.html">Javascript</a></li>
|
||
<li><a href="jsr223-jython.html">Jython</a></li>
|
||
<li>Groovy (TODO)</li>
|
||
</ul>
|
||
|
||
<h3 id="script-locations">Script Locations</h3>
|
||
|
||
<p>Scripts should be placed in the ‘USERDATA/automation/jsr223’ directory. For example,
|
||
in Linux installations created with a package installer,
|
||
the directory would be <code class="highlighter-rouge">/etc/openhab2/automation/jsr223</code>.</p>
|
||
|
||
<p>At system start time the scripts will be loaded in an order based on their name
|
||
and then top-down through the directory hierarchy.
|
||
Note that while scripts may be placed in subdirectories of <code class="highlighter-rouge">jsr223</code>,
|
||
they should not have the same names as scripts in other directories (this may be changed in the future).
|
||
For example, with the following directory structure…</p>
|
||
|
||
<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>automation/jsr223
|
||
01/
|
||
script1.py
|
||
scriptx.py
|
||
00script.py
|
||
script2.py
|
||
</code></pre></div></div>
|
||
|
||
<p>the load order will be: <code class="highlighter-rouge">00script.py</code>, <code class="highlighter-rouge">01/script1.py</code>, <code class="highlighter-rouge">script2.py</code>, <code class="highlighter-rouge">01/scriptx.py</code>.</p>
|
||
|
||
<p><a name="trigger_types"></a></p>
|
||
|
||
<h3 id="trigger-types-all-jsr223-languages">Trigger Types (all JSR223 languages)</h3>
|
||
|
||
<p>The following trigger types are defined by openHAB (custom triggers can also be defined)
|
||
and take the specified configuration parameters.</p>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Trigger: <code class="highlighter-rouge">core.ItemCommandTrigger</code></th>
|
||
<th> </th>
|
||
<th> </th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">itemName</code></td>
|
||
<td>The item name</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">command</code></td>
|
||
<td>The command</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Trigger: <code class="highlighter-rouge">core.ItemStateUpdateTrigger</code></th>
|
||
<th> </th>
|
||
<th> </th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">itemName</code></td>
|
||
<td>The item name</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">state</code></td>
|
||
<td>The state</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Trigger: <code class="highlighter-rouge">core.ItemStateChangeTrigger</code></th>
|
||
<th> </th>
|
||
<th> </th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">itemName</code></td>
|
||
<td>The item name</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">previousState</code></td>
|
||
<td>The previous state</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">state</code></td>
|
||
<td>The state</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Trigger: <code class="highlighter-rouge">timer.GenericCronTrigger</code></th>
|
||
<th> </th>
|
||
<th> </th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">cronExpression</code></td>
|
||
<td>The cron expression</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Trigger: <code class="highlighter-rouge">timer.TimeOfDayTrigger</code></th>
|
||
<th> </th>
|
||
<th> </th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">time</code></td>
|
||
<td>The time in “hh:mm” format</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Trigger: <code class="highlighter-rouge">core.GenericEventTrigger</code></th>
|
||
<th> </th>
|
||
<th> </th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">eventTopic</code></td>
|
||
<td>default: “smarthome/<em>” (for channel events: “smarthome/channels/</em>/triggered”)</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">eventSource</code></td>
|
||
<td>item name, channel UID</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">eventTypes</code></td>
|
||
<td>ItemCommandEvent, ItemStateEvent</td>
|
||
<td>TEXT</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3 id="additional-information">Additional Information</h3>
|
||
|
||
<ul>
|
||
<li><a href="https://github.com/eclipse/smarthome/wiki/Scripted-Rule-Support">Scripted Rule Support</a> -
|
||
Early documentation on JSR223 usage in openHAB 2. Includes IDE setup instructions.</li>
|
||
</ul>
|
||
|
||
<p><a name="presets"></a></p>
|
||
|
||
<h3 id="predefined-script-variables-all-jsr223-languages">Predefined Script Variables (all JSR223 languages)</h3>
|
||
|
||
<p>To faciliate JSR223 scripting, several openHAB-related variables are automatically predefined. These presets include:</p>
|
||
|
||
<ul>
|
||
<li><a href="#default_presets">Default</a></li>
|
||
<li><a href="#rulesimple_presets"><code class="highlighter-rouge">RuleSimple</code></a></li>
|
||
<li><a href="#rulesupport_presets"><code class="highlighter-rouge">RuleSupport</code></a></li>
|
||
<li><a href="#rulefactories_presets"><code class="highlighter-rouge">RuleFactories</code></a></li>
|
||
</ul>
|
||
|
||
<p><a name="default_presets"></a></p>
|
||
|
||
<h4 id="default-variables-no-preset-loading-required">Default Variables (no preset loading required)</h4>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Variable</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">State</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.types.State</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">Command</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.types.State</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">DateTime</code></td>
|
||
<td><code class="highlighter-rouge">org.joda.time.DateTime</code> (if Jodatime is available)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">LocalTime</code></td>
|
||
<td><code class="highlighter-rouge">org.joda.time.LocalTime</code> (if Jodatime is available)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">StringUtils</code></td>
|
||
<td><code class="highlighter-rouge">org.apache.commons.lang.StringUtils</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">URLEncoder</code></td>
|
||
<td><code class="highlighter-rouge">java.net.URLEncoder</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">FileUtils</code></td>
|
||
<td><code class="highlighter-rouge">org.apache.commons.io.FileUtils</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">FilenameUtils</code></td>
|
||
<td><code class="highlighter-rouge">org.apache.commons.io.FilenameUtils</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">File</code></td>
|
||
<td><code class="highlighter-rouge">java.io.File</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">IncreaseDecreaseType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.IncreaseDecreaseType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">DECREASE</code></td>
|
||
<td><code class="highlighter-rouge">IncreaseDecreaseType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">INCREASE</code></td>
|
||
<td><code class="highlighter-rouge">IncreaseDecreaseType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">OnOffType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.OnOffType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">ON</code></td>
|
||
<td><code class="highlighter-rouge">OnOffType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">OFF</code></td>
|
||
<td><code class="highlighter-rouge">OnOffType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">OpenClosedType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.OpenClosedType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">OPEN</code></td>
|
||
<td><code class="highlighter-rouge">OpenClosedType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">CLOSED</code></td>
|
||
<td><code class="highlighter-rouge">OpenClosedType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">StopMoveType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.StopMoveType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">STOP</code></td>
|
||
<td><code class="highlighter-rouge">StopMoveType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">MOVE</code></td>
|
||
<td><code class="highlighter-rouge">StopMoveType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">UpDownType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.UpDownType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">UP</code></td>
|
||
<td><code class="highlighter-rouge">UpDownType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">DOWN</code></td>
|
||
<td><code class="highlighter-rouge">UpDownType</code> enum item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">DecimalType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.DecimalType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">HSBType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.HSBType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">PercentType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.PercentType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">PointType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.PointType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">StringType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.core.library.types.StringType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">items</code></td>
|
||
<td>Instance of <code class="highlighter-rouge">java.util.Map&lt;String, State&gt;</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">itemRegistry</code></td>
|
||
<td>Instance of <code class="highlighter-rouge">org.eclipse.smarthome.core.items.ItemRegistry</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">ir</code></td>
|
||
<td>Alias for <code class="highlighter-rouge">itemRegistry</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">things</code></td>
|
||
<td>Instance of <code class="highlighter-rouge">org.eclipse.smarthome.core.thing.ThingRegistry</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">events</code></td>
|
||
<td>(internal) Used to send events, post commands, etc. <a href="#event_operations">Details</a> below]</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">rules</code></td>
|
||
<td>Instance of <code class="highlighter-rouge">org.eclipse.smarthome.automation.RuleRegistry</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">scriptExtension</code></td>
|
||
<td>(internal) For loading script presets.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">se</code></td>
|
||
<td>Alias for <code class="highlighter-rouge">scriptExtension</code></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<p><a name="#event_operations"></a></p>
|
||
|
||
<h5 id="events-operations"><code class="highlighter-rouge">events</code> operations</h5>
|
||
|
||
<ul>
|
||
<li><code class="highlighter-rouge">postUpdate(String, String)</code></li>
|
||
<li><code class="highlighter-rouge">postUpdate(Item, Number)</code></li>
|
||
<li><code class="highlighter-rouge">postUpdate(Item, String)</code></li>
|
||
<li><code class="highlighter-rouge">postUpdate(Item, State)</code></li>
|
||
<li><code class="highlighter-rouge">sendCommand(String, String)</code></li>
|
||
<li><code class="highlighter-rouge">sendCommand(Item, Number)</code></li>
|
||
<li><code class="highlighter-rouge">sendCommand(Item, String)</code></li>
|
||
<li><code class="highlighter-rouge">sendCommand(Item, Command)</code></li>
|
||
<li><code class="highlighter-rouge">storeStates(Item...)</code></li>
|
||
<li><code class="highlighter-rouge">restoreStates(Map<Item, State>)</code></li>
|
||
</ul>
|
||
|
||
<p><a name="rulesimple_presets"></a></p>
|
||
|
||
<h4 id="rulesimple-extensionpreset">RuleSimple Extension/Preset</h4>
|
||
|
||
<p>These variables are loaded using:</p>
|
||
|
||
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">scriptExtension</span><span class="o">.</span><span class="n">importPreset</span><span class="p">(</span><span class="s">"RuleSimple"</span><span class="p">)</span>
|
||
</code></pre></div></div>
|
||
|
||
<p>The primary usage of this preset is for defining rule (<code class="highlighter-rouge">SimpleRule</code>) subclasses.
|
||
See language-specific documentation for examples.</p>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Variable</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>SimpleRule</td>
|
||
<td>Base class for Jython Rules</td>
|
||
</tr>
|
||
<tr>
|
||
<td>SimpleActionHandler</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.module.script.rulesupport.shared.simple.SimpleActionHandler</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>SimpleConditionHandler</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.module.script.rulesupport.shared.simple.SimpleConditionHandler</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>SimpleTriggerHandler</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.module.script.rulesupport.shared.simple.SimpleTriggerHandler</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>TriggerType</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.type.TriggerType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>ConfigDescriptionParameter</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.config.core.ConfigDescriptionParameter</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>ModuleType</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.type.ModuleType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>ActionType</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.type.ActionType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Visibility</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.Visibility</code> enum</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<p><a name="rulesupport_presets"></a></p>
|
||
|
||
<h4 id="rulesupport-extensionpreset">RuleSupport Extension/Preset</h4>
|
||
|
||
<p>These variables are loaded using:</p>
|
||
|
||
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">scriptExtension</span><span class="o">.</span><span class="n">importPreset</span><span class="p">(</span><span class="s">"RuleSupport"</span><span class="p">)</span>
|
||
</code></pre></div></div>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Variable</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>automationManager</td>
|
||
<td>Instance for managing rules and other openHAB module instances. (e.g., <code class="highlighter-rouge">addRule</code>)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Configuration</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.config.core.Configuration</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Action</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.config.core.Action</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Condition</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.config.core.Condition</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Trigger</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.config.core.Trigger</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Rule</td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.config.core.Action.Rule</code> (use <code class="highlighter-rouge">SimpleRule</code> for defining rules)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<p><a name="rulefactories_presets"></a></p>
|
||
|
||
<h4 id="rulefactories-extension">RuleFactories Extension</h4>
|
||
|
||
<blockquote>
|
||
<p>NOTE: Advanced usage</p>
|
||
</blockquote>
|
||
|
||
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">scriptExtension</span><span class="o">.</span><span class="n">importPreset</span><span class="p">(</span><span class="s">"RuleFactories"</span><span class="p">)</span>
|
||
</code></pre></div></div>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Variable</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">ActionHandlerFactory</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.module.script.rulesupport.shared.factories.ActionHandlerFactory</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">ConditionHandlerFactory</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.module.script.rulesupport.shared.factories.ConditionHandlerFactory</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">TriggerHandlerFactory</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.module.script.rulesupport.shared.factories.TriggerHandlerFactory</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">TriggerType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.type.TriggerType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">ConfigDescriptionParameter</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.config.core.ConfigDescriptionParameter</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">ModuleType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.type.ModuleType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">ActionType</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.type.ActionType</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code class="highlighter-rouge">Visibility</code></td>
|
||
<td><code class="highlighter-rouge">org.eclipse.smarthome.automation.Visibility</code> enum</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
</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>
|
||
|