PyViCare 2.50.0__tar.gz → 2.52.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.
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PKG-INFO +23 -2
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareElectricalEnergySystem.py +36 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareGazBoiler.py +9 -4
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareHeatingDevice.py +4 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareService.py +5 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/README.md +19 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/pyproject.toml +3 -3
- {pyvicare-2.50.0 → pyvicare-2.52.0}/LICENSE +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/Feature.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCare.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareAbstractOAuthManager.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareBrowserOAuthManager.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareCachedService.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareDevice.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareDeviceConfig.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareFuelCell.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareGateway.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareHeatCurveCalculation.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareHeatPump.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareHybrid.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareOAuthManager.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareOilBoiler.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCarePelletsBoiler.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareRadiatorActuator.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareRoomSensor.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareUtils.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareVentilationDevice.py +0 -0
- {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/__init__.py +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: PyViCare
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.52.0
|
|
4
4
|
Summary: Library to communicate with the Viessmann ViCare API.
|
|
5
5
|
License: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Keywords: viessmann,vicare,api
|
|
7
8
|
Author: Simon Gillet
|
|
8
9
|
Author-email: mail+pyvicare@gillet.ninja
|
|
@@ -19,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
19
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
24
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
25
|
Requires-Dist: authlib (>1.2.0)
|
|
24
26
|
Requires-Dist: deprecated (>=1.2.15,<2.0.0)
|
|
@@ -208,3 +210,22 @@ To make the test data comparable with future updates, it must be sorted. No worr
|
|
|
208
210
|
jq ".data|=sort_by(.feature)" --sort-keys testData.json > testDataSorted.json
|
|
209
211
|
```
|
|
210
212
|
|
|
213
|
+
## Testing
|
|
214
|
+
|
|
215
|
+
### Home Assistant
|
|
216
|
+
|
|
217
|
+
To test a certain change in Home Assistant, one needs to have a `ViCare` integration installed as a custom component.
|
|
218
|
+
Change the dependency in the `manifest.json` to point to a GitHub branch or commit SHA:
|
|
219
|
+
|
|
220
|
+
```json
|
|
221
|
+
"requirements": [
|
|
222
|
+
"PyViCare@git+https://github.com/openviess/PyViCare.git@<branchname>"
|
|
223
|
+
],
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
To install `ViCare` as a custom component, one can use the terminal addon to install the changes from a certain Home Assistant PR:
|
|
227
|
+
|
|
228
|
+
```sh
|
|
229
|
+
curl -o- -L https://gist.githubusercontent.com/bdraco/43f8043cb04b9838383fd71353e99b18/raw/core_integration_pr | bash /dev/stdin -d vicare -p <pr-number>
|
|
230
|
+
```
|
|
231
|
+
|
|
@@ -88,6 +88,42 @@ class ElectricalEnergySystem(Device):
|
|
|
88
88
|
"value"
|
|
89
89
|
]["unit"]
|
|
90
90
|
|
|
91
|
+
@handleNotSupported
|
|
92
|
+
def getElectricalEnergySystemTransferChargeCumulatedUnit(self):
|
|
93
|
+
return self.service.getProperty("ess.transfer.charge.cumulated")[
|
|
94
|
+
"properties"
|
|
95
|
+
]["currentDay"]["unit"]
|
|
96
|
+
|
|
97
|
+
@handleNotSupported
|
|
98
|
+
def getElectricalEnergySystemTransferChargeCumulatedCurrentDay(self):
|
|
99
|
+
return self.service.getProperty("ess.transfer.charge.cumulated")[
|
|
100
|
+
"properties"
|
|
101
|
+
]["currentDay"]["value"]
|
|
102
|
+
|
|
103
|
+
@handleNotSupported
|
|
104
|
+
def getElectricalEnergySystemTransferChargeCumulatedCurrentWeek(self):
|
|
105
|
+
return self.service.getProperty("ess.transfer.charge.cumulated")[
|
|
106
|
+
"properties"
|
|
107
|
+
]["currentWeek"]["value"]
|
|
108
|
+
|
|
109
|
+
@handleNotSupported
|
|
110
|
+
def getElectricalEnergySystemTransferChargeCumulatedCurrentMonth(self):
|
|
111
|
+
return self.service.getProperty("ess.transfer.charge.cumulated")[
|
|
112
|
+
"properties"
|
|
113
|
+
]["currentMonth"]["value"]
|
|
114
|
+
|
|
115
|
+
@handleNotSupported
|
|
116
|
+
def getElectricalEnergySystemTransferChargeCumulatedCurrentYear(self):
|
|
117
|
+
return self.service.getProperty("ess.transfer.charge.cumulated")[
|
|
118
|
+
"properties"
|
|
119
|
+
]["currentYear"]["value"]
|
|
120
|
+
|
|
121
|
+
@handleNotSupported
|
|
122
|
+
def getElectricalEnergySystemTransferChargeCumulatedLifeCycle(self):
|
|
123
|
+
return self.service.getProperty("ess.transfer.charge.cumulated")[
|
|
124
|
+
"properties"
|
|
125
|
+
]["lifeCycle"]["value"]
|
|
126
|
+
|
|
91
127
|
@handleNotSupported
|
|
92
128
|
def getElectricalEnergySystemTransferDischargeCumulatedUnit(self):
|
|
93
129
|
return self.service.getProperty("ess.transfer.discharge.cumulated")[
|
|
@@ -103,10 +103,6 @@ class GazBoiler(HeatingDevice):
|
|
|
103
103
|
def getDomesticHotWaterChargingLevel(self):
|
|
104
104
|
return self.service.getProperty("heating.dhw.charging.level")["properties"]["value"]["value"]
|
|
105
105
|
|
|
106
|
-
@handleNotSupported
|
|
107
|
-
def getBoilerCommonSupplyTemperature(self):
|
|
108
|
-
return self.service.getProperty("heating.boiler.sensors.temperature.commonSupply")["properties"]["value"]["value"]
|
|
109
|
-
|
|
110
106
|
@handleNotSupported
|
|
111
107
|
def getPowerConsumptionUnit(self):
|
|
112
108
|
return self.service.getProperty("heating.power.consumption.total")["properties"]["day"]["unit"]
|
|
@@ -264,6 +260,15 @@ class GazBoiler(HeatingDevice):
|
|
|
264
260
|
def getPowerSummaryConsumptionDomesticHotWaterLastYear(self):
|
|
265
261
|
return self.service.getProperty("heating.power.consumption.summary.dhw")["properties"]["lastYear"]["value"]
|
|
266
262
|
|
|
263
|
+
@handleNotSupported
|
|
264
|
+
def getSupplyPressureUnit(self) -> str:
|
|
265
|
+
# Returns heating supply pressure unit (e.g. bar)
|
|
266
|
+
return str(self.service.getProperty("heating.sensors.pressure.supply")["properties"]["value"]["unit"])
|
|
267
|
+
|
|
268
|
+
@handleNotSupported
|
|
269
|
+
def getSupplyPressure(self) -> float:
|
|
270
|
+
# Returns heating supply pressure
|
|
271
|
+
return float(self.service.getProperty("heating.sensors.pressure.supply")["properties"]["value"]["value"])
|
|
267
272
|
|
|
268
273
|
class GazBurner(HeatingDeviceWithComponent):
|
|
269
274
|
|
|
@@ -364,6 +364,10 @@ class HeatingDevice(Device):
|
|
|
364
364
|
return self.service.getProperty("heating.secondaryCircuit.sensors.temperature.return")["properties"]["value"][
|
|
365
365
|
"value"]
|
|
366
366
|
|
|
367
|
+
@handleNotSupported
|
|
368
|
+
def getBoilerCommonSupplyTemperature(self):
|
|
369
|
+
return self.service.getProperty("heating.boiler.sensors.temperature.commonSupply")["properties"]["value"]["value"]
|
|
370
|
+
|
|
367
371
|
|
|
368
372
|
class HeatingDeviceWithComponent:
|
|
369
373
|
"""This is the base class for all heating components"""
|
|
@@ -62,3 +62,8 @@ class ViCareService:
|
|
|
62
62
|
if self._isGateway():
|
|
63
63
|
url = f'/features/installations/{self.accessor.id}/gateways/{self.accessor.serial}/features/'
|
|
64
64
|
return self.oauth_manager.get(url)
|
|
65
|
+
|
|
66
|
+
def reboot_gateway(self) -> Any:
|
|
67
|
+
url = f'/equipment/installations/{self.accessor.id}/gateways/{self.accessor.serial}/reboot'
|
|
68
|
+
data = "{}"
|
|
69
|
+
return self.oauth_manager.post(url, data)
|
|
@@ -175,3 +175,22 @@ To make the test data comparable with future updates, it must be sorted. No worr
|
|
|
175
175
|
```sh
|
|
176
176
|
jq ".data|=sort_by(.feature)" --sort-keys testData.json > testDataSorted.json
|
|
177
177
|
```
|
|
178
|
+
|
|
179
|
+
## Testing
|
|
180
|
+
|
|
181
|
+
### Home Assistant
|
|
182
|
+
|
|
183
|
+
To test a certain change in Home Assistant, one needs to have a `ViCare` integration installed as a custom component.
|
|
184
|
+
Change the dependency in the `manifest.json` to point to a GitHub branch or commit SHA:
|
|
185
|
+
|
|
186
|
+
```json
|
|
187
|
+
"requirements": [
|
|
188
|
+
"PyViCare@git+https://github.com/openviess/PyViCare.git@<branchname>"
|
|
189
|
+
],
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
To install `ViCare` as a custom component, one can use the terminal addon to install the changes from a certain Home Assistant PR:
|
|
193
|
+
|
|
194
|
+
```sh
|
|
195
|
+
curl -o- -L https://gist.githubusercontent.com/bdraco/43f8043cb04b9838383fd71353e99b18/raw/core_integration_pr | bash /dev/stdin -d vicare -p <pr-number>
|
|
196
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "PyViCare"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.52.0"
|
|
4
4
|
description = "Library to communicate with the Viessmann ViCare API."
|
|
5
5
|
authors = [
|
|
6
6
|
"Simon Gillet <mail+pyvicare@gillet.ninja>"
|
|
@@ -51,8 +51,8 @@ codespell = "^2.3.0"
|
|
|
51
51
|
mypy = "^1.11.2"
|
|
52
52
|
pylint = "^3.2.6"
|
|
53
53
|
pytest = "^8.3.2"
|
|
54
|
-
pytest-cov = "^
|
|
55
|
-
ruff = "^0.
|
|
54
|
+
pytest-cov = "^7.0.0"
|
|
55
|
+
ruff = "^0.13.0"
|
|
56
56
|
types-deprecated = "^1.2.15.20241117"
|
|
57
57
|
types-requests = ">=2.31"
|
|
58
58
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|