mirror of
https://github.com/home-assistant/core.git
synced 2025-04-27 10:47:51 +00:00
Support for mulitple Blink sync modules (#18663)
This commit is contained in:
parent
d7a10136df
commit
4486de743d
@ -25,21 +25,19 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
|||||||
return
|
return
|
||||||
data = hass.data[BLINK_DATA]
|
data = hass.data[BLINK_DATA]
|
||||||
|
|
||||||
# Current version of blinkpy API only supports one sync module. When
|
|
||||||
# support for additional models is added, the sync module name should
|
|
||||||
# come from the API.
|
|
||||||
sync_modules = []
|
sync_modules = []
|
||||||
sync_modules.append(BlinkSyncModule(data, 'sync'))
|
for sync_name, sync_module in data.sync.items():
|
||||||
|
sync_modules.append(BlinkSyncModule(data, sync_name, sync_module))
|
||||||
add_entities(sync_modules, True)
|
add_entities(sync_modules, True)
|
||||||
|
|
||||||
|
|
||||||
class BlinkSyncModule(AlarmControlPanel):
|
class BlinkSyncModule(AlarmControlPanel):
|
||||||
"""Representation of a Blink Alarm Control Panel."""
|
"""Representation of a Blink Alarm Control Panel."""
|
||||||
|
|
||||||
def __init__(self, data, name):
|
def __init__(self, data, name, sync):
|
||||||
"""Initialize the alarm control panel."""
|
"""Initialize the alarm control panel."""
|
||||||
self.data = data
|
self.data = data
|
||||||
self.sync = data.sync
|
self.sync = sync
|
||||||
self._name = name
|
self._name = name
|
||||||
self._state = None
|
self._state = None
|
||||||
|
|
||||||
@ -68,6 +66,7 @@ class BlinkSyncModule(AlarmControlPanel):
|
|||||||
"""Return the state attributes."""
|
"""Return the state attributes."""
|
||||||
attr = self.sync.attributes
|
attr = self.sync.attributes
|
||||||
attr['network_info'] = self.data.networks
|
attr['network_info'] = self.data.networks
|
||||||
|
attr['associated_cameras'] = list(self.sync.cameras.keys())
|
||||||
attr[ATTR_ATTRIBUTION] = DEFAULT_ATTRIBUTION
|
attr[ATTR_ATTRIBUTION] = DEFAULT_ATTRIBUTION
|
||||||
return attr
|
return attr
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
|||||||
data = hass.data[BLINK_DATA]
|
data = hass.data[BLINK_DATA]
|
||||||
|
|
||||||
devs = []
|
devs = []
|
||||||
for camera in data.sync.cameras:
|
for camera in data.cameras:
|
||||||
for sensor_type in discovery_info[CONF_MONITORED_CONDITIONS]:
|
for sensor_type in discovery_info[CONF_MONITORED_CONDITIONS]:
|
||||||
devs.append(BlinkBinarySensor(data, camera, sensor_type))
|
devs.append(BlinkBinarySensor(data, camera, sensor_type))
|
||||||
add_entities(devs, True)
|
add_entities(devs, True)
|
||||||
@ -34,7 +34,7 @@ class BlinkBinarySensor(BinarySensorDevice):
|
|||||||
name, icon = BINARY_SENSORS[sensor_type]
|
name, icon = BINARY_SENSORS[sensor_type]
|
||||||
self._name = "{} {} {}".format(BLINK_DATA, camera, name)
|
self._name = "{} {} {}".format(BLINK_DATA, camera, name)
|
||||||
self._icon = icon
|
self._icon = icon
|
||||||
self._camera = data.sync.cameras[camera]
|
self._camera = data.cameras[camera]
|
||||||
self._state = None
|
self._state = None
|
||||||
self._unique_id = "{}-{}".format(self._camera.serial, self._type)
|
self._unique_id = "{}-{}".format(self._camera.serial, self._type)
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ from homeassistant.const import (
|
|||||||
CONF_BINARY_SENSORS, CONF_SENSORS, CONF_FILENAME,
|
CONF_BINARY_SENSORS, CONF_SENSORS, CONF_FILENAME,
|
||||||
CONF_MONITORED_CONDITIONS, TEMP_FAHRENHEIT)
|
CONF_MONITORED_CONDITIONS, TEMP_FAHRENHEIT)
|
||||||
|
|
||||||
REQUIREMENTS = ['blinkpy==0.10.3']
|
REQUIREMENTS = ['blinkpy==0.11.0']
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ def setup(hass, config):
|
|||||||
|
|
||||||
def trigger_camera(call):
|
def trigger_camera(call):
|
||||||
"""Trigger a camera."""
|
"""Trigger a camera."""
|
||||||
cameras = hass.data[BLINK_DATA].sync.cameras
|
cameras = hass.data[BLINK_DATA].cameras
|
||||||
name = call.data[CONF_NAME]
|
name = call.data[CONF_NAME]
|
||||||
if name in cameras:
|
if name in cameras:
|
||||||
cameras[name].snap_picture()
|
cameras[name].snap_picture()
|
||||||
@ -148,7 +148,7 @@ async def async_handle_save_video_service(hass, call):
|
|||||||
|
|
||||||
def _write_video(camera_name, video_path):
|
def _write_video(camera_name, video_path):
|
||||||
"""Call video write."""
|
"""Call video write."""
|
||||||
all_cameras = hass.data[BLINK_DATA].sync.cameras
|
all_cameras = hass.data[BLINK_DATA].cameras
|
||||||
if camera_name in all_cameras:
|
if camera_name in all_cameras:
|
||||||
all_cameras[camera_name].video_to_file(video_path)
|
all_cameras[camera_name].video_to_file(video_path)
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
|||||||
return
|
return
|
||||||
data = hass.data[BLINK_DATA]
|
data = hass.data[BLINK_DATA]
|
||||||
devs = []
|
devs = []
|
||||||
for name, camera in data.sync.cameras.items():
|
for name, camera in data.cameras.items():
|
||||||
devs.append(BlinkCamera(data, name, camera))
|
devs.append(BlinkCamera(data, name, camera))
|
||||||
|
|
||||||
add_entities(devs)
|
add_entities(devs)
|
||||||
|
@ -21,7 +21,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
|||||||
return
|
return
|
||||||
data = hass.data[BLINK_DATA]
|
data = hass.data[BLINK_DATA]
|
||||||
devs = []
|
devs = []
|
||||||
for camera in data.sync.cameras:
|
for camera in data.cameras:
|
||||||
for sensor_type in discovery_info[CONF_MONITORED_CONDITIONS]:
|
for sensor_type in discovery_info[CONF_MONITORED_CONDITIONS]:
|
||||||
devs.append(BlinkSensor(data, camera, sensor_type))
|
devs.append(BlinkSensor(data, camera, sensor_type))
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ class BlinkSensor(Entity):
|
|||||||
self._camera_name = name
|
self._camera_name = name
|
||||||
self._type = sensor_type
|
self._type = sensor_type
|
||||||
self.data = data
|
self.data = data
|
||||||
self._camera = data.sync.cameras[camera]
|
self._camera = data.cameras[camera]
|
||||||
self._state = None
|
self._state = None
|
||||||
self._unit_of_measurement = units
|
self._unit_of_measurement = units
|
||||||
self._icon = icon
|
self._icon = icon
|
||||||
|
@ -186,7 +186,7 @@ bellows==0.7.0
|
|||||||
bimmer_connected==0.5.3
|
bimmer_connected==0.5.3
|
||||||
|
|
||||||
# homeassistant.components.blink
|
# homeassistant.components.blink
|
||||||
blinkpy==0.10.3
|
blinkpy==0.11.0
|
||||||
|
|
||||||
# homeassistant.components.light.blinksticklight
|
# homeassistant.components.light.blinksticklight
|
||||||
blinkstick==1.1.8
|
blinkstick==1.1.8
|
||||||
|
Loading…
x
Reference in New Issue
Block a user