Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
2d91323
Initial plan
Copilot Jan 25, 2026
3a88936
Add three new methods to PyViCareVentilationDevice: getExhaustTempera…
Copilot Jan 25, 2026
80404ee
Add tests for getExhaustTemperature, getExtractTemperature, and getHe…
Copilot Jan 25, 2026
8f36b32
Fix test data structure for ventilation.heating.recovery to match act…
Copilot Jan 25, 2026
5aebab7
Add getExhaustHumidity and getExtractHumidity methods with tests
Copilot Jan 25, 2026
6f4efcd
Merge pull request #1 from norschel/copilot/update-pyvicare-library
norschel Jan 25, 2026
e8fd2d6
Initial plan
Copilot Jan 26, 2026
bdec884
Move exhaust/extract sensors and heat recovery from Vitopure350 to Vi…
Copilot Jan 26, 2026
1679383
Merge pull request #2 from norschel/copilot/create-testfile-for-vitoa…
norschel Jan 26, 2026
b15b05d
Add newline at end of Vitopure350.json
CFenner Jan 26, 2026
fa18bad
Update VitoairFs300E.json
CFenner Jan 26, 2026
88a333e
Merge branch 'master' into topics/update-pyvicare-library
CFenner Feb 12, 2026
4593bd5
Up-to-date dump of vitoair fs 300e data
norschel Feb 15, 2026
55c4099
Merge branch 'master' into topics/update-pyvicare-library
CFenner Feb 15, 2026
2a1bc39
Sorted Vitoair FS300E dump file
norschel Feb 15, 2026
b69f788
fix: update expected values in VitoairFs300 tests for accuracy
norschel Feb 16, 2026
ab80039
feat: add additional ventilation features to missing properties test
norschel Mar 14, 2026
650039e
fix: enhance test for ventilation programs to check for 'active' entry
norschel Mar 14, 2026
e6fa9d4
fix: update expected value type in test_getVentilationPrograms to list
norschel Mar 14, 2026
3af397b
Merge remote-tracking branch 'origin/master' into topics/update-pyvic…
norschel Apr 3, 2026
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
22 changes: 21 additions & 1 deletion PyViCare/PyViCareVentilationDevice.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ def deactivateVentilationQuickmode(self, quickmode: str) -> None:
@handleNotSupported
def getVentilationPrograms(self):
available_programs = []
for program in ['basic', 'intensive', 'reduced', 'standard', 'standby', 'holidayAtHome', 'permanent']:
for program in ['active','basic', 'intensive', 'reduced', 'standard', 'standby', 'holidayAtHome', 'permanent']:
with suppress(PyViCareNotSupportedFeatureError):
if self.getProperty(f"ventilation.operating.programs.{program}") is not None:
available_programs.append(program)
Expand Down Expand Up @@ -230,10 +230,26 @@ def getOutsideHumidity(self) -> int:
def getSupplyTemperature(self) -> float:
return float(self.getProperty("ventilation.sensors.temperature.supply")["properties"]["value"]["value"])

@handleNotSupported
def getExhaustTemperature(self) -> float:
return float(self.getProperty("ventilation.sensors.temperature.exhaust")["properties"]["value"]["value"])

@handleNotSupported
def getExtractTemperature(self) -> float:
return float(self.getProperty("ventilation.sensors.temperature.extract")["properties"]["value"]["value"])

@handleNotSupported
def getSupplyHumidity(self) -> int:
return int(self.getProperty("ventilation.sensors.humidity.supply")["properties"]["value"]["value"])

@handleNotSupported
def getExhaustHumidity(self) -> int:
return int(self.getProperty("ventilation.sensors.humidity.exhaust")["properties"]["value"]["value"])

@handleNotSupported
def getExtractHumidity(self) -> int:
return int(self.getProperty("ventilation.sensors.humidity.extract")["properties"]["value"]["value"])

@handleNotSupported
def getVolatileOrganicCompounds(self) -> int:
return int(self.getProperty("ventilation.sensors.volatileOrganicCompounds")["properties"]["value"]["value"])
Expand Down Expand Up @@ -282,6 +298,10 @@ def getSupplyFanTargetSpeed(self) -> int:
def getHeatExchangerFrostProtectionActive(self) -> bool:
return "off" != str(self.getProperty("ventilation.heatExchanger.frostprotection")["properties"]["status"]["value"])

@handleNotSupported
def getHeatRecoveryEfficiency(self) -> float:
return float(self.getProperty("ventilation.heating.recovery")["properties"]["value"]["value"])

@handleNotSupported
def getSupplyVolumeFlow(self) -> int:
return int(self.getProperty("ventilation.volumeFlow.current.input")["properties"]["value"]["value"])
Expand Down
Loading