diff options
author | Roger Gonzalez <roger@rogs.me> | 2023-09-25 19:21:51 -0300 |
---|---|---|
committer | Roger Gonzalez <roger@rogs.me> | 2023-09-25 19:21:51 -0300 |
commit | be7c46055ed4aa74d57507226c1b07f8c7a17fde (patch) | |
tree | 079541041335b1d75ca7ba87d2b714f5ed9193d4 | |
parent | ac583ab4072256f5cc96a17931bcc553adf89aed (diff) |
Added power factor
-rw-r--r-- | README.md | 3 | ||||
-rwxr-xr-x | pyproject.toml | 2 | ||||
-rwxr-xr-x | src/ute_wrapper/ute.py | 22 |
3 files changed, 21 insertions, 6 deletions
@@ -29,8 +29,9 @@ email = "your_email@example.com" phone_number = "your_phone_number" device_id = "your_device_id" # Optional average_cost_per_kwh = 4.0 # Optional, your average cost per kWh in UYU +power_factor = 0.7 # Optional, your power factor -ute_client = UTEClient(email, phone_number, device_id, average_cost_per_kwh) +ute_client = UTEClient(email, phone_number, device_id, average_cost_per_kwh, power_factor) ``` ### Available Methods diff --git a/pyproject.toml b/pyproject.toml index a97987d..445b39e 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,7 @@ build-backend = "hatchling.build" [project] name = "ute_wrapper" -version = "1.0.3" +version = "1.1.0" authors = [ { name="Roger Gonzalez", email="roger@rogs.me" }, ] diff --git a/src/ute_wrapper/ute.py b/src/ute_wrapper/ute.py index f4897d9..10b31ad 100755 --- a/src/ute_wrapper/ute.py +++ b/src/ute_wrapper/ute.py @@ -26,12 +26,23 @@ BASE_URL = "https://rocme.ute.com.uy/api/v1" class UTEClient: - def __init__(self, email: str, phone_number: str, device_id: str = None, average_cost_per_kwh: float = None): + def __init__( + self, + email: str, + phone_number: str, + device_id: str = None, + average_cost_per_kwh: float = None, + power_factor: float = None, + ): self.email = email self.phone_number = phone_number self.device_id = device_id self.average_cost_per_kwh = average_cost_per_kwh self.authorization = self._login() + self.power_factor = power_factor + + if self.power_factor and (self.power_factor < 0 or self.power_factor > 1): + raise Exception("Your power factor has to be between 0 and 1") if not self.device_id: devices = self.get_devices_list() @@ -250,9 +261,11 @@ class UTEClient: elif reading_type == "V3": v3 = float(reading["valor"]) - power_1_in_watts = v1 * i1 - power_2_in_watts = v2 * i2 - power_3_in_watts = v3 * i3 + power_factor = self.power_factor or 1 + + power_1_in_watts = v1 * i1 * power_factor + power_2_in_watts = v2 * i2 * power_factor + power_3_in_watts = v3 * i3 * power_factor return round(power_1_in_watts + power_2_in_watts + power_3_in_watts, 3) @@ -293,6 +306,7 @@ class UTEClient: return_dict = {**response} return_dict["data"]["power_in_watts"] = power_in_watts + return_dict["data"]["using_power_factor"] = True if self.power_factor else False return return_dict |