This add-on includes by default the [openhab-js](https://github.com/openhab/openhab-js/) NPM library and exports it's namespaces onto the global namespace. This allows the use of `items`, `actions`, `cache` and other objects without the need to explicitly import using `require()`. This functionality can be disabled for users who prefer to manage their own imports via the add-on configuration options.
-
+
## UI Based Rules
Using the openHAB UI, first create a new rule and set a trigger condition
-
+
### Adding Actions
Select "Add Action" and then select "ECMAScript 262 Edition 11". Its important this is "Edition 11" or higher, earlier versions will not work. This will bring up a empty script editor where you can enter your javascript.
-
+
You can now write rules using standard ES6 Javascript along with the included openHAB [standard library](#standard-library).
-
+
For example, turning a light on:
```javascript
/**
* Converts a root node path to a class resource path for loading local modules
+ * Ex: C:\node_modules\foo.js -> /node_modules/foo.js
*
* @param path
* @return
*/
private String nodeFileToResource(Path path) {
- return "/" + NODE_DIR + "/" + path.getFileName();
+ return "/" + path.subpath(0, path.getNameCount()).toString().replace('\\', '/');
}
}