Make sure cameras are properly merged, initilize minis properly

This commit is contained in:
Kevin Fronczak
2020-06-09 13:30:29 +00:00
parent 6479423c6c
commit 7dd32a0dad
3 changed files with 15 additions and 12 deletions
+6 -2
View File
@@ -33,7 +33,6 @@ from blinkpy.helpers.constants import (
from blinkpy.helpers.constants import __version__
from blinkpy.auth import Auth, TokenRefreshFailed, LoginError
_LOGGER = logging.getLogger(__name__)
@@ -128,9 +127,9 @@ class Blink:
for name, network_id in networks.items():
sync_cameras = cameras.get(network_id, {})
self.setup_sync_module(name, network_id, sync_cameras)
self.cameras = self.merge_cameras()
self.setup_owls()
self.cameras = self.merge_cameras()
self.available = True
self.key_required = False
@@ -145,16 +144,21 @@ class Blink:
"""Check for mini cameras."""
response = api.request_homescreen(self)
self.homescreen = response
network_list = []
try:
for owl in response["owls"]:
name = owl["name"]
network_id = owl["network_id"]
if owl["onboarded"]:
network_list.append(str(network_id))
self.sync[name] = BlinkOwl(self, name, network_id, owl)
self.sync[name].start()
except KeyError:
# No sync-less devices found
pass
self.network_ids.extend(network_list)
def setup_camera_list(self):
"""Create camera list for onboarded networks."""
all_cameras = {}
+5 -7
View File
@@ -222,13 +222,11 @@ class BlinkCameraMini(BlinkCamera):
def update(self, config, force_cache=False, **kwargs):
"""Update a blink mini camera."""
self.name = config["name"]
self.camera_id = str(config["id"])
self.network_id = str(config["network_id"])
self.serial = config["serial"]
if not self.serial:
self.serial = f"{self.network_id}-{self.camera_id}"
self.motion_enabled = config["enabled"]
self.name = config.get("name", "unknown")
self.camera_id = str(config.get("id", ""))
self.network_id = str(config.get("network_id", ""))
self.serial = config.get("serial", f"{self.network_id}-{self.camera_id}")
self.motion_enabled = config.get("enabled", False)
self.update_images(config, force_cache=force_cache)
+4 -3
View File
@@ -219,11 +219,11 @@ class BlinkOwl(BlinkSyncModule):
def __init__(self, blink, name, network_id, response):
"""Initialize a sync-less object."""
self._response = response
cameras = [{network_id: {"name": name, "id": response["id"]}}]
super().__init__(blink, name, network_id, cameras)
self.sync_id = response["id"]
self.serial = response["serial"]
self.status = response["enabled"]
if not self.serial:
self.serial = f"{network_id}-{self.sync_id}"
@@ -242,13 +242,14 @@ class BlinkOwl(BlinkSyncModule):
def update_cameras(self, camera_type=BlinkCameraMini):
"""Update sync-less cameras."""
super().update_cameras(camera_type=camera_type)
super().update_cameras(camera_type=BlinkCameraMini)
def get_camera_info(self, camera_id):
"""Retrieve camera information."""
try:
for owl in self.blink.homescreen["owls"]:
if owl["name"] == self.name:
self.status = owl["enabled"]
return owl
except KeyError:
pass
@@ -265,7 +266,7 @@ class BlinkOwl(BlinkSyncModule):
"network": {
"id": self.network_id,
"name": self.name,
"armed": self._response["enabled"],
"armed": self.status,
"sync_module_error": False,
"account_id": self.blink.account_id,
}