mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 07:02:02 +01:00
[jsscripting] Upgrade openhab-js to 5.8.1 (#17885)
Changelog: https://github.com/openhab/openhab-js/blob/main/CHANGELOG.md#581. Signed-off-by: Florian Hotze <dev@florianhotze.com>
This commit is contained in:
parent
8ea703ecd3
commit
9b4ee482ab
@ -809,13 +809,20 @@ See [openhab-js : actions.NotificationBuilder](https://openhab.github.io/openhab
|
||||
The cache namespace provides both a private and a shared cache that can be used to set and retrieve data that will be persisted between subsequent runs of the same or between scripts.
|
||||
|
||||
The private cache can only be accessed by the same script and is cleared when the script is unloaded.
|
||||
You can use it to store both primitives and objects, e.g. store timers or counters between subsequent runs of that script.
|
||||
You can use it to store primitives and objects, e.g. store timers or counters between subsequent runs of that script.
|
||||
When a script is unloaded and its cache is cleared, all timers (see [`createTimer`](#createtimer)) stored in its private cache are automatically cancelled.
|
||||
|
||||
The shared cache is shared across all rules and scripts, it can therefore be accessed from any automation language.
|
||||
The access to every key is tracked and the key is removed when all scripts that ever accessed that key are unloaded.
|
||||
If that key stored a timer, the timer will be cancelled.
|
||||
You can use it to store **only primitives**, as storing objects is not thread-safe and can cause script execution failures.
|
||||
You can use it to store primitives and **Java** objects, e.g. store timers or counters between multiple scripts.
|
||||
|
||||
Due to a multi-threading limitation in GraalJS (the JavaScript engine used by JavaScript Scripting), it is not recommended to store JavaScript objects in the shared cache.
|
||||
Multi-threaded access to JavaScript objects will lead to script execution failure!
|
||||
You can work-around that limitation by either serialising and deserialising JS objects or by switching to their Java counterparts.
|
||||
|
||||
Timers as created by [`createTimer`](#createtimer) can be stored in the shared cache.
|
||||
The ids of timers and intervals as created by `setTimeout` and `setInterval` cannot be shared across scripts as these ids are local to the script where they were created.
|
||||
|
||||
See [openhab-js : cache](https://openhab.github.io/openhab-js/cache.html) for full API documentation.
|
||||
|
||||
@ -1240,7 +1247,7 @@ Operations and conditions can also optionally take functions:
|
||||
|
||||
```javascript
|
||||
rules.when().item("F1_light").changed().then(event => {
|
||||
console.log(event);
|
||||
console.log(event);
|
||||
}).build("Test Rule", "My Test Rule");
|
||||
```
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
<!-- Remember to check if the fix https://github.com/openhab/openhab-core/pull/4437 still works when upgrading GraalJS -->
|
||||
<graal.version>22.0.0.2</graal.version> <!-- DO NOT UPGRADE: 22.0.0.2 is the latest version working on armv7l / OpenJDK 11.0.16 & armv7l / Zulu 17.0.5+8 -->
|
||||
<oh.version>${project.version}</oh.version>
|
||||
<ohjs.version>openhab@5.8.0</ohjs.version>
|
||||
<ohjs.version>openhab@5.8.1</ohjs.version>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
|
Loading…
Reference in New Issue
Block a user