Typo
authorScott Gasch <[email protected]>
Sun, 7 Jan 2024 19:44:27 +0000 (11:44 -0800)
committerScott Gasch <[email protected]>
Sun, 7 Jan 2024 19:44:27 +0000 (11:44 -0800)
ratago_renderer.py

index 4e33ed69d3839def9e4842027f6f579cd311c585..a0a296a1bbcd7ce41e06098c5766d495d5b19a68 100644 (file)
@@ -4,7 +4,7 @@ import datetime
 import logging
 import json
 from dateutil.parser import parse
-from typing import Dict, Optional
+from typing import Any, Dict, Optional
 
 import requests
 from pyutils.datetimes import datetime_utils
@@ -19,11 +19,11 @@ import renderer
 logger = logging.getLogger(__name__)
 
 
-class garage_door_renderer(renderer.abstaining_renderer):
+class ratago_renderer(renderer.abstaining_renderer):
     def __init__(self, name_to_timeout_dict: Dict[str, int]) -> None:
         super().__init__(name_to_timeout_dict)
         self.last_update: Optional[datetime.datetime] = None
-        self.doors = {
+        self.doors: Dict[str, Dict[str, Any]] = {
             "cover.ratgdo_middle_door_door": {"state": "unknown"},
             "cover.ratgdo_near_house_door": {"state": "unknown"},
             "cover.ratgdo_shop_door": {"state": "unknown"},
@@ -41,7 +41,7 @@ class garage_door_renderer(renderer.abstaining_renderer):
             raise Exception("Unknown operaiton")
 
     def poll_home_assistant(self) -> bool:
-        key = secrets.HOMEASSISTANT_API_KEY
+        key = secrets.homeassistant_api_key
         headers = {
             "Authorization": f"Bearer {key}",
             "Content-Type": "application/json",
@@ -55,7 +55,6 @@ class garage_door_renderer(renderer.abstaining_renderer):
                 )
                 if r.ok:
                     j = json.loads(r.content.decode())
-                    logger.debug(j)
                     self.doors[door] = j
                 else:
                     logger.warning("Unable to get state of garage door {door}, using 'unknown'")
@@ -75,18 +74,17 @@ class garage_door_renderer(renderer.abstaining_renderer):
     <TR>
 """
             )
-
-            html = self.do_door("cover.ratago_near_house_door")
+            html = self.do_door('cover.ratgdo_near_house_door')
             if html is None:
                 return False
             f.write(html)
 
-            html = self.do_door("cover.ratago_middle_door_door")
+            html = self.do_door('cover.ratgdo_middle_door_door')
             if html is None:
                 return False
             f.write(html)
 
-            html = self.do_door("cover.ratago_shop_door")
+            html = self.do_door('cover.ratgdo_shop_door')
             if html is None:
                 return False
             f.write(html)
@@ -115,20 +113,20 @@ class garage_door_renderer(renderer.abstaining_renderer):
             "cover.ratgdo_near_house_door": "Near House Door",
             "cover.ratgdo_shop_door": "Workshop Door",
         }
-        if self.doors is None:
-            return None
-
         friendly_name = friendly_door_names.get(name, "unknown")
-        attributes = self.doors.get(name, {"state": "unknown"})
+        attributes = self.doors[name] #.get(name) #, {"state": "unknown"})
         state = attributes.get("state", "unknown").lower()
         since = attributes.get("last_changed", "unknown").lower()
 
         # "last_update": "2020-07-04T18:11:34.2981419Z"
-        ts = parse(since)
-        tz_info = ts.tzinfo
-        now = datetime.datetime.now(tz_info)
-        delta = (now - ts).total_seconds()
-        duration = datetime_utils.describe_duration_briefly(int(delta))
+        if since != "unknown":
+            ts = parse(since)
+            tz_info = ts.tzinfo
+            now = datetime.datetime.now(tz_info)
+            delta = (now - ts).total_seconds()
+            duration = datetime_utils.describe_duration_briefly(int(delta))
+        else:
+            duration = "unknown"
 
         now = datetime.datetime.now()
         is_night = now.hour <= 7 or now.hour >= 21
@@ -156,6 +154,6 @@ class garage_door_renderer(renderer.abstaining_renderer):
 
 
 # Test
-#x = garage_door_renderer({"Test": 1})
-#x.periodic_render("Poll MyQ")
+#x = ratago_renderer({"Test": 1})
+#x.periodic_render("Poll Home Assistant")
 #x.periodic_render("Update Page")