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.
Files changed (28) hide show
  1. {pyvicare-2.50.0 → pyvicare-2.52.0}/PKG-INFO +23 -2
  2. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareElectricalEnergySystem.py +36 -0
  3. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareGazBoiler.py +9 -4
  4. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareHeatingDevice.py +4 -0
  5. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareService.py +5 -0
  6. {pyvicare-2.50.0 → pyvicare-2.52.0}/README.md +19 -0
  7. {pyvicare-2.50.0 → pyvicare-2.52.0}/pyproject.toml +3 -3
  8. {pyvicare-2.50.0 → pyvicare-2.52.0}/LICENSE +0 -0
  9. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/Feature.py +0 -0
  10. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCare.py +0 -0
  11. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareAbstractOAuthManager.py +0 -0
  12. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareBrowserOAuthManager.py +0 -0
  13. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareCachedService.py +0 -0
  14. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareDevice.py +0 -0
  15. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareDeviceConfig.py +0 -0
  16. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareFuelCell.py +0 -0
  17. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareGateway.py +0 -0
  18. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareHeatCurveCalculation.py +0 -0
  19. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareHeatPump.py +0 -0
  20. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareHybrid.py +0 -0
  21. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareOAuthManager.py +0 -0
  22. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareOilBoiler.py +0 -0
  23. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCarePelletsBoiler.py +0 -0
  24. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareRadiatorActuator.py +0 -0
  25. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareRoomSensor.py +0 -0
  26. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareUtils.py +0 -0
  27. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/PyViCareVentilationDevice.py +0 -0
  28. {pyvicare-2.50.0 → pyvicare-2.52.0}/PyViCare/__init__.py +0 -0
@@ -1,8 +1,9 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: PyViCare
3
- Version: 2.50.0
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.50.0"
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 = "^6.0.0"
55
- ruff = "^0.12.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