mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
added mds cavity wall insulation
This commit is contained in:
parent
f91cbec883
commit
8d6085be0f
4 changed files with 50 additions and 7 deletions
|
|
@ -150,6 +150,10 @@ class PropertyValuation:
|
|||
|
||||
]
|
||||
|
||||
# Additional sources:
|
||||
# https://superhomes.org.uk/wp-content/uploads/2024/05/The-Impact-of-Retrofit-on-Residential-Property-Market
|
||||
# -Values-7-rotated-1.pdf
|
||||
|
||||
EPC_BANDS = ["G", "F", "E", "D", "C", "B", "A"]
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@ class HeatingRecommender:
|
|||
|
||||
return output
|
||||
|
||||
def recommend_hhr_storage_heaters(self, phase, system_change, heating_controls_only):
|
||||
def recommend_hhr_storage_heaters(self, phase, system_change, heating_controls_only, _return=False):
|
||||
"""
|
||||
We will recommend upgrading to a high heat retention storage system, if the current system is not already
|
||||
high heat retention storage
|
||||
|
|
@ -321,6 +321,8 @@ class HeatingRecommender:
|
|||
:param system_change: Indicates if we are recommending a different type of heating system, compared to the
|
||||
current system
|
||||
:param heating_controls_only: Indicates if we should include a recommendation for just heating controls
|
||||
:param _return: Indicates if we should return the recommendations, rather than appending them to the
|
||||
recommendations list
|
||||
:return:
|
||||
"""
|
||||
|
||||
|
|
@ -374,6 +376,8 @@ class HeatingRecommender:
|
|||
heating_controls_only=heating_controls_only,
|
||||
system_change=system_change
|
||||
)
|
||||
if _return:
|
||||
return recommendations
|
||||
|
||||
self.heating_recommendations.extend(recommendations)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ from recommendations.WindowsRecommendations import WindowsRecommendations
|
|||
from recommendations.HeatingRecommender import HeatingRecommender
|
||||
from recommendations.HotwaterRecommendations import HotwaterRecommendations
|
||||
from recommendations.SecondaryHeating import SecondaryHeating
|
||||
from recommendations.Recommendations import Recommendations
|
||||
|
||||
|
||||
class Mds:
|
||||
|
|
@ -57,6 +58,8 @@ class Mds:
|
|||
if any([m in not_implemented_measures for m in measure_config_list]):
|
||||
raise NotImplementedError("Not implemented measure in the property - implement me")
|
||||
|
||||
mds_recommendations = []
|
||||
|
||||
if "external_wall_insulation" in measure_config_list:
|
||||
raise Exception("check me out")
|
||||
self.wall_recommender.recommend(phase=0)
|
||||
|
|
@ -65,10 +68,9 @@ class Mds:
|
|||
# TODO: Insert the recommendation identifier into this recommendation
|
||||
|
||||
if "cavity_wall_insulation" in measure_config_list:
|
||||
raise Exception("check me out 2")
|
||||
# TODO: get cwi
|
||||
self.wall_recommender.recommend(phase=0)
|
||||
cwi_recommendations = self.wall_recommender.recommendations
|
||||
recs = self.wall_recommender.mds_recommend_cavity_wall_insulation(phase=0)
|
||||
recs = self.insert_recommendation_id(recs, measures, "cavity_wall_insulation")
|
||||
mds_recommendations.append(recs)
|
||||
|
||||
if "loft_insulation" in measure_config_list:
|
||||
raise Exception("check me out 3")
|
||||
|
|
@ -91,8 +93,11 @@ class Mds:
|
|||
self.heating_recommender.recommend(phase=0)
|
||||
|
||||
if "electric_storage_heaters" in measure_config_list:
|
||||
raise Exception("check me out 8")
|
||||
self.heating_recommender.recommend(phase=0)
|
||||
recs = self.heating_recommender.recommend_hhr_storage_heaters(
|
||||
phase=0, system_change=True, heating_controls_only=False, _return=True
|
||||
)
|
||||
recs = self.insert_recommendation_id(recs, measures)
|
||||
mds_recommendations.append(recs)
|
||||
|
||||
if "low_energy_lighting" in measure_config_list:
|
||||
raise Exception("check me out 9")
|
||||
|
|
@ -137,3 +142,16 @@ class Mds:
|
|||
if "room_in_roof_insulation" in measure_config_list:
|
||||
raise Exception("check me out 19")
|
||||
self.roof_recommender.recommend(phase=0)
|
||||
|
||||
property_representative_recommendations = Recommendations.create_representative_recommendations(
|
||||
mds_recommendations, non_invasive_recommendations=[]
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def insert_recommendation_id(recommendations, measures, measure_name):
|
||||
# Insert the recommendation identifier into this recommendation
|
||||
measure_config = [m for m in measures if measure_name in m][0]
|
||||
for r in recommendations:
|
||||
r["recommendation_id"] = list(measure_config.values())[0]
|
||||
|
||||
return recommendations
|
||||
|
|
|
|||
|
|
@ -103,6 +103,23 @@ class WallRecommendations(Definitions):
|
|||
|
||||
return True
|
||||
|
||||
def mds_recommend_cavity_wall_insulation(self, phase=None):
|
||||
# Function specifically for cavity wall insulation, for usage in the mds report
|
||||
self.recommendations = []
|
||||
insulation_thickness = self.property.walls["insulation_thickness"]
|
||||
|
||||
u_value = get_wall_u_value(
|
||||
clean_description=self.property.walls["clean_description"],
|
||||
age_band=self.property.age_band,
|
||||
is_granite_or_whinstone=self.property.walls["is_granite_or_whinstone"],
|
||||
is_sandstone_or_limestone=self.property.walls["is_sandstone_or_limestone"],
|
||||
)
|
||||
|
||||
# Test filling cavity
|
||||
self.find_cavity_insulation(u_value, insulation_thickness, phase)
|
||||
|
||||
return self.recommendations
|
||||
|
||||
def recommend(self, phase=0):
|
||||
# if building built after 1990 + we're able to identify U-value +
|
||||
# U-value less than 0.18 and if in or close to a conversation area,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue