1436 lines
50 KiB
HTML
1436 lines
50 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 Jython 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-jython.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-jython.html">latest version</a></li>
|
||
<li><a href="/v2.2/configuration/jsr223-jython.html">v2.2<i class="tiny material-icons right">lens</i></a></li>
|
||
<li><a href="/v2.2/../v2.1/configuration/jsr223-jython.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-jython-scripting">JSR223 Jython Scripting</h1>
|
||
|
||
<h2 id="configuration">Configuration</h2>
|
||
|
||
<p><a href="http://www.jython.org/downloads.html">Download</a> the Jython 2.7.x installer package.
|
||
Install Jython on the local filesystem and make note of the installation directory location.</p>
|
||
|
||
<p>The Jython implementation will need to be added to openHAB’s Java classpath.
|
||
How this is done depends on the specific installation technique and operating system.</p>
|
||
|
||
<h3 id="linux-package-installers">Linux Package Installers</h3>
|
||
|
||
<p>Modify the <code class="highlighter-rouge">EXTRA_JAVA_OPTS</code> environment variable in <code class="highlighter-rouge">/etc/default/openhab2</code> to:</p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">EXTRA_JAVA_OPTS</span><span class="o">=</span><span class="nt">-Xbootclasspath</span>/a:/home/pi/jython2.7.0/jython.jar <span class="se">\</span>
|
||
<span class="nt">-Dpython</span>.home<span class="o">=</span>/home/pi/jython2.7.0 <span class="se">\</span>
|
||
<span class="nt">-Dpython</span>.path<span class="o">=</span>/etc/openhab2/lib/python
|
||
</code></pre></div></div>
|
||
|
||
<p>This will add the Jython library to the Java classpath,
|
||
set the Jython home directory and specify the initial Python path for the Jython runtime.
|
||
Python modules and packages can be installed into the <code class="highlighter-rouge">python.path</code> locations and imported from scripts.
|
||
Note that library modules and packages are not automatically reloaded when they change.</p>
|
||
|
||
<h3 id="mac-and-windows-or-manual-installation">Mac and Windows or Manual Installation</h3>
|
||
|
||
<p>Set the <code class="highlighter-rouge">EXTRA_JAVA_OPTS</code> environment variable to the value described in the Linux configuration.
|
||
Note that on Windows the environment variable value should be set as a single line
|
||
(without backslashes to combine the line fragments).</p>
|
||
|
||
<h2 id="configuration-testing">Configuration Testing</h2>
|
||
|
||
<p>In the <code class="highlighter-rouge">automation/jsr223</code> directory create an empty file called <code class="highlighter-rouge">test.py</code>.</p>
|
||
|
||
<p>Watch the openHAB log file carefully (<a href="/v2.2/administration/logging.html">Karaf logging</a>
|
||
or viewing the <code class="highlighter-rouge">openhab.log</code> file directly).
|
||
You should see a log line with information similar to:</p>
|
||
|
||
<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code> ... [INFO ] [s.i.GenericScriptEngineFactory:28 ] - Activated scripting support for ECMAScript
|
||
... [INFO ] [s.i.GenericScriptEngineFactory:28 ] - Activated scripting support for python
|
||
...
|
||
... [INFO ] [.a.m.s.r.i.l.ScriptFileWatcher:150 ] - Loading script 'test.py'
|
||
</code></pre></div></div>
|
||
|
||
<blockquote>
|
||
<p>NOTE: ECMAScript is Javascript</p>
|
||
</blockquote>
|
||
|
||
<p>Look for any potentially related error messages.</p>
|
||
|
||
<p>To enable debug logging, use the <a href="/v2.2/administration/logging.html">Karaf logging</a> commands to
|
||
enable debug logging for the automation functionality:</p>
|
||
|
||
<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>log:set DEBUG org.eclipse.smarthome.automation
|
||
</code></pre></div></div>
|
||
|
||
<h2 id="script-examples">Script Examples</h2>
|
||
|
||
<p>Jython scripts provide access to almost all the functionality in an openHAB runtime environment.
|
||
As a simple example, the following script logs “Hello, World!” into the openhab.log file.
|
||
Note that <code class="highlighter-rouge">print</code> will usually not work since the output has no terminal to display the text.
|
||
One exception is when the openHAB server is running from the Eclipse IDE.
|
||
The openHAB server uses the <a href="https://www.slf4j.org/">SLFJ</a> library for logging.</p>
|
||
|
||
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">org.slf4j</span> <span class="kn">import</span> <span class="n">LoggerFactory</span>
|
||
|
||
<span class="n">LoggerFactory</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"org.eclipse.smarthome.automation.examples"</span><span class="p">)</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">"Hello world!"</span><span class="p">)</span>
|
||
</code></pre></div></div>
|
||
|
||
<p>Jython can <a href="http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html">import Java classes</a>.
|
||
Depending on the openHAB logging configuration,
|
||
you may need to prefix logger names with <code class="highlighter-rouge">org.eclipse.smarthome.automation</code>
|
||
for them to show up in the log file (or you modify the logging configuration).</p>
|
||
|
||
<blockquote>
|
||
<p>NOTE: Be careful with using wildcards when importing Java packages (e.g., <code class="highlighter-rouge">import org.sl4j.*</code>).
|
||
This will work in some cases, but it might not work in some situations.
|
||
It’s best to use explicit imports with Java packages.
|
||
For more details, see the Jython documentation on
|
||
<a href="http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html#java-package-scanning">Java package scanning</a>.</p>
|
||
</blockquote>
|
||
|
||
<p>The script then uses the <a href="https://www.slf4j.org/apidocs/org/slf4j/Logger.html">LoggerFactory</a>
|
||
to obtain a named logger and then logs a message like:</p>
|
||
|
||
<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code> ... [INFO ] [.smarthome.automation.examples:-2 ] - Hello world!
|
||
</code></pre></div></div>
|
||
|
||
<p>Notice that no rules were required for this simple script.
|
||
This can be a useful way to experiment with simple Jython code before defining rules or other more advanced functionality.</p>
|
||
|
||
<p>If you want to respond to openHAB events you can create rules in the scripts.
|
||
The following script requires two string items, <code class="highlighter-rouge">TestString1</code> and <code class="highlighter-rouge">TestString2</code>.
|
||
The rule created in the script is triggered by an update to <code class="highlighter-rouge">TestString1</code> and,
|
||
when triggered, the rule updates <code class="highlighter-rouge">TestString2</code>.</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>
|
||
<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>
|
||
|
||
<span class="k">class</span> <span class="nc">MyRule</span><span class="p">(</span><span class="n">SimpleRule</span><span class="p">):</span>
|
||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">triggers</span> <span class="o">=</span> <span class="p">[</span>
|
||
<span class="n">Trigger</span><span class="p">(</span><span class="s">"MyTrigger"</span><span class="p">,</span> <span class="s">"core.ItemStateUpdateTrigger"</span><span class="p">,</span>
|
||
<span class="n">Configuration</span><span class="p">({</span> <span class="s">"itemName"</span><span class="p">:</span> <span class="s">"TestString1"</span><span class="p">}))</span>
|
||
<span class="p">]</span>
|
||
|
||
<span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="nb">input</span><span class="p">):</span>
|
||
<span class="n">events</span><span class="o">.</span><span class="n">postUpdate</span><span class="p">(</span><span class="s">"TestString2"</span><span class="p">,</span> <span class="s">"some data"</span><span class="p">)</span>
|
||
|
||
<span class="n">automationManager</span><span class="o">.</span><span class="n">addRule</span><span class="p">(</span><span class="n">MyRule</span><span class="p">())</span>
|
||
</code></pre></div></div>
|
||
|
||
<p>When a script is loaded, some names are already defined in the script <em>scope</em> (the local Jython namespace).
|
||
To define rules, you must include some additional <a href="jsr223.html#presets">script <em>extensions</em></a>
|
||
(implemented as “presets”) that add more names to the script scope for specific purposes.
|
||
In this case, the <code class="highlighter-rouge">RuleSimple</code> extension is used to import the <code class="highlighter-rouge">SimpleRule</code> base class.
|
||
The <code class="highlighter-rouge">RuleSupport</code> extensions provides the <code class="highlighter-rouge">automationManager</code> that allows you to register rule instances with openHAB.</p>
|
||
|
||
<p>The Jython rule class uses the <code class="highlighter-rouge">SimpleRule</code> subclass to simplify some aspects of the openHAB interface for use with JSR223.
|
||
n the constructor, the triggers atribute is set to a list of <a href="jsr223.html#trigger_types">triggers</a>.
|
||
In this example, the trigger is a state update trigger.
|
||
The trigger name identifies the trigger and the configuration direction provides trigger-specific options.
|
||
For the item update trigger, the configuration provides the item name of the monitored item.</p>
|
||
|
||
<p>The <code class="highlighter-rouge">execute</code> method is invoked when the rule is triggered.
|
||
The <code class="highlighter-rouge">module</code> and <code class="highlighter-rouge">input</code> arguments can be used in advanced rules.
|
||
The information provided varies by the trigger type.</p>
|
||
|
||
<h3 id="resources">Resources</h3>
|
||
|
||
<ul>
|
||
<li>
|
||
<p><a href="https://github.com/eclipse/smarthome/wiki/Scripted-Rule-Support">Scripted Rule Support</a></p>
|
||
|
||
<p>Early documentation on JSR223 usage in openHAB 2. Includes IDE setup instructions.</p>
|
||
</li>
|
||
<li>
|
||
<p><a href="https://github.com/steve-bate/openhab2-jython">openhab2-jython</a> (github)</p>
|
||
|
||
<p>Provides information and examples related to advanced, exploratory openHAB JSR223 Jython usage.</p>
|
||
|
||
<ul>
|
||
<li>Wrappers to simplify <code class="highlighter-rouge">Trigger</code> usage in rules.</li>
|
||
<li>Python decorators to define simple time-triggered and item-triggered functions</li>
|
||
<li>Python logging bridge to openHAB logger</li>
|
||
<li>Custom Trigger Implementations: <code class="highlighter-rouge">StartupTrigger</code>, <code class="highlighter-rouge">OsgiEventTrigger</code>, …</li>
|
||
<li>OSGI console command implemented in Jython</li>
|
||
<li>OH2 Module Implementations in Jython (things, item providers, …)</li>
|
||
<li>Jython-based ScriptExtension (preset) provider support.</li>
|
||
<li>Example of using Pykka Actor library.</li>
|
||
<li>Unit-testing support</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</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>
|
||
|