Smart outlets
[python_utils.git] / smart_home / device.py
diff --git a/smart_home/device.py b/smart_home/device.py
new file mode 100644 (file)
index 0000000..27860c5
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+
+import re
+from typing import Any, List, Optional, Tuple
+
+class Device(object):
+    def __init__(
+            self,
+            name: str,
+            mac: str,
+            keywords: Optional[List[str]],
+    ):
+        self.name = name
+        self.mac = mac
+        self.keywords = keywords
+        if keywords is not None:
+            self.kws = keywords.split()
+        else:
+            self.kws = []
+
+    def get_name(self) -> str:
+        return self.name
+
+    def get_mac(self) -> str:
+        return self.mac
+
+    def get_keywords(self) -> Optional[List[str]]:
+        return self.kws
+
+    def has_keyword(self, keyword: str) -> bool:
+        for kw in self.kws:
+            if kw == keyword:
+                return True
+        return False
+
+    def get_on_limit_seconds(self) -> Optional[int]:
+        for kw in self.kws:
+            m = re.search(r"timeout:(\d+)", kw)
+            if m is not None:
+                return int(m.group(1)) * 60
+        return None