Files
2025-10-01 22:42:52 +08:00

118 lines
4.9 KiB
Python

from homeassistant.const import Platform, UnitOfTemperature, PRECISION_HALVES, UnitOfTime
from homeassistant.components.sensor import SensorStateClass, SensorDeviceClass
from homeassistant.components.binary_sensor import BinarySensorDeviceClass
from homeassistant.components.switch import SwitchDeviceClass
DEVICE_MAPPING = {
"default": {
"rationale": ["off", "on"],
"queries": [{}],
"centralized": [
"left_power", "left_recipe_current_step_action", "left_recipe_id",
"left_dry_fire_protection", "left_recipe_rest_time", "left_gear",
"left_current_temperature", "lock", "left_status", "eq_recipe_action",
"left_lock", "gas_leakage_code", "left_work_time", "left_recipe_current_step",
"left_recipe_target_steps", "version", "left_recipe_target_time",
"is_error", "left_cookmode", "light_lampblack_mode", "error_type"
],
"entities": {
Platform.SWITCH: {
"left_power": {
"device_class": SwitchDeviceClass.SWITCH,
},
"left_dry_fire_protection": {
"device_class": SwitchDeviceClass.SWITCH,
},
"left_lock": {
"device_class": SwitchDeviceClass.SWITCH,
},
"lock": {
"device_class": SwitchDeviceClass.SWITCH,
"rationale": ['0', '1'],
},
"light_lampblack_mode": {
"device_class": SwitchDeviceClass.SWITCH,
"rationale": [0, 1],
}
},
Platform.SELECT: {
"left_cookmode": {
"options": {
"default": {"left_cookmode": "default"},
"order": {"left_cookmode": "order"},
"keep_temperature": {"left_cookmode": "keep_temperature"},
"local_recipe": {"left_cookmode": "local_recipe"},
"cloud_recipe": {"left_cookmode": "cloud_recipe"},
"order_keep_temperature": {"left_cookmode": "order_keep_temperature"},
}
},
"left_gear": {
"options": {
"0": {"left_gear": 0},
"1": {"left_gear": 1},
"2": {"left_gear": 2},
"3": {"left_gear": 3},
"4": {"left_gear": 4},
"5": {"left_gear": 5},
"6": {"left_gear": 6},
"7": {"left_gear": 7},
"8": {"left_gear": 8},
"9": {"left_gear": 9}
}
},
},
Platform.SENSOR: {
"left_recipe_current_step_action": {
"device_class": SensorDeviceClass.ENUM,
},
"left_recipe_id": {
"device_class": SensorDeviceClass.ENUM,
},
"left_recipe_rest_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.SECONDS,
"state_class": SensorStateClass.MEASUREMENT
},
"left_current_temperature": {
"device_class": SensorDeviceClass.TEMPERATURE,
"unit_of_measurement": UnitOfTemperature.CELSIUS,
"state_class": SensorStateClass.MEASUREMENT
},
"left_status": {
"device_class": SensorDeviceClass.ENUM,
},
"eq_recipe_action": {
"device_class": SensorDeviceClass.ENUM,
},
"gas_leakage_code": {
"device_class": SensorDeviceClass.ENUM,
},
"left_work_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.SECONDS,
"state_class": SensorStateClass.MEASUREMENT
},
"left_recipe_current_step": {
"device_class": SensorDeviceClass.ENUM,
},
"left_recipe_target_steps": {
"device_class": SensorDeviceClass.ENUM
},
"left_recipe_target_time": {
"device_class": SensorDeviceClass.DURATION,
"unit_of_measurement": UnitOfTime.SECONDS,
"state_class": SensorStateClass.MEASUREMENT
},
"error_type": {
"device_class": SensorDeviceClass.ENUM,
}
},
Platform.BINARY_SENSOR: {
"is_error": {
"device_class": BinarySensorDeviceClass.PROBLEM,
},
}
}
}
}