From e663255f353e56986d1ca976be3fe1951b2acf4f Mon Sep 17 00:00:00 2001 From: eolus87 Date: Tue, 13 Jun 2023 00:08:20 +0100 Subject: [PATCH] It seems to be an issue with the high frequency of querying the device, reducing it to 0.2Hz seems to be fine. --- config/config.yaml | 2 +- kasadevices/__init__.py | 0 kasadevices/kasaplug.py | 40 ---------------------------------------- main_test_plug.py | 30 ------------------------------ power/power_function.py | 2 +- 5 files changed, 2 insertions(+), 72 deletions(-) delete mode 100644 kasadevices/__init__.py delete mode 100644 kasadevices/kasaplug.py delete mode 100644 main_test_plug.py diff --git a/config/config.yaml b/config/config.yaml index 779a81e..d579265 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -27,6 +27,6 @@ energy: devices: printer_plug: address: 192.168.0.49 - rate: 1 + rate: 0.2 buffer_size: 1000 \ No newline at end of file diff --git a/kasadevices/__init__.py b/kasadevices/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/kasadevices/kasaplug.py b/kasadevices/kasaplug.py deleted file mode 100644 index c72a02b..0000000 --- a/kasadevices/kasaplug.py +++ /dev/null @@ -1,40 +0,0 @@ -__author__ = "Nicolas Gutierrez" - -# Standard libraries -import os -import platform -import asyncio -from threading import Lock -# Third party libraries -import kasa -# Custom libraries - - -if platform.system() == 'Windows': - asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) - - -class KasaPlug: - def __init__(self, ip_address: str) -> None: - self.device_lock = Lock() - - self.ip_address = ip_address - self.plug_object = kasa.SmartPlug(ip_address) - asyncio.run(self.__device_update()) - - async def __device_update(self): - await self.plug_object.update() - - async def __power_function(self): - self.device_lock.acquire() - try: - power = self.plug_object.emeter_realtime - except Exception as inst: - print(f"\tError while requesting power from device {inst}") - power = -1 - self.device_lock.release() - return power, "W" - - def power_request(self): - power, unit = asyncio.run(self.__power_function()) - return power, unit diff --git a/main_test_plug.py b/main_test_plug.py deleted file mode 100644 index 39d6ca0..0000000 --- a/main_test_plug.py +++ /dev/null @@ -1,30 +0,0 @@ - -import asyncio -import time -from kasadevices.kasaplug import KasaPlug -from power.power_function import power_function -import kasa - -plug = KasaPlug("192.168.0.49") - -while True: - time.sleep(2) - power, unit = power_function("192.168.0.49") - print(f"{time.time()} the Power in the plug is {power} {unit}") - - -# async def get_plug(): -# plug = kasa.SmartPlug("192.168.0.49") -# return plug -# -# -# async def set_plug(): -# res = get_plug() -# bulb = await res -# await bulb.update() -# assert bulb.is_bulb -# -# -# if __name__ == '__main__': -# asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) -# asyncio.run(set_plug()) diff --git a/power/power_function.py b/power/power_function.py index 3eeb8f0..805c4ef 100644 --- a/power/power_function.py +++ b/power/power_function.py @@ -16,7 +16,7 @@ async def power_request(target: str) -> Tuple[float, str]: plug = kasa.SmartPlug(target) try: await plug.update() - power = await plug.current_consumption() + power = plug.emeter_realtime.power except Exception as inst: print(f"Power request function failed with error: {inst}") power = -1