Added power factor

This commit is contained in:
Roger Gonzalez 2023-09-25 19:21:51 -03:00
parent ac583ab407
commit be7c46055e
Signed by: rogs
GPG Key ID: C7ECE9C6C36EC2E6
3 changed files with 21 additions and 6 deletions

View File

@ -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

View File

@ -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" },
]

View File

@ -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