# Jython Scripting
This add-on provides Jython (opens new window) 2.7.2 that can be used as a scripting language within automation rules and which eliminates the need to download Jython and create
EXTRA_JAVA_OPTS entries for
python.home system property is set to the path of the add-on.
python.path system property is set to
$OPENHAB_CONF/automation/lib/python, but any existing
python.path will be appended to it.
# Creating Jython Scripts
When this add-on is installed, you can select Jython as a scripting language when creating a script action within the rule editor of the UI.
Alternatively, you can create scripts in the
automation/jsr223 configuration directory.
If you create an empty file called
test.py, you will see a log line with information similar to:
... [INFO ] [.a.m.s.r.i.l.ScriptFileWatcher:150 ] - Loading script 'test.py'
To enable debug logging, use the console logging commands to enable debug logging for the automation functionality:
log:set DEBUG org.openhab.core.automation
# Script Examples
Jython scripts provide access to almost all the functionality in an openHAB runtime environment.
As a simple example, the following script logs "Hello, World!".
from org.slf4j import LoggerFactory LoggerFactory.getLogger("org.openhab.core.automation.examples").info("Hello world!")
Jython can import Java classes (opens new window).
Depending on the openHAB logging configuration, you may need to prefix logger names with
org.openhab.core.automation for them to show up in the log file (or you modify the logging configuration).
Be careful with using wildcards when importing Java packages (e.g.,
This will work in some cases, but it might not work in some situations.
It is best to use explicit imports with Java packages.
For more details, see the Jython documentation on
Java package scanning (opens new window).
The script uses the LoggerFactory (opens new window) to obtain a named logger and then logs a message like:
... [INFO ] [.openhab.core.automation.examples:-2 ] - Hello world!