87 lines
2.3 KiB
Python
87 lines
2.3 KiB
Python
"""
|
|
ThermalControl module
|
|
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
Copyright © 2022 Project Author Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
|
|
"""
|
|
from typing import Union
|
|
from city_model_structure.attributes.schedule import Schedule
|
|
|
|
|
|
class ThermalControl:
|
|
"""
|
|
ThermalControl class
|
|
"""
|
|
def __init__(self):
|
|
self._heating_set_point = None
|
|
self._cooling_set_point = None
|
|
self._hvac_availability = None
|
|
self._heating_set_back = None
|
|
|
|
@property
|
|
def heating_set_point(self) -> Union[None, Schedule]:
|
|
"""
|
|
Get heating set point defined for a thermal zone in Celsius
|
|
:return: None or Schedule
|
|
"""
|
|
return self._heating_set_point
|
|
|
|
@heating_set_point.setter
|
|
def heating_set_point(self, value):
|
|
"""
|
|
Set heating set point defined for a thermal zone in Celsius
|
|
:param value: Schedule
|
|
"""
|
|
self._heating_set_point = value
|
|
|
|
@property
|
|
def heating_set_back(self) -> Union[None, float]:
|
|
"""
|
|
Get heating set back defined for a thermal zone in Celsius
|
|
Heating set back is the only parameter which is not a schedule as it is either one value or it is implicit in the
|
|
set point schedule
|
|
:return: None or float
|
|
"""
|
|
return self._heating_set_back
|
|
|
|
@heating_set_back.setter
|
|
def heating_set_back(self, value):
|
|
"""
|
|
Set heating set back defined for a thermal zone in Celsius
|
|
:param value: float
|
|
"""
|
|
if value is not None:
|
|
self._heating_set_back = float(value)
|
|
|
|
@property
|
|
def cooling_set_point(self) -> Union[None, Schedule]:
|
|
"""
|
|
Get cooling set point defined for a thermal zone in Celsius
|
|
:return: None or Schedule
|
|
"""
|
|
return self._cooling_set_point
|
|
|
|
@cooling_set_point.setter
|
|
def cooling_set_point(self, value):
|
|
"""
|
|
Set cooling set point defined for a thermal zone in Celsius
|
|
:param value: Schedule
|
|
"""
|
|
self._cooling_set_point = value
|
|
|
|
@property
|
|
def hvac_availability(self) -> Union[None, Schedule]:
|
|
"""
|
|
Get the availability of the conditioning system defined for a thermal zone
|
|
:return: None or Schedule
|
|
"""
|
|
return self._hvac_availability
|
|
|
|
@hvac_availability.setter
|
|
def hvac_availability(self, value):
|
|
"""
|
|
Set the availability of the conditioning system defined for a thermal zone
|
|
:param value: Schedule
|
|
"""
|
|
self._hvac_availability = value
|
|
|