Use moisture and moving device class in various integrations (#39963)

pull/40027/head
springstan 2020-09-13 16:33:54 +02:00 committed by GitHub
parent ceeea52915
commit 621526bbae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 38 additions and 17 deletions

View File

@ -4,6 +4,7 @@ import logging
import voluptuous as vol
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOVING,
DEVICE_CLASSES_SCHEMA,
PLATFORM_SCHEMA,
BinarySensorEntity,
@ -43,7 +44,7 @@ class AdsBinarySensor(AdsEntity, BinarySensorEntity):
def __init__(self, ads_hub, name, ads_var, device_class):
"""Initialize ADS binary sensor."""
super().__init__(ads_hub, name, ads_var)
self._device_class = device_class or "moving"
self._device_class = device_class or DEVICE_CLASS_MOVING
async def async_added_to_hass(self):
"""Register device notification."""

View File

@ -3,7 +3,11 @@ import logging
import voluptuous as vol
from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorEntity
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOISTURE,
PLATFORM_SCHEMA,
BinarySensorEntity,
)
from homeassistant.const import CONF_MONITORED_CONDITIONS
import homeassistant.helpers.config_validation as cv
@ -11,7 +15,7 @@ from . import DOMAIN
_LOGGER = logging.getLogger(__name__)
SENSOR_TYPES = {"Rain": "moisture", "Night": None}
SENSOR_TYPES = {"Rain": DEVICE_CLASS_MOISTURE, "Night": None}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{

View File

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

View File

@ -3,7 +3,11 @@ import logging
import voluptuous as vol
from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorEntity
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOVING,
PLATFORM_SCHEMA,
BinarySensorEntity,
)
from homeassistant.const import ATTR_ATTRIBUTION
import homeassistant.helpers.config_validation as cv
@ -25,7 +29,6 @@ from . import (
_LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "Droplet"
DEFAULT_DEVICE_CLASS = "moving"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{vol.Required(CONF_DROPLETS): vol.All(cv.ensure_list, [cv.string])}
)
@ -73,7 +76,7 @@ class DigitalOceanBinarySensor(BinarySensorEntity):
@property
def device_class(self):
"""Return the class of this sensor."""
return DEFAULT_DEVICE_CLASS
return DEVICE_CLASS_MOVING
@property
def device_state_attributes(self):

View File

@ -5,6 +5,7 @@ from aioguardian import Client
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_CONNECTIVITY,
DEVICE_CLASS_MOISTURE,
BinarySensorEntity,
)
from homeassistant.config_entries import ConfigEntry
@ -26,7 +27,7 @@ SENSOR_KIND_AP_INFO = "ap_enabled"
SENSOR_KIND_LEAK_DETECTED = "leak_detected"
SENSORS = [
(SENSOR_KIND_AP_INFO, "Onboard AP Enabled", DEVICE_CLASS_CONNECTIVITY),
(SENSOR_KIND_LEAK_DETECTED, "Leak Detected", "moisture"),
(SENSOR_KIND_LEAK_DETECTED, "Leak Detected", DEVICE_CLASS_MOISTURE),
]

View File

@ -3,7 +3,11 @@ import logging
import voluptuous as vol
from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorEntity
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOVING,
PLATFORM_SCHEMA,
BinarySensorEntity,
)
import homeassistant.helpers.config_validation as cv
from . import (
@ -22,7 +26,6 @@ from . import (
_LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "Node"
DEFAULT_DEVICE_CLASS = "moving"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{vol.Required(CONF_NODES): vol.All(cv.ensure_list, [cv.string])}
)
@ -69,7 +72,7 @@ class LinodeBinarySensor(BinarySensorEntity):
@property
def device_class(self):
"""Return the class of this sensor."""
return DEFAULT_DEVICE_CLASS
return DEVICE_CLASS_MOVING
@property
def device_state_attributes(self):

View File

@ -1,6 +1,7 @@
"""Support for MySensors binary sensors."""
from homeassistant.components import mysensors
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOISTURE,
DEVICE_CLASS_MOTION,
DEVICE_CLASS_SAFETY,
DEVICE_CLASS_SOUND,
@ -19,7 +20,7 @@ SENSORS = {
"S_WATER_LEAK": DEVICE_CLASS_SAFETY,
"S_SOUND": DEVICE_CLASS_SOUND,
"S_VIBRATION": DEVICE_CLASS_VIBRATION,
"S_MOISTURE": "moisture",
"S_MOISTURE": DEVICE_CLASS_MOISTURE,
}

View File

@ -5,6 +5,7 @@ from typing import Callable
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_CONNECTIVITY,
DEVICE_CLASS_DOOR,
DEVICE_CLASS_MOISTURE,
DEVICE_CLASS_SMOKE,
DEVICE_CLASS_WINDOW,
BinarySensorEntity,
@ -34,7 +35,7 @@ BINARY_SENSOR_TYPES = {
SENSOR_BATTERY: ("Low Battery", "battery"),
SENSOR_DOOR: ("Door", DEVICE_CLASS_DOOR),
SENSOR_GARAGE_DOOR: ("Garage Door", "garage_door"),
SENSOR_LEAK: ("Leak Detector", "moisture"),
SENSOR_LEAK: ("Leak Detector", DEVICE_CLASS_MOISTURE),
SENSOR_MISSING: ("Missing", DEVICE_CLASS_CONNECTIVITY),
SENSOR_SAFE: ("Safe", DEVICE_CLASS_DOOR),
SENSOR_SLIDING: ("Sliding Door/Window", DEVICE_CLASS_DOOR),

View File

@ -4,7 +4,9 @@ from typing import Optional, Sequence
from pysmartthings import Attribute, Capability
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOISTURE,
DEVICE_CLASS_MOTION,
DEVICE_CLASS_MOVING,
DEVICE_CLASS_OPENING,
DEVICE_CLASS_PRESENCE,
DEVICE_CLASS_PROBLEM,
@ -27,7 +29,7 @@ CAPABILITY_TO_ATTRIB = {
Capability.water_sensor: Attribute.water,
}
ATTRIB_TO_CLASS = {
Attribute.acceleration: "moving",
Attribute.acceleration: DEVICE_CLASS_MOVING,
Attribute.contact: DEVICE_CLASS_OPENING,
Attribute.filter_status: DEVICE_CLASS_PROBLEM,
Attribute.motion: DEVICE_CLASS_MOTION,
@ -35,7 +37,7 @@ ATTRIB_TO_CLASS = {
Attribute.sound: DEVICE_CLASS_SOUND,
Attribute.tamper: DEVICE_CLASS_PROBLEM,
Attribute.valve: DEVICE_CLASS_OPENING,
Attribute.water: "moisture",
Attribute.water: DEVICE_CLASS_MOISTURE,
}

View File

@ -4,6 +4,7 @@ import logging
import pywink
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOISTURE,
DEVICE_CLASS_MOTION,
DEVICE_CLASS_OCCUPANCY,
DEVICE_CLASS_OPENING,
@ -23,7 +24,7 @@ SENSOR_TYPES = {
"capturing_audio": DEVICE_CLASS_SOUND,
"capturing_video": None,
"co_detected": "gas",
"liquid_detected": "moisture",
"liquid_detected": DEVICE_CLASS_MOISTURE,
"loudness": DEVICE_CLASS_SOUND,
"motion": DEVICE_CLASS_MOTION,
"noise": DEVICE_CLASS_SOUND,

View File

@ -2,6 +2,7 @@
import logging
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOISTURE,
DEVICE_CLASS_OPENING,
BinarySensorEntity,
)
@ -352,7 +353,7 @@ class XiaomiWaterLeakSensor(XiaomiBinarySensor):
"Water Leak Sensor",
xiaomi_hub,
data_key,
"moisture",
DEVICE_CLASS_MOISTURE,
config_entry,
)