added Device, Camera classes

full_example
Mark Cotton 2023-05-29 20:54:14 -05:00
parent d6d8283afb
commit 4460bb6047
1 changed files with 19 additions and 6 deletions

View File

@ -32,8 +32,6 @@ class EagleEyev3():
self.users = [] self.users = []
self.accounts = [] self.accounts = []
self.base_url = None
self.lazy_login = True self.lazy_login = True
if self.lazy_login: if self.lazy_login:
@ -217,7 +215,7 @@ class EagleEyev3():
Returns: Returns:
dict: Dictionary containing the success status, response HTTP status code, and data. 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 = { headers = {
"Authorization": f"Bearer {self.access_token}", "Authorization": f"Bearer {self.access_token}",
"Accept": "application/json" "Accept": "application/json"
@ -230,7 +228,7 @@ class EagleEyev3():
if response.status_code == 200: if response.status_code == 200:
success = True 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: else:
success = False success = False
@ -401,7 +399,22 @@ class Device():
return self.id return self.id
def get_status(self): 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.previews = []
self.videos = [] self.videos = []