from homeassistant.const import ( Platform, TIME_DAYS, TIME_HOURS, TIME_MINUTES, TIME_SECONDS, TEMP_CELSIUS, POWER_WATT, PERCENTAGE, VOLUME_LITERS, ENERGY_KILO_WATT_HOUR, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_MILLION ) from homeassistant.components.binary_sensor import BinarySensorDeviceClass from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass from .midea.devices.x26.device import DeviceAttributes as X26Attributes from .midea.devices.x34.device import DeviceAttributes as X34Attributes from .midea.devices.x40.device import DeviceAttributes as X40Attributes from .midea.devices.a1.device import DeviceAttributes as A1Attributes from .midea.devices.ac.device import DeviceAttributes as ACAttributes from .midea.devices.b0.device import DeviceAttributes as B0Attributes from .midea.devices.b1.device import DeviceAttributes as B1Attributes from .midea.devices.b3.device import DeviceAttributes as B3Attributes from .midea.devices.b4.device import DeviceAttributes as B4Attributes from .midea.devices.b6.device import DeviceAttributes as B6Attributes from .midea.devices.bf.device import DeviceAttributes as BFAttributes from .midea.devices.c2.device import DeviceAttributes as C2Attributes from .midea.devices.c3.device import DeviceAttributes as C3Attributes from .midea.devices.ca.device import DeviceAttributes as CAAttributes from .midea.devices.cc.device import DeviceAttributes as CCAttributes from .midea.devices.cd.device import DeviceAttributes as CDAttributes from .midea.devices.ce.device import DeviceAttributes as CEAttributes from .midea.devices.cf.device import DeviceAttributes as CFAttributes from .midea.devices.da.device import DeviceAttributes as DAAttributes from .midea.devices.db.device import DeviceAttributes as DBAttributes from .midea.devices.dc.device import DeviceAttributes as DCAttributes from .midea.devices.e1.device import DeviceAttributes as E1Attributes from .midea.devices.e2.device import DeviceAttributes as E2Attributes from .midea.devices.e3.device import DeviceAttributes as E3Attributes from .midea.devices.e6.device import DeviceAttributes as E6Attributes from .midea.devices.e8.device import DeviceAttributes as E8Attributes from .midea.devices.ea.device import DeviceAttributes as EAAttributes from .midea.devices.ec.device import DeviceAttributes as ECAttributes from .midea.devices.ed.device import DeviceAttributes as EDAttributes from .midea.devices.fa.device import DeviceAttributes as FAAttributes from .midea.devices.fb.device import DeviceAttributes as FBAttributes from .midea.devices.fc.device import DeviceAttributes as FCAttributes from .midea.devices.fd.device import DeviceAttributes as FDAttributes MIDEA_DEVICES = { 0x13: { "name": "Light", "entities": { "light": { "type": Platform.LIGHT, "icon": "mdi:lightbulb", "default": True } } }, 0x26: { "name": "Bathroom Master", "entities": { X26Attributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, X26Attributes.current_humidity: { "type": Platform.SENSOR, "name": "Current Humidity", "device_class": SensorDeviceClass.HUMIDITY, "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, X26Attributes.current_radar: { "type": Platform.BINARY_SENSOR, "name": "Occupancy Status", "device_class": BinarySensorDeviceClass.MOVING }, X26Attributes.main_light: { "type": Platform.SWITCH, "name": "Main Light", "icon": "mdi:lightbulb" }, X26Attributes.night_light: { "type": Platform.SWITCH, "name": "Night Light", "icon": "mdi:lightbulb" }, X26Attributes.mode: { "type": Platform.SELECT, "name": "Mode", "options": "preset_modes", "icon": "mdi:fan" }, X26Attributes.direction: { "type": Platform.SELECT, "name": "Direction", "options": "directions", "icon": "mdi:arrow-split-vertical" } } }, 0x34: { "name": "Sink Dishwasher", "entities": { X34Attributes.door: { "type": Platform.BINARY_SENSOR, "name": "Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR }, X34Attributes.rinse_aid: { "type": Platform.BINARY_SENSOR, "name": "Rinse Aid Shortage", "icon": "mdi:bottle-tonic", "device_class": BinarySensorDeviceClass.PROBLEM }, X34Attributes.salt: { "type": Platform.BINARY_SENSOR, "name": "Salt Shortage", "icon": "mdi:drag", "device_class": BinarySensorDeviceClass.PROBLEM }, X34Attributes.humidity: { "type": Platform.SENSOR, "name": "Humidity", "device_class": SensorDeviceClass.HUMIDITY, "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, X34Attributes.progress: { "type": Platform.SENSOR, "name": "Progress", "icon": "mdi:rotate-360" }, X34Attributes.status: { "type": Platform.SENSOR, "name": "Status", "icon": "mdi:information" }, X34Attributes.storage_remaining: { "type": Platform.SENSOR, "name": "Storage Remaining", "icon": "mdi:progress-clock", "unit": TIME_HOURS, "state_class": SensorStateClass.MEASUREMENT }, X34Attributes.temperature: { "type": Platform.SENSOR, "name": "Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, X34Attributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, X34Attributes.child_lock: { "type": Platform.LOCK, "name": "Child Lock" }, X34Attributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, X34Attributes.storage: { "type": Platform.SWITCH, "name": "Storage", "icon": "mdi:repeat-variant" }, X34Attributes.mode: { "type": Platform.SENSOR, "name": "Working Mode", "icon": "mdi:dishwasher" }, X34Attributes.error_code: { "type": Platform.SENSOR, "name": "Error Code", "icon": "mdi:alert-box" }, X34Attributes.softwater: { "type": Platform.SENSOR, "name": "Softwater Level", "icon": "mdi:shaker-outline", }, X34Attributes.bright: { "type": Platform.SENSOR, "name": "Bright Level", "icon": "mdi:star-four-points" } } }, 0x40: { "name": "Integrated Ceiling Fan", "entities": { "fan": { "type": Platform.FAN, "icon": "mdi:fan", "default": True }, X40Attributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, X40Attributes.light: { "type": Platform.SWITCH, "name": "Light", "icon": "mdi:lightbulb" }, X40Attributes.ventilation: { "type": Platform.SWITCH, "name": "Ventilation", "icon": "mdi:air-filter" }, X40Attributes.smelly_sensor: { "type": Platform.SWITCH, "name": "Smelly Sensor", "icon": "mdi:scent" }, X40Attributes.direction: { "type": Platform.SELECT, "name": "Direction", "options": "directions", "icon": "mdi:arrow-split-vertical" } } }, 0xA1: { "name": "Dehumidifier", "entities": { "humidifier": { "type": Platform.HUMIDIFIER, "icon": "mdi:air-humidifier", "default": True }, A1Attributes.child_lock: { "type": Platform.LOCK, "name": "Child Lock" }, A1Attributes.anion: { "type": Platform.SWITCH, "name": "Anion", "icon": "mdi:vanish" }, A1Attributes.prompt_tone: { "type": Platform.SWITCH, "name": "Prompt Tone", "icon": "mdi:bell" }, A1Attributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, A1Attributes.swing: { "type": Platform.SWITCH, "name": "swing", "icon": "mdi:pan-horizontal" }, A1Attributes.fan_speed: { "type": Platform.SELECT, "name": "Fan Speed", "options": "fan_speeds", "icon": "mdi:fan" }, A1Attributes.water_level_set: { "type": Platform.SELECT, "name": "Water Level Setting", "options": "water_level_sets", "icon": "mdi:cup-water" }, A1Attributes.current_humidity: { "type": Platform.SENSOR, "name": "Current Humidity", "device_class": SensorDeviceClass.HUMIDITY, "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, A1Attributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, A1Attributes.tank: { "type": Platform.SENSOR, "name": "Tank", "icon": "mdi:cup-water", "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, A1Attributes.tank_full: { "type": Platform.BINARY_SENSOR, "name": "Tank status", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM } } }, 0xAC: { "name": "Air Conditioner", "entities": { "climate": { "type": Platform.CLIMATE, "icon": "mdi:air-conditioner", "default": True }, "fresh_air": { "type": Platform.FAN, "icon": "mdi:fan", "name": "Fresh Air" }, ACAttributes.aux_heating: { "type": Platform.SWITCH, "name": "Aux Heating", "icon": "mdi:heat-wave" }, ACAttributes.boost_mode: { "type": Platform.SWITCH, "name": "Boost Mode", "icon": "mdi:turbine" }, ACAttributes.breezeless: { "type": Platform.SWITCH, "name": "Breezeless", "icon": "mdi:tailwind" }, ACAttributes.comfort_mode: { "type": Platform.SWITCH, "name": "Comfort Mode", "icon": "mdi:alpha-c-circle" }, ACAttributes.dry: { "type": Platform.SWITCH, "name": "Dry", "icon": "mdi:air-filter" }, ACAttributes.eco_mode: { "type": Platform.SWITCH, "name": "ECO Mode", "icon": "mdi:leaf-circle" }, ACAttributes.frost_protect: { "type": Platform.SWITCH, "name": "Frost Protect", "icon": "mdi:snowflake-alert" }, ACAttributes.indirect_wind: { "type": Platform.SWITCH, "name": "Indirect Wind", "icon": "mdi:tailwind" }, ACAttributes.natural_wind: { "type": Platform.SWITCH, "name": "Natural Wind", "icon": "mdi:tailwind" }, ACAttributes.prompt_tone: { "type": Platform.SWITCH, "name": "Prompt Tone", "icon": "mdi:bell" }, ACAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, ACAttributes.screen_display: { "type": Platform.SWITCH, "name": "Screen Display", "icon": "mdi:television-ambient-light" }, ACAttributes.sleep_mode: { "type": Platform.SWITCH, "name": "Sleep Mode", "icon": "mdi:power-sleep" }, ACAttributes.smart_eye: { "type": Platform.SWITCH, "name": "Smart Eye", "icon": "mdi:eye" }, ACAttributes.swing_horizontal: { "type": Platform.SWITCH, "name": "Swing Horizontal", "icon": "mdi:arrow-split-vertical" }, ACAttributes.swing_vertical: { "type": Platform.SWITCH, "name": "Swing Vertical", "icon": "mdi:arrow-split-horizontal" }, ACAttributes.full_dust: { "type": Platform.BINARY_SENSOR, "name": "Full of Dust", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM }, ACAttributes.indoor_humidity: { "type": Platform.SENSOR, "name": "Indoor Humidity", "device_class": SensorDeviceClass.HUMIDITY, "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, ACAttributes.indoor_temperature: { "type": Platform.SENSOR, "name": "Indoor Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, ACAttributes.outdoor_temperature: { "type": Platform.SENSOR, "name": "Outdoor Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, ACAttributes.total_energy_consumption: { "type": Platform.SENSOR, "name": "Total Energy Consumption", "device_class": SensorDeviceClass.ENERGY, "unit": ENERGY_KILO_WATT_HOUR, "state_class": SensorStateClass.TOTAL_INCREASING }, ACAttributes.current_energy_consumption: { "type": Platform.SENSOR, "name": "Current Energy Consumption", "device_class": SensorDeviceClass.ENERGY, "unit": ENERGY_KILO_WATT_HOUR, "state_class": SensorStateClass.MEASUREMENT }, ACAttributes.realtime_power: { "type": Platform.SENSOR, "name": "Realtime Power", "device_class": SensorDeviceClass.POWER, "unit": POWER_WATT, "state_class": SensorStateClass.MEASUREMENT } } }, 0xB0: { "name": "Microwave Oven", "entities": { B0Attributes.door: { "type": Platform.BINARY_SENSOR, "name": "Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR }, B0Attributes.tank_ejected: { "type": Platform.BINARY_SENSOR, "name": "Tank Ejected", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, B0Attributes.water_change_reminder: { "type": Platform.BINARY_SENSOR, "name": "Water Change Reminder", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, B0Attributes.water_shortage: { "type": Platform.BINARY_SENSOR, "name": "Water Shortage", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, B0Attributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, B0Attributes.status: { "type": Platform.SENSOR, "name": "Status", "icon": "mdi:information", }, B0Attributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT } } }, 0xB1: { "name": "Electric Oven", "entities": { B1Attributes.door: { "type": Platform.BINARY_SENSOR, "name": "Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR }, B1Attributes.tank_ejected: { "type": Platform.BINARY_SENSOR, "name": "Tank ejected", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, B1Attributes.water_change_reminder: { "type": Platform.BINARY_SENSOR, "name": "Water Change Reminder", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, B1Attributes.water_shortage: { "type": Platform.BINARY_SENSOR, "name": "Water Shortage", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, B1Attributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, B1Attributes.status: { "type": Platform.SENSOR, "name": "Status", "icon": "mdi:information", }, B1Attributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT } } }, 0xB3: { "name": "Dish Sterilizer", "entities": { B3Attributes.top_compartment_door: { "type": Platform.BINARY_SENSOR, "name": "Top Compartment Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR, }, B3Attributes.top_compartment_preheating: { "type": Platform.BINARY_SENSOR, "name": "Top Compartment Preheating", "icon": "mdi:heat-wave", "device_class": BinarySensorDeviceClass.RUNNING, }, B3Attributes.top_compartment_cooling: { "type": Platform.BINARY_SENSOR, "name": "Top Compartment Cooling", "icon": "snowflake-variant", "device_class": BinarySensorDeviceClass.RUNNING, }, B3Attributes.middle_compartment_door: { "type": Platform.BINARY_SENSOR, "name": "Middle Compartment Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR, }, B3Attributes.middle_compartment_preheating: { "type": Platform.BINARY_SENSOR, "name": "Middle Compartment Preheating", "icon": "mdi:heat-wave", "device_class": BinarySensorDeviceClass.RUNNING, }, B3Attributes.middle_compartment_cooling: { "type": Platform.BINARY_SENSOR, "name": "Middle Compartment Cooling", "icon": "snowflake-variant", "device_class": BinarySensorDeviceClass.RUNNING, }, B3Attributes.bottom_compartment_door: { "type": Platform.BINARY_SENSOR, "name": "Bottom Compartment Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR, }, B3Attributes.bottom_compartment_preheating: { "type": Platform.BINARY_SENSOR, "name": "Bottom Compartment Preheating", "icon": "mdi:heat-wave", "device_class": BinarySensorDeviceClass.RUNNING, }, B3Attributes.bottom_compartment_cooling: { "type": Platform.BINARY_SENSOR, "name": "Bottom Compartment Cooling", "icon": "snowflake-variant", "device_class": BinarySensorDeviceClass.RUNNING, }, B3Attributes.top_compartment_status: { "type": Platform.SENSOR, "name": "Top Compartment Status", "icon": "mdi:information" }, B3Attributes.top_compartment_temperature: { "type": Platform.SENSOR, "name": "Top Compartment Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, B3Attributes.top_compartment_remaining: { "type": Platform.SENSOR, "name": "Top Compartment Remaining", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT }, B3Attributes.middle_compartment_status: { "type": Platform.SENSOR, "name": "Middle Compartment Status", "icon": "mdi:information" }, B3Attributes.middle_compartment_temperature: { "type": Platform.SENSOR, "name": "Middle Compartment Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, B3Attributes.middle_compartment_remaining: { "type": Platform.SENSOR, "name": "Middle Compartment Remaining", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT }, B3Attributes.bottom_compartment_status: { "type": Platform.SENSOR, "name": "Bottom Compartment Status", "icon": "mdi:information" }, B3Attributes.bottom_compartment_temperature: { "type": Platform.SENSOR, "name": "Bottom Compartment Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, B3Attributes.bottom_compartment_remaining: { "type": Platform.SENSOR, "name": "Bottom Compartment Remaining", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT } } }, 0xB4: { "name": "Toaster", "entities": { B4Attributes.door: { "type": Platform.BINARY_SENSOR, "name": "Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR }, B4Attributes.tank_ejected: { "type": Platform.BINARY_SENSOR, "name": "Tank ejected", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, B4Attributes.water_change_reminder: { "type": Platform.BINARY_SENSOR, "name": "Water Change Reminder", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, B4Attributes.water_shortage: { "type": Platform.BINARY_SENSOR, "name": "Water Shortage", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, B4Attributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, B4Attributes.status: { "type": Platform.SENSOR, "name": "Status", "icon": "mdi:information", }, B4Attributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT } } }, 0xB6: { "name": "Range Hood", "entities": { "fan": { "type": Platform.FAN, "icon": "mdi:fan", "default": True }, B6Attributes.light: { "type": Platform.SWITCH, "name": "Light", "icon": "mdi:lightbulb" }, B6Attributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, B6Attributes.cleaning_reminder: { "type": Platform.BINARY_SENSOR, "name": "Cleaning Reminder", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM }, B6Attributes.oilcup_full: { "type": Platform.BINARY_SENSOR, "name": "Oil-cup Full", "icon": "mdi:cup", "device_class": BinarySensorDeviceClass.PROBLEM }, B6Attributes.fan_level: { "type": Platform.SENSOR, "name": "Fan level", "icon": "mdi:fan", "state_class": SensorStateClass.MEASUREMENT }, } }, 0xBF: { "name": "Microwave Steam Oven", "entities": { BFAttributes.tank_ejected: { "type": Platform.BINARY_SENSOR, "name": "Tank ejected", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, BFAttributes.water_change_reminder: { "type": Platform.BINARY_SENSOR, "name": "Water Change Reminder", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, BFAttributes.door: { "type": Platform.BINARY_SENSOR, "name": "Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR }, BFAttributes.water_shortage: { "type": Platform.BINARY_SENSOR, "name": "Water Shortage", "icon": "mdi:cup-water", "device_class": BinarySensorDeviceClass.PROBLEM }, BFAttributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, BFAttributes.status: { "type": Platform.SENSOR, "name": "Status", "icon": "mdi:information", }, BFAttributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT } } }, 0xC2: { "name": "Toilet", "entities": { C2Attributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, C2Attributes.sensor_light: { "type": Platform.SWITCH, "name": "Sensor Light", "icon": "mdi:lightbulb" }, C2Attributes.foam_shield: { "type": Platform.SWITCH, "name": "Foam Shield", "icon": "mdi:chart-bubble", }, C2Attributes.child_lock: { "type": Platform.LOCK, "name": "Child Lock" }, C2Attributes.seat_status: { "type": Platform.BINARY_SENSOR, "name": "Seat Status", "icon": "mdi:seat-legroom-normal" }, C2Attributes.lid_status: { "type": Platform.BINARY_SENSOR, "name": "Lid Status", "icon": "mdi:toilet" }, C2Attributes.light_status: { "type": Platform.BINARY_SENSOR, "name": "Light Status", "icon": "mdi:lightbulb", "device_class": BinarySensorDeviceClass.LIGHT }, C2Attributes.water_temperature: { "type": Platform.SENSOR, "name": "Water Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, C2Attributes.seat_temperature: { "type": Platform.SENSOR, "name": "Seat Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, C2Attributes.filter_life: { "type": Platform.SENSOR, "name": "Filter Life", "icon": "mdi:toilet", "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, C2Attributes.dry_level: { "type": Platform.NUMBER, "name": "Dry Level", "icon": "mdi:fire", "max": "max_dry_level", "min": 0, "step": 1 }, C2Attributes.water_temp_level: { "type": Platform.NUMBER, "name": "Water Temperature Level", "icon": "mdi:fire", "max": "max_water_temp_level", "min": 0, "step": 1 }, C2Attributes.seat_temp_level: { "type": Platform.NUMBER, "name": "Seat Temperature Level", "icon": "mdi:fire", "max": "max_seat_temp_level", "min": 0, "step": 1 } } }, 0xC3: { "name": "Heat Pump Wi-Fi Controller", "entities": { "climate_zone1": { "type": Platform.CLIMATE, "icon": "mdi:air-conditioner", "name": "Zone1 Thermostat", "zone": 0, "default": True }, "climate_zone2": { "type": Platform.CLIMATE, "icon": "mdi:air-conditioner", "name": "Zone2 Thermostat", "zone": 1, "default": True }, "water_heater": { "type": Platform.WATER_HEATER, "icon": "mdi:heat-pump", "name": "Domestic hot water", "default": True }, C3Attributes.disinfect: { "type": Platform.SWITCH, "name": "Disinfect", "icon": "mdi:water-plus-outline" }, C3Attributes.dhw_power: { "type": Platform.SWITCH, "name": "DHW Power", "icon": "mdi:power" }, C3Attributes.fast_dhw: { "type": Platform.SWITCH, "name": "Fast DHW", "icon": "mdi:rotate-orbit" }, C3Attributes.zone1_curve: { "type": Platform.SWITCH, "name": "Zone1 Curve", "icon": "mdi:chart-bell-curve-cumulative" }, C3Attributes.zone2_curve: { "type": Platform.SWITCH, "name": "Zone2 Curve", "icon": "mdi:chart-bell-curve-cumulative" }, C3Attributes.zone1_power: { "type": Platform.SWITCH, "name": "Zone1 Power", "icon": "mdi:power" }, C3Attributes.zone2_power: { "type": Platform.SWITCH, "name": "Zone2 Power", "icon": "mdi:power" }, C3Attributes.zone1_water_temp_mode: { "type": Platform.BINARY_SENSOR, "name": "Zone1 Water-temperature Mode", "icon": "mdi:coolant-temperature", "device_class": BinarySensorDeviceClass.RUNNING, }, C3Attributes.zone2_water_temp_mode: { "type": Platform.BINARY_SENSOR, "name": "Zone2 Water-temperature Mode", "icon": "mdi:coolant-temperature", "device_class": BinarySensorDeviceClass.RUNNING, }, C3Attributes.zone1_room_temp_mode: { "type": Platform.BINARY_SENSOR, "name": "Zone1 Room-temperature Mode", "icon": "mdi:home-thermometer-outline", "device_class": BinarySensorDeviceClass.RUNNING, }, C3Attributes.zone2_room_temp_mode: { "type": Platform.BINARY_SENSOR, "name": "Zone2 Room-temperature Mode", "icon": "mdi:home-thermometer-outline", "device_class": BinarySensorDeviceClass.RUNNING, }, C3Attributes.tank_actual_temperature: { "type": Platform.SENSOR, "name": "Tank Actual Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, C3Attributes.status_tbh: { "type": Platform.BINARY_SENSOR, "name": "TBH status", "icon": "mdi:water-boiler", "device_class": BinarySensorDeviceClass.RUNNING, }, C3Attributes.status_dhw: { "type": Platform.BINARY_SENSOR, "name": "DHW status", "icon": "mdi:heat-pump", "device_class": BinarySensorDeviceClass.RUNNING, }, C3Attributes.status_ibh: { "type": Platform.BINARY_SENSOR, "name": "IBH status", "icon": "mdi:coolant-temperature", "device_class": BinarySensorDeviceClass.RUNNING, }, C3Attributes.status_heating: { "type": Platform.BINARY_SENSOR, "name": "Heating status", "icon": "mdi:heat-pump", "device_class": BinarySensorDeviceClass.RUNNING, }, C3Attributes.total_energy_consumption: { "type": Platform.SENSOR, "name": "Total energy consumption", "device_class": SensorDeviceClass.ENERGY, "unit": ENERGY_KILO_WATT_HOUR, "state_class": SensorStateClass.TOTAL_INCREASING }, C3Attributes.total_produced_energy: { "type": Platform.SENSOR, "name": "Total produced energy", "device_class": SensorDeviceClass.ENERGY, "unit": ENERGY_KILO_WATT_HOUR, "state_class": SensorStateClass.TOTAL_INCREASING }, C3Attributes.outdoor_temperature: { "type": Platform.SENSOR, "name": "Outdoor Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT } } }, 0xCA: { "name": "Refrigerator", "entities": { CAAttributes.bar_door: { "type": Platform.BINARY_SENSOR, "name": "Bar Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR }, CAAttributes.bar_door_overtime: { "type": Platform.BINARY_SENSOR, "name": "Bar Door Overtime", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM }, CAAttributes.flex_zone_door: { "type": Platform.BINARY_SENSOR, "name": "Flex Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR }, CAAttributes.flex_zone_door_overtime: { "type": Platform.BINARY_SENSOR, "name": "Flex Zone Door", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM }, CAAttributes.freezer_door: { "type": Platform.BINARY_SENSOR, "name": "Freezer Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR }, CAAttributes.freezer_door_overtime: { "type": Platform.BINARY_SENSOR, "name": "Freezer Door Overtime", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM }, CAAttributes.refrigerator_door: { "type": Platform.BINARY_SENSOR, "name": "Refrigerator Door", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM }, CAAttributes.refrigerator_door_overtime: { "type": Platform.BINARY_SENSOR, "name": "Refrigerator Door Overtime", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM }, CAAttributes.flex_zone_actual_temp: { "type": Platform.SENSOR, "name": "Flex Zone Actual Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CAAttributes.flex_zone_setting_temp: { "type": Platform.SENSOR, "name": "Flex Zone Setting Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CAAttributes.freezer_actual_temp: { "type": Platform.SENSOR, "name": "Freezer Actual Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CAAttributes.freezer_setting_temp: { "type": Platform.SENSOR, "name": "Freezer Setting Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CAAttributes.energy_consumption: { "type": Platform.SENSOR, "name": "Energy Consumption", "device_class": SensorDeviceClass.ENERGY, "unit": ENERGY_KILO_WATT_HOUR, "state_class": SensorStateClass.TOTAL_INCREASING }, CAAttributes.refrigerator_actual_temp: { "type": Platform.SENSOR, "name": "Refrigerator Actual Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CAAttributes.refrigerator_setting_temp: { "type": Platform.SENSOR, "name": "Refrigerator Setting Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CAAttributes.right_flex_zone_actual_temp: { "type": Platform.SENSOR, "name": "Right Flex Zone Actual Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CAAttributes.right_flex_zone_setting_temp: { "type": Platform.SENSOR, "name": "Right Flex Zone Setting Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, }, }, 0xCC: { "name": "MDV Wi-Fi Controller", "entities": { "climate" : { "type": Platform.CLIMATE, "icon": "hass:air-conditioner", "default": True }, CCAttributes.aux_heating: { "type": Platform.SWITCH, "name": "Aux Heating", "icon": "mdi:heat-wave" }, CCAttributes.eco_mode: { "type": Platform.SWITCH, "name": "ECO Mode", "icon": "mdi:leaf-circle" }, CCAttributes.night_light: { "type": Platform.SWITCH, "name": "Night Light", "icon": "mdi:lightbulb" }, CCAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, CCAttributes.sleep_mode: { "type": Platform.SWITCH, "name": "Sleep Mode", "icon": "mdi:power-sleep" }, CCAttributes.swing: { "type": Platform.SWITCH, "name": "Swing", "icon": "mdi:arrow-split-horizontal" }, CCAttributes.indoor_temperature: { "type": Platform.SENSOR, "name": "Indoor Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, } }, 0xCD: { "name": "Heat Pump Water Heater", "entities": { "water_heater": { "type": Platform.WATER_HEATER, "icon": "mdi:heat-pump", "default": True }, CDAttributes.compressor_status: { "type": Platform.BINARY_SENSOR, "name": "Compressor Status", "icon": "mdi:drag", "device_class": BinarySensorDeviceClass.RUNNING }, CDAttributes.compressor_temperature:{ "type": Platform.SENSOR, "name": "Compressor Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CDAttributes.condenser_temperature:{ "type": Platform.SENSOR, "name": "Condenser Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CDAttributes.outdoor_temperature: { "type": Platform.SENSOR, "name": "Outdoor Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CDAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" } } }, 0xCE: { "name": "Fresh Air Appliance", "entities": { "fan": { "type": Platform.FAN, "icon": "mdi:fan", "default": True }, CEAttributes.filter_cleaning_reminder: { "type": Platform.BINARY_SENSOR, "name": "Filter Cleaning Reminder", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM }, CEAttributes.filter_change_reminder: { "type": Platform.BINARY_SENSOR, "name": "Filter Change Reminder", "icon": "mdi:alert-circle", "device_class": BinarySensorDeviceClass.PROBLEM }, CEAttributes.current_humidity: { "type": Platform.SENSOR, "name": "Current Humidity", "device_class": SensorDeviceClass.HUMIDITY, "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, CEAttributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, CEAttributes.co2: { "type": Platform.SENSOR, "name": "Carbon Dioxide", "device_class": SensorDeviceClass.CO2, "unit": CONCENTRATION_PARTS_PER_MILLION, "state_class": SensorStateClass.MEASUREMENT }, CEAttributes.hcho: { "type": Platform.SENSOR, "name": "Methanal", "icon": "mdi:molecule", "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, "state_class": SensorStateClass.MEASUREMENT }, CEAttributes.pm25: { "type": Platform.SENSOR, "name": "PM 2.5", "device_class": SensorDeviceClass.PM25, "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, "state_class": SensorStateClass.MEASUREMENT }, CEAttributes.child_lock: { "type": Platform.LOCK, "name": "Child Lock" }, CEAttributes.aux_heating: { "type": Platform.SWITCH, "name": "Aux Heating", "icon": "mdi:heat-wave" }, CEAttributes.eco_mode: { "type": Platform.SWITCH, "name": "ECO Mode", "icon": "mdi:leaf-circle" }, CEAttributes.link_to_ac: { "type": Platform.SWITCH, "name": "Link to AC", "icon": "mdi:link" }, CEAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, CEAttributes.powerful_purify: { "type": Platform.SWITCH, "name": "Powerful Purification", "icon": "mdi:turbine" }, CEAttributes.sleep_mode: { "type": Platform.SWITCH, "name": "Sleep Mode", "icon": "mdi:power-sleep" }, } }, 0xCF: { "name": "Heat Pump", "entities": { "climate": { "type": Platform.CLIMATE, "icon": "hass:air-conditioner", "default": True }, CFAttributes.aux_heating: { "type": Platform.SWITCH, "name": "Aux Heating", "icon": "mdi:heat-wave" }, CFAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, CFAttributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, } }, 0xDA: { "name": "Top Load Washer", "entities": { DAAttributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, DAAttributes.wash_time: { "type": Platform.SENSOR, "name": "wash time", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, DAAttributes.soak_time: { "type": Platform.SENSOR, "name": "soak time", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, DAAttributes.dehydration_time: { "type": Platform.SENSOR, "name": "dehydration time", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, DAAttributes.dehydration_speed: { "type": Platform.SENSOR, "name": "dehydration speed", "icon": "mdi:speedometer" }, DAAttributes.error_code: { "type": Platform.SENSOR, "name": "error code", "icon": "mdi:washing-machine-alert" }, DAAttributes.rinse_count: { "type": Platform.SENSOR, "name": "rinse count", "icon": "mdi:water-sync" }, DAAttributes.rinse_level: { "type": Platform.SENSOR, "name": "rinse level", "icon": "mdi:hydraulic-oil-level" }, DAAttributes.wash_level: { "type": Platform.SENSOR, "name": "rinse count", "icon": "mdi:hydraulic-oil-level" }, DAAttributes.wash_strength: { "type": Platform.SENSOR, "name": "wash strength", "icon": "mdi:network-strength-4-cog" }, DAAttributes.softener: { "type": Platform.SENSOR, "name": "softener", "icon": "mdi:tshirt-crew" }, DAAttributes.detergent: { "type": Platform.SENSOR, "name": "detergent", "icon": "mdi:spray-bottle" }, DAAttributes.program: { "type": Platform.SENSOR, "name": "Program", "icon": "mdi:progress-wrench" }, DAAttributes.progress: { "type": Platform.SENSOR, "name": "Progress", "icon": "mdi:rotate-360" }, DAAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, DAAttributes.start: { "type": Platform.SWITCH, "name": "Start", "icon": "mdi:motion-play-outline" }, } }, 0xDB: { "name": "Front Load Washer", "entities": { DBAttributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, DBAttributes.progress: { "type": Platform.SENSOR, "name": "Progress", "icon": "mdi:rotate-360" }, DBAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, DBAttributes.start: { "type": Platform.SWITCH, "name": "Start", "icon": "mdi:motion-play-outline" }, } }, 0xDC: { "name": "Clothes Dryer", "entities": { DCAttributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, DCAttributes.progress: { "type": Platform.SENSOR, "name": "Progress", "icon": "mdi:rotate-360" }, DCAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, DCAttributes.start: { "type": Platform.SWITCH, "name": "Start", "icon": "mdi:motion-play-outline" }, } }, 0xE1: { "name": "Dishwasher", "entities": { E1Attributes.door: { "type": Platform.BINARY_SENSOR, "name": "Door", "icon": "mdi:box-shadow", "device_class": BinarySensorDeviceClass.DOOR }, E1Attributes.rinse_aid: { "type": Platform.BINARY_SENSOR, "name": "Rinse Aid Shortage", "icon": "mdi:bottle-tonic", "device_class": BinarySensorDeviceClass.PROBLEM }, E1Attributes.salt: { "type": Platform.BINARY_SENSOR, "name": "Salt Shortage", "icon": "mdi:drag", "device_class": BinarySensorDeviceClass.PROBLEM }, E1Attributes.humidity: { "type": Platform.SENSOR, "name": "Humidity", "device_class": SensorDeviceClass.HUMIDITY, "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, E1Attributes.progress: { "type": Platform.SENSOR, "name": "Progress", "icon": "mdi:rotate-360" }, E1Attributes.status: { "type": Platform.SENSOR, "name": "Status", "icon": "mdi:information" }, E1Attributes.storage_remaining: { "type": Platform.SENSOR, "name": "Storage Remaining", "icon": "mdi:progress-clock", "unit": TIME_HOURS, "state_class": SensorStateClass.MEASUREMENT }, E1Attributes.temperature: { "type": Platform.SENSOR, "name": "Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, E1Attributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, E1Attributes.child_lock: { "type": Platform.LOCK, "name": "Child Lock" }, E1Attributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, E1Attributes.storage: { "type": Platform.SWITCH, "name": "Storage", "icon": "mdi:repeat-variant" }, E1Attributes.mode: { "type": Platform.SENSOR, "name": "Working Mode", "icon": "mdi:dishwasher" }, E1Attributes.error_code: { "type": Platform.SENSOR, "name": "Error Code", "icon": "mdi:alert-box" }, E1Attributes.softwater: { "type": Platform.SENSOR, "name": "Softwater Level", "icon": "mdi:shaker-outline", }, E1Attributes.bright: { "type": Platform.SENSOR, "name": "Bright Level", "icon": "mdi:star-four-points" } } }, 0xE2: { "name": "Electric Water Heater", "entities": { "water_heater": { "type": Platform.WATER_HEATER, "icon": "mdi:meter-electric-outline", "default": True }, E2Attributes.heating: { "type": Platform.BINARY_SENSOR, "name": "Heating", "icon": "mdi:heat-wave", "device_class": BinarySensorDeviceClass.RUNNING }, E2Attributes.keep_warm: { "type": Platform.BINARY_SENSOR, "name": "Keep Warm", "icon": "mdi:menu", "device_class": BinarySensorDeviceClass.RUNNING }, E2Attributes.protection: { "type": Platform.BINARY_SENSOR, "name": "Protection", "icon": "mdi:shield-check", "device_class": BinarySensorDeviceClass.RUNNING }, E2Attributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, E2Attributes.heating_time_remaining: { "type": Platform.SENSOR, "name": "Heating Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, E2Attributes.heating_power: { "type": Platform.SENSOR, "name": "Heating Power", "device_class": SensorDeviceClass.POWER, "unit": POWER_WATT, "state_class": SensorStateClass.MEASUREMENT }, E2Attributes.water_consumption:{ "type": Platform.SENSOR, "name": "Water Consumption", "icon": "mdi:water", "unit": VOLUME_LITERS, "state_class": SensorStateClass.TOTAL_INCREASING }, E2Attributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, E2Attributes.variable_heating: { "type": Platform.SWITCH, "name": "Variable Heating", "icon": "mdi:waves" }, E2Attributes.whole_tank_heating: { "type": Platform.SWITCH, "name": "Whole Tank Heating", "icon": "mdi:restore" } } }, 0xE3: { "name": "Gas Water Heater", "entities": { "water_heater": { "type": Platform.WATER_HEATER, "icon": "mdi:meter-gas", "default": True }, E3Attributes.burning_state: { "type": Platform.BINARY_SENSOR, "name": "Burning State", "icon": "mdi:fire", "device_class": BinarySensorDeviceClass.RUNNING }, E3Attributes.protection: { "type": Platform.BINARY_SENSOR, "name": "Protection", "icon": "mdi:shield-check", "device_class": BinarySensorDeviceClass.RUNNING }, E3Attributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, E3Attributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, E3Attributes.smart_volume: { "type": Platform.SWITCH, "name": "Smart Volume", "icon": "mdi:recycle" }, E3Attributes.zero_cold_water: { "type": Platform.SWITCH, "name": "Zero Cold Water", "icon": "mdi:restore" }, E3Attributes.zero_cold_pulse: { "type": Platform.SWITCH, "name": "Zero Cold Water (Pulse)", "icon": "mdi:restore-alert" }, } }, 0xE6: { "name": "Gas Boilers", "entities": { "water_heater_heating": { "type": Platform.WATER_HEATER, "icon": "mdi:meter-gas", "name": "Heating", "use": 0, "default": True }, "water_heater_bathing": { "type": Platform.WATER_HEATER, "icon": "mdi:meter-gas", "name": "Bathing", "use": 1, "default": True }, E6Attributes.heating_working: { "type": Platform.BINARY_SENSOR, "name": "Heating Working Status", "icon": "mdi:fire", "device_class": BinarySensorDeviceClass.RUNNING }, E6Attributes.bathing_working: { "type": Platform.BINARY_SENSOR, "name": "Bathing Working Status", "icon": "mdi:fire", "device_class": BinarySensorDeviceClass.RUNNING }, E6Attributes.heating_leaving_temperature: { "type": Platform.SENSOR, "name": "Heating Leaving Water Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, E6Attributes.bathing_leaving_temperature: { "type": Platform.SENSOR, "name": "Bathing Leaving Water Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, E6Attributes.main_power: { "type": Platform.SWITCH, "name": "Main Power", "icon": "mdi:power" }, E6Attributes.heating_power: { "type": Platform.SWITCH, "name": "Heating Power", "icon": "mdi:heating-coil" } } }, 0xE8: { "name": "Electric Slow Cooker", "entities": { E8Attributes.finished: { "type": Platform.BINARY_SENSOR, "name": "Finished", "icon": "", }, E8Attributes.water_shortage: { "type": Platform.BINARY_SENSOR, "name": "Water Shortage", "icon": "mdi:drag", "device_class": BinarySensorDeviceClass.PROBLEM }, E8Attributes.status: { "type": Platform.SENSOR, "name": "Status", "icon": "mdi:information" }, E8Attributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT }, E8Attributes.keep_warm_remaining: { "type": Platform.SENSOR, "name": "Keep Warm Remaining", "icon": "mdi:progress-clock", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT }, E8Attributes.working_time: { "type": Platform.SENSOR, "name": "Working Time", "icon": "mdi:progress-clock", "unit": TIME_SECONDS, "state_class": SensorStateClass.MEASUREMENT }, E8Attributes.target_temperature: { "type": Platform.SENSOR, "name": "Target Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, E8Attributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, } }, 0xEA: { "name": "Electric Rice Cooker", "entities": { EAAttributes.cooking: { "type": Platform.BINARY_SENSOR, "name": "Cooking", "icon": "mdi:fire", "device_class": BinarySensorDeviceClass.RUNNING }, EAAttributes.keep_warm: { "type": Platform.BINARY_SENSOR, "name": "Keep Warm", "icon": "mdi:menu", "device_class": BinarySensorDeviceClass.RUNNING }, EAAttributes.bottom_temperature: { "type": Platform.SENSOR, "name": "Bottom Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, EAAttributes.keep_warm_time: { "type": Platform.SENSOR, "name": "Keep Warm Time", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, EAAttributes.mode: { "type": Platform.SENSOR, "name": "Mode", "icon": "mdi:orbit" }, EAAttributes.progress: { "type": Platform.SENSOR, "name": "Progress", "icon": "mdi:rotate-360" }, EAAttributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, EAAttributes.top_temperature: { "type": Platform.SENSOR, "name": "Top Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, } }, 0xEC: { "name": "Electric Pressure Cooker", "entities": { ECAttributes.cooking: { "type": Platform.BINARY_SENSOR, "name": "Cooking", "icon": "mdi:fire", "device_class": BinarySensorDeviceClass.RUNNING }, ECAttributes.with_pressure: { "type": Platform.BINARY_SENSOR, "name": "With Pressure", "icon": "mdi:information", "device_class": BinarySensorDeviceClass.RUNNING }, ECAttributes.bottom_temperature: { "type": Platform.SENSOR, "name": "Bottom Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, ECAttributes.keep_warm_time: { "type": Platform.SENSOR, "name": "Keep Warm Time", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, ECAttributes.mode: { "type": Platform.SENSOR, "name": "Mode", "icon": "mdi:orbit" }, ECAttributes.progress: { "type": Platform.SENSOR, "name": "Progress", "icon": "mdi:rotate-360" }, ECAttributes.time_remaining: { "type": Platform.SENSOR, "name": "Time Remaining", "icon": "mdi:progress-clock", "unit": TIME_MINUTES, "state_class": SensorStateClass.MEASUREMENT }, ECAttributes.top_temperature: { "type": Platform.SENSOR, "name": "Top Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, } }, 0xED: { "name": "Water Drinking Appliance", "entities": { EDAttributes.child_lock: { "type": Platform.LOCK, "name": "Child Lock" }, EDAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, EDAttributes.filter1: { "type": Platform.SENSOR, "name": "Filter1 Available Days", "icon": "mdi:air-filter", "unit": TIME_DAYS, "state_class": SensorStateClass.MEASUREMENT }, EDAttributes.filter2: { "type": Platform.SENSOR, "name": "Filter2 Available Days", "icon": "mdi:air-filter", "unit": TIME_DAYS, "state_class": SensorStateClass.MEASUREMENT }, EDAttributes.filter3: { "type": Platform.SENSOR, "name": "Filter3 Available Days", "icon": "mdi:air-filter", "unit": TIME_DAYS, "state_class": SensorStateClass.MEASUREMENT }, EDAttributes.life1: { "type": Platform.SENSOR, "name": "Filter1 Life Level", "icon": "mdi:percent", "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, EDAttributes.life2: { "type": Platform.SENSOR, "name": "Filter2 Life Level", "icon": "mdi:percent", "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, EDAttributes.life3: { "type": Platform.SENSOR, "name": "Filter3 Life Level", "icon": "mdi:percent", "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, EDAttributes.in_tds: { "type": Platform.SENSOR, "name": "In TDS", "icon": "mdi:water", "unit": CONCENTRATION_PARTS_PER_MILLION, "state_class": SensorStateClass.MEASUREMENT }, EDAttributes.out_tds: { "type": Platform.SENSOR, "name": "Out TDS", "icon": "mdi:water-plus", "unit": CONCENTRATION_PARTS_PER_MILLION, "state_class": SensorStateClass.MEASUREMENT }, EDAttributes.water_consumption: { "type": Platform.SENSOR, "name": "Water Consumption", "icon": "mdi:water-pump", "unit": VOLUME_LITERS, "state_class": SensorStateClass.TOTAL_INCREASING } } }, 0xFA: { "name": "Fan", "entities": { "fan": { "type": Platform.FAN, "icon": "mdi:fan", "default": True }, FAAttributes.oscillation_mode: { "type": Platform.SELECT, "name": "Oscillation Mode", "options": "oscillation_modes", "icon": "mdi:swap-horizontal-variant" }, FAAttributes.oscillation_angle: { "type": Platform.SELECT, "name": "Oscillation Angle", "options": "oscillation_angles", "icon": "mdi:pan-horizontal" }, FAAttributes.tilting_angle: { "type": Platform.SELECT, "name": "Tilting Angle", "options": "tilting_angles", "icon": "mdi:pan-vertical" }, FAAttributes.child_lock: { "type": Platform.LOCK, "name": "Child Lock" }, FAAttributes.oscillate: { "type": Platform.SWITCH, "name": "Oscillate", "icon": "mdi:swap-horizontal-bold" }, FAAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, } }, 0xFB: { "name": "Electric Heater", "entities": { "climate": { "type": Platform.CLIMATE, "icon": "mdi:air-conditioner", "default": True }, FBAttributes.child_lock: { "type": Platform.LOCK, "name": "Child Lock" }, FBAttributes.heating_level: { "type": Platform.NUMBER, "name": "Heating Level", "icon": "mdi:fire", "max": 10, "min": 1, "step": 1 }, FBAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, FBAttributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT }, } }, 0xFC: { "name": "Air Purifier", "entities": { FCAttributes.child_lock: { "type": Platform.LOCK, "name": "Child Lock" }, FCAttributes.anion: { "type": Platform.SWITCH, "name": "Anion", "icon": "mdi:vanish" }, FCAttributes.prompt_tone: { "type": Platform.SWITCH, "name": "Prompt Tone", "icon": "mdi:bell" }, FCAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, FCAttributes.standby: { "type": Platform.SWITCH, "name": "Standby", "icon": "mdi:smoke-detector-variant" }, FCAttributes.detect_mode: { "type": Platform.SELECT, "name": "Detect Mode", "options": "detect_modes", "icon": "mdi:smoke-detector-variant" }, FCAttributes.mode: { "type": Platform.SELECT, "name": "Mode", "options": "modes", "icon": "mdi:rotate-360" }, FCAttributes.fan_speed: { "type": Platform.SELECT, "name": "Fan Speed", "options": "fan_speeds", "icon": "mdi:fan" }, FCAttributes.screen_display: { "type": Platform.SELECT, "name": "Screen Display", "options": "screen_displays", "icon": "mdi:television-ambient-light" }, FCAttributes.pm25: { "type": Platform.SENSOR, "name": "PM 2.5", "device_class": SensorDeviceClass.PM25, "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, "state_class": SensorStateClass.MEASUREMENT }, FCAttributes.tvoc: { "type": Platform.SENSOR, "name": "TVOC", "icon": "mdi:heat-wave", "unit": CONCENTRATION_PARTS_PER_MILLION, "state_class": SensorStateClass.MEASUREMENT }, FCAttributes.hcho: { "type": Platform.SENSOR, "name": "Methanal", "icon": "mdi:molecule", "unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, "state_class": SensorStateClass.MEASUREMENT }, FCAttributes.filter1_life: { "type": Platform.SENSOR, "name": "Filter1 Life Level", "icon": "mdi:air-filter", "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, FCAttributes.filter2_life: { "type": Platform.SENSOR, "name": "Filter2 Life Level", "icon": "mdi:air-filter", "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT } } }, 0xFD: { "name": "Humidifier", "entities": { Platform.HUMIDIFIER: { "type": Platform.HUMIDIFIER, "icon": "mdi:air-humidifier", "default": True }, FDAttributes.disinfect: { "type": Platform.SWITCH, "name": "Disinfect", "icon": "mdi:water-plus-outline" }, FDAttributes.prompt_tone: { "type": Platform.SWITCH, "name": "Prompt Tone", "icon": "mdi:bell" }, FDAttributes.power: { "type": Platform.SWITCH, "name": "Power", "icon": "mdi:power" }, FDAttributes.fan_speed: { "type": Platform.SELECT, "name": "Fan Speed", "options": "fan_speeds", "icon": "mdi:fan" }, FDAttributes.screen_display: { "type": Platform.SELECT, "name": "Screen Display", "options": "screen_displays", "icon": "mdi:television-ambient-light" }, FDAttributes.current_humidity: { "type": Platform.SENSOR, "name": "Current Humidity", "device_class": SensorDeviceClass.HUMIDITY, "unit": PERCENTAGE, "state_class": SensorStateClass.MEASUREMENT }, FDAttributes.current_temperature: { "type": Platform.SENSOR, "name": "Current Temperature", "device_class": SensorDeviceClass.TEMPERATURE, "unit": TEMP_CELSIUS, "state_class": SensorStateClass.MEASUREMENT } } }, }