diff --git a/custom_components/xiaomi_home/miot/miot_device.py b/custom_components/xiaomi_home/miot/miot_device.py index fafff87..e3394c9 100644 --- a/custom_components/xiaomi_home/miot/miot_device.py +++ b/custom_components/xiaomi_home/miot/miot_device.py @@ -779,8 +779,10 @@ class MIoTDevice: # pylint: disable=import-outside-toplevel from homeassistant.const import UnitOfConductivity # type: ignore unit_map['μS/cm'] = UnitOfConductivity.MICROSIEMENS_PER_CM + unit_map['mWh'] = UnitOfEnergy.MILLIWATT_HOUR except Exception: # pylint: disable=broad-except unit_map['μS/cm'] = 'μS/cm' + unit_map['mWh'] = 'mWh' return unit_map.get(spec_unit, None) diff --git a/custom_components/xiaomi_home/miot/specs/spec_modify.yaml b/custom_components/xiaomi_home/miot/specs/spec_modify.yaml index 4b574ec..c9cf170 100644 --- a/custom_components/xiaomi_home/miot/specs/spec_modify.yaml +++ b/custom_components/xiaomi_home/miot/specs/spec_modify.yaml @@ -47,6 +47,9 @@ urn:miot-spec-v2:device:bath-heater:0000A028:opple-acmoto:1: urn:miot-spec-v2:device:bath-heater:0000A028:xiaomi-s1:1: prop.4.4: name: fan-level-ventilation +urn:miot-spec-v2:device:fan:0000A005:dmaker-p5:1: + prop.2.6: + name: fan-level-a urn:miot-spec-v2:device:fan:0000A005:xiaomi-p51:1: prop.2.2: name: fan-level-a @@ -84,10 +87,13 @@ urn:miot-spec-v2:device:gateway:0000A019:xiaomi-hub1:1: - notify urn:miot-spec-v2:device:gateway:0000A019:xiaomi-hub1:2: urn:miot-spec-v2:device:gateway:0000A019:xiaomi-hub1:1 urn:miot-spec-v2:device:gateway:0000A019:xiaomi-hub1:3: urn:miot-spec-v2:device:gateway:0000A019:xiaomi-hub1:1 +urn:miot-spec-v2:device:kettle:0000A009:yunmi-r3:1: + prop.3.1: + unit: ppm urn:miot-spec-v2:device:light:0000A001:shhf-sfla12:1: prop.8.11: name: on-a -urn:miot-spec-v2:device:magnet-sensor:0000A016:linp-m1:1: # linp.magnet.m1 +urn:miot-spec-v2:device:magnet-sensor:0000A016:linp-m1:1: prop.2.1004: name: contact-state expr: src_value!=1 @@ -112,6 +118,10 @@ urn:miot-spec-v2:device:outlet:0000A002:cuco-cp1md:1: prop.2.2: name: power-consumption expr: round(src_value/1000, 3) + prop.2.3: + 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: @@ -125,11 +135,15 @@ urn:miot-spec-v2:device:outlet:0000A002:cuco-v3:1: name: power-consumption 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: + prop.4.1: + unit: mWh urn:miot-spec-v2:device:outlet:0000A002:qmi-psv3:1:0000C816: prop.3.3: unit: mV prop.3.4: unit: mA +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 @@ -154,7 +168,7 @@ urn:miot-spec-v2:device:router:0000A036:xiaomi-rd08:1: name: upload-speed icon: mdi:upload unit: B/s -urn:miot-spec-v2:device:safe-box:0000A042:loock-v1:1: # loock.safe.v1 +urn:miot-spec-v2:device:safe-box:0000A042:loock-v1:1: prop.5.1: name: contact-state expr: src_value!=1 diff --git a/test/check_rule_format.py b/test/check_rule_format.py index 5c4c0e8..4a13e4b 100644 --- a/test/check_rule_format.py +++ b/test/check_rule_format.py @@ -38,7 +38,7 @@ def load_json_file(file_path: str) -> Optional[dict]: def save_json_file(file_path: str, data: dict) -> None: with open(file_path, 'w', encoding='utf-8') as file: - json.dump(data, file, ensure_ascii=False, indent=4) + json.dump(data, file, ensure_ascii=False, indent=2) def load_yaml_file(file_path: str) -> Optional[dict]: