summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Gonzalez <roger@rogs.me>2023-09-25 19:21:51 -0300
committerRoger Gonzalez <roger@rogs.me>2023-09-25 19:21:51 -0300
commitbe7c46055ed4aa74d57507226c1b07f8c7a17fde (patch)
tree079541041335b1d75ca7ba87d2b714f5ed9193d4
parentac583ab4072256f5cc96a17931bcc553adf89aed (diff)
Added power factor
-rw-r--r--README.md3
-rwxr-xr-xpyproject.toml2
-rwxr-xr-xsrc/ute_wrapper/ute.py22
3 files changed, 21 insertions, 6 deletions
diff --git a/README.md b/README.md
index 9631ca5..089343c 100644
--- a/README.md
+++ b/README.md
@@ -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