diff --git a/custom_components/xiaomi_home/climate.py b/custom_components/xiaomi_home/climate.py index 50d49a0..6698c26 100644 --- a/custom_components/xiaomi_home/climate.py +++ b/custom_components/xiaomi_home/climate.py @@ -529,6 +529,8 @@ class AirConditioner(FeatureOnOff, FeatureTargetTemperature, self._hvac_mode_map[item.value] = HVACMode.DRY elif item.name in {'fan'}: self._hvac_mode_map[item.value] = HVACMode.FAN_ONLY + elif item.name in {'heat_cool'}: + self._hvac_mode_map[item.value] = HVACMode.HEAT_COOL self._attr_hvac_modes = list(self._hvac_mode_map.values()) self._prop_mode = prop elif prop.name == 'ac-state': diff --git a/custom_components/xiaomi_home/miot/miot_device.py b/custom_components/xiaomi_home/miot/miot_device.py index 671dd7c..524462a 100644 --- a/custom_components/xiaomi_home/miot/miot_device.py +++ b/custom_components/xiaomi_home/miot/miot_device.py @@ -747,6 +747,7 @@ class MIoTDevice: 'watt': UnitOfPower.WATT, 'w': UnitOfPower.WATT, 'W': UnitOfPower.WATT, + 'kW': UnitOfPower.KILO_WATT, 'kWh': UnitOfEnergy.KILO_WATT_HOUR, 'A': UnitOfElectricCurrent.AMPERE, 'mA': UnitOfElectricCurrent.MILLIAMPERE, diff --git a/custom_components/xiaomi_home/miot/specs/multi_lang.json b/custom_components/xiaomi_home/miot/specs/multi_lang.json index becd9e1..d8204c0 100644 --- a/custom_components/xiaomi_home/miot/specs/multi_lang.json +++ b/custom_components/xiaomi_home/miot/specs/multi_lang.json @@ -5,6 +5,12 @@ "service:003:property:001:valuelist:001": "Dry" } }, + "urn:miot-spec-v2:device:electronic-valve:0000A0A7:ykcn-cbcs": { + "zh-Hans": { + "service:004:property:001": "功率过高-阈值设置", + "service:004:property:009": "欠压告警-阈值设置" + } + }, "urn:miot-spec-v2:device:fan:0000A005:zhimi-za1": { "zh-Hans": { "service:002:property:005:valuelist:000": "自然风", diff --git a/custom_components/xiaomi_home/miot/specs/spec_add.json b/custom_components/xiaomi_home/miot/specs/spec_add.json index c161f9d..56774cd 100644 --- a/custom_components/xiaomi_home/miot/specs/spec_add.json +++ b/custom_components/xiaomi_home/miot/specs/spec_add.json @@ -1679,7 +1679,7 @@ "urn:miot-spec-v2:device:vacuum:0000A006:roidmi-v60:3": [ { "iid": 2, - "type": "urn:miot-spec-v2:service:vacuum:00007810:roidmi-v60:1", + "type": "urn:miot-spec-v2:service:cleaner:00007810:roidmi-v60:1", "description": "Robot Cleaner", "actions": [ { diff --git a/custom_components/xiaomi_home/miot/specs/spec_modify.yaml b/custom_components/xiaomi_home/miot/specs/spec_modify.yaml index 48f1327..bacbd4b 100644 --- a/custom_components/xiaomi_home/miot/specs/spec_modify.yaml +++ b/custom_components/xiaomi_home/miot/specs/spec_modify.yaml @@ -1,6 +1,21 @@ urn:miot-spec-v2:device:air-condition-outlet:0000A045:lumi-mcn04:1: prop.3.4: format: uint8 +urn:miot-spec-v2:device:air-conditioner:0000A004:qdhkl-a42:1: + prop.2.2: + value-list: + - value: 1 + description: Cool + - value: 2 + description: Dry + - value: 4 + description: Fan + - value: 8 + description: Heat + - value: 9 + description: Auto + - value: 10 + description: Heat_cool urn:miot-spec-v2:device:air-conditioner:0000A004:xiaomi-c17:1: prop.10.6: unit: none @@ -125,11 +140,45 @@ urn:miot-spec-v2:device:curtain:0000A00C:bjkcz-kczble:1:0000D031: name: status-a urn:miot-spec-v2:device:electronic-valve:0000A0A7:sanmei-s1:1: prop.3.1: + format: float + value-range: + - 0 + - 99999999 + - 0.01 expr: round(src_value/100, 2) prop.3.2: + format: float + value-range: + - 0 + - 16777216 + - 0.01 expr: round(src_value/100, 2) prop.3.3: + format: float + value-range: + - 0 + - 65535 + - 0.1 expr: round(src_value/10, 1) +urn:miot-spec-v2:device:electronic-valve:0000A0A7:ykcn-cbcs:1:0000C833: + prop.3.1: + format: float + value-range: + - 0 + - 99999999 + - 0.01 + expr: round(src_value/100, 2) + prop.3.2: + unit: mA + prop.3.3: + format: float + value-range: + - 0 + - 65535 + - 0.1 + expr: round(src_value/10, 1) + prop.4.1: + unit: kW urn:miot-spec-v2:device:fan:0000A005:dmaker-p33:1: prop.2.2: name: fan-level-a @@ -205,6 +254,7 @@ urn:miot-spec-v2:device:hood:0000A01B:cykj-jyj22:2: urn:miot-spec-v2:device:hood urn:miot-spec-v2:device:hood:0000A01B:cykj-jyj22:3: prop.3.1: name: on-ventilation +urn:miot-spec-v2:device:hood:0000A01B:cykj-jyj22:4: urn:miot-spec-v2:device:hood:0000A01B:cykj-jyj22:3 urn:miot-spec-v2:device:humidifier:0000A00E:zhimi-ca4:2: prop.2.7: unit: percentage @@ -236,13 +286,30 @@ urn:miot-spec-v2:device:motion-sensor:0000A014:lumi-acn001:1: - read - notify unit: mV +urn:miot-spec-v2:device:motion-sensor:0000A014:lumi-bmgl01:1: + prop.2.2: + value-list: + - value: 0 + description: 0 Seconds + - value: 2 + description: 2 Minutes + - value: 5 + description: 5 Minutes urn:miot-spec-v2:device:motor-controller:0000A01D:adp-adswb4:1:0000C837: prop.2.1: name: motor-switch urn:miot-spec-v2:device:occupancy-sensor:0000A0BF:ainice-3b:1: urn:miot-spec-v2:device:occupancy-sensor:0000A0BF:ainice-3b:2 urn:miot-spec-v2:device:occupancy-sensor:0000A0BF:ainice-3b:2: + prop.2.5: + name: people-number prop.2.8: name: people-number + prop.2.11: + name: people-number + prop.2.14: + name: people-number + prop.2.17: + name: people-number urn:miot-spec-v2:device:occupancy-sensor:0000A0BF:izq-24:2:0000C824: prop.2.6: unit: cm @@ -253,29 +320,57 @@ urn:miot-spec-v2:device:outlet:0000A002:chuangmi-212a01:1: urn:miot-spec-v2:devi urn:miot-spec-v2:device:outlet:0000A002:chuangmi-212a01:2: urn:miot-spec-v2:device:outlet:0000A002:chuangmi-212a01:3 urn:miot-spec-v2:device:outlet:0000A002:chuangmi-212a01:3: prop.5.1: - expr: round(src_value*6/1000000, 3) + format: float + value-range: + - 0 + - 65535 + - 0.01 + expr: round(src_value*6/1000000, 2) urn:miot-spec-v2:device:outlet:0000A002:cuco-cp1md:1: prop.2.2: - name: power-consumption - expr: round(src_value/1000, 3) + format: float + value-range: + - 0 + - 65535 + - 0.01 + expr: round(src_value/1000, 2) prop.2.3: + format: float + value-range: + - 0 + - 3000 + - 0.1 expr: round(src_value/10, 1) prop.2.4: unit: mA urn:miot-spec-v2:device:outlet:0000A002:cuco-cp2:1: urn:miot-spec-v2:device:outlet:0000A002:cuco-cp2:2 urn:miot-spec-v2:device:outlet:0000A002:cuco-cp2:2: prop.2.3: + format: float + value-range: + - 0 + - 3000 + - 0.1 expr: round(src_value/10, 1) prop.2.4: unit: mA prop.3.2: + format: float + value-range: + - 0 + - 65535 + - 0.1 expr: round(src_value/10, 1) urn:miot-spec-v2:device:outlet:0000A002:cuco-cp2d:1: prop.3.2: - expr: round(src_value/1000, 2) + unit: mA urn:miot-spec-v2:device:outlet:0000A002:cuco-v3:1: prop.11.1: - name: power-consumption + format: float + value-range: + - 0 + - 65535 + - 0.01 expr: round(src_value/100, 2) urn:miot-spec-v2:device:outlet:0000A002:cuco-v3:2: urn:miot-spec-v2:device:outlet:0000A002:cuco-v3:1 urn:miot-spec-v2:device:outlet:0000A002:giot-v8icm:1:0000C816: @@ -288,11 +383,20 @@ urn:miot-spec-v2:device:outlet:0000A002:qmi-psv3:1:0000C816: unit: mA urn:miot-spec-v2:device:outlet:0000A002:yutai-fsov8m:1:0000C816: prop.4.1: + format: float + value-range: + - 0 + - 429497 + - 0.01 expr: round(src_value/10000, 2) urn:miot-spec-v2:device:outlet:0000A002:zimi-zncz01:1:0000C816: urn:miot-spec-v2:device:outlet:0000A002:zimi-zncz01:2:0000C816 urn:miot-spec-v2:device:outlet:0000A002:zimi-zncz01:2:0000C816: prop.3.1: - name: electric-power + format: float + value-range: + - 0 + - 350000 + - 0.01 expr: round(src_value/100, 2) urn:miot-spec-v2:device:plant-monitor:0000A030:hhcc-v1:1: prop.2.1: @@ -325,10 +429,20 @@ urn:miot-spec-v2:device:switch:0000A003:090615-x1tpm:1:0000D042: name: light-fan-on urn:miot-spec-v2:device:switch:0000A003:lxzn-cbcsmj:1:0000D00D: prop.3.1: + format: float + value-range: + - 0 + - 99999999 + - 0.01 expr: round(src_value/100, 2) prop.3.2: - expr: round(src_value/1000, 2) + unit: mA prop.3.3: + format: float + value-range: + - 0 + - 65535 + - 0.1 expr: round(src_value/10, 1) urn:miot-spec-v2:device:thermostat:0000A031:suittc-wk168:1: prop.2.3: