Commit Graph
3107 Commits
Author SHA1 Message Date
Holger FriedrichandGitHub c3deec6d21 Add tests for gson (#5182)
* Add tests for gson

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2025-12-15 22:33:25 +01:00
Jeff JamesandGitHub b45a3b1203 Fixed issue where EnrichedSemanticTagDTO members were not listed in openapi spec given they were not public (#5194)
Signed-off-by: Jeff James <jeff@james-online.com>
2025-12-15 22:23:08 +01:00
NadaharandGitHub fd00c77ff5 Refactor websocket concurrency handling (#5165)
* Refactor websocket concurrency handling
* Modify web socket buffering logic to ensure FIFO and avoid blocking the logger thread
* Use a dedicated executor that is guaranteed not to log anything
* Logging tweak

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-12-14 22:14:42 +01:00
Kai KreuzerandGitHub 9c3907da2c Add PersistenceUpgrader (#5190)
This accidentially got lost in https://github.com/openhab/openhab-core/commit/cea82896242c290941a62c519c618d4b702b260f

Signed-off-by: Kai Kreuzer <kai@openhab.org>
2025-12-14 18:23:49 +01:00
Mark HerwegeandGitHub 361d71433d Persistence no default strategies and persistence configuration health check (#4682)
* no default strategy and persistence health
* upgradetool

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2025-12-14 17:28:26 +01:00
openhab-botandGitHub 636c476d3e New Crowdin updates (#5188)
* New translations addons.properties (French)
* New translations tags.properties (French)
2025-12-14 13:11:44 +01:00
CopilotGitHubcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>kaikreuzer
ed1a094a40 Add missing 400 response documentation to REST API endpoints (#5144)
* Add missing 400 API response documentation to REST endpoints

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com>
2025-12-13 16:52:19 +01:00
Cody CutrerandGitHub 839581898b Add HomieAddonUpgrader to upgradetool (#5180)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-12-13 14:48:01 +01:00
dependabot[bot]andGitHub 4d8adbfffe Bump actions/upload-artifact from 5 to 6 (#5185)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-13 09:52:05 +01:00
dependabot[bot]andGitHub dfb7e24741 Bump actions/cache from 4 to 5 (#5186)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-13 09:01:43 +01:00
Andrew Fiddian-GreenandGitHub c0cd523e8c Lower the log level for useTags (#5142)
Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
2025-12-13 08:24:43 +01:00
lolodomoandGitHub 2789e69d5e [YAML thing provider] Handles properly channels with group (#5181)
Fix openhab/openhab-webui#3562

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2025-12-12 08:45:42 +01:00
Holger Friedrich 82ed8b3d05 Revert "Bump org.eclipse.jdt:ecj from 3.43.0 to 3.44.0 (#5179)"
This reverts commit e05bf6169e.
2025-12-11 01:21:08 +01:00
NadaharandGitHub 409ab79101 Use dedicated executor for long-running SDDP discovery tasks (#5174)
Some of the SDDP tasks are long-running by design, the background scan task in particular runs indefinitely (until interrupted). This clashes with the idea in #4969, and perhaps with the envisioned use of OH's shared thread pools in general, in that pools are small and tasks are expected to be short-lived. When setting logging to DEBUG, the log will be constantly "spammed" with complaints about the SDDP discovery task taking more than 5 seconds, which it is in fact designed to do.

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-12-09 22:51:04 +01:00
Zhivka DimovaandGitHub 8720a69449 [rest-api]: Change error code 500 to 400 (#5104)
* [rest-api]: Change error code 500 to 400

Change the response code of the rest api when submitting invalid
parameters.

Signed-off-by: Zhivka Dimova <zhivka.dimova@myforest.net>
2025-12-09 22:31:28 +01:00
NadaharandGitHub 84cfec2925 Eliminate double localization of discovery results (#5151)
* Remove double localization of discovery results

Localization of discovery results requires a bundle from which to acquire the translations. When bindings implement AbstractDiscoveryService themselves, the bundle is resolved using the class of the implementation. For "sub discovery services" where bindings are "participants", this doesn't work, because the  implementing class is the "sub discovery service" itself, not the binding, which means that the resolved bundle doesn't have any translations. This has been solved by doing an extra round of localization in the "sub discovery service" (using the correct bundle) before passing the DiscoveryResult on to AbstractDiscoveryService, which will attempt localization again, with the wrong bundle, but since no translations are found in this bundle, it has no other consequences than being wasteful.

This solves the problem by adding a second thingDiscovered() method to AbstractDiscoveryService, which accepts a bundle as a second argument. That way, "sub discovery services" can resolve the correct bundle using the participant class, and pass on the correct bundle, avoiding the "double localization".

In addition, a new factory method is added to DiscoveryResultBuilder that allows initializing a new builder from an existing DiscoveryResult instance, so that this doesn't have to be done in the localization method itself.

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-12-09 22:18:14 +01:00
Cody CutrerandGitHub 7b80c1e9f5 Add HomeAssistantAddonUpgrader to upgradetool (#5178)
Automatically marks Home Assistant addon for installation if the
MQTT binding is marked for installation, and Home Assistant things
exist

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-12-09 22:15:06 +01:00
dependabot[bot]andGitHub e05bf6169e Bump org.eclipse.jdt:ecj from 3.43.0 to 3.44.0 (#5179)
* Bump org.eclipse.jdt:ecj from 3.43.0 to 3.44.0

Bumps [org.eclipse.jdt:ecj](https://github.com/eclipse-jdt/eclipse.jdt.core) from 3.43.0 to 3.44.0.
- [Commits](https://github.com/eclipse-jdt/eclipse.jdt.core/commits)

---
updated-dependencies:
- dependency-name: org.eclipse.jdt:ecj
  dependency-version: 3.44.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

* Change order of Mock and Nullable annotations

Also-by: Holger Friedrich <mail@holger-friedrich.de>
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 04:16:42 +01:00
Дилян ПалаузовandGitHub b3e583867e Script DSL: do implicit “import java.time.temporal.ChronoUnit;” (#5098) 2025-12-06 20:00:59 +01:00
Дилян ПалаузовandGitHub 7705f2ba9b Script DSL: accept Collection Literals (#5077)
* lists - `#['Hello','World']` , and
* sets - `#{'Hello','World'}`
2025-12-06 19:55:11 +01:00
lolodomoandGitHub 8f8fabbd2f [DSL/YAML] Changes prefix for isolated models (#5153)
Isolated DSL/YAML models are models that do not fill the things/items/... registries when they are loaded.
They are used as temporary models for particular features.

These models have a particular prefix in their names to distinguish them.
It was "tmp_" before, it is now "___tmp_".
The risk that a user names one of its file with such prefix is reduced.
If a DSL file with prefix "___tmp_" is by the way used by a user, this file is ignored and a message is now logged to inform the user.

Closed #5134

Change pattern for isolated model name

tmp_DSL_model_<N>.items => ___tmp_model_<N>.items
tmp_YAML_model_<N>.yaml => ___tmp_model_<N>.yaml

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2025-12-06 19:48:08 +01:00
lolodomoandGitHub 21acfb57e0 [DSL/YAML generator] Consider item pattern formatter even without label (#5154)
* [DSL/YAML generator] Consider item pattern formatter even without label

Items without label but with a formatter are now properly considered when generating DSL and YAML syntax.
Example: Number SceneItem "[MAP(scene.map):%s]"
Bug was reported on the community forum.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>

* Fix typos discovered by Copilot

Signed-off-by: Laurent Garnier <lg.hc@free.fr>

---------

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2025-12-06 19:45:36 +01:00
dependabot[bot]andGitHub 15db880d26 Bump org.apache.maven.plugins:maven-release-plugin from 3.2.0 to 3.3.0 (#5172)
Bumps [org.apache.maven.plugins:maven-release-plugin](https://github.com/apache/maven-release) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/apache/maven-release/releases)
- [Commits](https://github.com/apache/maven-release/compare/maven-release-3.2.0...maven-release-3.3.0)

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 21:14:17 +01:00
dependabot[bot]andGitHub 5b9f872093 Bump org.apache.groovy:groovy-all from 5.0.2 to 5.0.3 (#5173)
Bumps [org.apache.groovy:groovy-all](https://github.com/apache/groovy) from 5.0.2 to 5.0.3.
- [Commits](https://github.com/apache/groovy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 21:13:20 +01:00
Holger FriedrichandGitHub 7ca628ecc8 Fix SAT warnings (#5170)
Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2025-12-04 22:41:25 +01:00
Andrew Fiddian-GreenandGitHub de78550851 [HexUtils] Add a couple more methods (#5164)
* [HexUtils] Add a couple of methods

Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
2025-12-02 08:48:12 +01:00
dependabot[bot]andGitHub c8b101ff69 Bump org.apache.maven.plugins:maven-source-plugin from 3.3.1 to 3.4.0 (#5157)
Bumps [org.apache.maven.plugins:maven-source-plugin](https://github.com/apache/maven-source-plugin) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/apache/maven-source-plugin/releases)
- [Commits](https://github.com/apache/maven-source-plugin/compare/maven-source-plugin-3.3.1...maven-source-plugin-3.4.0)

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-30 19:04:48 +01:00
dependabot[bot]andGitHub 07c703fe7a Bump org.apache.maven.plugins:maven-assembly-plugin from 3.7.1 to 3.8.0 (#5159)
Bumps [org.apache.maven.plugins:maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) from 3.7.1 to 3.8.0.
- [Release notes](https://github.com/apache/maven-assembly-plugin/releases)
- [Commits](https://github.com/apache/maven-assembly-plugin/compare/maven-assembly-plugin-3.7.1...v3.8.0)

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-30 19:03:18 +01:00
dependabot[bot]andGitHub 801b1fad4f Bump org.apache.maven.plugins:maven-resources-plugin from 3.3.1 to 3.4.0 (#5160)
Bumps [org.apache.maven.plugins:maven-resources-plugin](https://github.com/apache/maven-resources-plugin) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/apache/maven-resources-plugin/releases)
- [Commits](https://github.com/apache/maven-resources-plugin/compare/maven-resources-plugin-3.3.1...v3.4.0)

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-30 19:02:06 +01:00
GiviMADandGitHub 390503b7ef [audio] Add pcm audio websocket with dialog support (#4032)
* [audio] Add pcm audio websocket with dialog support
* improve KSEdgeService support
* fix/spotless voice provider

Signed-off-by: Miguel Álvarez <miguelwork92@gmail.com>
2025-11-29 22:07:55 +01:00
openhab-botandGitHub c56c0165e4 New translations tags.properties (Danish) (#5149) 2025-11-27 21:05:17 +01:00
Florian HotzeandGitHub ac59fba8a7 BusEventImpl: Fix source not passed for sendCommand(Item, String, String) (#5150)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-11-25 18:17:32 +01:00
Дилян ПалаузовandGitHub 1aa3f67bde ScriptEngineFactory.createScriptEngine() - describe purpose of parameter (#5066) 2025-11-25 08:55:56 +01:00
dependabot[bot]andGitHub 45cbdbec04 Bump org.codehaus.plexus:plexus-compiler-eclipse from 2.16.0 to 2.16.1 (#5147)
Bumps org.codehaus.plexus:plexus-compiler-eclipse from 2.16.0 to 2.16.1.

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-23 19:43:50 +01:00
lolodomoandGitHub 725cd267b8 [YAML item/thing providers] Change way to check syntax for few fields (#5085)
Concerned fields are:
- group in the "groups" list of an item
- UID of a linked channel in an item
- namespace of a metadata attached to an item
- UID of a thing
- "bridge" field of a thing
- channel id of a channel declared in a thing
- "type" field of a channel

A check was also added for the "profile" configuration parameter of a linked channel.
Related to #5057

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2025-11-23 12:43:00 +01:00
Holger Friedrich 3863f62c36 Revert "Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.2 to 3.5.0 (#5139)"
This reverts commit 40f5167b30.
2025-11-23 01:33:59 +01:00
Cody CutrerandGitHub fc9c923621 Allow cross-binding bridges (#5083)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-11-23 00:22:09 +01:00
NadaharandGitHub 75b885a137 Refactor Windows USB discovery (#5092)
* Create User32Ex with some mappings missing in JNA's User32
* Create WindowMessageHandler for subscribing to device change messages

The class, when run as a Runnable, creates an invisible window and uses that to listen for device change events for USB devices and serial ports. It listens in a blocking message loop, so it's necessary to call terminate() for the loop to exit and the run() method to exit. Results are sent to subscribing WindowMessageListeners.

* Refactor WindowsUsbSerialDiscovery to use a different approach to gathering device information

The previous implementation scanned the registry for USB devices on a fixed interval. This implementation changes most of the core logic, using SetupAPI as the primary source of information instead of the registry. That allows it to process less information to get to the information of interest, in addition to only "discovering" devices that are currently connected to the computer. The registry keeps the entries for all devices that have previously been connected as well, which would also be "discovered" with the previous implementation.

In addition, this implementation uses WindowMessageHandler to receive device change messages from Windows, making regular scanning unnecessary. If the WindowMessageHandler fails for some reason, the implementation will fall back to scanning on an interval, but this scanning is still using SetupAPI to acquire the data.

* Various thread-safety and consistency fixes

- UsbAddonFinder: Remove unused Set and fix concurrency behavior. ConcurrentHashMap is unsuitable here because it doesn't allow locking the full map, which is needed during "merging" and when resolving suggested add-ons.
- DeltaUsbSerialScanner: Make lastScanResult thread-safe.
- Ser2NetUsbSerialDiscovery: Make lastScanResult thread-safe, reduce the scope of locking to reduce contention and lessen how many locks are held at once. Make notifyListeners volatile for thread-safe access, and stop reacting to jmdns serviceAdded events. jmdns first fires serviceAdded when the service has just been discovered, but most of the information hasn't yet been gathered, and then fires serviceResolved once all the data has been registered. The data received in serviceAdded is incomplete and rarely useful, at best it's a "heads-up, this device might be resolved soon".
- UsbSerialDiscovery: Correct JavaDoc
- UsbSerialDiscoveryService: Minor logging tweaks, only log "Discovered new" the first time the device is "discovered".

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-11-23 00:02:54 +01:00
Edwin IngandGitHub 0deb287f07 Fixed several nondeterministic tests (#5048)
Also-by: Shiyang Zhao <sz89@illinois.edu>
Signed-off-by: Edwin Ing <edwinji2@illinois.edu>
2025-11-22 23:55:32 +01:00
NadaharandGitHub dd2a59a7b5 Make ConfigDescriptionParameter.stepsize serialize to "step" to be consistent with XML schema (#5132)
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-11-22 23:44:27 +01:00
Cody CutrerandGitHub 759c4e70d5 Allow source from header in REST API (#5131)
* Allow source from header in REST API

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-11-22 22:41:53 +01:00
openhab-botandGitHub 8a9b341717 New translations tags.properties (German) (#5141) 2025-11-22 22:13:02 +01:00
Christoph WeitkampandGitHub f5a3e41eff Added semantic property for Prices (#5140)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2025-11-22 18:59:03 +01:00
dependabot[bot]andGitHub 40f5167b30 Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.2 to 3.5.0 (#5139)
Bumps [org.apache.maven.plugins:maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.4.2 to 3.5.0.
- [Release notes](https://github.com/apache/maven-jar-plugin/releases)
- [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.4.2...maven-jar-plugin-3.5.0)

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-22 08:35:49 +01:00
dependabot[bot]andGitHub ded175f681 Bump actions/checkout from 5 to 6 (#5138)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-22 08:32:27 +01:00
openhab-botandGitHub 81016bbbc8 New translations tags.properties (Danish) (#5133) 2025-11-21 19:07:44 +01:00
Christoph WeitkampandGitHub 66177cc992 Added support for TimeSeries on Offset-Profile (#5119)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2025-11-21 18:47:29 +01:00
Florian HotzeandGitHub e39eb5df7c DefaultScriptScopeProvider: Provide BusEventImpl instead of ScriptBusEventImpl (#5136)
org.openhab.core.automation.module.script...ScriptBusEventImpl was a copy of org.openhab.core.model.script...BusEvent,
which was removed in #5122.
In #5122, a org.openhab.core.automation.module.script...BusEventImpl was added, which is already used by the org.openhab.core.model.script bundle.

I think the ScriptBusEventImpl copy of the old BusEvent class was done to avoid a dependency org.openhab.core.automation.module.script => org.openhab.core.model.script.
As we now have a BusEventImpl in the automation bundle, we can use it for the DefaultScriptScopeProvider and get rid of ScriptBusEventImpl.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-11-21 08:43:44 +01:00
Florian HotzeandGitHub a1a92f2dcc Populate source when sending Item events via BusEvent (#5122)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-11-13 21:48:19 +01:00
Florian HotzeandGitHub 7e3ceea80c ConfigDescriptionParameter: Format JavaDoc using HTML tags (#5126)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-11-13 21:43:51 +01:00