From 3e0e2978e68c1f8ce63f55069c47ce0a19444f2b Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 13 Dec 2021 23:19:32 +0100 Subject: [PATCH] Use new DeviceClass enums in google-assistant (#61611) Co-authored-by: epenet --- .../components/google_assistant/const.py | 44 +++++++++++-------- .../components/google_assistant/trait.py | 42 ++++++++++-------- 2 files changed, 48 insertions(+), 38 deletions(-) diff --git a/homeassistant/components/google_assistant/const.py b/homeassistant/components/google_assistant/const.py index 269c0aafea1..37154bf5e4d 100644 --- a/homeassistant/components/google_assistant/const.py +++ b/homeassistant/components/google_assistant/const.py @@ -142,25 +142,31 @@ DOMAIN_TO_GOOGLE_TYPES = { } DEVICE_CLASS_TO_GOOGLE_TYPES = { - (cover.DOMAIN, cover.DEVICE_CLASS_GARAGE): TYPE_GARAGE, - (cover.DOMAIN, cover.DEVICE_CLASS_GATE): TYPE_GARAGE, - (cover.DOMAIN, cover.DEVICE_CLASS_DOOR): TYPE_DOOR, - (cover.DOMAIN, cover.DEVICE_CLASS_AWNING): TYPE_AWNING, - (cover.DOMAIN, cover.DEVICE_CLASS_SHUTTER): TYPE_SHUTTER, - (switch.DOMAIN, switch.DEVICE_CLASS_SWITCH): TYPE_SWITCH, - (switch.DOMAIN, switch.DEVICE_CLASS_OUTLET): TYPE_OUTLET, - (binary_sensor.DOMAIN, binary_sensor.DEVICE_CLASS_DOOR): TYPE_DOOR, - (binary_sensor.DOMAIN, binary_sensor.DEVICE_CLASS_GARAGE_DOOR): TYPE_GARAGE, - (binary_sensor.DOMAIN, binary_sensor.DEVICE_CLASS_LOCK): TYPE_SENSOR, - (binary_sensor.DOMAIN, binary_sensor.DEVICE_CLASS_OPENING): TYPE_SENSOR, - (binary_sensor.DOMAIN, binary_sensor.DEVICE_CLASS_WINDOW): TYPE_SENSOR, - (media_player.DOMAIN, media_player.DEVICE_CLASS_TV): TYPE_TV, - (media_player.DOMAIN, media_player.DEVICE_CLASS_SPEAKER): TYPE_SPEAKER, - (media_player.DOMAIN, media_player.DEVICE_CLASS_RECEIVER): TYPE_RECEIVER, - (sensor.DOMAIN, sensor.DEVICE_CLASS_TEMPERATURE): TYPE_SENSOR, - (sensor.DOMAIN, sensor.DEVICE_CLASS_HUMIDITY): TYPE_SENSOR, - (humidifier.DOMAIN, humidifier.DEVICE_CLASS_HUMIDIFIER): TYPE_HUMIDIFIER, - (humidifier.DOMAIN, humidifier.DEVICE_CLASS_DEHUMIDIFIER): TYPE_DEHUMIDIFIER, + (cover.DOMAIN, cover.CoverDeviceClass.GARAGE): TYPE_GARAGE, + (cover.DOMAIN, cover.CoverDeviceClass.GATE): TYPE_GARAGE, + (cover.DOMAIN, cover.CoverDeviceClass.DOOR): TYPE_DOOR, + (cover.DOMAIN, cover.CoverDeviceClass.AWNING): TYPE_AWNING, + (cover.DOMAIN, cover.CoverDeviceClass.SHUTTER): TYPE_SHUTTER, + (switch.DOMAIN, switch.SwitchDeviceClass.SWITCH): TYPE_SWITCH, + (switch.DOMAIN, switch.SwitchDeviceClass.OUTLET): TYPE_OUTLET, + (binary_sensor.DOMAIN, binary_sensor.BinarySensorDeviceClass.DOOR): TYPE_DOOR, + ( + binary_sensor.DOMAIN, + binary_sensor.BinarySensorDeviceClass.GARAGE_DOOR, + ): TYPE_GARAGE, + (binary_sensor.DOMAIN, binary_sensor.BinarySensorDeviceClass.LOCK): TYPE_SENSOR, + (binary_sensor.DOMAIN, binary_sensor.BinarySensorDeviceClass.OPENING): TYPE_SENSOR, + (binary_sensor.DOMAIN, binary_sensor.BinarySensorDeviceClass.WINDOW): TYPE_SENSOR, + (media_player.DOMAIN, media_player.MediaPlayerDeviceClass.TV): TYPE_TV, + (media_player.DOMAIN, media_player.MediaPlayerDeviceClass.SPEAKER): TYPE_SPEAKER, + (media_player.DOMAIN, media_player.MediaPlayerDeviceClass.RECEIVER): TYPE_RECEIVER, + (sensor.DOMAIN, sensor.SensorDeviceClass.TEMPERATURE): TYPE_SENSOR, + (sensor.DOMAIN, sensor.SensorDeviceClass.HUMIDITY): TYPE_SENSOR, + (humidifier.DOMAIN, humidifier.HumidifierDeviceClass.HUMIDIFIER): TYPE_HUMIDIFIER, + ( + humidifier.DOMAIN, + humidifier.HumidifierDeviceClass.DEHUMIDIFIER, + ): TYPE_DEHUMIDIFIER, } CHALLENGE_ACK_NEEDED = "ackNeeded" diff --git a/homeassistant/components/google_assistant/trait.py b/homeassistant/components/google_assistant/trait.py index 30ea244bac9..4b6593abadb 100644 --- a/homeassistant/components/google_assistant/trait.py +++ b/homeassistant/components/google_assistant/trait.py @@ -807,7 +807,8 @@ class TemperatureControlTrait(_Trait): def supported(domain, features, device_class, _): """Test if state is supported.""" return ( - domain == sensor.DOMAIN and device_class == sensor.DEVICE_CLASS_TEMPERATURE + domain == sensor.DOMAIN + and device_class == sensor.SensorDeviceClass.TEMPERATURE ) def sync_attributes(self): @@ -1111,7 +1112,10 @@ class HumiditySettingTrait(_Trait): if domain == humidifier.DOMAIN: return True - return domain == sensor.DOMAIN and device_class == sensor.DEVICE_CLASS_HUMIDITY + return ( + domain == sensor.DOMAIN + and device_class == sensor.SensorDeviceClass.HUMIDITY + ) def sync_attributes(self): """Return humidity attributes for a sync request.""" @@ -1121,7 +1125,7 @@ class HumiditySettingTrait(_Trait): if domain == sensor.DOMAIN: device_class = attrs.get(ATTR_DEVICE_CLASS) - if device_class == sensor.DEVICE_CLASS_HUMIDITY: + if device_class == sensor.SensorDeviceClass.HUMIDITY: response["queryOnlyHumiditySetting"] = True elif domain == humidifier.DOMAIN: @@ -1144,7 +1148,7 @@ class HumiditySettingTrait(_Trait): if domain == sensor.DOMAIN: device_class = attrs.get(ATTR_DEVICE_CLASS) - if device_class == sensor.DEVICE_CLASS_HUMIDITY: + if device_class == sensor.SensorDeviceClass.HUMIDITY: current_humidity = self.state.state if current_humidity not in (STATE_UNKNOWN, STATE_UNAVAILABLE): response["humidityAmbientPercent"] = round(float(current_humidity)) @@ -1759,9 +1763,9 @@ class OpenCloseTrait(_Trait): # Cover device classes that require 2FA COVER_2FA = ( - cover.DEVICE_CLASS_DOOR, - cover.DEVICE_CLASS_GARAGE, - cover.DEVICE_CLASS_GATE, + cover.CoverDeviceClass.DOOR, + cover.CoverDeviceClass.GARAGE, + cover.CoverDeviceClass.GATE, ) name = TRAIT_OPENCLOSE @@ -1774,11 +1778,11 @@ class OpenCloseTrait(_Trait): return True return domain == binary_sensor.DOMAIN and device_class in ( - binary_sensor.DEVICE_CLASS_DOOR, - binary_sensor.DEVICE_CLASS_GARAGE_DOOR, - binary_sensor.DEVICE_CLASS_LOCK, - binary_sensor.DEVICE_CLASS_OPENING, - binary_sensor.DEVICE_CLASS_WINDOW, + binary_sensor.BinarySensorDeviceClass.DOOR, + binary_sensor.BinarySensorDeviceClass.GARAGE_DOOR, + binary_sensor.BinarySensorDeviceClass.LOCK, + binary_sensor.BinarySensorDeviceClass.OPENING, + binary_sensor.BinarySensorDeviceClass.WINDOW, ) @staticmethod @@ -2245,7 +2249,7 @@ class ChannelTrait(_Trait): if ( domain == media_player.DOMAIN and (features & media_player.SUPPORT_PLAY_MEDIA) - and device_class == media_player.DEVICE_CLASS_TV + and device_class == media_player.MediaPlayerDeviceClass.TV ): return True @@ -2293,12 +2297,12 @@ class SensorStateTrait(_Trait): """ sensor_types = { - sensor.DEVICE_CLASS_AQI: ("AirQuality", "AQI"), - sensor.DEVICE_CLASS_CO: ("CarbonDioxideLevel", "PARTS_PER_MILLION"), - sensor.DEVICE_CLASS_CO2: ("CarbonMonoxideLevel", "PARTS_PER_MILLION"), - sensor.DEVICE_CLASS_PM25: ("PM2.5", "MICROGRAMS_PER_CUBIC_METER"), - sensor.DEVICE_CLASS_PM10: ("PM10", "MICROGRAMS_PER_CUBIC_METER"), - sensor.DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS: ( + sensor.SensorDeviceClass.AQI: ("AirQuality", "AQI"), + sensor.SensorDeviceClass.CO: ("CarbonDioxideLevel", "PARTS_PER_MILLION"), + sensor.SensorDeviceClass.CO2: ("CarbonMonoxideLevel", "PARTS_PER_MILLION"), + sensor.SensorDeviceClass.PM25: ("PM2.5", "MICROGRAMS_PER_CUBIC_METER"), + sensor.SensorDeviceClass.PM10: ("PM10", "MICROGRAMS_PER_CUBIC_METER"), + sensor.SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS: ( "VolatileOrganicCompounds", "PARTS_PER_MILLION", ),