diff --git a/homeassistant/components/zha/core/const.py b/homeassistant/components/zha/core/const.py index 708a123d029..bf778812453 100644 --- a/homeassistant/components/zha/core/const.py +++ b/homeassistant/components/zha/core/const.py @@ -58,6 +58,7 @@ CHANNEL_HUMIDITY = "humidity" CHANNEL_IAS_WD = "ias_wd" CHANNEL_ILLUMINANCE = "illuminance" CHANNEL_LEVEL = ATTR_LEVEL +CHANNEL_MULTISTATE_INPUT = "multistate_input" CHANNEL_OCCUPANCY = "occupancy" CHANNEL_ON_OFF = "on_off" CHANNEL_POWER_CONFIGURATION = "power" diff --git a/homeassistant/components/zha/sensor.py b/homeassistant/components/zha/sensor.py index 3b73a9793c9..ce02bf11d9d 100644 --- a/homeassistant/components/zha/sensor.py +++ b/homeassistant/components/zha/sensor.py @@ -26,6 +26,7 @@ from .core.const import ( CHANNEL_ELECTRICAL_MEASUREMENT, CHANNEL_HUMIDITY, CHANNEL_ILLUMINANCE, + CHANNEL_MULTISTATE_INPUT, CHANNEL_POWER_CONFIGURATION, CHANNEL_PRESSURE, CHANNEL_SMARTENERGY_METERING, @@ -227,6 +228,18 @@ class ElectricalMeasurement(Sensor): return round(value * self._channel.multiplier / self._channel.divisor) +@STRICT_MATCH(channel_names=CHANNEL_MULTISTATE_INPUT) +class Text(Sensor): + """Sensor that displays string values.""" + + _device_class = None + _unit = None + + def formatter(self, value) -> str: + """Return string value.""" + return value + + @STRICT_MATCH(generic_ids=CHANNEL_ST_HUMIDITY_CLUSTER) @STRICT_MATCH(channel_names=CHANNEL_HUMIDITY) class Humidity(Sensor):