Since this thing is on the innerwebs I suppose it should have a
[python_utils.git] / smart_home / cameras.py
index 8137012bca0ea09ed2f76a35d8636ebdef8b9a28..e7705b29ab9d5b1ced6723bb94418e0062c259c5 100644 (file)
@@ -1,5 +1,7 @@
 #!/usr/bin/env python3
 
+# © Copyright 2021-2022, Scott Gasch
+
 """Utilities for dealing with the webcams."""
 
 import logging
@@ -10,12 +12,16 @@ 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',
-        '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',
     }
 
     def __init__(self, name: str, mac: str, keywords: str = "") -> None:
@@ -23,5 +29,11 @@ class BaseCamera(dev.Device):
         self.camera_name = BaseCamera.camera_mapping.get(name, None)
 
     def get_stream_url(self) -> str:
-        assert self.camera_name is not None
-        return f'http://10.0.0.226:8080/Umtxxf1uKMBniFblqeQ9KRbb6DDzN4/mp4/GKlT2FfiSQ/{self.camera_name}/s.mp4'
+        name = self.camera_name
+        assert name is not None
+        if name == 'driveway':
+            return 'http://10.0.0.226:8080/Umtxxf1uKMBniFblqeQ9KRbb6DDzN4/mjpeg/GKlT2FfiSQ/driveway'
+        else:
+            return (
+                f'http://10.0.0.226:8080/Umtxxf1uKMBniFblqeQ9KRbb6DDzN4/mp4/GKlT2FfiSQ/{name}/s.mp4'
+            )