Various changes
[kiosk.git] / myq_renderer.py
index 333c356a6e96891a26ddf8c36f743636c785b155..ca405346dc10f88d98689886ae198ecd98195e8b 100644 (file)
@@ -1,5 +1,3 @@
-#!/usr/local/bin/python3.7
-
 import pymyq
 from aiohttp import ClientSession
 import asyncio
@@ -14,13 +12,15 @@ class garage_door_renderer(renderer.debuggable_abstaining_renderer):
     def __init__(self, name_to_timeout_dict):
         super(garage_door_renderer, self).__init__(name_to_timeout_dict, False)
         self.doors = None
+        self.last_update = None
 
     def debug_prefix(self):
         return "myq"
 
     def periodic_render(self, key):
         if key == "Poll MyQ":
-            asyncio.get_event_loop().run_until_complete(self.poll_myq())
+            self.last_update = datetime.datetime.now()
+            return asyncio.run(self.poll_myq())
         elif key == "Update Page":
             return self.update_page()
         else:
@@ -32,17 +32,17 @@ class garage_door_renderer(renderer.debuggable_abstaining_renderer):
                                     secrets.myq_password,
                                     websession)
             self.doors = myq.devices
+            return len(self.doors) > 0
 
     def update_page(self):
         f = file_writer.file_writer(constants.myq_pagename)
-        now = datetime.datetime.now()
         f.write("""
 <H1>Garage Door Status</H1>
 <!-- Last updated at %s -->
 <HR>
 <TABLE BORDER=0 WIDTH=99%%>
   <TR>
-""" % now)
+""" % self.last_update)
         html = self.do_door("Near House")
         if html == None:
             return False
@@ -89,7 +89,7 @@ class garage_door_renderer(renderer.debuggable_abstaining_renderer):
                 hours = divmod(days[1], constants.seconds_per_hour)
                 minutes = divmod(hours[1], constants.seconds_per_minute)
                 width = 0
-                if is_night and door.get_status() == "open":
+                if is_night and door.state == "open":
                     color = "border-color: #ff0000;"
                     width = 15
                 else:
@@ -115,6 +115,6 @@ class garage_door_renderer(renderer.debuggable_abstaining_renderer):
         return None
 
 # Test
-#x = garage_door_renderer({"Test" : 1})
-#x.periodic_render("Poll MyQ")
-#x.periodic_render("Update Page")
+x = garage_door_renderer({"Test" : 1})
+x.periodic_render("Poll MyQ")
+x.periodic_render("Update Page")