diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index d48cf6ed..d910ddfe 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -131,6 +131,10 @@ class Recommendations: if self.ventilation_recomender.recommendation: property_recommendations.append(self.ventilation_recomender.recommendation) + if "trickle_vents" in measures: + # This is a recommendatin that typically comes from an energy assessment + property_recommendations.append(self.ventilation_recomender.recommend_trickle_vents()) + if "floor_insulation" in measures: self.floor_recommender.recommend(phase=phase, measures=measures) if self.floor_recommender.recommendations: diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index 1120654a..31119168 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -81,3 +81,42 @@ class VentilationRecommendations(Definitions): "labour_days": labour_days # Assume 8 hour day } ] + + def recommend_trickle_vents(self): + """ + This is not something that we can identify completely non-invasively, however a recommendation which may come + about as a result of an energy assessment is the installation of trickle vents. This function handles that + """ + + trickle_vents_recommendation_config = [ + r for r in self.property.non_invasive_recommendations if r["type"] == "trickle_vents" + ][0] + + description = ( + "Install trickle vents to windows without them" if + not trickle_vents_recommendation_config.get("description") + else trickle_vents_recommendation_config["description"] + ) + + # We recommend installing two mechanical ventilation systems + self.recommendation = [ + { + "phase": None, + "parts": [], + "type": "trickle_vents", + "description": description, + "starting_u_value": None, + "new_u_value": None, + "already_installed": False, + "sap_points": trickle_vents_recommendation_config["sap_points"], + "heat_demand": 0, + "kwh_savings": 0, + "co2_equivalent_savings": 0, + "energy_cost_savings": 0, + "total": trickle_vents_recommendation_config["cost"], + # We use a very simple and rough estimate of 4 hours per unit + "labour_hours": trickle_vents_recommendation_config.get("labour_hours", 8), + "labour_days": trickle_vents_recommendation_config.get("labour_days", 1), # Assume 8 hour day + "survey": True + } + ]