X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=smart_home%2Flights.py;h=64f2105ffe8a4de0864e95a14d2b05703010a2bb;hb=5e09a33068fcdf6d43f12477dd943e108e11ae06;hp=1c4081c750fe9fb3d6ea2a472fb66240b7299f55;hpb=b29be4f1750fd20bd2eada88e751dfae85817882;p=python_utils.git diff --git a/smart_home/lights.py b/smart_home/lights.py index 1c4081c..64f2105 100644 --- a/smart_home/lights.py +++ b/smart_home/lights.py @@ -46,14 +46,16 @@ def tplink_light_command(command: str) -> bool: result = os.system(command) signal = result & 0xFF if signal != 0: - logger.warning(f'{command} died with signal {signal}') - logging_utils.hlog("%s died with signal %d" % (command, signal)) + msg = f'{command} died with signal {signal}' + logger.warning(msg) + logging_utils.hlog(msg) return False else: exit_value = result >> 8 if exit_value != 0: - logger.warning(f'{command} failed, exited {exit_value}') - logging_utils.hlog("%s failed, exit %d" % (command, exit_value)) + msg = f'{command} failed, exited {exit_value}' + logger.warning(msg) + logging_utils.hlog(msg) return False logger.debug(f'{command} succeeded.') return True @@ -318,7 +320,10 @@ class TPLinkLight(BaseLight): @overrides def is_on(self) -> bool: - return self.get_on_duration_seconds() > 0 + self.info = self.get_info() + if self.info is None: + raise Exception('Unable to get info?') + return self.info.get("relay_state", 0) == 1 @overrides def is_off(self) -> bool: @@ -339,6 +344,7 @@ class TPLinkLight(BaseLight): out = re.sub("Received: *", "", out) try: self.info = json.loads(out)["system"]["get_sysinfo"] + logger.debug(json.dumps(self.info, indent=4, sort_keys=True)) self.info_ts = datetime.datetime.now() return self.info except Exception as e: