Use DEVICE_CLASS_MOTION in various integrations (#39962)

This commit is contained in:
springstan 2020-09-12 23:20:30 +02:00 committed by GitHub
parent 02cb592917
commit e55035b2f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 59 additions and 31 deletions

View file

@ -1,5 +1,8 @@
"""Support for Android IP Webcam binary sensors.""" """Support for Android IP Webcam binary sensors."""
from homeassistant.components.binary_sensor import BinarySensorEntity from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
BinarySensorEntity,
)
from . import CONF_HOST, CONF_NAME, DATA_IP_WEBCAM, KEY_MAP, AndroidIPCamEntity from . import CONF_HOST, CONF_NAME, DATA_IP_WEBCAM, KEY_MAP, AndroidIPCamEntity
@ -47,4 +50,4 @@ class IPWebcamBinarySensor(AndroidIPCamEntity, BinarySensorEntity):
@property @property
def device_class(self): def device_class(self):
"""Return the class of this device, from component DEVICE_CLASSES.""" """Return the class of this device, from component DEVICE_CLASSES."""
return "motion" return DEVICE_CLASS_MOTION

View file

@ -7,6 +7,7 @@ import requests
import voluptuous as vol import voluptuous as vol
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OPENING, DEVICE_CLASS_OPENING,
DEVICE_CLASS_SAFETY, DEVICE_CLASS_SAFETY,
DEVICE_CLASS_SMOKE, DEVICE_CLASS_SMOKE,
@ -88,7 +89,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
def get_opening_type(zone): def get_opening_type(zone):
"""Return the result of the type guessing from name.""" """Return the result of the type guessing from name."""
if "MOTION" in zone["name"]: if "MOTION" in zone["name"]:
return "motion" return DEVICE_CLASS_MOTION
if "KEY" in zone["name"]: if "KEY" in zone["name"]:
return DEVICE_CLASS_SAFETY return DEVICE_CLASS_SAFETY
if "SMOKE" in zone["name"]: if "SMOKE" in zone["name"]:

View file

@ -1,5 +1,8 @@
"""Demo platform that has two fake binary sensors.""" """Demo platform that has two fake binary sensors."""
from homeassistant.components.binary_sensor import BinarySensorEntity from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
BinarySensorEntity,
)
from . import DOMAIN from . import DOMAIN
@ -9,7 +12,9 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
async_add_entities( async_add_entities(
[ [
DemoBinarySensor("binary_1", "Basement Floor Wet", False, "moisture"), DemoBinarySensor("binary_1", "Basement Floor Wet", False, "moisture"),
DemoBinarySensor("binary_2", "Movement Backyard", True, "motion"), DemoBinarySensor(
"binary_2", "Movement Backyard", True, DEVICE_CLASS_MOTION
),
] ]
) )

View file

@ -2,6 +2,7 @@
import logging import logging
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OPENING, DEVICE_CLASS_OPENING,
BinarySensorEntity, BinarySensorEntity,
) )
@ -12,9 +13,9 @@ from . import ATTR_DISCOVER_DEVICES, EGARDIA_DEVICE
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
EGARDIA_TYPE_TO_DEVICE_CLASS = { EGARDIA_TYPE_TO_DEVICE_CLASS = {
"IR Sensor": "motion", "IR Sensor": DEVICE_CLASS_MOTION,
"Door Contact": DEVICE_CLASS_OPENING, "Door Contact": DEVICE_CLASS_OPENING,
"IR": "motion", "IR": DEVICE_CLASS_MOTION,
} }

View file

@ -4,7 +4,11 @@ import logging
import haffmpeg.sensor as ffmpeg_sensor import haffmpeg.sensor as ffmpeg_sensor
import voluptuous as vol import voluptuous as vol
from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorEntity from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
PLATFORM_SCHEMA,
BinarySensorEntity,
)
from homeassistant.components.ffmpeg import ( from homeassistant.components.ffmpeg import (
CONF_EXTRA_ARGUMENTS, CONF_EXTRA_ARGUMENTS,
CONF_INITIAL_STATE, CONF_INITIAL_STATE,
@ -119,4 +123,4 @@ class FFmpegMotion(FFmpegBinarySensor):
@property @property
def device_class(self): def device_class(self):
"""Return the class of this sensor, from DEVICE_CLASSES.""" """Return the class of this sensor, from DEVICE_CLASSES."""
return "motion" return DEVICE_CLASS_MOTION

View file

@ -3,6 +3,7 @@ import logging
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_DOOR, DEVICE_CLASS_DOOR,
DEVICE_CLASS_MOTION,
DEVICE_CLASS_SMOKE, DEVICE_CLASS_SMOKE,
DEVICE_CLASS_WINDOW, DEVICE_CLASS_WINDOW,
DOMAIN, DOMAIN,
@ -16,11 +17,11 @@ _LOGGER = logging.getLogger(__name__)
SENSOR_TYPES = { SENSOR_TYPES = {
"com.fibaro.floodSensor": ["Flood", "mdi:water", "flood"], "com.fibaro.floodSensor": ["Flood", "mdi:water", "flood"],
"com.fibaro.motionSensor": ["Motion", "mdi:run", "motion"], "com.fibaro.motionSensor": ["Motion", "mdi:run", DEVICE_CLASS_MOTION],
"com.fibaro.doorSensor": ["Door", "mdi:window-open", DEVICE_CLASS_DOOR], "com.fibaro.doorSensor": ["Door", "mdi:window-open", DEVICE_CLASS_DOOR],
"com.fibaro.windowSensor": ["Window", "mdi:window-open", DEVICE_CLASS_WINDOW], "com.fibaro.windowSensor": ["Window", "mdi:window-open", DEVICE_CLASS_WINDOW],
"com.fibaro.smokeSensor": ["Smoke", "mdi:smoking", DEVICE_CLASS_SMOKE], "com.fibaro.smokeSensor": ["Smoke", "mdi:smoking", DEVICE_CLASS_SMOKE],
"com.fibaro.FGMS001": ["Motion", "mdi:run", "motion"], "com.fibaro.FGMS001": ["Motion", "mdi:run", DEVICE_CLASS_MOTION],
"com.fibaro.heatDetector": ["Heat", "mdi:fire", "heat"], "com.fibaro.heatDetector": ["Heat", "mdi:fire", "heat"],
} }

View file

@ -7,6 +7,7 @@ import voluptuous as vol
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_CONNECTIVITY, DEVICE_CLASS_CONNECTIVITY,
DEVICE_CLASS_MOTION,
PLATFORM_SCHEMA, PLATFORM_SCHEMA,
BinarySensorEntity, BinarySensorEntity,
) )
@ -38,11 +39,11 @@ DEFAULT_DELAY = 0
ATTR_DELAY = "delay" ATTR_DELAY = "delay"
DEVICE_CLASS_MAP = { DEVICE_CLASS_MAP = {
"Motion": "motion", "Motion": DEVICE_CLASS_MOTION,
"Line Crossing": "motion", "Line Crossing": DEVICE_CLASS_MOTION,
"Field Detection": "motion", "Field Detection": DEVICE_CLASS_MOTION,
"Video Loss": None, "Video Loss": None,
"Tamper Detection": "motion", "Tamper Detection": DEVICE_CLASS_MOTION,
"Shelter Alarm": None, "Shelter Alarm": None,
"Disk Full": None, "Disk Full": None,
"Disk Error": None, "Disk Error": None,
@ -51,15 +52,15 @@ DEVICE_CLASS_MAP = {
"Illegal Access": None, "Illegal Access": None,
"Video Mismatch": None, "Video Mismatch": None,
"Bad Video": None, "Bad Video": None,
"PIR Alarm": "motion", "PIR Alarm": DEVICE_CLASS_MOTION,
"Face Detection": "motion", "Face Detection": DEVICE_CLASS_MOTION,
"Scene Change Detection": "motion", "Scene Change Detection": DEVICE_CLASS_MOTION,
"I/O": None, "I/O": None,
"Unattended Baggage": "motion", "Unattended Baggage": DEVICE_CLASS_MOTION,
"Attended Baggage": "motion", "Attended Baggage": DEVICE_CLASS_MOTION,
"Recording Failure": None, "Recording Failure": None,
"Exiting Region": "motion", "Exiting Region": DEVICE_CLASS_MOTION,
"Entering Region": "motion", "Entering Region": DEVICE_CLASS_MOTION,
} }
CUSTOMIZE_SCHEMA = vol.Schema( CUSTOMIZE_SCHEMA = vol.Schema(

View file

@ -1,5 +1,6 @@
"""Support for the Hive binary sensors.""" """Support for the Hive binary sensors."""
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OPENING, DEVICE_CLASS_OPENING,
BinarySensorEntity, BinarySensorEntity,
) )
@ -7,7 +8,7 @@ from homeassistant.components.binary_sensor import (
from . import DATA_HIVE, DOMAIN, HiveEntity from . import DATA_HIVE, DOMAIN, HiveEntity
DEVICETYPE_DEVICE_CLASS = { DEVICETYPE_DEVICE_CLASS = {
"motionsensor": "motion", "motionsensor": DEVICE_CLASS_MOTION,
"contactsensor": DEVICE_CLASS_OPENING, "contactsensor": DEVICE_CLASS_OPENING,
} }

View file

@ -1,6 +1,7 @@
"""Support for MySensors binary sensors.""" """Support for MySensors binary sensors."""
from homeassistant.components import mysensors from homeassistant.components import mysensors
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_SAFETY, DEVICE_CLASS_SAFETY,
DEVICE_CLASS_SOUND, DEVICE_CLASS_SOUND,
DEVICE_CLASS_VIBRATION, DEVICE_CLASS_VIBRATION,
@ -12,7 +13,7 @@ from homeassistant.const import STATE_ON
SENSORS = { SENSORS = {
"S_DOOR": "door", "S_DOOR": "door",
"S_MOTION": "motion", "S_MOTION": DEVICE_CLASS_MOTION,
"S_SMOKE": "smoke", "S_SMOKE": "smoke",
"S_SPRINKLER": DEVICE_CLASS_SAFETY, "S_SPRINKLER": DEVICE_CLASS_SAFETY,
"S_WATER_LEAK": DEVICE_CLASS_SAFETY, "S_WATER_LEAK": DEVICE_CLASS_SAFETY,

View file

@ -4,6 +4,7 @@ import logging
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_CONNECTIVITY, DEVICE_CLASS_CONNECTIVITY,
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OCCUPANCY, DEVICE_CLASS_OCCUPANCY,
DEVICE_CLASS_SOUND, DEVICE_CLASS_SOUND,
BinarySensorEntity, BinarySensorEntity,
@ -24,7 +25,7 @@ CLIMATE_BINARY_TYPES = {
} }
CAMERA_BINARY_TYPES = { CAMERA_BINARY_TYPES = {
"motion_detected": "motion", "motion_detected": DEVICE_CLASS_MOTION,
"sound_detected": DEVICE_CLASS_SOUND, "sound_detected": DEVICE_CLASS_SOUND,
"person_detected": DEVICE_CLASS_OCCUPANCY, "person_detected": DEVICE_CLASS_OCCUPANCY,
} }
@ -158,7 +159,7 @@ class NestActivityZoneSensor(NestBinarySensor):
@property @property
def device_class(self): def device_class(self):
"""Return the device class of the binary sensor.""" """Return the device class of the binary sensor."""
return "motion" return DEVICE_CLASS_MOTION
def update(self): def update(self):
"""Retrieve latest state.""" """Retrieve latest state."""

View file

@ -3,6 +3,7 @@ from datetime import datetime
import logging import logging
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OCCUPANCY, DEVICE_CLASS_OCCUPANCY,
BinarySensorEntity, BinarySensorEntity,
) )
@ -16,7 +17,11 @@ _LOGGER = logging.getLogger(__name__)
# Sensor types: Name, category, device_class # Sensor types: Name, category, device_class
SENSOR_TYPES = { SENSOR_TYPES = {
"ding": ["Ding", ["doorbots", "authorized_doorbots"], DEVICE_CLASS_OCCUPANCY], "ding": ["Ding", ["doorbots", "authorized_doorbots"], DEVICE_CLASS_OCCUPANCY],
"motion": ["Motion", ["doorbots", "authorized_doorbots", "stickup_cams"], "motion"], "motion": [
"Motion",
["doorbots", "authorized_doorbots", "stickup_cams"],
DEVICE_CLASS_MOTION,
],
} }

View file

@ -5,6 +5,7 @@ import logging
import voluptuous as vol import voluptuous as vol
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OCCUPANCY, DEVICE_CLASS_OCCUPANCY,
PLATFORM_SCHEMA, PLATFORM_SCHEMA,
BinarySensorEntity, BinarySensorEntity,
@ -21,7 +22,7 @@ SCAN_INTERVAL = timedelta(seconds=5)
# Sensor types: Name, device_class, event # Sensor types: Name, device_class, event
SENSOR_TYPES = { SENSOR_TYPES = {
"button": ["Button", DEVICE_CLASS_OCCUPANCY, "device:sensor:button"], "button": ["Button", DEVICE_CLASS_OCCUPANCY, "device:sensor:button"],
"motion": ["Motion", "motion", "device:sensor:motion"], "motion": ["Motion", DEVICE_CLASS_MOTION, "device:sensor:motion"],
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View file

@ -4,6 +4,7 @@ from typing import Optional, Sequence
from pysmartthings import Attribute, Capability from pysmartthings import Attribute, Capability
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OPENING, DEVICE_CLASS_OPENING,
DEVICE_CLASS_PRESENCE, DEVICE_CLASS_PRESENCE,
DEVICE_CLASS_PROBLEM, DEVICE_CLASS_PROBLEM,
@ -29,7 +30,7 @@ ATTRIB_TO_CLASS = {
Attribute.acceleration: "moving", Attribute.acceleration: "moving",
Attribute.contact: DEVICE_CLASS_OPENING, Attribute.contact: DEVICE_CLASS_OPENING,
Attribute.filter_status: DEVICE_CLASS_PROBLEM, Attribute.filter_status: DEVICE_CLASS_PROBLEM,
Attribute.motion: "motion", Attribute.motion: DEVICE_CLASS_MOTION,
Attribute.presence: DEVICE_CLASS_PRESENCE, Attribute.presence: DEVICE_CLASS_PRESENCE,
Attribute.sound: DEVICE_CLASS_SOUND, Attribute.sound: DEVICE_CLASS_SOUND,
Attribute.tamper: DEVICE_CLASS_PROBLEM, Attribute.tamper: DEVICE_CLASS_PROBLEM,

View file

@ -4,6 +4,7 @@ import logging
from pyspcwebgw.const import ZoneInput, ZoneType from pyspcwebgw.const import ZoneInput, ZoneType
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OPENING, DEVICE_CLASS_OPENING,
DEVICE_CLASS_SMOKE, DEVICE_CLASS_SMOKE,
BinarySensorEntity, BinarySensorEntity,
@ -18,7 +19,7 @@ _LOGGER = logging.getLogger(__name__)
def _get_device_class(zone_type): def _get_device_class(zone_type):
return { return {
ZoneType.ALARM: "motion", ZoneType.ALARM: DEVICE_CLASS_MOTION,
ZoneType.ENTRY_EXIT: DEVICE_CLASS_OPENING, ZoneType.ENTRY_EXIT: DEVICE_CLASS_OPENING,
ZoneType.FIRE: DEVICE_CLASS_SMOKE, ZoneType.FIRE: DEVICE_CLASS_SMOKE,
ZoneType.TECHNICAL: "power", ZoneType.TECHNICAL: "power",

View file

@ -4,6 +4,7 @@ import logging
import pywink import pywink
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OCCUPANCY, DEVICE_CLASS_OCCUPANCY,
DEVICE_CLASS_OPENING, DEVICE_CLASS_OPENING,
DEVICE_CLASS_SMOKE, DEVICE_CLASS_SMOKE,
@ -24,7 +25,7 @@ SENSOR_TYPES = {
"co_detected": "gas", "co_detected": "gas",
"liquid_detected": "moisture", "liquid_detected": "moisture",
"loudness": DEVICE_CLASS_SOUND, "loudness": DEVICE_CLASS_SOUND,
"motion": "motion", "motion": DEVICE_CLASS_MOTION,
"noise": DEVICE_CLASS_SOUND, "noise": DEVICE_CLASS_SOUND,
"opened": DEVICE_CLASS_OPENING, "opened": DEVICE_CLASS_OPENING,
"presence": DEVICE_CLASS_OCCUPANCY, "presence": DEVICE_CLASS_OCCUPANCY,