Use BinarySensorDeviceClass enum in binary_sensor device automations (#62635)

This commit is contained in:
epenet 2022-01-04 16:46:21 +01:00 committed by GitHub
parent 7e4414710d
commit 411fcad798
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 196 additions and 130 deletions

View File

@ -14,37 +14,7 @@ from homeassistant.helpers.entity_registry import (
) )
from homeassistant.helpers.typing import ConfigType from homeassistant.helpers.typing import ConfigType
from . import ( from . import DOMAIN, BinarySensorDeviceClass
DEVICE_CLASS_BATTERY,
DEVICE_CLASS_BATTERY_CHARGING,
DEVICE_CLASS_CO,
DEVICE_CLASS_COLD,
DEVICE_CLASS_CONNECTIVITY,
DEVICE_CLASS_DOOR,
DEVICE_CLASS_GARAGE_DOOR,
DEVICE_CLASS_GAS,
DEVICE_CLASS_HEAT,
DEVICE_CLASS_LIGHT,
DEVICE_CLASS_LOCK,
DEVICE_CLASS_MOISTURE,
DEVICE_CLASS_MOTION,
DEVICE_CLASS_MOVING,
DEVICE_CLASS_OCCUPANCY,
DEVICE_CLASS_OPENING,
DEVICE_CLASS_PLUG,
DEVICE_CLASS_POWER,
DEVICE_CLASS_PRESENCE,
DEVICE_CLASS_PROBLEM,
DEVICE_CLASS_RUNNING,
DEVICE_CLASS_SAFETY,
DEVICE_CLASS_SMOKE,
DEVICE_CLASS_SOUND,
DEVICE_CLASS_TAMPER,
DEVICE_CLASS_UPDATE,
DEVICE_CLASS_VIBRATION,
DEVICE_CLASS_WINDOW,
DOMAIN,
)
# mypy: disallow-any-generics # mypy: disallow-any-generics
@ -160,71 +130,122 @@ IS_OFF = [
] ]
ENTITY_CONDITIONS = { ENTITY_CONDITIONS = {
DEVICE_CLASS_BATTERY: [ BinarySensorDeviceClass.BATTERY: [
{CONF_TYPE: CONF_IS_BAT_LOW}, {CONF_TYPE: CONF_IS_BAT_LOW},
{CONF_TYPE: CONF_IS_NOT_BAT_LOW}, {CONF_TYPE: CONF_IS_NOT_BAT_LOW},
], ],
DEVICE_CLASS_BATTERY_CHARGING: [ BinarySensorDeviceClass.BATTERY_CHARGING: [
{CONF_TYPE: CONF_IS_CHARGING}, {CONF_TYPE: CONF_IS_CHARGING},
{CONF_TYPE: CONF_IS_NOT_CHARGING}, {CONF_TYPE: CONF_IS_NOT_CHARGING},
], ],
DEVICE_CLASS_CO: [{CONF_TYPE: CONF_IS_CO}, {CONF_TYPE: CONF_IS_NO_CO}], BinarySensorDeviceClass.CO: [
DEVICE_CLASS_COLD: [{CONF_TYPE: CONF_IS_COLD}, {CONF_TYPE: CONF_IS_NOT_COLD}], {CONF_TYPE: CONF_IS_CO},
DEVICE_CLASS_CONNECTIVITY: [ {CONF_TYPE: CONF_IS_NO_CO},
],
BinarySensorDeviceClass.COLD: [
{CONF_TYPE: CONF_IS_COLD},
{CONF_TYPE: CONF_IS_NOT_COLD},
],
BinarySensorDeviceClass.CONNECTIVITY: [
{CONF_TYPE: CONF_IS_CONNECTED}, {CONF_TYPE: CONF_IS_CONNECTED},
{CONF_TYPE: CONF_IS_NOT_CONNECTED}, {CONF_TYPE: CONF_IS_NOT_CONNECTED},
], ],
DEVICE_CLASS_DOOR: [{CONF_TYPE: CONF_IS_OPEN}, {CONF_TYPE: CONF_IS_NOT_OPEN}], BinarySensorDeviceClass.DOOR: [
DEVICE_CLASS_GARAGE_DOOR: [
{CONF_TYPE: CONF_IS_OPEN}, {CONF_TYPE: CONF_IS_OPEN},
{CONF_TYPE: CONF_IS_NOT_OPEN}, {CONF_TYPE: CONF_IS_NOT_OPEN},
], ],
DEVICE_CLASS_GAS: [{CONF_TYPE: CONF_IS_GAS}, {CONF_TYPE: CONF_IS_NO_GAS}], BinarySensorDeviceClass.GARAGE_DOOR: [
DEVICE_CLASS_HEAT: [{CONF_TYPE: CONF_IS_HOT}, {CONF_TYPE: CONF_IS_NOT_HOT}], {CONF_TYPE: CONF_IS_OPEN},
DEVICE_CLASS_LIGHT: [{CONF_TYPE: CONF_IS_LIGHT}, {CONF_TYPE: CONF_IS_NO_LIGHT}], {CONF_TYPE: CONF_IS_NOT_OPEN},
DEVICE_CLASS_LOCK: [{CONF_TYPE: CONF_IS_LOCKED}, {CONF_TYPE: CONF_IS_NOT_LOCKED}], ],
DEVICE_CLASS_MOISTURE: [{CONF_TYPE: CONF_IS_MOIST}, {CONF_TYPE: CONF_IS_NOT_MOIST}], BinarySensorDeviceClass.GAS: [
DEVICE_CLASS_MOTION: [{CONF_TYPE: CONF_IS_MOTION}, {CONF_TYPE: CONF_IS_NO_MOTION}], {CONF_TYPE: CONF_IS_GAS},
DEVICE_CLASS_MOVING: [{CONF_TYPE: CONF_IS_MOVING}, {CONF_TYPE: CONF_IS_NOT_MOVING}], {CONF_TYPE: CONF_IS_NO_GAS},
DEVICE_CLASS_OCCUPANCY: [ ],
BinarySensorDeviceClass.HEAT: [
{CONF_TYPE: CONF_IS_HOT},
{CONF_TYPE: CONF_IS_NOT_HOT},
],
BinarySensorDeviceClass.LIGHT: [
{CONF_TYPE: CONF_IS_LIGHT},
{CONF_TYPE: CONF_IS_NO_LIGHT},
],
BinarySensorDeviceClass.LOCK: [
{CONF_TYPE: CONF_IS_LOCKED},
{CONF_TYPE: CONF_IS_NOT_LOCKED},
],
BinarySensorDeviceClass.MOISTURE: [
{CONF_TYPE: CONF_IS_MOIST},
{CONF_TYPE: CONF_IS_NOT_MOIST},
],
BinarySensorDeviceClass.MOTION: [
{CONF_TYPE: CONF_IS_MOTION},
{CONF_TYPE: CONF_IS_NO_MOTION},
],
BinarySensorDeviceClass.MOVING: [
{CONF_TYPE: CONF_IS_MOVING},
{CONF_TYPE: CONF_IS_NOT_MOVING},
],
BinarySensorDeviceClass.OCCUPANCY: [
{CONF_TYPE: CONF_IS_OCCUPIED}, {CONF_TYPE: CONF_IS_OCCUPIED},
{CONF_TYPE: CONF_IS_NOT_OCCUPIED}, {CONF_TYPE: CONF_IS_NOT_OCCUPIED},
], ],
DEVICE_CLASS_OPENING: [{CONF_TYPE: CONF_IS_OPEN}, {CONF_TYPE: CONF_IS_NOT_OPEN}], BinarySensorDeviceClass.OPENING: [
DEVICE_CLASS_PLUG: [ {CONF_TYPE: CONF_IS_OPEN},
{CONF_TYPE: CONF_IS_NOT_OPEN},
],
BinarySensorDeviceClass.PLUG: [
{CONF_TYPE: CONF_IS_PLUGGED_IN}, {CONF_TYPE: CONF_IS_PLUGGED_IN},
{CONF_TYPE: CONF_IS_NOT_PLUGGED_IN}, {CONF_TYPE: CONF_IS_NOT_PLUGGED_IN},
], ],
DEVICE_CLASS_POWER: [ BinarySensorDeviceClass.POWER: [
{CONF_TYPE: CONF_IS_POWERED}, {CONF_TYPE: CONF_IS_POWERED},
{CONF_TYPE: CONF_IS_NOT_POWERED}, {CONF_TYPE: CONF_IS_NOT_POWERED},
], ],
DEVICE_CLASS_PRESENCE: [ BinarySensorDeviceClass.PRESENCE: [
{CONF_TYPE: CONF_IS_PRESENT}, {CONF_TYPE: CONF_IS_PRESENT},
{CONF_TYPE: CONF_IS_NOT_PRESENT}, {CONF_TYPE: CONF_IS_NOT_PRESENT},
], ],
DEVICE_CLASS_PROBLEM: [ BinarySensorDeviceClass.PROBLEM: [
{CONF_TYPE: CONF_IS_PROBLEM}, {CONF_TYPE: CONF_IS_PROBLEM},
{CONF_TYPE: CONF_IS_NO_PROBLEM}, {CONF_TYPE: CONF_IS_NO_PROBLEM},
], ],
DEVICE_CLASS_RUNNING: [ BinarySensorDeviceClass.RUNNING: [
{CONF_TYPE: CONF_IS_RUNNING}, {CONF_TYPE: CONF_IS_RUNNING},
{CONF_TYPE: CONF_IS_NOT_RUNNING}, {CONF_TYPE: CONF_IS_NOT_RUNNING},
], ],
DEVICE_CLASS_SAFETY: [{CONF_TYPE: CONF_IS_UNSAFE}, {CONF_TYPE: CONF_IS_NOT_UNSAFE}], BinarySensorDeviceClass.SAFETY: [
DEVICE_CLASS_SMOKE: [{CONF_TYPE: CONF_IS_SMOKE}, {CONF_TYPE: CONF_IS_NO_SMOKE}], {CONF_TYPE: CONF_IS_UNSAFE},
DEVICE_CLASS_SOUND: [{CONF_TYPE: CONF_IS_SOUND}, {CONF_TYPE: CONF_IS_NO_SOUND}], {CONF_TYPE: CONF_IS_NOT_UNSAFE},
DEVICE_CLASS_TAMPER: [ ],
BinarySensorDeviceClass.SMOKE: [
{CONF_TYPE: CONF_IS_SMOKE},
{CONF_TYPE: CONF_IS_NO_SMOKE},
],
BinarySensorDeviceClass.SOUND: [
{CONF_TYPE: CONF_IS_SOUND},
{CONF_TYPE: CONF_IS_NO_SOUND},
],
BinarySensorDeviceClass.TAMPER: [
{CONF_TYPE: CONF_IS_TAMPERED}, {CONF_TYPE: CONF_IS_TAMPERED},
{CONF_TYPE: CONF_IS_NOT_TAMPERED}, {CONF_TYPE: CONF_IS_NOT_TAMPERED},
], ],
DEVICE_CLASS_UPDATE: [{CONF_TYPE: CONF_IS_UPDATE}, {CONF_TYPE: CONF_IS_NO_UPDATE}], BinarySensorDeviceClass.UPDATE: [
DEVICE_CLASS_VIBRATION: [ {CONF_TYPE: CONF_IS_UPDATE},
{CONF_TYPE: CONF_IS_NO_UPDATE},
],
BinarySensorDeviceClass.VIBRATION: [
{CONF_TYPE: CONF_IS_VIBRATION}, {CONF_TYPE: CONF_IS_VIBRATION},
{CONF_TYPE: CONF_IS_NO_VIBRATION}, {CONF_TYPE: CONF_IS_NO_VIBRATION},
], ],
DEVICE_CLASS_WINDOW: [{CONF_TYPE: CONF_IS_OPEN}, {CONF_TYPE: CONF_IS_NOT_OPEN}], BinarySensorDeviceClass.WINDOW: [
DEVICE_CLASS_NONE: [{CONF_TYPE: CONF_IS_ON}, {CONF_TYPE: CONF_IS_OFF}], {CONF_TYPE: CONF_IS_OPEN},
{CONF_TYPE: CONF_IS_NOT_OPEN},
],
DEVICE_CLASS_NONE: [
{CONF_TYPE: CONF_IS_ON},
{CONF_TYPE: CONF_IS_OFF},
],
} }
CONDITION_SCHEMA = cv.DEVICE_CONDITION_BASE_SCHEMA.extend( CONDITION_SCHEMA = cv.DEVICE_CONDITION_BASE_SCHEMA.extend(

View File

@ -12,37 +12,7 @@ from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity import get_device_class from homeassistant.helpers.entity import get_device_class
from homeassistant.helpers.entity_registry import async_entries_for_device from homeassistant.helpers.entity_registry import async_entries_for_device
from . import ( from . import DOMAIN, BinarySensorDeviceClass
DEVICE_CLASS_BATTERY,
DEVICE_CLASS_BATTERY_CHARGING,
DEVICE_CLASS_CO,
DEVICE_CLASS_COLD,
DEVICE_CLASS_CONNECTIVITY,
DEVICE_CLASS_DOOR,
DEVICE_CLASS_GARAGE_DOOR,
DEVICE_CLASS_GAS,
DEVICE_CLASS_HEAT,
DEVICE_CLASS_LIGHT,
DEVICE_CLASS_LOCK,
DEVICE_CLASS_MOISTURE,
DEVICE_CLASS_MOTION,
DEVICE_CLASS_MOVING,
DEVICE_CLASS_OCCUPANCY,
DEVICE_CLASS_OPENING,
DEVICE_CLASS_PLUG,
DEVICE_CLASS_POWER,
DEVICE_CLASS_PRESENCE,
DEVICE_CLASS_PROBLEM,
DEVICE_CLASS_RUNNING,
DEVICE_CLASS_SAFETY,
DEVICE_CLASS_SMOKE,
DEVICE_CLASS_SOUND,
DEVICE_CLASS_TAMPER,
DEVICE_CLASS_UPDATE,
DEVICE_CLASS_VIBRATION,
DEVICE_CLASS_WINDOW,
DOMAIN,
)
# mypy: allow-untyped-defs, no-check-untyped-defs # mypy: allow-untyped-defs, no-check-untyped-defs
@ -157,47 +127,122 @@ TURNED_OFF = [
ENTITY_TRIGGERS = { ENTITY_TRIGGERS = {
DEVICE_CLASS_BATTERY: [{CONF_TYPE: CONF_BAT_LOW}, {CONF_TYPE: CONF_NOT_BAT_LOW}], BinarySensorDeviceClass.BATTERY: [
DEVICE_CLASS_BATTERY_CHARGING: [ {CONF_TYPE: CONF_BAT_LOW},
{CONF_TYPE: CONF_NOT_BAT_LOW},
],
BinarySensorDeviceClass.BATTERY_CHARGING: [
{CONF_TYPE: CONF_CHARGING}, {CONF_TYPE: CONF_CHARGING},
{CONF_TYPE: CONF_NOT_CHARGING}, {CONF_TYPE: CONF_NOT_CHARGING},
], ],
DEVICE_CLASS_CO: [{CONF_TYPE: CONF_CO}, {CONF_TYPE: CONF_NO_CO}], BinarySensorDeviceClass.CO: [
DEVICE_CLASS_COLD: [{CONF_TYPE: CONF_COLD}, {CONF_TYPE: CONF_NOT_COLD}], {CONF_TYPE: CONF_CO},
DEVICE_CLASS_CONNECTIVITY: [ {CONF_TYPE: CONF_NO_CO},
],
BinarySensorDeviceClass.COLD: [
{CONF_TYPE: CONF_COLD},
{CONF_TYPE: CONF_NOT_COLD},
],
BinarySensorDeviceClass.CONNECTIVITY: [
{CONF_TYPE: CONF_CONNECTED}, {CONF_TYPE: CONF_CONNECTED},
{CONF_TYPE: CONF_NOT_CONNECTED}, {CONF_TYPE: CONF_NOT_CONNECTED},
], ],
DEVICE_CLASS_DOOR: [{CONF_TYPE: CONF_OPENED}, {CONF_TYPE: CONF_NOT_OPENED}], BinarySensorDeviceClass.DOOR: [
DEVICE_CLASS_GARAGE_DOOR: [{CONF_TYPE: CONF_OPENED}, {CONF_TYPE: CONF_NOT_OPENED}], {CONF_TYPE: CONF_OPENED},
DEVICE_CLASS_GAS: [{CONF_TYPE: CONF_GAS}, {CONF_TYPE: CONF_NO_GAS}], {CONF_TYPE: CONF_NOT_OPENED},
DEVICE_CLASS_HEAT: [{CONF_TYPE: CONF_HOT}, {CONF_TYPE: CONF_NOT_HOT}], ],
DEVICE_CLASS_LIGHT: [{CONF_TYPE: CONF_LIGHT}, {CONF_TYPE: CONF_NO_LIGHT}], BinarySensorDeviceClass.GARAGE_DOOR: [
DEVICE_CLASS_LOCK: [{CONF_TYPE: CONF_LOCKED}, {CONF_TYPE: CONF_NOT_LOCKED}], {CONF_TYPE: CONF_OPENED},
DEVICE_CLASS_MOISTURE: [{CONF_TYPE: CONF_MOIST}, {CONF_TYPE: CONF_NOT_MOIST}], {CONF_TYPE: CONF_NOT_OPENED},
DEVICE_CLASS_MOTION: [{CONF_TYPE: CONF_MOTION}, {CONF_TYPE: CONF_NO_MOTION}], ],
DEVICE_CLASS_MOVING: [{CONF_TYPE: CONF_MOVING}, {CONF_TYPE: CONF_NOT_MOVING}], BinarySensorDeviceClass.GAS: [
DEVICE_CLASS_OCCUPANCY: [ {CONF_TYPE: CONF_GAS},
{CONF_TYPE: CONF_NO_GAS},
],
BinarySensorDeviceClass.HEAT: [
{CONF_TYPE: CONF_HOT},
{CONF_TYPE: CONF_NOT_HOT},
],
BinarySensorDeviceClass.LIGHT: [
{CONF_TYPE: CONF_LIGHT},
{CONF_TYPE: CONF_NO_LIGHT},
],
BinarySensorDeviceClass.LOCK: [
{CONF_TYPE: CONF_LOCKED},
{CONF_TYPE: CONF_NOT_LOCKED},
],
BinarySensorDeviceClass.MOISTURE: [
{CONF_TYPE: CONF_MOIST},
{CONF_TYPE: CONF_NOT_MOIST},
],
BinarySensorDeviceClass.MOTION: [
{CONF_TYPE: CONF_MOTION},
{CONF_TYPE: CONF_NO_MOTION},
],
BinarySensorDeviceClass.MOVING: [
{CONF_TYPE: CONF_MOVING},
{CONF_TYPE: CONF_NOT_MOVING},
],
BinarySensorDeviceClass.OCCUPANCY: [
{CONF_TYPE: CONF_OCCUPIED}, {CONF_TYPE: CONF_OCCUPIED},
{CONF_TYPE: CONF_NOT_OCCUPIED}, {CONF_TYPE: CONF_NOT_OCCUPIED},
], ],
DEVICE_CLASS_OPENING: [{CONF_TYPE: CONF_OPENED}, {CONF_TYPE: CONF_NOT_OPENED}], BinarySensorDeviceClass.OPENING: [
DEVICE_CLASS_PLUG: [{CONF_TYPE: CONF_PLUGGED_IN}, {CONF_TYPE: CONF_NOT_PLUGGED_IN}], {CONF_TYPE: CONF_OPENED},
DEVICE_CLASS_POWER: [{CONF_TYPE: CONF_POWERED}, {CONF_TYPE: CONF_NOT_POWERED}], {CONF_TYPE: CONF_NOT_OPENED},
DEVICE_CLASS_PRESENCE: [{CONF_TYPE: CONF_PRESENT}, {CONF_TYPE: CONF_NOT_PRESENT}], ],
DEVICE_CLASS_PROBLEM: [{CONF_TYPE: CONF_PROBLEM}, {CONF_TYPE: CONF_NO_PROBLEM}], BinarySensorDeviceClass.PLUG: [
DEVICE_CLASS_RUNNING: [{CONF_TYPE: CONF_RUNNING}, {CONF_TYPE: CONF_NOT_RUNNING}], {CONF_TYPE: CONF_PLUGGED_IN},
DEVICE_CLASS_SAFETY: [{CONF_TYPE: CONF_UNSAFE}, {CONF_TYPE: CONF_NOT_UNSAFE}], {CONF_TYPE: CONF_NOT_PLUGGED_IN},
DEVICE_CLASS_SMOKE: [{CONF_TYPE: CONF_SMOKE}, {CONF_TYPE: CONF_NO_SMOKE}], ],
DEVICE_CLASS_SOUND: [{CONF_TYPE: CONF_SOUND}, {CONF_TYPE: CONF_NO_SOUND}], BinarySensorDeviceClass.POWER: [
DEVICE_CLASS_UPDATE: [{CONF_TYPE: CONF_UPDATE}, {CONF_TYPE: CONF_NO_UPDATE}], {CONF_TYPE: CONF_POWERED},
DEVICE_CLASS_TAMPER: [{CONF_TYPE: CONF_TAMPERED}, {CONF_TYPE: CONF_NOT_TAMPERED}], {CONF_TYPE: CONF_NOT_POWERED},
DEVICE_CLASS_VIBRATION: [ ],
BinarySensorDeviceClass.PRESENCE: [
{CONF_TYPE: CONF_PRESENT},
{CONF_TYPE: CONF_NOT_PRESENT},
],
BinarySensorDeviceClass.PROBLEM: [
{CONF_TYPE: CONF_PROBLEM},
{CONF_TYPE: CONF_NO_PROBLEM},
],
BinarySensorDeviceClass.RUNNING: [
{CONF_TYPE: CONF_RUNNING},
{CONF_TYPE: CONF_NOT_RUNNING},
],
BinarySensorDeviceClass.SAFETY: [
{CONF_TYPE: CONF_UNSAFE},
{CONF_TYPE: CONF_NOT_UNSAFE},
],
BinarySensorDeviceClass.SMOKE: [
{CONF_TYPE: CONF_SMOKE},
{CONF_TYPE: CONF_NO_SMOKE},
],
BinarySensorDeviceClass.SOUND: [
{CONF_TYPE: CONF_SOUND},
{CONF_TYPE: CONF_NO_SOUND},
],
BinarySensorDeviceClass.UPDATE: [
{CONF_TYPE: CONF_UPDATE},
{CONF_TYPE: CONF_NO_UPDATE},
],
BinarySensorDeviceClass.TAMPER: [
{CONF_TYPE: CONF_TAMPERED},
{CONF_TYPE: CONF_NOT_TAMPERED},
],
BinarySensorDeviceClass.VIBRATION: [
{CONF_TYPE: CONF_VIBRATION}, {CONF_TYPE: CONF_VIBRATION},
{CONF_TYPE: CONF_NO_VIBRATION}, {CONF_TYPE: CONF_NO_VIBRATION},
], ],
DEVICE_CLASS_WINDOW: [{CONF_TYPE: CONF_OPENED}, {CONF_TYPE: CONF_NOT_OPENED}], BinarySensorDeviceClass.WINDOW: [
DEVICE_CLASS_NONE: [{CONF_TYPE: CONF_TURNED_ON}, {CONF_TYPE: CONF_TURNED_OFF}], {CONF_TYPE: CONF_OPENED},
{CONF_TYPE: CONF_NOT_OPENED},
],
DEVICE_CLASS_NONE: [
{CONF_TYPE: CONF_TURNED_ON},
{CONF_TYPE: CONF_TURNED_OFF},
],
} }

View File

@ -5,7 +5,7 @@ from unittest.mock import patch
import pytest import pytest
import homeassistant.components.automation as automation import homeassistant.components.automation as automation
from homeassistant.components.binary_sensor import DEVICE_CLASSES, DOMAIN from homeassistant.components.binary_sensor import DOMAIN, BinarySensorDeviceClass
from homeassistant.components.binary_sensor.device_condition import ENTITY_CONDITIONS from homeassistant.components.binary_sensor.device_condition import ENTITY_CONDITIONS
from homeassistant.components.device_automation import DeviceAutomationType from homeassistant.components.device_automation import DeviceAutomationType
from homeassistant.const import CONF_PLATFORM, STATE_OFF, STATE_ON from homeassistant.const import CONF_PLATFORM, STATE_OFF, STATE_ON
@ -53,7 +53,7 @@ async def test_get_conditions(hass, device_reg, entity_reg, enable_custom_integr
config_entry_id=config_entry.entry_id, config_entry_id=config_entry.entry_id,
connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")}, connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
) )
for device_class in DEVICE_CLASSES: for device_class in BinarySensorDeviceClass:
entity_reg.async_get_or_create( entity_reg.async_get_or_create(
DOMAIN, DOMAIN,
"test", "test",
@ -72,7 +72,7 @@ async def test_get_conditions(hass, device_reg, entity_reg, enable_custom_integr
"device_id": device_entry.id, "device_id": device_entry.id,
"entity_id": platform.ENTITIES[device_class].entity_id, "entity_id": platform.ENTITIES[device_class].entity_id,
} }
for device_class in DEVICE_CLASSES for device_class in BinarySensorDeviceClass
for condition in ENTITY_CONDITIONS[device_class] for condition in ENTITY_CONDITIONS[device_class]
] ]
conditions = await async_get_device_automations( conditions = await async_get_device_automations(
@ -90,7 +90,7 @@ async def test_get_conditions_no_state(hass, device_reg, entity_reg):
connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")}, connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
) )
entity_ids = {} entity_ids = {}
for device_class in DEVICE_CLASSES: for device_class in BinarySensorDeviceClass:
entity_ids[device_class] = entity_reg.async_get_or_create( entity_ids[device_class] = entity_reg.async_get_or_create(
DOMAIN, DOMAIN,
"test", "test",
@ -109,7 +109,7 @@ async def test_get_conditions_no_state(hass, device_reg, entity_reg):
"device_id": device_entry.id, "device_id": device_entry.id,
"entity_id": entity_ids[device_class], "entity_id": entity_ids[device_class],
} }
for device_class in DEVICE_CLASSES for device_class in BinarySensorDeviceClass
for condition in ENTITY_CONDITIONS[device_class] for condition in ENTITY_CONDITIONS[device_class]
] ]
conditions = await async_get_device_automations( conditions = await async_get_device_automations(

View File

@ -4,7 +4,7 @@ from datetime import timedelta
import pytest import pytest
import homeassistant.components.automation as automation import homeassistant.components.automation as automation
from homeassistant.components.binary_sensor import DEVICE_CLASSES, DOMAIN from homeassistant.components.binary_sensor import DOMAIN, BinarySensorDeviceClass
from homeassistant.components.binary_sensor.device_trigger import ENTITY_TRIGGERS from homeassistant.components.binary_sensor.device_trigger import ENTITY_TRIGGERS
from homeassistant.components.device_automation import DeviceAutomationType from homeassistant.components.device_automation import DeviceAutomationType
from homeassistant.const import CONF_PLATFORM, STATE_OFF, STATE_ON from homeassistant.const import CONF_PLATFORM, STATE_OFF, STATE_ON
@ -53,7 +53,7 @@ async def test_get_triggers(hass, device_reg, entity_reg, enable_custom_integrat
config_entry_id=config_entry.entry_id, config_entry_id=config_entry.entry_id,
connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")}, connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
) )
for device_class in DEVICE_CLASSES: for device_class in BinarySensorDeviceClass:
entity_reg.async_get_or_create( entity_reg.async_get_or_create(
DOMAIN, DOMAIN,
"test", "test",
@ -72,7 +72,7 @@ async def test_get_triggers(hass, device_reg, entity_reg, enable_custom_integrat
"device_id": device_entry.id, "device_id": device_entry.id,
"entity_id": platform.ENTITIES[device_class].entity_id, "entity_id": platform.ENTITIES[device_class].entity_id,
} }
for device_class in DEVICE_CLASSES for device_class in BinarySensorDeviceClass
for trigger in ENTITY_TRIGGERS[device_class] for trigger in ENTITY_TRIGGERS[device_class]
] ]
triggers = await async_get_device_automations( triggers = await async_get_device_automations(
@ -93,7 +93,7 @@ async def test_get_triggers_no_state(hass, device_reg, entity_reg):
config_entry_id=config_entry.entry_id, config_entry_id=config_entry.entry_id,
connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")}, connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
) )
for device_class in DEVICE_CLASSES: for device_class in BinarySensorDeviceClass:
entity_ids[device_class] = entity_reg.async_get_or_create( entity_ids[device_class] = entity_reg.async_get_or_create(
DOMAIN, DOMAIN,
"test", "test",
@ -112,7 +112,7 @@ async def test_get_triggers_no_state(hass, device_reg, entity_reg):
"device_id": device_entry.id, "device_id": device_entry.id,
"entity_id": entity_ids[device_class], "entity_id": entity_ids[device_class],
} }
for device_class in DEVICE_CLASSES for device_class in BinarySensorDeviceClass
for trigger in ENTITY_TRIGGERS[device_class] for trigger in ENTITY_TRIGGERS[device_class]
] ]
triggers = await async_get_device_automations( triggers = await async_get_device_automations(