mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Adding logic for a heat pump when the property is large enough and handling an edge case for dual heating
This commit is contained in:
parent
53e0a651c9
commit
f687988180
5 changed files with 28 additions and 3 deletions
|
|
@ -1233,6 +1233,13 @@ class Property:
|
|||
if "air_source_heat_pump" not in measures:
|
||||
return False
|
||||
|
||||
# If we have a house over a floor area threshold, we recommend an ASHP
|
||||
if (
|
||||
self.data["property-type"] in ["House", "Bungalow"] and
|
||||
self.floor_area > assumptions.ASHP_FLOOR_AREA_THRESHOLD
|
||||
):
|
||||
return True
|
||||
|
||||
suitable_house = self.data["property-type"] == "House" and self.data["built-form"] in [
|
||||
"Detached", "Semi-Detached", "End-Terrace",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -65,3 +65,6 @@ DESCRIPTIONS_TO_FUEL_TYPES = {
|
|||
measures_needing_ventilation = [
|
||||
"internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"
|
||||
]
|
||||
|
||||
# If we have a property beyond this size, we assume it's likely large enough to have an ASHP
|
||||
ASHP_FLOOR_AREA_THRESHOLD = 120 # m2
|
||||
|
|
|
|||
|
|
@ -871,10 +871,10 @@ class Costs:
|
|||
|
||||
if needs_cylinder:
|
||||
# 1000 is the cost of a new hot water cylinder
|
||||
total_cost = 1200 * number_heated_rooms + 1000
|
||||
total_cost = 1300 * number_heated_rooms + 1000
|
||||
else:
|
||||
# 500 is the cost of a dual immersion heater - a rough estimate
|
||||
total_cost = 1200 * number_heated_rooms + 500
|
||||
total_cost = 1300 * number_heated_rooms + 500
|
||||
subtotal_before_vat = total_cost / (1 + self.VAT_RATE)
|
||||
vat = total_cost - subtotal_before_vat
|
||||
|
||||
|
|
|
|||
|
|
@ -61,6 +61,19 @@ class HeatingRecommender:
|
|||
'Electric underfloor heating, electric storage heaters': {
|
||||
# For this, we would recommend a heat pump
|
||||
"dual": None
|
||||
},
|
||||
"Room heaters, electric, boiler and radiators, mains gas": {
|
||||
"hhr": {
|
||||
"mainheating_description": "Electric storage heaters, radiators",
|
||||
"recommendation_description": "Install high heat retention electric storage heaters.",
|
||||
"controls_prefix": ""
|
||||
},
|
||||
"boiler": {
|
||||
"mainheating_description": "Boiler and radiators, mains gas",
|
||||
"recommendation_description": "Upgrade to a new condensing boiler.",
|
||||
"controls_suffix": ""
|
||||
},
|
||||
"dual": None
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -932,6 +945,7 @@ class HeatingRecommender:
|
|||
return recommendations
|
||||
|
||||
self.heating_recommendations.extend(recommendations)
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def estimate_boiler_size(property_type, built_form, floor_area, floor_height, num_heated_rooms):
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ body = {
|
|||
"ashp_cop": 3.5,
|
||||
# This is new - when optimising, we drop scores by a few points to account for SAP 10
|
||||
"simulate_sap_10": True,
|
||||
"exclusions": ["external_wall_insulation"]
|
||||
"exclusions": ["external_wall_insulation"],
|
||||
"required_measures": ["cavity_wall_insulation", "loft_insulation"]
|
||||
}
|
||||
print(body)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue