Commit Graph
3223 Commits
Author SHA1 Message Date
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
Дилян ПалаузовandGitHub 1a61dc02f1 model.rule.runtime: Remove unused RuleEvaluationContext (#5102) 2025-11-10 22:53:29 +01:00
Дилян ПалаузовandGitHub 36b34d25d5 model.script.ScriptImplicitlyImportedTypes: remove dead code (#5099) 2025-11-10 22:51:22 +01:00
Florian HotzeandGitHub ed8f54a41c Refactor BusEvent to ScriptExtension (#5064)
Comparable to #3155.

JSR-223 automation add-ons often use the script actions from the org.openhab.core.model.script bundle.
The downside is that the actions are tied to XText or at least use some hacks to provide static access to OSGi services.

This refactors the BusEvent actions, making them available as ScriptExtension via import-preset ScriptAction.
The actions are wrapped for DSL rules, to stay backward compatible.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-11-10 22:49:19 +01:00
Edwin IngandGitHub 43f16e73bb Fix nondeterministic JsonStorageTest (#5112)
Signed-off-by: Edwin Ing <edwinji2@illinois.edu>
2025-11-10 22:45:41 +01:00
Дилян ПалаузовandGitHub 34340cbfe4 Do not require Strategies{} in persistence files (#5094) 2025-11-10 22:40:04 +01:00
Cody CutrerandGitHub 6267d2ebca Populate source when sending item events via REST API (#5041)
Optionally allow providing a source, and then append (or directly) set
the REST package and authenticated username.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-11-10 22:33:46 +01:00
NadaharandGitHub 6f51ef2143 Minor rulesupport fixes (#5074)
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-11-10 19:58:23 +01:00
dependabot[bot]andGitHub e17ec6d15e Bump org.apache.maven.plugins:maven-release-plugin from 3.1.1 to 3.2.0 (#5120)
Bumps [org.apache.maven.plugins:maven-release-plugin](https://github.com/apache/maven-release) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/apache/maven-release/releases)
- [Commits](https://github.com/apache/maven-release/compare/maven-release-3.1.1...maven-release-3.2.0)

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 18:13:23 +01:00
Christoph WeitkampandGitHub df0af0958e Added dimension for price per volume and related currency units (#5110)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2025-11-09 18:14:55 +01:00
Holger FriedrichandGitHub eaf0e7b09e [io.monitor] Upgrade dependencies (#5118)
* metrics-core from 4.2.30 to 4.2.37

  Release notes:
  https://github.com/dropwizard/metrics/releases

* micrometer-core from 1.14.5 to 1.16.0

  Release notes:
  https://github.com/micrometer-metrics/micrometer/releases

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2025-11-09 07:33:38 +01:00
dependabot[bot]andGitHub 6b5fd2f0c9 Bump org.codehaus.plexus:plexus-compiler-eclipse from 2.15.0 to 2.16.0 (#5117)
Bumps org.codehaus.plexus:plexus-compiler-eclipse from 2.15.0 to 2.16.0.

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-09 07:26:57 +01:00
lo92frandGitHub 87d9a08a7a Fix event handling for Genasubscription (#5114)
* fix for Sonos binding not working anymore because wrong match on event source device / participant

Signed-off-by: Laurent ARNAL <laurent@clae.net>
2025-11-04 21:30:29 +01:00
Cody CutrerandGitHub b1670ec2fa Make FilterCriteria.Operator.getSymbol public (#5106)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-10-31 00:35:14 +01:00
NadaharandGitHub 08b3fb2a31 Add AbstractThingHandlerDiscoveryService constructor for tests (#5100)
* Add AbstractThingHandlerDiscoveryService constructor for tests to use a different executor
* Add JavaDocs
* Make ThingHandler type generic

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-10-26 07:20:28 +01:00
NadaharandGitHub 58c9bb2812 Same thread executor (#5072)
* Create SameThreadExecutorService for use by tests

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-10-25 20:54:50 +02:00
Dan CunninghamandGitHub 7e61431f3a Adds namespace support (#5095)
Signed-off-by: Daniel Cunningham <daniel@Daniels-MacBook-Pro.local>
2025-10-25 23:04:49 +05:30
dependabot[bot]andGitHub 8e1aea5c1f Bump org.apache.maven.plugins:maven-plugin-plugin from 3.15.1 to 3.15.2 (#5097)
Bumps [org.apache.maven.plugins:maven-plugin-plugin](https://github.com/apache/maven-plugin-tools) from 3.15.1 to 3.15.2.
- [Release notes](https://github.com/apache/maven-plugin-tools/releases)
- [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.15.1...maven-plugin-tools-3.15.2)

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-24 22:45:27 +02:00
dependabot[bot]andGitHub f7b9b71dfa Bump actions/upload-artifact from 4 to 5 (#5096)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-24 22:44:34 +02:00
Cody CutrerandGitHub 934431cdb4 Set event source for updates and commands from bindings according to new standards (#5073)
* Set event source for updates and commands from bindings according to new standards

In particular, prefix the channel UID with the package (org.openhab.core.thing), and
the channel UID becomes the actor.

Extends ProfileCallback to allow profiles to explicitly specify a source, and then
uses the new delegation syntax to append the channel UID source component in that
case.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-10-24 06:09:32 +02:00
NadaharandGitHub d10530817f IP add-on finder: resolve source IP before broadcast scan (#5090)
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-10-24 00:40:27 +02:00
Cody CutrerandGitHub 7efff5b374 Send source for console commands to items (#5079)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-10-24 00:21:41 +02:00
Cody CutrerandGitHub 26a59793b3 Set event source for restoring item states from persistence (#5082)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-10-24 00:20:22 +02:00
Cody CutrerandGitHub e1a1d6c166 Add helpers for constructing event sources (#5078)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-10-24 00:01:37 +02:00
Cody CutrerandGitHub 32868df4d4 Pass event sources through item state update/change events (#5081)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-10-23 23:57:47 +02:00
Cody CutrerandGitHub 6f6ba7d4ec Include source with item event descriptions when present (#5080)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-10-23 23:36:55 +02:00
lo92frandGitHub dcb1d014dd [upnp] Fix event handling for embeded devices (#5076)
Signed-off-by: Laurent ARNAL <laurent@clae.net>
2025-10-23 22:29:44 +02:00
dependabot[bot]andGitHub e72baac1fb Bump org.apache.groovy:groovy-all from 5.0.1 to 5.0.2 (#5088)
Bumps [org.apache.groovy:groovy-all](https://github.com/apache/groovy) from 5.0.1 to 5.0.2.
- [Commits](https://github.com/apache/groovy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 20:05:48 +02:00
dependabot[bot]andGitHub 1226a71f47 Bump org.codehaus.mojo:exec-maven-plugin from 3.6.1 to 3.6.2 (#5087)
Bumps [org.codehaus.mojo:exec-maven-plugin](https://github.com/mojohaus/exec-maven-plugin) from 3.6.1 to 3.6.2.
- [Release notes](https://github.com/mojohaus/exec-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/exec-maven-plugin/compare/3.6.1...3.6.2)

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 20:04:48 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2c6fdb3ee4 Bump org.apache.maven.plugins:maven-archetype-plugin from 3.4.0 to 3.4.1 (#5071)
Bumps [org.apache.maven.plugins:maven-archetype-plugin](https://github.com/apache/maven-archetype) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/apache/maven-archetype/releases)
- [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.4.0...maven-archetype-3.4.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-archetype-plugin
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-11 11:15:09 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
21335699e6 Bump org.apache.maven.archetype:archetype-packaging from 3.4.0 to 3.4.1 (#5070)
Bumps [org.apache.maven.archetype:archetype-packaging](https://github.com/apache/maven-archetype) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/apache/maven-archetype/releases)
- [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.4.0...maven-archetype-3.4.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.archetype:archetype-packaging
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-11 11:14:43 +02:00
NadaharandGitHub 191b62df7f Fix ActionHandler.execute() nullness annotation (#4974)
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-10-11 08:35:39 +02:00
lolodomoandGitHub 6282298b15 [YAML provider] Fix check of syntax for item names (#5065)
Closes #4903

Makes check consistent with what was done for DSL in #4928

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2025-10-10 23:32:33 +02:00
Florian HotzeandGitHub 26015ff8c5 ScriptTransformationService: Handle engine removal through ScriptEngineManager (#5063)
* ScriptTransformationService: Fix engine closed too early

Currently, there are two issues:

When a ScriptRecord is cleared from the cache,
the ScriptTransformationService currently closes the ScriptEngine itself, without involving the ScriptEngineManager.
If a transformation script is invoked again after it has been cleared from the scriptCache, the ScriptEngineManager::createScriptEngine call makes the ScriptEngineManager first remove the old engine from its internal "store",
which includes invoking the scriptUnloaded hook. This invocation can cause an exception because the engine is already closed (by ScriptTransformationService) and hence function/method invocations inside the engine are not possible anymore.

Ff the engine implement Compilable, it is even closed two times by ScriptTransformationService, possibly causing an exception if the ScriptEngine doesn't handle multiple close() calls gracefully.

These issues are fixed by properly notifying the ScriptEngineManager when an engine should be removed and leaving the removal handling to the ScriptEngineManager.

The issues were discovered while working on #5062.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-10-10 23:30:56 +02:00
Florian HotzeandGitHub 508f1f61cc ScriptTransformationService: Implement missing script dependency tracking (#5062)
Closes #5046.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-10-10 23:26:34 +02:00