Commit Graph
2480 Commits
Author SHA1 Message Date
Holger FriedrichandGitHub 8084755af0 Upgrade Karaf to 4.4.10 (#5353)
Upgrade Karaf from 4.4.9 to 4.4.10.
This includes upgrades for the following libraries:
* pax-logging from 2.3.1 to 2.3.2
* xbean from 4.28 to 4.29

Reverts downgrade of karaf-maven-plugin to 4.4.8.

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-02-16 20:25:24 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
e6ca14c9e1 Bump org.codehaus.gmavenplus:gmavenplus-plugin from 4.3.0 to 4.3.1 (#5369)
Bumps [org.codehaus.gmavenplus:gmavenplus-plugin](https://github.com/groovy/GMavenPlus) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/groovy/GMavenPlus/releases)
- [Commits](https://github.com/groovy/GMavenPlus/compare/4.3.0...4.3.1)

---
updated-dependencies:
- dependency-name: org.codehaus.gmavenplus:gmavenplus-plugin
  dependency-version: 4.3.1
  dependency-type: direct:development
  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>
2026-02-16 20:13:06 +01:00
David PaceandGitHub 5c4ce916d6 Improve Javadoc for QuantityType (#5360)
Signed-off-by: David Pace <dev@davidpace.de>
2026-02-15 13:01:49 +01:00
lolodomoandGitHub 3bc47c09a2 [YAML thing provider] Remove unsued and unneeded variable "modelLoaded" (#5362)
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-02-15 12:57:18 +01:00
b19ac57df7 Add support for short-form syntax in YAML Semantic Tags (#5313)
* Add support for short-form YAML semantic tags

Implemented hybrid mapping for YamlSemanticTagDTO to allow tags to be defined as either a simple string (label) or a detailed object (label, description, synonyms). Includes Jackson creator/value logic for round-trip serialization.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
Co-authored-by: Laurent Garnier <lg.hc@free.fr>
2026-02-15 12:54:35 +01:00
Andrew Fiddian-GreenandGitHub 48e1442e6b [mDNS] Only consider fully qualified discovery results (#5348)
* [mDNS] only consider fully qualified results

Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
2026-02-14 21:55:37 +01:00
Andrew Fiddian-GreenandGitHub 70144e3cc5 Support 'keywords' field in addon.xml schema (#5352)
Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
2026-02-14 20:04:06 +01:00
NadaharandGitHub 767e809e5a Rule file provider (#4633)
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2026-02-14 19:57:24 +01:00
jimtngandGitHub f9776bcb7f Restore model validation not to fail on diagnostic errors for rules and scripts (#5351)
* Restore model validation not to fail on diagnostic errors

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2026-02-14 13:28:52 +01:00
Chris JacksonandGitHub 50aea478ca Add comment to ProgressCallback doc (#5286)
Signed-off-by: Chris Jackson <chris@cd-jackson.com>
2026-02-14 08:25:53 +01:00
lolodomoandGitHub 3706443006 [YAML] Enhance removedModel method in all providers (#5341)
The enhancement consists in just getting the UID of the elements to be removed rather than building a full object.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-02-14 08:21:06 +01:00
lolodomoandGitHub 5391ba2cbf [DSL generator] Do not generate thing label if same as in thing type (#5305)
Apply the same logic as for YAML.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-02-14 08:15:21 +01:00
openhab-botandGitHub 7efd3e0f0a New Crowdin updates (#5347)
* New translations tags.properties (Danish)
* New translations tags.properties (German)
2026-02-14 08:04:16 +01:00
Christoph WeitkampandGitHub 15ec1c8aa3 Add utility method to cast profile configurations to specific classes (#5333)
* Add utility method to cast profile configurations to specific classes
* Replace ProfileContext implementation in ScriptProfileTest by a mock

Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2026-02-13 17:47:07 +01:00
Mark HerwegeandGitHub d12b1f8456 implicit RiemannType import (#5349)
Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2026-02-12 21:23:50 +01:00
lolodomoandGitHub 60331d1d65 [YAML thing] Allow "configuration" in syntax as alternative to "config" (#5332)
For thing and channel.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-02-12 06:32:17 +01:00
lolodomoandGitHub 759d6b27dc [YAML] Move YAML test files in sub-folders (#5331)
Move YAML test files in sub-folders

Tests for YamlThingProvider moved in a separate class.
Also test that a thing change listener is properly called when loading a YAML file containing things.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-02-12 06:26:06 +01:00
lolodomoandGitHub 0e9ca965f2 [YAML] Use Objects.equals for Map + adjust hashCode methods (#5335)
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-02-11 11:18:09 +01:00
jimtngandGitHub 6beadca4c4 Add StateOfCharge Semantic Tag Property (#5316)
* change groovycsv to jackson csv library

groovycsv caused an error in Groovy 5.x, even in its "latest" version 1.3.

Rerun the script which fixed a few errors in the manually generated tags (Property_Price, Equipment_HVAC_AirConditioner)

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>

* Add Property_StateOfCharge semantic tag

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>

* add readValues guard

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>

---------

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2026-02-11 11:09:38 +01:00
jimtngandGitHub 2cf0fc8051 Validate ThingUID part during ChannelUID construction (#5342)
The ThingUID portion of a ChannelUID was previously only validated
lazily when getThingUID() was called. This could lead to
ChannelUID objects existing in an invalid state.

This change moves validation to the constructor to ensure
fail-fast behavior and provides a more descriptive error
message if the ThingUID part is malformed.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2026-02-11 10:59:33 +01:00
Дилян ПалаузовandGitHub 8f258ff610 DSL Rule - allow using PersistenceExtensions.RiemannType.TRAPEZOIDAL (#5334) 2026-02-09 01:02:18 +01:00
dependabot[bot]andGitHub 3b4b5b9279 Bump org.apache.maven.plugins:maven-dependency-plugin (#5337)
Bumps [org.apache.maven.plugins:maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/apache/maven-dependency-plugin/releases)
- [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.9.0...maven-dependency-plugin-3.10.0)

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-09 00:52:47 +01:00
Florian HotzeandGitHub 9b854e264f [auth] UserRegistryImpl: Allow registering additional ManagedProviders & Allow field access for subclasses of GenericUser (#5328)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2026-02-06 11:19:47 +01:00
NadaharandGitHub 7343711214 Adjust REST HTTP response status codes (#5236)
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2026-02-05 18:57:27 +01:00
Florian HotzeandGitHub 450c104d5a [auth] Decouple session & API token management from ManagedUser implementation & JaasAuthenticationProvider fixes (#5325)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2026-02-04 23:07:44 +01:00
lolodomoandGitHub 1a41209d9c [REST] API /file-format/parse: do not extend thing/channel config (#5295)
* [REST] API /file-format/parse: do not extend thing/channel config

The /file-format/parse API does no more extend the thing and channel configuration with parameters having a default value. The output will contain hte thing/channel configuration parameters provided in the input.

It is fixed for YAML and DSL formats.

Unit tests added for YAML models containing Thing


Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-01-27 16:04:54 +01:00
Jeff JamesandGitHub 84d284514b Updated item and persistent REST services to use itemName vs. itemname. (#5308)
Signed-off-by: Jeff James <jeff@james-online.com>
2026-01-26 20:22:02 +01:00
Jacob LaursenandGitHub c543c214ee Optimize ZonedDateTime.now().toInstant() (#5303)
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
2026-01-25 16:53:39 +01:00
Jacob LaursenandGitHub 9a4193a89e Fix LogDTO.compareTo to avoid overflow and contract violation (#5304)
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
2026-01-25 13:29:25 +01:00
Jacob LaursenandGitHub 01eb3d27c7 Fix Instant deserialization for action inputs (#5296)
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
2026-01-24 16:49:23 +01:00
jimtngandGitHub e206397672 Add support for short-form expire property in Item Yaml config (#5252)
* Add support for short-form expire property in Item Yaml config

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2026-01-23 19:55:47 +01:00
jimtngandGitHub 4b7ad7a23e Add support for short-form metadata namespace in Item Yaml config (#5250)
* Support deserializing short-form metadata in YamlMetadataDTO

So we can set
`metadata: value`

instead of
```
metadata:
  value: value
```

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2026-01-23 19:53:12 +01:00
dependabot[bot]andGitHub 8fbc72eabf Bump ch.qos.logback:logback-core from 1.5.24 to 1.5.25 in /bundles/org.openhab.core.test (#5298)
* Bump ch.qos.logback:logback-core in /bundles/org.openhab.core.test

Bumps [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) from 1.5.24 to 1.5.25.
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](https://github.com/qos-ch/logback/compare/v_1.5.24...v_1.5.25)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-core
  dependency-version: 1.5.25
  dependency-type: direct:production
...

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-01-23 19:41:24 +01:00
dependabot[bot]andGitHub 7bd83e580f Bump org.codehaus.gmavenplus:gmavenplus-plugin from 4.2.1 to 4.3.0 (#5300)
Bumps [org.codehaus.gmavenplus:gmavenplus-plugin](https://github.com/groovy/GMavenPlus) from 4.2.1 to 4.3.0.
- [Release notes](https://github.com/groovy/GMavenPlus/releases)
- [Commits](https://github.com/groovy/GMavenPlus/compare/4.2.1...4.3.0)

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 23:13:16 +01:00
dependabot[bot]andGitHub a60dfbc176 Bump org.apache.groovy:groovy-all from 5.0.3 to 5.0.4 (#5299)
Bumps [org.apache.groovy:groovy-all](https://github.com/apache/groovy) from 5.0.3 to 5.0.4.
- [Commits](https://github.com/apache/groovy/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 23:12:30 +01:00
jimtngandGitHub 2d4793a829 [YAML Thing Provider] Log warning on Thing config errors (#5282)
Catch IAE during Thing configuration loading to prevent
the entire file from failing. Errors are now logged as warnings
instead of throwing a full stack trace.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2026-01-22 17:16:20 +01:00
Jeff JamesandGitHub fbd0d987ea Enhancements and corrections in openapi spec (#5203)
- 'config' in RootUIComponent/UIComponent was of the wrong type in openapi spec
- getType accessor in UIComponent generated a property
- Updated the naming of data structures in openapi spec w/o the internal DTO nomenclature for consistency and simplicity

Also-by: Florian Hotze <dev@florianhotze.com>
Also-by: Wouter Born <github@maindrain.net>
Signed-off-by: Jeff James <jeff@james-online.com>
2026-01-22 14:49:20 +01:00
Florian HotzeandGitHub aff119cd19 IconServlet: Remove error & warn logging when client disconnected while sending response (#5257)
When a client disconnected while receiving the icon byte stream response,
an error and a warning were logged, making users worried:

```
2022-08-15 20:09:31.387 [ERROR] [ab.core.ui.icon.internal.IconServlet] - Failed sending the icon byte stream as a response: null
2022-08-15 20:09:31.390 [WARN ] [org.eclipse.jetty.server.HttpChannel] - /icon/autarky
java.lang.IllegalStateException: ABORTED
	at org.eclipse.jetty.server.HttpChannelState.sendError(HttpChannelState.java:915) ~[?:?]
    ...
```

IMO, there is no need to log at ERROR or WARN level in such cases,
so I decided to reduce to DEBUG logging.

The following script can be used to reproduce the above case:

```python
import socket
import struct

host = 'localhost'
port = 8080
path = '/icon/BatteryLevel?format=svg&anyFormat=true&state=94+%25&iconset=classic'
request = f"GET {path} HTTP/1.1\r\nHost: {host}\r\nConnection: keep-alive\r\n\r\n"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))

# Send the request
s.sendall(request.encode())

# FORCE an immediate hard reset (RST)
# This ensures the server sees a connection failure while it's inside doGet
s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', 1, 0))
s.close()
```

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2026-01-17 19:45:21 +01:00
Florian HotzeandGitHub d0c3b4a4ec [automation] Set config descriptions for SimpleRule & Improve null handling (#5273)
* SimpleRule: Improve code wrt null handling & annotations
* SimpleRule: Fix adding type and source config throws validation error in RuleRegistryImpl

Define those two as "default" config description as the UI uses those fields to display the source.

Fixes #5268.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2026-01-17 19:37:16 +01:00
lolodomoandGitHub a2b15263a2 [YAML provider] Add INFO log for config TEXT param value not parsed a… (#5280)
* [YAML provider] Add INFO log for config TEXT param value not parsed as string

Related to openhab/openhab-webui#3696
Follow-up #5248

A log at level INFO is now displayed when a YAML file is loaded and contains a thing or channel configuration parameter of type TEXT whose value is not parsed as a string. This occurs when an unquoted number is provided. The log recommends enclosing the value in double quotes to prevent conversion.

For better consistency, the YAML provider is now also processing any BigDecimal value to convert it into a String type when the config paramater is of type TEXT.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-01-17 19:22:33 +01:00
NadaharandGitHub de14a998c5 Add time zone support for ZonedDateTime action inputs (#5235)
* Add time zone support for ZonedDateTime action inputs

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2026-01-17 19:17:17 +01:00
jimtngandGitHub f4c50780d8 Allow setting a blank or null metadata value (#5283)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2026-01-17 19:13:57 +01:00
Holger FriedrichandGitHub 062dc6e3db Upgrade pdfbox from to 3.0.1 (#5267)
* Upgrade pdfbox from to 3.0.1

Upgrade Apache pdfbox from 2.0.27 to 3.0.1.

* Exclude junit due to launcher incompatibility

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-01-13 05:51:05 +01:00
Holger FriedrichandGitHub ba668ddf1d Upgrade commons-pool2 to 2.13.1 (#5264)
Upgrade commons-pool2 from 2.12.1 to 2.13.1
Changelog:
https://commons.apache.org/proper/commons-pool/changes.html#a2.13.1
https://commons.apache.org/proper/commons-pool/changes.html#a2.13.0

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-01-13 05:43:14 +01:00
Holger FriedrichandGitHub fe04325b17 Upgrade logback to 1.5.24 (#5277)
* Upgrade logback from 1.5.18 to 1.5.24, see changelog
  https://logback.qos.ch/news.html#1.5.24

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-01-13 05:42:02 +01:00
Florian HotzeandHolger Friedrich bb02591ced RuleEngine: Fix startlevel trigger for DSL rules triggers twice during startup
Fixes #4395.
The issue was noticed for Rules DSL, but not for JS Scripting, because JS Scripting is loaded at a point where the rule engine is already started.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2026-01-11 23:25:17 +01:00
Florian HotzeandHolger Friedrich a70b9859f4 RuleEngine: Fix startlevel is always 40 when executing rule with StartlevelTrigger after change
Fixes #5177.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2026-01-11 23:25:17 +01:00
Holger FriedrichandGitHub 79277fafb7 Update license headers to 2026 (#5259)
* Update license headers to 2026

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-01-10 22:36:26 +01:00
Florian HotzeandGitHub a90149b3a4 Add support for RegEx expressions in event WebSocket topic filter (#5116)
* Add support for RegEx expressions in event WebSocket topic filter

Closes #4600.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2026-01-06 18:30:51 +01:00
lolodomoandGitHub fdf8d6589c Normalize thing/channel config in response of /file-format/parse API (#5242)
This PR normalizes thing/channel configuration before producing the response.
It allows having proper types for config parameters in the JSON response of the API.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-01-06 18:13:38 +01:00