mirror of
https://github.com/sususweet/midea-meiju-codec.git
synced 2025-10-15 18:58:29 +00:00
feat: support climate turn on & off feature. Fix #18.
This commit is contained in:
@@ -66,6 +66,7 @@ class MideaClimateEntity(MideaEntity, ClimateEntity):
|
||||
config=config,
|
||||
)
|
||||
self._key_power = self._config.get("power")
|
||||
self._key_pre_mode = self._config.get("pre_mode")
|
||||
self._key_hvac_modes = self._config.get("hvac_modes")
|
||||
self._key_preset_modes = self._config.get("preset_modes")
|
||||
self._key_aux_heat = self._config.get("aux_heat")
|
||||
@@ -248,8 +249,12 @@ class MideaClimateEntity(MideaEntity, ClimateEntity):
|
||||
return value
|
||||
return value == 1 or value == "on" or value == "true"
|
||||
|
||||
async def _async_set_status_on_off(self, key, value):
|
||||
async def _async_set_status_on_off(self, attribute_key: str | None, turn_on: bool):
|
||||
"""Set on/off status for device attribute."""
|
||||
if key is None:
|
||||
if attribute_key is None:
|
||||
return
|
||||
await self.async_set_attribute(key, value)
|
||||
new_status = {}
|
||||
new_status[attribute_key] = self._rationale[int(turn_on)]
|
||||
if turn_on:
|
||||
new_status[self._key_pre_mode] = self._get_nested_value(self._key_pre_mode)
|
||||
await self.async_set_attributes(new_status)
|
||||
|
@@ -91,6 +91,7 @@ DEVICE_MAPPING = {
|
||||
},
|
||||
"target_temperature": ["temperature", "small_temperature"],
|
||||
"current_temperature": "indoor_temperature",
|
||||
"pre_mode": "mode",
|
||||
"aux_heat": "ptc",
|
||||
"min_temp": 17,
|
||||
"max_temp": 30,
|
||||
@@ -115,6 +116,9 @@ DEVICE_MAPPING = {
|
||||
}
|
||||
},
|
||||
Platform.SENSOR: {
|
||||
"mode": {
|
||||
"device_class": SensorDeviceClass.ENUM,
|
||||
},
|
||||
"indoor_temperature": {
|
||||
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||
@@ -175,6 +179,7 @@ DEVICE_MAPPING = {
|
||||
},
|
||||
"target_temperature": ["temperature", "small_temperature"],
|
||||
"current_temperature": "indoor_temperature",
|
||||
"pre_mode": "mode",
|
||||
"aux_heat": "ptc",
|
||||
"min_temp": 17,
|
||||
"max_temp": 30,
|
||||
@@ -198,6 +203,9 @@ DEVICE_MAPPING = {
|
||||
}
|
||||
},
|
||||
Platform.SENSOR: {
|
||||
"mode": {
|
||||
"device_class": SensorDeviceClass.ENUM,
|
||||
},
|
||||
"indoor_temperature": {
|
||||
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||
|
@@ -142,6 +142,7 @@ DEVICE_MAPPING = {
|
||||
},
|
||||
"target_temperature": "storage_temperature",
|
||||
"current_temperature": "refrigeration_real_temperature",
|
||||
"pre_mode": "mode",
|
||||
"min_temp": -10,
|
||||
"max_temp": 10,
|
||||
"temperature_unit": UnitOfTemperature.CELSIUS,
|
||||
@@ -221,6 +222,9 @@ DEVICE_MAPPING = {
|
||||
}
|
||||
},
|
||||
Platform.SENSOR: {
|
||||
"mode": {
|
||||
"device_class": SensorDeviceClass.ENUM,
|
||||
},
|
||||
"storage_temperature": {
|
||||
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||
|
@@ -48,6 +48,7 @@ DEVICE_MAPPING = {
|
||||
},
|
||||
"target_temperature": "temperature.current",
|
||||
"current_temperature": "temperature.room",
|
||||
"pre_mode": "mode",
|
||||
"min_temp": 17,
|
||||
"max_temp": 30,
|
||||
"temperature_unit": UnitOfTemperature.CELSIUS,
|
||||
@@ -89,6 +90,9 @@ DEVICE_MAPPING = {
|
||||
}
|
||||
},
|
||||
Platform.SENSOR: {
|
||||
"mode": {
|
||||
"device_class": SensorDeviceClass.ENUM,
|
||||
},
|
||||
"room_temperature": {
|
||||
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||
|
@@ -22,6 +22,7 @@ DEVICE_MAPPING = {
|
||||
},
|
||||
"target_temperature": "temp_set",
|
||||
"current_temperature": "cur_temp",
|
||||
"pre_mode": "mode",
|
||||
"min_temp": 5,
|
||||
"max_temp": 70,
|
||||
"temperature_unit": UnitOfTemperature.CELSIUS,
|
||||
@@ -103,6 +104,9 @@ DEVICE_MAPPING = {
|
||||
}
|
||||
},
|
||||
Platform.SENSOR: {
|
||||
"mode": {
|
||||
"device_class": SensorDeviceClass.ENUM,
|
||||
},
|
||||
"cur_temp": {
|
||||
"device_class": SensorDeviceClass.TEMPERATURE,
|
||||
"unit_of_measurement": UnitOfTemperature.CELSIUS,
|
||||
|
@@ -636,6 +636,9 @@
|
||||
}
|
||||
},
|
||||
"sensor": {
|
||||
"mode": {
|
||||
"name": "Running Mode"
|
||||
},
|
||||
"active_oxygen": {
|
||||
"name": "Active Oxygen"
|
||||
},
|
||||
|
@@ -636,6 +636,9 @@
|
||||
}
|
||||
},
|
||||
"sensor": {
|
||||
"mode": {
|
||||
"name": "运行模式"
|
||||
},
|
||||
"active_oxygen": {
|
||||
"name": "活性氧"
|
||||
},
|
||||
|
Reference in New Issue
Block a user