diff --git a/EagleEyev3/__init__.py b/EagleEyev3/__init__.py index 66d5f6e..41393fe 100644 --- a/EagleEyev3/__init__.py +++ b/EagleEyev3/__init__.py @@ -32,8 +32,6 @@ class EagleEyev3(): self.users = [] self.accounts = [] - self.base_url = None - self.lazy_login = True if self.lazy_login: @@ -217,7 +215,7 @@ class EagleEyev3(): Returns: dict: Dictionary containing the success status, response HTTP status code, and data. """ - url = f"https://{self.user_base_url}/api/v3.0/cameras" + url = f"https://{self.user_base_url}/api/v3.0/cameras?include=status" headers = { "Authorization": f"Bearer {self.access_token}", "Accept": "application/json" @@ -230,7 +228,7 @@ class EagleEyev3(): if response.status_code == 200: success = True - self.cameras = [i for i in response_json['results']] + self.cameras = [Camera(id=i['id'], name=i['name'], status=i['status'], account_id=i['accountId'], bridge_id=i['bridgeId']) for i in response_json['results']] else: success = False @@ -401,7 +399,22 @@ class Device(): return self.id def get_status(self): - return self.status + return self.status['connectionStatus'] + + def is_online(self): + return self.status['connectionStatus'] == "online" + + def is_offline(self): + return self.status['connectionStatus'] == "deviceOffline" or self.status['connectionStatus'] == "bridgeOffline" + + def __repr__(self): + if self.is_online(): + online = '✅' + elif self.is_offline(): + online = '❌' + else: + online = '?' + return f"{online} [{self.id}] - {self.name}" @@ -413,5 +426,5 @@ class Camera(Device): self.previews = [] self.videos = [] - +