Black
This commit is contained in:
parent
da05dfe708
commit
4de97abc3a
2676 changed files with 163166 additions and 140084 deletions
|
@ -27,21 +27,21 @@ def _retrieve_online_state(data, doorbell):
|
|||
|
||||
def _retrieve_motion_state(data, doorbell):
|
||||
from august.activity import ActivityType
|
||||
return _activity_time_based_state(data, doorbell,
|
||||
[ActivityType.DOORBELL_MOTION,
|
||||
ActivityType.DOORBELL_DING])
|
||||
|
||||
return _activity_time_based_state(
|
||||
data, doorbell, [ActivityType.DOORBELL_MOTION, ActivityType.DOORBELL_DING]
|
||||
)
|
||||
|
||||
|
||||
def _retrieve_ding_state(data, doorbell):
|
||||
from august.activity import ActivityType
|
||||
return _activity_time_based_state(data, doorbell,
|
||||
[ActivityType.DOORBELL_DING])
|
||||
|
||||
return _activity_time_based_state(data, doorbell, [ActivityType.DOORBELL_DING])
|
||||
|
||||
|
||||
def _activity_time_based_state(data, doorbell, activity_types):
|
||||
"""Get the latest state of the sensor."""
|
||||
latest = data.get_latest_device_activity(doorbell.device_id,
|
||||
*activity_types)
|
||||
latest = data.get_latest_device_activity(doorbell.device_id, *activity_types)
|
||||
|
||||
if latest is not None:
|
||||
start = latest.activity_start_time
|
||||
|
@ -51,14 +51,12 @@ def _activity_time_based_state(data, doorbell, activity_types):
|
|||
|
||||
|
||||
# Sensor types: Name, device_class, state_provider
|
||||
SENSOR_TYPES_DOOR = {
|
||||
'door_open': ['Open', 'door', _retrieve_door_state],
|
||||
}
|
||||
SENSOR_TYPES_DOOR = {"door_open": ["Open", "door", _retrieve_door_state]}
|
||||
|
||||
SENSOR_TYPES_DOORBELL = {
|
||||
'doorbell_ding': ['Ding', 'occupancy', _retrieve_ding_state],
|
||||
'doorbell_motion': ['Motion', 'motion', _retrieve_motion_state],
|
||||
'doorbell_online': ['Online', 'connectivity', _retrieve_online_state],
|
||||
"doorbell_ding": ["Ding", "occupancy", _retrieve_ding_state],
|
||||
"doorbell_motion": ["Motion", "motion", _retrieve_motion_state],
|
||||
"doorbell_online": ["Online", "connectivity", _retrieve_online_state],
|
||||
}
|
||||
|
||||
|
||||
|
@ -68,31 +66,33 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
|||
devices = []
|
||||
|
||||
from august.lock import LockDoorStatus
|
||||
|
||||
for door in data.locks:
|
||||
for sensor_type in SENSOR_TYPES_DOOR:
|
||||
state_provider = SENSOR_TYPES_DOOR[sensor_type][2]
|
||||
if state_provider(data, door) is LockDoorStatus.UNKNOWN:
|
||||
_LOGGER.debug(
|
||||
"Not adding sensor class %s for lock %s ",
|
||||
SENSOR_TYPES_DOOR[sensor_type][1], door.device_name
|
||||
SENSOR_TYPES_DOOR[sensor_type][1],
|
||||
door.device_name,
|
||||
)
|
||||
continue
|
||||
|
||||
_LOGGER.debug(
|
||||
"Adding sensor class %s for %s",
|
||||
SENSOR_TYPES_DOOR[sensor_type][1], door.device_name
|
||||
SENSOR_TYPES_DOOR[sensor_type][1],
|
||||
door.device_name,
|
||||
)
|
||||
devices.append(AugustDoorBinarySensor(data, sensor_type, door))
|
||||
|
||||
for doorbell in data.doorbells:
|
||||
for sensor_type in SENSOR_TYPES_DOORBELL:
|
||||
_LOGGER.debug("Adding doorbell sensor class %s for %s",
|
||||
SENSOR_TYPES_DOORBELL[sensor_type][1],
|
||||
doorbell.device_name)
|
||||
devices.append(
|
||||
AugustDoorbellBinarySensor(data, sensor_type,
|
||||
doorbell)
|
||||
_LOGGER.debug(
|
||||
"Adding doorbell sensor class %s for %s",
|
||||
SENSOR_TYPES_DOORBELL[sensor_type][1],
|
||||
doorbell.device_name,
|
||||
)
|
||||
devices.append(AugustDoorbellBinarySensor(data, sensor_type, doorbell))
|
||||
|
||||
add_entities(devices, True)
|
||||
|
||||
|
@ -126,8 +126,9 @@ class AugustDoorBinarySensor(BinarySensorDevice):
|
|||
@property
|
||||
def name(self):
|
||||
"""Return the name of the binary sensor."""
|
||||
return "{} {}".format(self._door.device_name,
|
||||
SENSOR_TYPES_DOOR[self._sensor_type][0])
|
||||
return "{} {}".format(
|
||||
self._door.device_name, SENSOR_TYPES_DOOR[self._sensor_type][0]
|
||||
)
|
||||
|
||||
def update(self):
|
||||
"""Get the latest state of the sensor."""
|
||||
|
@ -136,14 +137,15 @@ class AugustDoorBinarySensor(BinarySensorDevice):
|
|||
self._available = self._state is not None
|
||||
|
||||
from august.lock import LockDoorStatus
|
||||
|
||||
self._state = self._state == LockDoorStatus.OPEN
|
||||
|
||||
@property
|
||||
def unique_id(self) -> str:
|
||||
"""Get the unique of the door open binary sensor."""
|
||||
return '{:s}_{:s}'.format(self._door.device_id,
|
||||
SENSOR_TYPES_DOOR[self._sensor_type][0]
|
||||
.lower())
|
||||
return "{:s}_{:s}".format(
|
||||
self._door.device_id, SENSOR_TYPES_DOOR[self._sensor_type][0].lower()
|
||||
)
|
||||
|
||||
|
||||
class AugustDoorbellBinarySensor(BinarySensorDevice):
|
||||
|
@ -175,8 +177,9 @@ class AugustDoorbellBinarySensor(BinarySensorDevice):
|
|||
@property
|
||||
def name(self):
|
||||
"""Return the name of the binary sensor."""
|
||||
return "{} {}".format(self._doorbell.device_name,
|
||||
SENSOR_TYPES_DOORBELL[self._sensor_type][0])
|
||||
return "{} {}".format(
|
||||
self._doorbell.device_name, SENSOR_TYPES_DOORBELL[self._sensor_type][0]
|
||||
)
|
||||
|
||||
def update(self):
|
||||
"""Get the latest state of the sensor."""
|
||||
|
@ -187,6 +190,7 @@ class AugustDoorbellBinarySensor(BinarySensorDevice):
|
|||
@property
|
||||
def unique_id(self) -> str:
|
||||
"""Get the unique id of the doorbell sensor."""
|
||||
return '{:s}_{:s}'.format(self._doorbell.device_id,
|
||||
SENSOR_TYPES_DOORBELL[self._sensor_type][0]
|
||||
.lower())
|
||||
return "{:s}_{:s}".format(
|
||||
self._doorbell.device_id,
|
||||
SENSOR_TYPES_DOORBELL[self._sensor_type][0].lower(),
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue