Commit Graph
2615 Commits
Author SHA1 Message Date
dependabot[bot]andGitHub 53a30bb967 Bump org.apache.maven.plugins:maven-dependency-plugin (#5612)
Bumps [org.apache.maven.plugins:maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/apache/maven-dependency-plugin/releases)
- [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.10.0...maven-dependency-plugin-3.11.0)

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-29 07:57:55 +02:00
lolodomoandGitHub 4ec5776700 Add semantic tags to conversion REST API (#5573)
* Add semantic tags to conversion REST API

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

* Copilot comments: first set of changes

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

* getAllFromModel: copy list

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

* removeModel: get a mutable empty list

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

* Simplification in method parse (REST API)

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

* Force UTF-8 charset when using the file-format APIs

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

* Change default value for parameter hideDefaultTags to false

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

* Add parameter to exclude non editable tags

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

* Finally apply hideNonEditableTags/hideDefaultTags params even when UIDs are provided

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

* Review comment: use/add methods isEditable/IsDefault from the registry

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

* Extend REST API getTags to have the info in the response if the tag is default

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

---------

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-28 12:13:50 +02:00
Mark HerwegeandGitHub 73bf65c61d Sitemap DTO fix backward compatibility (#5593)
Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2026-05-27 16:16:09 +02:00
lolodomoandGitHub 9220a7a8c1 Create ready markers for YAML providers (#5605)
yaml=items
yaml=pages
yaml=rules
yaml=ruletemplates
yaml=tags
yaml=sitemaps
yaml=things
yaml=widgets

Related to #5602

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-26 12:12:08 +02:00
lolodomoandGitHub 587f064c0d Reference ReadyService in SitemapRegistry (#5603)
This will in particular trigger the "managed:sitemap" ready marker.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-26 11:57:57 +02:00
lolodomoandGitHub db42ae0bbf Fix blocked treatment when DSL script is empty (#5606)
Problem appeared after #5595

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-26 09:52:22 +02:00
lolodomoandGitHub a72824d4e0 Enhance error/warning messages for DSL sitemaps (#5594)
More precise line number.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-24 10:04:04 +02:00
lolodomoandGitHub 2067825672 Fix loading of DSL .script files at openHAB startup (#5595)
The DSL Rule provider must handle rules and scripts in onReadyMarkerAdded.
Until now, only .rules files were handled, not .script files.
As a result, .script files were ignored by the rule provider.
Sometimes it worked well because there was a call to reloadAllModelsOfType for all scripts when the rule provider was ready and the .script files were then handled by the provider in modelChanged.
If this last call was done while the rule provider was not yet ready, the .script files were ignored because the rule provider was not yet setup to handle model changes.
So all of this depends on timing conditions at openHAB startup.
With that change, the .script files will always be considered by the DSL rule provider.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-24 10:00:21 +02:00
lolodomoandGitHub 2169fe0323 Fix syntax for time in trigger/condition in DSL rule (#5591)
* Fix syntax for time in trigger/condition in DSL rule

Avoid conflict with switch-case statement

Time as "7:0" is now also supported.

Fix #5586

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

* Optimize method buildMsgWithLineNb

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

* Consider Copilot review comments

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

* Consider human comments

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

---------

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-23 21:19:28 +02:00
Дилян ПалаузовandGitHub 2d435db21a core.items.GenericItem.getCommandOptions() - simplify (#5583) 2026-05-18 13:04:29 +02:00
openhab-botandGitHub 771986b233 New Crowdin updates (#5582)
* New translations automation.properties (German)
* New translations systemprofiles.properties (German)
2026-05-18 11:21:39 +02:00
Florian HotzeandGitHub 50b360fa26 Add support for env var resolution in Thing configuration (#5568)
* [config] ConfigUtil: Implement methods to resolve env variable syntax to environment variable values in Configuration (values)

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* [things] BaseThingHandler: Automatically resolve variables in configuration

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* [config] ConfigUtil: Make envProvider protected to subclasses in tests can access it from outside the package

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* [config] ConfigUtilTest: Add a resource lock on ConfigUtil.class

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* [thing] BaseThingHandler: Add unit tests for config variable resolving

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* Address Copilot review

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* Address Copilot review

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* Address Copilot review

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* ConfigUtil: Throw IEA when a variable fails to resolve

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* Address Copilot review

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* Address Copilot review

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* Address Copilot review

Signed-off-by: Florian Hotze <dev@florianhotze.com>

* ConfigUtil: Add method to resolve variables & normalize config afterward

Signed-off-by: Florian Hotze <dev@florianhotze.com>

---------

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2026-05-17 19:55:04 +02:00
85c7c3c469 Make RuleManager.runNow() run in the dedicated rule thread (#5069)
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
Co-authored-by: Ravi Nadahar <nadahar@rediffmail.com>
2026-05-17 18:42:58 +02:00
openhab-botandGitHub ed4f96b095 New Crowdin updates (#5578)
* New translations systemprofiles.properties (Danish)

[ci skip]

* New translations systemprofiles.properties (Italian)

[ci skip]
2026-05-17 18:29:59 +02:00
Дилян ПалаузовandGitHub 6920233c5e model.script.ScriptInterpreter::doEvaluate() - simplify (#5557)
Parameter expression cannot be null
2026-05-17 00:43:19 +02:00
lolodomoandGitHub 9b666a18f4 Fix thing manager when thing is updated (particular time case) (#5577)
Avoid having a thing handler being initialized for a thing UID without first disposing the previous handler for this thing UID.
unregisterAndDisposeHandler is now called instead of unregisterHandler before calling registerAndInitializeHandler in this particular case (thing handler exists for the old thing version).

Fix #5575

Few logs added to help future debugging.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-17 00:39:39 +02:00
NadaharandGitHub 8b3e8b53ec Update GenericEventTrigger label and requirements (#5544)
Fix configuration parameters' requirements

Signed-off-by: Nadahar <Nadahar@users.noreply.github.com>
2026-05-17 00:26:07 +02:00
Christoph WeitkampandGitHub 1c786e7181 Add parameter on Hysteresis Profile to exclude current Item State from calculation (#5556)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2026-05-17 00:24:32 +02:00
Holger FriedrichandGitHub 4d5610fd57 Reduce SAT and compiler warnings (#5549)
* Reduce SAT and compiler warnings

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-05-17 00:20:34 +02:00
Holger FriedrichandGitHub d7470afc23 Handle deprecated APIs (#5550)
* Handle deprecated APIs

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-05-17 00:19:33 +02:00
Dan CunninghamandGitHub 1f74dde4ed Introduce webhook service (#5477)
This adds a new Webhook service for bindings who provide public webhooks, like the cloud binding

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2026-05-17 00:17:58 +02:00
lolodomoandGitHub e8406ca1aa Allow rule with no trigger in DSL Rule file format (#5462)
* [DSL Rule] Allow rule with no trigger in DSL file format

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

* Copilot review comment: call getByytes with StandardCharsets.UTF_8 as parameter

It was already called with StandardCharsets.UTF_8 for certain tests in that test class.

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

* Fix order of lines in itests after resolving conflict

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

* Make triggers optional including the "when" key

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

---------

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-13 23:13:45 +02:00
lolodomoandGitHub 96b6cdf764 Fix registration of sitemap providers to its registry (#5574)
Align with how it is implemented for any other registry/providers.

YAML files containing sitemaps are now properly loaded.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-13 22:45:04 +02:00
Holger FriedrichandGitHub aa3feb15fb Upgrade Mockito to 5.23.0, junit-jupiter to 5.14.4 (#5566)
* Upgrade Mockito to 5.23.0, junit-jupiter to 5.14.4

* Upgrade Mockito from 5.21 to 5.23.
  Changelog:
  https://github.com/mockito/mockito/releases/tag/v5.23.0
  https://github.com/mockito/mockito/releases/tag/v5.22.0
* Upgrade junit-jupiter from 5.14.2 to 5.14.4
  Changelog:
  https://docs.junit.org/5.14.4/release-notes
  https://docs.junit.org/5.14.3/release-notes

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>

* Set locale in test formatStateConvertsQuantityTypeToPatternUnit

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>

---------

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-05-12 07:42:17 +02:00
Holger FriedrichandGitHub b8a286166a Upgrade jdt.annotation to 2.4.100 (#5561)
* Upgrade eclipse.jdt.annotation from 2.2.600 / 2.2.100 to 2.4.100

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-05-12 07:25:10 +02:00
Дилян ПалаузовandGitHub bdab6bccd3 Rules.xtext: resolve ambiguity in the grammar (#5569) 2026-05-11 22:02:25 +02:00
Mark HerwegeandGitHub a9754957a8 Fix managed sitemap rules (#5551)
* fix managed sitemap conditions

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2026-05-11 14:57:30 +02:00
lolodomoandGitHub 980f09d1fa Fix keyword-identifier collisions in DSL rules (#5567)
Fix #5498

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-11 14:25:30 +02:00
Holger FriedrichandGitHub 7d339d8da9 Bump logback to 1.5.32 (#5553)
* Upgrade logback-classic from 1.5.27 to 1.5.32
* Upgrade logback-core from 1.5.27 to 1.5.32

This aligns with pax web 2.3.3 used in Karaf 4.4.11.

Follow-up to 5510.

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-05-09 10:52:37 +02:00
openhab-botandGitHub d1927f5f2b New Crowdin updates (#5548)
* New translations tags.properties (Italian)
* New translations voice.properties (Italian)
* New translations magic.properties (Italian)
* New translations messages.properties (Italian)
* New translations automation.properties (Italian)
2026-05-07 20:10:26 +02:00
lolodomoandGitHub 7da2f48b2d Fix coding of sitemap page/widget id to remain compatible with REST API (#5547)
Fix #5546

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-07 01:20:59 +02:00
jimtngandGitHub ba06ad86f3 Add wildcard support for ChannelEventTriggerHandler (#5512)
* Add wildcard support for ChannelEventTriggerHandler
* Fix event matching on wildcard channel and add relevant tests
* Add negative match test for wildcard filter
* Check against null and blank channelUID configuration

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2026-05-06 19:52:13 +02:00
Дилян ПалаузовandGitHub bd23e475d8 RulesJvmModelInferrer: do not add things as possibly valid identifiers in DSL Rules (#5519)
as they contain colon and colon invalidates the ID in Xbase.
2026-05-06 19:40:25 +02:00
Holger FriedrichandGitHub d98954b97a Upgrade Karaf to 4.4.11 (#5510)
* Upgrade Karaf dependencies and libraries

Upgrade Karaf-related dependencies and several libraries.
This includes upgrades for the following libraries:

* jackson from 2.21.1 to 2.21.2
* pax-logging from 2.3.2 to 2.3.3
* org.eclipse.osgi from 3.18.0 to 3.24.0
* org.apache.felix.scr from 2.2.6 to 2.2.18
* org.ow2.asm from 9.9 to 9.9.1
* org.apache.groovy:groovy-all from 5.0.5 to 5.0.25
* org.eclipse.equinox.common from 3.19.0 to 3.20.300
* org.eclipse.equinox.registry from 3.12.0 to 3.12.600
* bndtools/biz.aQute.tester.junit-platform from 7.2.1 to 7.2.3
* org.ops4j.pax.logging.pax-logging-api from 2.3.2 to 2.3.3
* xtext/xtend requirements from 2.41.0 to 2.43.0.M1
* lsp4j from 0.24.0 to 1.0.0
* commons-io from 2.21.0 to 2.22.0

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2026-05-06 19:35:52 +02:00
Jacob LaursenandGitHub ec6cdb1147 Fix config deserialization for records (#5458)
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
2026-05-05 21:51:25 +02:00
055259bd2e Rule UID syntax validation (#5467)
* Add a validity check for the rule UID

A valid rule UID must consist of one or several segments separated by a colon, each segment must only contain alphanumeric, underscore or hyphen, and must not contain any other symbols.

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

* Apply UID validation to YAML rules

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

* Alternatives

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

* Implement RulesValidator in Java instead

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

* Workaround to let specific errors fail rule parsing while others are just a warning

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

* Alternative way to express model validation expression

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

* Enforce rule UID in RuleRegistry

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

* Apply my preferred alternative

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

* Address review feedback

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

* Add tests for RuleUtil

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

* Address review comments

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>

---------

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
Co-authored-by: Laurent Garnier <lg.hc@free.fr>
Co-authored-by: Ravi Nadahar <nadahar@rediffmail.com>
2026-05-05 20:45:04 +02:00
lolodomoandGitHub af347ff26a Accept any number of sub-widgets in a sitemap frame/page (#5466)
* Accept any number of sub-widgets in a sitemap frame/page

The previous limit was 100.

Widget id coding is enhanced to support any size.
Old coding is still supported.

Closes #5434

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

* Simplify how is built the widget id (no need to retry)

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

---------

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-05 18:52:31 +02:00
lolodomoandGitHub 05bfe08484 Add line number to validation errors/warnings in DSL thing provider (#5433)
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-05 18:28:20 +02:00
Дилян ПалаузовandGitHub b76a02c64e DSL Scripts and Rules: allow usage of org.openhab.core.automation.RuleManager (#5484) 2026-05-04 21:04:09 +02:00
Mark HerwegeandGitHub f9c91218d1 Reduce log level for loading/unloading isolated models (#5539)
Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2026-05-04 16:51:59 +02:00
Florian HotzeandGitHub da0e1de29b [rest] PersistenceResource: Support transforming states to display states (#5518)
* Extract displayState calculation from SseItemStatesEventBuilder to utility class
* [rest] PersistenceResource: Support transforming states to display states
* ItemDisplayStateUtil: Extract state transformation into dedicated method
* ItemUIRegistryImpl: Use transform method from ItemDisplayStateUtil

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2026-05-03 21:29:52 +02:00
Дилян ПалаузовandGitHub 08634b6584 Generate{Item,Persistence,Sitemap,Thing}.mwe2: do not create Generator.xtend (#5508) 2026-05-03 13:26:02 +02:00
lolodomoandGitHub 4b540a2997 Sitemap YAML serialization and parsing (#5482)
* Sitemap YAML serialization and parsing

This PR creates a new YAML format for sitemaps.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-03 08:15:38 +02:00
lolodomoandGitHub 5c0087ec8f Do not set offset in rule condition when not set in DSL file (#5535)
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-02 22:14:52 +02:00
lolodomoandGitHub 3084fcb7af Deprecate defining buttons as properties of a Butongrid widget (#5530)
* Deprecate defining buttons as properties of a Butongrid widget

Remove specific related objects from core sitemap registry.

For backward compatibility, such buttons definition present in existing user sitemaps are automatically replaced by Button sub-widgets. A warning is logged to announce the deprecation when such definition is encountered.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-02 09:29:56 +02:00
lolodomoandGitHub e83cde5e9b Allow multiple sitemaps in a DSL file (#5531)
New file extension ".sitemaps" is added.
A .sitemaps file can contain one or several sitemap definitions.
.sitemap extension is kept for backward compatibility.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-02 09:28:07 +02:00
lolodomoandGitHub 832a35c11d Serialize row/column as first properties of a Button widget (DSL sitemap) (#5533)
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-01 22:00:46 +02:00
lolodomoandGitHub f7681c08f8 Avoid DSL sitemap serializer generating "forceAsItem=false" (#5532)
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
2026-05-01 21:39:38 +02:00
jimtngandGitHub be7f1ebd84 Add file-based YAML support for UI pages and widgets (#5493)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2026-05-01 18:27:42 +02:00
Mark HerwegeandGitHub 4d6454c632 allow DSL empty sitemap (#5526)
Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2026-04-30 21:30:04 +02:00