[jsscripting] Sync docs from openhab-js repo (#21074)

Signed-off-by: Florian Hotze <dev@florianhotze.com>
This commit is contained in:
Florian Hotze
2026-07-01 15:23:38 +02:00
committed by GitHub
parent f5b20ea0a6
commit 081eae9274
@@ -1611,12 +1611,61 @@ Follow these steps to create your own library (it's called a CommonJS module):
1. After you've installed it with `npm`, you can continue development of the library inside `node_modules`.
1. As you might have already noticed, the JavaScript Scripting add-on is reloading a script as soon as one of its dependencies changes.
When developing a library inside `node_modules`, this can cause regular reloads.
To avoid this situation, you can disable dependency tracking in the JavaScript Scripting add-on settings (you need to tick "show advanced" for the setting to come up).
To avoid this situation, you can disable dependency tracking in the JavaScript Scripting add-on settings (you need to tick _Show advanced_ for the setting to come up).
It is also possible to upload your library to [npm](https://npmjs.com) to share it with other users.
If you want to get some advanced information, you can read [this blog post](https://bugfender.com/blog/how-to-create-an-npm-package/) or just google it.
### Debugging
The JavaScript Scripting add-on provides built-in debugger support for `.js` scripts from `automation/js` in the user configuration directory.
This allows attaching any debugger compatible with the [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/), e.g., [Visual Studio Code](https://code.visualstudio.com/docs/nodejs/nodejs-debugging) or [Chrome DevTools](https://developers.google.com/web/tools/chrome-devtools/javascript).
Debugger support has to be enabled in the JavaScript Scripting add-on settings (you need to tick _Show advanced_ for the setting to come up).
The debugger will listen on port 9229 by default, but this can be changed in the settings.
Please note: A restart of openHAB is required to apply the changes.
::: warning
Enabling debugger support will allow any system on your local network to attach to the debugger and execute arbitrary code in your openHAB instance.
Only enable debugger support if you need it and you trust all systems on your local network,
or consider using a firewall to restrict access to the debugger port to only trusted systems, or use SSH tunneling to access the debugger port from a remote system.
:::
#### VS Code
To debug a script in VS Code, you need to create a launch configuration in `.vscode/launch.json` in your workspace folder:
```json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Attach to openHAB JavaScript Scripting",
// openHAB server address
"address": "127.0.0.1",
"port": 9229,
// path to scripts on the VS Code host (your machine)
"localRoot": "${workspaceFolder}/automation/js", // assumes your workspace folder is the openHAB user configuration directory
// path to scripts on the openHAB server
"remoteRoot": "/etc/openhab/automation/js", // Linux default, on Docker use /openhab/conf/automation/js
"restart": true,
"continueOnAttach": true
}
]
}
```
Make sure to adjust the `address`, `localRoot` and `remoteRoot` values to your environment.
::: tip Note
Docker users need to expose the debugger port to the host machine by adding `-p 9229:9229` to the `docker run` command.
:::
Finally, add breakpoints in your script and attach the debugger in the _Run and Debug_ view in VS Code.
### @runtime
In most cases, the [Standard Library](#standard-library) provides pure-JS APIs to interact with the openHAB runtime.