PyViCare 2.34.0__tar.gz → 2.35.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.34.0 → pyvicare-2.35.0}/PKG-INFO +2 -1
  2. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareDevice.py +6 -0
  3. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareDeviceConfig.py +5 -2
  4. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareHeatingDevice.py +17 -8
  5. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareRadiatorActuator.py +2 -2
  6. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareService.py +1 -1
  7. {pyvicare-2.34.0 → pyvicare-2.35.0}/pyproject.toml +2 -2
  8. {pyvicare-2.34.0 → pyvicare-2.35.0}/LICENSE +0 -0
  9. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/Feature.py +0 -0
  10. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCare.py +0 -0
  11. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareAbstractOAuthManager.py +0 -0
  12. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareBrowserOAuthManager.py +0 -0
  13. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareCachedService.py +0 -0
  14. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareElectricalEnergySystem.py +0 -0
  15. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareFuelCell.py +0 -0
  16. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareGateway.py +0 -0
  17. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareGazBoiler.py +0 -0
  18. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareHeatCurveCalculation.py +0 -0
  19. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareHeatPump.py +0 -0
  20. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareHybrid.py +0 -0
  21. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareOAuthManager.py +0 -0
  22. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareOilBoiler.py +0 -0
  23. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCarePelletsBoiler.py +0 -0
  24. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareRoomSensor.py +0 -0
  25. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareUtils.py +0 -0
  26. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/PyViCareVentilationDevice.py +0 -0
  27. {pyvicare-2.34.0 → pyvicare-2.35.0}/PyViCare/__init__.py +0 -0
  28. {pyvicare-2.34.0 → pyvicare-2.35.0}/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyViCare
3
- Version: 2.34.0
3
+ Version: 2.35.0
4
4
  Summary: Library to communicate with the Viessmann ViCare API.
5
5
  Home-page: https://github.com/openviess/PyViCare
6
6
  License: Apache-2.0
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.9
20
20
  Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
23
24
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
25
  Requires-Dist: authlib (>1.2.0)
25
26
  Requires-Dist: requests (>=2.31.0)
@@ -15,3 +15,9 @@ class Device:
15
15
  @handleNotSupported
16
16
  def getSerial(self):
17
17
  return self.service.getProperty("device.serial")["properties"]["value"]["value"]
18
+
19
+ def isLegacyDevice(self) -> bool:
20
+ return self.service.hasRoles(["type:legacy"])
21
+
22
+ def isE3Device(self) -> bool:
23
+ return self.service.hasRoles(["type:E3"])
@@ -82,11 +82,14 @@ class PyViCareDeviceConfig:
82
82
  (self.asHeatPump, r"Vitocal|VBC70|V200WO1A|CU401B", ["type:heatpump"]),
83
83
  (self.asOilBoiler, r"Vitoladens|Vitoradial|Vitorondens|VPlusH|V200KW2_6", []),
84
84
  (self.asPelletsBoiler, r"Vitoligno|Ecotronic|VBC550P", []),
85
+ (self.asElectricalEnergySystem, r"E3_VitoCharge_03", ["type:ees"]),
86
+ (self.asVentilation, r"E3_ViAir", ["type:ventilation"]),
87
+ (self.asVentilation, r"E3_VitoPure", ["type:ventilation;purifier"]),
85
88
  (self.asRadiatorActuator, r"E3_RadiatorActuator", ["type:radiator"]),
86
89
  (self.asRoomSensor, r"E3_RoomSensor", ["type:climateSensor"]),
90
+ (self.asGateway, r"E3_TCU41_x04", ["type:gateway;TCU100"]),
91
+ (self.asGateway, r"E3_TCU19_x05", ["type:gateway;TCU200"]),
87
92
  (self.asGateway, r"E3_TCU10_x07", ["type:gateway;TCU300"]),
88
- (self.asElectricalEnergySystem, r"E3_VitoCharge_03", ["type:ees"]),
89
- (self.asVentilation, r"E3_ViAir", ["type:ventilation"]),
90
93
  (self.asGateway, r"Heatbox1", ["type:gateway;VitoconnectOpto1"]),
91
94
  (self.asGateway, r"Heatbox2", ["type:gateway;VitoconnectOpto2/OT2"])
92
95
  ]
@@ -66,16 +66,30 @@ class HeatingDevice(Device):
66
66
  def getDomesticHotWaterConfiguredTemperature(self):
67
67
  return self.service.getProperty("heating.dhw.temperature.main")["properties"]["value"]["value"]
68
68
 
69
+ @handleNotSupported
70
+ def getDomesticHotWaterStorageTemperature(self):
71
+ return self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder")["properties"]["value"][
72
+ "value"]
73
+
69
74
  @handleNotSupported
70
75
  def getHotWaterStorageTemperatureTop(self):
71
76
  return self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder.top")["properties"]["value"][
72
77
  "value"]
73
78
 
79
+ @handleNotSupported
80
+ def getDomesticHotWaterStorageTemperatureMiddle(self):
81
+ return self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder.middle")["properties"]["value"][
82
+ "value"]
83
+
84
+ @handleNotSupported
85
+ def getDomesticHotWaterStorageTemperatureMidBottom(self):
86
+ return self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder.midBottom")["properties"]["value"][
87
+ "value"]
88
+
74
89
  @handleNotSupported
75
90
  def getHotWaterStorageTemperatureBottom(self):
76
- return \
77
- self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder.bottom")["properties"]["value"][
78
- "value"]
91
+ return self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder.bottom")["properties"]["value"][
92
+ "value"]
79
93
 
80
94
  @handleNotSupported
81
95
  def getDomesticHotWaterConfiguredTemperature2(self):
@@ -113,11 +127,6 @@ class HeatingDevice(Device):
113
127
 
114
128
  return None
115
129
 
116
- @handleNotSupported
117
- def getDomesticHotWaterStorageTemperature(self):
118
- return self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder")["properties"]["value"][
119
- "value"]
120
-
121
130
  @handleNotSupported
122
131
  def getDomesticHotWaterOutletTemperature(self):
123
132
  return self.service.getProperty("heating.dhw.sensors.temperature.outlet")["properties"]["value"]["value"]
@@ -1,8 +1,8 @@
1
- from PyViCare.PyViCareHeatingDevice import HeatingDevice
1
+ from PyViCare.PyViCareDevice import Device
2
2
  from PyViCare.PyViCareUtils import handleAPICommandErrors, handleNotSupported
3
3
 
4
4
 
5
- class RadiatorActuator(HeatingDevice):
5
+ class RadiatorActuator(Device):
6
6
 
7
7
  @handleNotSupported
8
8
  def getTemperature(self):
@@ -48,7 +48,7 @@ class ViCareService:
48
48
  return hasRoles(requested_roles, self.roles)
49
49
 
50
50
  def _isGateway(self) -> bool:
51
- return self.hasRoles(["type:gateway;VitoconnectOpto1"]) or self.hasRoles(["type:gateway;VitoconnectOpto2/OT2"]) or self.hasRoles(["type:gateway;TCU300"])
51
+ return self.hasRoles(["type:gateway;VitoconnectOpto1"]) or self.hasRoles(["type:gateway;VitoconnectOpto2/OT2"]) or self.hasRoles(["type:gateway;TCU100"]) or self.hasRoles(["type:gateway;TCU200"]) or self.hasRoles(["type:gateway;TCU300"])
52
52
 
53
53
  def setProperty(self, property_name: str, action: str, data: Any) -> Any:
54
54
  url = buildSetPropertyUrl(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "PyViCare"
3
- version = "2.34.0"
3
+ version = "2.35.0"
4
4
  description = "Library to communicate with the Viessmann ViCare API."
5
5
  authors = [
6
6
  "Simon Gillet <mail+pyvicare@gillet.ninja>"
@@ -47,7 +47,7 @@ mypy = "^1.11.2"
47
47
  pylint = "^3.2.6"
48
48
  pytest = "^8.3.2"
49
49
  pytest-cov = "^5.0.0"
50
- ruff = "^0.6.7"
50
+ ruff = "^0.7.0"
51
51
  types-requests = ">=2.31"
52
52
 
53
53
  [tool.mypy]
File without changes
File without changes
File without changes