mirror of
https://github.com/home-assistant/core
synced 2024-08-02 23:40:32 +02:00
Add CO device class to binary_sensor entity model (#61962)
Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
parent
43dc12b1c8
commit
4da7508e9d
@ -37,6 +37,9 @@ class BinarySensorDeviceClass(StrEnum):
|
||||
# On means charging, Off means not charging
|
||||
BATTERY_CHARGING = "battery_charging"
|
||||
|
||||
# On means carbon monoxide detected, Off means no carbon monoxide (clear)
|
||||
CO = "carbon_monoxide"
|
||||
|
||||
# On means cold, Off means normal
|
||||
COLD = "cold"
|
||||
|
||||
@ -120,6 +123,7 @@ DEVICE_CLASSES_SCHEMA = vol.All(vol.Lower, vol.Coerce(BinarySensorDeviceClass))
|
||||
DEVICE_CLASSES = [cls.value for cls in BinarySensorDeviceClass]
|
||||
DEVICE_CLASS_BATTERY = BinarySensorDeviceClass.BATTERY.value
|
||||
DEVICE_CLASS_BATTERY_CHARGING = BinarySensorDeviceClass.BATTERY_CHARGING.value
|
||||
DEVICE_CLASS_CO = BinarySensorDeviceClass.CO.value
|
||||
DEVICE_CLASS_COLD = BinarySensorDeviceClass.COLD.value
|
||||
DEVICE_CLASS_CONNECTIVITY = BinarySensorDeviceClass.CONNECTIVITY.value
|
||||
DEVICE_CLASS_DOOR = BinarySensorDeviceClass.DOOR.value
|
||||
|
@ -17,6 +17,7 @@ from homeassistant.helpers.typing import ConfigType
|
||||
from . import (
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_BATTERY_CHARGING,
|
||||
DEVICE_CLASS_CO,
|
||||
DEVICE_CLASS_COLD,
|
||||
DEVICE_CLASS_CONNECTIVITY,
|
||||
DEVICE_CLASS_DOOR,
|
||||
@ -53,6 +54,8 @@ CONF_IS_BAT_LOW = "is_bat_low"
|
||||
CONF_IS_NOT_BAT_LOW = "is_not_bat_low"
|
||||
CONF_IS_CHARGING = "is_charging"
|
||||
CONF_IS_NOT_CHARGING = "is_not_charging"
|
||||
CONF_IS_CO = "is_co"
|
||||
CONF_IS_NO_CO = "is_no_co"
|
||||
CONF_IS_COLD = "is_cold"
|
||||
CONF_IS_NOT_COLD = "is_not_cold"
|
||||
CONF_IS_CONNECTED = "is_connected"
|
||||
@ -101,6 +104,7 @@ CONF_IS_NOT_OPEN = "is_not_open"
|
||||
IS_ON = [
|
||||
CONF_IS_BAT_LOW,
|
||||
CONF_IS_CHARGING,
|
||||
CONF_IS_CO,
|
||||
CONF_IS_COLD,
|
||||
CONF_IS_CONNECTED,
|
||||
CONF_IS_GAS,
|
||||
@ -142,6 +146,7 @@ IS_OFF = [
|
||||
CONF_IS_NOT_PRESENT,
|
||||
CONF_IS_NOT_TAMPERED,
|
||||
CONF_IS_NOT_UNSAFE,
|
||||
CONF_IS_NO_CO,
|
||||
CONF_IS_NO_GAS,
|
||||
CONF_IS_NO_LIGHT,
|
||||
CONF_IS_NO_MOTION,
|
||||
@ -163,6 +168,7 @@ ENTITY_CONDITIONS = {
|
||||
{CONF_TYPE: CONF_IS_CHARGING},
|
||||
{CONF_TYPE: CONF_IS_NOT_CHARGING},
|
||||
],
|
||||
DEVICE_CLASS_CO: [{CONF_TYPE: CONF_IS_CO}, {CONF_TYPE: CONF_IS_NO_CO}],
|
||||
DEVICE_CLASS_COLD: [{CONF_TYPE: CONF_IS_COLD}, {CONF_TYPE: CONF_IS_NOT_COLD}],
|
||||
DEVICE_CLASS_CONNECTIVITY: [
|
||||
{CONF_TYPE: CONF_IS_CONNECTED},
|
||||
|
@ -15,6 +15,7 @@ from homeassistant.helpers.entity_registry import async_entries_for_device
|
||||
from . import (
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_BATTERY_CHARGING,
|
||||
DEVICE_CLASS_CO,
|
||||
DEVICE_CLASS_COLD,
|
||||
DEVICE_CLASS_CONNECTIVITY,
|
||||
DEVICE_CLASS_DOOR,
|
||||
@ -51,6 +52,8 @@ CONF_BAT_LOW = "bat_low"
|
||||
CONF_NOT_BAT_LOW = "not_bat_low"
|
||||
CONF_CHARGING = "charging"
|
||||
CONF_NOT_CHARGING = "not_charging"
|
||||
CONF_CO = "co"
|
||||
CONF_NO_CO = "no_co"
|
||||
CONF_COLD = "cold"
|
||||
CONF_NOT_COLD = "not_cold"
|
||||
CONF_CONNECTED = "connected"
|
||||
@ -99,6 +102,7 @@ CONF_NOT_OPENED = "not_opened"
|
||||
|
||||
TURNED_ON = [
|
||||
CONF_BAT_LOW,
|
||||
CONF_CO,
|
||||
CONF_COLD,
|
||||
CONF_CONNECTED,
|
||||
CONF_GAS,
|
||||
@ -139,6 +143,7 @@ TURNED_OFF = [
|
||||
CONF_NOT_PRESENT,
|
||||
CONF_NOT_TAMPERED,
|
||||
CONF_NOT_UNSAFE,
|
||||
CONF_NO_CO,
|
||||
CONF_NO_GAS,
|
||||
CONF_NO_LIGHT,
|
||||
CONF_NO_MOTION,
|
||||
@ -157,6 +162,7 @@ ENTITY_TRIGGERS = {
|
||||
{CONF_TYPE: CONF_CHARGING},
|
||||
{CONF_TYPE: CONF_NOT_CHARGING},
|
||||
],
|
||||
DEVICE_CLASS_CO: [{CONF_TYPE: CONF_CO}, {CONF_TYPE: CONF_NO_CO}],
|
||||
DEVICE_CLASS_COLD: [{CONF_TYPE: CONF_COLD}, {CONF_TYPE: CONF_NOT_COLD}],
|
||||
DEVICE_CLASS_CONNECTIVITY: [
|
||||
{CONF_TYPE: CONF_CONNECTED},
|
||||
|
@ -4,6 +4,8 @@
|
||||
"condition_type": {
|
||||
"is_bat_low": "{entity_name} battery is low",
|
||||
"is_not_bat_low": "{entity_name} battery is normal",
|
||||
"is_co": "{entity_name} is detecting carbon monoxide",
|
||||
"is_no_co": "{entity_name} is not detecting carbon monoxide",
|
||||
"is_cold": "{entity_name} is cold",
|
||||
"is_not_cold": "{entity_name} is not cold",
|
||||
"is_connected": "{entity_name} is connected",
|
||||
@ -54,6 +56,8 @@
|
||||
"trigger_type": {
|
||||
"bat_low": "{entity_name} battery low",
|
||||
"not_bat_low": "{entity_name} battery normal",
|
||||
"co": "{entity_name} started detecting carbon monoxide",
|
||||
"no_co": "{entity_name} stopped detecting carbon monoxide",
|
||||
"cold": "{entity_name} became cold",
|
||||
"not_cold": "{entity_name} became not cold",
|
||||
"connected": "{entity_name} connected",
|
||||
@ -111,6 +115,10 @@
|
||||
"off": "Not charging",
|
||||
"on": "Charging"
|
||||
},
|
||||
"co": {
|
||||
"off": "Clear",
|
||||
"on": "Detected"
|
||||
},
|
||||
"cold": {
|
||||
"off": "[%key:component::binary_sensor::state::battery::off%]",
|
||||
"on": "Cold"
|
||||
@ -209,6 +217,7 @@
|
||||
}
|
||||
},
|
||||
"device_class": {
|
||||
"co": "carbon_monoxide",
|
||||
"cold": "cold",
|
||||
"gas": "gas",
|
||||
"heat": "heat",
|
||||
|
@ -11,7 +11,6 @@ from homeassistant.components.binary_sensor import BinarySensorDeviceClass
|
||||
from homeassistant.const import (
|
||||
ATTR_DEVICE_CLASS,
|
||||
ATTR_UNIT_OF_MEASUREMENT,
|
||||
DEVICE_CLASS_CO,
|
||||
DEVICE_CLASS_CO2,
|
||||
STATE_HOME,
|
||||
STATE_ON,
|
||||
@ -66,7 +65,7 @@ class SI(NamedTuple):
|
||||
|
||||
|
||||
BINARY_SENSOR_SERVICE_MAP: dict[str, SI] = {
|
||||
DEVICE_CLASS_CO: SI(
|
||||
BinarySensorDeviceClass.CO: SI(
|
||||
SERV_CARBON_MONOXIDE_SENSOR, CHAR_CARBON_MONOXIDE_DETECTED, int
|
||||
),
|
||||
DEVICE_CLASS_CO2: SI(SERV_CARBON_DIOXIDE_SENSOR, CHAR_CARBON_DIOXIDE_DETECTED, int),
|
||||
|
Loading…
Reference in New Issue
Block a user