When using JSRule, the created SimpleRule is wrapper by ThreadsafeSimpleRuleDelegate to add the necessary synchronization.
If lock acquisition failed within the configured time or was interrupted,
it added the rule UID to the message, calling `delegate#getUID`,
which is overwritten from JS and thereby causes a GraalJS context access.
Signed-off-by: Florian Hotze <dev@florianhotze.com>
* New translations ahawastecollection.properties (German)
* New translations bluetooth.properties (German)
* New translations evcc.properties (German)
* New translations bluetooth.properties (German)
* New translations mcp.properties (German)
* New translations ntp.properties (German)
* New translations epsonprojector.properties (German)
* New translations resol.properties (German)
* New translations telegram.properties (German)
* New translations basicprofiles.properties (German)
* New translations astro.properties (German)
* New translations nanoleaf.properties (German)
* New translations openweathermap.properties (German)
* New translations openhabcloud.properties (German)
* New translations map.properties (German)
* New translations jsonpath.properties (German)
* New translations regex.properties (German)
* New translations scale.properties (German)
* New translations xpath.properties (German)
* New translations xslt.properties (German)
* New translations influxdb.properties (German)
* New translations exec.properties (German)
* New translations network.properties (German)
* New translations picotts.properties (German)
* New translations froniuswattpilot.properties (German)
* New translations math.properties (German)
The bridge sends a WebSocket ping every 10 seconds but only refreshed its
liveness timestamp on incoming text frames. Pong replies were never seen
because the handler did not implement WebSocketPingPongListener, so on an
idle SysAP the 90 second watchdog closed a healthy connection and the
binding reconnected in a loop.
Implement WebSocketPingPongListener and update lastReceivedTime on every
pong, so ping/pong keeps the connection alive while a genuinely dead peer
is still detected once pongs stop.
Signed-off-by: Danilo Bürger <info@danilobuerger.de>
* [unifi] Fixes session reauthentication for websockets
When a protect or access websocket session expired, the client was not
reauthorizing correctly with the new shared auth model.
Signed-off-by: Dan Cunningham <dan@digitaldan.com>
Matter.js 0.17 implemented strict data validate for thermostats that we
could violate, preventing them from being added to the bridge.
Signed-off-by: Dan Cunningham <dan@digitaldan.com>
* [jsscripting] Await activation of OSGiScriptExtensionProvider before registering ScriptEngineFactory
This ensures that OSGiScriptExtensionProvider / `require('@runtime/osgi').bundleContext` is always available when JS ScriptEngines are created.
Fixes issues such as #21014.
Signed-off-by: Florian Hotze <dev@florianhotze.com>
Conversations are limited in size. This can lead to invalid structures
being rejected by the Gemini API.
This is now handled to ensure that API requests are valid.
Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
* [mcp] Support additional content types for api calls
We had hardcoded JSON content types for the API tools calls which does not work on all openHAB api endpoints, we now use the requestBody.content from the OpenAPI spec to determine the correct type to use.
Signed-off-by: Dan Cunningham <dan@digitaldan.com>
This removes unused dependencies and reruns our code-gen logic, there
are no functional changes to the binding code in this PR, just
general housekeeping.
Signed-off-by: Dan Cunningham <dan@digitaldan.com>