diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 76eaba4f..63218163 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -1,5 +1,5 @@ from recommendations.Costs import Costs -from recommendations.recommendation_utils import check_simulation_difference +from recommendations.recommendation_utils import check_simulation_difference, override_costs from backend.Property import Property from etl.epc_clean.epc_attributes.MainheatControlAttributes import MainheatControlAttributes @@ -159,20 +159,30 @@ class HeatingControlRecommender: has_room_thermostat = not needs_room_thermostat has_trvs = not needs_trvs + cost_result = self.costs.roomstat_programmer_trvs( + number_heated_rooms=int(self.property.data["number-heated-rooms"]), + has_programmer=has_programmer, + has_room_thermostat=has_room_thermostat, + has_trvs=has_trvs + ) + + description = "upgrade heating controls to Room thermostat, programmer and TRVs" + + is_override = "heating_control" in self.property.override + if is_override: + cost_result = override_costs(cost_result) + description = "Heating controls have already been upgraded, no further action needed." + self.recommendation.append( { "type": "heating_control", "parts": [], - "description": "upgrade heating controls to Room thermostat, programmer and TRVs", - **self.costs.roomstat_programmer_trvs( - number_heated_rooms=int(self.property.data["number-heated-rooms"]), - has_programmer=has_programmer, - has_room_thermostat=has_room_thermostat, - has_trvs=has_trvs - ), + "description": description, + **cost_result, "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, "simulation_config": simulation_config } ) @@ -211,18 +221,28 @@ class HeatingControlRecommender: if self.property.data["mainheatc-energy-eff"] in ["Poor", "Very Poor", "Average", "Good"]: simulation_config["mainheatc_energy_eff_ending"] = "Very Good" + cost_result = self.costs.time_and_temperature_zone_control( + number_heated_rooms=int(self.property.data["number-heated-rooms"]) + ) + + description = ("Upgrade heating controls to Smart Thermostats, room sensors and smart radiator valves (time & " + "temperature zone control)") + + is_override = "heating_control" in self.property.override + if is_override: + cost_result = override_costs(cost_result) + description = "Heating controls have already been upgraded, no further action needed." + self.recommendation.append( { "type": "heating_control", "parts": [], - "description": "Upgrade heating controls to Smart Thermostats, room sensors and smart radiator valves " - "(time & temperature zone control)", - **self.costs.time_and_temperature_zone_control( - number_heated_rooms=int(self.property.data["number-heated-rooms"]) - ), + "description": description, + **cost_result, "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, "simulation_config": simulation_config } )