This commit is contained in:
Aaron Bach
2020-02-13 16:32:59 -07:00
parent f537c7b32c
commit 5581889417

View File

@@ -1,6 +1,6 @@
"""Support for SimpliSafe alarm systems.""" """Support for SimpliSafe alarm systems."""
import asyncio import asyncio
from dataclasses import InitVar, asdict, dataclass, field from dataclasses import InitVar, dataclass, field
from datetime import datetime from datetime import datetime
import logging import logging
from typing import Optional from typing import Optional
@@ -67,10 +67,13 @@ DEFAULT_WATCHDOG_SECONDS = 5 * 60
WEBSOCKET_EVENTS_REQUIRING_SERIAL = [EVENT_LOCK_LOCKED, EVENT_LOCK_UNLOCKED] WEBSOCKET_EVENTS_REQUIRING_SERIAL = [EVENT_LOCK_LOCKED, EVENT_LOCK_UNLOCKED]
ATTR_CHANGED_BY = "changed_by"
ATTR_LAST_EVENT_INFO = "last_event_info" ATTR_LAST_EVENT_INFO = "last_event_info"
ATTR_LAST_EVENT_SENSOR_NAME = "last_event_sensor_name" ATTR_LAST_EVENT_SENSOR_NAME = "last_event_sensor_name"
ATTR_LAST_EVENT_SENSOR_SERIAL = "last_event_sensor_serial"
ATTR_LAST_EVENT_SENSOR_TYPE = "last_event_sensor_type" ATTR_LAST_EVENT_SENSOR_TYPE = "last_event_sensor_type"
ATTR_LAST_EVENT_TIMESTAMP = "last_event_timestamp" ATTR_LAST_EVENT_TIMESTAMP = "last_event_timestamp"
ATTR_LAST_EVENT_TYPE = "last_event_type"
ATTR_PIN_LABEL = "label" ATTR_PIN_LABEL = "label"
ATTR_PIN_LABEL_OR_VALUE = "label_or_pin" ATTR_PIN_LABEL_OR_VALUE = "label_or_pin"
ATTR_PIN_VALUE = "pin" ATTR_PIN_VALUE = "pin"
@@ -406,7 +409,18 @@ class SimpliSafeWebsocket:
_LOGGER.debug("New websocket event: %s", event) _LOGGER.debug("New websocket event: %s", event)
self.last_events[data["sid"]] = event self.last_events[data["sid"]] = event
async_dispatcher_send(self._hass, TOPIC_UPDATE.format(data["sid"])) async_dispatcher_send(self._hass, TOPIC_UPDATE.format(data["sid"]))
self._hass.bus.async_fire(EVENT_SIMPLISAFE_EVENT, event_data=asdict(event)) self._hass.bus.async_fire(
EVENT_SIMPLISAFE_EVENT,
event_data={
ATTR_CHANGED_BY: event.changed_by,
ATTR_LAST_EVENT_INFO: event.info,
ATTR_LAST_EVENT_SENSOR_NAME: event.sensor_name,
ATTR_LAST_EVENT_SENSOR_SERIAL: event.sensor_serial,
ATTR_LAST_EVENT_SENSOR_TYPE: event.sensor_type,
ATTR_LAST_EVENT_TYPE: event.event_type,
ATTR_SYSTEM_ID: event.system_id,
},
)
_LOGGER.debug("Resetting websocket watchdog") _LOGGER.debug("Resetting websocket watchdog")
self._websocket_watchdog_listener() self._websocket_watchdog_listener()