Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(deprecation): remove usage of deprecated data points #381

Merged
merged 5 commits into from
Sep 9, 2024
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
7 changes: 3 additions & 4 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 Expand Up @@ -126,8 +126,7 @@ def setActiveVentilationMode(self, mode):
@handleNotSupported
def getAvailableVentilationPrograms(self):
available_programs = []
for program in ['basic', 'intensive', 'reduced', 'standard', 'standby', 'comfort', 'eco', 'forcedLevelFour',
'holiday', 'holidayAtHome', 'levelFour', 'levelOne', 'levelThree', 'levelTwo', 'permanent', 'silent']:
for program in ['basic', 'intensive', 'reduced', 'standard', 'standby', 'holidayAtHome', 'permanent']:
with suppress(PyViCareNotSupportedFeatureError):
if self.service.getProperty(f"ventilation.operating.programs.{program}") is not None:
available_programs.append(program)
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
3 changes: 1 addition & 2 deletions PyViCare/PyViCareVentilationDevice.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ def setActiveMode(self, mode):
@handleNotSupported
def getAvailablePrograms(self):
available_programs = []
for program in ['basic', 'intensive', 'reduced', 'standard', 'standby', 'comfort', 'eco', 'forcedLevelFour',
'holiday', 'holidayAtHome', 'levelFour', 'levelOne', 'levelThree', 'levelTwo', 'permanent', 'silent']:
for program in ['basic', 'intensive', 'reduced', 'standard', 'standby', 'holidayAtHome', 'permanent']:
with suppress(PyViCareNotSupportedFeatureError):
if self.service.getProperty(f"ventilation.operating.programs.{program}") is not None:
available_programs.append(program)
Expand Down
22 changes: 17 additions & 5 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,12 +57,18 @@ 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',

# gateway
'gateway.devices', # not used
'gateway.devices', # not used
]

all_features = self.read_all_features()
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
2 changes: 1 addition & 1 deletion tests/test_VitoairFs300E.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def test_getAvailableModes(self):
self.assertListEqual(self.device.getAvailableModes(), expected_modes)

def test_getAvailablePrograms(self):
expected_programs = ['standby', 'forcedLevelFour', 'levelFour', 'levelOne', 'levelThree', 'levelTwo', 'silent']
expected_programs = ['standby']
self.assertListEqual(self.device.getAvailablePrograms(), expected_programs)

def test_getSchedule(self):
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)
Loading