diff --git a/homeassistant/components/control4/light.py b/homeassistant/components/control4/light.py index fde9b00aba26bb..a2d1308be982ae 100644 --- a/homeassistant/components/control4/light.py +++ b/homeassistant/components/control4/light.py @@ -30,7 +30,7 @@ CONTROL4_CATEGORY = "lights" CONTROL4_NON_DIMMER_VAR = "LIGHT_STATE" -CONTROL4_DIMMER_VAR = "LIGHT_LEVEL" +CONTROL4_DIMMER_VARS = ["LIGHT_LEVEL", "Brightness Percent"] async def async_setup_entry( @@ -57,7 +57,7 @@ async def async_update_data_dimmer(): """Fetch data from Control4 director for dimmer lights.""" try: return await update_variables_for_config_entry( - hass, entry, {CONTROL4_DIMMER_VAR} + hass, entry, {*CONTROL4_DIMMER_VARS} ) except C4Exception as err: raise UpdateFailed(f"Error communicating with API: {err}") from err @@ -190,14 +190,19 @@ def _create_api_object(self): def is_on(self): """Return whether this light is on or off.""" if self._is_dimmer: - return self.coordinator.data[self._idx][CONTROL4_DIMMER_VAR] > 0 + for var in CONTROL4_DIMMER_VARS: + if var in self.coordinator.data[self._idx]: + return self.coordinator.data[self._idx][var] > 0 + raise RuntimeError("Dimmer Variable Not Found") return self.coordinator.data[self._idx][CONTROL4_NON_DIMMER_VAR] > 0 @property def brightness(self): """Return the brightness of this light between 0..255.""" if self._is_dimmer: - return round(self.coordinator.data[self._idx][CONTROL4_DIMMER_VAR] * 2.55) + for var in CONTROL4_DIMMER_VARS: + if var in self.coordinator.data[self._idx]: + return round(self.coordinator.data[self._idx][var] * 2.55) return None @property