Make sure cameras are properly merged, initilize minis properly
This commit is contained in:
+6
-2
@@ -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
@@ -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)
|
||||
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user