Smart outlets
[python_utils.git] / smart_home / device.py
1 #!/usr/bin/env python3
2
3 import re
4 from typing import Any, List, Optional, Tuple
5
6 class Device(object):
7     def __init__(
8             self,
9             name: str,
10             mac: str,
11             keywords: Optional[List[str]],
12     ):
13         self.name = name
14         self.mac = mac
15         self.keywords = keywords
16         if keywords is not None:
17             self.kws = keywords.split()
18         else:
19             self.kws = []
20
21     def get_name(self) -> str:
22         return self.name
23
24     def get_mac(self) -> str:
25         return self.mac
26
27     def get_keywords(self) -> Optional[List[str]]:
28         return self.kws
29
30     def has_keyword(self, keyword: str) -> bool:
31         for kw in self.kws:
32             if kw == keyword:
33                 return True
34         return False
35
36     def get_on_limit_seconds(self) -> Optional[int]:
37         for kw in self.kws:
38             m = re.search(r"timeout:(\d+)", kw)
39             if m is not None:
40                 return int(m.group(1)) * 60
41         return None