]> git.basschouten.com Git - openhab-addons.git/commitdiff
[mqtt.homeassistant] bring channel ids inline with coding standards (#17604)
authorCody Cutrer <cody@cutrer.us>
Mon, 21 Oct 2024 20:10:09 +0000 (15:10 -0500)
committerGitHub <noreply@github.com>
Mon, 21 Oct 2024 20:10:09 +0000 (22:10 +0200)
but only for newStyleChannels, which is already a breaking change of
most channels getting renamed for 4.3 anyway

Signed-off-by: Cody Cutrer <cody@cutrer.us>
13 files changed:
bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Climate.java
bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/DefaultSchemaLight.java
bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Fan.java
bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/JSONSchemaLight.java
bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Light.java
bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/TemplateSchemaLight.java
bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Update.java
bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/component/Vacuum.java
bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/ClimateTests.java
bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/DefaultSchemaLightTests.java
bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/JSONSchemaLightTests.java
bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/TemplateSchemaLightTests.java
bundles/org.openhab.binding.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/VacuumTests.java

index b8439724809253b89f96e3225bb91ad98c32cb17..1f156d103c6a724a7c5447f417d8ee1f848375b2 100644 (file)
@@ -48,15 +48,20 @@ import com.google.gson.annotations.SerializedName;
 public class Climate extends AbstractComponent<Climate.ChannelConfiguration> {
     public static final String ACTION_CH_ID = "action";
     public static final String AUX_CH_ID = "aux";
-    public static final String AWAY_MODE_CH_ID = "awayMode";
-    public static final String CURRENT_TEMPERATURE_CH_ID = "currentTemperature";
-    public static final String FAN_MODE_CH_ID = "fanMode";
+    public static final String AWAY_MODE_CH_ID = "away-mode";
+    public static final String AWAY_MODE_CH_ID_DEPRECATED = "awayMode";
+    public static final String CURRENT_TEMPERATURE_CH_ID = "current-temperature";
+    public static final String CURRENT_TEMPERATURE_CH_ID_DEPRECATED = "currentTemperature";
+    public static final String FAN_MODE_CH_ID = "fan-mode";
+    public static final String FAN_MODE_CH_ID_DEPRECATED = "fanMode";
     public static final String HOLD_CH_ID = "hold";
     public static final String MODE_CH_ID = "mode";
     public static final String SWING_CH_ID = "swing";
     public static final String TEMPERATURE_CH_ID = "temperature";
-    public static final String TEMPERATURE_HIGH_CH_ID = "temperatureHigh";
-    public static final String TEMPERATURE_LOW_CH_ID = "temperatureLow";
+    public static final String TEMPERATURE_HIGH_CH_ID = "temperature-high";
+    public static final String TEMPERATURE_HIGH_CH_ID_DEPRECATED = "temperatureHigh";
+    public static final String TEMPERATURE_LOW_CH_ID = "temperature-low";
+    public static final String TEMPERATURE_LOW_CH_ID_DEPRECATED = "temperatureLow";
     public static final String POWER_CH_ID = "power";
 
     public enum TemperatureUnit {
@@ -231,16 +236,18 @@ public class Climate extends AbstractComponent<Climate.ChannelConfiguration> {
                 channelConfiguration.auxCommandTopic, channelConfiguration.auxStateTemplate,
                 channelConfiguration.auxStateTopic, commandFilter);
 
-        buildOptionalChannel(AWAY_MODE_CH_ID, ComponentChannelType.SWITCH, new OnOffValue(), updateListener, null,
+        buildOptionalChannel(newStyleChannels ? AWAY_MODE_CH_ID : AWAY_MODE_CH_ID_DEPRECATED,
+                ComponentChannelType.SWITCH, new OnOffValue(), updateListener, null,
                 channelConfiguration.awayModeCommandTopic, channelConfiguration.awayModeStateTemplate,
                 channelConfiguration.awayModeStateTopic, commandFilter);
 
-        buildOptionalChannel(CURRENT_TEMPERATURE_CH_ID, ComponentChannelType.NUMBER,
+        buildOptionalChannel(newStyleChannels ? CURRENT_TEMPERATURE_CH_ID : CURRENT_TEMPERATURE_CH_ID_DEPRECATED,
+                ComponentChannelType.NUMBER,
                 new NumberValue(null, null, precision, channelConfiguration.temperatureUnit.getUnit()), updateListener,
                 null, null, channelConfiguration.currentTemperatureTemplate,
                 channelConfiguration.currentTemperatureTopic, commandFilter);
 
-        buildOptionalChannel(FAN_MODE_CH_ID, ComponentChannelType.STRING,
+        buildOptionalChannel(newStyleChannels ? FAN_MODE_CH_ID : FAN_MODE_CH_ID_DEPRECATED, ComponentChannelType.STRING,
                 new TextValue(channelConfiguration.fanModes.toArray(new String[0])), updateListener,
                 channelConfiguration.fanModeCommandTemplate, channelConfiguration.fanModeCommandTopic,
                 channelConfiguration.fanModeStateTemplate, channelConfiguration.fanModeStateTopic, commandFilter);
@@ -270,14 +277,16 @@ public class Climate extends AbstractComponent<Climate.ChannelConfiguration> {
                 channelConfiguration.temperatureCommandTopic, channelConfiguration.temperatureStateTemplate,
                 channelConfiguration.temperatureStateTopic, commandFilter);
 
-        buildOptionalChannel(TEMPERATURE_HIGH_CH_ID, ComponentChannelType.NUMBER,
+        buildOptionalChannel(newStyleChannels ? TEMPERATURE_HIGH_CH_ID : TEMPERATURE_HIGH_CH_ID_DEPRECATED,
+                ComponentChannelType.NUMBER,
                 new NumberValue(channelConfiguration.minTemp, channelConfiguration.maxTemp,
                         channelConfiguration.tempStep, channelConfiguration.temperatureUnit.getUnit()),
                 updateListener, channelConfiguration.temperatureHighCommandTemplate,
                 channelConfiguration.temperatureHighCommandTopic, channelConfiguration.temperatureHighStateTemplate,
                 channelConfiguration.temperatureHighStateTopic, commandFilter);
 
-        buildOptionalChannel(TEMPERATURE_LOW_CH_ID, ComponentChannelType.NUMBER,
+        buildOptionalChannel(newStyleChannels ? TEMPERATURE_LOW_CH_ID : TEMPERATURE_LOW_CH_ID_DEPRECATED,
+                ComponentChannelType.NUMBER,
                 new NumberValue(channelConfiguration.minTemp, channelConfiguration.maxTemp,
                         channelConfiguration.tempStep, channelConfiguration.temperatureUnit.getUnit()),
                 updateListener, channelConfiguration.temperatureLowCommandTemplate,
index de960385bb7dbd329447114f8d97a939d062c469..8a4e4a019a49e2791f7983b08c46eb9a5d32c48a 100644 (file)
@@ -63,8 +63,9 @@ public class DefaultSchemaLight extends Light {
     protected void buildChannels() {
         AutoUpdatePolicy autoUpdatePolicy = optimistic ? AutoUpdatePolicy.RECOMMEND : null;
         ComponentChannel localOnOffChannel;
-        localOnOffChannel = onOffChannel = buildChannel(ON_OFF_CHANNEL_ID, ComponentChannelType.SWITCH, onOffValue,
-                "On/Off State", this)
+        localOnOffChannel = onOffChannel = buildChannel(
+                newStyleChannels ? SWITCH_CHANNEL_ID : SWITCH_CHANNEL_ID_DEPRECATED, ComponentChannelType.SWITCH,
+                onOffValue, "On/Off State", this)
                 .stateTopic(channelConfiguration.stateTopic, channelConfiguration.stateValueTemplate)
                 .commandTopic(channelConfiguration.commandTopic, channelConfiguration.isRetain(),
                         channelConfiguration.getQos())
@@ -91,14 +92,15 @@ public class DefaultSchemaLight extends Light {
         }
 
         if (channelConfiguration.colorModeStateTopic != null) {
-            buildChannel(COLOR_MODE_CHANNEL_ID, ComponentChannelType.STRING, new TextValue(), "Current color mode",
-                    this)
+            buildChannel(newStyleChannels ? COLOR_MODE_CHANNEL_ID : COLOR_MODE_CHANNEL_ID_DEPRECATED,
+                    ComponentChannelType.STRING, new TextValue(), "Current color mode", this)
                     .stateTopic(channelConfiguration.colorModeStateTopic, channelConfiguration.colorModeValueTemplate)
                     .inferOptimistic(channelConfiguration.optimistic).build();
         }
 
         if (channelConfiguration.colorTempStateTopic != null || channelConfiguration.colorTempCommandTopic != null) {
-            buildChannel(COLOR_TEMP_CHANNEL_ID, ComponentChannelType.NUMBER, colorTempValue, "Color Temperature", this)
+            buildChannel(newStyleChannels ? COLOR_TEMP_CHANNEL_ID : COLOR_TEMP_CHANNEL_ID_DEPRECATED,
+                    ComponentChannelType.NUMBER, colorTempValue, "Color Temperature", this)
                     .stateTopic(channelConfiguration.colorTempStateTopic, channelConfiguration.colorTempValueTemplate)
                     .commandTopic(channelConfiguration.colorTempCommandTopic, channelConfiguration.isRetain(),
                             channelConfiguration.getQos())
@@ -178,7 +180,7 @@ public class DefaultSchemaLight extends Light {
             hiddenChannels.add(localOnOffChannel);
             channels.put(BRIGHTNESS_CHANNEL_ID, localBrightnessChannel);
         } else {
-            channels.put(ON_OFF_CHANNEL_ID, localOnOffChannel);
+            channels.put(newStyleChannels ? SWITCH_CHANNEL_ID : SWITCH_CHANNEL_ID_DEPRECATED, localOnOffChannel);
         }
     }
 
@@ -327,7 +329,8 @@ public class DefaultSchemaLight extends Light {
             } else {
                 listener.updateChannelState(primaryChannelUID, state);
             }
-        } else if (id.equals(COLOR_TEMP_CHANNEL_ID) || channel.getIdWithoutGroup().equals(EFFECT_CHANNEL_ID)) {
+        } else if (id.equals(newStyleChannels ? COLOR_TEMP_CHANNEL_ID : COLOR_TEMP_CHANNEL_ID_DEPRECATED)
+                || channel.getIdWithoutGroup().equals(EFFECT_CHANNEL_ID)) {
             // Real channels; pass through
             listener.updateChannelState(channel, state);
         } else if (id.equals(HS_CHANNEL_ID) || id.equals(XY_CHANNEL_ID)) {
index 6b44ba50a0e2268f9898b96f4a0eb59b9070d031..ec10103926e809d0e9113e91d9d2dde2772c187f 100644 (file)
@@ -45,7 +45,7 @@ import com.google.gson.annotations.SerializedName;
 public class Fan extends AbstractComponent<Fan.ChannelConfiguration> implements ChannelStateUpdateListener {
     public static final String SWITCH_CHANNEL_ID = "fan";
     public static final String SPEED_CHANNEL_ID = "speed";
-    public static final String PRESET_MODE_CHANNEL_ID = "preset_mode";
+    public static final String PRESET_MODE_CHANNEL_ID = "preset-mode";
     public static final String OSCILLATION_CHANNEL_ID = "oscillation";
     public static final String DIRECTION_CHANNEL_ID = "direction";
 
index ee744a5031a7823ab942b8207cb7549249760793..d21651a8f557a37f377a74bd42ea14c230814ebb 100644 (file)
@@ -91,15 +91,17 @@ public class JSONSchemaLight extends AbstractRawSchemaLight {
             }
 
             if (supportedColorModes.contains(LightColorMode.COLOR_MODE_COLOR_TEMP)) {
-                colorTempChannel = buildChannel(COLOR_TEMP_CHANNEL_ID, ComponentChannelType.NUMBER, colorTempValue,
-                        "Color Temperature", this).commandTopic(DUMMY_TOPIC, true, 1)
-                        .commandFilter(command -> handleColorTempCommand(command))
+                colorTempChannel = buildChannel(
+                        newStyleChannels ? COLOR_TEMP_CHANNEL_ID : COLOR_TEMP_CHANNEL_ID_DEPRECATED,
+                        ComponentChannelType.NUMBER, colorTempValue, "Color Temperature", this)
+                        .commandTopic(DUMMY_TOPIC, true, 1).commandFilter(command -> handleColorTempCommand(command))
                         .withAutoUpdatePolicy(autoUpdatePolicy).build();
 
                 if (hasColorChannel) {
                     colorModeValue = new TextValue(
                             supportedColorModes.stream().map(LightColorMode::serializedName).toArray(String[]::new));
-                    buildChannel(COLOR_MODE_CHANNEL_ID, ComponentChannelType.STRING, colorModeValue, "Color Mode", this)
+                    buildChannel(newStyleChannels ? COLOR_MODE_CHANNEL_ID : COLOR_MODE_CHANNEL_ID_DEPRECATED,
+                            ComponentChannelType.STRING, colorModeValue, "Color Mode", this)
                             .withAutoUpdatePolicy(autoUpdatePolicy).isAdvanced(true).build();
 
                 }
@@ -115,9 +117,9 @@ public class JSONSchemaLight extends AbstractRawSchemaLight {
                     "Brightness", this).commandTopic(DUMMY_TOPIC, true, 1).commandFilter(this::handleCommand)
                     .withAutoUpdatePolicy(autoUpdatePolicy).build();
         } else {
-            onOffChannel = buildChannel(ON_OFF_CHANNEL_ID, ComponentChannelType.SWITCH, onOffValue, "On/Off State",
-                    this).commandTopic(DUMMY_TOPIC, true, 1).commandFilter(this::handleCommand)
-                    .withAutoUpdatePolicy(autoUpdatePolicy).build();
+            onOffChannel = buildChannel(newStyleChannels ? SWITCH_CHANNEL_ID : SWITCH_CHANNEL_ID_DEPRECATED,
+                    ComponentChannelType.SWITCH, onOffValue, "On/Off State", this).commandTopic(DUMMY_TOPIC, true, 1)
+                    .commandFilter(this::handleCommand).withAutoUpdatePolicy(autoUpdatePolicy).build();
         }
 
         if (effectValue != null) {
@@ -312,7 +314,8 @@ public class JSONSchemaLight extends AbstractRawSchemaLight {
                         } else {
                             colorTempValue
                                     .update(new QuantityType(Objects.requireNonNull(jsonState.colorTemp), Units.MIRED));
-                            listener.updateChannelState(buildChannelUID(COLOR_TEMP_CHANNEL_ID),
+                            listener.updateChannelState(buildChannelUID(
+                                    newStyleChannels ? COLOR_TEMP_CHANNEL_ID : COLOR_TEMP_CHANNEL_ID_DEPRECATED),
                                     colorTempValue.getChannelState());
 
                             // Populate the color channel (if there is one) to match the color temperature.
@@ -339,7 +342,8 @@ public class JSONSchemaLight extends AbstractRawSchemaLight {
                             if (colorTempChannel != null) {
                                 double kelvin = ColorUtil.xyToKelvin(xy);
                                 colorTempValue.update(new QuantityType(kelvin, Units.KELVIN));
-                                listener.updateChannelState(buildChannelUID(COLOR_TEMP_CHANNEL_ID),
+                                listener.updateChannelState(buildChannelUID(
+                                        newStyleChannels ? COLOR_TEMP_CHANNEL_ID : COLOR_TEMP_CHANNEL_ID_DEPRECATED),
                                         colorTempValue.getChannelState());
                             }
                         }
@@ -374,7 +378,9 @@ public class JSONSchemaLight extends AbstractRawSchemaLight {
                     final double[] xy = ColorUtil.hsbToXY(colorState);
                     double kelvin = ColorUtil.xyToKelvin(new double[] { xy[0], xy[1] });
                     colorTempValue.update(new QuantityType(kelvin, Units.KELVIN));
-                    listener.updateChannelState(buildChannelUID(COLOR_TEMP_CHANNEL_ID),
+                    listener.updateChannelState(
+                            buildChannelUID(
+                                    newStyleChannels ? COLOR_TEMP_CHANNEL_ID : COLOR_TEMP_CHANNEL_ID_DEPRECATED),
                             colorTempValue.getChannelState());
                 }
 
@@ -383,7 +389,9 @@ public class JSONSchemaLight extends AbstractRawSchemaLight {
                 // https://github.com/home-assistant/core/blob/4f965f0eca09f0d12ae1c98c6786054063a36b44/homeassistant/components/mqtt/light/schema_json.py#L258
                 if (jsonState.colorTemp != null) {
                     colorTempValue.update(new QuantityType(Objects.requireNonNull(jsonState.colorTemp), Units.MIRED));
-                    listener.updateChannelState(buildChannelUID(COLOR_TEMP_CHANNEL_ID),
+                    listener.updateChannelState(
+                            buildChannelUID(
+                                    newStyleChannels ? COLOR_TEMP_CHANNEL_ID : COLOR_TEMP_CHANNEL_ID_DEPRECATED),
                             colorTempValue.getChannelState());
 
                     colorModeValue.update(new StringType(LightColorMode.COLOR_MODE_COLOR_TEMP.serializedName()));
@@ -411,7 +419,9 @@ public class JSONSchemaLight extends AbstractRawSchemaLight {
             logger.warn("Invalid color value for {}", getHaID());
         }
 
-        listener.updateChannelState(buildChannelUID(COLOR_MODE_CHANNEL_ID), colorModeValue.getChannelState());
+        listener.updateChannelState(
+                buildChannelUID(newStyleChannels ? COLOR_MODE_CHANNEL_ID : COLOR_MODE_CHANNEL_ID_DEPRECATED),
+                colorModeValue.getChannelState());
 
         if (localColorChannel != null) {
             listener.updateChannelState(localColorChannel.getChannel().getUID(), colorValue.getChannelState());
index 46f26d530f7570d449f26de628adb14a0a438ed3..443d06797f9a7f222985d55cc2d5895e4a022454 100644 (file)
@@ -55,10 +55,13 @@ public abstract class Light extends AbstractComponent<Light.ChannelConfiguration
     protected static final String TEMPLATE_SCHEMA = "template";
 
     protected static final String STATE_CHANNEL_ID = "state";
-    protected static final String ON_OFF_CHANNEL_ID = "on_off";
+    protected static final String SWITCH_CHANNEL_ID = "switch";
+    protected static final String SWITCH_CHANNEL_ID_DEPRECATED = "on_off";
     protected static final String BRIGHTNESS_CHANNEL_ID = "brightness";
-    protected static final String COLOR_MODE_CHANNEL_ID = "color_mode";
-    protected static final String COLOR_TEMP_CHANNEL_ID = "color_temp";
+    protected static final String COLOR_MODE_CHANNEL_ID = "color-mode";
+    protected static final String COLOR_MODE_CHANNEL_ID_DEPRECATED = "color_mode";
+    protected static final String COLOR_TEMP_CHANNEL_ID = "color-temp";
+    protected static final String COLOR_TEMP_CHANNEL_ID_DEPRECATED = "color_temp";
     protected static final String EFFECT_CHANNEL_ID = "effect";
     // This channel is a synthetic channel that may send to other channels
     // underneath
index fd4512ff12495877ffaced31b5da4649791018db..8a1abfe2418deef1fb898ebb91586db3b3836171 100644 (file)
@@ -96,13 +96,14 @@ public class TemplateSchemaLight extends AbstractRawSchemaLight {
                     "Brightness", this).commandTopic(DUMMY_TOPIC, true, 1)
                     .commandFilter(command -> handleCommand(command)).withAutoUpdatePolicy(autoUpdatePolicy).build();
         } else {
-            onOffChannel = buildChannel(ON_OFF_CHANNEL_ID, ComponentChannelType.SWITCH, onOffValue, "On/Off State",
-                    this).commandTopic(DUMMY_TOPIC, true, 1).commandFilter(command -> handleCommand(command))
-                    .withAutoUpdatePolicy(autoUpdatePolicy).build();
+            onOffChannel = buildChannel(newStyleChannels ? SWITCH_CHANNEL_ID : SWITCH_CHANNEL_ID_DEPRECATED,
+                    ComponentChannelType.SWITCH, onOffValue, "On/Off State", this).commandTopic(DUMMY_TOPIC, true, 1)
+                    .commandFilter(command -> handleCommand(command)).withAutoUpdatePolicy(autoUpdatePolicy).build();
         }
 
         if (channelConfiguration.colorTempTemplate != null) {
-            buildChannel(COLOR_TEMP_CHANNEL_ID, ComponentChannelType.NUMBER, colorTempValue, "Color Temperature", this)
+            buildChannel(newStyleChannels ? COLOR_TEMP_CHANNEL_ID : COLOR_TEMP_CHANNEL_ID_DEPRECATED,
+                    ComponentChannelType.NUMBER, colorTempValue, "Color Temperature", this)
                     .commandTopic(DUMMY_TOPIC, true, 1).commandFilter(command -> handleColorTempCommand(command))
                     .withAutoUpdatePolicy(autoUpdatePolicy).build();
         }
@@ -284,7 +285,9 @@ public class TemplateSchemaLight extends AbstractRawSchemaLight {
             } else {
                 colorTempValue.update(new QuantityType(mireds, Units.MIRED));
             }
-            listener.updateChannelState(buildChannelUID(COLOR_TEMP_CHANNEL_ID), colorTempValue.getChannelState());
+            listener.updateChannelState(
+                    buildChannelUID(newStyleChannels ? COLOR_TEMP_CHANNEL_ID : COLOR_TEMP_CHANNEL_ID_DEPRECATED),
+                    colorTempValue.getChannelState());
         }
     }
 
index 5ea64b4a24663a6dd73e2d58b097c5a5a7928af7..42f59ddd1914caf7528122c002564b041f12af9e 100644 (file)
@@ -43,7 +43,7 @@ import com.google.gson.annotations.SerializedName;
 @NonNullByDefault
 public class Update extends AbstractComponent<Update.ChannelConfiguration> implements ChannelStateUpdateListener {
     public static final String UPDATE_CHANNEL_ID = "update";
-    public static final String LATEST_VERSION_CHANNEL_ID = "latestVersion";
+    public static final String LATEST_VERSION_CHANNEL_ID = "latest-version";
 
     /**
      * Configuration class for MQTT component
index 5862255f5ceaa8f67b3c465ac61c715e67a4671e..857eb04f2c3fbdc4cc19f1f358a31889f543505f 100644 (file)
@@ -71,14 +71,18 @@ public class Vacuum extends AbstractComponent<Vacuum.ChannelConfiguration> {
     public static final String STATE_ERROR = "error";
 
     public static final String COMMAND_CH_ID = "command";
-    public static final String FAN_SPEED_CH_ID = "fanSpeed";
-    public static final String CUSTOM_COMMAND_CH_ID = "customCommand";
-    public static final String BATTERY_LEVEL_CH_ID = "batteryLevel";
+    public static final String FAN_SPEED_CH_ID = "fan-speed";
+    public static final String FAN_SPEED_CH_ID_DEPRECATED = "fanSpeed";
+    public static final String CUSTOM_COMMAND_CH_ID = "custom-command";
+    public static final String CUSTOM_COMMAND_CH_ID_DEPRECATED = "customCommand";
+    public static final String BATTERY_LEVEL_CH_ID = "battery-level";
+    public static final String BATTERY_LEVEL_CH_ID_DEPRECATED = "batteryLevel";
     public static final String CHARGING_CH_ID = "charging";
     public static final String CLEANING_CH_ID = "cleaning";
     public static final String DOCKED_CH_ID = "docked";
     public static final String ERROR_CH_ID = "error";
-    public static final String JSON_ATTRIBUTES_CH_ID = "jsonAttributes";
+    public static final String JSON_ATTRIBUTES_CH_ID = "json-attributes";
+    public static final String JSON_ATTRIBUTES_CH_ID_DEPRECATED = "jsonAttributes";
     public static final String STATE_CH_ID = "state";
 
     public static final List<String> LEGACY_DEFAULT_FEATURES = List.of(FEATURE_TURN_ON, FEATURE_TURN_OFF, FEATURE_STOP,
@@ -237,28 +241,33 @@ public class Vacuum extends AbstractComponent<Vacuum.ChannelConfiguration> {
             }
             var fanSpeedValue = new TextValue(fanSpeedList.toArray(new String[0]));
             if (channelConfiguration.schema == Schema.LEGACY) {
-                buildOptionalChannel(FAN_SPEED_CH_ID, ComponentChannelType.STRING, fanSpeedValue, updateListener, null,
+                buildOptionalChannel(newStyleChannels ? FAN_SPEED_CH_ID : FAN_SPEED_CH_ID_DEPRECATED,
+                        ComponentChannelType.STRING, fanSpeedValue, updateListener, null,
                         channelConfiguration.setFanSpeedTopic, channelConfiguration.fanSpeedTemplate,
                         channelConfiguration.fanSpeedTopic);
             } else if (deviceSupportedFeatures.contains(FEATURE_STATUS)) {
-                buildOptionalChannel(FAN_SPEED_CH_ID, ComponentChannelType.STRING, fanSpeedValue, updateListener, null,
+                buildOptionalChannel(newStyleChannels ? FAN_SPEED_CH_ID : FAN_SPEED_CH_ID_DEPRECATED,
+                        ComponentChannelType.STRING, fanSpeedValue, updateListener, null,
                         channelConfiguration.setFanSpeedTopic, "{{ value_json.fan_speed }}",
                         channelConfiguration.stateTopic);
             } else {
                 LOGGER.info("Status feature is disabled, unable to get fan speed.");
-                buildOptionalChannel(FAN_SPEED_CH_ID, ComponentChannelType.STRING, fanSpeedValue, updateListener, null,
+                buildOptionalChannel(newStyleChannels ? FAN_SPEED_CH_ID : FAN_SPEED_CH_ID_DEPRECATED,
+                        ComponentChannelType.STRING, fanSpeedValue, updateListener, null,
                         channelConfiguration.setFanSpeedTopic, null, null);
             }
         }
 
         if (deviceSupportedFeatures.contains(FEATURE_SEND_COMMAND)) {
-            buildOptionalChannel(CUSTOM_COMMAND_CH_ID, ComponentChannelType.STRING, new TextValue(), updateListener,
-                    null, channelConfiguration.sendCommandTopic, null, null);
+            buildOptionalChannel(newStyleChannels ? CUSTOM_COMMAND_CH_ID : CUSTOM_COMMAND_CH_ID_DEPRECATED,
+                    ComponentChannelType.STRING, new TextValue(), updateListener, null,
+                    channelConfiguration.sendCommandTopic, null, null);
         }
 
         if (channelConfiguration.schema == Schema.LEGACY) {
             // I assume, that if these topics defined in config, then we don't need to check features
-            buildOptionalChannel(BATTERY_LEVEL_CH_ID, ComponentChannelType.DIMMER,
+            buildOptionalChannel(newStyleChannels ? BATTERY_LEVEL_CH_ID : BATTERY_LEVEL_CH_ID_DEPRECATED,
+                    ComponentChannelType.DIMMER,
                     new PercentageValue(BigDecimal.ZERO, BigDecimal.valueOf(100), BigDecimal.ONE, null, null),
                     updateListener, null, null, channelConfiguration.batteryLevelTemplate,
                     channelConfiguration.batteryLevelTopic);
@@ -280,7 +289,8 @@ public class Vacuum extends AbstractComponent<Vacuum.ChannelConfiguration> {
                                 STATE_RETURNING, STATE_ERROR }),
                         updateListener, null, null, "{{ value_json.state }}", channelConfiguration.stateTopic);
                 if (deviceSupportedFeatures.contains(FEATURE_BATTERY)) {
-                    buildOptionalChannel(BATTERY_LEVEL_CH_ID, ComponentChannelType.DIMMER,
+                    buildOptionalChannel(newStyleChannels ? BATTERY_LEVEL_CH_ID : BATTERY_LEVEL_CH_ID_DEPRECATED,
+                            ComponentChannelType.DIMMER,
                             new PercentageValue(BigDecimal.ZERO, BigDecimal.valueOf(100), BigDecimal.ONE, null, null),
                             updateListener, null, null, "{{ value_json.battery_level }}",
                             channelConfiguration.stateTopic);
@@ -288,8 +298,9 @@ public class Vacuum extends AbstractComponent<Vacuum.ChannelConfiguration> {
             }
         }
 
-        buildOptionalChannel(JSON_ATTRIBUTES_CH_ID, ComponentChannelType.STRING, new TextValue(), updateListener, null,
-                null, channelConfiguration.jsonAttributesTemplate, channelConfiguration.jsonAttributesTopic);
+        buildOptionalChannel(newStyleChannels ? JSON_ATTRIBUTES_CH_ID : JSON_ATTRIBUTES_CH_ID_DEPRECATED,
+                ComponentChannelType.STRING, new TextValue(), updateListener, null, null,
+                channelConfiguration.jsonAttributesTemplate, channelConfiguration.jsonAttributesTopic);
         finalizeChannels();
     }
 
index b41a5078d5ae592cf8a71e9f98e4335d458894bb..3ea6c61914dd128a266cc81f9c40bab3b689473e 100644 (file)
@@ -74,9 +74,10 @@ public class ClimateTests extends AbstractComponentTests {
         assertThat(component.getName(), is("th1"));
 
         assertChannel(component, Climate.ACTION_CH_ID, "zigbee2mqtt/th1", "", "th1", TextValue.class);
-        assertChannel(component, Climate.AWAY_MODE_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/set/away_mode", "th1",
-                OnOffValue.class);
-        assertChannel(component, Climate.CURRENT_TEMPERATURE_CH_ID, "zigbee2mqtt/th1", "", "th1", NumberValue.class);
+        assertChannel(component, Climate.AWAY_MODE_CH_ID_DEPRECATED, "zigbee2mqtt/th1", "zigbee2mqtt/th1/set/away_mode",
+                "th1", OnOffValue.class);
+        assertChannel(component, Climate.CURRENT_TEMPERATURE_CH_ID_DEPRECATED, "zigbee2mqtt/th1", "", "th1",
+                NumberValue.class);
         assertChannel(component, Climate.HOLD_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/set/preset", "th1",
                 TextValue.class);
         assertChannel(component, Climate.MODE_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/set/system_mode", "th1",
@@ -90,13 +91,13 @@ public class ClimateTests extends AbstractComponentTests {
                 "current_heating_setpoint": "24"}\
                 """);
         assertState(component, Climate.ACTION_CH_ID, new StringType("off"));
-        assertState(component, Climate.AWAY_MODE_CH_ID, OnOffType.ON);
-        assertState(component, Climate.CURRENT_TEMPERATURE_CH_ID, new QuantityType<>(22.2, SIUnits.CELSIUS));
+        assertState(component, Climate.AWAY_MODE_CH_ID_DEPRECATED, OnOffType.ON);
+        assertState(component, Climate.CURRENT_TEMPERATURE_CH_ID_DEPRECATED, new QuantityType<>(22.2, SIUnits.CELSIUS));
         assertState(component, Climate.HOLD_CH_ID, new StringType("schedule"));
         assertState(component, Climate.MODE_CH_ID, new StringType("heat"));
         assertState(component, Climate.TEMPERATURE_CH_ID, new QuantityType<>(24, SIUnits.CELSIUS));
 
-        component.getChannel(Climate.AWAY_MODE_CH_ID).getState().publishValue(OnOffType.OFF);
+        component.getChannel(Climate.AWAY_MODE_CH_ID_DEPRECATED).getState().publishValue(OnOffType.OFF);
         assertPublished("zigbee2mqtt/th1/set/away_mode", "OFF");
         component.getChannel(Climate.HOLD_CH_ID).getState().publishValue(new StringType("eco"));
         assertPublished("zigbee2mqtt/th1/set/preset", "eco");
@@ -143,9 +144,10 @@ public class ClimateTests extends AbstractComponentTests {
         assertThat(component.getName(), is("th1"));
 
         assertChannel(component, Climate.ACTION_CH_ID, "zigbee2mqtt/th1", "", "th1", TextValue.class);
-        assertChannel(component, Climate.AWAY_MODE_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/set/away_mode", "th1",
-                OnOffValue.class);
-        assertChannel(component, Climate.CURRENT_TEMPERATURE_CH_ID, "zigbee2mqtt/th1", "", "th1", NumberValue.class);
+        assertChannel(component, Climate.AWAY_MODE_CH_ID_DEPRECATED, "zigbee2mqtt/th1", "zigbee2mqtt/th1/set/away_mode",
+                "th1", OnOffValue.class);
+        assertChannel(component, Climate.CURRENT_TEMPERATURE_CH_ID_DEPRECATED, "zigbee2mqtt/th1", "", "th1",
+                NumberValue.class);
         assertChannel(component, Climate.HOLD_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/set/preset", "th1",
                 TextValue.class);
         assertChannel(component, Climate.MODE_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/set/system_mode", "th1",
@@ -159,14 +161,14 @@ public class ClimateTests extends AbstractComponentTests {
                 "current_heating_setpoint": "24"}\
                 """);
         assertState(component, Climate.ACTION_CH_ID, new StringType("off"));
-        assertState(component, Climate.AWAY_MODE_CH_ID, OnOffType.ON);
-        assertState(component, Climate.CURRENT_TEMPERATURE_CH_ID, new QuantityType<>(22.2, SIUnits.CELSIUS));
+        assertState(component, Climate.AWAY_MODE_CH_ID_DEPRECATED, OnOffType.ON);
+        assertState(component, Climate.CURRENT_TEMPERATURE_CH_ID_DEPRECATED, new QuantityType<>(22.2, SIUnits.CELSIUS));
         assertState(component, Climate.HOLD_CH_ID, new StringType("schedule"));
         assertState(component, Climate.MODE_CH_ID, new StringType("heat"));
         assertState(component, Climate.TEMPERATURE_CH_ID, new QuantityType<>(24, SIUnits.CELSIUS));
 
         // Climate is in OFF state
-        component.getChannel(Climate.AWAY_MODE_CH_ID).getState().publishValue(OnOffType.OFF);
+        component.getChannel(Climate.AWAY_MODE_CH_ID_DEPRECATED).getState().publishValue(OnOffType.OFF);
         assertNotPublished("zigbee2mqtt/th1/set/away_mode", "OFF");
         component.getChannel(Climate.HOLD_CH_ID).getState().publishValue(new StringType("eco"));
         assertNotPublished("zigbee2mqtt/th1/set/preset", "eco");
@@ -185,7 +187,7 @@ public class ClimateTests extends AbstractComponentTests {
                 """);
 
         // Climate is in ON state
-        component.getChannel(Climate.AWAY_MODE_CH_ID).getState().publishValue(OnOffType.OFF);
+        component.getChannel(Climate.AWAY_MODE_CH_ID_DEPRECATED).getState().publishValue(OnOffType.OFF);
         assertPublished("zigbee2mqtt/th1/set/away_mode", "OFF");
         component.getChannel(Climate.HOLD_CH_ID).getState().publishValue(new StringType("eco"));
         assertPublished("zigbee2mqtt/th1/set/preset", "eco");
@@ -248,12 +250,12 @@ public class ClimateTests extends AbstractComponentTests {
         assertChannel(component, Climate.ACTION_CH_ID, "zigbee2mqtt/th1", "", "MQTT HVAC", TextValue.class);
         assertChannel(component, Climate.AUX_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/aux", "MQTT HVAC",
                 OnOffValue.class);
-        assertChannel(component, Climate.AWAY_MODE_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/away_mode", "MQTT HVAC",
-                OnOffValue.class);
-        assertChannel(component, Climate.CURRENT_TEMPERATURE_CH_ID, "zigbee2mqtt/th1", "", "MQTT HVAC",
+        assertChannel(component, Climate.AWAY_MODE_CH_ID_DEPRECATED, "zigbee2mqtt/th1", "zigbee2mqtt/th1/away_mode",
+                "MQTT HVAC", OnOffValue.class);
+        assertChannel(component, Climate.CURRENT_TEMPERATURE_CH_ID_DEPRECATED, "zigbee2mqtt/th1", "", "MQTT HVAC",
                 NumberValue.class);
-        assertChannel(component, Climate.FAN_MODE_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/fan_mode", "MQTT HVAC",
-                TextValue.class);
+        assertChannel(component, Climate.FAN_MODE_CH_ID_DEPRECATED, "zigbee2mqtt/th1", "zigbee2mqtt/th1/fan_mode",
+                "MQTT HVAC", TextValue.class);
         assertChannel(component, Climate.HOLD_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/hold", "MQTT HVAC",
                 TextValue.class);
         assertChannel(component, Climate.MODE_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/mode", "MQTT HVAC",
@@ -262,10 +264,10 @@ public class ClimateTests extends AbstractComponentTests {
                 TextValue.class);
         assertChannel(component, Climate.TEMPERATURE_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/temperature",
                 "MQTT HVAC", NumberValue.class);
-        assertChannel(component, Climate.TEMPERATURE_HIGH_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/temperature_high",
-                "MQTT HVAC", NumberValue.class);
-        assertChannel(component, Climate.TEMPERATURE_LOW_CH_ID, "zigbee2mqtt/th1", "zigbee2mqtt/th1/temperature_low",
-                "MQTT HVAC", NumberValue.class);
+        assertChannel(component, Climate.TEMPERATURE_HIGH_CH_ID_DEPRECATED, "zigbee2mqtt/th1",
+                "zigbee2mqtt/th1/temperature_high", "MQTT HVAC", NumberValue.class);
+        assertChannel(component, Climate.TEMPERATURE_LOW_CH_ID_DEPRECATED, "zigbee2mqtt/th1",
+                "zigbee2mqtt/th1/temperature_low", "MQTT HVAC", NumberValue.class);
         assertChannel(component, Climate.POWER_CH_ID, "", "zigbee2mqtt/th1/power", "MQTT HVAC", OnOffValue.class);
 
         publishMessage("zigbee2mqtt/th1", """
@@ -277,21 +279,24 @@ public class ClimateTests extends AbstractComponentTests {
 
         assertState(component, Climate.ACTION_CH_ID, new StringType("fan"));
         assertState(component, Climate.AUX_CH_ID, OnOffType.ON);
-        assertState(component, Climate.AWAY_MODE_CH_ID, OnOffType.OFF);
-        assertState(component, Climate.CURRENT_TEMPERATURE_CH_ID, new QuantityType<>(35.5, ImperialUnits.FAHRENHEIT));
-        assertState(component, Climate.FAN_MODE_CH_ID, new StringType("p2"));
+        assertState(component, Climate.AWAY_MODE_CH_ID_DEPRECATED, OnOffType.OFF);
+        assertState(component, Climate.CURRENT_TEMPERATURE_CH_ID_DEPRECATED,
+                new QuantityType<>(35.5, ImperialUnits.FAHRENHEIT));
+        assertState(component, Climate.FAN_MODE_CH_ID_DEPRECATED, new StringType("p2"));
         assertState(component, Climate.HOLD_CH_ID, new StringType("u2"));
         assertState(component, Climate.MODE_CH_ID, new StringType("B1"));
         assertState(component, Climate.SWING_CH_ID, new StringType("G1"));
         assertState(component, Climate.TEMPERATURE_CH_ID, new QuantityType<>(30, ImperialUnits.FAHRENHEIT));
-        assertState(component, Climate.TEMPERATURE_HIGH_CH_ID, new QuantityType<>(37, ImperialUnits.FAHRENHEIT));
-        assertState(component, Climate.TEMPERATURE_LOW_CH_ID, new QuantityType<>(20, ImperialUnits.FAHRENHEIT));
+        assertState(component, Climate.TEMPERATURE_HIGH_CH_ID_DEPRECATED,
+                new QuantityType<>(37, ImperialUnits.FAHRENHEIT));
+        assertState(component, Climate.TEMPERATURE_LOW_CH_ID_DEPRECATED,
+                new QuantityType<>(20, ImperialUnits.FAHRENHEIT));
 
         component.getChannel(Climate.AUX_CH_ID).getState().publishValue(OnOffType.OFF);
         assertPublished("zigbee2mqtt/th1/aux", "OFF");
-        component.getChannel(Climate.AWAY_MODE_CH_ID).getState().publishValue(OnOffType.ON);
+        component.getChannel(Climate.AWAY_MODE_CH_ID_DEPRECATED).getState().publishValue(OnOffType.ON);
         assertPublished("zigbee2mqtt/th1/away_mode", "ON");
-        component.getChannel(Climate.FAN_MODE_CH_ID).getState().publishValue(new StringType("p1"));
+        component.getChannel(Climate.FAN_MODE_CH_ID_DEPRECATED).getState().publishValue(new StringType("p1"));
         assertPublished("zigbee2mqtt/th1/fan_mode", "fan_mode=p1");
         component.getChannel(Climate.HOLD_CH_ID).getState().publishValue(new StringType("u3"));
         assertPublished("zigbee2mqtt/th1/hold", "hold=u3");
@@ -301,9 +306,9 @@ public class ClimateTests extends AbstractComponentTests {
         assertPublished("zigbee2mqtt/th1/swing", "swing=G2");
         component.getChannel(Climate.TEMPERATURE_CH_ID).getState().publishValue(new DecimalType(30.5));
         assertPublished("zigbee2mqtt/th1/temperature", "temperature=30.5");
-        component.getChannel(Climate.TEMPERATURE_HIGH_CH_ID).getState().publishValue(new DecimalType(39.5));
+        component.getChannel(Climate.TEMPERATURE_HIGH_CH_ID_DEPRECATED).getState().publishValue(new DecimalType(39.5));
         assertPublished("zigbee2mqtt/th1/temperature_high", "temperature_high=39.5");
-        component.getChannel(Climate.TEMPERATURE_LOW_CH_ID).getState().publishValue(new DecimalType(19.5));
+        component.getChannel(Climate.TEMPERATURE_LOW_CH_ID_DEPRECATED).getState().publishValue(new DecimalType(19.5));
         assertPublished("zigbee2mqtt/th1/temperature_low", "temperature_low=19.5");
         component.getChannel(Climate.POWER_CH_ID).getState().publishValue(OnOffType.OFF);
         assertPublished("zigbee2mqtt/th1/power", "OFF");
index 10947929466e4564386a5c66774f89b868fb90a1..802c6b4de964ef5a553f5b492d8b8bc33917f132 100644 (file)
@@ -274,16 +274,16 @@ public class DefaultSchemaLightTests extends AbstractComponentTests {
         assertThat(component.channels.size(), is(1));
         assertThat(component.getName(), is("light"));
 
-        assertChannel(component, Light.ON_OFF_CHANNEL_ID, "zigbee2mqtt/light/state", "zigbee2mqtt/light/set/state",
-                "On/Off State", OnOffValue.class);
+        assertChannel(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, "zigbee2mqtt/light/state",
+                "zigbee2mqtt/light/set/state", "On/Off State", OnOffValue.class);
         assertThat(component.brightnessChannel, is(nullValue()));
 
         publishMessage("zigbee2mqtt/light/state", "{\"power\": \"ON_\"}");
-        assertState(component, Light.ON_OFF_CHANNEL_ID, OnOffType.ON);
+        assertState(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.ON);
         publishMessage("zigbee2mqtt/light/state", "{\"power\": \"OFF_\"}");
-        assertState(component, Light.ON_OFF_CHANNEL_ID, OnOffType.OFF);
+        assertState(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.OFF);
 
-        sendCommand(component, Light.ON_OFF_CHANNEL_ID, OnOffType.OFF);
+        sendCommand(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.OFF);
         assertPublished("zigbee2mqtt/light/set/state", "OFF_");
     }
 
@@ -305,17 +305,17 @@ public class DefaultSchemaLightTests extends AbstractComponentTests {
         assertThat(component.channels.size(), is(2));
         assertThat(component.getName(), is("light"));
 
-        assertChannel(component, Light.ON_OFF_CHANNEL_ID, "zigbee2mqtt/light/state", "zigbee2mqtt/light/set/state",
-                "On/Off State", OnOffValue.class);
+        assertChannel(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, "zigbee2mqtt/light/state",
+                "zigbee2mqtt/light/set/state", "On/Off State", OnOffValue.class);
         assertChannel(component, Light.EFFECT_CHANNEL_ID, "zigbee2mqtt/light/effect", "zigbee2mqtt/light/set/effect",
                 "Lighting Effect", TextValue.class);
 
         publishMessage("zigbee2mqtt/light/state", "{\"power\": \"ON\"}");
-        assertState(component, Light.ON_OFF_CHANNEL_ID, OnOffType.ON);
+        assertState(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.ON);
         publishMessage("zigbee2mqtt/light/effect", "party");
         assertState(component, Light.EFFECT_CHANNEL_ID, new StringType("party"));
         publishMessage("zigbee2mqtt/light/state", "{\"power\": \"OFF\"}");
-        assertState(component, Light.ON_OFF_CHANNEL_ID, OnOffType.OFF);
+        assertState(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.OFF);
 
         sendCommand(component, Light.EFFECT_CHANNEL_ID, new StringType("rainbow"));
         assertPublished("zigbee2mqtt/light/set/effect", "rainbow");
index 43455b077f4594edecbf626ba7611bf234ea3b8a..083d9151d3fa1ee4370dcd82a7c6a6534e00aef7 100644 (file)
@@ -203,16 +203,16 @@ public class JSONSchemaLightTests extends AbstractComponentTests {
         assertThat(component.channels.size(), is(1));
         assertThat(component.getName(), is("light"));
 
-        assertChannel(component, Light.ON_OFF_CHANNEL_ID, "", "dummy", "On/Off State", OnOffValue.class);
+        assertChannel(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, "", "dummy", "On/Off State", OnOffValue.class);
 
         publishMessage("zigbee2mqtt/light/state", "{ \"state\": \"ON\" }");
-        assertState(component, Light.ON_OFF_CHANNEL_ID, OnOffType.ON);
+        assertState(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.ON);
         publishMessage("zigbee2mqtt/light/state", "{ \"state\": \"OFF\" }");
-        assertState(component, Light.ON_OFF_CHANNEL_ID, OnOffType.OFF);
+        assertState(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.OFF);
 
-        sendCommand(component, Light.ON_OFF_CHANNEL_ID, OnOffType.OFF);
+        sendCommand(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.OFF);
         assertPublished("zigbee2mqtt/light/set/state", "{\"state\":\"OFF\"}");
-        sendCommand(component, Light.ON_OFF_CHANNEL_ID, OnOffType.ON);
+        sendCommand(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.ON);
         assertPublished("zigbee2mqtt/light/set/state", "{\"state\":\"ON\"}");
     }
 
index e7e133bfdacde4c8a99fcd7fe7c99198309f07db..c7be8675705d0d0ace2f4f4678cb58289929c201 100644 (file)
@@ -151,11 +151,12 @@ public class TemplateSchemaLightTests extends AbstractComponentTests {
         assertThat(component.getName(), is("Bulb-white"));
 
         assertChannel(component, Light.BRIGHTNESS_CHANNEL_ID, "", "dummy", "Brightness", PercentageValue.class);
-        assertChannel(component, Light.COLOR_TEMP_CHANNEL_ID, "", "dummy", "Color Temperature", NumberValue.class);
+        assertChannel(component, Light.COLOR_TEMP_CHANNEL_ID_DEPRECATED, "", "dummy", "Color Temperature",
+                NumberValue.class);
 
         publishMessage("shellies/bulb/color/0/status", "{ \"state\": \"on\", \"brightness\": 100 }");
         assertState(component, Light.BRIGHTNESS_CHANNEL_ID, PercentType.HUNDRED);
-        assertState(component, Light.COLOR_TEMP_CHANNEL_ID, UnDefType.NULL);
+        assertState(component, Light.COLOR_TEMP_CHANNEL_ID_DEPRECATED, UnDefType.NULL);
 
         sendCommand(component, Light.BRIGHTNESS_CHANNEL_ID, PercentType.HUNDRED);
         assertPublished("shellies/bulb/color/0/set", "{\"turn\": \"on\", \"mode\": \"white\", \"brightness\": 100}");
@@ -163,7 +164,7 @@ public class TemplateSchemaLightTests extends AbstractComponentTests {
         sendCommand(component, Light.BRIGHTNESS_CHANNEL_ID, OnOffType.OFF);
         assertPublished("shellies/bulb/color/0/set", "{\"turn\":\"off\", \"mode\": \"white\"}");
 
-        sendCommand(component, Light.COLOR_TEMP_CHANNEL_ID, new QuantityType(200, Units.MIRED));
+        sendCommand(component, Light.COLOR_TEMP_CHANNEL_ID_DEPRECATED, new QuantityType(200, Units.MIRED));
         assertPublished("shellies/bulb/color/0/set", "{\"turn\": \"on\", \"mode\": \"white\", \"temp\": 5000}");
     }
 
@@ -184,16 +185,16 @@ public class TemplateSchemaLightTests extends AbstractComponentTests {
         assertThat(component.channels.size(), is(1));
         assertThat(component.getName(), is("light"));
 
-        assertChannel(component, Light.ON_OFF_CHANNEL_ID, "", "dummy", "On/Off State", OnOffValue.class);
+        assertChannel(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, "", "dummy", "On/Off State", OnOffValue.class);
 
         publishMessage("zigbee2mqtt/light/state", "{\"power\": \"on\"}");
-        assertState(component, Light.ON_OFF_CHANNEL_ID, OnOffType.ON);
+        assertState(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.ON);
         publishMessage("zigbee2mqtt/light/state", "{\"power\": \"off\"}");
-        assertState(component, Light.ON_OFF_CHANNEL_ID, OnOffType.OFF);
+        assertState(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.OFF);
 
-        sendCommand(component, Light.ON_OFF_CHANNEL_ID, OnOffType.OFF);
+        sendCommand(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.OFF);
         assertPublished("zigbee2mqtt/light/set/state", "off");
-        sendCommand(component, Light.ON_OFF_CHANNEL_ID, OnOffType.ON);
+        sendCommand(component, Light.SWITCH_CHANNEL_ID_DEPRECATED, OnOffType.ON);
         assertPublished("zigbee2mqtt/light/set/state", "on");
     }
 
index 7cb7add9f2c3dd5e711cbe6b453123a14b53abd6..3611ad95ec8c3b317291efc5b028e5bd9e9cc9cb 100644 (file)
@@ -68,19 +68,19 @@ public class VacuumTests extends AbstractComponentTests {
         assertThat(component.getName(), is("Rockrobo"));
         assertChannel(component, Vacuum.COMMAND_CH_ID, "", "valetudo/rockrobo/command", "Rockrobo", TextValue.class);
         assertChannel(component, Vacuum.STATE_CH_ID, "valetudo/rockrobo/state", "", "Rockrobo", TextValue.class);
-        assertChannel(component, Vacuum.FAN_SPEED_CH_ID, "valetudo/rockrobo/state", "valetudo/rockrobo/set_fan_speed",
+        assertChannel(component, Vacuum.FAN_SPEED_CH_ID_DEPRECATED, "valetudo/rockrobo/state",
+                "valetudo/rockrobo/set_fan_speed", "Rockrobo", TextValue.class);
+        assertChannel(component, Vacuum.CUSTOM_COMMAND_CH_ID_DEPRECATED, "", "valetudo/rockrobo/custom_command",
                 "Rockrobo", TextValue.class);
-        assertChannel(component, Vacuum.CUSTOM_COMMAND_CH_ID, "", "valetudo/rockrobo/custom_command", "Rockrobo",
-                TextValue.class);
-        assertChannel(component, Vacuum.BATTERY_LEVEL_CH_ID, "valetudo/rockrobo/state", "", "Rockrobo",
+        assertChannel(component, Vacuum.BATTERY_LEVEL_CH_ID_DEPRECATED, "valetudo/rockrobo/state", "", "Rockrobo",
                 PercentageValue.class);
-        assertChannel(component, Vacuum.JSON_ATTRIBUTES_CH_ID, "valetudo/rockrobo/attributes", "", "Rockrobo",
-                TextValue.class);
+        assertChannel(component, Vacuum.JSON_ATTRIBUTES_CH_ID_DEPRECATED, "valetudo/rockrobo/attributes", "",
+                "Rockrobo", TextValue.class);
 
         assertState(component, Vacuum.STATE_CH_ID, UnDefType.UNDEF);
-        assertState(component, Vacuum.FAN_SPEED_CH_ID, UnDefType.UNDEF);
-        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID, UnDefType.UNDEF);
-        assertState(component, Vacuum.JSON_ATTRIBUTES_CH_ID, UnDefType.UNDEF);
+        assertState(component, Vacuum.FAN_SPEED_CH_ID_DEPRECATED, UnDefType.UNDEF);
+        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID_DEPRECATED, UnDefType.UNDEF);
+        assertState(component, Vacuum.JSON_ATTRIBUTES_CH_ID_DEPRECATED, UnDefType.UNDEF);
 
         // @formatter:off
         String jsonValue;
@@ -126,9 +126,9 @@ public class VacuumTests extends AbstractComponentTests {
         // @formatter:on
 
         assertState(component, Vacuum.STATE_CH_ID, new StringType(Vacuum.STATE_DOCKED));
-        assertState(component, Vacuum.FAN_SPEED_CH_ID, new StringType("max"));
-        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID, new PercentType(100));
-        assertState(component, Vacuum.JSON_ATTRIBUTES_CH_ID, new StringType(jsonValue));
+        assertState(component, Vacuum.FAN_SPEED_CH_ID_DEPRECATED, new StringType("max"));
+        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID_DEPRECATED, new PercentType(100));
+        assertState(component, Vacuum.JSON_ATTRIBUTES_CH_ID_DEPRECATED, new StringType(jsonValue));
 
         component.getChannel(Vacuum.COMMAND_CH_ID).getState().publishValue(new StringType("start"));
         assertPublished("valetudo/rockrobo/command", "start");
@@ -144,11 +144,11 @@ public class VacuumTests extends AbstractComponentTests {
         // @formatter:on
 
         assertState(component, Vacuum.STATE_CH_ID, new StringType(Vacuum.STATE_CLEANING));
-        assertState(component, Vacuum.FAN_SPEED_CH_ID, new StringType("max"));
-        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID, new PercentType(99));
-        assertState(component, Vacuum.JSON_ATTRIBUTES_CH_ID, new StringType(jsonValue));
+        assertState(component, Vacuum.FAN_SPEED_CH_ID_DEPRECATED, new StringType("max"));
+        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID_DEPRECATED, new PercentType(99));
+        assertState(component, Vacuum.JSON_ATTRIBUTES_CH_ID_DEPRECATED, new StringType(jsonValue));
 
-        component.getChannel(Vacuum.FAN_SPEED_CH_ID).getState().publishValue(new StringType("medium"));
+        component.getChannel(Vacuum.FAN_SPEED_CH_ID_DEPRECATED).getState().publishValue(new StringType("medium"));
         assertPublished("valetudo/rockrobo/set_fan_speed", "medium");
 
         // @formatter:off
@@ -162,9 +162,9 @@ public class VacuumTests extends AbstractComponentTests {
         // @formatter:on
 
         assertState(component, Vacuum.STATE_CH_ID, new StringType(Vacuum.STATE_RETURNING));
-        assertState(component, Vacuum.FAN_SPEED_CH_ID, new StringType("medium"));
-        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID, new PercentType(80));
-        assertState(component, Vacuum.JSON_ATTRIBUTES_CH_ID, new StringType(jsonValue));
+        assertState(component, Vacuum.FAN_SPEED_CH_ID_DEPRECATED, new StringType("medium"));
+        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID_DEPRECATED, new PercentType(80));
+        assertState(component, Vacuum.JSON_ATTRIBUTES_CH_ID_DEPRECATED, new StringType(jsonValue));
     }
 
     @SuppressWarnings("null")
@@ -208,14 +208,16 @@ public class VacuumTests extends AbstractComponentTests {
         // fan speed, send command
         assertThat(component.getName(), is("Rockrobo"));
         assertChannel(component, Vacuum.COMMAND_CH_ID, "", "vacuum/command", "Rockrobo", TextValue.class);
-        assertChannel(component, Vacuum.BATTERY_LEVEL_CH_ID, "vacuum/state", "", "Rockrobo", PercentageValue.class);
+        assertChannel(component, Vacuum.BATTERY_LEVEL_CH_ID_DEPRECATED, "vacuum/state", "", "Rockrobo",
+                PercentageValue.class);
         assertChannel(component, Vacuum.CHARGING_CH_ID, "vacuum/state", "", "Rockrobo", OnOffValue.class);
         assertChannel(component, Vacuum.CLEANING_CH_ID, "vacuum/state", "", "Rockrobo", OnOffValue.class);
         assertChannel(component, Vacuum.DOCKED_CH_ID, "vacuum/state", "", "Rockrobo", OnOffValue.class);
         assertChannel(component, Vacuum.ERROR_CH_ID, "vacuum/state", "", "Rockrobo", TextValue.class);
-        assertChannel(component, Vacuum.FAN_SPEED_CH_ID, "vacuum/state", "vacuum/set_fan_speed", "Rockrobo",
+        assertChannel(component, Vacuum.FAN_SPEED_CH_ID_DEPRECATED, "vacuum/state", "vacuum/set_fan_speed", "Rockrobo",
+                TextValue.class);
+        assertChannel(component, Vacuum.CUSTOM_COMMAND_CH_ID_DEPRECATED, "", "vacuum/send_command", "Rockrobo",
                 TextValue.class);
-        assertChannel(component, Vacuum.CUSTOM_COMMAND_CH_ID, "", "vacuum/send_command", "Rockrobo", TextValue.class);
 
         // @formatter:off
         publishMessage("vacuum/state", """
@@ -230,11 +232,11 @@ public class VacuumTests extends AbstractComponentTests {
                 """);
         // @formatter:on
 
-        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID, new PercentType(61));
+        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID_DEPRECATED, new PercentType(61));
         assertState(component, Vacuum.DOCKED_CH_ID, OnOffType.ON);
         assertState(component, Vacuum.CLEANING_CH_ID, OnOffType.OFF);
         assertState(component, Vacuum.CHARGING_CH_ID, OnOffType.ON);
-        assertState(component, Vacuum.FAN_SPEED_CH_ID, new StringType("off"));
+        assertState(component, Vacuum.FAN_SPEED_CH_ID_DEPRECATED, new StringType("off"));
         assertState(component, Vacuum.ERROR_CH_ID, new StringType("Error message"));
 
         component.getChannel(Vacuum.COMMAND_CH_ID).getState().publishValue(new StringType("turn_on"));
@@ -253,17 +255,18 @@ public class VacuumTests extends AbstractComponentTests {
                 """);
         // @formatter:on
 
-        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID, new PercentType(55));
+        assertState(component, Vacuum.BATTERY_LEVEL_CH_ID_DEPRECATED, new PercentType(55));
         assertState(component, Vacuum.DOCKED_CH_ID, OnOffType.OFF);
         assertState(component, Vacuum.CLEANING_CH_ID, OnOffType.ON);
         assertState(component, Vacuum.CHARGING_CH_ID, OnOffType.OFF);
-        assertState(component, Vacuum.FAN_SPEED_CH_ID, new StringType("medium"));
+        assertState(component, Vacuum.FAN_SPEED_CH_ID_DEPRECATED, new StringType("medium"));
         assertState(component, Vacuum.ERROR_CH_ID, new StringType(""));
 
-        component.getChannel(Vacuum.FAN_SPEED_CH_ID).getState().publishValue(new StringType("high"));
+        component.getChannel(Vacuum.FAN_SPEED_CH_ID_DEPRECATED).getState().publishValue(new StringType("high"));
         assertPublished("vacuum/set_fan_speed", "high");
 
-        component.getChannel(Vacuum.CUSTOM_COMMAND_CH_ID).getState().publishValue(new StringType("custom_command"));
+        component.getChannel(Vacuum.CUSTOM_COMMAND_CH_ID_DEPRECATED).getState()
+                .publishValue(new StringType("custom_command"));
         assertPublished("vacuum/send_command", "custom_command");
     }