Bump simplisafe-python to 2021.11.0 (#59692)
This commit is contained in:
parent
96f7b0d910
commit
5370dd8122
8 changed files with 66 additions and 71 deletions
|
@ -16,11 +16,16 @@ from simplipy.errors import (
|
|||
from simplipy.system import SystemNotification
|
||||
from simplipy.system.v2 import SystemV2
|
||||
from simplipy.system.v3 import (
|
||||
VOLUME_HIGH,
|
||||
VOLUME_LOW,
|
||||
VOLUME_MEDIUM,
|
||||
VOLUME_OFF,
|
||||
MAX_ALARM_DURATION,
|
||||
MAX_ENTRY_DELAY_AWAY,
|
||||
MAX_ENTRY_DELAY_HOME,
|
||||
MAX_EXIT_DELAY_AWAY,
|
||||
MAX_EXIT_DELAY_HOME,
|
||||
MIN_ALARM_DURATION,
|
||||
MIN_ENTRY_DELAY_AWAY,
|
||||
MIN_EXIT_DELAY_AWAY,
|
||||
SystemV3,
|
||||
Volume,
|
||||
)
|
||||
from simplipy.websocket import (
|
||||
EVENT_AUTOMATIC_TEST,
|
||||
|
@ -120,10 +125,10 @@ PLATFORMS = (
|
|||
)
|
||||
|
||||
VOLUME_MAP = {
|
||||
"high": VOLUME_HIGH,
|
||||
"low": VOLUME_LOW,
|
||||
"medium": VOLUME_MEDIUM,
|
||||
"off": VOLUME_OFF,
|
||||
"high": Volume.HIGH,
|
||||
"low": Volume.LOW,
|
||||
"medium": Volume.MEDIUM,
|
||||
"off": Volume.OFF,
|
||||
}
|
||||
|
||||
SERVICE_BASE_SCHEMA = vol.Schema({vol.Required(ATTR_SYSTEM_ID): cv.positive_int})
|
||||
|
@ -141,25 +146,29 @@ SERVICE_SET_SYSTEM_PROPERTIES_SCHEMA = SERVICE_BASE_SCHEMA.extend(
|
|||
vol.Optional(ATTR_ALARM_DURATION): vol.All(
|
||||
cv.time_period,
|
||||
lambda value: value.total_seconds(),
|
||||
vol.Range(min=30, max=480),
|
||||
vol.Range(min=MIN_ALARM_DURATION, max=MAX_ALARM_DURATION),
|
||||
),
|
||||
vol.Optional(ATTR_ALARM_VOLUME): vol.All(vol.In(VOLUME_MAP), VOLUME_MAP.get),
|
||||
vol.Optional(ATTR_CHIME_VOLUME): vol.All(vol.In(VOLUME_MAP), VOLUME_MAP.get),
|
||||
vol.Optional(ATTR_ENTRY_DELAY_AWAY): vol.All(
|
||||
cv.time_period,
|
||||
lambda value: value.total_seconds(),
|
||||
vol.Range(min=30, max=255),
|
||||
vol.Range(min=MIN_ENTRY_DELAY_AWAY, max=MAX_ENTRY_DELAY_AWAY),
|
||||
),
|
||||
vol.Optional(ATTR_ENTRY_DELAY_HOME): vol.All(
|
||||
cv.time_period, lambda value: value.total_seconds(), vol.Range(max=255)
|
||||
cv.time_period,
|
||||
lambda value: value.total_seconds(),
|
||||
vol.Range(max=MAX_ENTRY_DELAY_HOME),
|
||||
),
|
||||
vol.Optional(ATTR_EXIT_DELAY_AWAY): vol.All(
|
||||
cv.time_period,
|
||||
lambda value: value.total_seconds(),
|
||||
vol.Range(min=45, max=255),
|
||||
vol.Range(min=MIN_EXIT_DELAY_AWAY, max=MAX_EXIT_DELAY_AWAY),
|
||||
),
|
||||
vol.Optional(ATTR_EXIT_DELAY_HOME): vol.All(
|
||||
cv.time_period, lambda value: value.total_seconds(), vol.Range(max=255)
|
||||
cv.time_period,
|
||||
lambda value: value.total_seconds(),
|
||||
vol.Range(max=MAX_EXIT_DELAY_HOME),
|
||||
),
|
||||
vol.Optional(ATTR_LIGHT): cv.boolean,
|
||||
vol.Optional(ATTR_VOICE_PROMPT_VOLUME): vol.All(
|
||||
|
@ -457,8 +466,8 @@ class SimpliSafe:
|
|||
assert self._api.refresh_token
|
||||
assert self._api.websocket
|
||||
|
||||
self._api.websocket.add_connect_listener(self._async_websocket_on_connect)
|
||||
self._api.websocket.add_event_listener(self._async_websocket_on_event)
|
||||
self._api.websocket.add_connect_callback(self._async_websocket_on_connect)
|
||||
self._api.websocket.add_event_callback(self._async_websocket_on_event)
|
||||
asyncio.create_task(self._api.websocket.async_connect())
|
||||
|
||||
async def async_websocket_disconnect_listener(_: Event) -> None:
|
||||
|
@ -510,7 +519,7 @@ class SimpliSafe:
|
|||
)
|
||||
|
||||
self.entry.async_on_unload(
|
||||
self._api.add_refresh_token_listener(async_save_refresh_token)
|
||||
self._api.add_refresh_token_callback(async_save_refresh_token)
|
||||
)
|
||||
|
||||
async_save_refresh_token(self._api.refresh_token)
|
||||
|
@ -566,15 +575,16 @@ class SimpliSafeEntity(CoordinatorEntity):
|
|||
device_name = DEFAULT_ENTITY_NAME
|
||||
serial = system.serial
|
||||
|
||||
try:
|
||||
device_type = DeviceTypes(
|
||||
simplisafe.initial_event_to_use[system.system_id].get("sensorType")
|
||||
)
|
||||
except ValueError:
|
||||
device_type = DeviceTypes.unknown
|
||||
|
||||
event = simplisafe.initial_event_to_use[system.system_id]
|
||||
|
||||
if raw_type := event.get("sensorType"):
|
||||
try:
|
||||
device_type = DeviceTypes(raw_type)
|
||||
except ValueError:
|
||||
device_type = DeviceTypes.UNKNOWN
|
||||
else:
|
||||
device_type = DeviceTypes.UNKNOWN
|
||||
|
||||
self._attr_extra_state_attributes = {
|
||||
ATTR_LAST_EVENT_INFO: event.get("info"),
|
||||
ATTR_LAST_EVENT_SENSOR_NAME: event.get("sensorName"),
|
||||
|
|
|
@ -6,13 +6,7 @@ from typing import TYPE_CHECKING
|
|||
from simplipy.errors import SimplipyError
|
||||
from simplipy.system import SystemStates
|
||||
from simplipy.system.v2 import SystemV2
|
||||
from simplipy.system.v3 import (
|
||||
VOLUME_HIGH,
|
||||
VOLUME_LOW,
|
||||
VOLUME_MEDIUM,
|
||||
VOLUME_OFF,
|
||||
SystemV3,
|
||||
)
|
||||
from simplipy.system.v3 import SystemV3
|
||||
from simplipy.websocket import (
|
||||
EVENT_ALARM_CANCELED,
|
||||
EVENT_ALARM_TRIGGERED,
|
||||
|
@ -71,20 +65,13 @@ ATTR_RF_JAMMING = "rf_jamming"
|
|||
ATTR_WALL_POWER_LEVEL = "wall_power_level"
|
||||
ATTR_WIFI_STRENGTH = "wifi_strength"
|
||||
|
||||
VOLUME_STRING_MAP = {
|
||||
VOLUME_HIGH: "high",
|
||||
VOLUME_LOW: "low",
|
||||
VOLUME_MEDIUM: "medium",
|
||||
VOLUME_OFF: "off",
|
||||
}
|
||||
|
||||
STATE_MAP_FROM_REST_API = {
|
||||
SystemStates.alarm: STATE_ALARM_TRIGGERED,
|
||||
SystemStates.away: STATE_ALARM_ARMED_AWAY,
|
||||
SystemStates.away_count: STATE_ALARM_ARMING,
|
||||
SystemStates.exit_delay: STATE_ALARM_ARMING,
|
||||
SystemStates.home: STATE_ALARM_ARMED_HOME,
|
||||
SystemStates.off: STATE_ALARM_DISARMED,
|
||||
SystemStates.ALARM: STATE_ALARM_TRIGGERED,
|
||||
SystemStates.AWAY: STATE_ALARM_ARMED_AWAY,
|
||||
SystemStates.AWAY_COUNT: STATE_ALARM_ARMING,
|
||||
SystemStates.EXIT_DELAY: STATE_ALARM_ARMING,
|
||||
SystemStates.HOME: STATE_ALARM_ARMED_HOME,
|
||||
SystemStates.OFF: STATE_ALARM_DISARMED,
|
||||
}
|
||||
|
||||
STATE_MAP_FROM_WEBSOCKET_EVENT = {
|
||||
|
@ -226,9 +213,9 @@ class SimpliSafeAlarm(SimpliSafeEntity, AlarmControlPanelEntity):
|
|||
self._attr_extra_state_attributes.update(
|
||||
{
|
||||
ATTR_ALARM_DURATION: self._system.alarm_duration,
|
||||
ATTR_ALARM_VOLUME: VOLUME_STRING_MAP[self._system.alarm_volume],
|
||||
ATTR_ALARM_VOLUME: self._system.alarm_volume.name.lower(),
|
||||
ATTR_BATTERY_BACKUP_POWER_LEVEL: self._system.battery_backup_power_level,
|
||||
ATTR_CHIME_VOLUME: VOLUME_STRING_MAP[self._system.chime_volume],
|
||||
ATTR_CHIME_VOLUME: self._system.chime_volume.name.lower(),
|
||||
ATTR_ENTRY_DELAY_AWAY: self._system.entry_delay_away,
|
||||
ATTR_ENTRY_DELAY_HOME: self._system.entry_delay_home,
|
||||
ATTR_EXIT_DELAY_AWAY: self._system.exit_delay_away,
|
||||
|
@ -236,9 +223,7 @@ class SimpliSafeAlarm(SimpliSafeEntity, AlarmControlPanelEntity):
|
|||
ATTR_GSM_STRENGTH: self._system.gsm_strength,
|
||||
ATTR_LIGHT: self._system.light,
|
||||
ATTR_RF_JAMMING: self._system.rf_jamming,
|
||||
ATTR_VOICE_PROMPT_VOLUME: VOLUME_STRING_MAP[
|
||||
self._system.voice_prompt_volume
|
||||
],
|
||||
ATTR_VOICE_PROMPT_VOLUME: self._system.voice_prompt_volume.name.lower(),
|
||||
ATTR_WALL_POWER_LEVEL: self._system.wall_power_level,
|
||||
ATTR_WIFI_STRENGTH: self._system.wifi_strength,
|
||||
}
|
||||
|
|
|
@ -24,25 +24,25 @@ from . import SimpliSafe, SimpliSafeEntity
|
|||
from .const import DOMAIN, LOGGER
|
||||
|
||||
SUPPORTED_BATTERY_SENSOR_TYPES = [
|
||||
DeviceTypes.carbon_monoxide,
|
||||
DeviceTypes.entry,
|
||||
DeviceTypes.glass_break,
|
||||
DeviceTypes.leak,
|
||||
DeviceTypes.lock_keypad,
|
||||
DeviceTypes.motion,
|
||||
DeviceTypes.siren,
|
||||
DeviceTypes.smoke,
|
||||
DeviceTypes.temperature,
|
||||
DeviceTypes.CARBON_MONOXIDE,
|
||||
DeviceTypes.ENTRY,
|
||||
DeviceTypes.GLASS_BREAK,
|
||||
DeviceTypes.LEAK,
|
||||
DeviceTypes.LOCK_KEYPAD,
|
||||
DeviceTypes.MOTION,
|
||||
DeviceTypes.SIREN,
|
||||
DeviceTypes.SMOKE,
|
||||
DeviceTypes.TEMPERATURE,
|
||||
]
|
||||
|
||||
TRIGGERED_SENSOR_TYPES = {
|
||||
DeviceTypes.carbon_monoxide: DEVICE_CLASS_GAS,
|
||||
DeviceTypes.entry: DEVICE_CLASS_DOOR,
|
||||
DeviceTypes.glass_break: DEVICE_CLASS_SAFETY,
|
||||
DeviceTypes.leak: DEVICE_CLASS_MOISTURE,
|
||||
DeviceTypes.motion: DEVICE_CLASS_MOTION,
|
||||
DeviceTypes.siren: DEVICE_CLASS_SAFETY,
|
||||
DeviceTypes.smoke: DEVICE_CLASS_SMOKE,
|
||||
DeviceTypes.CARBON_MONOXIDE: DEVICE_CLASS_GAS,
|
||||
DeviceTypes.ENTRY: DEVICE_CLASS_DOOR,
|
||||
DeviceTypes.GLASS_BREAK: DEVICE_CLASS_SAFETY,
|
||||
DeviceTypes.LEAK: DEVICE_CLASS_MOISTURE,
|
||||
DeviceTypes.MOTION: DEVICE_CLASS_MOTION,
|
||||
DeviceTypes.SIREN: DEVICE_CLASS_SAFETY,
|
||||
DeviceTypes.SMOKE: DEVICE_CLASS_SMOKE,
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -90,6 +90,9 @@ class SimpliSafeLock(SimpliSafeEntity, LockEntity):
|
|||
@callback
|
||||
def async_update_from_rest_api(self) -> None:
|
||||
"""Update the entity with the provided REST API data."""
|
||||
self._attr_is_jammed = self._device.state == LockStates.JAMMED
|
||||
self._attr_is_locked = self._device.state == LockStates.LOCKED
|
||||
|
||||
self._attr_extra_state_attributes.update(
|
||||
{
|
||||
ATTR_LOCK_LOW_BATTERY: self._device.lock_low_battery,
|
||||
|
@ -97,9 +100,6 @@ class SimpliSafeLock(SimpliSafeEntity, LockEntity):
|
|||
}
|
||||
)
|
||||
|
||||
self._attr_is_jammed = self._device.state == LockStates.jammed
|
||||
self._attr_is_locked = self._device.state == LockStates.locked
|
||||
|
||||
@callback
|
||||
def async_update_from_websocket_event(self, event: WebsocketEvent) -> None:
|
||||
"""Update the entity when new data comes from the websocket."""
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"name": "SimpliSafe",
|
||||
"config_flow": true,
|
||||
"documentation": "https://www.home-assistant.io/integrations/simplisafe",
|
||||
"requirements": ["simplisafe-python==12.0.2"],
|
||||
"requirements": ["simplisafe-python==2021.11.0"],
|
||||
"codeowners": ["@bachya"],
|
||||
"iot_class": "cloud_polling",
|
||||
"dhcp": [
|
||||
|
|
|
@ -28,7 +28,7 @@ async def async_setup_entry(
|
|||
continue
|
||||
|
||||
for sensor in system.sensors.values():
|
||||
if sensor.type == DeviceTypes.temperature:
|
||||
if sensor.type == DeviceTypes.TEMPERATURE:
|
||||
sensors.append(SimplisafeFreezeSensor(simplisafe, system, sensor))
|
||||
|
||||
async_add_entities(sensors)
|
||||
|
|
|
@ -2143,7 +2143,7 @@ simplehound==0.3
|
|||
simplepush==1.1.4
|
||||
|
||||
# homeassistant.components.simplisafe
|
||||
simplisafe-python==12.0.2
|
||||
simplisafe-python==2021.11.0
|
||||
|
||||
# homeassistant.components.sisyphus
|
||||
sisyphus-control==3.0
|
||||
|
|
|
@ -1257,7 +1257,7 @@ sharkiqpy==0.1.8
|
|||
simplehound==0.3
|
||||
|
||||
# homeassistant.components.simplisafe
|
||||
simplisafe-python==12.0.2
|
||||
simplisafe-python==2021.11.0
|
||||
|
||||
# homeassistant.components.slack
|
||||
slackclient==2.5.0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue