diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 5d68ebcf..901add15 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -604,7 +604,8 @@ class HeatingRecommender: # We check the existing heating system and controls if ( self.property.main_heating["has_electric_storage_heaters"] and - self.property.main_heating_controls["charging_system"] in ["automatic charge control"] + self.property.main_heating_controls["charging_system"] in + ["automatic charge control", "manual charge control"] ): description += (" The current electric heaters may be retrofit with high heat retention storage controls" " however this is dependent on the existing system and may not be possible.") diff --git a/recommendations/tests/test_data/heating_recommendations_data.py b/recommendations/tests/test_data/heating_recommendations_data.py index eec7703e..5b2b4aa0 100644 --- a/recommendations/tests/test_data/heating_recommendations_data.py +++ b/recommendations/tests/test_data/heating_recommendations_data.py @@ -626,6 +626,57 @@ testing_examples = [ ], "notes": "This has a form of assumed electric heating and has a mains connection so we recommend HHR, boiler" "upgrade and ASHP" + }, + { + "epc": { + 'lmk-key': '594183609042011021816283787499688', 'address1': '96, Richmond Road', 'address2': None, + 'address3': None, 'postcode': 'DE23 8PX', 'building-reference-number': 54104868, + 'current-energy-rating': 'F', 'potential-energy-rating': 'F', 'current-energy-efficiency': 30, + 'potential-energy-efficiency': 31, 'property-type': 'House', 'built-form': 'Mid-Terrace', + 'inspection-date': '2011-02-18', 'local-authority': 'E06000015', 'constituency': 'E14000663', + 'county': None, + 'lodgement-date': '2011-02-18', 'transaction-type': 'rental (social)', 'environment-impact-current': 25, + 'environment-impact-potential': 26, 'energy-consumption-current': 709, 'energy-consumption-potential': 693, + 'co2-emissions-current': 8.7, 'co2-emiss-curr-per-floor-area': 107, 'co2-emissions-potential': 8.5, + 'lighting-cost-current': 56, 'lighting-cost-potential': 56, 'heating-cost-current': 1118, + 'heating-cost-potential': 1089, 'hot-water-cost-current': 164, 'hot-water-cost-potential': 164, + 'total-floor-area': 80.98, 'energy-tariff': 'dual', 'mains-gas-flag': 'Y', 'floor-level': 'NO DATA!', + 'flat-top-storey': None, 'flat-storey-count': None, 'main-heating-controls': 2401.0, + 'multi-glaze-proportion': 100.0, 'glazed-type': 'double glazing installed before 2002', + 'glazed-area': 'Normal', 'extension-count': 1, 'number-habitable-rooms': 4, 'number-heated-rooms': 4, + 'low-energy-lighting': 88, 'number-open-fireplaces': 0, + 'hotwater-description': 'Electric immersion, off-peak', 'hot-water-energy-eff': 'Poor', + 'hot-water-env-eff': 'Poor', 'floor-description': 'Suspended, no insulation (assumed)', + 'floor-energy-eff': None, 'windows-description': 'Fully double glazed', 'windows-energy-eff': 'Average', + 'windows-env-eff': 'Average', 'walls-description': 'Solid brick, as built, no insulation (assumed)', + 'walls-energy-eff': 'Very Poor', 'walls-env-eff': 'Very Poor', + 'secondheat-description': 'Room heaters, electric', 'roof-description': 'Pitched, 150 mm loft insulation', + 'roof-energy-eff': 'Good', 'roof-env-eff': 'Good', 'mainheat-description': 'Electric storage heaters', + 'mainheat-energy-eff': 'Poor', 'mainheat-env-eff': 'Very Poor', + 'mainheatcont-description': 'Manual charge control', 'mainheatc-energy-eff': 'Poor', + 'mainheatc-env-eff': 'Poor', 'lighting-description': 'Low energy lighting in 88% of fixed outlets', + 'lighting-energy-eff': 'Very Good', 'lighting-env-eff': 'Very Good', + 'main-fuel': 'electricity - this is for backwards compatibility only and should not be used', + 'wind-turbine-count': 0, 'heat-loss-corridor': 'NO DATA!', 'unheated-corridor-length': None, + 'floor-height': 2.72, 'photo-supply': 0.0, 'solar-water-heating-flag': 'N', + 'mechanical-ventilation': 'natural', 'address': '96, Richmond Road', 'local-authority-label': 'Derby', + 'constituency-label': 'Derby South', 'posttown': 'DERBY', + 'construction-age-band': 'England and Wales: 1900-1929', + 'lodgement-datetime': '2011-02-18 16:28:37', 'tenure': 'rental (social)', + 'fixed-lighting-outlets-count': None, 'low-energy-fixed-light-count': None, 'uprn': 100030352255, + 'uprn-source': 'Address Matched', 'sheating-energy-eff': None, 'sheating-env-eff': None + }, + "heating_recommendation_descriptions": [ + 'Upgrade to a new condensing boiler Upgrade heating controls to Room thermostat, programmer and TRVs', + 'Upgrade to a new condensing boiler Upgrade heating controls to Smart Thermostats, room sensors and smart ' + 'radiator valves (time & temperature zone control)', + 'Install high heat retention electric storage heaters. The current electric heaters may be retrofit with ' + 'high heat retention storage controls however this is dependent on the existing system and may not be ' + 'possible. Upgrade heating controls to High Heat Retention Storage Heater Controls' + ], + "heating_controls_recommendation_descriptions": [], + "notes": "This property already has storage heaters with manual charge control. The home is mid terrace so" + "the ashp is not suitable" } ] @@ -675,7 +726,8 @@ completed_descriptions = [ "Boiler and radiators, oil", "Boiler and radiators, mains gas", "Room heaters, mains gas", - "No system present: electric heaters assumed" + "No system present: electric heaters assumed", + "Room heaters, electric", ] portfolio = pd.read_excel( @@ -686,6 +738,6 @@ portfolio = portfolio[~portfolio["mainheat-description"].isin(completed_descript portfolio["mainheat-description"].value_counts() eg = portfolio[ - (portfolio["mainheat-description"] == "Portable electric heaters assumed for most rooms, Room heaters, electric") + (portfolio["mainheat-description"] == "Electric storage heaters") ].sample(1) eg = eg.squeeze().to_dict()