diff --git a/CODEOWNERS b/CODEOWNERS
index cdf12313e773a..176c81520cfdd 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -163,6 +163,7 @@
/bundles/org.openhab.binding.heliosventilation/ @ramack
/bundles/org.openhab.binding.heos/ @Wire82
/bundles/org.openhab.binding.herzborg/ @Sonic-Amiga
+/bundles/org.openhab.binding.homeassistant/ @antroids @ccutrer
/bundles/org.openhab.binding.homeconnect/ @bruestel
/bundles/org.openhab.binding.homematic/ @FStolte @gerrieg @mdicke2s
/bundles/org.openhab.binding.homewizard/ @Daniel-42
@@ -257,8 +258,6 @@
/bundles/org.openhab.binding.mqtt.awtrixlight/ @DrRSatzteil
/bundles/org.openhab.binding.mqtt.espmilighthub/ @Skinah
/bundles/org.openhab.binding.mqtt.fpp/ @computergeek1507
-/bundles/org.openhab.binding.mqtt.generic/ @ccutrer
-/bundles/org.openhab.binding.mqtt.homeassistant/ @antroids @ccutrer
/bundles/org.openhab.binding.mqtt.homie/ @ccutrer
/bundles/org.openhab.binding.mqtt.ruuvigateway/ @ssalonen
/bundles/org.openhab.binding.mspa/ @weymann
diff --git a/bom/openhab-addons/pom.xml b/bom/openhab-addons/pom.xml
index 4c5d3179da645..d157de4871689 100644
--- a/bom/openhab-addons/pom.xml
+++ b/bom/openhab-addons/pom.xml
@@ -801,6 +801,11 @@
org.openhab.binding.herzborg${project.version}
+
+ org.openhab.addons.bundles
+ org.openhab.binding.homeassistant
+ ${project.version}
+ org.openhab.addons.bundlesorg.openhab.binding.homeconnect
@@ -1266,16 +1271,6 @@
org.openhab.binding.mqtt.espmilighthub${project.version}
-
- org.openhab.addons.bundles
- org.openhab.binding.mqtt.generic
- ${project.version}
-
-
- org.openhab.addons.bundles
- org.openhab.binding.mqtt.homeassistant
- ${project.version}
- org.openhab.addons.bundlesorg.openhab.binding.mqtt.homie
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/.gitignore b/bundles/org.openhab.binding.homeassistant/.gitignore
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/.gitignore
rename to bundles/org.openhab.binding.homeassistant/.gitignore
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/DEVELOPMENT.md b/bundles/org.openhab.binding.homeassistant/DEVELOPMENT.md
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/DEVELOPMENT.md
rename to bundles/org.openhab.binding.homeassistant/DEVELOPMENT.md
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/NOTICE b/bundles/org.openhab.binding.homeassistant/NOTICE
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/NOTICE
rename to bundles/org.openhab.binding.homeassistant/NOTICE
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/README.md b/bundles/org.openhab.binding.homeassistant/README.md
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/README.md
rename to bundles/org.openhab.binding.homeassistant/README.md
index eeac334296f45..20872b21d1bb3 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/README.md
+++ b/bundles/org.openhab.binding.homeassistant/README.md
@@ -1,6 +1,4 @@
-# Home Assistant MQTT Components Binding
-
-NOTE: This binding is provided by the [MQTT binding](https://www.openhab.org/addons/bindings/mqtt/), and therefore no explicit installation is necessary beyond installing the MQTT binding.
+# Home Assistant Binding
Devices that use [Home Assistant MQTT Discovery](https://www.home-assistant.io/integrations/mqtt/#mqtt-discovery) are automatically configured with this binding.
Components that share a common `device.identifiers` will automatically be grouped together as a single Thing.
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/pom.xml b/bundles/org.openhab.binding.homeassistant/pom.xml
similarity index 91%
rename from bundles/org.openhab.binding.mqtt.homeassistant/pom.xml
rename to bundles/org.openhab.binding.homeassistant/pom.xml
index ebab6e560d3c1..dd0beb1a2134d 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/pom.xml
+++ b/bundles/org.openhab.binding.homeassistant/pom.xml
@@ -10,9 +10,9 @@
5.1.0-SNAPSHOT
- org.openhab.binding.mqtt.homeassistant
+ org.openhab.binding.homeassistant
- openHAB Add-ons :: Bundles :: MQTT HomeAssistant Convention
+ openHAB Add-ons :: Bundles :: Home Assistant Binding
@@ -26,12 +26,6 @@
${project.version}provided
-
- org.openhab.addons.bundles
- org.openhab.binding.mqtt.generic
- ${project.version}
- provided
-
@@ -185,6 +179,19 @@
+
+ org.apache.karaf.tooling
+ karaf-maven-plugin
+ ${karaf.version}
+
+
+ karaf-feature-verification
+
+
+ none
+
+
+
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/feature/feature.xml b/bundles/org.openhab.binding.homeassistant/src/main/feature/feature.xml
similarity index 75%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/feature/feature.xml
rename to bundles/org.openhab.binding.homeassistant/src/main/feature/feature.xml
index 4121ef5cbba4f..5cb56744b6027 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.homeassistant/src/main/feature/feature.xml
@@ -1,11 +1,10 @@
-
+mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features
-
-
+ openhab-runtime-base
- openhab-transport-mqtt
+ openhab-binding-mqttopenhab.tp-commons-netmvn:org.openhab.osgiify/org.graalvm.llvm.llvm-api/25.0.1mvn:org.openhab.osgiify/org.graalvm.polyglot.polyglot/25.0.1
@@ -25,9 +24,7 @@
mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-compiler/25.0.1mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-nfi/25.0.1mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-runtime/25.0.1
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.generic/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.homeassistant/${project.version}
+ mvn:org.openhab.addons.bundles/org.openhab.binding.homeassistant/${project.version}
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentChannel.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/ComponentChannel.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentChannel.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/ComponentChannel.java
index 8ae1a8d8e4f03..84dd52081f928 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentChannel.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/ComponentChannel.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
@@ -19,11 +19,11 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.component.AbstractComponent;
import org.openhab.binding.mqtt.generic.ChannelConfigBuilder;
import org.openhab.binding.mqtt.generic.ChannelState;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.Value;
-import org.openhab.binding.mqtt.homeassistant.internal.component.AbstractComponent;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.io.transport.mqtt.MqttBrokerConnection;
import org.openhab.core.thing.Channel;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentChannelType.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/ComponentChannelType.java
similarity index 59%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentChannelType.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/ComponentChannelType.java
index 27e1e0cbb1cc4..28ac25a53fae9 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentChannelType.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/ComponentChannelType.java
@@ -10,10 +10,9 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.openhab.binding.mqtt.homeassistant.generic.internal.MqttBindingConstants;
import org.openhab.core.thing.type.ChannelTypeUID;
/**
@@ -23,23 +22,23 @@
*/
@NonNullByDefault
public enum ComponentChannelType {
- COLOR("ha-color"),
- DIMMER("ha-dimmer"),
- IMAGE("ha-image"),
- LOCATION("ha-location"),
- NUMBER("ha-number"),
- ROLLERSHUTTER("ha-rollershutter"),
- STRING("ha-string"),
- SWITCH("ha-switch"),
- TRIGGER("ha-trigger"),
- HUMIDITY("ha-humidity"),
- GPS_ACCURACY("ha-gps-accuracy"),
- TEMPERATURE("ha-temperature");
+ COLOR("color"),
+ DIMMER("dimmer"),
+ IMAGE("image"),
+ LOCATION("location"),
+ NUMBER("number"),
+ ROLLERSHUTTER("rollershutter"),
+ STRING("string"),
+ SWITCH("switch"),
+ TRIGGER("trigger"),
+ HUMIDITY("humidity"),
+ GPS_ACCURACY("gps-accuracy"),
+ TEMPERATURE("temperature");
final ChannelTypeUID channelTypeUID;
ComponentChannelType(String id) {
- channelTypeUID = new ChannelTypeUID(MqttBindingConstants.BINDING_ID, id);
+ channelTypeUID = new ChannelTypeUID(HomeAssistantBindingConstants.BINDING_ID, id);
}
public ChannelTypeUID getChannelTypeUID() {
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/DiscoverComponents.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/DiscoverComponents.java
similarity index 95%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/DiscoverComponents.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/DiscoverComponents.java
index 4ed8e3e35bf2d..7289e78a46689 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/DiscoverComponents.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/DiscoverComponents.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import java.lang.ref.WeakReference;
import java.util.HashSet;
@@ -23,13 +23,13 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.component.AbstractComponent;
+import org.openhab.binding.homeassistant.internal.component.ComponentFactory;
+import org.openhab.binding.homeassistant.internal.exception.ConfigurationException;
+import org.openhab.binding.homeassistant.internal.exception.UnsupportedComponentException;
import org.openhab.binding.mqtt.generic.AvailabilityTracker;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.utils.FutureCollector;
-import org.openhab.binding.mqtt.homeassistant.internal.component.AbstractComponent;
-import org.openhab.binding.mqtt.homeassistant.internal.component.ComponentFactory;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.ConfigurationException;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.UnsupportedComponentException;
import org.openhab.core.i18n.UnitProvider;
import org.openhab.core.io.transport.mqtt.MqttBrokerConnection;
import org.openhab.core.io.transport.mqtt.MqttMessageSubscriber;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HaID.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HaID.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HaID.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HaID.java
index 1fdb37180e34e..0a15523ba64de 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HaID.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HaID.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HandlerConfiguration.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HandlerConfiguration.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HandlerConfiguration.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HandlerConfiguration.java
index 8b291b36e3309..9b467bded8ac1 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HandlerConfiguration.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HandlerConfiguration.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import java.util.Collections;
import java.util.List;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttBindingConstants.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantBindingConstants.java
similarity index 53%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttBindingConstants.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantBindingConstants.java
index 3e1ff7ea3ac43..0e03d633aa693 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttBindingConstants.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantBindingConstants.java
@@ -10,22 +10,25 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.generic.internal;
+package org.openhab.binding.homeassistant.internal;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.core.thing.ThingTypeUID;
/**
- * The {@link MqttBindingConstants} class defines common constants, which are
+ * The {@link HomeAssistantBindingConstants} class defines common constants, which are
* used across the whole binding.
*
* @author David Graeff - Initial contribution
*/
@NonNullByDefault
-public class MqttBindingConstants {
+public class HomeAssistantBindingConstants {
- public static final String BINDING_ID = "mqtt";
+ public static final String LEGACY_BINDING_ID = "mqtt";
+ public static final String BINDING_ID = "homeassistant";
// List of all Thing Type UIDs
- public static final ThingTypeUID HOMEASSISTANT_MQTT_THING = new ThingTypeUID(BINDING_ID, "homeassistant");
+ public static final ThingTypeUID LEGACY_MQTT_HOMEASSISTANT_THING = new ThingTypeUID(LEGACY_BINDING_ID,
+ "homeassistant");
+ public static final ThingTypeUID HOMEASSISTANT_DEVICE_THING = new ThingTypeUID(BINDING_ID, "device");
}
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelLinkageChecker.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelLinkageChecker.java
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelLinkageChecker.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelLinkageChecker.java
index 358b102c0c1d4..019c0a90ba0fa 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelLinkageChecker.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelLinkageChecker.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.core.thing.ChannelUID;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelState.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelState.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelState.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelState.java
index 81af7fa4d2bf2..e4495d307e1bb 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelState.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelState.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import java.util.concurrent.CompletableFuture;
import java.util.function.Predicate;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelTransformation.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelTransformation.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelTransformation.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelTransformation.java
index a64c38be4fa46..227645899ce9f 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelTransformation.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelTransformation.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import java.util.Map;
import java.util.Optional;
@@ -19,7 +19,7 @@
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.PolyglotException;
import org.graalvm.polyglot.Value;
-import org.openhab.binding.mqtt.homeassistant.internal.component.AbstractComponent;
+import org.openhab.binding.homeassistant.internal.component.AbstractComponent;
import org.openhab.core.thing.binding.generic.ChannelTransformation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantConfiguration.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantConfiguration.java
similarity index 91%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantConfiguration.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantConfiguration.java
index c40fa9d385098..3a8fc86833561 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantConfiguration.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantConfiguration.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
/**
* Provides the configured and static settings for the Homekit addon
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantPythonBridge.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantPythonBridge.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantPythonBridge.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantPythonBridge.java
index cf855bcad6375..daabe3be708d4 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantPythonBridge.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantPythonBridge.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import java.io.File;
import java.nio.file.Path;
@@ -29,7 +29,7 @@
import org.graalvm.polyglot.Value;
import org.graalvm.python.embedding.GraalPyResources;
import org.graalvm.python.embedding.VirtualFileSystem;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.ConfigurationException;
+import org.openhab.binding.homeassistant.internal.exception.ConfigurationException;
import org.openhab.core.OpenHAB;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantStateDescriptionProvider.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantStateDescriptionProvider.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantStateDescriptionProvider.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantStateDescriptionProvider.java
index f69899afc5ebe..98430612d96cf 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantStateDescriptionProvider.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/HomeAssistantStateDescriptionProvider.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.mqtt.generic.MqttChannelStateDescriptionProvider;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/LogHandler.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/LogHandler.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/LogHandler.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/LogHandler.java
index 17a00e342973f..67fa1a15f9220 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/LogHandler.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/LogHandler.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/actions/HomeAssistantUpdateThingActions.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/actions/HomeAssistantUpdateThingActions.java
similarity index 93%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/actions/HomeAssistantUpdateThingActions.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/actions/HomeAssistantUpdateThingActions.java
index bdf3c93e4d0f2..a80684f7012c9 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/actions/HomeAssistantUpdateThingActions.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/actions/HomeAssistantUpdateThingActions.java
@@ -10,11 +10,11 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.actions;
+package org.openhab.binding.homeassistant.internal.actions;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
-import org.openhab.binding.mqtt.homeassistant.internal.handler.HomeAssistantThingHandler;
+import org.openhab.binding.homeassistant.internal.handler.HomeAssistantThingHandler;
import org.openhab.core.automation.annotation.RuleAction;
import org.openhab.core.thing.binding.ThingActions;
import org.openhab.core.thing.binding.ThingActionsScope;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractComponent.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/AbstractComponent.java
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractComponent.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/AbstractComponent.java
index 5ad686420ac8a..9e7eb7deae42e 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractComponent.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/AbstractComponent.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.ArrayList;
@@ -27,23 +27,23 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.HaID;
+import org.openhab.binding.homeassistant.internal.HomeAssistantBindingConstants;
+import org.openhab.binding.homeassistant.internal.HomeAssistantChannelTransformation;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
+import org.openhab.binding.homeassistant.internal.component.ComponentFactory.ComponentContext;
+import org.openhab.binding.homeassistant.internal.config.dto.AbstractComponentConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.Availability;
+import org.openhab.binding.homeassistant.internal.config.dto.AvailabilityMode;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.binding.mqtt.generic.AvailabilityTracker;
import org.openhab.binding.mqtt.generic.ChannelState;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.MqttChannelStateDescriptionProvider;
import org.openhab.binding.mqtt.generic.values.TextValue;
import org.openhab.binding.mqtt.generic.values.Value;
-import org.openhab.binding.mqtt.homeassistant.generic.internal.MqttBindingConstants;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.HaID;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantChannelTransformation;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
-import org.openhab.binding.mqtt.homeassistant.internal.component.ComponentFactory.ComponentContext;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.AbstractComponentConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.Availability;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.AvailabilityMode;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.io.transport.mqtt.MqttBrokerConnection;
import org.openhab.core.library.unit.ImperialUnits;
@@ -416,7 +416,7 @@ public C getConfig() {
}
private ChannelGroupTypeUID getChannelGroupTypeUID(String prefix) {
- return new ChannelGroupTypeUID(MqttBindingConstants.BINDING_ID, prefix + "_" + uniqueId);
+ return new ChannelGroupTypeUID(HomeAssistantBindingConstants.BINDING_ID, prefix + "_" + uniqueId);
}
public boolean mergeable(AbstractComponent> other) {
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractRawSchemaLight.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/AbstractRawSchemaLight.java
similarity index 92%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractRawSchemaLight.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/AbstractRawSchemaLight.java
index e23c923c711bf..fa49bf91a4493 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractRawSchemaLight.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/AbstractRawSchemaLight.java
@@ -10,14 +10,14 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
import org.openhab.core.library.types.HSBType;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.PercentType;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AlarmControlPanel.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/AlarmControlPanel.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AlarmControlPanel.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/AlarmControlPanel.java
index 0306b5c0488ab..e0764a438dea1 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AlarmControlPanel.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/AlarmControlPanel.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.LinkedHashMap;
import java.util.List;
@@ -19,9 +19,9 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
/**
* A MQTT alarm control panel, following the https://www.home-assistant.io/components/alarm_control_panel.mqtt/
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/BasicSchemaLight.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/BasicSchemaLight.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/BasicSchemaLight.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/BasicSchemaLight.java
index 7a6c7387f77ce..75d6618cbbb23 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/BasicSchemaLight.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/BasicSchemaLight.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.Map;
@@ -19,14 +19,14 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.mapping.ColorMode;
import org.openhab.binding.mqtt.generic.values.ColorValue;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.PercentageValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.HSBType;
import org.openhab.core.library.types.OnOffType;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/BinarySensor.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/BinarySensor.java
similarity index 85%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/BinarySensor.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/BinarySensor.java
index c3d7a3c0565f6..363212dc40af2 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/BinarySensor.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/BinarySensor.java
@@ -10,20 +10,20 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.ROConfiguration;
+import org.openhab.binding.homeassistant.internal.listener.ExpireUpdateStateListener;
+import org.openhab.binding.homeassistant.internal.listener.OffDelayUpdateStateListener;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.Value;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.ROConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.listener.ExpireUpdateStateListener;
-import org.openhab.binding.mqtt.homeassistant.internal.listener.OffDelayUpdateStateListener;
import org.openhab.core.thing.type.AutoUpdatePolicy;
/**
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Button.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Button.java
similarity index 91%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Button.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Button.java
index eaee1bfd1ed59..01c31eea30a28 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Button.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Button.java
@@ -10,16 +10,16 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.core.thing.type.AutoUpdatePolicy;
/**
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Camera.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Camera.java
similarity index 86%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Camera.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Camera.java
index b039108a46332..478913a2e44e9 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Camera.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Camera.java
@@ -10,15 +10,15 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.binding.mqtt.generic.values.ImageValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
/**
* A MQTT camera, following the https://www.home-assistant.io/components/camera.mqtt/ specification.
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Climate.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Climate.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Climate.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Climate.java
index d90a0d555804b..c321c47fe66e5 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Climate.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Climate.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.ArrayList;
@@ -22,13 +22,13 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.NumberValue;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.core.library.unit.Units;
/**
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/ComponentFactory.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/ComponentFactory.java
similarity index 93%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/ComponentFactory.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/ComponentFactory.java
index 3ae7c428ac6c9..dbd7b7d0c4119 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/ComponentFactory.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/ComponentFactory.java
@@ -10,18 +10,18 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.concurrent.ScheduledExecutorService;
import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.openhab.binding.homeassistant.internal.HaID;
+import org.openhab.binding.homeassistant.internal.HomeAssistantChannelLinkageChecker;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
+import org.openhab.binding.homeassistant.internal.exception.ConfigurationException;
+import org.openhab.binding.homeassistant.internal.exception.UnsupportedComponentException;
import org.openhab.binding.mqtt.generic.AvailabilityTracker;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
-import org.openhab.binding.mqtt.homeassistant.internal.HaID;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantChannelLinkageChecker;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.ConfigurationException;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.UnsupportedComponentException;
import org.openhab.core.i18n.UnitProvider;
import org.openhab.core.thing.ThingUID;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Cover.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Cover.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Cover.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Cover.java
index 875ce9d34bd04..c1e70ea21df19 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Cover.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Cover.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -18,11 +18,11 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.binding.mqtt.generic.values.RollershutterValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.core.library.types.StopMoveType;
import org.openhab.core.library.types.StringType;
import org.openhab.core.library.types.UpDownType;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTracker.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/DeviceTracker.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTracker.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/DeviceTracker.java
index cd2f509ce55d2..1d2806ac44ae1 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTracker.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/DeviceTracker.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.Map;
@@ -19,14 +19,14 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.LocationValue;
import org.openhab.binding.mqtt.generic.values.NumberValue;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.PointType;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTrigger.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/DeviceTrigger.java
similarity index 93%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTrigger.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/DeviceTrigger.java
index 4257bd14d2c3c..4aaf988d697a8 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTrigger.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/DeviceTrigger.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.Map;
import java.util.Objects;
@@ -19,11 +19,11 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.AbstractComponentConfiguration;
+import org.openhab.binding.homeassistant.internal.exception.ConfigurationException;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.AbstractComponentConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.ConfigurationException;
/**
* A MQTT Device Trigger, following the https://www.home-assistant.io/integrations/device_trigger.mqtt/ specification.
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Event.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Event.java
similarity index 91%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Event.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Event.java
index 12f21fb806ba3..87c3efbe23946 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Event.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Event.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.List;
import java.util.Map;
@@ -18,12 +18,12 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.HomeAssistantChannelTransformation;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.ROConfiguration;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantChannelTransformation;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.ROConfiguration;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.types.Command;
import org.openhab.core.types.State;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Fan.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Fan.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Fan.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Fan.java
index b78813324c195..9509da5bbfa84 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Fan.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Fan.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.List;
@@ -20,14 +20,14 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.PercentageValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.PercentType;
import org.openhab.core.thing.ChannelUID;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Humidifier.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Humidifier.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Humidifier.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Humidifier.java
index c16a45eb3411a..cc8bd19a5737e 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Humidifier.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Humidifier.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.List;
@@ -19,12 +19,12 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.binding.mqtt.generic.values.NumberValue;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.core.library.types.StringType;
import org.openhab.core.library.unit.Units;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/JSONSchemaLight.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/JSONSchemaLight.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/JSONSchemaLight.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/JSONSchemaLight.java
index fe5e667c95927..6d2da4499483f 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/JSONSchemaLight.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/JSONSchemaLight.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.math.MathContext;
@@ -20,12 +20,12 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.PercentageValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.HSBType;
import org.openhab.core.library.types.OnOffType;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Light.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Light.java
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Light.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Light.java
index 63fc0b56bb40b..b6b6486635254 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Light.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Light.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.List;
@@ -19,16 +19,16 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.RWConfiguration;
+import org.openhab.binding.homeassistant.internal.exception.UnsupportedComponentException;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.mapping.ColorMode;
import org.openhab.binding.mqtt.generic.values.ColorValue;
import org.openhab.binding.mqtt.generic.values.NumberValue;
import org.openhab.binding.mqtt.generic.values.PercentageValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.RWConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.UnsupportedComponentException;
import org.openhab.core.library.unit.Units;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.types.Command;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/LightColorMode.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/LightColorMode.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/LightColorMode.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/LightColorMode.java
index 0eb18b7a739a7..c2125965e8ebf 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/LightColorMode.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/LightColorMode.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.Collection;
import java.util.List;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Lock.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Lock.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Lock.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Lock.java
index 74fb7dc987a72..90ab8662100a1 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Lock.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Lock.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -18,12 +18,12 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.StringType;
import org.openhab.core.thing.ChannelUID;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Number.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Number.java
similarity index 89%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Number.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Number.java
index ffff97de52092..b3095f37cee27 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Number.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Number.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.Map;
@@ -18,10 +18,10 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.binding.mqtt.generic.values.NumberValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.core.types.util.UnitUtils;
/**
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Scene.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Scene.java
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Scene.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Scene.java
index 93d74bc188dc5..7b20b7bc98529 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Scene.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Scene.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.HashMap;
import java.util.Map;
@@ -19,12 +19,12 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.exception.ConfigurationException;
import org.openhab.binding.mqtt.generic.ChannelState;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.ConfigurationException;
import org.openhab.core.library.types.StringType;
import org.openhab.core.thing.type.AutoUpdatePolicy;
import org.openhab.core.types.Command;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Select.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Select.java
similarity index 87%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Select.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Select.java
index 0077355d405c0..cb8c804751f85 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Select.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Select.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.List;
import java.util.Map;
@@ -18,10 +18,10 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.RWConfiguration;
/**
* A MQTT select, following the https://www.home-assistant.io/components/select.mqtt/ specification.
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Sensor.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Sensor.java
similarity index 90%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Sensor.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Sensor.java
index 83e6e50fe5bd5..0fd9da1e382fe 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Sensor.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Sensor.java
@@ -10,21 +10,21 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.List;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.ROConfiguration;
+import org.openhab.binding.homeassistant.internal.listener.ExpireUpdateStateListener;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.NumberValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
import org.openhab.binding.mqtt.generic.values.Value;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.ROConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.listener.ExpireUpdateStateListener;
import org.openhab.core.types.util.UnitUtils;
/**
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Switch.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Switch.java
similarity index 89%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Switch.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Switch.java
index 5cec350d9a598..eb4b4d08b9d95 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Switch.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Switch.java
@@ -10,17 +10,17 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.RWConfiguration;
/**
* A MQTT switch, following the https://www.home-assistant.io/components/switch.mqtt/ specification.
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Tag.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Tag.java
similarity index 87%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Tag.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Tag.java
index eb7282537fe23..095741e885228 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Tag.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Tag.java
@@ -10,16 +10,16 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.AbstractComponentConfiguration;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.AbstractComponentConfiguration;
/**
* A MQTT Tag scanner, following the https://www.home-assistant.io/integrations/tag.mqtt/ specification.
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/TemplateSchemaLight.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/TemplateSchemaLight.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/TemplateSchemaLight.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/TemplateSchemaLight.java
index fc56143e58035..e27daf985eff3 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/TemplateSchemaLight.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/TemplateSchemaLight.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.HashMap;
@@ -20,14 +20,14 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.HomeAssistantChannelTransformation;
+import org.openhab.binding.homeassistant.internal.exception.UnsupportedComponentException;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.PercentageValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantChannelTransformation;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.UnsupportedComponentException;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.HSBType;
import org.openhab.core.library.types.OnOffType;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Text.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Text.java
similarity index 86%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Text.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Text.java
index 3e6c84987bc49..f4b879774f5d4 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Text.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Text.java
@@ -10,17 +10,17 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.RWConfiguration;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.RWConfiguration;
/**
* A MQTT select, following the https://www.home-assistant.io/integrations/text.mqtt/ specification.
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Update.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Update.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Update.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Update.java
index 7ca323b1fb597..90ca867dbaca2 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Update.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Update.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.util.Map;
import java.util.Objects;
@@ -20,12 +20,12 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.ROConfiguration;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.ROConfiguration;
import org.openhab.core.io.transport.mqtt.MqttBrokerConnection;
import org.openhab.core.library.types.StringType;
import org.openhab.core.thing.ChannelUID;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Vacuum.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Vacuum.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Vacuum.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Vacuum.java
index 881a63b84a8a4..3ff9caf06dcbc 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Vacuum.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Vacuum.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.LinkedHashMap;
@@ -19,13 +19,13 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.PercentageValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
import org.openhab.binding.mqtt.generic.values.Value;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
/**
* A MQTT vacuum, following the https://www.home-assistant.io/components/vacuum.mqtt/ specification.
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Valve.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Valve.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Valve.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Valve.java
index 932b57a02611a..7a720aabbb0ec 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Valve.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/Valve.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.io.IOException;
import java.math.BigDecimal;
@@ -23,12 +23,12 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.PercentageValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.PercentType;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/WaterHeater.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/WaterHeater.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/WaterHeater.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/WaterHeater.java
index 1ac35a448580b..9fe7169af00c1 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/WaterHeater.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/component/WaterHeater.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import java.math.BigDecimal;
import java.util.ArrayList;
@@ -22,12 +22,12 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.config.dto.EntityConfiguration;
+import org.openhab.binding.homeassistant.internal.exception.ConfigurationException;
import org.openhab.binding.mqtt.generic.values.NumberValue;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.EntityConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.ConfigurationException;
/**
* A MQTT Humidifier, following the https://www.home-assistant.io/integrations/water_heater.mqtt/ specification.
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/ConnectionDeserializer.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/ConnectionDeserializer.java
similarity index 93%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/ConnectionDeserializer.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/ConnectionDeserializer.java
index 039857fff8f4b..4ee1ded6139df 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/ConnectionDeserializer.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/ConnectionDeserializer.java
@@ -10,13 +10,13 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config;
+package org.openhab.binding.homeassistant.internal.config;
import java.lang.reflect.Type;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.Connection;
+import org.openhab.binding.homeassistant.internal.config.dto.Connection;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/ListOrStringDeserializer.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/ListOrStringDeserializer.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/ListOrStringDeserializer.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/ListOrStringDeserializer.java
index 4f6049e2acdb8..963cb96590b1d 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/ListOrStringDeserializer.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/ListOrStringDeserializer.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config;
+package org.openhab.binding.homeassistant.internal.config;
import java.io.IOException;
import java.util.ArrayList;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractComponentConfiguration.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/AbstractComponentConfiguration.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractComponentConfiguration.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/AbstractComponentConfiguration.java
index 22262290d82cc..66d7dcdaf059a 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractComponentConfiguration.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/AbstractComponentConfiguration.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
@@ -19,7 +19,7 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.graalvm.polyglot.Value;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
import org.openhab.core.thing.Thing;
import org.openhab.core.util.UIDUtils;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractConfiguration.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/AbstractConfiguration.java
similarity index 93%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractConfiguration.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/AbstractConfiguration.java
index cb325bf338129..15b4dc1f84ffa 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractConfiguration.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/AbstractConfiguration.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
import java.util.Map;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Availability.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Availability.java
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Availability.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Availability.java
index abcb26e0e2dbc..14cfec957f25f 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Availability.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Availability.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
import java.util.Map;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AvailabilityMode.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/AvailabilityMode.java
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AvailabilityMode.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/AvailabilityMode.java
index 98333b065fab9..a6bfa4b40052e 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AvailabilityMode.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/AvailabilityMode.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
/**
* controls the conditions needed to set the entity to available
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Configuration.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Configuration.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Configuration.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Configuration.java
index 191cf1e24c461..e3c20ce7b5501 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Configuration.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Configuration.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
import java.util.List;
import java.util.Map;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Connection.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Connection.java
similarity index 87%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Connection.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Connection.java
index c357ee3d77180..2362ab01d420c 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Connection.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Connection.java
@@ -10,10 +10,10 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
import org.eclipse.jdt.annotation.Nullable;
-import org.openhab.binding.mqtt.homeassistant.internal.config.ConnectionDeserializer;
+import org.openhab.binding.homeassistant.internal.config.ConnectionDeserializer;
import com.google.gson.annotations.JsonAdapter;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Device.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Device.java
similarity index 95%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Device.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Device.java
index dea3f5b329f4d..e319b3b2924fa 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/Device.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/Device.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
import java.util.List;
import java.util.Map;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/EntityConfiguration.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/EntityConfiguration.java
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/EntityConfiguration.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/EntityConfiguration.java
index 6d524cebde78f..acc7992ade040 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/EntityConfiguration.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/EntityConfiguration.java
@@ -11,7 +11,7 @@
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
import java.util.Map;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/ROConfiguration.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/ROConfiguration.java
similarity index 92%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/ROConfiguration.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/ROConfiguration.java
index 5b007ddf3192c..01fcb9d797334 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/ROConfiguration.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/ROConfiguration.java
@@ -11,7 +11,7 @@
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/RWConfiguration.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/RWConfiguration.java
similarity index 93%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/RWConfiguration.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/RWConfiguration.java
index 546bac8a4de20..fa00c5a884cdb 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/RWConfiguration.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/config/dto/RWConfiguration.java
@@ -11,7 +11,7 @@
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.config.dto;
+package org.openhab.binding.homeassistant.internal.config.dto;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/discovery/HomeAssistantDiscovery.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/discovery/HomeAssistantDiscovery.java
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/discovery/HomeAssistantDiscovery.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/discovery/HomeAssistantDiscovery.java
index bfa5089225955..95bc37c6f319b 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/discovery/HomeAssistantDiscovery.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/discovery/HomeAssistantDiscovery.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.discovery;
+package org.openhab.binding.homeassistant.internal.discovery;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
@@ -27,16 +27,16 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.HaID;
+import org.openhab.binding.homeassistant.internal.HandlerConfiguration;
+import org.openhab.binding.homeassistant.internal.HomeAssistantBindingConstants;
+import org.openhab.binding.homeassistant.internal.HomeAssistantConfiguration;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
+import org.openhab.binding.homeassistant.internal.config.dto.AbstractComponentConfiguration;
+import org.openhab.binding.homeassistant.internal.exception.ConfigurationException;
import org.openhab.binding.mqtt.discovery.AbstractMQTTDiscovery;
import org.openhab.binding.mqtt.discovery.MQTTTopicDiscoveryService;
import org.openhab.binding.mqtt.generic.MqttChannelTypeProvider;
-import org.openhab.binding.mqtt.homeassistant.generic.internal.MqttBindingConstants;
-import org.openhab.binding.mqtt.homeassistant.internal.HaID;
-import org.openhab.binding.mqtt.homeassistant.internal.HandlerConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.AbstractComponentConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.ConfigurationException;
import org.openhab.core.config.core.ConfigurableService;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.config.discovery.DiscoveryResult;
@@ -153,7 +153,8 @@ public void receivedMessage(ThingUID bridgeUID, MqttBrokerConnection connection,
new String(payload, StandardCharsets.UTF_8));
final String thingID = config.getThingId(haID.objectID);
- final ThingUID thingUID = new ThingUID(MqttBindingConstants.HOMEASSISTANT_MQTT_THING, bridgeUID, thingID);
+ final ThingUID thingUID = new ThingUID(HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING, bridgeUID,
+ thingID);
// Build properties and DiscoveryResult outside the lock
Map properties = new HashMap<>();
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/exception/ConfigurationException.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/exception/ConfigurationException.java
similarity index 93%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/exception/ConfigurationException.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/exception/ConfigurationException.java
index 28185898db3a6..21086e5b9e366 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/exception/ConfigurationException.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/exception/ConfigurationException.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.exception;
+package org.openhab.binding.homeassistant.internal.exception;
import org.eclipse.jdt.annotation.NonNullByDefault;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/exception/UnsupportedComponentException.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/exception/UnsupportedComponentException.java
similarity index 93%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/exception/UnsupportedComponentException.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/exception/UnsupportedComponentException.java
index 84c935f0d3b4b..36c897d25287a 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/exception/UnsupportedComponentException.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/exception/UnsupportedComponentException.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.exception;
+package org.openhab.binding.homeassistant.internal.exception;
import org.eclipse.jdt.annotation.NonNullByDefault;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/handler/HomeAssistantThingHandler.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/handler/HomeAssistantThingHandler.java
similarity index 91%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/handler/HomeAssistantThingHandler.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/handler/HomeAssistantThingHandler.java
index db14e51bd151f..0eaa143409e6b 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/handler/HomeAssistantThingHandler.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/handler/HomeAssistantThingHandler.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.handler;
+package org.openhab.binding.homeassistant.internal.handler;
import java.util.ArrayList;
import java.util.Comparator;
@@ -27,24 +27,24 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.DiscoverComponents;
+import org.openhab.binding.homeassistant.internal.DiscoverComponents.ComponentDiscovered;
+import org.openhab.binding.homeassistant.internal.HaID;
+import org.openhab.binding.homeassistant.internal.HandlerConfiguration;
+import org.openhab.binding.homeassistant.internal.HomeAssistantBindingConstants;
+import org.openhab.binding.homeassistant.internal.HomeAssistantChannelLinkageChecker;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
+import org.openhab.binding.homeassistant.internal.actions.HomeAssistantUpdateThingActions;
+import org.openhab.binding.homeassistant.internal.component.AbstractComponent;
+import org.openhab.binding.homeassistant.internal.component.ComponentFactory;
+import org.openhab.binding.homeassistant.internal.component.Update;
+import org.openhab.binding.homeassistant.internal.exception.ConfigurationException;
import org.openhab.binding.mqtt.generic.AbstractMQTTThingHandler;
import org.openhab.binding.mqtt.generic.ChannelState;
import org.openhab.binding.mqtt.generic.MqttChannelStateDescriptionProvider;
import org.openhab.binding.mqtt.generic.MqttChannelTypeProvider;
import org.openhab.binding.mqtt.generic.tools.DelayedBatchProcessing;
import org.openhab.binding.mqtt.generic.utils.FutureCollector;
-import org.openhab.binding.mqtt.homeassistant.generic.internal.MqttBindingConstants;
-import org.openhab.binding.mqtt.homeassistant.internal.DiscoverComponents;
-import org.openhab.binding.mqtt.homeassistant.internal.DiscoverComponents.ComponentDiscovered;
-import org.openhab.binding.mqtt.homeassistant.internal.HaID;
-import org.openhab.binding.mqtt.homeassistant.internal.HandlerConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantChannelLinkageChecker;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
-import org.openhab.binding.mqtt.homeassistant.internal.actions.HomeAssistantUpdateThingActions;
-import org.openhab.binding.mqtt.homeassistant.internal.component.AbstractComponent;
-import org.openhab.binding.mqtt.homeassistant.internal.component.ComponentFactory;
-import org.openhab.binding.mqtt.homeassistant.internal.component.Update;
-import org.openhab.binding.mqtt.homeassistant.internal.exception.ConfigurationException;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.i18n.UnitProvider;
import org.openhab.core.io.transport.mqtt.MqttBrokerConnection;
@@ -184,7 +184,8 @@ public void initialize() {
try {
AbstractComponent> component = ComponentFactory.createComponent(thingUID, haID,
channelConfigurationJSON, this, this, this, scheduler, gson, python, unitProvider);
- if (typeID.equals(MqttBindingConstants.HOMEASSISTANT_MQTT_THING)) {
+ if (typeID.equals(HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING)
+ || typeID.equals(HomeAssistantBindingConstants.LEGACY_MQTT_HOMEASSISTANT_THING)) {
typeID = calculateThingTypeUID(component);
}
@@ -313,7 +314,8 @@ private void addComponents(List> discoveredComponentsList)
synchronized (haComponents) { // sync whenever discoverComponents is started
ThingTypeUID typeID = getThing().getThingTypeUID();
for (AbstractComponent> discovered : discoveredComponentsList) {
- if (typeID.equals(MqttBindingConstants.HOMEASSISTANT_MQTT_THING)) {
+ if (typeID.equals(HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING)
+ || typeID.equals(HomeAssistantBindingConstants.LEGACY_MQTT_HOMEASSISTANT_THING)) {
typeID = calculateThingTypeUID(discovered);
}
AbstractComponent> known = haComponentsByUniqueId.get(discovered.getUniqueId());
@@ -398,10 +400,14 @@ protected void updateThingStatus(boolean messageReceived, Optional avai
private boolean updateThingType(ThingTypeUID typeID) {
// if this is a dynamic type, then we update the type
- if (!MqttBindingConstants.HOMEASSISTANT_MQTT_THING.equals(typeID)) {
- var thingTypeBuilder = channelTypeProvider.derive(typeID, MqttBindingConstants.HOMEASSISTANT_MQTT_THING);
-
- if (getThing().getThingTypeUID().equals(MqttBindingConstants.HOMEASSISTANT_MQTT_THING)) {
+ if (!HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING.equals(typeID)
+ && !HomeAssistantBindingConstants.LEGACY_MQTT_HOMEASSISTANT_THING.equals(typeID)) {
+ var thingTypeBuilder = channelTypeProvider.derive(typeID,
+ HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING);
+
+ if (getThing().getThingTypeUID().equals(HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING)
+ || getThing().getThingTypeUID()
+ .equals(HomeAssistantBindingConstants.LEGACY_MQTT_HOMEASSISTANT_THING)) {
logger.debug("Migrating Home Assistant thing {} from generic type to dynamic type {}",
getThing().getUID(), typeID);
@@ -445,8 +451,9 @@ private boolean updateThingType(ThingTypeUID typeID) {
}
private ThingTypeUID calculateThingTypeUID(AbstractComponent> component) {
- return new ThingTypeUID(MqttBindingConstants.BINDING_ID, MqttBindingConstants.HOMEASSISTANT_MQTT_THING.getId()
- + "_" + component.getConfig().getThingId(component.getHaID().objectID));
+ return new ThingTypeUID(HomeAssistantBindingConstants.BINDING_ID,
+ HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING.getId() + "_"
+ + component.getConfig().getThingId(component.getHaID().objectID));
}
@Override
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttThingHandlerFactory.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/handler/HomeAssistantThingHandlerFactory.java
similarity index 62%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttThingHandlerFactory.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/handler/HomeAssistantThingHandlerFactory.java
index eedd0ea01fa87..e24f74eb7b529 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttThingHandlerFactory.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/handler/HomeAssistantThingHandlerFactory.java
@@ -10,19 +10,20 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.generic.internal;
+package org.openhab.binding.homeassistant.internal.handler;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.List;
import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.homeassistant.internal.HomeAssistantBindingConstants;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
+import org.openhab.binding.homeassistant.internal.HomeAssistantStateDescriptionProvider;
import org.openhab.binding.mqtt.generic.MqttChannelStateDescriptionProvider;
import org.openhab.binding.mqtt.generic.MqttChannelTypeProvider;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantStateDescriptionProvider;
-import org.openhab.binding.mqtt.homeassistant.internal.handler.HomeAssistantThingHandler;
import org.openhab.core.i18n.UnitProvider;
import org.openhab.core.thing.Thing;
import org.openhab.core.thing.ThingTypeUID;
@@ -30,6 +31,7 @@
import org.openhab.core.thing.binding.ThingHandler;
import org.openhab.core.thing.binding.ThingHandlerFactory;
import org.openhab.core.thing.type.ChannelTypeRegistry;
+import org.openhab.core.thing.type.ThingTypeBuilder;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
@@ -37,14 +39,14 @@
import com.google.gson.Gson;
/**
- * The {@link MqttThingHandlerFactory} is responsible for creating things and thing
+ * The {@link HomeAssistantThingHandlerFactory} is responsible for creating things and thing
* handlers.
*
* @author David Graeff - Initial contribution
*/
@Component(service = ThingHandlerFactory.class)
@NonNullByDefault
-public class MqttThingHandlerFactory extends BaseThingHandlerFactory {
+public class HomeAssistantThingHandlerFactory extends BaseThingHandlerFactory {
private final MqttChannelTypeProvider typeProvider;
private final MqttChannelStateDescriptionProvider stateDescriptionProvider;
private final ChannelTypeRegistry channelTypeRegistry;
@@ -52,11 +54,12 @@ public class MqttThingHandlerFactory extends BaseThingHandlerFactory {
private final Gson gson;
private final HomeAssistantPythonBridge python;
- private static final Set SUPPORTED_THING_TYPES_UIDS = Stream
- .of(MqttBindingConstants.HOMEASSISTANT_MQTT_THING).collect(Collectors.toSet());
+ private static final Set SUPPORTED_THING_TYPES_UIDS = Set.of(
+ HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING,
+ HomeAssistantBindingConstants.LEGACY_MQTT_HOMEASSISTANT_THING);
@Activate
- public MqttThingHandlerFactory(final @Reference MqttChannelTypeProvider typeProvider,
+ public HomeAssistantThingHandlerFactory(final @Reference MqttChannelTypeProvider typeProvider,
final @Reference HomeAssistantStateDescriptionProvider stateDescriptionProvider,
final @Reference ChannelTypeRegistry channelTypeRegistry, final @Reference UnitProvider unitProvider,
final @Reference HomeAssistantPythonBridge python) {
@@ -66,6 +69,17 @@ public MqttThingHandlerFactory(final @Reference MqttChannelTypeProvider typeProv
this.unitProvider = unitProvider;
this.gson = new Gson();
this.python = python;
+
+ try {
+ // build the thing type
+ ThingTypeBuilder builder = ThingTypeBuilder.instance("homeassistant", "device", "Home Assistant Device");
+ builder.withConfigDescriptionURI(new URI("thing-type:homeassistant:device"))
+ .withSupportedBridgeTypeUIDs(List.of("mqtt:broker"));
+
+ this.typeProvider.putThingType(builder.build());
+ } catch (URISyntaxException e) {
+ // can't happen
+ }
}
@Override
@@ -74,8 +88,11 @@ public boolean supportsThingType(ThingTypeUID thingTypeUID) {
}
private boolean isHomeassistantDynamicType(ThingTypeUID thingTypeUID) {
- return MqttBindingConstants.BINDING_ID.equals(thingTypeUID.getBindingId())
- && thingTypeUID.getId().startsWith(MqttBindingConstants.HOMEASSISTANT_MQTT_THING.getId());
+ return HomeAssistantBindingConstants.LEGACY_BINDING_ID.equals(thingTypeUID.getBindingId())
+ && thingTypeUID.getId()
+ .startsWith(HomeAssistantBindingConstants.LEGACY_MQTT_HOMEASSISTANT_THING.getId())
+ || HomeAssistantBindingConstants.BINDING_ID.equals(thingTypeUID.getBindingId()) && thingTypeUID.getId()
+ .startsWith(HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING.getId());
}
@Override
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/listener/ChannelStateUpdateListenerProxy.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/listener/ChannelStateUpdateListenerProxy.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/listener/ChannelStateUpdateListenerProxy.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/listener/ChannelStateUpdateListenerProxy.java
index 219269395774b..ca330486eaf99 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/listener/ChannelStateUpdateListenerProxy.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/listener/ChannelStateUpdateListenerProxy.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.listener;
+package org.openhab.binding.homeassistant.internal.listener;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/listener/ExpireUpdateStateListener.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/listener/ExpireUpdateStateListener.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/listener/ExpireUpdateStateListener.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/listener/ExpireUpdateStateListener.java
index 08ee71e572ad1..71c16327b5901 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/listener/ExpireUpdateStateListener.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/listener/ExpireUpdateStateListener.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.listener;
+package org.openhab.binding.homeassistant.internal.listener;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/listener/OffDelayUpdateStateListener.java b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/listener/OffDelayUpdateStateListener.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/listener/OffDelayUpdateStateListener.java
rename to bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/listener/OffDelayUpdateStateListener.java
index b902e21c4a31e..e1046faa76b48 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/listener/OffDelayUpdateStateListener.java
+++ b/bundles/org.openhab.binding.homeassistant/src/main/java/org/openhab/binding/homeassistant/internal/listener/OffDelayUpdateStateListener.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.listener;
+package org.openhab.binding.homeassistant.internal.listener;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/annotatedyaml/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/annotatedyaml/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/annotatedyaml/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/annotatedyaml/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/annotatedyaml/objects.py b/bundles/org.openhab.binding.homeassistant/src/main/python/annotatedyaml/objects.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/annotatedyaml/objects.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/annotatedyaml/objects.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/alarm_control_panel/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/alarm_control_panel/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/alarm_control_panel/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/alarm_control_panel/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/alarm_control_panel/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/alarm_control_panel/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/alarm_control_panel/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/alarm_control_panel/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/binary_sensor/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/binary_sensor/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/binary_sensor/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/binary_sensor/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/button/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/button/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/button/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/button/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/climate/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/climate/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/climate/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/climate/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/climate/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/climate/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/climate/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/climate/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/cover/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/cover/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/cover/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/cover/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/device_tracker/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/device_tracker/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/device_tracker/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/device_tracker/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/device_tracker/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/device_tracker/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/device_tracker/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/device_tracker/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/event/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/event/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/event/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/event/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/humidifier/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/humidifier/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/humidifier/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/humidifier/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/humidifier/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/humidifier/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/humidifier/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/humidifier/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/light/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/light/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/light/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/light/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/light/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/light/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/light/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/light/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/abbreviations.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/abbreviations.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/abbreviations.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/abbreviations.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/alarm_control_panel.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/alarm_control_panel.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/alarm_control_panel.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/alarm_control_panel.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/binary_sensor.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/binary_sensor.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/binary_sensor.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/binary_sensor.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/button.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/button.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/button.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/button.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/camera.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/camera.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/camera.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/camera.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/climate.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/climate.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/climate.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/climate.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/config.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/config.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/config.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/config.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/cover.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/cover.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/cover.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/cover.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/device_tracker.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/device_tracker.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/device_tracker.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/device_tracker.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/device_trigger.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/device_trigger.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/device_trigger.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/device_trigger.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/discovery.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/discovery.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/discovery.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/discovery.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/event.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/event.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/event.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/event.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/fan.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/fan.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/fan.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/fan.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/humidifier.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/humidifier.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/humidifier.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/humidifier.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_basic.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_basic.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_basic.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_basic.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_json.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_json.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_json.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_json.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_template.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_template.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_template.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/light/schema_template.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/lock.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/lock.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/lock.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/lock.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/models.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/models.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/models.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/models.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/number.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/number.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/number.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/number.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/scene.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/scene.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/scene.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/scene.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/schemas.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/schemas.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/schemas.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/schemas.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/select.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/select.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/select.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/select.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/sensor.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/sensor.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/sensor.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/sensor.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/switch.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/switch.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/switch.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/switch.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/tag.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/tag.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/tag.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/tag.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/text.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/text.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/text.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/text.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/update.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/update.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/update.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/update.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/util.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/util.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/util.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/util.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/vacuum.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/vacuum.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/vacuum.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/vacuum.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/valve.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/valve.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/valve.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/valve.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/water_heater.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/water_heater.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/mqtt/water_heater.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/mqtt/water_heater.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/number/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/number/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/number/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/number/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/number/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/number/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/number/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/number/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/sensor/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/sensor/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/sensor/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/sensor/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/sensor/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/sensor/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/sensor/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/sensor/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/switch/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/switch/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/switch/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/switch/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/text/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/text/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/text/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/text/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/update/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/update/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/update/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/update/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/vacuum/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/vacuum/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/vacuum/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/vacuum/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/valve/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/valve/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/valve/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/valve/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/valve/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/valve/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/valve/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/valve/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/water_heater/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/water_heater/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/components/water_heater/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/components/water_heater/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/const.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/const.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/const.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/const.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/exceptions.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/exceptions.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/exceptions.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/exceptions.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/helpers/config_validation.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/helpers/config_validation.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/helpers/config_validation.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/helpers/config_validation.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/helpers/entity.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/helpers/entity.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/helpers/entity.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/helpers/entity.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/helpers/frame.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/helpers/frame.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/helpers/frame.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/helpers/frame.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/helpers/template.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/helpers/template.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/helpers/template.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/helpers/template.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/util/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/util/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/util/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/util/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/util/dt.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/util/dt.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/util/dt.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/util/dt.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/util/json.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/util/json.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/util/json.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/util/json.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/util/yaml/objects.py b/bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/util/yaml/objects.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/homeassistant/util/yaml/objects.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/homeassistant/util/yaml/objects.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/__init__.py b/bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/__init__.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/__init__.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/__init__.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/error.py b/bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/error.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/error.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/error.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/humanize.py b/bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/humanize.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/humanize.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/humanize.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/schema_builder.py b/bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/schema_builder.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/schema_builder.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/schema_builder.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/util.py b/bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/util.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/util.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/util.py
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/validators.py b/bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/validators.py
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/python/voluptuous/validators.py
rename to bundles/org.openhab.binding.homeassistant/src/main/python/voluptuous/validators.py
diff --git a/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/addon/addon.xml b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/addon/addon.xml
new file mode 100644
index 0000000000000..598fa9668eb58
--- /dev/null
+++ b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/addon/addon.xml
@@ -0,0 +1,24 @@
+
+
+
+ binding
+ Home Assistant Binding
+ Provides discovery and auto-configuration services for MQTT connected devices that provide Home Assistant
+ discovery metadata.
+ local
+
+
+
+ process
+
+
+ command
+ (?i).*[/\\](mosquitto)(\.exe)?$
+
+
+
+
+
+
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/config/config.xml b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/config/config.xml
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/config/config.xml
rename to bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/config/config.xml
index 49068e5680fcd..c984a0f61e5a0 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/config/config.xml
@@ -4,7 +4,7 @@
xmlns:config-description="https://openhab.org/schemas/config-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0
https://openhab.org/schemas/config-description-1.0.0.xsd">
-
+
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/config/homeassistant-channel-config.xml b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/config/homeassistant-channel-config.xml
similarity index 95%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/config/homeassistant-channel-config.xml
rename to bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/config/homeassistant-channel-config.xml
index 864e5afd08c30..891dcc4aeb304 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/config/homeassistant-channel-config.xml
+++ b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/config/homeassistant-channel-config.xml
@@ -4,7 +4,7 @@
xmlns:config-description="https://openhab.org/schemas/config-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0 https://openhab.org/schemas/config-description-1.0.0.xsd">
-
+ Home Assistant component type (e.g. binary_sensor, switch, light)
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/config/homeassistant-thing-config.xml b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/config/homeassistant-thing-config.xml
similarity index 93%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/config/homeassistant-thing-config.xml
rename to bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/config/homeassistant-thing-config.xml
index 9822a064168ba..1d68654bcc676 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/config/homeassistant-thing-config.xml
+++ b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/config/homeassistant-thing-config.xml
@@ -4,7 +4,7 @@
xmlns:config-description="https://openhab.org/schemas/config-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0 https://openhab.org/schemas/config-description-1.0.0.xsd">
-
+ List of Home Assistant configuration topics (e.g. button/my-device/restart)
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/i18n/mqtt.properties b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/i18n/mqtt.properties
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/i18n/mqtt.properties
rename to bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/i18n/mqtt.properties
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/i18n/mqtt_fr.properties b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/i18n/mqtt_fr.properties
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/i18n/mqtt_fr.properties
rename to bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/i18n/mqtt_fr.properties
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/i18n/mqtt_it.properties b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/i18n/mqtt_it.properties
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/i18n/mqtt_it.properties
rename to bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/i18n/mqtt_it.properties
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/thing/homeassistant-channels.xml b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/thing/homeassistant-channels.xml
similarity index 53%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/thing/homeassistant-channels.xml
rename to bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/thing/homeassistant-channels.xml
index 557cae08cc947..c0bdc04bb5641 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/thing/homeassistant-channels.xml
+++ b/bundles/org.openhab.binding.homeassistant/src/main/resources/OH-INF/thing/homeassistant-channels.xml
@@ -1,160 +1,160 @@
-
-
+ ColorControlColor
-
+
-
+ DimmerControlBrightness
-
+
-
+ Number:DimensionlessMeasurementHumidity
-
+
-
+ Image
-
+
-
+ LocationMeasurementGeoLocation
-
+
-
+ Number
-
+
-
+ Number:LengthThe accuracy of the GPS fix, in meters.veto
-
+
-
+ RollershutterControlOpenLevel
-
+
-
+ String
-
+
-
+ Switch
-
+
-
+ Number:TemperatureMeasurementTemperature
-
+
-
+ trigger
-
+
-
+ Color
-
+
-
+ Dimmer
-
+
-
+ Number:LengthThe accuracy of the GPS fix, in meters.veto
-
+
-
+ Image
-
+
-
+ Number
-
+
-
+ Rollershutter
-
+
-
+ String
-
+
-
+ Switch
-
+
-
+ trigger
-
+
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/AbstractHomeAssistantTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/AbstractHomeAssistantTests.java
similarity index 94%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/AbstractHomeAssistantTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/AbstractHomeAssistantTests.java
index a7c5a7fa1f4e4..22c9de8feb1cc 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/AbstractHomeAssistantTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/AbstractHomeAssistantTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
@@ -38,7 +38,6 @@
import org.openhab.binding.mqtt.generic.MqttChannelStateDescriptionProvider;
import org.openhab.binding.mqtt.generic.MqttChannelTypeProvider;
import org.openhab.binding.mqtt.handler.BrokerHandler;
-import org.openhab.binding.mqtt.homeassistant.generic.internal.MqttBindingConstants;
import org.openhab.core.i18n.TranslationProvider;
import org.openhab.core.io.transport.mqtt.MqttBrokerConnection;
import org.openhab.core.io.transport.mqtt.MqttMessageSubscriber;
@@ -79,9 +78,9 @@ public abstract class AbstractHomeAssistantTests extends JavaTest {
public static final String HA_TYPE_LABEL = "Home Assistant Thing";
public static final ThingTypeUID HA_TYPE_UID = new ThingTypeUID(BINDING_ID, "homeassistant_dynamic_type");
public static final String HA_ID = UUID.randomUUID().toString();
- public static final ThingUID HA_UID = new ThingUID(MqttBindingConstants.HOMEASSISTANT_MQTT_THING, HA_ID);
+ public static final ThingUID HA_UID = new ThingUID(HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING, HA_ID);
public static final ThingType HA_THING_TYPE = ThingTypeBuilder
- .instance(MqttBindingConstants.HOMEASSISTANT_MQTT_THING, HA_TYPE_LABEL).build();
+ .instance(HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING, HA_TYPE_LABEL).build();
protected static final HomeAssistantPythonBridge PYTHON = new HomeAssistantPythonBridge();
protected @Mock @NonNullByDefault({}) MqttBrokerConnection bridgeConnection;
@@ -103,7 +102,8 @@ public abstract class AbstractHomeAssistantTests extends JavaTest {
public void beforeEachAbstractHomeAssistantTests() {
when(thingTypeRegistry.getThingType(BRIDGE_TYPE_UID))
.thenReturn(ThingTypeBuilder.instance(BRIDGE_TYPE_UID, BRIDGE_TYPE_LABEL).build());
- when(thingTypeRegistry.getThingType(MqttBindingConstants.HOMEASSISTANT_MQTT_THING)).thenReturn(HA_THING_TYPE);
+ when(thingTypeRegistry.getThingType(HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING))
+ .thenReturn(HA_THING_TYPE);
channelTypeProvider = spy(new MqttChannelTypeProvider(thingTypeRegistry, new VolatileStorageService()));
stateDescriptionProvider = spy(new MqttChannelStateDescriptionProvider(translationProvider, bundleResolver));
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/HaIDTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/HaIDTests.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/HaIDTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/HaIDTests.java
index e95c56b7a7fbe..e271b478be57f 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/HaIDTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/HaIDTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelTransformationTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelTransformationTests.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelTransformationTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelTransformationTests.java
index 4e07c130e44f4..a51c8203db904 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/HomeAssistantChannelTransformationTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/HomeAssistantChannelTransformationTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal;
+package org.openhab.binding.homeassistant.internal;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
@@ -26,7 +26,7 @@
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
-import org.openhab.binding.mqtt.homeassistant.internal.component.AbstractComponent;
+import org.openhab.binding.homeassistant.internal.component.AbstractComponent;
/**
* @author Jochen Klein - Initial contribution
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractComponentTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/AbstractComponentTests.java
similarity index 95%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractComponentTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/AbstractComponentTests.java
index a916e6afb1af7..e13ef6ed3b3ed 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractComponentTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/AbstractComponentTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -33,15 +33,15 @@
import org.junit.jupiter.api.BeforeEach;
import org.mockito.ArgumentMatchers;
import org.mockito.Mock;
+import org.openhab.binding.homeassistant.internal.AbstractHomeAssistantTests;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
+import org.openhab.binding.homeassistant.internal.HaID;
+import org.openhab.binding.homeassistant.internal.HandlerConfiguration;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
+import org.openhab.binding.homeassistant.internal.handler.HomeAssistantThingHandler;
import org.openhab.binding.mqtt.generic.MqttChannelStateDescriptionProvider;
import org.openhab.binding.mqtt.generic.MqttChannelTypeProvider;
import org.openhab.binding.mqtt.generic.values.Value;
-import org.openhab.binding.mqtt.homeassistant.internal.AbstractHomeAssistantTests;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
-import org.openhab.binding.mqtt.homeassistant.internal.HaID;
-import org.openhab.binding.mqtt.homeassistant.internal.HandlerConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
-import org.openhab.binding.mqtt.homeassistant.internal.handler.HomeAssistantThingHandler;
import org.openhab.core.i18n.UnitProvider;
import org.openhab.core.library.types.HSBType;
import org.openhab.core.thing.ChannelUID;
@@ -105,7 +105,7 @@ public void disposeThingHandler() {
}
/**
- * {@link org.openhab.binding.mqtt.homeassistant.internal.DiscoverComponents} will wait a config on specified
+ * {@link org.openhab.binding.homeassistant.internal.DiscoverComponents} will wait a config on specified
* topics.
* Topics in config must be without prefix and suffix, they can be converted to full with method
* {@link #configTopicToMqtt(String)}
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/AlarmControlPanelTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/AlarmControlPanelTests.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/AlarmControlPanelTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/AlarmControlPanelTests.java
index b1e2b8b41a0af..b8c33725bfa93 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/AlarmControlPanelTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/AlarmControlPanelTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/BasicSchemaLightTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/BasicSchemaLightTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/BasicSchemaLightTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/BasicSchemaLightTests.java
index a7fbdbcad526c..ba2453ead2e2a 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/BasicSchemaLightTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/BasicSchemaLightTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
@@ -24,11 +24,11 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.junit.jupiter.api.Test;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
import org.openhab.binding.mqtt.generic.values.ColorValue;
import org.openhab.binding.mqtt.generic.values.OnOffValue;
import org.openhab.binding.mqtt.generic.values.PercentageValue;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.HSBType;
import org.openhab.core.library.types.OnOffType;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/BinarySensorTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/BinarySensorTests.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/BinarySensorTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/BinarySensorTests.java
index 94400b58a28c5..adb1b3e785e15 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/BinarySensorTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/BinarySensorTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ButtonTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/ButtonTests.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ButtonTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/ButtonTests.java
index 89d6e4cd555c4..65a0cab606e77 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ButtonTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/ButtonTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/CameraTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/CameraTests.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/CameraTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/CameraTests.java
index 82dc28c4243d6..7680e69be7dfd 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/CameraTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/CameraTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ClimateTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/ClimateTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ClimateTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/ClimateTests.java
index 80d646f9174d8..562dc7f34e979 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ClimateTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/ClimateTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/CoverTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/CoverTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/CoverTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/CoverTests.java
index d7b632685dc9a..b7d5a52e99614 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/CoverTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/CoverTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTrackerTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/DeviceTrackerTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTrackerTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/DeviceTrackerTests.java
index ebc922566ee77..4ba7c06ef778d 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTrackerTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/DeviceTrackerTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTriggerTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/DeviceTriggerTests.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTriggerTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/DeviceTriggerTests.java
index e7a83cce033d4..649d1ab1f00d6 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/DeviceTriggerTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/DeviceTriggerTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -24,8 +24,8 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.junit.jupiter.api.Test;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
import org.openhab.binding.mqtt.generic.values.TextValue;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
import org.openhab.core.config.core.Configuration;
/**
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/EventTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/EventTests.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/EventTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/EventTests.java
index 685e2dd530a3d..45ef4d5d6dbb3 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/EventTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/EventTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/FanTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/FanTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/FanTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/FanTests.java
index 7400f3681ab41..20b78b801529b 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/FanTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/FanTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/HAConfigurationTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/HAConfigurationTests.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/HAConfigurationTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/HAConfigurationTests.java
index f781cbb7e5b6e..2a3d2463b58af 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/HAConfigurationTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/HAConfigurationTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -26,9 +26,9 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.junit.jupiter.api.Test;
-import org.openhab.binding.mqtt.homeassistant.internal.AbstractHomeAssistantTests;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.AbstractComponentConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.config.dto.Device;
+import org.openhab.binding.homeassistant.internal.AbstractHomeAssistantTests;
+import org.openhab.binding.homeassistant.internal.config.dto.AbstractComponentConfiguration;
+import org.openhab.binding.homeassistant.internal.config.dto.Device;
/**
* @author Jochen Klein - Initial contribution
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/HumidifierTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/HumidifierTests.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/HumidifierTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/HumidifierTests.java
index 0ea285a45c3f1..a0d7f6bf6418e 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/HumidifierTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/HumidifierTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/JSONSchemaLightTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/JSONSchemaLightTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/JSONSchemaLightTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/JSONSchemaLightTests.java
index 2ef065c8bcc04..8159d5ac64079 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/JSONSchemaLightTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/JSONSchemaLightTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/LockTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/LockTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/LockTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/LockTests.java
index 5517bf2924078..0b624babe3346 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/LockTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/LockTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/NumberTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/NumberTests.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/NumberTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/NumberTests.java
index 1e35494f9ba5b..3699bdcc9bc7b 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/NumberTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/NumberTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SceneTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SceneTests.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SceneTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SceneTests.java
index 550a54eb20a2b..ad0c0add488a0 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SceneTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SceneTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -23,8 +23,8 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.junit.jupiter.api.Test;
+import org.openhab.binding.homeassistant.internal.ComponentChannel;
import org.openhab.binding.mqtt.generic.values.Value;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannel;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.library.types.StringType;
import org.openhab.core.types.CommandOption;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SelectTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SelectTests.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SelectTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SelectTests.java
index d1446f8926fb4..5db5c7573ce2c 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SelectTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SelectTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SensorTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SensorTests.java
similarity index 98%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SensorTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SensorTests.java
index 98c99c95678d7..5f7268c3d1c3f 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SensorTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SensorTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SwitchTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SwitchTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SwitchTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SwitchTests.java
index 9b7b0a12dae9d..71394b2249355 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SwitchTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/SwitchTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TagTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/TagTests.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TagTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/TagTests.java
index 49586a9c8d34a..887332bec40ae 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TagTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/TagTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TemplateSchemaLightTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/TemplateSchemaLightTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TemplateSchemaLightTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/TemplateSchemaLightTests.java
index b6047aed26fce..a07a9d3060c3a 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TemplateSchemaLightTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/TemplateSchemaLightTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TextTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/TextTests.java
similarity index 96%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TextTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/TextTests.java
index e3131007acb96..40195c052d855 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TextTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/TextTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/VacuumTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/VacuumTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/VacuumTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/VacuumTests.java
index 747c54574ff2b..134bf9b2ef59a 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/VacuumTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/VacuumTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ValveTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/ValveTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ValveTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/ValveTests.java
index 1b8e38305a0c2..cc9b58a9febe3 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ValveTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/ValveTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/WaterHeaterTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/WaterHeaterTests.java
similarity index 99%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/WaterHeaterTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/WaterHeaterTests.java
index 2238a1b96e062..8803041b38214 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/WaterHeaterTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/component/WaterHeaterTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.component;
+package org.openhab.binding.homeassistant.internal.component;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/discovery/HomeAssistantDiscoveryTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/discovery/HomeAssistantDiscoveryTests.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/discovery/HomeAssistantDiscoveryTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/discovery/HomeAssistantDiscoveryTests.java
index 166c0b3e5f585..f5534e23efe5f 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/discovery/HomeAssistantDiscoveryTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/discovery/HomeAssistantDiscoveryTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.discovery;
+package org.openhab.binding.homeassistant.internal.discovery;
import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -31,10 +31,10 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
+import org.openhab.binding.homeassistant.internal.AbstractHomeAssistantTests;
+import org.openhab.binding.homeassistant.internal.HandlerConfiguration;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
import org.openhab.binding.mqtt.generic.MqttChannelTypeProvider;
-import org.openhab.binding.mqtt.homeassistant.internal.AbstractHomeAssistantTests;
-import org.openhab.binding.mqtt.homeassistant.internal.HandlerConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
import org.openhab.core.config.discovery.DiscoveryListener;
import org.openhab.core.config.discovery.DiscoveryResult;
import org.openhab.core.config.discovery.DiscoveryService;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/handler/HomeAssistantThingHandlerTests.java b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/handler/HomeAssistantThingHandlerTests.java
similarity index 97%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/handler/HomeAssistantThingHandlerTests.java
rename to bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/handler/HomeAssistantThingHandlerTests.java
index dd0c58008da80..4ecf0a51baec2 100644
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/handler/HomeAssistantThingHandlerTests.java
+++ b/bundles/org.openhab.binding.homeassistant/src/test/java/org/openhab/binding/homeassistant/internal/handler/HomeAssistantThingHandlerTests.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant.internal.handler;
+package org.openhab.binding.homeassistant.internal.handler;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
@@ -30,13 +30,13 @@
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.openhab.binding.mqtt.homeassistant.internal.AbstractHomeAssistantTests;
-import org.openhab.binding.mqtt.homeassistant.internal.ComponentChannelType;
-import org.openhab.binding.mqtt.homeassistant.internal.HaID;
-import org.openhab.binding.mqtt.homeassistant.internal.HandlerConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.component.Climate;
-import org.openhab.binding.mqtt.homeassistant.internal.component.Sensor;
-import org.openhab.binding.mqtt.homeassistant.internal.component.Switch;
+import org.openhab.binding.homeassistant.internal.AbstractHomeAssistantTests;
+import org.openhab.binding.homeassistant.internal.ComponentChannelType;
+import org.openhab.binding.homeassistant.internal.HaID;
+import org.openhab.binding.homeassistant.internal.HandlerConfiguration;
+import org.openhab.binding.homeassistant.internal.component.Climate;
+import org.openhab.binding.homeassistant.internal.component.Sensor;
+import org.openhab.binding.homeassistant.internal.component.Switch;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.i18n.UnitProvider;
import org.openhab.core.library.CoreItemFactory;
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configA.json b/bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configA.json
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configA.json
rename to bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configA.json
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configB.json b/bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configB.json
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configB.json
rename to bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configB.json
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configClimate.json b/bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configClimate.json
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configClimate.json
rename to bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configClimate.json
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configDeviceList.json b/bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configDeviceList.json
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configDeviceList.json
rename to bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configDeviceList.json
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configDeviceSingleString.json b/bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configDeviceSingleString.json
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configDeviceSingleString.json
rename to bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configDeviceSingleString.json
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configFan.json b/bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configFan.json
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configFan.json
rename to bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configFan.json
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configTS0601AutoLock.json b/bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configTS0601AutoLock.json
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configTS0601AutoLock.json
rename to bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configTS0601AutoLock.json
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configTS0601ClimateThermostat.json b/bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configTS0601ClimateThermostat.json
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/configTS0601ClimateThermostat.json
rename to bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/configTS0601ClimateThermostat.json
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/image.png b/bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/image.png
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.homeassistant/src/test/resources/org/openhab/binding/mqtt/homeassistant/internal/component/image.png
rename to bundles/org.openhab.binding.homeassistant/src/test/resources/org/openhab/binding/homeassistant/internal/component/image.png
diff --git a/bundles/org.openhab.binding.mqtt.generic/README.md b/bundles/org.openhab.binding.mqtt.generic/README.md
deleted file mode 100644
index dd7cecf893e8f..0000000000000
--- a/bundles/org.openhab.binding.mqtt.generic/README.md
+++ /dev/null
@@ -1,372 +0,0 @@
-# MQTT Things and Channels Binding
-
-MQTT is one of the most commonly used protocols in IoT (Internet of Things) projects. It stands for Message Queuing Telemetry Transport.
-
-It is designed as a lightweight messaging protocol that uses publish/subscribe operations to exchange data between clients and the server.
-
-
-
-MQTT servers are called brokers and the clients are simply the connected devices.
-
-- When a device (a client) wants to send data to the broker, we call this operation a “publish”.
-- When a device (a client) wants to receive data from the broker, we call this operation a “subscribe”.
-
-
-
-openHAB itself is not an MQTT Broker and needs to connect to one as a regular client.
-Therefore you must have configured a _Broker Thing_ first via the **MQTT Broker Binding**!
-
-## MQTT Topics
-
-If a client subscribes to a broker, it is certainly not interested in all published messages.
-Instead it subscribes to specific **topics**. A topic can look like this: "mydevice/temperature".
-
-Example:
-
-Let's assume there is an MQTT capable light bulb.
-
-It has a unique id amongst all light bulbs, say "device123". The manufacturer decided to accept new
-brightness values on "device123/brightness/set". In openHAB we call that a **command topic**.
-
-And now assume that we have a mobile phone (or openHAB itself) and we register with the MQTT broker,
-and want to retrieve the current brightness value. The manufacturer specified that this value can
-be found on "device123/brightness". In openHAB we call that a **state topic**.
-
-This pattern is very common, that you have a command and a state topic. A sensor would only have a state topic,
-naturally.
-
-Because every manufacturer can decide on his own on which topic his devices publish, this
-binding can unfortunately not provide any auto-discovery means.
-
-If you use an open source IoT device, the chances are high,
-that it has the MQTT convention Homie or HomeAssistant implemented. Those conventions specify the topic
-topology and allow auto discovery. Please have a look at the specific openHAB bindings.
-
-## Supported Things
-
-Because of the very generic structure of MQTT, this binding allows you to add an arbitrary number
-of so called "Generic MQTT Things" to organize yourself.
-
-On each of those things you can add an arbitrary number of channels.
-
-Remember that you need a configured broker Thing first!
-
-### Thing Configuration
-
-The following optional parameters can be set for the Thing:
-
-- **availabilityTopic**: The MQTT topic that represents the availability of the thing. This can be the thing's LWT topic.
-- **payloadAvailable**: Payload of the `Availability Topic`, when the device is available. Default: `ON`.
-- **payloadNotAvailable**: Payload of the `Availability Topic`, when the device is _not_ available. Default: `OFF`.
-- **transformationPattern**: An optional transformation pattern like [JSONPath](https://goessner.net/articles/JsonPath/index.html#e2) that is applied to the incoming availability payload.
- The result of the transformations is then checked against `payloadAvailable` and `payloadNotAvailable`.
-
-## Supported Channels
-
-You can add the following channels:
-
-- **string**: This channel can show the received text on the given topic and can send text to a given topic.
-- **number**: This channel can show the received number on the given topic and can send a number to a given topic. It can have a min, max and step values.
-- **dimmer**: This channel handles numeric values as percentages. It can have min, max and step values.
-- **contact**: This channel represents an open/close state of a given topic.
-- **switch**: This channel represents an on/off state of a given topic and can send an on/off value to a given topic.
-- **colorRGB**: This channel handles color values in RGB format. (Deprecated)
-- **colorHSB**: This channel handles color values in HSB format. (Deprecated)
-- **color**: This channel handles color values in HSB, RGB or xyY (x,y,brightness) formats.
-- **location**: This channel handles a location.
-- **image**: This channel handles binary images in common java supported formats (bmp,jpg,png).
-- **datetime**: This channel handles date/time values.
-- **rollershutter**: This channel is for rollershutters.
-
-## Channel Configuration
-
-- **stateTopic**: The MQTT topic that represents the state of the thing. This can be empty, the thing channel will be a state-less trigger then. You can use a wildcard topic like "sensors/+/event" to retrieve state from multiple MQTT topics.
-- **transformationPattern**: An optional transformation pattern like [JSONPath](https://goessner.net/articles/JsonPath/index.html#e2) that is applied to all incoming MQTT values.
-- **transformationPatternOut**: An optional transformation pattern like [JSONPath](https://goessner.net/articles/JsonPath/index.html#e2) that is applied before publishing a value to MQTT.
-- **commandTopic**: The MQTT topic that commands are send to. This can be empty, the thing channel will be read-only then. Transformations are not applied for sending data.
-- **formatBeforePublish**: Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". Currently only "%s" is supported. Note that this format does not apply to the special on/off command values for dimmer channels, or up/down/stop command values for rollershutter channels.
-- **postCommand**: If `true`, the received MQTT value will not only update the state of linked items, but command it.
- The default is `false`.
- You usually need this to be `true` if your item is also linked to another channel, say a KNX actor, and you want a received MQTT payload to command that KNX actor.
-- **retained**: The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
-- **qos**: QoS of this channel. Overrides the connection QoS (defined in broker connection).
-- **trigger**: If `true`, the state topic will not update a state, but trigger a channel instead.
-
-### Channel Type "string"
-
-- **allowedStates**: An optional comma separated list of allowed states. Example: "ONE,TWO,THREE"
-
-You can connect this channel to a String item.
-
-### Channel Type "number"
-
-- **min**: An optional minimum value.
-- **max**: An optional maximum value.
-- **step**: For decrease, increase commands the step needs to be known
-- **unit**: Unit of measurement (optional). For supported units see [OpenHAB: List of Units](https://www.openhab.org/docs/concepts/units-of-measurement.html#list-of-units). Examples: "°C", "°F"
-
-A decimal value (like 0.2) is send to the MQTT topic if the number has a fractional part.
-If you always require an integer, please use the formatter.
-
-You can connect this channel to a Number item.
-
-### Channel Type "dimmer"
-
-- **on**: An optional string (like "ON"/"Open") that is sent for the `ON` command to tell the device to turn on to whatever value it thinks is useful (i.e. restore last state).
-- **off**: An optional string (like "OFF"/"Close") that is sent for the `OFF` command.
-- **min**: A required minimum value.
-- **max**: A required maximum value.
-- **step**: For decrease, increase commands the step needs to be known
-
-If **on** or **off** are not defined, an explicit 0 or 100 will be sent (after being scaled by **min** and **max** as appropriate).
-Note that **formatBeforePublish** will be ignored for these values, in case your device uses a vastly different format for these special commands than it does for number values.
-
-The value is internally stored as a percentage for a value between **min** and **max**.
-
-The channel will publish a value between `min` and `max`.
-
-You can connect this channel to a Rollershutter or Dimmer item.
-
-### Channel Type "contact", "switch"
-
-- **on**: An optional number (like 1, 10) or a string (like "ON"/"Open") that is recognized as on/open state.
-- **off**: An optional number (like 0, -10) or a string (like "OFF"/"Close") that is recognized as off/closed state.
-
-The contact channel by default recognizes `"OPEN"` and `"CLOSED"`. You can connect this channel to a Contact item.
-The switch channel by default recognizes `"ON"` and `"OFF"`. You can connect this channel to a Switch item.
-
-If **on** and **off** are not configured it publishes the strings mentioned before respectively.
-
-You can connect this channel to a Contact or Switch item.
-
-### Channel Type "color"
-
-- **colorMode**: An optional string that defines the color representation: `HSB`, `RGB` or `XYY` (x,y,brightness). Defaults to `HSB` when not specified.
-- **on**: An optional string (like "ON"/"Open") that is sent for the `ON` command to tell the device to turn on to whatever value it thinks is useful (i.e. restore last state).
-- **off**: An optional string (like "OFF"/"Close") that is sent for the `OFF` command.
-- **onBrightness**: If you connect this channel to a Switch item and turn it on, color and saturation are preserved from the last state, but the brightness will be set to this configured initial brightness (default: 10%).
-
-You can connect this channel to a Color, Dimmer and Switch item.
-
-This channel will publish the color as comma separated list to the MQTT broker,
-e.g. "112,54,123" for the RGB color mode (0-255 per component), "360,100,100" for the HSB color mode (0-359 for hue and 0-100 for saturation and brightness),
-and "0.640074,0.329970,100" for the xyY color mode (0-1 for x and y, and 0-100 for brightness).
-
-The channel expects values on the corresponding MQTT topic to be in this format as well.
-
-If **on** or **off** are not defined, a color command with the brightness set to 0 or 100 will be sent.
-Note that **formatBeforePublish** will be ignored for these values, in case your device uses a vastly different format for these special commands than it does for regular values.
-
-### Channel Type "colorRGB", "colorHSB" (Deprecated)
-
-- **on**: An optional string (like "BRIGHT") that is recognized as on state. (ON will always be recognized.)
-- **off**: An optional string (like "DARK") that is recognized as off state. (OFF will always be recognized.)
-- **onBrightness**: If you connect this channel to a Switch item and turn it on,
-
-color and saturation are preserved from the last state, but
-the brightness will be set to this configured initial brightness (default: 10%).
-
-You can connect this channel to a Color, Dimmer and Switch item.
-
-This channel will publish the color as comma separated list to the MQTT broker,
-e.g. "112,54,123" for an RGB channel (0-255 per component) and "360,100,100" for a HSB channel (0-359 for hue and 0-100 for saturation and brightness).
-
-The channel expects values on the corresponding MQTT topic to be in this format as well.
-
-### Channel Type "location"
-
-You can connect this channel to a Location item.
-
-The channel will publish the location as comma separated list to the MQTT broker,
-e.g. "112,54,123" for latitude, longitude, altitude. The altitude is optional.
-
-The channel expects values on the corresponding MQTT topic to be in this format as well.
-
-### Channel Type "image"
-
-You can connect this channel to an Image item. This is a read-only channel.
-
-The channel expects values on the corresponding MQTT topic to contain the binary
-data of a bmp, jpg, png or any other format that the installed java runtime supports.
-
-### Channel Type "datetime"
-
-You can connect this channel to a DateTime item.
-
-The channel will publish the date/time in the format "yyyy-MM-dd'T'HH:mm"
-for example 2018-01-01T12:14:00. If you require another format, please use the formatter.
-
-The channel expects values on the corresponding MQTT topic to be in this format as well.
-
-### Channel Type "rollershutter"
-
-- **on**: An optional string (like "Open") that is sent for the `UP` command.
-- **off**: An optional string (like "Close") that is sent for the `DOWN` command.
-- **stop**: An optional string (like "Stop") that is sent for the `STOP` command.
-- **stopCommandTopic**: An optional topic to send `STOP` commands to. If not set, `STOP` commands are sent to the main **commandTopic**.
-
-If **on**, **off**, or **stop** are not defined, an explicit 0 or 100 will be sent for `UP` and `DOWN` respectively. `STOP` commands will be ignored entirely.
-Note that **formatBeforePublish** will be ignored for these values, in case your device uses a vastly different format for these special commands than it does for number values.
-
-You can connect this channel to a Rollershutter or Dimmer item.
-
-## Rule Actions
-
-This binding includes a rule action, which allows one to publish MQTT messages from within rules.
-There is a separate instance for each MQTT broker (i.e. bridge), which can be retrieved through
-
-```java
-val mqttActions = getActions("mqtt","mqtt:broker:myBroker")
-```
-
-where the first parameter always has to be `mqtt` and the second (`mqtt:broker:myBroker`) is the Thing UID of the broker that should be used.
-Once this action instance is retrieved, you can invoke the `publishMQTT(String topic, String value, Boolean retained)` method on it:
-
-```java
-mqttActions.publishMQTT("mytopic","myvalue", true)
-```
-
-Alternatively, `publishMQTT(String topic, byte[] value, Boolean retained)` can publish a byte array data.
-
-The retained argument is optional and if not supplied defaults to `false`.
-
-## Configuration via Text Files
-
-_broker.things_ file:
-
-```java
-mqtt:broker:mySecureBroker [ host="192.168.0.41", secure=true, certificatepin=true, publickeypin=true ]
-mqtt:broker:myInsecureBroker [ host="192.168.0.42", secure=false ]
-mqtt:broker:myAuthenticatedBroker [ host="192.168.0.43",secure=true, username="user", password="password" ]
-mqtt:broker:pinToPublicKey [ host="192.168.0.44", secure=true , publickeypin=true, publickey="SHA-256:9a6f30e67ae9723579da2575c35daf7da3b370b04ac0bde031f5e1f5e4617eb8" ]
-```
-
-In the first example a secure connection to a broker is defined. It pins the returned certificate and public key. If someone tries a man in the middle attack later on, this broker connection will recognize it and refuse a connection. Be aware that if your brokers certificate changes, you need to remove the connection entry and add it again.
-The second connection is a plain, unsecured one. Use this only for local MQTT Brokers.
-A third connection uses a username and password for authentication. The credentials are plain values on the wire, therefore you should only use this on a secure connection.
-In a fourth connection, the public key pinning is enabled again. This time, a public key hash is provided to pin the connection to a specific server. It follows the form "hashname:hashvalue". Valid hashnames are SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 and all others listed in Java MessageDigest Algorithms.
-
-### Examples
-
-Files can also be used to create topic things and channels and to combine them with a broker connection:
-
-_mqtt.things_ file:
-
-```java
-Bridge mqtt:broker:myInsecureBroker [ host="192.168.0.42", secure=false ]
-
-Thing mqtt:topic:mything "mything" (mqtt:broker:myInsecureBroker) {
- Channels:
- Type switch : lamp "Kitchen Lamp" [ stateTopic="lamp/enabled", commandTopic="lamp/enabled/set" ]
- Type switch : fancylamp "Fancy Lamp" [ stateTopic="fancy/lamp/state", commandTopic="fancy/lamp/command", on="i-am-on", off="i-am-off" ]
- Type string : alarmpanel "Alarm system" [ stateTopic="alarm/panel/state", commandTopic="alarm/panel/set", allowedStates="ARMED_HOME,ARMED_AWAY,UNARMED" ]
- Type color : lampcolor "Kitchen Lamp color" [ stateTopic="lamp/color", commandTopic="lamp/color/set", colorMode="RGB" ]
- Type dimmer : blind "Blind" [ stateTopic="blind/state", commandTopic="blind/set", min=0, max=5, step=1 ]
-}
-```
-
-If the availability status is available, it can be configured to set the Thing status:
-
-```java
-Thing mqtt:topic:bedroom1-switch (mqtt:broker:myInsecureBroker) [ availabilityTopic="tele/bedroom1-switch/LWT", payloadAvailable="Online", payloadNotAvailable="Offline" ] {
- Channels:
- Type switch : power [ stateTopic="stat/bedroom1-switch/RESULT", transformationPattern="REGEX((.*POWER.*))∩JSONPATH($.POWER)", commandTopic="cmnd/bedroom1-switch/POWER" ]
-}
-```
-
-The transformation pattern can be chained using the intersection character "∩" as above, or by listing them separately:
-
-```java
-Thing mqtt:topic:bedroom1-switch (mqtt:broker:myInsecureBroker) [ availabilityTopic="tele/bedroom1-switch/LWT", payloadAvailable="Online", payloadNotAvailable="Offline" ] {
- Channels:
- Type switch : power [ stateTopic="stat/bedroom1-switch/RESULT", transformationPattern="REGEX((.*POWER.*))","JSONPATH($.POWER)", commandTopic="cmnd/bedroom1-switch/POWER" ]
-}
-```
-
-## Limitations
-
-- The HomeAssistant Fan Components only support ON/OFF.
-- The HomeAssistant Cover Components only support OPEN/CLOSE/STOP.
-- The HomeAssistant Light Component does not support XY color changes.
-- The HomeAssistant Climate Components is not yet supported.
-
-## Value Transformations
-
-[Transformations](/docs/configuration/transformations.html) can be applied to:
-
-- Incoming availability payload
-- Incoming value
-- Outgoing value
-
-Transformations can be chained in the UI by listing each transformation on a separate line, or by separating them with the mathematical intersection character "∩".
-Transformations are defined using this syntax: `TYPE(FUNCTION)`, e.g.: `JSONPATH($.path)`.
-The syntax: `TYPE:FUNCTION` is still supported, e.g.: `JSONPATH:$.path`.
-Please note that the values will be discarded if one of the transformations failed (e.g. REGEX did not match) or returned `null`.
-
-## Incoming Value Transformation
-
-All mentioned channels allow an optional transformation for incoming MQTT topic values.
-
-This is required if your received value is wrapped in a JSON or XML response.
-
-Here are a few examples to unwrap a value from a complex response:
-
-| Received value | Tr. Service | Transformation |
-| ------------------------------------------------------------------- | ---------------- | ------------------------------------------ |
-| `{device: {status: { temperature: 23.2 }}}` | JSONPATH | `JSONPATH($.device.status.temperature)` |
-| `23.2` | XPath | `XPath(/device/status/temperature/text())` |
-| `THEVALUE:23.2°C` | REGEX | `REGEX(:(.*?)°)` |
-| `abc` | JS (UI defined) | `JS(config:js:35edb3735a)` |
-| `abc` | JS (file based) | `JS(to_uppercase.js)` |
-| `abc` | JS (inline) | `JS(\| input.toUpperCase() )` |
-| `true` | MAP (UI defined) | `MAP(config:map:54facda0f7)` |
-| `true` | MAP (file based) | `MAP(status.map)` |
-| `true` | MAP (inline) | `MAP(\|true=ON;false=OFF)` |
-
-## Outgoing Value Transformation
-
-All mentioned channels allow an optional transformation for outgoing values.
-Please prefer formatting as described in the next section whenever possible.
-
-## Format before Publish
-
-This feature is quite powerful in transforming an item state before it is published to the MQTT broker.
-It has the syntax: `%[flags][width]conversion`.
-Find the full documentation on the [Java](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Formatter.html) web page.
-
-The default is "%s" which means: Output the item state as string.
-
-Here are a few examples:
-
-- All uppercase: "%S". Just use the upper case letter for the conversion argument.
-- Apply a prefix: "myprefix%s"
-- Apply a suffix: "%s suffix"
-- Number precision: ".4f" for a 4 digit precision. Use the "+" flag to always add a sign: "+.4f".
-- Decimal to Hexadecimal/Octal/Scientific: For example "60" with "%x", "%o", "%e" becomes "3C", "74", "60".
-- Date/Time: To reference the item state multiple times, use "%1$". Use the "tX" conversion where "X" can be any of [h,H,m,M,I,k,l,S,p,B,b,A,a,y,Y,d,e].
- - For an output of _May 23, 1995_ use "%1$**tb** %1$**te**,%1$**tY**".
- - For an output of _23.05.1995_ use "%1$**td**.%1$**tm**.%1$**tY**".
- - For an output of _23:15_ use "%1$**tH**:%1$**tM**".
-
-Default pattern applied for each type:
-
-| Type | Parameter | Pattern | Comment |
-| ----------------- | ---------------------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
-| **string** | String | "%s" | |
-| **number** | BigDecimal | "%f" | The default will remove trailing zeros after the decimal point. |
-| **dimmer** | BigDecimal | "%f" | The default will remove trailing zeros after the decimal point. |
-| **contact** | String | -- | No pattern supported. Always **on** and **off** strings. |
-| **switch** | String | -- | No pattern supported. Always **on** and **off** strings. |
-| **colorRGB** | BigDecimal, BigDecimal, BigDecimal | "%1$d,%2$d,%3$d" | Parameters are **red**, **green** and **blue** components. |
-| **colorHSB** | BigDecimal, BigDecimal, BigDecimal | "%1$d,%2$d,%3$d" | Parameters are **hue**, **saturation** and **brightness** components. |
-| **location** | BigDecimal, BigDecimal | "%2$f,%3$f,%1$f" | Parameters are **altitude**, **latitude** and **longitude**, altitude is only in default pattern, if value is not '0'. |
-| **image** | -- | -- | No publishing supported. |
-| **datetime** | ZonedDateTime | "%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS.%1$tN" | Trailing zeros of the nanoseconds are removed. |
-| **rollershutter** | String | "%s" | No pattern supported. Always **up**, **down**, **stop** string or integer percent value. |
-
-Any outgoing value transformation will **always** result in a **string** value.
-
-## Troubleshooting
-
-- If you get the error "No MQTT client": Please update your installation.
-- If you use the Mosquitto broker: Please be aware that there is a relatively low setting for retained messages. If at some point messages stop being delivered change the setting.
diff --git a/bundles/org.openhab.binding.mqtt.generic/pom.xml b/bundles/org.openhab.binding.mqtt.generic/pom.xml
deleted file mode 100644
index 792065299587f..0000000000000
--- a/bundles/org.openhab.binding.mqtt.generic/pom.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
- 4.0.0
-
-
- org.openhab.addons.bundles
- org.openhab.addons.reactor.bundles
- 5.1.0-SNAPSHOT
-
-
- org.openhab.binding.mqtt.generic
-
- openHAB Add-ons :: Bundles :: MQTT Things and Channels
-
-
-
- org.openhab.addons.bundles
- org.openhab.binding.mqtt
- ${project.version}
- provided
-
-
- jakarta.inject
- jakarta.inject-api
- 1.0.5
-
-
-
-
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/feature/feature.xml b/bundles/org.openhab.binding.mqtt.generic/src/main/feature/feature.xml
deleted file mode 100644
index a96959cfcad57..0000000000000
--- a/bundles/org.openhab.binding.mqtt.generic/src/main/feature/feature.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features
-
-
- openhab-runtime-base
- openhab-transport-mqtt
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.generic/${project.version}
-
-
-
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/i18n/mqtt.properties b/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/i18n/mqtt.properties
deleted file mode 100644
index 870af83e9ac82..0000000000000
--- a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/i18n/mqtt.properties
+++ /dev/null
@@ -1,222 +0,0 @@
-# thing types
-
-thing-type.mqtt.topic.label = Generic MQTT Thing
-thing-type.mqtt.topic.description = You need a configured Broker first. Dynamically add channels of various types to this Thing. Link different MQTT topics to each channel.
-
-# thing types config
-
-thing-type.config.mqtt.topic.availabilityTopic.label = Availability Topic
-thing-type.config.mqtt.topic.availabilityTopic.description = Topic of the LWT of the device
-thing-type.config.mqtt.topic.payloadAvailable.label = Device Available Payload
-thing-type.config.mqtt.topic.payloadAvailable.description = Payload of the 'Availability Topic', when the device is available. Default: 'ON'
-thing-type.config.mqtt.topic.payloadNotAvailable.label = Device Unavailable Payload
-thing-type.config.mqtt.topic.payloadNotAvailable.description = Payload of the 'Availability Topic', when the device is *not* available. Default: 'OFF'
-thing-type.config.mqtt.topic.transformationPattern.label = Availability Payload Transformations
-thing-type.config.mqtt.topic.transformationPattern.description = Applies transformations to the incoming availability payload. A transformation example for a received JSON would be "JSONPATH:$.status" for a json {status: "Online"}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
-
-# channel types
-
-channel-type.mqtt.color.label = Color Value (HSB, RGB or CIE xyY)
-channel-type.mqtt.colorHSB.label = Color Value (Hue,Saturation,Brightness)
-channel-type.mqtt.colorRGB.label = Color Value (Red,Green,Blue)
-channel-type.mqtt.contact.label = Open/Close Contact
-channel-type.mqtt.datetime.label = Date/Time Value
-channel-type.mqtt.datetime.description = Current date and/or time
-channel-type.mqtt.dimmer.label = Dimmer
-channel-type.mqtt.image.label = Image
-channel-type.mqtt.image.description = An image to display. Send a binary bmp, jpg, png or any other supported format to this channel.
-channel-type.mqtt.location.label = Location
-channel-type.mqtt.location.description = GPS coordinates as Latitude,Longitude,Altitude
-channel-type.mqtt.number.label = Number Value
-channel-type.mqtt.rollershutter.label = Rollershutter
-channel-type.mqtt.string.label = Text Value
-channel-type.mqtt.switch.label = On/Off Switch
-channel-type.mqtt.trigger.label = Trigger
-
-# channel types config
-
-thing-type.config.mqtt.color_channel.colorMode.label = Color Mode
-thing-type.config.mqtt.color_channel.colorMode.description = Defines the color representation format of the payload. "HSB" by default.
-thing-type.config.mqtt.color_channel.colorMode.option.HSB = HSB (Hue, Saturation, Brightness)
-thing-type.config.mqtt.color_channel.colorMode.option.RGB = RGB (Red, Green, Blue)
-thing-type.config.mqtt.color_channel.colorMode.option.XYY = CIE xyY (x, y, Brightness)
-thing-type.config.mqtt.color_channel.commandTopic.label = MQTT Command Topic
-thing-type.config.mqtt.color_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
-thing-type.config.mqtt.color_channel.formatBeforePublish.label = Outgoing Value Format
-thing-type.config.mqtt.color_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
-thing-type.config.mqtt.color_channel.group.transformations.label = Transform Values
-thing-type.config.mqtt.color_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
-thing-type.config.mqtt.color_channel.off.label = Custom OFF Command
-thing-type.config.mqtt.color_channel.off.description = A string (like "OFF") that is sent to MQTT when an OFF command is received, instead of a color command with a brightness of 0%. The Outgoing Value Format is not applied to this value.
-thing-type.config.mqtt.color_channel.on.label = Custom ON Command
-thing-type.config.mqtt.color_channel.on.description = A string (like "ON") that is sent to MQTT when an ON command is received, instead of a color command with a brightness of 100%. The Outgoing Value Format is not applied to this value.
-thing-type.config.mqtt.color_channel.onBrightness.label = Initial Brightness
-thing-type.config.mqtt.color_channel.onBrightness.description = If you connect this channel to a Switch item and turn it on, color and saturation are preserved from the last state, but the brightness will be set to this configured initial brightness percentage.
-thing-type.config.mqtt.color_channel.postCommand.label = Is Command
-thing-type.config.mqtt.color_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
-thing-type.config.mqtt.color_channel.qos.label = QoS
-thing-type.config.mqtt.color_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
-thing-type.config.mqtt.color_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
-thing-type.config.mqtt.color_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
-thing-type.config.mqtt.color_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
-thing-type.config.mqtt.color_channel.retained.label = Retained
-thing-type.config.mqtt.color_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
-thing-type.config.mqtt.color_channel.stateTopic.label = MQTT State Topic
-thing-type.config.mqtt.color_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
-thing-type.config.mqtt.color_channel.transformationPattern.label = Incoming Value Transformations
-thing-type.config.mqtt.color_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
-thing-type.config.mqtt.color_channel.transformationPatternOut.label = Outgoing Value Transformation
-thing-type.config.mqtt.color_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
-thing-type.config.mqtt.dimmer_channel.commandTopic.label = MQTT Command Topic
-thing-type.config.mqtt.dimmer_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
-thing-type.config.mqtt.dimmer_channel.formatBeforePublish.label = Outgoing Value Format
-thing-type.config.mqtt.dimmer_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
-thing-type.config.mqtt.dimmer_channel.group.transformations.label = Transform Values
-thing-type.config.mqtt.dimmer_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
-thing-type.config.mqtt.dimmer_channel.max.label = Absolute Maximum
-thing-type.config.mqtt.dimmer_channel.max.description = This configuration represents the maximum of the allowed range. For a percentage channel that equals one-hundred percent.
-thing-type.config.mqtt.dimmer_channel.min.label = Absolute Minimum
-thing-type.config.mqtt.dimmer_channel.min.description = This configuration represents the minimum of the allowed range. For a percentage channel that equals zero percent.
-thing-type.config.mqtt.dimmer_channel.off.label = Custom OFF Command
-thing-type.config.mqtt.dimmer_channel.off.description = A string (like "OFF") that is sent to MQTT when an OFF command is received, instead of an explicit 0%. The Outgoing Value Format is not applied to this value.
-thing-type.config.mqtt.dimmer_channel.on.label = Custom ON Command
-thing-type.config.mqtt.dimmer_channel.on.description = A string (like "ON") that is sent to MQTT when an ON command is received, instead of an explicit 100%. The Outgoing Value Format is not applied to this value.
-thing-type.config.mqtt.dimmer_channel.postCommand.label = Is Command
-thing-type.config.mqtt.dimmer_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
-thing-type.config.mqtt.dimmer_channel.qos.label = QoS
-thing-type.config.mqtt.dimmer_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
-thing-type.config.mqtt.dimmer_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
-thing-type.config.mqtt.dimmer_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
-thing-type.config.mqtt.dimmer_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
-thing-type.config.mqtt.dimmer_channel.retained.label = Retained
-thing-type.config.mqtt.dimmer_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
-thing-type.config.mqtt.dimmer_channel.stateTopic.label = MQTT State Topic
-thing-type.config.mqtt.dimmer_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
-thing-type.config.mqtt.dimmer_channel.step.label = Delta Value
-thing-type.config.mqtt.dimmer_channel.step.description = A number/dimmer channel can receive INCREASE/DECREASE commands and computes the target number by adding or subtracting this delta value.
-thing-type.config.mqtt.dimmer_channel.transformationPattern.label = Incoming Value Transformations
-thing-type.config.mqtt.dimmer_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
-thing-type.config.mqtt.dimmer_channel.transformationPatternOut.label = Outgoing Value Transformation
-thing-type.config.mqtt.dimmer_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
-thing-type.config.mqtt.number_channel.commandTopic.label = MQTT Command Topic
-thing-type.config.mqtt.number_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
-thing-type.config.mqtt.number_channel.formatBeforePublish.label = Outgoing Value Format
-thing-type.config.mqtt.number_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
-thing-type.config.mqtt.number_channel.group.transformations.label = Transform Values
-thing-type.config.mqtt.number_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
-thing-type.config.mqtt.number_channel.max.label = Absolute Maximum
-thing-type.config.mqtt.number_channel.max.description = This configuration represents the maximum of the allowed range. For a percentage channel that equals one-hundred percent.
-thing-type.config.mqtt.number_channel.min.label = Absolute Minimum
-thing-type.config.mqtt.number_channel.min.description = This configuration represents the minimum of the allowed range. For a percentage channel that equals zero percent.
-thing-type.config.mqtt.number_channel.postCommand.label = Is Command
-thing-type.config.mqtt.number_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option. Note that if the value is NaN (interpreted as UNDEF), it can only update; commands are not possible.
-thing-type.config.mqtt.number_channel.qos.label = QoS
-thing-type.config.mqtt.number_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
-thing-type.config.mqtt.number_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
-thing-type.config.mqtt.number_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
-thing-type.config.mqtt.number_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
-thing-type.config.mqtt.number_channel.retained.label = Retained
-thing-type.config.mqtt.number_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
-thing-type.config.mqtt.number_channel.stateTopic.label = MQTT State Topic
-thing-type.config.mqtt.number_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
-thing-type.config.mqtt.number_channel.step.label = Delta Value
-thing-type.config.mqtt.number_channel.step.description = A number/dimmer channel can receive INCREASE/DECREASE commands and computes the target number by adding or subtracting this delta value.
-thing-type.config.mqtt.number_channel.transformationPattern.label = Incoming Value Transformations
-thing-type.config.mqtt.number_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
-thing-type.config.mqtt.number_channel.transformationPatternOut.label = Outgoing Value Transformation
-thing-type.config.mqtt.number_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
-thing-type.config.mqtt.number_channel.unit.label = Unit Of Measurement
-thing-type.config.mqtt.number_channel.unit.description = Unit of measurement (optional). The unit is used for representing the value in the GUI as well as for converting incoming values (like from °F to °C). Examples: °C, °F, kW, etc.
-thing-type.config.mqtt.rollershutter_channel.commandTopic.label = MQTT Command Topic
-thing-type.config.mqtt.rollershutter_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only rollershutter.
-thing-type.config.mqtt.rollershutter_channel.formatBeforePublish.label = Outgoing Value Format
-thing-type.config.mqtt.rollershutter_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
-thing-type.config.mqtt.rollershutter_channel.group.transformations.label = Transform Values
-thing-type.config.mqtt.rollershutter_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
-thing-type.config.mqtt.rollershutter_channel.invert.label = Invert
-thing-type.config.mqtt.rollershutter_channel.invert.description = Enable if your device uses 100 as UP and 0 as DOWN, instead of the normal openHAB convention of 0 as UP and 100 as DOWN.
-thing-type.config.mqtt.rollershutter_channel.off.label = Down Command Value
-thing-type.config.mqtt.rollershutter_channel.off.description = A string (like "CLOSE") that is sent when commanding the rollershutter to close. If not provided, 100 (or 0, if inverted) will be sent instead. The Outgoing Value Format is not applied to this value.
-thing-type.config.mqtt.rollershutter_channel.offState.label = Down State Value
-thing-type.config.mqtt.rollershutter_channel.offState.description = A string (like "CLOSED") that is recognised as DOWN state. You can use this parameter for a second keyword, next to DOWN. Defaults to the Down Command Value.
-thing-type.config.mqtt.rollershutter_channel.on.label = Up Command Value
-thing-type.config.mqtt.rollershutter_channel.on.description = A string (like "OPEN") that is sent when commanding the rollershutter to open. If not provided, 0 (or 100, if inverted) will be sent instead. The Outgoing Value Format is not applied to this value.
-thing-type.config.mqtt.rollershutter_channel.onState.label = Up State Value
-thing-type.config.mqtt.rollershutter_channel.onState.description = A string (like "OPENED") that is recognised as UP state. You can use this parameter for a second keyword, next to UP. Defaults to the Up Command Value.
-thing-type.config.mqtt.rollershutter_channel.postCommand.label = Is Command
-thing-type.config.mqtt.rollershutter_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
-thing-type.config.mqtt.rollershutter_channel.qos.label = QoS
-thing-type.config.mqtt.rollershutter_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
-thing-type.config.mqtt.rollershutter_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
-thing-type.config.mqtt.rollershutter_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
-thing-type.config.mqtt.rollershutter_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
-thing-type.config.mqtt.rollershutter_channel.retained.label = Retained
-thing-type.config.mqtt.rollershutter_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
-thing-type.config.mqtt.rollershutter_channel.stateTopic.label = MQTT State Topic
-thing-type.config.mqtt.rollershutter_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
-thing-type.config.mqtt.rollershutter_channel.stop.label = Stop Command
-thing-type.config.mqtt.rollershutter_channel.stop.description = A string (like "STOP") that is sent when commanding the rollershutter to stop. The Outgoing Value Format is not applied to this value.
-thing-type.config.mqtt.rollershutter_channel.stopCommandTopic.label = MQTT Stop Command Topic
-thing-type.config.mqtt.rollershutter_channel.stopCommandTopic.description = An MQTT topic that this thing will send a STOP command to. If not set, it will send STOP commands to the main commandTopic.
-thing-type.config.mqtt.rollershutter_channel.transformExtentsToString.label = Transform Commands at Extents to String
-thing-type.config.mqtt.rollershutter_channel.transformExtentsToString.description = If a command is 0 or 100, send that as UP or DOWN commands instead. Useful if your device doesn't support going to a specific position - only opening or closing, but you have front ends (say HomeKit) or rules that will only send percentage commands instead of UP/DOWN.
-thing-type.config.mqtt.rollershutter_channel.transformationPattern.label = Incoming Value Transformations
-thing-type.config.mqtt.rollershutter_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
-thing-type.config.mqtt.rollershutter_channel.transformationPatternOut.label = Outgoing Value Transformation
-thing-type.config.mqtt.rollershutter_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
-thing-type.config.mqtt.string_channel.allowedStates.label = Allowed States
-thing-type.config.mqtt.string_channel.allowedStates.description = If your MQTT topic is limited to a set of one or more specific commands or specific states, define those states here. Separate multiple states with commas. An example for a light bulb state set: ON,DIMMED,OFF
-thing-type.config.mqtt.string_channel.commandTopic.label = MQTT Command Topic
-thing-type.config.mqtt.string_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
-thing-type.config.mqtt.string_channel.formatBeforePublish.label = Outgoing Value Format
-thing-type.config.mqtt.string_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
-thing-type.config.mqtt.string_channel.group.transformations.label = Transform Values
-thing-type.config.mqtt.string_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
-thing-type.config.mqtt.string_channel.nullValue.label = NULL Value
-thing-type.config.mqtt.string_channel.nullValue.description = If the received MQTT value matches this, treat it as NULL.
-thing-type.config.mqtt.string_channel.postCommand.label = Is Command
-thing-type.config.mqtt.string_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
-thing-type.config.mqtt.string_channel.qos.label = QoS
-thing-type.config.mqtt.string_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
-thing-type.config.mqtt.string_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
-thing-type.config.mqtt.string_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
-thing-type.config.mqtt.string_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
-thing-type.config.mqtt.string_channel.retained.label = Retained
-thing-type.config.mqtt.string_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
-thing-type.config.mqtt.string_channel.stateTopic.label = MQTT State Topic
-thing-type.config.mqtt.string_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
-thing-type.config.mqtt.string_channel.transformationPattern.label = Incoming Value Transformations
-thing-type.config.mqtt.string_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
-thing-type.config.mqtt.string_channel.transformationPatternOut.label = Outgoing Value Transformation
-thing-type.config.mqtt.string_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
-thing-type.config.mqtt.switch_channel.commandTopic.label = MQTT Command Topic
-thing-type.config.mqtt.switch_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
-thing-type.config.mqtt.switch_channel.formatBeforePublish.label = Outgoing Value Format
-thing-type.config.mqtt.switch_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
-thing-type.config.mqtt.switch_channel.group.transformations.label = Transform Values
-thing-type.config.mqtt.switch_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
-thing-type.config.mqtt.switch_channel.off.label = Custom Off/Closed Value
-thing-type.config.mqtt.switch_channel.off.description = A number (like 0, -10) or a string (like "disabled") that is additionally recognised as off/closed state. You can use this parameter for a second keyword, next to OFF (CLOSED respectively on a Contact).
-thing-type.config.mqtt.switch_channel.on.label = Custom On/Open Value
-thing-type.config.mqtt.switch_channel.on.description = A number (like 1, 10) or a string (like "enabled") that is additionally recognised as on/open state. You can use this parameter for a second keyword, next to ON (OPEN respectively on a Contact).
-thing-type.config.mqtt.switch_channel.postCommand.label = Is Command
-thing-type.config.mqtt.switch_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
-thing-type.config.mqtt.switch_channel.qos.label = QoS
-thing-type.config.mqtt.switch_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
-thing-type.config.mqtt.switch_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
-thing-type.config.mqtt.switch_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
-thing-type.config.mqtt.switch_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
-thing-type.config.mqtt.switch_channel.retained.label = Retained
-thing-type.config.mqtt.switch_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
-thing-type.config.mqtt.switch_channel.stateTopic.label = MQTT State Topic
-thing-type.config.mqtt.switch_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
-thing-type.config.mqtt.switch_channel.transformationPattern.label = Incoming Value Transformations
-thing-type.config.mqtt.switch_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
-thing-type.config.mqtt.switch_channel.transformationPatternOut.label = Outgoing Value Transformation
-thing-type.config.mqtt.switch_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
-thing-type.config.mqtt.trigger_channel.group.transformations.label = Transform Values
-thing-type.config.mqtt.trigger_channel.group.transformations.description = These configuration parameters allow you to alter before a received value is used in the trigger.
-thing-type.config.mqtt.trigger_channel.stateTopic.label = MQTT Trigger Topic
-thing-type.config.mqtt.trigger_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the trigger
-thing-type.config.mqtt.trigger_channel.transformationPattern.label = Incoming Value Transformations
-thing-type.config.mqtt.trigger_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. This can be used to map the events sent by the device to common values for all devices using, e.g. the MAP transformation. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/i18n/mqtt_it.properties b/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/i18n/mqtt_it.properties
deleted file mode 100644
index 3761047bd1054..0000000000000
--- a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/i18n/mqtt_it.properties
+++ /dev/null
@@ -1,222 +0,0 @@
-# thing types
-
-thing-type.mqtt.topic.label = Thing Generica MQTT
-thing-type.mqtt.topic.description = E' richiesto un Broker già configurato. Aggiungi dinamicamente Channel di vari tipi a questa Thing. Collega diversi Topic MQTT ad ogni Channel.
-
-# thing types config
-
-thing-type.config.mqtt.topic.availabilityTopic.label = Topic Disponibilità
-thing-type.config.mqtt.topic.availabilityTopic.description = Topic del LWT del dispositivo
-thing-type.config.mqtt.topic.payloadAvailable.label = Payload Dispositivo Disponibile
-thing-type.config.mqtt.topic.payloadAvailable.description = Payload del topic 'Disponibilità', quando il dispositivo è disponibile. Predefinito\: 'ON'
-thing-type.config.mqtt.topic.payloadNotAvailable.label = Payload Dispositivo Non Disponibile
-thing-type.config.mqtt.topic.payloadNotAvailable.description = Payload del Topic "Disponibilità", quando il dispositivo *not* è disponibile. Predefinito\: 'OFF'
-thing-type.config.mqtt.topic.transformationPattern.label = Trasformazione Payload Disponibilità
-thing-type.config.mqtt.topic.transformationPattern.description = Applica le trasformazioni al payload di disponibilità in ingresso. Un esempio di trasformazione per il messaggio JSON {status\: "Online"} è "JSONPATH\:$.status". Si possono concatenare più trasformazioni separandole con il carattere di intersezione ∩.
-
-# channel types
-
-channel-type.mqtt.color.label = Valore Colore (HSB, RGB o CIE xyY)
-channel-type.mqtt.colorHSB.label = Valore Colore (Hue,Saturazione,Luminosità)
-channel-type.mqtt.colorRGB.label = Valore Colore (Rosso, Verde, Blu)
-channel-type.mqtt.contact.label = Contatto Aperto/Chiuso
-channel-type.mqtt.datetime.label = Valore Data/Ora
-channel-type.mqtt.datetime.description = Data e ora attuali
-channel-type.mqtt.dimmer.label = Dimmer
-channel-type.mqtt.image.label = Immagine
-channel-type.mqtt.image.description = Un'immagine da visualizzare. Invia un binario bmp, jpg, png o qualsiasi altro formato supportato a questo Channel.
-channel-type.mqtt.location.label = Posizione
-channel-type.mqtt.location.description = Coordinate GPS come Latitudine,Longitudine,Altitudine
-channel-type.mqtt.number.label = Valore Numero
-channel-type.mqtt.rollershutter.label = Tapparella
-channel-type.mqtt.string.label = Valore Testo
-channel-type.mqtt.switch.label = Interruttore On/Off
-channel-type.mqtt.trigger.label = Trigger
-
-# channel types config
-
-thing-type.config.mqtt.color_channel.colorMode.label = Modalità Colore
-thing-type.config.mqtt.color_channel.colorMode.description = Definisce il formato di rappresentazione del colore del payload. "HSB" per impostazione predefinita.
-thing-type.config.mqtt.color_channel.colorMode.option.HSB = HSB (tonalità, saturazione, luminosità)
-thing-type.config.mqtt.color_channel.colorMode.option.RGB = RGB (rosso, verde, blu)
-thing-type.config.mqtt.color_channel.colorMode.option.XYY = CIE xyY (x, y, luminosità)
-thing-type.config.mqtt.color_channel.commandTopic.label = Topic Comando MQTT
-thing-type.config.mqtt.color_channel.commandTopic.description = Un argomento MQTT a cui questa Thing invierà un comando. Se non impostato, questo sarà in sola lettura.
-thing-type.config.mqtt.color_channel.formatBeforePublish.label = Formato Valore In Uscita
-thing-type.config.mqtt.color_channel.formatBeforePublish.description = Formatta un valore prima che sia pubblicato nel broker MQTT. Il valore predefinito è quello di passare semplicemente lo stato del Channel/dell'Item. Se si desidera applicare un prefisso, come "MYCOLOR,", configurarlo come "MYCOLOR,%s". Se si desidera regolare la precisione di un numero a 4 decimali, configurarlo come "%.4f".
-thing-type.config.mqtt.color_channel.group.transformations.label = Valori Trasformazione
-thing-type.config.mqtt.color_channel.group.transformations.description = Questi parametri di configurazione consentono di modificare un valore prima che venga pubblicato al MQTT o prima che un valore ricevuto venga assegnato a un Item.
-thing-type.config.mqtt.color_channel.off.label = Valore Off/Chiuso
-thing-type.config.mqtt.color_channel.off.description = Un numero (come 0, -10) o una stringa (come "disabled") che è riconosciuto come stato off/chiuso. È possibile utilizzare questo parametro per una seconda parola chiave, accanto a OFF (CLOSED nel caso di un contatto).
-thing-type.config.mqtt.color_channel.on.label = Valore On/Aperto
-thing-type.config.mqtt.color_channel.on.description = Un numero (come 1, 10) o una stringa (come "enabled") che è riconosciuto come stato on/aperto. È possibile utilizzare questo parametro per una seconda parola chiave, accanto a ON (OPEN nel caso di un contatto).
-thing-type.config.mqtt.color_channel.onBrightness.label = Luminosità Iniziale
-thing-type.config.mqtt.color_channel.onBrightness.description = Se si collega questo Channel a un Item Switch e si accende, si mantengono colore e saturazione precedenti, ma la percentuale luminosità sarà impostata a quella iniziale configurata.
-thing-type.config.mqtt.color_channel.postCommand.label = È Command
-thing-type.config.mqtt.color_channel.postCommand.description = Abilitare questa opzione se il valore MQTT ricevuto non dovrebbe solo aggiornare lo stato degli Item collegati, ma anche comandarli.
-thing-type.config.mqtt.color_channel.qos.label = QoS
-thing-type.config.mqtt.color_channel.qos.description = QoS MQTT di questo Channel (0, 1, 2). Predefinito è QoS della connessione broker.
-thing-type.config.mqtt.color_channel.qos.option.0 = Al massimo una volta (il miglior tentativo di consegna "invia e dimentica")
-thing-type.config.mqtt.color_channel.qos.option.1 = Almeno una volta (garantito che un messaggio sarà consegnato almeno una volta)
-thing-type.config.mqtt.color_channel.qos.option.2 = Esattamente una volta (garantisce che ogni messaggio venga ricevuto una sola volta dalla controparte)
-thing-type.config.mqtt.color_channel.retained.label = Conservato
-thing-type.config.mqtt.color_channel.retained.description = Il valore sarà pubblicato nel topic del comando come messaggio conservato. Un valore conservato rimane nel broker e sarà visto dai client MQTT che si iscriveranno in un momento successivo.
-thing-type.config.mqtt.color_channel.stateTopic.label = Stato Topic MQTT
-thing-type.config.mqtt.color_channel.stateTopic.description = Un Topic MQTT a cui questa Thing si iscriverà per ricevere lo stato. Questo può essere lasciato vuoto, il Channel sarà di tipo senza stato (state-less) ma solo comando (command-only).
-thing-type.config.mqtt.color_channel.transformationPattern.label = Trasformazioni Valore In Entrata
-thing-type.config.mqtt.color_channel.transformationPattern.description = Applica le trasformazioni ad un valore del Topic MQTT in ingresso. Un esempio di trasformazione per un JSON ricevuto potrebbe essere "JSONPATH\:$.device.status.temperature" per un json {device\: {status\: { temperature\: 23.2 }}}. È possibile concatenare trasformazioni separandole con il carattere di intersezione ∩.
-thing-type.config.mqtt.color_channel.transformationPatternOut.label = Trasformazione Valore In Uscita
-thing-type.config.mqtt.color_channel.transformationPatternOut.description = Applica una trasformazione prima di pubblicare un valore al Topic MQTT. Le trasformazioni estraggono una parte del valore, ma potrebbero essere utili altre trasformazioni come ad esempio la MAP.
-thing-type.config.mqtt.dimmer_channel.commandTopic.label = Topic Command MQTT
-thing-type.config.mqtt.dimmer_channel.commandTopic.description = Un Topic MQTT a cui questa Thing invierà un comando. Se non impostato, questo sarà un Topic di sola lettura.
-thing-type.config.mqtt.dimmer_channel.formatBeforePublish.label = Formato Valore In Uscita
-thing-type.config.mqtt.dimmer_channel.formatBeforePublish.description = Formatta un valore prima che sia pubblicato al broker MQTT. Il valore predefinito è quello di passare semplicemente lo stato del Channel/Item. Se si desidera applicare un prefisso, ad esempio "MYCOLOR,", utilizzare "MYCOLOR,%s". Se si desidera inviare un numero con 4 decimali, impostare come "%.4f".
-thing-type.config.mqtt.dimmer_channel.group.transformations.label = Trasforma Valore
-thing-type.config.mqtt.dimmer_channel.group.transformations.description = Questi parametri di configurazione consentono di modificare un valore prima che venga pubblicato al MQTT o prima che un valore ricevuto venga assegnato a un Item.
-thing-type.config.mqtt.dimmer_channel.max.label = Massimo Assoluto
-thing-type.config.mqtt.dimmer_channel.max.description = Questa configurazione rappresenta il massimo dell'intervallo consentito. Per un Channel percentuale equivale al cento per cento.
-thing-type.config.mqtt.dimmer_channel.min.label = Minimo Assoluto
-thing-type.config.mqtt.dimmer_channel.min.description = Questa configurazione rappresenta il minimo dell'intervallo consentito. Per un Channel percentuale è pari a zero per cento.
-thing-type.config.mqtt.dimmer_channel.off.label = Comando Personalizzato OFF
-thing-type.config.mqtt.dimmer_channel.off.description = Una stringa (come "OFF") che viene inviata a MQTT quando viene ricevuto un comando OFF, invece di un esplicito 0%.
-thing-type.config.mqtt.dimmer_channel.on.label = Comando ON Personalizzato
-thing-type.config.mqtt.dimmer_channel.on.description = Una stringa (come "ON") che viene inviata a MQTT quando viene ricevuto un comando ON, invece di un esplicito 100%.
-thing-type.config.mqtt.dimmer_channel.postCommand.label = È Command
-thing-type.config.mqtt.dimmer_channel.postCommand.description = Abilitare questa opzione se il valore MQTT ricevuto non deve solo aggiornare lo stato degli Item collegati, ma comandarli.
-thing-type.config.mqtt.dimmer_channel.qos.label = QoS
-thing-type.config.mqtt.dimmer_channel.qos.description = QoS MQTT di questo Channel (0, 1, 2). Predefinito è QoS della connessione broker.
-thing-type.config.mqtt.dimmer_channel.qos.option.0 = Al massimo una volta (il miglior sforzo di consegna "invia e dimentica")
-thing-type.config.mqtt.dimmer_channel.qos.option.1 = Almeno una volta (garanzia che un messaggio sarà consegnato almeno una volta)
-thing-type.config.mqtt.dimmer_channel.qos.option.2 = Esattamente una volta (garantisce che ogni messaggio venga ricevuto una sola volta dalla controparte)
-thing-type.config.mqtt.dimmer_channel.retained.label = Conservato
-thing-type.config.mqtt.dimmer_channel.retained.description = Il valore sarà pubblicato nel topic del comando come messaggio conservato. Un valore conservato rimane nel broker e sarà visto dai client MQTT che si iscriveranno in un momento successivo.
-thing-type.config.mqtt.dimmer_channel.stateTopic.label = Stato Topic MQTT
-thing-type.config.mqtt.dimmer_channel.stateTopic.description = Un Topic MQTT a cui questa Thing si iscriverà per ricevere lo stato. Questo può essere lasciato vuoto, il Channel sarà di tipo senza stato (state-less) ma solo comando (command-only).
-thing-type.config.mqtt.dimmer_channel.step.label = Valore delta
-thing-type.config.mqtt.dimmer_channel.step.description = Un canale numero/dimmer può ricevere comandi INCREASE/DECREASE e calcolare il numero di destinazione aggiungendo o sottraendo questo valore delta.
-thing-type.config.mqtt.dimmer_channel.transformationPattern.label = Trasformazioni Valore In Entrata
-thing-type.config.mqtt.dimmer_channel.transformationPattern.description = Applica le trasformazioni ad un valore del Topic MQTT in ingresso. Un esempio di trasformazione per un JSON ricevuto potrebbe essere "JSONPATH\:$.device.status.temperature" per un json {device\: {status\: { temperature\: 23.2 }}}. È possibile concatenare trasformazioni separandole con il carattere di intersezione ∩.
-thing-type.config.mqtt.dimmer_channel.transformationPatternOut.label = Trasformazione Valore In Uscita
-thing-type.config.mqtt.dimmer_channel.transformationPatternOut.description = Applica una trasformazione prima di pubblicare un valore al Topic MQTT. Le trasformazioni estraggono una parte del valore, ma potrebbero essere utili altre trasformazioni come ad esempio la MAP.
-thing-type.config.mqtt.number_channel.commandTopic.label = Topic Command MQTT
-thing-type.config.mqtt.number_channel.commandTopic.description = Un Topic MQTT a cui questa Thing invierà un comando. Se non impostato, questo sarà un Topic di sola lettura.
-thing-type.config.mqtt.number_channel.formatBeforePublish.label = Formato Valore In Uscita
-thing-type.config.mqtt.number_channel.formatBeforePublish.description = Formatta un valore prima che sia pubblicato al broker MQTT. Il valore predefinito è quello di passare semplicemente lo stato del Channel/Item. Se si desidera applicare un prefisso, ad esempio "MYCOLOR,", utilizzare "MYCOLOR,%s". Se si desidera inviare un numero con 4 decimali, impostare come "%.4f".
-thing-type.config.mqtt.number_channel.group.transformations.label = Valori Trasformazione
-thing-type.config.mqtt.number_channel.group.transformations.description = Questi parametri di configurazione consentono di modificare un valore prima che venga pubblicato al MQTT o prima che un valore ricevuto venga assegnato a un Item.
-thing-type.config.mqtt.number_channel.max.label = Massimo Assoluto
-thing-type.config.mqtt.number_channel.max.description = Questa configurazione rappresenta il massimo dell'intervallo consentito. Per un Channel percentuale equivale al cento per cento.
-thing-type.config.mqtt.number_channel.min.label = Minimo Assoluto
-thing-type.config.mqtt.number_channel.min.description = Questa configurazione rappresenta il minimo dell'intervallo consentito. Per un Channel percentuale è pari a zero per cento.
-thing-type.config.mqtt.number_channel.postCommand.label = E' un Comando
-thing-type.config.mqtt.number_channel.postCommand.description = Abilitare questa opzione se il valore MQTT ricevuto non dovrebbe solo aggiornare lo stato degli elementi collegati, ma anche comandarli. Si noti che se il valore è NaN (interpretato come UNDEF), si può solo aggiornare; non sono possibili i comandi.
-thing-type.config.mqtt.number_channel.qos.label = QoS
-thing-type.config.mqtt.number_channel.qos.description = QoS MQTT di questo Channel (0, 1, 2). Predefinito è QoS della connessione broker.
-thing-type.config.mqtt.number_channel.qos.option.0 = Al massimo una volta (il miglior sforzo di consegna "invia e dimentica")
-thing-type.config.mqtt.number_channel.qos.option.1 = Almeno una volta (garanzia che un messaggio sarà consegnato almeno una volta)
-thing-type.config.mqtt.number_channel.qos.option.2 = Esattamente una volta (garantisce che ogni messaggio venga ricevuto una sola volta dalla controparte)
-thing-type.config.mqtt.number_channel.retained.label = Conservato
-thing-type.config.mqtt.number_channel.retained.description = Il valore sarà pubblicato nel topic del comando come messaggio conservato. Un valore conservato rimane nel broker e sarà visto dai client MQTT che si iscriveranno in un momento successivo.
-thing-type.config.mqtt.number_channel.stateTopic.label = Stato Topic MQTT
-thing-type.config.mqtt.number_channel.stateTopic.description = Un Topic MQTT a cui questa Thing si iscriverà per ricevere lo stato. Questo può essere lasciato vuoto, il Channel sarà di tipo senza stato (state-less) ma solo comando (command-only).
-thing-type.config.mqtt.number_channel.step.label = Valore delta
-thing-type.config.mqtt.number_channel.step.description = Un Channel numero/dimmer può ricevere comandi INCREASE/DECREASE e calcolare il numero di destinazione aggiungendo o sottraendo questo valore delta.
-thing-type.config.mqtt.number_channel.transformationPattern.label = Trasformazioni Valore In Entrata
-thing-type.config.mqtt.number_channel.transformationPattern.description = Applica le trasformazioni ad un valore del Topic MQTT in ingresso. Un esempio di trasformazione per un JSON ricevuto potrebbe essere "JSONPATH\:$.device.status.temperature" per un json {device\: {status\: { temperature\: 23.2 }}}. È possibile concatenare trasformazioni separandole con il carattere di intersezione ∩.
-thing-type.config.mqtt.number_channel.transformationPatternOut.label = Trasformazione Valore In Uscita
-thing-type.config.mqtt.number_channel.transformationPatternOut.description = Applica una trasformazione prima di pubblicare un valore al Topic MQTT. Le trasformazioni estraggono una parte del valore, ma potrebbero essere utili altre trasformazioni come ad esempio la MAP.
-thing-type.config.mqtt.number_channel.unit.label = Unità di misura
-thing-type.config.mqtt.number_channel.unit.description = Unità di misura (facoltativa). L'unità viene utilizzata per rappresentare il valore nella GUI e per convertire i valori in entrata (come da '°F' a '°C'). Esempi\: "°C", "°F"
-thing-type.config.mqtt.rollershutter_channel.commandTopic.label = Topic Command MQTT
-thing-type.config.mqtt.rollershutter_channel.commandTopic.description = Un argomento MQTT a cui questa Thing invierà un comando. Se non impostato, questo sarà una tapparella di sola lettura.
-thing-type.config.mqtt.rollershutter_channel.formatBeforePublish.label = Formato Valore In Uscita
-thing-type.config.mqtt.rollershutter_channel.formatBeforePublish.description = Formatta un valore prima che sia pubblicato al broker MQTT. Il valore predefinito è quello di passare semplicemente lo stato del Channel/Item. Se si desidera applicare un prefisso, ad esempio "MYCOLOR,", utilizzare "MYCOLOR,%s". Se si desidera inviare un numero con 4 decimali, impostare come "%.4f".
-thing-type.config.mqtt.rollershutter_channel.group.transformations.label = Valori Trasformazione
-thing-type.config.mqtt.rollershutter_channel.group.transformations.description = Questi parametri di configurazione consentono di modificare un valore prima che venga pubblicato al MQTT o prima che un valore ricevuto venga assegnato a un Item.
-thing-type.config.mqtt.rollershutter_channel.invert.label = Invertito
-thing-type.config.mqtt.rollershutter_channel.invert.description = Abilita se il tuo dispositivo usa 100 come UP e 0 come DOWN, invece della normale convenzione openHAB di 0 come UP e 100 come DOWN.
-thing-type.config.mqtt.rollershutter_channel.off.label = Valore Di Comando per Abbassare
-thing-type.config.mqtt.rollershutter_channel.off.description = Una stringa (come "CLOSE") che viene inviata quando si comanda la chiusura della tapparella. Se non viene fornita, verrà inviato invece 100 (o 0, se invertito).
-thing-type.config.mqtt.rollershutter_channel.offState.label = Valore Stato Giù
-thing-type.config.mqtt.rollershutter_channel.offState.description = Una stringa (come "CLOSE") che è riconosciuta come stato DOWN. È possibile utilizzare questo parametro per una seconda parola chiave, accanto a DOWN.
-thing-type.config.mqtt.rollershutter_channel.on.label = Valore Di Comando per Alzare
-thing-type.config.mqtt.rollershutter_channel.on.description = Una stringa (come "OPEN") che viene inviata quando si comanda la tapparella per aprirla. Se non è fornito, verrà inviato 0 (o 100, se invertito).
-thing-type.config.mqtt.rollershutter_channel.onState.label = Valore Stato Su
-thing-type.config.mqtt.rollershutter_channel.onState.description = Una stringa (come "OPENED") che è riconosciuta come Stato UP. È possibile utilizzare questo parametro per una seconda parola chiave, accanto a UP. Predefiniti al valore di comando per alzata.
-thing-type.config.mqtt.rollershutter_channel.postCommand.label = E' un Comando
-thing-type.config.mqtt.rollershutter_channel.postCommand.description = Abilitare questa opzione se il valore MQTT ricevuto non dovrebbe solo aggiornare lo stato degli elementi collegati, ma anche comandarli.
-thing-type.config.mqtt.rollershutter_channel.qos.label = QoS
-thing-type.config.mqtt.rollershutter_channel.qos.description = QoS MQTT di questo canale (0, 1, 2). Predefinito è QoS della connessione broker.
-thing-type.config.mqtt.rollershutter_channel.qos.option.0 = Al massimo una volta (il miglior sforzo di consegna "invia e dimentica")
-thing-type.config.mqtt.rollershutter_channel.qos.option.1 = Almeno una volta (garanzia che un messaggio sarà consegnato almeno una volta)
-thing-type.config.mqtt.rollershutter_channel.qos.option.2 = Esattamente una volta (garantisce che ogni messaggio venga ricevuto una sola volta dalla controparte)
-thing-type.config.mqtt.rollershutter_channel.retained.label = Conservato
-thing-type.config.mqtt.rollershutter_channel.retained.description = Il valore sarà pubblicato nel topic del comando come messaggio conservato. Un valore conservato rimane nel broker e sarà visto dai client MQTT che si iscriveranno in un momento successivo.
-thing-type.config.mqtt.rollershutter_channel.stateTopic.label = Stato Topic MQTT
-thing-type.config.mqtt.rollershutter_channel.stateTopic.description = Un Topic MQTT a cui questa Thing si iscriverà per ricevere lo stato. Questo può essere lasciato vuoto, il Channel sarà di tipo senza stato (state-less) ma solo comando (command-only).
-thing-type.config.mqtt.rollershutter_channel.stop.label = Comando Stop
-thing-type.config.mqtt.rollershutter_channel.stop.description = Una stringa (come "STOP") che viene inviata quando si comanda alla tapparella per fermarsi.
-thing-type.config.mqtt.rollershutter_channel.stopCommandTopic.label = Argomento MQTT Comando Stop
-thing-type.config.mqtt.rollershutter_channel.stopCommandTopic.description = Un argomento MQTT a cui questa thing invierà un comando STOP. Se non impostato, invierà comandi STOP al comando principale.
-thing-type.config.mqtt.rollershutter_channel.transformExtentsToString.label = Trasforma i comandi Estesi in Stringa
-thing-type.config.mqtt.rollershutter_channel.transformExtentsToString.description = Se un comando è 0 o 100, invialo invece come comandi UP o DOWN. Utile se il dispositivo non supporta andare in una posizione specifica - solo apertura o chiusura, ma hai front-end (come HomeKit) o regole che invieranno solo comandi percentuali invece di UP/DOWN.
-thing-type.config.mqtt.rollershutter_channel.transformationPattern.label = Trasformazioni Valore In Entrata
-thing-type.config.mqtt.rollershutter_channel.transformationPattern.description = Applica le trasformazioni ad un valore del Topic MQTT in ingresso. Un esempio di trasformazione per un JSON ricevuto potrebbe essere "JSONPATH\:$.device.status.temperature" per un json {device\: {status\: { temperature\: 23.2 }}}. È possibile concatenare trasformazioni separandole con il carattere di intersezione ∩.
-thing-type.config.mqtt.rollershutter_channel.transformationPatternOut.label = Trasformazione Valore In Uscita
-thing-type.config.mqtt.rollershutter_channel.transformationPatternOut.description = Applica una trasformazione prima di pubblicare un valore al Topic MQTT. Le trasformazioni estraggono una parte del valore, ma potrebbero essere utili altre trasformazioni come ad esempio la MAP.
-thing-type.config.mqtt.string_channel.allowedStates.label = Stati Consentiti
-thing-type.config.mqtt.string_channel.allowedStates.description = Se il Topic MQTT è limitato a un insieme di uno o più comandi specifici o stati specifici, definisci questi stati qui. Separare più stati con virgole. Un esempio per uno stato lampadina impostato\: ON,DIMMED,OFF
-thing-type.config.mqtt.string_channel.commandTopic.label = Topic Comando MQTT
-thing-type.config.mqtt.string_channel.commandTopic.description = Un Topic MQTT a cui questa Thing invierà un comando. Se non impostato, questo sarà un Topic di sola lettura.
-thing-type.config.mqtt.string_channel.formatBeforePublish.label = Formato Valore In Uscita
-thing-type.config.mqtt.string_channel.formatBeforePublish.description = Formatta un valore prima che sia pubblicato al broker MQTT. Il valore predefinito è quello di passare semplicemente lo stato del Channel/Item. Se si desidera applicare un prefisso, ad esempio "MYCOLOR,", utilizzare "MYCOLOR,%s". Se si desidera inviare un numero con 4 decimali, impostare come "%.4f".
-thing-type.config.mqtt.string_channel.group.transformations.label = Valori Trasformazione
-thing-type.config.mqtt.string_channel.group.transformations.description = Questi parametri di configurazione consentono di modificare un valore prima che venga pubblicato al MQTT o prima che un valore ricevuto venga assegnato a un Item.
-thing-type.config.mqtt.string_channel.nullValue.label = Valore NULLO
-thing-type.config.mqtt.string_channel.nullValue.description = Se il valore MQTT ricevuto corrisponde a questo, sarà trattato come NULLO.
-thing-type.config.mqtt.string_channel.postCommand.label = E' un Comando
-thing-type.config.mqtt.string_channel.postCommand.description = Abilitare questa opzione se il valore MQTT ricevuto non dovrebbe solo aggiornare lo stato degli elementi collegati, ma anche comandarli.
-thing-type.config.mqtt.string_channel.qos.label = QoS
-thing-type.config.mqtt.string_channel.qos.description = QoS MQTT di questo Channel (0, 1, 2). Predefinito è QoS della connessione broker.
-thing-type.config.mqtt.string_channel.qos.option.0 = Al massimo una volta (il miglior sforzo di consegna "invia e dimentica")
-thing-type.config.mqtt.string_channel.qos.option.1 = Almeno una volta (garanzia che un messaggio sarà consegnato almeno una volta)
-thing-type.config.mqtt.string_channel.qos.option.2 = Esattamente una volta (garantisce che ogni messaggio venga ricevuto una sola volta dalla controparte)
-thing-type.config.mqtt.string_channel.retained.label = Conservato
-thing-type.config.mqtt.string_channel.retained.description = Il valore sarà pubblicato nel topic del comando come messaggio conservato. Un valore conservato rimane nel broker e sarà visto dai client MQTT che si iscriveranno in un momento successivo.
-thing-type.config.mqtt.string_channel.stateTopic.label = Stato Topic MQTT
-thing-type.config.mqtt.string_channel.stateTopic.description = Un Topic MQTT a cui questa Thing si iscriverà per ricevere lo stato. Questo può essere lasciato vuoto, il Channel sarà di tipo senza stato (state-less) ma solo comando (command-only).
-thing-type.config.mqtt.string_channel.transformationPattern.label = Trasformazioni Valore In Entrata
-thing-type.config.mqtt.string_channel.transformationPattern.description = Applica le trasformazioni ad un valore del Topic MQTT in ingresso. Un esempio di trasformazione per un JSON ricevuto potrebbe essere "JSONPATH\:$.device.status.temperature" per un json {device\: {status\: { temperature\: 23.2 }}}. È possibile concatenare trasformazioni separandole con il carattere di intersezione ∩.
-thing-type.config.mqtt.string_channel.transformationPatternOut.label = Trasformazione Valore In Uscita
-thing-type.config.mqtt.string_channel.transformationPatternOut.description = Applica una trasformazione prima di pubblicare un valore al Topic MQTT. Le trasformazioni estraggono una parte del valore, ma potrebbero essere utili altre trasformazioni come ad esempio la MAP.
-thing-type.config.mqtt.switch_channel.commandTopic.label = Topic Command MQTT
-thing-type.config.mqtt.switch_channel.commandTopic.description = Un Topic MQTT a cui questa Thing invierà un comando. Se non impostato, questo sarà un Topic di sola lettura.
-thing-type.config.mqtt.switch_channel.formatBeforePublish.label = Formato Valore In Uscita
-thing-type.config.mqtt.switch_channel.formatBeforePublish.description = Formatta un valore prima che sia pubblicato al broker MQTT. Il valore predefinito è quello di passare semplicemente lo stato del Channel/Item. Se si desidera applicare un prefisso, ad esempio "MYCOLOR,", utilizzare "MYCOLOR,%s". Se si desidera inviare un numero con 4 decimali, impostare come "%.4f".
-thing-type.config.mqtt.switch_channel.group.transformations.label = Trasforma Valori
-thing-type.config.mqtt.switch_channel.group.transformations.description = Questi parametri di configurazione consentono di modificare un valore prima che venga pubblicato al MQTT o prima che un valore ricevuto venga assegnato a un Item.
-thing-type.config.mqtt.switch_channel.off.label = Valore Off/Chiuso Personalizzato
-thing-type.config.mqtt.switch_channel.off.description = Un numero (come 0, -10) o una stringa (come "disabled") che è riconosciuto come stato off/chiuso. È possibile utilizzare questo parametro per una seconda parola chiave, accanto a OFF (CLOSED nel caso di un contatto).
-thing-type.config.mqtt.switch_channel.on.label = Valore On/Aperto Personalizzato
-thing-type.config.mqtt.switch_channel.on.description = Un numero (come 1, 10) o una stringa (come "enabled") che è riconosciuto come stato on/aperto. È possibile utilizzare questo parametro per una seconda parola chiave, accanto a ON (OPEN nel caso di un contatto).
-thing-type.config.mqtt.switch_channel.postCommand.label = E' un Comando
-thing-type.config.mqtt.switch_channel.postCommand.description = Abilitare questa opzione se il valore MQTT ricevuto non dovrebbe solo aggiornare lo stato degli Item collegati, ma anche comandarli.
-thing-type.config.mqtt.switch_channel.qos.label = QoS
-thing-type.config.mqtt.switch_channel.qos.description = QoS MQTT di questo Channel (0, 1, 2). Predefinito è QoS della connessione broker.
-thing-type.config.mqtt.switch_channel.qos.option.0 = Al massimo una volta (il miglior sforzo di consegna "invia e dimentica")
-thing-type.config.mqtt.switch_channel.qos.option.1 = Almeno una volta (garanzia che un messaggio sarà consegnato almeno una volta)
-thing-type.config.mqtt.switch_channel.qos.option.2 = Esattamente una volta (garantisce che ogni messaggio venga ricevuto una sola volta dalla controparte)
-thing-type.config.mqtt.switch_channel.retained.label = Conservato
-thing-type.config.mqtt.switch_channel.retained.description = Il valore sarà pubblicato nel topic del comando come messaggio conservato. Un valore conservato rimane nel broker e sarà visto dai client MQTT che si iscriveranno in un momento successivo.
-thing-type.config.mqtt.switch_channel.stateTopic.label = Stato Topic MQTT
-thing-type.config.mqtt.switch_channel.stateTopic.description = Un Topic MQTT a cui questa Thing si iscriverà per ricevere lo stato. Questo può essere lasciato vuoto, il Channel sarà di tipo senza stato (state-less) ma solo comando (command-only).
-thing-type.config.mqtt.switch_channel.transformationPattern.label = Trasformazioni Valore In Entrata
-thing-type.config.mqtt.switch_channel.transformationPattern.description = Applica le trasformazioni ad un valore del Topic MQTT in ingresso. Un esempio di trasformazione per un JSON ricevuto potrebbe essere "JSONPATH\:$.device.status.temperature" per un json {device\: {status\: { temperature\: 23.2 }}}. È possibile concatenare trasformazioni separandole con il carattere di intersezione ∩.
-thing-type.config.mqtt.switch_channel.transformationPatternOut.label = Trasformazione Valore In Uscita
-thing-type.config.mqtt.switch_channel.transformationPatternOut.description = Applica una trasformazione prima di pubblicare un valore al Topic MQTT. Le trasformazioni estraggono una parte del valore, ma potrebbero essere utili altre trasformazioni come ad esempio la MAP.
-thing-type.config.mqtt.trigger_channel.group.transformations.label = Trasforma Valori
-thing-type.config.mqtt.trigger_channel.group.transformations.description = Questi parametri di configurazione consentono di modificare prima che un valore ricevuto venga utilizzato nel trigger.
-thing-type.config.mqtt.trigger_channel.stateTopic.label = Topic Trigger MQTT
-thing-type.config.mqtt.trigger_channel.stateTopic.description = Un Topic MQTT a cui questa Thing sarà iscritta, per ricevere il trigger
-thing-type.config.mqtt.trigger_channel.transformationPattern.label = Trasformazioni Valore In Entrata
-thing-type.config.mqtt.trigger_channel.transformationPattern.description = Applica le trasformazioni ad un valore di topic MQTT in arrivo. Questo può essere usato per mappare gli eventi inviati dal dispositivo a valori comuni per tutti i dispositivi utilizzati, ad esempio la trasformazione MAP. È possibile concatenare le trasformazioni separando con il carattere di intersezione ∩.
diff --git a/bundles/org.openhab.binding.mqtt.generic/xtend_examples.md b/bundles/org.openhab.binding.mqtt.generic/xtend_examples.md
deleted file mode 100644
index f28e8ea045633..0000000000000
--- a/bundles/org.openhab.binding.mqtt.generic/xtend_examples.md
+++ /dev/null
@@ -1,192 +0,0 @@
-# Xtend Examples
-
-## Examples
-
-Have a look at the following textual examples.
-
-### A broker Thing with a Generic MQTT Thing and a few channels
-
-demo1.things:
-
-```java
-Bridge mqtt:broker:myUnsecureBroker [ host="192.168.0.42", secure=false ]
-{
- Thing topic mything {
- Channels:
- Type switch : lamp "Kitchen Lamp" [ stateTopic="lamp/enabled", commandTopic="lamp/enabled/set" ]
- Type switch : fancylamp "Fancy Lamp" [ stateTopic="fancy/lamp/state", commandTopic="fancy/lamp/command", on="i-am-on", off="i-am-off" ]
- Type string : alarmpanel "Alarm system" [ stateTopic="alarm/panel/state", commandTopic="alarm/panel/set", allowedStates="ARMED_HOME,ARMED_AWAY,UNARMED" ]
- Type color : lampcolor "Kitchen Lamp color" [ stateTopic="lamp/color", commandTopic="lamp/color/set", rgb=true ]
- Type dimmer : blind "Blind" [ stateTopic="blind/state", commandTopic="blind/set", min=0, max=5, step=1 ]
- }
-}
-```
-
-demo2.things:
-
-```java
-Bridge mqtt:broker:WorkBroker "Work Broker" [ host="localhost", port="1883", secure=false, username="openhabian", password="ohmqtt", clientID="WORKOPENHAB24" ]
-
-Thing mqtt:topic:WorkBroker:WorkSonoff "Work Sonoff" (mqtt:broker:WorkBroker) @ "Home" {
- Channels:
- Type switch : WorkLight "Work Light" [ stateTopic="stat/worklight/POWER", commandTopic="cmnd/worklight/POWER" ]
- Type switch : WorkLightTele "Work Tele" [ stateTopic="tele/worklight/STATE", transformationPattern="JSONPATH:$.POWER" ]
-}
-```
-
-tasmota.things: Example of a Tasmota Device with Availablity-Topic state and standard Online/Offline message-payload
-
-```java
-Bridge mqtt:broker:mybroker [ host="192.168.0.42", secure=false ]
-{
- Thing mqtt:topic:SP111 "SP111" [availabilityTopic="tele/tasmota/LWT", payloadAvailable="Online", payloadNotAvailable="Offline"]{
- Channels:
- Type switch : power "Power" [ stateTopic="tele/tasmota/STATE", commandTopic="cmnd/tasmota/POWER", transformationPattern="JSONPATH:$.POWER", on="ON", off="OFF" ]
- Type number : powerload "Power load" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"]
- Type number : voltage "Line voltage" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
- Type number : current "Line current" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
- Type number : total "Total energy today" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"]
- Type number : totalyest "Total energy yesterday" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]
- Type number : rssi "WiFi Signal Strength" [ stateTopic="tele/tasmota/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
- }
-}
-```
-
-When using .things and .items files for configuration, items and channels follow the format of:
-
-```java
- "" { channel="mqtt:topic:::" }
-```
-
-demo1.items:
-
-```java
-Switch Kitchen_Light "Kitchen Light" { channel="mqtt:topic:myUnsecureBroker:mything:lamp" }
-Rollershutter shutter "Blind" { channel="mqtt:topic:myUnsecureBroker:mything:blind" }
-```
-
-demo2.items:
-
-```java
-Switch SW_WorkLight "Work Light Switch" { channel="mqtt:topic:WorkBroker:WorkSonoff:WorkLight", channel="mqtt:topic:WorkBroker:WorkSonoff:WorkLightTele" }
-```
-
-### Publish an MQTT value on startup
-
-An example "demo.rules" rule to publish to `system/started` with the value `true` on every start:
-
-```java
-rule "Send startup message"
-when
- System started
-then
- val actions = getActions("mqtt","mqtt:broker:myUnsecureBroker")
- actions.publishMQTT("system/started","true")
-end
-```
-
-### Synchronize two instances
-
-To synchronize item items from a SOURCE openHAB instance to a DESTINATION instance, do the following:
-
-Define a broker and a trigger channel for your DESTINATION openHAB installation (`thing` file):
-
-```java
-Bridge mqtt:broker:myUnsecureBroker [ host="192.168.0.42", secure=false ]
-{
- Channels:
- Type publishTrigger : myTriggerChannel "Receive everything" [ stateTopic="allItems/#", separator="#" ]
-}
-```
-
-The trigger channel will trigger for each received message on the MQTT topic "allItems/".
-Now push those changes to your items in a `rules` file:
-
-```java
-rule "Receive all"
-when
- Channel "mqtt:broker:myUnsecureBroker:myTriggerChannel" triggered
-then
- //The receivedEvent String contains unneeded elements like the mqtt topic, we only need everything after the "/" as this is were item name and state are
- val parts1 = receivedEvent.toString.split("/").get(1)
- val parts2 = parts1.split("#")
- sendCommand(parts2.get(0), parts2.get(1))
-end
-```
-
-On your SOURCE openHAB installation, you need to define a group `myGroupOfItems` and add all items
-to it that you want to synchronize. Then add this rule to a `rule` file:
-
-```java
-rule "Publish all"
-when
- Member of myGroupOfItems changed
-then
- val actions = getActions("mqtt","mqtt:broker:myUnsecureBroker")
- actions.publishMQTT("allItems/"+triggeringItem.name,triggeringItem.state.toString)
-end
-```
-
-## Converting an MQTT1 installation
-
-The conversion is straight forward, but need to be done for each item.
-You do not need to convert everything in one go. MQTT1 and MQTT2 can coexist.
-
-> For mqtt1 make sure you have enabled the Legacy 1.x repository and installed "mqtt1".
-
-### 1 Command / 1 State topic
-
-Assume you have this item:
-
-```java
-Switch ExampleItem "Heatpump Power" { mqtt=">[mosquitto:heatpump/set:command:*:DEFAULT)],<[mosquitto:heatpump:JSONPATH($.power)]" }
-```
-
-This converts to an entry in your *.things file with a **Broker Thing** and a **Generic MQTT Thing** that uses the bridge:
-
-```java
-Bridge mqtt:broker:myUnsecureBroker [ host="192.168.0.42", secure=false ]
-{
- Thing topic mything "My Thing" {
- Channels:
- Type switch : heatpumpChannel "Heatpump Power" [ stateTopic="heatpump", commandTopic="heatpump/set", transformationPattern="JSONPATH:$.power" ]
- }
-}
-```
-
-Add as many channels as you have items and add the _stateTopic_ and _commandTopic_ accordingly.
-
-Your items change to:
-
-```java
-Switch ExampleItem "Heatpump Power" { channel="mqtt:topic:myUnsecureBroker:mything:heatpumpChannel" }
-```
-
-### 1 Command / 2 State topics
-
-If you receive updates from two different topics, you need to create multiple channels now, 1 for each MQTT receive topic.
-
-```java
-Switch ExampleItem "Heatpump Power" { mqtt=">[mosquitto:heatpump/set:command:*:DEFAULT)],<[mosquitto:heatpump/state1:state:*:DEFAULT,<[mosquitto:heatpump/state2:state:*:DEFAULT" }
-```
-
-This converts to:
-
-```java
-Bridge mqtt:broker:myUnsecureBroker [ host="192.168.0.42", secure=false ]
-{
- Thing topic mything "My Thing" {
- Channels:
- Type switch : heatpumpChannel "Heatpump Power" [ stateTopic="heatpump/state1", commandTopic="heatpump/set" ]
- Type switch : heatpumpChannel2 "Heatpump Power" [ stateTopic="heatpump/state2" ]
- }
-}
-```
-
-Link both channels to one item. That item will publish to "heatpump/set" on a change and
-receive values from "heatpump/state1" and "heatpump/state2".
-
-```java
-Switch ExampleItem "Heatpump Power" { channel="mqtt:topic:myUnsecureBroker:mything:heatpumpChannel",
- channel="mqtt:topic:myUnsecureBroker:mything:heatpumpChannel2" }
-```
diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/thing/homeassistant-thing.xml b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/thing/homeassistant-thing.xml
deleted file mode 100644
index 7af89b8ac0fdb..0000000000000
--- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/resources/OH-INF/thing/homeassistant-thing.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
- You need a configured Broker first. This Thing represents a device, that follows the "HomeAssistant MQTT
- Component" specification.
-
-
-
diff --git a/bundles/org.openhab.binding.mqtt.homie/pom.xml b/bundles/org.openhab.binding.mqtt.homie/pom.xml
index 10b357321241f..74a0052fa7609 100644
--- a/bundles/org.openhab.binding.mqtt.homie/pom.xml
+++ b/bundles/org.openhab.binding.mqtt.homie/pom.xml
@@ -21,11 +21,5 @@
${project.version}provided
-
- org.openhab.addons.bundles
- org.openhab.binding.mqtt.generic
- ${project.version}
- provided
-
diff --git a/bundles/org.openhab.binding.mqtt.homie/src/main/feature/feature.xml b/bundles/org.openhab.binding.mqtt.homie/src/main/feature/feature.xml
index 6f59a0c154365..7fef5d0419500 100644
--- a/bundles/org.openhab.binding.mqtt.homie/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.mqtt.homie/src/main/feature/feature.xml
@@ -6,8 +6,7 @@
openhab-runtime-baseopenhab-transport-mqttmvn:org.openhab.addons.bundles/org.openhab.binding.mqtt/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.generic/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.homie/${project.version}
+ mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.homie/${project.version}
diff --git a/bundles/org.openhab.binding.mqtt.ruuvigateway/pom.xml b/bundles/org.openhab.binding.mqtt.ruuvigateway/pom.xml
index 1bd1a3755fe16..ecd4a186b9340 100644
--- a/bundles/org.openhab.binding.mqtt.ruuvigateway/pom.xml
+++ b/bundles/org.openhab.binding.mqtt.ruuvigateway/pom.xml
@@ -20,12 +20,6 @@
${project.version}provided
-
- org.openhab.addons.bundles
- org.openhab.binding.mqtt.generic
- ${project.version}
- provided
- fi.tkgwf.ruuviruuvitag-common
diff --git a/bundles/org.openhab.binding.mqtt.ruuvigateway/src/main/feature/feature.xml b/bundles/org.openhab.binding.mqtt.ruuvigateway/src/main/feature/feature.xml
index 1668b960b810d..505f9461aa8a8 100644
--- a/bundles/org.openhab.binding.mqtt.ruuvigateway/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.mqtt.ruuvigateway/src/main/feature/feature.xml
@@ -6,8 +6,7 @@
openhab-runtime-baseopenhab-transport-mqttmvn:org.openhab.addons.bundles/org.openhab.binding.mqtt/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.generic/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.ruuvigateway/${project.version}
+ mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.ruuvigateway/${project.version}
diff --git a/bundles/org.openhab.binding.mqtt/README.md b/bundles/org.openhab.binding.mqtt/README.md
index 100af4bb7c764..23f7f2c75207b 100644
--- a/bundles/org.openhab.binding.mqtt/README.md
+++ b/bundles/org.openhab.binding.mqtt/README.md
@@ -1,19 +1,52 @@
# MQTT Binding
-> MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol.
-> It was designed as an extremely lightweight publish/subscribe messaging transport.
+MQTT is one of the most commonly used protocols in IoT (Internet of Things) projects. It stands for Message Queuing Telemetry Transport.
-MQTT is a server/client architecture.
+It is designed as a lightweight messaging protocol that uses publish/subscribe operations to exchange data between clients and the server.
-A server, also called broker is not provided within this binding.
-You can use any of the freely available MQTT Brokers like [Mosquitto](https://mosquitto.org/).
+
-This particular binding allows to configure connections to brokers via openHAB Things.
-This binding does NOT allow you to link Channels to MQTT topics or perform auto-discovery of available
-MQTT topics. Please check out the available extensions:
+MQTT servers are called brokers and the clients are simply the connected devices.
+
+- When a device (a client) wants to send data to the broker, we call this operation a “publish”.
+- When a device (a client) wants to receive data from the broker, we call this operation a “subscribe”.
+
+
+
+openHAB itself is not an MQTT Broker and needs to connect to one as a regular client.You can use any of the freely available MQTT Brokers like [Mosquitto](https://mosquitto.org/).
+
+This particular binding allows to configure connections to brokers via openHAB Things, and configure channels corresponding to MQTT topics.
+This binding does NOT perform auto-discovery of available MQTT topics.
+Please check out the available extensions:
+## MQTT Topics
+
+If a client subscribes to a broker, it is certainly not interested in all published messages.
+Instead it subscribes to specific **topics**. A topic can look like this: "mydevice/temperature".
+
+Example:
+
+Let's assume there is an MQTT capable light bulb.
+
+It has a unique id amongst all light bulbs, say "device123". The manufacturer decided to accept new
+brightness values on "device123/brightness/set". In openHAB we call that a **command topic**.
+
+And now assume that we have a mobile phone (or openHAB itself) and we register with the MQTT broker,
+and want to retrieve the current brightness value. The manufacturer specified that this value can
+be found on "device123/brightness". In openHAB we call that a **state topic**.
+
+This pattern of a command topic and a stateis very common, that you have a command and a state topic. A sensor would only have a state topic,
+naturally.
+
+Because every manufacturer can decide on their own on which topic their devices publish, this binding can unfortunately not provide auto-discovery.
+
+If you use an open source IoT device, the chances are high
+that it supports either the Homie Convention or Home Assistant discovery.
+Those conventions specify the topic topology and allow auto discovery.
+Please have a look at the specific openHAB bindings.
+
## Supported Bridges
- Broker: This bridge represents an MQTT Broker connection, configured and managed by this binding.
@@ -84,3 +117,332 @@ Configuration parameters are:
- **payload**: An optional condition on the value of the MQTT topic that must match before this channel is triggered.
Note for new users - direct broker Bridge channels are rarely needed. You almost certainly will want to be using one of the binding extensions, or the generic Things and Channels features for most devices or services.
+
+## Supported Things
+
+Because of the very generic structure of MQTT, this binding allows you to add an arbitrary number
+of so called "Generic MQTT Things" to organize yourself.
+
+On each of those things you can add an arbitrary number of channels.
+
+Remember that you need a configured broker Thing first!
+
+### Thing Configuration
+
+The following optional parameters can be set for the Thing:
+
+- **availabilityTopic**: The MQTT topic that represents the availability of the thing. This can be the thing's LWT topic.
+- **payloadAvailable**: Payload of the `Availability Topic`, when the device is available. Default: `ON`.
+- **payloadNotAvailable**: Payload of the `Availability Topic`, when the device is _not_ available. Default: `OFF`.
+- **transformationPattern**: An optional transformation pattern like [JSONPath](https://goessner.net/articles/JsonPath/index.html#e2) that is applied to the incoming availability payload.
+ The result of the transformations is then checked against `payloadAvailable` and `payloadNotAvailable`.
+
+## Supported Channels
+
+You can add the following channels:
+
+- **string**: This channel can show the received text on the given topic and can send text to a given topic.
+- **number**: This channel can show the received number on the given topic and can send a number to a given topic. It can have a min, max and step values.
+- **dimmer**: This channel handles numeric values as percentages. It can have min, max and step values.
+- **contact**: This channel represents an open/close state of a given topic.
+- **switch**: This channel represents an on/off state of a given topic and can send an on/off value to a given topic.
+- **colorRGB**: This channel handles color values in RGB format. (Deprecated)
+- **colorHSB**: This channel handles color values in HSB format. (Deprecated)
+- **color**: This channel handles color values in HSB, RGB or xyY (x,y,brightness) formats.
+- **location**: This channel handles a location.
+- **image**: This channel handles binary images in common java supported formats (bmp,jpg,png).
+- **datetime**: This channel handles date/time values.
+- **rollershutter**: This channel is for rollershutters.
+
+## Channel Configuration
+
+- **stateTopic**: The MQTT topic that represents the state of the thing. This can be empty, the thing channel will be a state-less trigger then. You can use a wildcard topic like "sensors/+/event" to retrieve state from multiple MQTT topics.
+- **transformationPattern**: An optional transformation pattern like [JSONPath](https://goessner.net/articles/JsonPath/index.html#e2) that is applied to all incoming MQTT values.
+- **transformationPatternOut**: An optional transformation pattern like [JSONPath](https://goessner.net/articles/JsonPath/index.html#e2) that is applied before publishing a value to MQTT.
+- **commandTopic**: The MQTT topic that commands are send to. This can be empty, the thing channel will be read-only then. Transformations are not applied for sending data.
+- **formatBeforePublish**: Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". Currently only "%s" is supported. Note that this format does not apply to the special on/off command values for dimmer channels, or up/down/stop command values for rollershutter channels.
+- **postCommand**: If `true`, the received MQTT value will not only update the state of linked items, but command it.
+ The default is `false`.
+ You usually need this to be `true` if your item is also linked to another channel, say a KNX actor, and you want a received MQTT payload to command that KNX actor.
+- **retained**: The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
+- **qos**: QoS of this channel. Overrides the connection QoS (defined in broker connection).
+- **trigger**: If `true`, the state topic will not update a state, but trigger a channel instead.
+
+### Channel Type "string"
+
+- **allowedStates**: An optional comma separated list of allowed states. Example: "ONE,TWO,THREE"
+
+You can connect this channel to a String item.
+
+### Channel Type "number"
+
+- **min**: An optional minimum value.
+- **max**: An optional maximum value.
+- **step**: For decrease, increase commands the step needs to be known
+- **unit**: Unit of measurement (optional). For supported units see [OpenHAB: List of Units](https://www.openhab.org/docs/concepts/units-of-measurement.html#list-of-units). Examples: "°C", "°F"
+
+A decimal value (like 0.2) is send to the MQTT topic if the number has a fractional part.
+If you always require an integer, please use the formatter.
+
+You can connect this channel to a Number item.
+
+### Channel Type "dimmer"
+
+- **on**: An optional string (like "ON"/"Open") that is sent for the `ON` command to tell the device to turn on to whatever value it thinks is useful (i.e. restore last state).
+- **off**: An optional string (like "OFF"/"Close") that is sent for the `OFF` command.
+- **min**: A required minimum value.
+- **max**: A required maximum value.
+- **step**: For decrease, increase commands the step needs to be known
+
+If **on** or **off** are not defined, an explicit 0 or 100 will be sent (after being scaled by **min** and **max** as appropriate).
+Note that **formatBeforePublish** will be ignored for these values, in case your device uses a vastly different format for these special commands than it does for number values.
+
+The value is internally stored as a percentage for a value between **min** and **max**.
+
+The channel will publish a value between `min` and `max`.
+
+You can connect this channel to a Rollershutter or Dimmer item.
+
+### Channel Type "contact", "switch"
+
+- **on**: An optional number (like 1, 10) or a string (like "ON"/"Open") that is recognized as on/open state.
+- **off**: An optional number (like 0, -10) or a string (like "OFF"/"Close") that is recognized as off/closed state.
+
+The contact channel by default recognizes `"OPEN"` and `"CLOSED"`. You can connect this channel to a Contact item.
+The switch channel by default recognizes `"ON"` and `"OFF"`. You can connect this channel to a Switch item.
+
+If **on** and **off** are not configured it publishes the strings mentioned before respectively.
+
+You can connect this channel to a Contact or Switch item.
+
+### Channel Type "color"
+
+- **colorMode**: An optional string that defines the color representation: `HSB`, `RGB` or `XYY` (x,y,brightness). Defaults to `HSB` when not specified.
+- **on**: An optional string (like "ON"/"Open") that is sent for the `ON` command to tell the device to turn on to whatever value it thinks is useful (i.e. restore last state).
+- **off**: An optional string (like "OFF"/"Close") that is sent for the `OFF` command.
+- **onBrightness**: If you connect this channel to a Switch item and turn it on, color and saturation are preserved from the last state, but the brightness will be set to this configured initial brightness (default: 10%).
+
+You can connect this channel to a Color, Dimmer and Switch item.
+
+This channel will publish the color as comma separated list to the MQTT broker,
+e.g. "112,54,123" for the RGB color mode (0-255 per component), "360,100,100" for the HSB color mode (0-359 for hue and 0-100 for saturation and brightness),
+and "0.640074,0.329970,100" for the xyY color mode (0-1 for x and y, and 0-100 for brightness).
+
+The channel expects values on the corresponding MQTT topic to be in this format as well.
+
+If **on** or **off** are not defined, a color command with the brightness set to 0 or 100 will be sent.
+Note that **formatBeforePublish** will be ignored for these values, in case your device uses a vastly different format for these special commands than it does for regular values.
+
+### Channel Type "colorRGB", "colorHSB" (Deprecated)
+
+- **on**: An optional string (like "BRIGHT") that is recognized as on state. (ON will always be recognized.)
+- **off**: An optional string (like "DARK") that is recognized as off state. (OFF will always be recognized.)
+- **onBrightness**: If you connect this channel to a Switch item and turn it on,
+
+color and saturation are preserved from the last state, but
+the brightness will be set to this configured initial brightness (default: 10%).
+
+You can connect this channel to a Color, Dimmer and Switch item.
+
+This channel will publish the color as comma separated list to the MQTT broker,
+e.g. "112,54,123" for an RGB channel (0-255 per component) and "360,100,100" for a HSB channel (0-359 for hue and 0-100 for saturation and brightness).
+
+The channel expects values on the corresponding MQTT topic to be in this format as well.
+
+### Channel Type "location"
+
+You can connect this channel to a Location item.
+
+The channel will publish the location as comma separated list to the MQTT broker,
+e.g. "112,54,123" for latitude, longitude, altitude. The altitude is optional.
+
+The channel expects values on the corresponding MQTT topic to be in this format as well.
+
+### Channel Type "image"
+
+You can connect this channel to an Image item. This is a read-only channel.
+
+The channel expects values on the corresponding MQTT topic to contain the binary
+data of a bmp, jpg, png or any other format that the installed java runtime supports.
+
+### Channel Type "datetime"
+
+You can connect this channel to a DateTime item.
+
+The channel will publish the date/time in the format "yyyy-MM-dd'T'HH:mm"
+for example 2018-01-01T12:14:00. If you require another format, please use the formatter.
+
+The channel expects values on the corresponding MQTT topic to be in this format as well.
+
+### Channel Type "rollershutter"
+
+- **on**: An optional string (like "Open") that is sent for the `UP` command.
+- **off**: An optional string (like "Close") that is sent for the `DOWN` command.
+- **stop**: An optional string (like "Stop") that is sent for the `STOP` command.
+- **stopCommandTopic**: An optional topic to send `STOP` commands to. If not set, `STOP` commands are sent to the main **commandTopic**.
+
+If **on**, **off**, or **stop** are not defined, an explicit 0 or 100 will be sent for `UP` and `DOWN` respectively. `STOP` commands will be ignored entirely.
+Note that **formatBeforePublish** will be ignored for these values, in case your device uses a vastly different format for these special commands than it does for number values.
+
+You can connect this channel to a Rollershutter or Dimmer item.
+
+## Rule Actions
+
+This binding includes a rule action, which allows one to publish MQTT messages from within rules.
+There is a separate instance for each MQTT broker (i.e. bridge), which can be retrieved through
+
+```java
+val mqttActions = getActions("mqtt","mqtt:broker:myBroker")
+```
+
+where the first parameter always has to be `mqtt` and the second (`mqtt:broker:myBroker`) is the Thing UID of the broker that should be used.
+Once this action instance is retrieved, you can invoke the `publishMQTT(String topic, String value, Boolean retained)` method on it:
+
+```java
+mqttActions.publishMQTT("mytopic","myvalue", true)
+```
+
+Alternatively, `publishMQTT(String topic, byte[] value, Boolean retained)` can publish a byte array data.
+
+The retained argument is optional and if not supplied defaults to `false`.
+
+## Configuration via Text Files
+
+_broker.things_ file:
+
+```java
+mqtt:broker:mySecureBroker [ host="192.168.0.41", secure=true, certificatepin=true, publickeypin=true ]
+mqtt:broker:myInsecureBroker [ host="192.168.0.42", secure=false ]
+mqtt:broker:myAuthenticatedBroker [ host="192.168.0.43",secure=true, username="user", password="password" ]
+mqtt:broker:pinToPublicKey [ host="192.168.0.44", secure=true , publickeypin=true, publickey="SHA-256:9a6f30e67ae9723579da2575c35daf7da3b370b04ac0bde031f5e1f5e4617eb8" ]
+```
+
+In the first example a secure connection to a broker is defined. It pins the returned certificate and public key. If someone tries a man in the middle attack later on, this broker connection will recognize it and refuse a connection. Be aware that if your brokers certificate changes, you need to remove the connection entry and add it again.
+The second connection is a plain, unsecured one. Use this only for local MQTT Brokers.
+A third connection uses a username and password for authentication. The credentials are plain values on the wire, therefore you should only use this on a secure connection.
+In a fourth connection, the public key pinning is enabled again. This time, a public key hash is provided to pin the connection to a specific server. It follows the form "hashname:hashvalue". Valid hashnames are SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 and all others listed in Java MessageDigest Algorithms.
+
+### Examples
+
+Files can also be used to create topic things and channels and to combine them with a broker connection:
+
+_mqtt.things_ file:
+
+```java
+Bridge mqtt:broker:myInsecureBroker [ host="192.168.0.42", secure=false ]
+
+Thing mqtt:topic:mything "mything" (mqtt:broker:myInsecureBroker) {
+ Channels:
+ Type switch : lamp "Kitchen Lamp" [ stateTopic="lamp/enabled", commandTopic="lamp/enabled/set" ]
+ Type switch : fancylamp "Fancy Lamp" [ stateTopic="fancy/lamp/state", commandTopic="fancy/lamp/command", on="i-am-on", off="i-am-off" ]
+ Type string : alarmpanel "Alarm system" [ stateTopic="alarm/panel/state", commandTopic="alarm/panel/set", allowedStates="ARMED_HOME,ARMED_AWAY,UNARMED" ]
+ Type color : lampcolor "Kitchen Lamp color" [ stateTopic="lamp/color", commandTopic="lamp/color/set", colorMode="RGB" ]
+ Type dimmer : blind "Blind" [ stateTopic="blind/state", commandTopic="blind/set", min=0, max=5, step=1 ]
+}
+```
+
+If the availability status is available, it can be configured to set the Thing status:
+
+```java
+Thing mqtt:topic:bedroom1-switch (mqtt:broker:myInsecureBroker) [ availabilityTopic="tele/bedroom1-switch/LWT", payloadAvailable="Online", payloadNotAvailable="Offline" ] {
+ Channels:
+ Type switch : power [ stateTopic="stat/bedroom1-switch/RESULT", transformationPattern="REGEX((.*POWER.*))∩JSONPATH($.POWER)", commandTopic="cmnd/bedroom1-switch/POWER" ]
+}
+```
+
+The transformation pattern can be chained using the intersection character "∩" as above, or by listing them separately:
+
+```java
+Thing mqtt:topic:bedroom1-switch (mqtt:broker:myInsecureBroker) [ availabilityTopic="tele/bedroom1-switch/LWT", payloadAvailable="Online", payloadNotAvailable="Offline" ] {
+ Channels:
+ Type switch : power [ stateTopic="stat/bedroom1-switch/RESULT", transformationPattern="REGEX((.*POWER.*))","JSONPATH($.POWER)", commandTopic="cmnd/bedroom1-switch/POWER" ]
+}
+```
+
+## Limitations
+
+- The HomeAssistant Fan Components only support ON/OFF.
+- The HomeAssistant Cover Components only support OPEN/CLOSE/STOP.
+- The HomeAssistant Light Component does not support XY color changes.
+- The HomeAssistant Climate Components is not yet supported.
+
+## Value Transformations
+
+[Transformations](/docs/configuration/transformations.html) can be applied to:
+
+- Incoming availability payload
+- Incoming value
+- Outgoing value
+
+Transformations can be chained in the UI by listing each transformation on a separate line, or by separating them with the mathematical intersection character "∩".
+Transformations are defined using this syntax: `TYPE(FUNCTION)`, e.g.: `JSONPATH($.path)`.
+The syntax: `TYPE:FUNCTION` is still supported, e.g.: `JSONPATH:$.path`.
+Please note that the values will be discarded if one of the transformations failed (e.g. REGEX did not match) or returned `null`.
+
+## Incoming Value Transformation
+
+All mentioned channels allow an optional transformation for incoming MQTT topic values.
+
+This is required if your received value is wrapped in a JSON or XML response.
+
+Here are a few examples to unwrap a value from a complex response:
+
+| Received value | Tr. Service | Transformation |
+| ------------------------------------------------------------------- | ---------------- | ------------------------------------------ |
+| `{device: {status: { temperature: 23.2 }}}` | JSONPATH | `JSONPATH($.device.status.temperature)` |
+| `23.2` | XPath | `XPath(/device/status/temperature/text())` |
+| `THEVALUE:23.2°C` | REGEX | `REGEX(:(.*?)°)` |
+| `abc` | JS (UI defined) | `JS(config:js:35edb3735a)` |
+| `abc` | JS (file based) | `JS(to_uppercase.js)` |
+| `abc` | JS (inline) | `JS(\| input.toUpperCase() )` |
+| `true` | MAP (UI defined) | `MAP(config:map:54facda0f7)` |
+| `true` | MAP (file based) | `MAP(status.map)` |
+| `true` | MAP (inline) | `MAP(\|true=ON;false=OFF)` |
+
+## Outgoing Value Transformation
+
+All mentioned channels allow an optional transformation for outgoing values.
+Please prefer formatting as described in the next section whenever possible.
+
+## Format before Publish
+
+This feature is quite powerful in transforming an item state before it is published to the MQTT broker.
+It has the syntax: `%[flags][width]conversion`.
+Find the full documentation on the [Java](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Formatter.html) web page.
+
+The default is "%s" which means: Output the item state as string.
+
+Here are a few examples:
+
+- All uppercase: "%S". Just use the upper case letter for the conversion argument.
+- Apply a prefix: "myprefix%s"
+- Apply a suffix: "%s suffix"
+- Number precision: ".4f" for a 4 digit precision. Use the "+" flag to always add a sign: "+.4f".
+- Decimal to Hexadecimal/Octal/Scientific: For example "60" with "%x", "%o", "%e" becomes "3C", "74", "60".
+- Date/Time: To reference the item state multiple times, use "%1$". Use the "tX" conversion where "X" can be any of [h,H,m,M,I,k,l,S,p,B,b,A,a,y,Y,d,e].
+ - For an output of _May 23, 1995_ use "%1$**tb** %1$**te**,%1$**tY**".
+ - For an output of _23.05.1995_ use "%1$**td**.%1$**tm**.%1$**tY**".
+ - For an output of _23:15_ use "%1$**tH**:%1$**tM**".
+
+Default pattern applied for each type:
+
+| Type | Parameter | Pattern | Comment |
+| ----------------- | ---------------------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
+| **string** | String | "%s" | |
+| **number** | BigDecimal | "%f" | The default will remove trailing zeros after the decimal point. |
+| **dimmer** | BigDecimal | "%f" | The default will remove trailing zeros after the decimal point. |
+| **contact** | String | -- | No pattern supported. Always **on** and **off** strings. |
+| **switch** | String | -- | No pattern supported. Always **on** and **off** strings. |
+| **colorRGB** | BigDecimal, BigDecimal, BigDecimal | "%1$d,%2$d,%3$d" | Parameters are **red**, **green** and **blue** components. |
+| **colorHSB** | BigDecimal, BigDecimal, BigDecimal | "%1$d,%2$d,%3$d" | Parameters are **hue**, **saturation** and **brightness** components. |
+| **location** | BigDecimal, BigDecimal | "%2$f,%3$f,%1$f" | Parameters are **altitude**, **latitude** and **longitude**, altitude is only in default pattern, if value is not '0'. |
+| **image** | -- | -- | No publishing supported. |
+| **datetime** | ZonedDateTime | "%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS.%1$tN" | Trailing zeros of the nanoseconds are removed. |
+| **rollershutter** | String | "%s" | No pattern supported. Always **up**, **down**, **stop** string or integer percent value. |
+
+Any outgoing value transformation will **always** result in a **string** value.
+
+## Troubleshooting
+
+- If you get the error "No MQTT client": Please update your installation.
+- If you use the Mosquitto broker: Please be aware that there is a relatively low setting for retained messages. If at some point messages stop being delivered change the setting.
diff --git a/bundles/org.openhab.binding.mqtt.generic/doc/mqtt.jpg b/bundles/org.openhab.binding.mqtt/doc/mqtt.jpg
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/doc/mqtt.jpg
rename to bundles/org.openhab.binding.mqtt/doc/mqtt.jpg
diff --git a/bundles/org.openhab.binding.mqtt.generic/doc/subpub.png b/bundles/org.openhab.binding.mqtt/doc/subpub.png
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/doc/subpub.png
rename to bundles/org.openhab.binding.mqtt/doc/subpub.png
diff --git a/bundles/org.openhab.binding.mqtt/pom.xml b/bundles/org.openhab.binding.mqtt/pom.xml
index 78215667a3d6a..b161378f8b2f4 100644
--- a/bundles/org.openhab.binding.mqtt/pom.xml
+++ b/bundles/org.openhab.binding.mqtt/pom.xml
@@ -14,4 +14,12 @@
openHAB Add-ons :: Bundles :: MQTT Broker Binding
+
+
+ jakarta.inject
+ jakarta.inject-api
+ 1.0.5
+
+
+
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/AbstractMQTTThingHandler.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/AbstractMQTTThingHandler.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/AbstractMQTTThingHandler.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/AbstractMQTTThingHandler.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/AvailabilityTracker.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/AvailabilityTracker.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/AvailabilityTracker.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/AvailabilityTracker.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelConfig.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/ChannelConfig.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelConfig.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/ChannelConfig.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelConfigBuilder.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/ChannelConfigBuilder.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelConfigBuilder.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/ChannelConfigBuilder.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelState.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/ChannelState.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelState.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/ChannelState.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelStateUpdateListener.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/ChannelStateUpdateListener.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelStateUpdateListener.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/ChannelStateUpdateListener.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/MqttChannelStateDescriptionProvider.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/MqttChannelStateDescriptionProvider.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/MqttChannelStateDescriptionProvider.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/MqttChannelStateDescriptionProvider.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/MqttChannelTypeProvider.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/MqttChannelTypeProvider.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/MqttChannelTypeProvider.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/MqttChannelTypeProvider.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/MqttBindingConstants.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/internal/MqttBindingConstants.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/MqttBindingConstants.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/internal/MqttBindingConstants.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/MqttThingHandlerFactory.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/internal/MqttThingHandlerFactory.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/MqttThingHandlerFactory.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/internal/MqttThingHandlerFactory.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericMQTTThingHandler.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericMQTTThingHandler.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericMQTTThingHandler.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericMQTTThingHandler.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericThingConfiguration.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericThingConfiguration.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericThingConfiguration.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericThingConfiguration.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/AbstractMqttAttributeClass.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/AbstractMqttAttributeClass.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/AbstractMqttAttributeClass.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/AbstractMqttAttributeClass.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/ColorMode.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/ColorMode.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/ColorMode.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/ColorMode.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/MQTTvalueTransform.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/MQTTvalueTransform.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/MQTTvalueTransform.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/MQTTvalueTransform.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/MandatoryField.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/MandatoryField.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/MandatoryField.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/MandatoryField.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/SubscribeFieldToMQTTtopic.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/SubscribeFieldToMQTTtopic.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/SubscribeFieldToMQTTtopic.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/SubscribeFieldToMQTTtopic.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/TopicPrefix.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/TopicPrefix.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/mapping/TopicPrefix.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/mapping/TopicPrefix.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/tools/ChildMap.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/tools/ChildMap.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/tools/ChildMap.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/tools/ChildMap.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/tools/DelayedBatchProcessing.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/tools/DelayedBatchProcessing.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/tools/DelayedBatchProcessing.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/tools/DelayedBatchProcessing.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/tools/WaitForTopicValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/tools/WaitForTopicValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/tools/WaitForTopicValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/tools/WaitForTopicValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/utils/FutureCollector.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/utils/FutureCollector.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/utils/FutureCollector.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/utils/FutureCollector.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ColorValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/ColorValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ColorValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/ColorValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/DateTimeValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/DateTimeValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/DateTimeValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/DateTimeValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ImageValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/ImageValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ImageValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/ImageValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/LocationValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/LocationValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/LocationValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/LocationValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/OnOffValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/OnOffValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/OnOffValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/OnOffValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/OpenCloseValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/OpenCloseValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/OpenCloseValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/OpenCloseValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/PercentageValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/PercentageValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/PercentageValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/PercentageValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/RollershutterValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/RollershutterValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/RollershutterValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/RollershutterValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/TextValue.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/TextValue.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/TextValue.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/TextValue.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/Value.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/Value.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/Value.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/Value.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ValueFactory.java b/bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/ValueFactory.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ValueFactory.java
rename to bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/generic/values/ValueFactory.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/color-channel-config.xml b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/color-channel-config.xml
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/color-channel-config.xml
rename to bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/color-channel-config.xml
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/dimmer-channel-config.xml b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/dimmer-channel-config.xml
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/dimmer-channel-config.xml
rename to bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/dimmer-channel-config.xml
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/number-channel-config.xml b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/number-channel-config.xml
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/number-channel-config.xml
rename to bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/number-channel-config.xml
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/rollershutter-channel-config.xml b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/rollershutter-channel-config.xml
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/rollershutter-channel-config.xml
rename to bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/rollershutter-channel-config.xml
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/string-channel-config.xml b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/string-channel-config.xml
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/string-channel-config.xml
rename to bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/string-channel-config.xml
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/switch-channel-config.xml b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/switch-channel-config.xml
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/switch-channel-config.xml
rename to bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/switch-channel-config.xml
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/trigger-channel-config.xml b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/trigger-channel-config.xml
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/config/trigger-channel-config.xml
rename to bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/config/trigger-channel-config.xml
diff --git a/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/i18n/mqtt.properties b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/i18n/mqtt.properties
index 851497018b076..25d75633a9763 100644
--- a/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/i18n/mqtt.properties
+++ b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/i18n/mqtt.properties
@@ -7,6 +7,8 @@ addon.mqtt.description = Allows management of MQTT broker connections and linkin
thing-type.mqtt.broker.label = MQTT Broker
thing-type.mqtt.broker.description = A connection to a MQTT broker
+thing-type.mqtt.topic.label = Generic MQTT Thing
+thing-type.mqtt.topic.description = You need a configured Broker first. Dynamically add channels of various types to this Thing. Link different MQTT topics to each channel.
# thing types config
@@ -73,11 +75,35 @@ thing-type.config.mqtt.broker.shutdownTopic.label = Shutdown Topic
thing-type.config.mqtt.broker.shutdownTopic.description = Defaults to empty and therefore disables the shutdown message.
thing-type.config.mqtt.broker.username.label = Username
thing-type.config.mqtt.broker.username.description = The MQTT username
+thing-type.config.mqtt.topic.availabilityTopic.label = Availability Topic
+thing-type.config.mqtt.topic.availabilityTopic.description = Topic of the LWT of the device
+thing-type.config.mqtt.topic.payloadAvailable.label = Device Available Payload
+thing-type.config.mqtt.topic.payloadAvailable.description = Payload of the 'Availability Topic', when the device is available. Default: 'ON'
+thing-type.config.mqtt.topic.payloadNotAvailable.label = Device Unavailable Payload
+thing-type.config.mqtt.topic.payloadNotAvailable.description = Payload of the 'Availability Topic', when the device is *not* available. Default: 'OFF'
+thing-type.config.mqtt.topic.transformationPattern.label = Availability Payload Transformations
+thing-type.config.mqtt.topic.transformationPattern.description = Applies transformations to the incoming availability payload. A transformation example for a received JSON would be "JSONPATH:$.status" for a json {status: "Online"}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
# channel types
+channel-type.mqtt.color.label = Color Value (HSB, RGB or CIE xyY)
+channel-type.mqtt.colorHSB.label = Color Value (Hue,Saturation,Brightness)
+channel-type.mqtt.colorRGB.label = Color Value (Red,Green,Blue)
+channel-type.mqtt.contact.label = Open/Close Contact
+channel-type.mqtt.datetime.label = Date/Time Value
+channel-type.mqtt.datetime.description = Current date and/or time
+channel-type.mqtt.dimmer.label = Dimmer
+channel-type.mqtt.image.label = Image
+channel-type.mqtt.image.description = An image to display. Send a binary bmp, jpg, png or any other supported format to this channel.
+channel-type.mqtt.location.label = Location
+channel-type.mqtt.location.description = GPS coordinates as Latitude,Longitude,Altitude
+channel-type.mqtt.number.label = Number Value
channel-type.mqtt.publishTrigger.label = Publish Trigger
channel-type.mqtt.publishTrigger.description = This channel is triggered when a value is published to the configured MQTT topic on this broker connection. The event payload will be the received MQTT topic value.
+channel-type.mqtt.rollershutter.label = Rollershutter
+channel-type.mqtt.string.label = Text Value
+channel-type.mqtt.switch.label = On/Off Switch
+channel-type.mqtt.trigger.label = Trigger
# channel types config
@@ -87,6 +113,191 @@ channel-type.config.mqtt.publishTrigger.separator.label = Separator Character
channel-type.config.mqtt.publishTrigger.separator.description = The trigger channel payload usually only contains the received MQTT topic value. If you define a separator character, for example '#', the topic and received value will be in the trigger channel payload. For example: my_topic#my_received_value.
channel-type.config.mqtt.publishTrigger.stateTopic.label = MQTT Topic
channel-type.config.mqtt.publishTrigger.stateTopic.description = This channel will trigger on this MQTT topic. This topic can contain wildcards like + and # for example "all/in/#" or "sensors/+/config".
+thing-type.config.mqtt.color_channel.colorMode.label = Color Mode
+thing-type.config.mqtt.color_channel.colorMode.description = Defines the color representation format of the payload. "HSB" by default.
+thing-type.config.mqtt.color_channel.colorMode.option.HSB = HSB (Hue, Saturation, Brightness)
+thing-type.config.mqtt.color_channel.colorMode.option.RGB = RGB (Red, Green, Blue)
+thing-type.config.mqtt.color_channel.colorMode.option.XYY = CIE xyY (x, y, Brightness)
+thing-type.config.mqtt.color_channel.commandTopic.label = MQTT Command Topic
+thing-type.config.mqtt.color_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
+thing-type.config.mqtt.color_channel.formatBeforePublish.label = Outgoing Value Format
+thing-type.config.mqtt.color_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
+thing-type.config.mqtt.color_channel.group.transformations.label = Transform Values
+thing-type.config.mqtt.color_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
+thing-type.config.mqtt.color_channel.off.label = Custom OFF Command
+thing-type.config.mqtt.color_channel.off.description = A string (like "OFF") that is sent to MQTT when an OFF command is received, instead of a color command with a brightness of 0%. The Outgoing Value Format is not applied to this value.
+thing-type.config.mqtt.color_channel.on.label = Custom ON Command
+thing-type.config.mqtt.color_channel.on.description = A string (like "ON") that is sent to MQTT when an ON command is received, instead of a color command with a brightness of 100%. The Outgoing Value Format is not applied to this value.
+thing-type.config.mqtt.color_channel.onBrightness.label = Initial Brightness
+thing-type.config.mqtt.color_channel.onBrightness.description = If you connect this channel to a Switch item and turn it on, color and saturation are preserved from the last state, but the brightness will be set to this configured initial brightness percentage.
+thing-type.config.mqtt.color_channel.postCommand.label = Is Command
+thing-type.config.mqtt.color_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
+thing-type.config.mqtt.color_channel.qos.label = QoS
+thing-type.config.mqtt.color_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
+thing-type.config.mqtt.color_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
+thing-type.config.mqtt.color_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
+thing-type.config.mqtt.color_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
+thing-type.config.mqtt.color_channel.retained.label = Retained
+thing-type.config.mqtt.color_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
+thing-type.config.mqtt.color_channel.stateTopic.label = MQTT State Topic
+thing-type.config.mqtt.color_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
+thing-type.config.mqtt.color_channel.transformationPattern.label = Incoming Value Transformations
+thing-type.config.mqtt.color_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
+thing-type.config.mqtt.color_channel.transformationPatternOut.label = Outgoing Value Transformation
+thing-type.config.mqtt.color_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
+thing-type.config.mqtt.dimmer_channel.commandTopic.label = MQTT Command Topic
+thing-type.config.mqtt.dimmer_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
+thing-type.config.mqtt.dimmer_channel.formatBeforePublish.label = Outgoing Value Format
+thing-type.config.mqtt.dimmer_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
+thing-type.config.mqtt.dimmer_channel.group.transformations.label = Transform Values
+thing-type.config.mqtt.dimmer_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
+thing-type.config.mqtt.dimmer_channel.max.label = Absolute Maximum
+thing-type.config.mqtt.dimmer_channel.max.description = This configuration represents the maximum of the allowed range. For a percentage channel that equals one-hundred percent.
+thing-type.config.mqtt.dimmer_channel.min.label = Absolute Minimum
+thing-type.config.mqtt.dimmer_channel.min.description = This configuration represents the minimum of the allowed range. For a percentage channel that equals zero percent.
+thing-type.config.mqtt.dimmer_channel.off.label = Custom OFF Command
+thing-type.config.mqtt.dimmer_channel.off.description = A string (like "OFF") that is sent to MQTT when an OFF command is received, instead of an explicit 0%. The Outgoing Value Format is not applied to this value.
+thing-type.config.mqtt.dimmer_channel.on.label = Custom ON Command
+thing-type.config.mqtt.dimmer_channel.on.description = A string (like "ON") that is sent to MQTT when an ON command is received, instead of an explicit 100%. The Outgoing Value Format is not applied to this value.
+thing-type.config.mqtt.dimmer_channel.postCommand.label = Is Command
+thing-type.config.mqtt.dimmer_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
+thing-type.config.mqtt.dimmer_channel.qos.label = QoS
+thing-type.config.mqtt.dimmer_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
+thing-type.config.mqtt.dimmer_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
+thing-type.config.mqtt.dimmer_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
+thing-type.config.mqtt.dimmer_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
+thing-type.config.mqtt.dimmer_channel.retained.label = Retained
+thing-type.config.mqtt.dimmer_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
+thing-type.config.mqtt.dimmer_channel.stateTopic.label = MQTT State Topic
+thing-type.config.mqtt.dimmer_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
+thing-type.config.mqtt.dimmer_channel.step.label = Delta Value
+thing-type.config.mqtt.dimmer_channel.step.description = A number/dimmer channel can receive INCREASE/DECREASE commands and computes the target number by adding or subtracting this delta value.
+thing-type.config.mqtt.dimmer_channel.transformationPattern.label = Incoming Value Transformations
+thing-type.config.mqtt.dimmer_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
+thing-type.config.mqtt.dimmer_channel.transformationPatternOut.label = Outgoing Value Transformation
+thing-type.config.mqtt.dimmer_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
+thing-type.config.mqtt.number_channel.commandTopic.label = MQTT Command Topic
+thing-type.config.mqtt.number_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
+thing-type.config.mqtt.number_channel.formatBeforePublish.label = Outgoing Value Format
+thing-type.config.mqtt.number_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
+thing-type.config.mqtt.number_channel.group.transformations.label = Transform Values
+thing-type.config.mqtt.number_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
+thing-type.config.mqtt.number_channel.max.label = Absolute Maximum
+thing-type.config.mqtt.number_channel.max.description = This configuration represents the maximum of the allowed range. For a percentage channel that equals one-hundred percent.
+thing-type.config.mqtt.number_channel.min.label = Absolute Minimum
+thing-type.config.mqtt.number_channel.min.description = This configuration represents the minimum of the allowed range. For a percentage channel that equals zero percent.
+thing-type.config.mqtt.number_channel.postCommand.label = Is Command
+thing-type.config.mqtt.number_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option. Note that if the value is NaN (interpreted as UNDEF), it can only update; commands are not possible.
+thing-type.config.mqtt.number_channel.qos.label = QoS
+thing-type.config.mqtt.number_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
+thing-type.config.mqtt.number_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
+thing-type.config.mqtt.number_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
+thing-type.config.mqtt.number_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
+thing-type.config.mqtt.number_channel.retained.label = Retained
+thing-type.config.mqtt.number_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
+thing-type.config.mqtt.number_channel.stateTopic.label = MQTT State Topic
+thing-type.config.mqtt.number_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
+thing-type.config.mqtt.number_channel.step.label = Delta Value
+thing-type.config.mqtt.number_channel.step.description = A number/dimmer channel can receive INCREASE/DECREASE commands and computes the target number by adding or subtracting this delta value.
+thing-type.config.mqtt.number_channel.transformationPattern.label = Incoming Value Transformations
+thing-type.config.mqtt.number_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
+thing-type.config.mqtt.number_channel.transformationPatternOut.label = Outgoing Value Transformation
+thing-type.config.mqtt.number_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
+thing-type.config.mqtt.number_channel.unit.label = Unit Of Measurement
+thing-type.config.mqtt.number_channel.unit.description = Unit of measurement (optional). The unit is used for representing the value in the GUI as well as for converting incoming values (like from °F to °C). Examples: °C, °F, kW, etc.
+thing-type.config.mqtt.rollershutter_channel.commandTopic.label = MQTT Command Topic
+thing-type.config.mqtt.rollershutter_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only rollershutter.
+thing-type.config.mqtt.rollershutter_channel.formatBeforePublish.label = Outgoing Value Format
+thing-type.config.mqtt.rollershutter_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
+thing-type.config.mqtt.rollershutter_channel.group.transformations.label = Transform Values
+thing-type.config.mqtt.rollershutter_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
+thing-type.config.mqtt.rollershutter_channel.invert.label = Invert
+thing-type.config.mqtt.rollershutter_channel.invert.description = Enable if your device uses 100 as UP and 0 as DOWN, instead of the normal openHAB convention of 0 as UP and 100 as DOWN.
+thing-type.config.mqtt.rollershutter_channel.off.label = Down Command Value
+thing-type.config.mqtt.rollershutter_channel.off.description = A string (like "CLOSE") that is sent when commanding the rollershutter to close. If not provided, 100 (or 0, if inverted) will be sent instead. The Outgoing Value Format is not applied to this value.
+thing-type.config.mqtt.rollershutter_channel.offState.label = Down State Value
+thing-type.config.mqtt.rollershutter_channel.offState.description = A string (like "CLOSED") that is recognised as DOWN state. You can use this parameter for a second keyword, next to DOWN. Defaults to the Down Command Value.
+thing-type.config.mqtt.rollershutter_channel.on.label = Up Command Value
+thing-type.config.mqtt.rollershutter_channel.on.description = A string (like "OPEN") that is sent when commanding the rollershutter to open. If not provided, 0 (or 100, if inverted) will be sent instead. The Outgoing Value Format is not applied to this value.
+thing-type.config.mqtt.rollershutter_channel.onState.label = Up State Value
+thing-type.config.mqtt.rollershutter_channel.onState.description = A string (like "OPENED") that is recognised as UP state. You can use this parameter for a second keyword, next to UP. Defaults to the Up Command Value.
+thing-type.config.mqtt.rollershutter_channel.postCommand.label = Is Command
+thing-type.config.mqtt.rollershutter_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
+thing-type.config.mqtt.rollershutter_channel.qos.label = QoS
+thing-type.config.mqtt.rollershutter_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
+thing-type.config.mqtt.rollershutter_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
+thing-type.config.mqtt.rollershutter_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
+thing-type.config.mqtt.rollershutter_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
+thing-type.config.mqtt.rollershutter_channel.retained.label = Retained
+thing-type.config.mqtt.rollershutter_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
+thing-type.config.mqtt.rollershutter_channel.stateTopic.label = MQTT State Topic
+thing-type.config.mqtt.rollershutter_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
+thing-type.config.mqtt.rollershutter_channel.stop.label = Stop Command
+thing-type.config.mqtt.rollershutter_channel.stop.description = A string (like "STOP") that is sent when commanding the rollershutter to stop. The Outgoing Value Format is not applied to this value.
+thing-type.config.mqtt.rollershutter_channel.stopCommandTopic.label = MQTT Stop Command Topic
+thing-type.config.mqtt.rollershutter_channel.stopCommandTopic.description = An MQTT topic that this thing will send a STOP command to. If not set, it will send STOP commands to the main commandTopic.
+thing-type.config.mqtt.rollershutter_channel.transformExtentsToString.label = Transform Commands at Extents to String
+thing-type.config.mqtt.rollershutter_channel.transformExtentsToString.description = If a command is 0 or 100, send that as UP or DOWN commands instead. Useful if your device doesn't support going to a specific position - only opening or closing, but you have front ends (say HomeKit) or rules that will only send percentage commands instead of UP/DOWN.
+thing-type.config.mqtt.rollershutter_channel.transformationPattern.label = Incoming Value Transformations
+thing-type.config.mqtt.rollershutter_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
+thing-type.config.mqtt.rollershutter_channel.transformationPatternOut.label = Outgoing Value Transformation
+thing-type.config.mqtt.rollershutter_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
+thing-type.config.mqtt.string_channel.allowedStates.label = Allowed States
+thing-type.config.mqtt.string_channel.allowedStates.description = If your MQTT topic is limited to a set of one or more specific commands or specific states, define those states here. Separate multiple states with commas. An example for a light bulb state set: ON,DIMMED,OFF
+thing-type.config.mqtt.string_channel.commandTopic.label = MQTT Command Topic
+thing-type.config.mqtt.string_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
+thing-type.config.mqtt.string_channel.formatBeforePublish.label = Outgoing Value Format
+thing-type.config.mqtt.string_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
+thing-type.config.mqtt.string_channel.group.transformations.label = Transform Values
+thing-type.config.mqtt.string_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
+thing-type.config.mqtt.string_channel.nullValue.label = NULL Value
+thing-type.config.mqtt.string_channel.nullValue.description = If the received MQTT value matches this, treat it as NULL.
+thing-type.config.mqtt.string_channel.postCommand.label = Is Command
+thing-type.config.mqtt.string_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
+thing-type.config.mqtt.string_channel.qos.label = QoS
+thing-type.config.mqtt.string_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
+thing-type.config.mqtt.string_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
+thing-type.config.mqtt.string_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
+thing-type.config.mqtt.string_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
+thing-type.config.mqtt.string_channel.retained.label = Retained
+thing-type.config.mqtt.string_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
+thing-type.config.mqtt.string_channel.stateTopic.label = MQTT State Topic
+thing-type.config.mqtt.string_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
+thing-type.config.mqtt.string_channel.transformationPattern.label = Incoming Value Transformations
+thing-type.config.mqtt.string_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
+thing-type.config.mqtt.string_channel.transformationPatternOut.label = Outgoing Value Transformation
+thing-type.config.mqtt.string_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
+thing-type.config.mqtt.switch_channel.commandTopic.label = MQTT Command Topic
+thing-type.config.mqtt.switch_channel.commandTopic.description = An MQTT topic that this thing will send a command to. If not set, this will be a read-only switch.
+thing-type.config.mqtt.switch_channel.formatBeforePublish.label = Outgoing Value Format
+thing-type.config.mqtt.switch_channel.formatBeforePublish.description = Format a value before it is published to the MQTT broker. The default is to just pass the channel/item state. If you want to apply a prefix, say "MYCOLOR,", you would use "MYCOLOR,%s". If you want to adjust the precision of a number to for example 4 digits, you would use "%.4f".
+thing-type.config.mqtt.switch_channel.group.transformations.label = Transform Values
+thing-type.config.mqtt.switch_channel.group.transformations.description = These configuration parameters allow you to alter a value before it is published to MQTT or before a received value is assigned to an item.
+thing-type.config.mqtt.switch_channel.off.label = Custom Off/Closed Value
+thing-type.config.mqtt.switch_channel.off.description = A number (like 0, -10) or a string (like "disabled") that is additionally recognised as off/closed state. You can use this parameter for a second keyword, next to OFF (CLOSED respectively on a Contact).
+thing-type.config.mqtt.switch_channel.on.label = Custom On/Open Value
+thing-type.config.mqtt.switch_channel.on.description = A number (like 1, 10) or a string (like "enabled") that is additionally recognised as on/open state. You can use this parameter for a second keyword, next to ON (OPEN respectively on a Contact).
+thing-type.config.mqtt.switch_channel.postCommand.label = Is Command
+thing-type.config.mqtt.switch_channel.postCommand.description = If the received MQTT value should not only update the state of linked items, but command them, enable this option.
+thing-type.config.mqtt.switch_channel.qos.label = QoS
+thing-type.config.mqtt.switch_channel.qos.description = MQTT QoS of this channel (0, 1, 2). Default is QoS of the broker connection.
+thing-type.config.mqtt.switch_channel.qos.option.0 = At most once (best effort delivery "fire and forget")
+thing-type.config.mqtt.switch_channel.qos.option.1 = At least once (guaranteed that a message will be delivered at least once)
+thing-type.config.mqtt.switch_channel.qos.option.2 = Exactly once (guarantees that each message is received only once by the counterpart)
+thing-type.config.mqtt.switch_channel.retained.label = Retained
+thing-type.config.mqtt.switch_channel.retained.description = The value will be published to the command topic as retained message. A retained value stays on the broker and can even be seen by MQTT clients that are subscribing at a later point in time.
+thing-type.config.mqtt.switch_channel.stateTopic.label = MQTT State Topic
+thing-type.config.mqtt.switch_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the state. This can be left empty, the channel will be state-less command-only channel.
+thing-type.config.mqtt.switch_channel.transformationPattern.label = Incoming Value Transformations
+thing-type.config.mqtt.switch_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. A transformation example for a received JSON would be "JSONPATH:$.device.status.temperature" for a json {device: {status: { temperature: 23.2 }}}. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
+thing-type.config.mqtt.switch_channel.transformationPatternOut.label = Outgoing Value Transformation
+thing-type.config.mqtt.switch_channel.transformationPatternOut.description = Applies a transformation before publishing a MQTT topic value. Transformations are specialised in extracting a value, but some transformations like the MAP one could be useful.
+thing-type.config.mqtt.trigger_channel.group.transformations.label = Transform Values
+thing-type.config.mqtt.trigger_channel.group.transformations.description = These configuration parameters allow you to alter before a received value is used in the trigger.
+thing-type.config.mqtt.trigger_channel.stateTopic.label = MQTT Trigger Topic
+thing-type.config.mqtt.trigger_channel.stateTopic.description = An MQTT topic that this thing will subscribe to, to receive the trigger
+thing-type.config.mqtt.trigger_channel.transformationPattern.label = Incoming Value Transformations
+thing-type.config.mqtt.trigger_channel.transformationPattern.description = Applies transformations to an incoming MQTT topic value. This can be used to map the events sent by the device to common values for all devices using, e.g. the MAP transformation. You can chain transformations by listing each transformation on a separate line, or by separating them with the intersection character ∩.
# thing actions
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/thing/channels.xml b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/thing/channels.xml
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/thing/channels.xml
rename to bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/thing/channels.xml
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/thing/generic-thing.xml b/bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/thing/generic-thing.xml
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/main/resources/OH-INF/thing/generic-thing.xml
rename to bundles/org.openhab.binding.mqtt/src/main/resources/OH-INF/thing/generic-thing.xml
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/ChannelStateHelper.java b/bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/ChannelStateHelper.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/ChannelStateHelper.java
rename to bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/ChannelStateHelper.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/ChannelStateTests.java b/bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/ChannelStateTests.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/ChannelStateTests.java
rename to bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/ChannelStateTests.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/ThingHandlerHelper.java b/bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/ThingHandlerHelper.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/ThingHandlerHelper.java
rename to bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/ThingHandlerHelper.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/internal/handler/GenericThingHandlerTests.java b/bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/internal/handler/GenericThingHandlerTests.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/internal/handler/GenericThingHandlerTests.java
rename to bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/internal/handler/GenericThingHandlerTests.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/internal/handler/ThingChannelConstants.java b/bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/internal/handler/ThingChannelConstants.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/internal/handler/ThingChannelConstants.java
rename to bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/internal/handler/ThingChannelConstants.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/mapping/MqttTopicClassMapperTests.java b/bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/mapping/MqttTopicClassMapperTests.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/mapping/MqttTopicClassMapperTests.java
rename to bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/mapping/MqttTopicClassMapperTests.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/mapping/SubscribeFieldToMQTTtopicTests.java b/bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/mapping/SubscribeFieldToMQTTtopicTests.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/mapping/SubscribeFieldToMQTTtopicTests.java
rename to bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/mapping/SubscribeFieldToMQTTtopicTests.java
diff --git a/bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/values/ValueTests.java b/bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/values/ValueTests.java
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/src/test/java/org/openhab/binding/mqtt/generic/values/ValueTests.java
rename to bundles/org.openhab.binding.mqtt/src/test/java/org/openhab/binding/mqtt/generic/values/ValueTests.java
diff --git a/bundles/org.openhab.binding.mqtt/xtend_examples.md b/bundles/org.openhab.binding.mqtt/xtend_examples.md
index 7d2c6db572ead..f508ad9dd8cb3 100644
--- a/bundles/org.openhab.binding.mqtt/xtend_examples.md
+++ b/bundles/org.openhab.binding.mqtt/xtend_examples.md
@@ -46,3 +46,190 @@ in [Java MessageDigest Algorithms](https://docs.oracle.com/en/java/javase/21/doc
```java
mqtt:broker:pinToPublicKey [ host="192.168.0.44", secure=true, publickeypin=true, publickey="SHA-256:9a6f30e67ae9723579da2575c35daf7da3b370b04ac0bde031f5e1f5e4617eb8" ]
```
+
+### A broker Thing with a Generic MQTT Thing and a few channels
+
+demo1.things:
+
+```java
+Bridge mqtt:broker:myUnsecureBroker [ host="192.168.0.42", secure=false ]
+{
+ Thing topic mything {
+ Channels:
+ Type switch : lamp "Kitchen Lamp" [ stateTopic="lamp/enabled", commandTopic="lamp/enabled/set" ]
+ Type switch : fancylamp "Fancy Lamp" [ stateTopic="fancy/lamp/state", commandTopic="fancy/lamp/command", on="i-am-on", off="i-am-off" ]
+ Type string : alarmpanel "Alarm system" [ stateTopic="alarm/panel/state", commandTopic="alarm/panel/set", allowedStates="ARMED_HOME,ARMED_AWAY,UNARMED" ]
+ Type color : lampcolor "Kitchen Lamp color" [ stateTopic="lamp/color", commandTopic="lamp/color/set", rgb=true ]
+ Type dimmer : blind "Blind" [ stateTopic="blind/state", commandTopic="blind/set", min=0, max=5, step=1 ]
+ }
+}
+```
+
+demo2.things:
+
+```java
+Bridge mqtt:broker:WorkBroker "Work Broker" [ host="localhost", port="1883", secure=false, username="openhabian", password="ohmqtt", clientID="WORKOPENHAB24" ]
+
+Thing mqtt:topic:WorkBroker:WorkSonoff "Work Sonoff" (mqtt:broker:WorkBroker) @ "Home" {
+ Channels:
+ Type switch : WorkLight "Work Light" [ stateTopic="stat/worklight/POWER", commandTopic="cmnd/worklight/POWER" ]
+ Type switch : WorkLightTele "Work Tele" [ stateTopic="tele/worklight/STATE", transformationPattern="JSONPATH:$.POWER" ]
+}
+```
+
+tasmota.things: Example of a Tasmota Device with Availablity-Topic state and standard Online/Offline message-payload
+
+```java
+Bridge mqtt:broker:mybroker [ host="192.168.0.42", secure=false ]
+{
+ Thing mqtt:topic:SP111 "SP111" [availabilityTopic="tele/tasmota/LWT", payloadAvailable="Online", payloadNotAvailable="Offline"]{
+ Channels:
+ Type switch : power "Power" [ stateTopic="tele/tasmota/STATE", commandTopic="cmnd/tasmota/POWER", transformationPattern="JSONPATH:$.POWER", on="ON", off="OFF" ]
+ Type number : powerload "Power load" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"]
+ Type number : voltage "Line voltage" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
+ Type number : current "Line current" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
+ Type number : total "Total energy today" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"]
+ Type number : totalyest "Total energy yesterday" [ stateTopic="tele/tasmota/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]
+ Type number : rssi "WiFi Signal Strength" [ stateTopic="tele/tasmota/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
+ }
+}
+```
+
+When using .things and .items files for configuration, items and channels follow the format of:
+
+```java
+ "" { channel="mqtt:topic:::" }
+```
+
+demo1.items:
+
+```java
+Switch Kitchen_Light "Kitchen Light" { channel="mqtt:topic:myUnsecureBroker:mything:lamp" }
+Rollershutter shutter "Blind" { channel="mqtt:topic:myUnsecureBroker:mything:blind" }
+```
+
+demo2.items:
+
+```java
+Switch SW_WorkLight "Work Light Switch" { channel="mqtt:topic:WorkBroker:WorkSonoff:WorkLight", channel="mqtt:topic:WorkBroker:WorkSonoff:WorkLightTele" }
+```
+
+### Publish an MQTT value on startup
+
+An example "demo.rules" rule to publish to `system/started` with the value `true` on every start:
+
+```java
+rule "Send startup message"
+when
+ System started
+then
+ val actions = getActions("mqtt","mqtt:broker:myUnsecureBroker")
+ actions.publishMQTT("system/started","true")
+end
+```
+
+### Synchronize two instances
+
+To synchronize item items from a SOURCE openHAB instance to a DESTINATION instance, do the following:
+
+Define a broker and a trigger channel for your DESTINATION openHAB installation (`thing` file):
+
+```java
+Bridge mqtt:broker:myUnsecureBroker [ host="192.168.0.42", secure=false ]
+{
+ Channels:
+ Type publishTrigger : myTriggerChannel "Receive everything" [ stateTopic="allItems/#", separator="#" ]
+}
+```
+
+The trigger channel will trigger for each received message on the MQTT topic "allItems/".
+Now push those changes to your items in a `rules` file:
+
+```java
+rule "Receive all"
+when
+ Channel "mqtt:broker:myUnsecureBroker:myTriggerChannel" triggered
+then
+ //The receivedEvent String contains unneeded elements like the mqtt topic, we only need everything after the "/" as this is were item name and state are
+ val parts1 = receivedEvent.toString.split("/").get(1)
+ val parts2 = parts1.split("#")
+ sendCommand(parts2.get(0), parts2.get(1))
+end
+```
+
+On your SOURCE openHAB installation, you need to define a group `myGroupOfItems` and add all items
+to it that you want to synchronize. Then add this rule to a `rule` file:
+
+```java
+rule "Publish all"
+when
+ Member of myGroupOfItems changed
+then
+ val actions = getActions("mqtt","mqtt:broker:myUnsecureBroker")
+ actions.publishMQTT("allItems/"+triggeringItem.name,triggeringItem.state.toString)
+end
+```
+
+## Converting an MQTT1 installation
+
+The conversion is straight forward, but need to be done for each item.
+You do not need to convert everything in one go. MQTT1 and MQTT2 can coexist.
+
+> For mqtt1 make sure you have enabled the Legacy 1.x repository and installed "mqtt1".
+
+### 1 Command / 1 State topic
+
+Assume you have this item:
+
+```java
+Switch ExampleItem "Heatpump Power" { mqtt=">[mosquitto:heatpump/set:command:*:DEFAULT)],<[mosquitto:heatpump:JSONPATH($.power)]" }
+```
+
+This converts to an entry in your *.things file with a **Broker Thing** and a **Generic MQTT Thing** that uses the bridge:
+
+```java
+Bridge mqtt:broker:myUnsecureBroker [ host="192.168.0.42", secure=false ]
+{
+ Thing topic mything "My Thing" {
+ Channels:
+ Type switch : heatpumpChannel "Heatpump Power" [ stateTopic="heatpump", commandTopic="heatpump/set", transformationPattern="JSONPATH:$.power" ]
+ }
+}
+```
+
+Add as many channels as you have items and add the _stateTopic_ and _commandTopic_ accordingly.
+
+Your items change to:
+
+```java
+Switch ExampleItem "Heatpump Power" { channel="mqtt:topic:myUnsecureBroker:mything:heatpumpChannel" }
+```
+
+### 1 Command / 2 State topics
+
+If you receive updates from two different topics, you need to create multiple channels now, 1 for each MQTT receive topic.
+
+```java
+Switch ExampleItem "Heatpump Power" { mqtt=">[mosquitto:heatpump/set:command:*:DEFAULT)],<[mosquitto:heatpump/state1:state:*:DEFAULT,<[mosquitto:heatpump/state2:state:*:DEFAULT" }
+```
+
+This converts to:
+
+```java
+Bridge mqtt:broker:myUnsecureBroker [ host="192.168.0.42", secure=false ]
+{
+ Thing topic mything "My Thing" {
+ Channels:
+ Type switch : heatpumpChannel "Heatpump Power" [ stateTopic="heatpump/state1", commandTopic="heatpump/set" ]
+ Type switch : heatpumpChannel2 "Heatpump Power" [ stateTopic="heatpump/state2" ]
+ }
+}
+```
+
+Link both channels to one item. That item will publish to "heatpump/set" on a change and
+receive values from "heatpump/state1" and "heatpump/state2".
+
+```java
+Switch ExampleItem "Heatpump Power" { channel="mqtt:topic:myUnsecureBroker:mything:heatpumpChannel",
+ channel="mqtt:topic:myUnsecureBroker:mything:heatpumpChannel2" }
+```
diff --git a/bundles/pom.xml b/bundles/pom.xml
index 58bccab70b61d..47b63b0311c61 100644
--- a/bundles/pom.xml
+++ b/bundles/pom.xml
@@ -196,6 +196,7 @@
org.openhab.binding.heliosventilationorg.openhab.binding.heosorg.openhab.binding.herzborg
+ org.openhab.binding.homeassistantorg.openhab.binding.homeconnectorg.openhab.binding.homematicorg.openhab.binding.homewizard
@@ -290,8 +291,6 @@
org.openhab.binding.mqtt.awtrixlightorg.openhab.binding.mqtt.espmilighthuborg.openhab.binding.mqtt.fpp
- org.openhab.binding.mqtt.generic
- org.openhab.binding.mqtt.homeassistantorg.openhab.binding.mqtt.homieorg.openhab.binding.mqtt.ruuvigatewayorg.openhab.binding.mspa
diff --git a/features/openhab-addons/pom.xml b/features/openhab-addons/pom.xml
index 49de93d144c08..c9d8046b3641e 100644
--- a/features/openhab-addons/pom.xml
+++ b/features/openhab-addons/pom.xml
@@ -71,6 +71,7 @@
openhab-binding-bluetooth
+ openhab-binding-homeassistantopenhab-binding-modbusopenhab-binding-mqtt
diff --git a/features/openhab-addons/src/main/resources/footer.xml b/features/openhab-addons/src/main/resources/footer.xml
index bedc90943e096..3dd313f2b2810 100644
--- a/features/openhab-addons/src/main/resources/footer.xml
+++ b/features/openhab-addons/src/main/resources/footer.xml
@@ -23,33 +23,12 @@
openhab-runtime-baseopenhab-transport-mqtt
- openhab.tp-commons-net
- mvn:org.openhab.osgiify/org.graalvm.llvm.llvm-api/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.polyglot.polyglot/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.python.python-embedding/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.python.python-language/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.python.python-resources/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.regex.regex/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.sdk.collections/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.sdk.jniutils/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.sdk.nativeimage/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.sdk.word/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.shadowed.icu4j/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.shadowed.json/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.shadowed.xz/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.tools.profiler-tool/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-api/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-compiler/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-nfi/25.0.1
- mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-runtime/25.0.1mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt/${project.version}mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.awtrixlight/${project.version}mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.espmilighthub/${project.version}mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.fpp/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.generic/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.homeassistant/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.homie/${project.version}
- mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.ruuvigateway/${project.version}
+ mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.homie/${project.version}
+ mvn:org.openhab.addons.bundles/org.openhab.binding.mqtt.ruuvigateway/${project.version}openhab-runtime-base
diff --git a/bundles/org.openhab.binding.mqtt.generic/NOTICE b/itests/org.openhab.binding.homeassistant.tests/NOTICE
similarity index 100%
rename from bundles/org.openhab.binding.mqtt.generic/NOTICE
rename to itests/org.openhab.binding.homeassistant.tests/NOTICE
diff --git a/itests/org.openhab.binding.mqtt.homeassistant.tests/itest.bndrun b/itests/org.openhab.binding.homeassistant.tests/itest.bndrun
similarity index 95%
rename from itests/org.openhab.binding.mqtt.homeassistant.tests/itest.bndrun
rename to itests/org.openhab.binding.homeassistant.tests/itest.bndrun
index 7eb40e7c9976e..c777dc36ed8bd 100644
--- a/itests/org.openhab.binding.mqtt.homeassistant.tests/itest.bndrun
+++ b/itests/org.openhab.binding.homeassistant.tests/itest.bndrun
@@ -1,7 +1,7 @@
-include: ../itest-common.bndrun
Bundle-SymbolicName: ${project.artifactId}
-Fragment-Host: org.openhab.binding.mqtt.homeassistant
+Fragment-Host: org.openhab.binding.homeassistant
Import-Package: \
com.bugsnag.*;resolution:=optional,\
@@ -12,7 +12,7 @@ Import-Package: \
moquette-broker-[0-9.]*.jar;lib:=true
-runrequires: \
- bnd.identity;id='org.openhab.binding.mqtt.homeassistant.tests',\
+ bnd.identity;id='org.openhab.binding.homeassistant.tests',\
bnd.identity;id='org.graalvm.python.python-resources'
@@ -110,9 +110,8 @@ Import-Package: \
org.objectweb.asm.util;version='[9.6.0,9.6.1)',\
org.ops4j.pax.logging.pax-logging-api;version='[2.3.0,2.3.1)',\
org.openhab.binding.mqtt;version='[5.1.0,5.1.1)',\
- org.openhab.binding.mqtt.generic;version='[5.1.0,5.1.1)',\
- org.openhab.binding.mqtt.homeassistant;version='[5.1.0,5.1.1)',\
- org.openhab.binding.mqtt.homeassistant.tests;version='[5.1.0,5.1.1)',\
+ org.openhab.binding.homeassistant;version='[5.1.0,5.1.1)',\
+ org.openhab.binding.homeassistant.tests;version='[5.1.0,5.1.1)',\
org.openhab.core;version='[5.1.0,5.1.1)',\
org.openhab.core.addon;version='[5.1.0,5.1.1)',\
org.openhab.core.config.core;version='[5.1.0,5.1.1)',\
diff --git a/itests/org.openhab.binding.mqtt.homeassistant.tests/pom.xml b/itests/org.openhab.binding.homeassistant.tests/pom.xml
similarity index 93%
rename from itests/org.openhab.binding.mqtt.homeassistant.tests/pom.xml
rename to itests/org.openhab.binding.homeassistant.tests/pom.xml
index 3916ad2029974..340025b2e66ac 100644
--- a/itests/org.openhab.binding.mqtt.homeassistant.tests/pom.xml
+++ b/itests/org.openhab.binding.homeassistant.tests/pom.xml
@@ -10,9 +10,9 @@
5.1.0-SNAPSHOT
- org.openhab.binding.mqtt.homeassistant.tests
+ org.openhab.binding.homeassistant.tests
- openHAB Add-ons :: Integration Tests :: MQTT HomeAssistant Tests
+ openHAB Add-ons :: Integration Tests :: Home Assistant Tests1883
@@ -112,12 +112,7 @@
org.openhab.addons.bundles
- org.openhab.binding.mqtt.generic
- ${project.version}
-
-
- org.openhab.addons.bundles
- org.openhab.binding.mqtt.homeassistant
+ org.openhab.binding.homeassistant${project.version}
diff --git a/itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/DiscoverComponentsTest.java b/itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/DiscoverComponentsTest.java
similarity index 87%
rename from itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/DiscoverComponentsTest.java
rename to itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/DiscoverComponentsTest.java
index a201cb93ab923..e1491662bd6be 100644
--- a/itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/DiscoverComponentsTest.java
+++ b/itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/DiscoverComponentsTest.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant;
+package org.openhab.binding.homeassistant;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
@@ -34,14 +34,14 @@
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
+import org.openhab.binding.homeassistant.internal.DiscoverComponents;
+import org.openhab.binding.homeassistant.internal.DiscoverComponents.ComponentDiscovered;
+import org.openhab.binding.homeassistant.internal.HaID;
+import org.openhab.binding.homeassistant.internal.HandlerConfiguration;
+import org.openhab.binding.homeassistant.internal.HomeAssistantChannelLinkageChecker;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
import org.openhab.binding.mqtt.generic.AvailabilityTracker;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
-import org.openhab.binding.mqtt.homeassistant.internal.DiscoverComponents;
-import org.openhab.binding.mqtt.homeassistant.internal.DiscoverComponents.ComponentDiscovered;
-import org.openhab.binding.mqtt.homeassistant.internal.HaID;
-import org.openhab.binding.mqtt.homeassistant.internal.HandlerConfiguration;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantChannelLinkageChecker;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
import org.openhab.core.i18n.UnitProvider;
import org.openhab.core.io.transport.mqtt.MqttBrokerConnection;
import org.openhab.core.test.java.JavaOSGiTest;
diff --git a/itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/HomeAssistantMQTTImplementationTest.java b/itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/HomeAssistantMQTTImplementationTest.java
similarity index 93%
rename from itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/HomeAssistantMQTTImplementationTest.java
rename to itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/HomeAssistantMQTTImplementationTest.java
index f1e794ffca094..2f015447a2a2b 100644
--- a/itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/HomeAssistantMQTTImplementationTest.java
+++ b/itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/HomeAssistantMQTTImplementationTest.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant;
+package org.openhab.binding.homeassistant;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -39,16 +39,16 @@
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
+import org.openhab.binding.homeassistant.internal.DiscoverComponents;
+import org.openhab.binding.homeassistant.internal.DiscoverComponents.ComponentDiscovered;
+import org.openhab.binding.homeassistant.internal.HaID;
+import org.openhab.binding.homeassistant.internal.HomeAssistantChannelLinkageChecker;
+import org.openhab.binding.homeassistant.internal.HomeAssistantPythonBridge;
+import org.openhab.binding.homeassistant.internal.component.AbstractComponent;
+import org.openhab.binding.homeassistant.internal.component.Switch;
import org.openhab.binding.mqtt.generic.AvailabilityTracker;
import org.openhab.binding.mqtt.generic.ChannelStateUpdateListener;
import org.openhab.binding.mqtt.generic.MqttChannelTypeProvider;
-import org.openhab.binding.mqtt.homeassistant.internal.DiscoverComponents;
-import org.openhab.binding.mqtt.homeassistant.internal.DiscoverComponents.ComponentDiscovered;
-import org.openhab.binding.mqtt.homeassistant.internal.HaID;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantChannelLinkageChecker;
-import org.openhab.binding.mqtt.homeassistant.internal.HomeAssistantPythonBridge;
-import org.openhab.binding.mqtt.homeassistant.internal.component.AbstractComponent;
-import org.openhab.binding.mqtt.homeassistant.internal.component.Switch;
import org.openhab.core.i18n.UnitProvider;
import org.openhab.core.io.transport.mqtt.MqttBrokerConnection;
import org.openhab.core.io.transport.mqtt.MqttConnectionObserver;
diff --git a/itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/MqttOSGiTest.java b/itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/MqttOSGiTest.java
similarity index 98%
rename from itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/MqttOSGiTest.java
rename to itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/MqttOSGiTest.java
index 046643ed795f3..8a8a6bc9e778a 100644
--- a/itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/MqttOSGiTest.java
+++ b/itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/MqttOSGiTest.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant;
+package org.openhab.binding.homeassistant;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/ThingChannelConstants.java b/itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/ThingChannelConstants.java
similarity index 78%
rename from itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/ThingChannelConstants.java
rename to itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/ThingChannelConstants.java
index 3ffb93c8c74b8..ebdad9410f624 100644
--- a/itests/org.openhab.binding.mqtt.homeassistant.tests/src/main/java/org/openhab/binding/mqtt/homeassistant/ThingChannelConstants.java
+++ b/itests/org.openhab.binding.homeassistant.tests/src/main/java/org/openhab/binding/homeassistant/ThingChannelConstants.java
@@ -10,9 +10,9 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.mqtt.homeassistant;
+package org.openhab.binding.homeassistant;
-import static org.openhab.binding.mqtt.homeassistant.generic.internal.MqttBindingConstants.HOMEASSISTANT_MQTT_THING;
+import static org.openhab.binding.homeassistant.internal.HomeAssistantBindingConstants.HOMEASSISTANT_DEVICE_THING;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.core.thing.ThingUID;
@@ -25,5 +25,5 @@
@NonNullByDefault
public class ThingChannelConstants {
// Common ThingUID and ChannelUIDs
- public static final ThingUID TEST_HOME_ASSISTANT_THING = new ThingUID(HOMEASSISTANT_MQTT_THING, "device234");
+ public static final ThingUID TEST_HOME_ASSISTANT_THING = new ThingUID(HOMEASSISTANT_DEVICE_THING, "device234");
}
diff --git a/itests/org.openhab.binding.mqtt.homeassistant.tests/NOTICE b/itests/org.openhab.binding.mqtt.homeassistant.tests/NOTICE
deleted file mode 100644
index 38d625e349232..0000000000000
--- a/itests/org.openhab.binding.mqtt.homeassistant.tests/NOTICE
+++ /dev/null
@@ -1,13 +0,0 @@
-This content is produced and maintained by the openHAB project.
-
-* Project home: https://www.openhab.org
-
-== Declared Project Licenses
-
-This program and the accompanying materials are made available under the terms
-of the Eclipse Public License 2.0 which is available at
-https://www.eclipse.org/legal/epl-2.0/.
-
-== Source Code
-
-https://github.com/openhab/openhab-addons
diff --git a/itests/org.openhab.binding.mqtt.homie.tests/itest.bndrun b/itests/org.openhab.binding.mqtt.homie.tests/itest.bndrun
index c2ca2935b02ad..f1b4741542852 100644
--- a/itests/org.openhab.binding.mqtt.homie.tests/itest.bndrun
+++ b/itests/org.openhab.binding.mqtt.homie.tests/itest.bndrun
@@ -101,7 +101,6 @@ Import-Package: \
org.objectweb.asm.util;version='[9.6.0,9.6.1)',\
org.ops4j.pax.logging.pax-logging-api;version='[2.3.0,2.3.1)',\
org.openhab.binding.mqtt;version='[5.1.0,5.1.1)',\
- org.openhab.binding.mqtt.generic;version='[5.1.0,5.1.1)',\
org.openhab.binding.mqtt.homie;version='[5.1.0,5.1.1)',\
org.openhab.binding.mqtt.homie.tests;version='[5.1.0,5.1.1)',\
org.openhab.core;version='[5.1.0,5.1.1)',\
diff --git a/itests/org.openhab.binding.mqtt.homie.tests/pom.xml b/itests/org.openhab.binding.mqtt.homie.tests/pom.xml
index 07220e2fbbdc0..0ea5b1edd84f3 100644
--- a/itests/org.openhab.binding.mqtt.homie.tests/pom.xml
+++ b/itests/org.openhab.binding.mqtt.homie.tests/pom.xml
@@ -24,11 +24,6 @@
org.openhab.binding.mqtt${project.version}
-
- org.openhab.addons.bundles
- org.openhab.binding.mqtt.generic
- ${project.version}
- org.openhab.addons.bundlesorg.openhab.binding.mqtt.homie
diff --git a/itests/org.openhab.binding.mqtt.ruuvigateway.tests/itest.bndrun b/itests/org.openhab.binding.mqtt.ruuvigateway.tests/itest.bndrun
index 4cfbeef9c096d..0abddc95faa17 100644
--- a/itests/org.openhab.binding.mqtt.ruuvigateway.tests/itest.bndrun
+++ b/itests/org.openhab.binding.mqtt.ruuvigateway.tests/itest.bndrun
@@ -102,7 +102,6 @@ Import-Package: \
org.objectweb.asm.util;version='[9.6.0,9.6.1)',\
org.ops4j.pax.logging.pax-logging-api;version='[2.3.0,2.3.1)',\
org.openhab.binding.mqtt;version='[5.1.0,5.1.1)',\
- org.openhab.binding.mqtt.generic;version='[5.1.0,5.1.1)',\
org.openhab.binding.mqtt.ruuvigateway;version='[5.1.0,5.1.1)',\
org.openhab.binding.mqtt.ruuvigateway.tests;version='[5.1.0,5.1.1)',\
org.openhab.core;version='[5.1.0,5.1.1)',\
diff --git a/itests/org.openhab.binding.mqtt.ruuvigateway.tests/pom.xml b/itests/org.openhab.binding.mqtt.ruuvigateway.tests/pom.xml
index ca41fa9b3afbb..9c72602018837 100644
--- a/itests/org.openhab.binding.mqtt.ruuvigateway.tests/pom.xml
+++ b/itests/org.openhab.binding.mqtt.ruuvigateway.tests/pom.xml
@@ -24,11 +24,6 @@
org.openhab.binding.mqtt${project.version}
-
- org.openhab.addons.bundles
- org.openhab.binding.mqtt.generic
- ${project.version}
- org.openhab.addons.bundlesorg.openhab.binding.mqtt.ruuvigateway
diff --git a/itests/pom.xml b/itests/pom.xml
index 630236e192390..8af242a9ddd95 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -22,11 +22,11 @@
org.openhab.binding.astro.testsorg.openhab.binding.avmfritz.testsorg.openhab.binding.feed.tests
+ org.openhab.binding.homeassistant.testsorg.openhab.binding.hue.testsorg.openhab.binding.max.testsorg.openhab.binding.mielecloud.testsorg.openhab.binding.modbus.tests
- org.openhab.binding.mqtt.homeassistant.testsorg.openhab.binding.mqtt.homie.testsorg.openhab.binding.mqtt.ruuvigateway.testsorg.openhab.binding.ntp.tests