Use new DeviceClass enums in google-assistant (#61611)
Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
parent
6157dfe68b
commit
3e0e2978e6
2 changed files with 48 additions and 38 deletions
|
@ -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"
|
||||
|
|
|
@ -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",
|
||||
),
|
||||
|
|
Loading…
Add table
Reference in a new issue