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 = {
|
DEVICE_CLASS_TO_GOOGLE_TYPES = {
|
||||||
(cover.DOMAIN, cover.DEVICE_CLASS_GARAGE): TYPE_GARAGE,
|
(cover.DOMAIN, cover.CoverDeviceClass.GARAGE): TYPE_GARAGE,
|
||||||
(cover.DOMAIN, cover.DEVICE_CLASS_GATE): TYPE_GARAGE,
|
(cover.DOMAIN, cover.CoverDeviceClass.GATE): TYPE_GARAGE,
|
||||||
(cover.DOMAIN, cover.DEVICE_CLASS_DOOR): TYPE_DOOR,
|
(cover.DOMAIN, cover.CoverDeviceClass.DOOR): TYPE_DOOR,
|
||||||
(cover.DOMAIN, cover.DEVICE_CLASS_AWNING): TYPE_AWNING,
|
(cover.DOMAIN, cover.CoverDeviceClass.AWNING): TYPE_AWNING,
|
||||||
(cover.DOMAIN, cover.DEVICE_CLASS_SHUTTER): TYPE_SHUTTER,
|
(cover.DOMAIN, cover.CoverDeviceClass.SHUTTER): TYPE_SHUTTER,
|
||||||
(switch.DOMAIN, switch.DEVICE_CLASS_SWITCH): TYPE_SWITCH,
|
(switch.DOMAIN, switch.SwitchDeviceClass.SWITCH): TYPE_SWITCH,
|
||||||
(switch.DOMAIN, switch.DEVICE_CLASS_OUTLET): TYPE_OUTLET,
|
(switch.DOMAIN, switch.SwitchDeviceClass.OUTLET): TYPE_OUTLET,
|
||||||
(binary_sensor.DOMAIN, binary_sensor.DEVICE_CLASS_DOOR): TYPE_DOOR,
|
(binary_sensor.DOMAIN, binary_sensor.BinarySensorDeviceClass.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.DOMAIN, binary_sensor.DEVICE_CLASS_OPENING): TYPE_SENSOR,
|
binary_sensor.BinarySensorDeviceClass.GARAGE_DOOR,
|
||||||
(binary_sensor.DOMAIN, binary_sensor.DEVICE_CLASS_WINDOW): TYPE_SENSOR,
|
): TYPE_GARAGE,
|
||||||
(media_player.DOMAIN, media_player.DEVICE_CLASS_TV): TYPE_TV,
|
(binary_sensor.DOMAIN, binary_sensor.BinarySensorDeviceClass.LOCK): TYPE_SENSOR,
|
||||||
(media_player.DOMAIN, media_player.DEVICE_CLASS_SPEAKER): TYPE_SPEAKER,
|
(binary_sensor.DOMAIN, binary_sensor.BinarySensorDeviceClass.OPENING): TYPE_SENSOR,
|
||||||
(media_player.DOMAIN, media_player.DEVICE_CLASS_RECEIVER): TYPE_RECEIVER,
|
(binary_sensor.DOMAIN, binary_sensor.BinarySensorDeviceClass.WINDOW): TYPE_SENSOR,
|
||||||
(sensor.DOMAIN, sensor.DEVICE_CLASS_TEMPERATURE): TYPE_SENSOR,
|
(media_player.DOMAIN, media_player.MediaPlayerDeviceClass.TV): TYPE_TV,
|
||||||
(sensor.DOMAIN, sensor.DEVICE_CLASS_HUMIDITY): TYPE_SENSOR,
|
(media_player.DOMAIN, media_player.MediaPlayerDeviceClass.SPEAKER): TYPE_SPEAKER,
|
||||||
(humidifier.DOMAIN, humidifier.DEVICE_CLASS_HUMIDIFIER): TYPE_HUMIDIFIER,
|
(media_player.DOMAIN, media_player.MediaPlayerDeviceClass.RECEIVER): TYPE_RECEIVER,
|
||||||
(humidifier.DOMAIN, humidifier.DEVICE_CLASS_DEHUMIDIFIER): TYPE_DEHUMIDIFIER,
|
(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"
|
CHALLENGE_ACK_NEEDED = "ackNeeded"
|
||||||
|
|
|
@ -807,7 +807,8 @@ class TemperatureControlTrait(_Trait):
|
||||||
def supported(domain, features, device_class, _):
|
def supported(domain, features, device_class, _):
|
||||||
"""Test if state is supported."""
|
"""Test if state is supported."""
|
||||||
return (
|
return (
|
||||||
domain == sensor.DOMAIN and device_class == sensor.DEVICE_CLASS_TEMPERATURE
|
domain == sensor.DOMAIN
|
||||||
|
and device_class == sensor.SensorDeviceClass.TEMPERATURE
|
||||||
)
|
)
|
||||||
|
|
||||||
def sync_attributes(self):
|
def sync_attributes(self):
|
||||||
|
@ -1111,7 +1112,10 @@ class HumiditySettingTrait(_Trait):
|
||||||
if domain == humidifier.DOMAIN:
|
if domain == humidifier.DOMAIN:
|
||||||
return True
|
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):
|
def sync_attributes(self):
|
||||||
"""Return humidity attributes for a sync request."""
|
"""Return humidity attributes for a sync request."""
|
||||||
|
@ -1121,7 +1125,7 @@ class HumiditySettingTrait(_Trait):
|
||||||
|
|
||||||
if domain == sensor.DOMAIN:
|
if domain == sensor.DOMAIN:
|
||||||
device_class = attrs.get(ATTR_DEVICE_CLASS)
|
device_class = attrs.get(ATTR_DEVICE_CLASS)
|
||||||
if device_class == sensor.DEVICE_CLASS_HUMIDITY:
|
if device_class == sensor.SensorDeviceClass.HUMIDITY:
|
||||||
response["queryOnlyHumiditySetting"] = True
|
response["queryOnlyHumiditySetting"] = True
|
||||||
|
|
||||||
elif domain == humidifier.DOMAIN:
|
elif domain == humidifier.DOMAIN:
|
||||||
|
@ -1144,7 +1148,7 @@ class HumiditySettingTrait(_Trait):
|
||||||
|
|
||||||
if domain == sensor.DOMAIN:
|
if domain == sensor.DOMAIN:
|
||||||
device_class = attrs.get(ATTR_DEVICE_CLASS)
|
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
|
current_humidity = self.state.state
|
||||||
if current_humidity not in (STATE_UNKNOWN, STATE_UNAVAILABLE):
|
if current_humidity not in (STATE_UNKNOWN, STATE_UNAVAILABLE):
|
||||||
response["humidityAmbientPercent"] = round(float(current_humidity))
|
response["humidityAmbientPercent"] = round(float(current_humidity))
|
||||||
|
@ -1759,9 +1763,9 @@ class OpenCloseTrait(_Trait):
|
||||||
|
|
||||||
# Cover device classes that require 2FA
|
# Cover device classes that require 2FA
|
||||||
COVER_2FA = (
|
COVER_2FA = (
|
||||||
cover.DEVICE_CLASS_DOOR,
|
cover.CoverDeviceClass.DOOR,
|
||||||
cover.DEVICE_CLASS_GARAGE,
|
cover.CoverDeviceClass.GARAGE,
|
||||||
cover.DEVICE_CLASS_GATE,
|
cover.CoverDeviceClass.GATE,
|
||||||
)
|
)
|
||||||
|
|
||||||
name = TRAIT_OPENCLOSE
|
name = TRAIT_OPENCLOSE
|
||||||
|
@ -1774,11 +1778,11 @@ class OpenCloseTrait(_Trait):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return domain == binary_sensor.DOMAIN and device_class in (
|
return domain == binary_sensor.DOMAIN and device_class in (
|
||||||
binary_sensor.DEVICE_CLASS_DOOR,
|
binary_sensor.BinarySensorDeviceClass.DOOR,
|
||||||
binary_sensor.DEVICE_CLASS_GARAGE_DOOR,
|
binary_sensor.BinarySensorDeviceClass.GARAGE_DOOR,
|
||||||
binary_sensor.DEVICE_CLASS_LOCK,
|
binary_sensor.BinarySensorDeviceClass.LOCK,
|
||||||
binary_sensor.DEVICE_CLASS_OPENING,
|
binary_sensor.BinarySensorDeviceClass.OPENING,
|
||||||
binary_sensor.DEVICE_CLASS_WINDOW,
|
binary_sensor.BinarySensorDeviceClass.WINDOW,
|
||||||
)
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -2245,7 +2249,7 @@ class ChannelTrait(_Trait):
|
||||||
if (
|
if (
|
||||||
domain == media_player.DOMAIN
|
domain == media_player.DOMAIN
|
||||||
and (features & media_player.SUPPORT_PLAY_MEDIA)
|
and (features & media_player.SUPPORT_PLAY_MEDIA)
|
||||||
and device_class == media_player.DEVICE_CLASS_TV
|
and device_class == media_player.MediaPlayerDeviceClass.TV
|
||||||
):
|
):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -2293,12 +2297,12 @@ class SensorStateTrait(_Trait):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
sensor_types = {
|
sensor_types = {
|
||||||
sensor.DEVICE_CLASS_AQI: ("AirQuality", "AQI"),
|
sensor.SensorDeviceClass.AQI: ("AirQuality", "AQI"),
|
||||||
sensor.DEVICE_CLASS_CO: ("CarbonDioxideLevel", "PARTS_PER_MILLION"),
|
sensor.SensorDeviceClass.CO: ("CarbonDioxideLevel", "PARTS_PER_MILLION"),
|
||||||
sensor.DEVICE_CLASS_CO2: ("CarbonMonoxideLevel", "PARTS_PER_MILLION"),
|
sensor.SensorDeviceClass.CO2: ("CarbonMonoxideLevel", "PARTS_PER_MILLION"),
|
||||||
sensor.DEVICE_CLASS_PM25: ("PM2.5", "MICROGRAMS_PER_CUBIC_METER"),
|
sensor.SensorDeviceClass.PM25: ("PM2.5", "MICROGRAMS_PER_CUBIC_METER"),
|
||||||
sensor.DEVICE_CLASS_PM10: ("PM10", "MICROGRAMS_PER_CUBIC_METER"),
|
sensor.SensorDeviceClass.PM10: ("PM10", "MICROGRAMS_PER_CUBIC_METER"),
|
||||||
sensor.DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS: (
|
sensor.SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS: (
|
||||||
"VolatileOrganicCompounds",
|
"VolatileOrganicCompounds",
|
||||||
"PARTS_PER_MILLION",
|
"PARTS_PER_MILLION",
|
||||||
),
|
),
|
||||||
|
|
Loading…
Add table
Reference in a new issue