diff options
| author | Scott Gasch <[email protected]> | 2021-10-28 21:23:55 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2021-10-28 21:23:55 -0700 |
| commit | 889f57512986d1b799582c58d712b304b706391c (patch) | |
| tree | 550381c02f12b012bf0d99b380954ed998061fe1 /smart_home/cameras.py | |
| parent | 2a9cbfa6e97a8cb5ed68c838f5ec09bef654c37f (diff) | |
Add cameras, fix bugs
Diffstat (limited to 'smart_home/cameras.py')
| -rw-r--r-- | smart_home/cameras.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/smart_home/cameras.py b/smart_home/cameras.py new file mode 100644 index 0000000..963f54e --- /dev/null +++ b/smart_home/cameras.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 + +"""Utilities for dealing with the webcams.""" + +from abc import abstractmethod +import datetime +import json +import logging +import os +import re +import subprocess +import sys +from typing import Any, Dict, List, Optional, Set + +import argparse_utils +import config +import logging_utils +import smart_home.device as dev +from google_assistant import ask_google, GoogleResponse +from decorator_utils import timeout, memoized + +logger = logging.getLogger(__name__) + +class BaseCamera(dev.Device): + camera_mapping = { + 'cabin_drivewaycam': 'cabin_driveway', + 'outside_backyard_camera': 'backyard', + 'outside_driveway_camera': 'driveway', + 'outside_doorbell_camera': 'doorbell', + 'outside_front_door_camera': 'frontdoor', + } + + def __init__(self, name: str, mac: str, keywords: str = "") -> None: + super().__init__(name.strip(), mac.strip(), keywords) + 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.56:81/mjpg/{self.camera_name}/video.mjpg?h=1024&q=99' |
