projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Hammer on that run_tests.py thing again.
[python_utils.git]
/
smart_home
/
cameras.py
diff --git
a/smart_home/cameras.py
b/smart_home/cameras.py
index 51a95e9304acc86ead7025bb65dae6851a0022b6..e8f164b3c0a6f1529347c79400b1036623a87d58 100644
(file)
--- a/
smart_home/cameras.py
+++ b/
smart_home/cameras.py
@@
-1,19
+1,26
@@
#!/usr/bin/env python3
#!/usr/bin/env python3
+# © Copyright 2021-2022, Scott Gasch
+
"""Utilities for dealing with the webcams."""
import logging
"""Utilities for dealing with the webcams."""
import logging
+from typing import Optional
+import scott_secrets
import smart_home.device as dev
logger = logging.getLogger(__name__)
class BaseCamera(dev.Device):
import smart_home.device as dev
logger = logging.getLogger(__name__)
class BaseCamera(dev.Device):
+ """A base class for a webcam device."""
+
camera_mapping = {
'cabin_drivewaycam': 'cabin_driveway',
'outside_backyard_camera': 'backyard',
camera_mapping = {
'cabin_drivewaycam': 'cabin_driveway',
'outside_backyard_camera': 'backyard',
- 'outside_driveway_camera': 'driveway',
+ 'outside_driveway_camera_wired': 'driveway',
+ 'outside_driveway_camera_wifi': 'driveway',
'outside_doorbell_camera': 'doorbell',
'outside_front_door_camera': 'front_door',
'crawlspace_camera': 'crawlspace',
'outside_doorbell_camera': 'doorbell',
'outside_front_door_camera': 'front_door',
'crawlspace_camera': 'crawlspace',
@@
-23,10
+30,13
@@
class BaseCamera(dev.Device):
super().__init__(name.strip(), mac.strip(), keywords)
self.camera_name = BaseCamera.camera_mapping.get(name, None)
super().__init__(name.strip(), mac.strip(), keywords)
self.camera_name = BaseCamera.camera_mapping.get(name, None)
- def get_stream_url(self) -> str:
+ def get_stream_url(self) -> Optional[str]:
+ """Get the URL for the webcam's live stream. Return None on error."""
+
name = self.camera_name
name = self.camera_name
- assert name is not None
+ if not name:
+ return None
if name == 'driveway':
if name == 'driveway':
- return f'http://10.0.0.226:8080/
Umtxxf1uKMBniFblqeQ9KRbb6DDzN4/mjpeg/GKlT2FfiSQ
/driveway'
+ return f'http://10.0.0.226:8080/
{scott_secrets.SHINOBI_KEY1}/mjpeg/{scott_secrets.SHINOBI_KEY2}
/driveway'
else:
else:
- return f'http://10.0.0.226:8080/
Umtxxf1uKMBniFblqeQ9KRbb6DDzN4/mp4/GKlT2FfiSQ
/{name}/s.mp4'
+ return f'http://10.0.0.226:8080/
{scott_secrets.SHINOBI_KEY1}/mp4/{scott_secrets.SHINOBI_KEY2}
/{name}/s.mp4'