powervaultpy 0.0.8__tar.gz → 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/PKG-INFO +10 -1
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/pyproject.toml +2 -2
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/src/powervaultpy/powervault.py +15 -10
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/src/powervaultpy.egg-info/PKG-INFO +10 -1
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/setup.cfg +0 -0
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/src/powervaultpy/__init__.py +0 -0
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/src/powervaultpy.egg-info/SOURCES.txt +0 -0
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/src/powervaultpy.egg-info/dependency_links.txt +0 -0
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/src/powervaultpy.egg-info/requires.txt +0 -0
- {powervaultpy-0.0.8 → powervaultpy-1.0.0}/src/powervaultpy.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: powervaultpy
|
3
|
-
Version: 0.0
|
3
|
+
Version: 1.0.0
|
4
4
|
Summary: An integration to control the Powervault battery
|
5
5
|
Author-email: Adam McDonagh <adam@elitemonkey.net>
|
6
6
|
License: GPLv3
|
@@ -13,4 +13,13 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
13
13
|
Classifier: Operating System :: POSIX
|
14
14
|
Requires-Python: >=3.9
|
15
15
|
Description-Content-Type: text/markdown
|
16
|
+
Requires-Dist: requests>=2.28
|
17
|
+
Requires-Dist: pytz
|
16
18
|
Provides-Extra: dev
|
19
|
+
Requires-Dist: black>=23.1.0; extra == "dev"
|
20
|
+
Requires-Dist: isort; extra == "dev"
|
21
|
+
Requires-Dist: pytest; extra == "dev"
|
22
|
+
Requires-Dist: pytest-env; extra == "dev"
|
23
|
+
Requires-Dist: pytest-asyncio; extra == "dev"
|
24
|
+
Requires-Dist: bumpver; extra == "dev"
|
25
|
+
Requires-Dist: pre-commit; extra == "dev"
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "powervaultpy"
|
7
|
-
version = "0.0
|
7
|
+
version = "1.0.0"
|
8
8
|
authors = [
|
9
9
|
{ name="Adam McDonagh", email="adam@elitemonkey.net" },
|
10
10
|
]
|
@@ -43,7 +43,7 @@ dev = [
|
|
43
43
|
profile = 'black'
|
44
44
|
|
45
45
|
[tool.bumpver]
|
46
|
-
current_version = "0.
|
46
|
+
current_version = "1.0.0"
|
47
47
|
version_pattern = "MAJOR.MINOR.PATCH"
|
48
48
|
commit_message = "bump version {old_version} -> {new_version}"
|
49
49
|
commit = true
|
@@ -18,7 +18,7 @@ VALID_STATUSES = [
|
|
18
18
|
]
|
19
19
|
|
20
20
|
_LOGGER = logging.getLogger(__name__)
|
21
|
-
_LOGGER.setLevel(logging.
|
21
|
+
_LOGGER.setLevel(logging.INFO)
|
22
22
|
|
23
23
|
class PowerVaultApiClientError(Exception):
|
24
24
|
"""Exception to indicate a general API error."""
|
@@ -113,14 +113,12 @@ class PowerVault:
|
|
113
113
|
_LOGGER.error("Failed to retrieve account")
|
114
114
|
|
115
115
|
def get_data(
|
116
|
-
self, unit_id: str,
|
116
|
+
self, unit_id: str, period: str = None
|
117
117
|
) -> any:
|
118
118
|
"""Get the latest metrics from the unit."""
|
119
119
|
url = f"{self._base_url}/unit/{unit_id}/data"
|
120
120
|
|
121
|
-
if
|
122
|
-
url = f"{url}?from={from_}&to={to}"
|
123
|
-
elif period is not None:
|
121
|
+
if period is not None:
|
124
122
|
if period not in [
|
125
123
|
"today",
|
126
124
|
"yesterday",
|
@@ -134,6 +132,12 @@ class PowerVault:
|
|
134
132
|
"last-month",
|
135
133
|
]:
|
136
134
|
raise Exception(f"Invalid period: {period}")
|
135
|
+
|
136
|
+
if not period:
|
137
|
+
# If period is not set, set it to anything,
|
138
|
+
# because for some reason if you leave it blank you get nulls most of the time
|
139
|
+
period = "past_hour" # This is not a valid period, but it gets you the last live values regardless
|
140
|
+
|
137
141
|
url = f"{url}?period={period}"
|
138
142
|
|
139
143
|
data_response = self._read_response(self._session.get(url), url)
|
@@ -162,10 +166,11 @@ class PowerVault:
|
|
162
166
|
for row in data:
|
163
167
|
for attribute in attributes:
|
164
168
|
if attribute in row:
|
165
|
-
if attribute not in totals:
|
169
|
+
if attribute not in totals or not totals[attribute]:
|
166
170
|
totals[attribute] = 0
|
167
|
-
|
168
|
-
|
171
|
+
value = row[attribute]
|
172
|
+
if value:
|
173
|
+
totals[attribute] += round(value / 1000 * (5/60), 2)
|
169
174
|
return totals
|
170
175
|
|
171
176
|
def set_battery_state(self, unit_id: str, battery_state) -> bool:
|
@@ -189,14 +194,14 @@ class PowerVault:
|
|
189
194
|
|
190
195
|
state_override_response = self._read_response(
|
191
196
|
self._session.post(url, json=payload), url)
|
192
|
-
|
197
|
+
|
193
198
|
_LOGGER.debug("State Override: %s", state_override_response)
|
194
199
|
|
195
200
|
if (state_override_response is not None) and ("stateOverrides" in state_override_response) and "message" in state_override_response and state_override_response["message"] == "success":
|
196
201
|
return True
|
197
202
|
else:
|
198
203
|
return False
|
199
|
-
|
204
|
+
|
200
205
|
|
201
206
|
def get_battery_state(self, unit_id: str) -> any:
|
202
207
|
"""Query the schedule and overrides to determine the current battery state."""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: powervaultpy
|
3
|
-
Version: 0.0
|
3
|
+
Version: 1.0.0
|
4
4
|
Summary: An integration to control the Powervault battery
|
5
5
|
Author-email: Adam McDonagh <adam@elitemonkey.net>
|
6
6
|
License: GPLv3
|
@@ -13,4 +13,13 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
13
13
|
Classifier: Operating System :: POSIX
|
14
14
|
Requires-Python: >=3.9
|
15
15
|
Description-Content-Type: text/markdown
|
16
|
+
Requires-Dist: requests>=2.28
|
17
|
+
Requires-Dist: pytz
|
16
18
|
Provides-Extra: dev
|
19
|
+
Requires-Dist: black>=23.1.0; extra == "dev"
|
20
|
+
Requires-Dist: isort; extra == "dev"
|
21
|
+
Requires-Dist: pytest; extra == "dev"
|
22
|
+
Requires-Dist: pytest-env; extra == "dev"
|
23
|
+
Requires-Dist: pytest-asyncio; extra == "dev"
|
24
|
+
Requires-Dist: bumpver; extra == "dev"
|
25
|
+
Requires-Dist: pre-commit; extra == "dev"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|