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
}
)