mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Use moisture and moving device class in various integrations (#39963)
This commit is contained in:
parent
ceeea52915
commit
621526bbae
@ -4,6 +4,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_MOVING,
|
||||||
DEVICE_CLASSES_SCHEMA,
|
DEVICE_CLASSES_SCHEMA,
|
||||||
PLATFORM_SCHEMA,
|
PLATFORM_SCHEMA,
|
||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
@ -43,7 +44,7 @@ class AdsBinarySensor(AdsEntity, BinarySensorEntity):
|
|||||||
def __init__(self, ads_hub, name, ads_var, device_class):
|
def __init__(self, ads_hub, name, ads_var, device_class):
|
||||||
"""Initialize ADS binary sensor."""
|
"""Initialize ADS binary sensor."""
|
||||||
super().__init__(ads_hub, name, ads_var)
|
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):
|
async def async_added_to_hass(self):
|
||||||
"""Register device notification."""
|
"""Register device notification."""
|
||||||
|
@ -3,7 +3,11 @@ import logging
|
|||||||
|
|
||||||
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_MOISTURE,
|
||||||
|
PLATFORM_SCHEMA,
|
||||||
|
BinarySensorEntity,
|
||||||
|
)
|
||||||
from homeassistant.const import CONF_MONITORED_CONDITIONS
|
from homeassistant.const import CONF_MONITORED_CONDITIONS
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
|
||||||
@ -11,7 +15,7 @@ from . import DOMAIN
|
|||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
SENSOR_TYPES = {"Rain": "moisture", "Night": None}
|
SENSOR_TYPES = {"Rain": DEVICE_CLASS_MOISTURE, "Night": None}
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
"""Demo platform that has two fake binary sensors."""
|
"""Demo platform that has two fake binary sensors."""
|
||||||
from homeassistant.components.binary_sensor import (
|
from homeassistant.components.binary_sensor import (
|
||||||
|
DEVICE_CLASS_MOISTURE,
|
||||||
DEVICE_CLASS_MOTION,
|
DEVICE_CLASS_MOTION,
|
||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
)
|
)
|
||||||
@ -11,7 +12,9 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
|
|||||||
"""Set up the Demo binary sensor platform."""
|
"""Set up the Demo binary sensor platform."""
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
[
|
[
|
||||||
DemoBinarySensor("binary_1", "Basement Floor Wet", False, "moisture"),
|
DemoBinarySensor(
|
||||||
|
"binary_1", "Basement Floor Wet", False, DEVICE_CLASS_MOISTURE
|
||||||
|
),
|
||||||
DemoBinarySensor(
|
DemoBinarySensor(
|
||||||
"binary_2", "Movement Backyard", True, DEVICE_CLASS_MOTION
|
"binary_2", "Movement Backyard", True, DEVICE_CLASS_MOTION
|
||||||
),
|
),
|
||||||
|
@ -3,7 +3,11 @@ import logging
|
|||||||
|
|
||||||
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_MOVING,
|
||||||
|
PLATFORM_SCHEMA,
|
||||||
|
BinarySensorEntity,
|
||||||
|
)
|
||||||
from homeassistant.const import ATTR_ATTRIBUTION
|
from homeassistant.const import ATTR_ATTRIBUTION
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
|
||||||
@ -25,7 +29,6 @@ from . import (
|
|||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
DEFAULT_NAME = "Droplet"
|
DEFAULT_NAME = "Droplet"
|
||||||
DEFAULT_DEVICE_CLASS = "moving"
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
{vol.Required(CONF_DROPLETS): vol.All(cv.ensure_list, [cv.string])}
|
{vol.Required(CONF_DROPLETS): vol.All(cv.ensure_list, [cv.string])}
|
||||||
)
|
)
|
||||||
@ -73,7 +76,7 @@ class DigitalOceanBinarySensor(BinarySensorEntity):
|
|||||||
@property
|
@property
|
||||||
def device_class(self):
|
def device_class(self):
|
||||||
"""Return the class of this sensor."""
|
"""Return the class of this sensor."""
|
||||||
return DEFAULT_DEVICE_CLASS
|
return DEVICE_CLASS_MOVING
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_state_attributes(self):
|
def device_state_attributes(self):
|
||||||
|
@ -5,6 +5,7 @@ from aioguardian import Client
|
|||||||
|
|
||||||
from homeassistant.components.binary_sensor import (
|
from homeassistant.components.binary_sensor import (
|
||||||
DEVICE_CLASS_CONNECTIVITY,
|
DEVICE_CLASS_CONNECTIVITY,
|
||||||
|
DEVICE_CLASS_MOISTURE,
|
||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
@ -26,7 +27,7 @@ SENSOR_KIND_AP_INFO = "ap_enabled"
|
|||||||
SENSOR_KIND_LEAK_DETECTED = "leak_detected"
|
SENSOR_KIND_LEAK_DETECTED = "leak_detected"
|
||||||
SENSORS = [
|
SENSORS = [
|
||||||
(SENSOR_KIND_AP_INFO, "Onboard AP Enabled", DEVICE_CLASS_CONNECTIVITY),
|
(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),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,11 @@ import logging
|
|||||||
|
|
||||||
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_MOVING,
|
||||||
|
PLATFORM_SCHEMA,
|
||||||
|
BinarySensorEntity,
|
||||||
|
)
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
|
||||||
from . import (
|
from . import (
|
||||||
@ -22,7 +26,6 @@ from . import (
|
|||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
DEFAULT_NAME = "Node"
|
DEFAULT_NAME = "Node"
|
||||||
DEFAULT_DEVICE_CLASS = "moving"
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
{vol.Required(CONF_NODES): vol.All(cv.ensure_list, [cv.string])}
|
{vol.Required(CONF_NODES): vol.All(cv.ensure_list, [cv.string])}
|
||||||
)
|
)
|
||||||
@ -69,7 +72,7 @@ class LinodeBinarySensor(BinarySensorEntity):
|
|||||||
@property
|
@property
|
||||||
def device_class(self):
|
def device_class(self):
|
||||||
"""Return the class of this sensor."""
|
"""Return the class of this sensor."""
|
||||||
return DEFAULT_DEVICE_CLASS
|
return DEVICE_CLASS_MOVING
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_state_attributes(self):
|
def device_state_attributes(self):
|
||||||
|
@ -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_MOISTURE,
|
||||||
DEVICE_CLASS_MOTION,
|
DEVICE_CLASS_MOTION,
|
||||||
DEVICE_CLASS_SAFETY,
|
DEVICE_CLASS_SAFETY,
|
||||||
DEVICE_CLASS_SOUND,
|
DEVICE_CLASS_SOUND,
|
||||||
@ -19,7 +20,7 @@ SENSORS = {
|
|||||||
"S_WATER_LEAK": DEVICE_CLASS_SAFETY,
|
"S_WATER_LEAK": DEVICE_CLASS_SAFETY,
|
||||||
"S_SOUND": DEVICE_CLASS_SOUND,
|
"S_SOUND": DEVICE_CLASS_SOUND,
|
||||||
"S_VIBRATION": DEVICE_CLASS_VIBRATION,
|
"S_VIBRATION": DEVICE_CLASS_VIBRATION,
|
||||||
"S_MOISTURE": "moisture",
|
"S_MOISTURE": DEVICE_CLASS_MOISTURE,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ from typing import Callable
|
|||||||
from homeassistant.components.binary_sensor import (
|
from homeassistant.components.binary_sensor import (
|
||||||
DEVICE_CLASS_CONNECTIVITY,
|
DEVICE_CLASS_CONNECTIVITY,
|
||||||
DEVICE_CLASS_DOOR,
|
DEVICE_CLASS_DOOR,
|
||||||
|
DEVICE_CLASS_MOISTURE,
|
||||||
DEVICE_CLASS_SMOKE,
|
DEVICE_CLASS_SMOKE,
|
||||||
DEVICE_CLASS_WINDOW,
|
DEVICE_CLASS_WINDOW,
|
||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
@ -34,7 +35,7 @@ BINARY_SENSOR_TYPES = {
|
|||||||
SENSOR_BATTERY: ("Low Battery", "battery"),
|
SENSOR_BATTERY: ("Low Battery", "battery"),
|
||||||
SENSOR_DOOR: ("Door", DEVICE_CLASS_DOOR),
|
SENSOR_DOOR: ("Door", DEVICE_CLASS_DOOR),
|
||||||
SENSOR_GARAGE_DOOR: ("Garage Door", "garage_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_MISSING: ("Missing", DEVICE_CLASS_CONNECTIVITY),
|
||||||
SENSOR_SAFE: ("Safe", DEVICE_CLASS_DOOR),
|
SENSOR_SAFE: ("Safe", DEVICE_CLASS_DOOR),
|
||||||
SENSOR_SLIDING: ("Sliding Door/Window", DEVICE_CLASS_DOOR),
|
SENSOR_SLIDING: ("Sliding Door/Window", DEVICE_CLASS_DOOR),
|
||||||
|
@ -4,7 +4,9 @@ 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_MOISTURE,
|
||||||
DEVICE_CLASS_MOTION,
|
DEVICE_CLASS_MOTION,
|
||||||
|
DEVICE_CLASS_MOVING,
|
||||||
DEVICE_CLASS_OPENING,
|
DEVICE_CLASS_OPENING,
|
||||||
DEVICE_CLASS_PRESENCE,
|
DEVICE_CLASS_PRESENCE,
|
||||||
DEVICE_CLASS_PROBLEM,
|
DEVICE_CLASS_PROBLEM,
|
||||||
@ -27,7 +29,7 @@ CAPABILITY_TO_ATTRIB = {
|
|||||||
Capability.water_sensor: Attribute.water,
|
Capability.water_sensor: Attribute.water,
|
||||||
}
|
}
|
||||||
ATTRIB_TO_CLASS = {
|
ATTRIB_TO_CLASS = {
|
||||||
Attribute.acceleration: "moving",
|
Attribute.acceleration: DEVICE_CLASS_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: DEVICE_CLASS_MOTION,
|
Attribute.motion: DEVICE_CLASS_MOTION,
|
||||||
@ -35,7 +37,7 @@ ATTRIB_TO_CLASS = {
|
|||||||
Attribute.sound: DEVICE_CLASS_SOUND,
|
Attribute.sound: DEVICE_CLASS_SOUND,
|
||||||
Attribute.tamper: DEVICE_CLASS_PROBLEM,
|
Attribute.tamper: DEVICE_CLASS_PROBLEM,
|
||||||
Attribute.valve: DEVICE_CLASS_OPENING,
|
Attribute.valve: DEVICE_CLASS_OPENING,
|
||||||
Attribute.water: "moisture",
|
Attribute.water: DEVICE_CLASS_MOISTURE,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import logging
|
|||||||
import pywink
|
import pywink
|
||||||
|
|
||||||
from homeassistant.components.binary_sensor import (
|
from homeassistant.components.binary_sensor import (
|
||||||
|
DEVICE_CLASS_MOISTURE,
|
||||||
DEVICE_CLASS_MOTION,
|
DEVICE_CLASS_MOTION,
|
||||||
DEVICE_CLASS_OCCUPANCY,
|
DEVICE_CLASS_OCCUPANCY,
|
||||||
DEVICE_CLASS_OPENING,
|
DEVICE_CLASS_OPENING,
|
||||||
@ -23,7 +24,7 @@ SENSOR_TYPES = {
|
|||||||
"capturing_audio": DEVICE_CLASS_SOUND,
|
"capturing_audio": DEVICE_CLASS_SOUND,
|
||||||
"capturing_video": None,
|
"capturing_video": None,
|
||||||
"co_detected": "gas",
|
"co_detected": "gas",
|
||||||
"liquid_detected": "moisture",
|
"liquid_detected": DEVICE_CLASS_MOISTURE,
|
||||||
"loudness": DEVICE_CLASS_SOUND,
|
"loudness": DEVICE_CLASS_SOUND,
|
||||||
"motion": DEVICE_CLASS_MOTION,
|
"motion": DEVICE_CLASS_MOTION,
|
||||||
"noise": DEVICE_CLASS_SOUND,
|
"noise": DEVICE_CLASS_SOUND,
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from homeassistant.components.binary_sensor import (
|
from homeassistant.components.binary_sensor import (
|
||||||
|
DEVICE_CLASS_MOISTURE,
|
||||||
DEVICE_CLASS_OPENING,
|
DEVICE_CLASS_OPENING,
|
||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
)
|
)
|
||||||
@ -352,7 +353,7 @@ class XiaomiWaterLeakSensor(XiaomiBinarySensor):
|
|||||||
"Water Leak Sensor",
|
"Water Leak Sensor",
|
||||||
xiaomi_hub,
|
xiaomi_hub,
|
||||||
data_key,
|
data_key,
|
||||||
"moisture",
|
DEVICE_CLASS_MOISTURE,
|
||||||
config_entry,
|
config_entry,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user