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.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java index 5b7668bc6ad04..93047181fc38d 100644 --- a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java +++ b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/NumberValue.java @@ -149,6 +149,11 @@ public StateDescriptionFragmentBuilder createStateDescription(boolean readOnly) if (min != null) { builder = builder.withMinimum(min); } - return builder.withStep(step).withPattern("%s %unit%"); + if (!unit.equals(Units.ONE)) { + builder.withPattern("%s " + unit); + } else { + builder.withPattern("%s %unit%"); + } + return builder.withStep(step); } } 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.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SensorTests.java index 56f778081e3b2..8b5e412a608c7 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.mqtt.homeassistant/src/test/java/org/openhab/binding/mqtt/homeassistant/internal/component/SensorTests.java @@ -75,7 +75,7 @@ public void test() throws InterruptedException { publishMessage("zigbee2mqtt/sensor/state", "20"); assertState(component, Sensor.SENSOR_CHANNEL_ID, new QuantityType<>(20, Units.WATT)); assertThat(component.getChannel(Sensor.SENSOR_CHANNEL_ID).getState().getCache().createStateDescription(true) - .build().getPattern(), is("%s %unit%")); + .build().getPattern(), is("%s W")); waitForAssert(() -> assertState(component, Sensor.SENSOR_CHANNEL_ID, UnDefType.UNDEF), 5000, 200);