Skip to content

Commit 8f17bef

Browse files
tlinnettescnovonesisCFenner
authored
feat: expose power consumption for heating, dhw and total (#667)
* Adding sensors for heating.power.consumption.dhw, heating.power.consumption.heating and heating.power.consumption.total * Adding test response file for Vitocal252A * Sorted Vitocal252A.json with jq, according to README * Implementing initial tests for Vitocal252A. Copied from Vitocal250A and adjusted * Implemented test for Power Consumption Heating * Implemented tests for Total power consumption * Adding test for Power consumption for Domestic Hot Water * Align naming on tests * Update of test for Vitocal252A, after ViCare API had Maintenance window 2025-11-18. That seems to have fixed some values * Adding missing Properties for tests. Marked under '# heating - not yet used' * Adding sensors to GazBoiler * Adding another test for GazBoiler * Fix for some GazBoilers have unit in another dict * Added additional test for FuelCell * Adding sensors to fuelcell * adding extra test for Gaz boiler * Adding additional tests * Update PyViCare/PyViCareHeatPump.py def getPowerConsumptionHeatingYear(self): def getPowerConsumptionHeatingThisYear(self): Co-authored-by: Christopher Fenner <9592452+CFenner@users.noreply.github.com> * Renaming getPowerConsumptionHeatingYear to getPowerConsumptionHeatingThisYear * Fix for missing return, after implementation of fetching Unit of kilowattHour, that can be stored in either properties.day.unit or properties.unit.value * Renamed getPowerConsumptionDomesticHotWaterYear to getPowerConsumptionDomesticHotWaterThisYear * pylint Fix C0304: Final newline missing (missing-final-newline) in test_Vitodens200W, test_Vitodens200W_B2HF, test_Vitodens222W, test_Vitodens300W * pylint Fix C0303: Trailing whitespace (trailing-whitespace) in test_VitovalorPT2, line 110, column 20 --------- Co-authored-by: TESC (Troels Schwarz-Linnet) <tesc@novozymes.com> Co-authored-by: Christopher Fenner <9592452+CFenner@users.noreply.github.com>
1 parent be8a13e commit 8f17bef

11 files changed

+7083
-2
lines changed

PyViCare/PyViCareFuelCell.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def getAvailableBurners(self):
2323
def getReturnTemperature(self):
2424
return self.getProperty("heating.sensors.temperature.return")["properties"]["value"]["value"]
2525

26+
# Total power consumption:
2627
@handleNotSupported
2728
def getPowerConsumptionUnit(self):
2829
return self.getProperty("heating.power.consumption.total")["properties"]["day"]["unit"]
@@ -59,6 +60,7 @@ def getPowerConsumptionYears(self):
5960
def getPowerConsumptionThisYear(self):
6061
return self.getProperty('heating.power.consumption.total')['properties']['year']['value'][0]
6162

63+
# Power consumption for Heating:
6264
@handleNotSupported
6365
def getPowerConsumptionHeatingUnit(self):
6466
return self.getProperty("heating.power.consumption.heating")["properties"]["day"]["unit"]
@@ -95,6 +97,24 @@ def getPowerConsumptionHeatingYears(self):
9597
def getPowerConsumptionHeatingThisYear(self):
9698
return self.getProperty('heating.power.consumption.heating')['properties']['year']['value'][0]
9799

100+
# Power consumption for Domestic Hot Water:
101+
@handleNotSupported
102+
def getPowerConsumptionDomesticHotWaterUnit(self):
103+
return self.getProperty("heating.power.consumption.dhw")["properties"]["day"]["unit"]
104+
105+
@handleNotSupported
106+
def getPowerConsumptionDomesticHotWaterToday(self):
107+
return self.getProperty("heating.power.consumption.dhw")["properties"]["day"]["value"][0]
108+
109+
@handleNotSupported
110+
def getPowerConsumptionDomesticHotWaterThisMonth(self):
111+
return self.getProperty("heating.power.consumption.dhw")["properties"]["month"]["value"][0]
112+
113+
@handleNotSupported
114+
def getPowerConsumptionDomesticHotWaterThisYear(self):
115+
return self.getProperty("heating.power.consumption.dhw")["properties"]["year"]["value"][0]
116+
117+
# Gas consumption:
98118
@handleNotSupported
99119
def getGasConsumptionUnit(self):
100120
return self.getProperty("heating.gas.consumption.total")["properties"]["day"]["unit"]

PyViCare/PyViCareGazBoiler.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,13 @@ def getBoilerTargetTemperature(self):
103103
def getDomesticHotWaterChargingLevel(self):
104104
return self.getProperty("heating.dhw.charging.level")["properties"]["value"]["value"]
105105

106+
# Total power consumption:
106107
@handleNotSupported
107108
def getPowerConsumptionUnit(self):
108-
return self.getProperty("heating.power.consumption.total")["properties"]["day"]["unit"]
109+
try :
110+
return self.getProperty("heating.power.consumption.total")["properties"]["day"]["unit"]
111+
except KeyError:
112+
return self.getProperty("heating.power.consumption.total")["properties"]["unit"]["value"]
109113

110114
@handleNotSupported
111115
def getPowerConsumptionDays(self):
@@ -139,6 +143,7 @@ def getPowerConsumptionYears(self):
139143
def getPowerConsumptionThisYear(self):
140144
return self.getProperty("heating.power.consumption.total")["properties"]["year"]["value"][0]
141145

146+
# Flow
142147
@handleNotSupported
143148
def getVolumetricFlowReturn(self):
144149
return self.getProperty("heating.sensors.volumetricFlow.allengra")["properties"]["value"]["value"]
@@ -204,6 +209,26 @@ def getGasSummaryConsumptionDomesticHotWaterLastYear(self):
204209

205210
# Power consumption for Heating:
206211
@handleNotSupported
212+
def getPowerConsumptionHeatingUnit(self):
213+
try:
214+
return self.getProperty("heating.power.consumption.heating")["properties"]["day"]["unit"]
215+
except KeyError:
216+
return self.getProperty("heating.power.consumption.heating")["properties"]["unit"]["value"]
217+
218+
@handleNotSupported
219+
def getPowerConsumptionHeatingToday(self):
220+
return self.getProperty("heating.power.consumption.heating")["properties"]["day"]["value"][0]
221+
222+
@handleNotSupported
223+
def getPowerConsumptionHeatingThisMonth(self):
224+
return self.getProperty("heating.power.consumption.heating")["properties"]["month"]["value"][0]
225+
226+
@handleNotSupported
227+
def getPowerConsumptionHeatingThisYear(self):
228+
return self.getProperty("heating.power.consumption.heating")["properties"]["year"]["value"][0]
229+
230+
# Power summary consumption for Heating:
231+
@handleNotSupported
207232
def getPowerSummaryConsumptionHeatingUnit(self):
208233
return self.getProperty("heating.power.consumption.summary.heating")["properties"]["currentDay"]["unit"]
209234

@@ -233,6 +258,26 @@ def getPowerSummaryConsumptionHeatingLastYear(self):
233258

234259
# Power consumption for Domestic Hot Water:
235260
@handleNotSupported
261+
def getPowerConsumptionDomesticHotWaterUnit(self):
262+
try:
263+
return self.getProperty("heating.power.consumption.dhw")["properties"]["day"]["unit"]
264+
except KeyError:
265+
return self.getProperty("heating.power.consumption.dhw")["properties"]["unit"]["value"]
266+
267+
@handleNotSupported
268+
def getPowerConsumptionDomesticHotWaterToday(self):
269+
return self.getProperty("heating.power.consumption.dhw")["properties"]["day"]["value"][0]
270+
271+
@handleNotSupported
272+
def getPowerConsumptionDomesticHotWaterThisMonth(self):
273+
return self.getProperty("heating.power.consumption.dhw")["properties"]["month"]["value"][0]
274+
275+
@handleNotSupported
276+
def getPowerConsumptionDomesticHotWaterThisYear(self):
277+
return self.getProperty("heating.power.consumption.dhw")["properties"]["year"]["value"][0]
278+
279+
# Power summary consumption for Domestic Hot Water:
280+
@handleNotSupported
236281
def getPowerSummaryConsumptionDomesticHotWaterUnit(self):
237282
return self.getProperty("heating.power.consumption.summary.dhw")["properties"]["currentDay"]["unit"]
238283

PyViCare/PyViCareHeatPump.py

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,23 @@ def getBufferTopTemperature(self):
5353

5454
# Power consumption for Heating:
5555
@handleNotSupported
56+
def getPowerConsumptionHeatingUnit(self):
57+
return self.getProperty("heating.power.consumption.heating")["properties"]["day"]["unit"]
58+
59+
@handleNotSupported
60+
def getPowerConsumptionHeatingToday(self):
61+
return self.getProperty("heating.power.consumption.heating")["properties"]["day"]["value"][0]
62+
63+
@handleNotSupported
64+
def getPowerConsumptionHeatingThisMonth(self):
65+
return self.getProperty("heating.power.consumption.heating")["properties"]["month"]["value"][0]
66+
67+
@handleNotSupported
68+
def getPowerConsumptionHeatingThisYear(self):
69+
return self.getProperty("heating.power.consumption.heating")["properties"]["year"]["value"][0]
70+
71+
# Power summary consumption for Heating:
72+
@handleNotSupported
5673
def getPowerSummaryConsumptionHeatingUnit(self):
5774
return self.getProperty("heating.power.consumption.summary.heating")["properties"]["currentDay"]["unit"]
5875

@@ -97,6 +114,7 @@ def getPowerConsumptionCoolingThisMonth(self):
97114
def getPowerConsumptionCoolingThisYear(self):
98115
return self.getProperty("heating.power.consumption.cooling")["properties"]["year"]["value"][0]
99116

117+
# Total power consumption:
100118
@handleNotSupported
101119
def getPowerConsumptionUnit(self):
102120
return self.getProperty("heating.power.consumption.total")["properties"]["day"]["unit"]
@@ -105,11 +123,32 @@ def getPowerConsumptionUnit(self):
105123
def getPowerConsumptionToday(self):
106124
return self.getProperty("heating.power.consumption.total")["properties"]["day"]["value"][0]
107125

126+
@handleNotSupported
127+
def getPowerConsumptionThisMonth(self):
128+
return self.getProperty("heating.power.consumption.total")["properties"]["month"]["value"][0]
129+
130+
@handleNotSupported
131+
def getPowerConsumptionThisYear(self):
132+
return self.getProperty("heating.power.consumption.total")["properties"]["year"]["value"][0]
133+
134+
# Power consumption for Domestic Hot Water:
135+
@handleNotSupported
136+
def getPowerConsumptionDomesticHotWaterUnit(self):
137+
return self.getProperty("heating.power.consumption.dhw")["properties"]["day"]["unit"]
138+
108139
@handleNotSupported
109140
def getPowerConsumptionDomesticHotWaterToday(self):
110141
return self.getProperty("heating.power.consumption.dhw")["properties"]["day"]["value"][0]
111142

112-
# Power consumption for Domestic Hot Water:
143+
@handleNotSupported
144+
def getPowerConsumptionDomesticHotWaterThisMonth(self):
145+
return self.getProperty("heating.power.consumption.dhw")["properties"]["month"]["value"][0]
146+
147+
@handleNotSupported
148+
def getPowerConsumptionDomesticHotWaterThisYear(self):
149+
return self.getProperty("heating.power.consumption.dhw")["properties"]["year"]["value"][0]
150+
151+
# Power summary consumption for Domestic Hot Water:
113152
@handleNotSupported
114153
def getPowerSummaryConsumptionDomesticHotWaterUnit(self):
115154
return self.getProperty("heating.power.consumption.summary.dhw")["properties"]["currentDay"]["unit"]

0 commit comments

Comments
 (0)