Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions PyViCare/PyViCareHeatPump.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ def getAvailableCompressors(self):

@handleNotSupported
def getBufferMainTemperature(self):
return self.service.getProperty("heating.buffer.sensors.temperature.main")["properties"]['value']['value']
return self.service.getProperty("heating.bufferCylinder.sensors.temperature.main")["properties"]['value']['value']

@handleNotSupported
def getBufferTopTemperature(self):
return self.service.getProperty("heating.buffer.sensors.temperature.top")["properties"]['value']['value']
return self.service.getProperty("heating.bufferCylinder.sensors.temperature.top")["properties"]['value']['value']

# Power consumption for Heating:
@handleNotSupported
Expand Down
8 changes: 4 additions & 4 deletions PyViCare/PyViCareHeatingDevice.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,13 @@ def getDomesticHotWaterConfiguredTemperature(self):

@handleNotSupported
def getHotWaterStorageTemperatureTop(self):
return self.service.getProperty("heating.dhw.sensors.temperature.hotWaterStorage.top")["properties"]["value"][
return self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder.top")["properties"]["value"][
"value"]

@handleNotSupported
def getHotWaterStorageTemperatureBottom(self):
return \
self.service.getProperty("heating.dhw.sensors.temperature.hotWaterStorage.bottom")["properties"]["value"][
self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder.bottom")["properties"]["value"][
"value"]

@handleNotSupported
Expand Down Expand Up @@ -115,7 +115,7 @@ def getDomesticHotWaterDesiredTemperature(self):

@handleNotSupported
def getDomesticHotWaterStorageTemperature(self):
return self.service.getProperty("heating.dhw.sensors.temperature.hotWaterStorage")["properties"]["value"][
return self.service.getProperty("heating.dhw.sensors.temperature.dhwCylinder")["properties"]["value"][
"value"]

@handleNotSupported
Expand Down Expand Up @@ -592,7 +592,7 @@ def getPrograms(self):
'comfortHeating', 'dhwPrecedence', 'eco', 'external', 'fixed', 'forcedLastFromSchedule',
'frostprotection', 'holiday', 'holidayAtHome', 'manual', 'normal', 'normalCooling',
'normalCoolingEnergySaving', 'normalEnergySaving', 'normalHeating', 'reduced', 'reducedCooling',
'reducedCoolingEnergySaving', 'reducedEnergySaving', 'reducedHeating', 'standby', 'summerEco']:
'reducedCoolingEnergySaving', 'reducedEnergySaving', 'reducedHeating', 'standby']:
with suppress(PyViCareNotSupportedFeatureError):
if self.service.getProperty(
f"heating.circuits.{self.circuit}.operating.programs.{program}") is not None:
Expand Down
20 changes: 16 additions & 4 deletions tests/test_TestForMissingProperties.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
import re
import unittest
from os import listdir
Expand Down Expand Up @@ -58,6 +57,12 @@ def test_missingProperties(self):
'heating.circuits.0.name', # TODO: to analyse, from Vitodens 100W
'heating.circuits.0.zone.mode', # TODO: to analyse, from Vitocal 250A

'heating.buffer.sensors.temperature.main', # deprecated, removed 2024-09-15 FIXME: remove once data point is removed and test data is updated
'heating.buffer.sensors.temperature.top', # deprecated, removed 2024-09-15 FIXME: remove once data point is removed and test data is updated
'heating.dhw.sensors.temperature.hotWaterStorage', # deprecated, removed 2024-09-15 FIXME: remove once data point is removed and test data is updated
'heating.dhw.sensors.temperature.hotWaterStorage.top', # deprecated, removed 2024-09-15 FIXME: remove once data point is removed and test data is updated
'heating.dhw.sensors.temperature.hotWaterStorage.bottom', # deprecated, removed 2024-09-15 FIXME: remove once data point is removed and test data is updated

# Ignored for now as both are not documented in https://documentation.viessmann.com/static/iot/data-points
'device.messages.errors.raw',
'device.productIdentification',
Expand All @@ -77,13 +82,20 @@ def test_missingProperties(self):
if not found and len(foundInFiles) > 0 and feature not in ignore:
missing_features[feature] = foundInFiles

has_missing_features = len(missing_features) > 0
self.assertFalse(has_missing_features, json.dumps(missing_features, sort_keys=True, indent=2))
self.assertDictEqual({}, missing_features)

def test_unverifiedProperties(self):
# with this test we want to verify if we access
# properties which are not in any test response data

ignore = [
'heating.dhw.sensors.temperature.dhwCylinder', #FIXME: remove once test data is updated
'heating.dhw.sensors.temperature.dhwCylinder.top', #FIXME: remove once test data is updated
'heating.dhw.sensors.temperature.dhwCylinder.bottom', #FIXME: remove once test data is updated
'heating.bufferCylinder.sensors.temperature.main', #FIXME: remove once test data is updated
'heating.bufferCylinder.sensors.temperature.top', #FIXME: remove once test data is updated
]

all_features = self.read_all_features()
all_python_files = self.read_all_python_code()

Expand All @@ -98,7 +110,7 @@ def test_unverifiedProperties(self):
feature_name = re.sub(r'\.{(program|active_program)}', '', feature_name)
used_features.append(feature_name)

self.assertSetEqual(set([]), set(used_features) - set(all_features))
self.assertSetEqual(set([]), set(used_features) - set(all_features) - set(ignore))

def find_feature_in_code(self, all_python_files, feature):
search_string = f'[\'"]{feature}[\'"]'.replace(".", r"\.")
Expand Down
3 changes: 2 additions & 1 deletion tests/test_Vitocal250A.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def test_getSupplyTemperaturePrimaryCircuit(self):
self.device.getSupplyTemperaturePrimaryCircuit(), 5.9)

def test_getPrograms(self):
expected_programs = ['comfortCooling', 'comfortCoolingEnergySaving', 'comfortEnergySaving', 'comfortHeating', 'fixed', 'forcedLastFromSchedule', 'frostprotection', 'normalCooling', 'normalCoolingEnergySaving', 'normalEnergySaving', 'normalHeating', 'reducedCooling', 'reducedCoolingEnergySaving', 'reducedEnergySaving', 'reducedHeating', 'standby', 'summerEco']
expected_programs = ['comfortCooling', 'comfortCoolingEnergySaving', 'comfortEnergySaving', 'comfortHeating', 'fixed', 'forcedLastFromSchedule', 'frostprotection', 'normalCooling', 'normalCoolingEnergySaving', 'normalEnergySaving', 'normalHeating', 'reducedCooling', 'reducedCoolingEnergySaving', 'reducedEnergySaving', 'reducedHeating', 'standby']
self.assertListEqual(
self.device.circuits[0].getPrograms(), expected_programs)

Expand Down Expand Up @@ -85,6 +85,7 @@ def test_getPowerSummaryConsumptionHeatingUnit(self):
self.assertEqual(
self.device.getPowerSummaryConsumptionHeatingUnit(), "kilowattHour")

@unittest.skip("dump is not up to date, underlying data point was rernamed")
def test_getBufferMainTemperature(self):
self.assertAlmostEqual(
self.device.getBufferMainTemperature(), 31.9)
Expand Down
3 changes: 3 additions & 0 deletions tests/test_Vitocaldens222F.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@ def test_getAvailableCompressors(self):
def test_getActive(self):
self.assertEqual(self.device.burners[0].getActive(), False)

@unittest.skip("dump is not up to date, underlying data point was rernamed")
def test_getBufferTopTemperature(self):
self.assertEqual(
self.device.getBufferTopTemperature(), 36)

@unittest.skip("dump is not up to date, underlying data point was rernamed")
def test_getBufferMainTemperature(self):
self.assertEqual(
self.device.getBufferMainTemperature(), 36)
Expand Down Expand Up @@ -71,6 +73,7 @@ def test_getOutsideTemperature(self):
self.assertEqual(
self.device.getOutsideTemperature(), 15.3)

@unittest.skip("dump is not up to date, underlying data point was rernamed")
def test_getHotWaterStorageTemperatureTop(self):
self.assertEqual(
self.device.getHotWaterStorageTemperatureTop(), 50.9)
1 change: 1 addition & 0 deletions tests/test_VitolaUniferral.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,6 @@ def test_getBurnerHours(self):
def test_getBoilerTemperature(self):
self.assertEqual(self.device.getBoilerTemperature(), 26.6)

@unittest.skip("dump is not up to date, underlying data point was rernamed")
def test_getDomesticHotWaterStorageTemperature(self):
self.assertEqual(self.device.getDomesticHotWaterStorageTemperature(), 56.9)