712d73f18f5b82db0de4fd9fdebaaafd3ec71182
[python_utils.git] / smart_home / cameras.py
1 #!/usr/bin/env python3
2
3 """Utilities for dealing with the webcams."""
4
5 import logging
6
7 import smart_home.device as dev
8
9 logger = logging.getLogger(__name__)
10
11
12 class BaseCamera(dev.Device):
13     camera_mapping = {
14         'cabin_drivewaycam': 'cabin_driveway',
15         'outside_backyard_camera': 'backyard',
16         'outside_driveway_camera_wired': 'driveway',
17         'outside_driveway_camera_wifi': 'driveway',
18         'outside_doorbell_camera': 'doorbell',
19         'outside_front_door_camera': 'front_door',
20         'crawlspace_camera': 'crawlspace',
21     }
22
23     def __init__(self, name: str, mac: str, keywords: str = "") -> None:
24         super().__init__(name.strip(), mac.strip(), keywords)
25         self.camera_name = BaseCamera.camera_mapping.get(name, None)
26
27     def get_stream_url(self) -> str:
28         name = self.camera_name
29         assert name is not None
30         if name == 'driveway':
31             return 'http://10.0.0.226:8080/Umtxxf1uKMBniFblqeQ9KRbb6DDzN4/mjpeg/GKlT2FfiSQ/driveway'
32         else:
33             return f'http://10.0.0.226:8080/Umtxxf1uKMBniFblqeQ9KRbb6DDzN4/mp4/GKlT2FfiSQ/{name}/s.mp4'