from datatypes.epc.main_heating import EpcHeatingSystems from datatypes.epc.efficiency import EpcEfficiency from datatypes.epc.fuel import EpcFuel from datatypes.epc.heating_controls import EpcHeatingControls from datatypes.epc.hotwater import EpcHotWaterSystems heating_map = { # 0 ('Boilers', 'A', 'ElectricityNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 1 ('Boilers', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 2 ('Boilers', 'A', 'ElectricityNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 3 ('Boilers', 'A', 'LPGNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_and_radiators_lpg, EpcEfficiency.POOR, EpcFuel.lpg_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 4 ('Boilers', 'A', 'MainsGasNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.VERY_GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 5 ('Boilers', 'A', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.VERY_GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 6 ('Boilers', 'A', 'MainsGasNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.VERY_GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 7 ('Boilers', 'B', 'MainsGasNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 8 ('Boilers', 'B', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 9 ('Boilers', 'B', 'MainsGasNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 10 ('Boilers', 'C', 'ElectricityNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 11 ('Boilers', 'C', 'ElectricityNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 12 ('Boilers', 'C', 'ElectricityNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 13 ('Boilers', 'C', 'LPGNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_and_radiators_lpg, EpcEfficiency.POOR, EpcFuel.lpg_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 14 ('Boilers', 'C', 'LPGNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_and_radiators_lpg, EpcEfficiency.POOR, EpcFuel.lpg_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 15 ('Boilers', 'C', 'MainsGasNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 16 ('Boilers', 'C', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 17 ('Boilers', 'C', 'MainsGasNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), ('Boilers', 'C', 'OilNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 19 ('Boilers', 'C', 'OilNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 20 ('Boilers', 'C', 'OilNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 21 ('Boilers', 'D', 'MainsGasNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 22 ('Boilers', 'D', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 23 ('Boilers', 'D', 'MainsGasNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 24 ('Boilers', 'E', 'ElectricityNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 25 ('Boilers', 'E', 'MainsGasNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 26 ('Boilers', 'E', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 27 ('Boilers', 'E', 'MainsGasNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 28 ('Boilers', 'E', 'OilNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 29 ('Boilers', 'E', 'OilNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 30 ('Boilers', 'F', 'MainsGasNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 31 ('Boilers', 'F', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 32 ('Boilers', 'F', 'MainsGasNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 33 ('Boilers', 'G', 'MainsGasNotCommunity', 'Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 34 ('Boilers', 'G', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 35 ('Boilers', 'G', 'MainsGasNotCommunity', 'Top Spec'): ( EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.AVERAGE, EpcFuel.mains_gas_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 36 ('Electric underfloor', 'A', 'ElectricityNotCommunity', 'Optimal'): ( EpcHeatingSystems.electric_underfloor_heating, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), # 37 ('Electric underfloor', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.electric_underfloor_heating, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), # 38 ('Electric underfloor', 'A', 'ElectricityNotCommunity', 'Top Spec'): ( EpcHeatingSystems.electric_underfloor_heating, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), # 39 ('Heat pumps (warm air)', 'A', 'ElectricityNotCommunity', 'Optimal'): ( EpcHeatingSystems.air_to_air_ashp, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 40 ('Heat pumps (warm air)', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.air_to_air_ashp, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 41 ('Heat pumps (wet)', 'A', 'ElectricityNotCommunity', 'Optimal'): ( EpcHeatingSystems.ashp_radiators_electric, EpcEfficiency.GOOD, EpcFuel.electricity_not_community, EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 42 ('Heat pumps (wet)', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.ashp_radiators_electric, EpcEfficiency.GOOD, EpcFuel.electricity_not_community, EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 43 ('Heat pumps (wet)', 'A', 'ElectricityNotCommunity', 'Top Spec'): ( EpcHeatingSystems.ashp_radiators_electric, EpcEfficiency.GOOD, EpcFuel.electricity_not_community, EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD, EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE ), # 44 ('Room heaters', 'A', 'ElectricityNotCommunity', 'Optimal'): ( EpcHeatingSystems.room_heaters_electric, EpcEfficiency.POOR, EpcFuel.electricity_not_community, EpcHeatingControls.programmer_and_appliance_thermostats, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), # 45 ('Room heaters', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.room_heaters_electric, EpcEfficiency.POOR, EpcFuel.electricity_not_community, EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), # 46 ('Room heaters', 'C', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.room_heaters_mains_gas, EpcEfficiency.AVERAGE, EpcFuel.mains_gas_not_community, EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), # 47 - water done from here ('Room heaters', 'F', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.room_heaters_mains_gas, EpcEfficiency.POOR, EpcFuel.mains_gas_not_community, EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), ('Room heaters', 'G', 'MainsGasNotCommunity', 'Optimal'): ( EpcHeatingSystems.room_heaters_mains_gas, EpcEfficiency.POOR, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmer_and_appliance_thermostats, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), ('Room heaters', 'G', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.room_heaters_mains_gas, EpcEfficiency.POOR, EpcFuel.mains_gas_not_community, EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), ('Room heaters', 'G', 'SmokelessCoal', 'Sub Optimal'): ( EpcHeatingSystems.room_heaters_smokeless_fuel, EpcEfficiency.VERY_POOR, EpcFuel.smokeless_coal, EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), ('Storage heaters', 'A', 'ElectricityNotCommunity', 'Optimal'): ( EpcHeatingSystems.electric_storage_heaters, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community, EpcHeatingControls.automatic_charge_control, EpcEfficiency.AVERAGE, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), ('Storage heaters', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.electric_storage_heaters, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community, EpcHeatingControls.manual_charge_control, EpcEfficiency.POOR, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), ('Warm Air (not heat pump)', 'G', 'ElectricityNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.warm_air_electricaire, EpcEfficiency.GOOD, EpcFuel.electricity_not_community, EpcHeatingControls.programmer_and_atleast_two_room_thermostats, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ), ('Warm Air (not heat pump)', 'G', 'MainsGasNotCommunity', 'Sub Optimal'): ( EpcHeatingSystems.warm_air_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community, EpcHeatingControls.programmer_and_atleast_two_room_thermostats, EpcEfficiency.GOOD, EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE ) }