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.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentChannel.java index f0481c112..b016a6960 100644 --- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentChannel.java +++ b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentChannel.java @@ -232,6 +232,11 @@ public class ComponentChannel { .withCommandTopic(commandTopic).makeTrigger(trigger).withFormatter(format).build(), channelUID, valueState, channelStateUpdateListener, commandFilter); + // disabled by default components should always show up as advanced + if (!component.isEnabledByDefault()) { + isAdvanced = true; + } + if (this.trigger) { type = ChannelTypeBuilder.trigger(channelTypeUID, label) .withConfigDescriptionURI(URI.create(MqttBindingConstants.CONFIG_HA_CHANNEL)) 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.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractComponent.java index 5f9caea2a..d4ab2251c 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.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/AbstractComponent.java @@ -239,4 +239,8 @@ public abstract class AbstractComponent public TransformationServiceProvider getTransformationServiceProvider() { return componentConfiguration.getTransformationServiceProvider(); } + + public boolean isEnabledByDefault() { + return channelConfiguration.isEnabledByDefault(); + } } 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.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Vacuum.java index e599b9fa3..7fd9d6b90 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.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Vacuum.java @@ -127,9 +127,6 @@ public class Vacuum extends AbstractComponent { @SerializedName("docked_topic") protected @Nullable String dockedTopic; - @SerializedName("enabled_by_default") - protected @Nullable Boolean enabledByDefault = true; - @SerializedName("error_template") protected @Nullable String errorTemplate; @SerializedName("error_topic") diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractChannelConfiguration.java b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractChannelConfiguration.java index dda84ada7..ae64e5d24 100644 --- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractChannelConfiguration.java +++ b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/config/dto/AbstractChannelConfiguration.java @@ -55,6 +55,9 @@ public abstract class AbstractChannelConfiguration { @SerializedName("availability_template") protected @Nullable String availabilityTemplate; + @SerializedName("enabled_by_default") + protected boolean enabledByDefault = true; + /** * A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with * availability_topic @@ -168,6 +171,10 @@ public abstract class AbstractChannelConfiguration { return availabilityTemplate; } + public boolean isEnabledByDefault() { + return enabledByDefault; + } + @Nullable public Device getDevice() { return device;