Compare commits

...

8 Commits

Author SHA1 Message Date
ohyeah521
c40e57d925
Merge 1258d3f3d3 into 001af5384a 2026-01-09 21:03:18 +08:00
Li Shuzhen
001af5384a
docs: update changelog and version to v0.4.7 (#1599)
Some checks failed
Tests / check-rule-format (push) Has been cancelled
Validate / validate-hassfest (push) Has been cancelled
Validate / validate-hacs (push) Has been cancelled
Validate / validate-lint (push) Has been cancelled
Validate / validate-setup (push) Has been cancelled
2026-01-07 10:45:07 +08:00
Li Shuzhen
c8d48625e9
Fix specs (#1567)
* fix: the playing-state property's access field of xiaomi.wifispeaker.lx04 and xiaomi.wifispeaker.lx06 (#1566)

* fix: the playing-state property's access field of xiaomi.wifispeaker.x08c

* feat: remove xiaomi.router.rd03 from UNSUPPORTED_MODELS and add era.airp.cwb03 into it

* fix: xiaomi.airc.h09h00 humidity-range unit (#1589)

* fix: add k0918.toothbrush.t700 into UNSUPPORTED_MODELS (#1585)

* fix: the playing-state property's access field of xiaomi.wifispeaker.l04m (#1596)
2026-01-07 10:04:42 +08:00
Mümin Köykıran
d4ac7a935e
Feat/add turkish language (#1593)
Some checks are pending
Tests / check-rule-format (push) Waiting to run
Validate / validate-hassfest (push) Waiting to run
Validate / validate-hacs (push) Waiting to run
Validate / validate-lint (push) Waiting to run
Validate / validate-setup (push) Waiting to run
* feat: add Turkish device translations to multi_lang.json

Added comprehensive Turkish (tr) translations for all 13 MIoT device specifications
in multi_lang.json to complete Turkish language support.

Changes:
- Added Turkish translations for all device properties, services, events, and actions
- Covers 13 device types: bath-heater, electronic-valve, fan, gateway, lock,
  plant-monitor, switch, thermostat, and vacuum
- Used proper Turkish characters (ç, ğ, ı, ö, ş, ü, İ)
- Maintained technical term consistency (Gateway→Ağ Geçidi, WiFi, IP, etc.)
- Followed formal Turkish (siz form) for professional user experience

Technical details:
- 135 lines added to multi_lang.json
- Turkish translations placed alphabetically after Russian (ru)
- JSON syntax validated successfully
- All translations follow same structure as existing languages (de, en, es, fr, ja, ru, zh-Hans, zh-Hant)

This completes the Turkish language support started in #1468, enabling Turkish-speaking
users to see device names and properties in their native language.

Users will need to update conversion rules via Integration CONFIGURE page in
Home Assistant for translations to take effect.

* feat: add comprehensive Turkish translations for vacuum devices

Added Turkish translations for 5 vacuum device models to multi_lang.json:
- Viomi V5 Pro (viomi-v38, viomi-v5): Full translation including map management
- Narwa vacuum models (narwa-001, narwa-ax11): Core features and map support
- Roidmi V60 (roidmi-v60): Complete vacuum functionality

Key translations added:
- Map management (Harita Yönetimi): Map list, active map, map name, map ID
- Battery and charging status
- Cleaning modes and suction power levels
- Consumables lifetime tracking
- Advanced settings (carpet mode, edge cleaning, obstacle detection)

This resolves Chinese text appearing in vacuum device interfaces by providing
local Turkish translations that override cloud-provided Chinese defaults.

Total vacuum devices with Turkish support: 6 models
File size: 617 lines (expanded from 442 lines)

* fix: sort multi_lang.json entries alphabetically

Sort all device URN entries in multi_lang.json to pass check-rule-format test.
Entries are now in alphabetical order as required by the test suite.

This fixes the failing GitHub Actions check-rule-format test.
2026-01-06 10:16:54 +08:00
Necroneco
ae047758de
feat: add unit days to xiaomi.toothbrush.p001 (#1588)
Some checks failed
Tests / check-rule-format (push) Has been cancelled
Validate / validate-hassfest (push) Has been cancelled
Validate / validate-hacs (push) Has been cancelled
Validate / validate-lint (push) Has been cancelled
Validate / validate-setup (push) Has been cancelled
2026-01-04 14:08:02 +08:00
ohyeah521
1258d3f3d3
Merge branch 'XiaoMi:main' into main 2025-09-10 14:05:45 +08:00
ohyeah521
64d9d54170
Merge branch 'XiaoMi:main' into main 2025-08-24 10:12:48 -04:00
ohyeah521
059eee33e0
Fix #1309 #1124
# HomeKit Bridge: fan_modes must be "auto"、"low"、"medium"、"high"
2025-07-28 23:23:21 +08:00
7 changed files with 435 additions and 52 deletions

View File

@ -1,4 +1,16 @@
# CHANGELOG # CHANGELOG
## v0.4.7
### Added
- Add turkish language in multi_lang.json. [#1593](https://github.com/XiaoMi/ha_xiaomi_home/pull/1593)
### Changed
- Remove unused info getting from central hub gateway. [#1574](https://github.com/XiaoMi/ha_xiaomi_home/pull/1574)
- Remove xiaomi.router.rd03 from `UNSUPPORTED_MODELS` and add era.airp.cwb03, k0918.toothbrush.t700 into it. [#1567](https://github.com/XiaoMi/ha_xiaomi_home/pull/1567)
### Fixed
- Update the BLE mesh device online state from the central hub gateway. Partially fix the BLE mesh device online state. [#1579](https://github.com/XiaoMi/ha_xiaomi_home/pull/1579)
- Add unit for xiaomi.toothbrush.p001 brush-head-left-level property. [#1588](https://github.com/XiaoMi/ha_xiaomi_home/pull/1588)
- Fix the playing-state property's access field of xiaomi.wifispeaker.lx04, xiaomi.wifispeaker.lx06, xiaomi.wifispeaker.x08c and xiaomi.wifispeaker.l04m. [#1567](https://github.com/XiaoMi/ha_xiaomi_home/pull/1567)
- Fix the MIoT-Spec-V2 of xiaomi.airc.h09h00 humidity-range unit. [#1567](https://github.com/XiaoMi/ha_xiaomi_home/pull/1567)
## v0.4.6 ## v0.4.6
### Added ### Added
- Add tv-box device as the media player entity. [#1562](https://github.com/XiaoMi/ha_xiaomi_home/pull/1562) - Add tv-box device as the media player entity. [#1562](https://github.com/XiaoMi/ha_xiaomi_home/pull/1562)
@ -12,7 +24,7 @@
- Catch paho-mqtt subscribe error properly. [#1551](https://github.com/XiaoMi/ha_xiaomi_home/pull/1551) - Catch paho-mqtt subscribe error properly. [#1551](https://github.com/XiaoMi/ha_xiaomi_home/pull/1551)
- After the network resumes, keep retrying to fetch the device list until it succeeds. [#1555](https://github.com/XiaoMi/ha_xiaomi_home/pull/1555) - After the network resumes, keep retrying to fetch the device list until it succeeds. [#1555](https://github.com/XiaoMi/ha_xiaomi_home/pull/1555)
- Catch the http post error properly. [#1555](https://github.com/XiaoMi/ha_xiaomi_home/pull/1555) - Catch the http post error properly. [#1555](https://github.com/XiaoMi/ha_xiaomi_home/pull/1555)
- Fixed the format and the access field of daikin.aircondition.k2 and fix: daikin.airfresh.k33 string value properties. [#1561](https://github.com/XiaoMi/ha_xiaomi_home/pull/1561) - Fix the format and the access field of daikin.aircondition.k2 and daikin.airfresh.k33 string value properties. [#1561](https://github.com/XiaoMi/ha_xiaomi_home/pull/1561)
## v0.4.5 ## v0.4.5
### Changed ### Changed

View File

@ -224,6 +224,15 @@ class FeatureFanMode(MIoTServiceEntity, ClimateEntity):
_prop_fan_level: Optional[MIoTSpecProperty] _prop_fan_level: Optional[MIoTSpecProperty]
_fan_mode_map: Optional[dict[int, str]] _fan_mode_map: Optional[dict[int, str]]
# HomeKit Bridge: fan_modes must be "auto"、"low"、"medium"、"high"
_fan_mode_translation_map = {
"自动": "auto",
"低风": "low",
"中风": "medium",
"高风": "high",
}
_fan_mode_translation_map_rev = {v: k for k, v in _fan_mode_translation_map.items()}
def __init__(self, miot_device: MIoTDevice, def __init__(self, miot_device: MIoTDevice,
entity_data: MIoTEntityData) -> None: entity_data: MIoTEntityData) -> None:
"""Initialize the feature class.""" """Initialize the feature class."""
@ -243,7 +252,13 @@ class FeatureFanMode(MIoTServiceEntity, ClimateEntity):
self.entity_id) self.entity_id)
continue continue
self._fan_mode_map = prop.value_list.to_map() self._fan_mode_map = prop.value_list.to_map()
self._attr_fan_modes = prop.value_list.descriptions # save org fan speed
self._raw_fan_modes = prop.value_list.descriptions
self._attr_fan_modes = [
self._fan_mode_translation_map.get(mode, mode)
for mode in self._raw_fan_modes
]
self._attr_supported_features |= ClimateEntityFeature.FAN_MODE self._attr_supported_features |= ClimateEntityFeature.FAN_MODE
self._prop_fan_level = prop self._prop_fan_level = prop
elif prop.name == 'on' and prop.service.name == 'fan-control': elif prop.name == 'on' and prop.service.name == 'fan-control':
@ -264,7 +279,11 @@ class FeatureFanMode(MIoTServiceEntity, ClimateEntity):
if fan_mode == FAN_ON: if fan_mode == FAN_ON:
await self.set_property_async(prop=self._prop_fan_on, value=True) await self.set_property_async(prop=self._prop_fan_on, value=True)
return return
mode_value = self.get_map_key(map_=self._fan_mode_map, value=fan_mode)
chinese_fan_mode = self._fan_mode_translation_map_rev.get(fan_mode, fan_mode)
mode_value = self.get_map_key(map_=self._fan_mode_map, value=chinese_fan_mode)
if mode_value is None or not await self.set_property_async( if mode_value is None or not await self.set_property_async(
prop=self._prop_fan_level, value=mode_value): prop=self._prop_fan_level, value=mode_value):
raise RuntimeError(f'set climate prop.fan_mode failed, {fan_mode}, ' raise RuntimeError(f'set climate prop.fan_mode failed, {fan_mode}, '
@ -278,10 +297,16 @@ class FeatureFanMode(MIoTServiceEntity, ClimateEntity):
if self._prop_fan_level is None and self._prop_fan_on: if self._prop_fan_level is None and self._prop_fan_on:
return (FAN_ON if self.get_prop_value( return (FAN_ON if self.get_prop_value(
prop=self._prop_fan_on) else FAN_OFF) prop=self._prop_fan_on) else FAN_OFF)
return self.get_map_value(
current_chinese_mode = self.get_map_value(
map_=self._fan_mode_map, map_=self._fan_mode_map,
key=self.get_prop_value(prop=self._prop_fan_level)) key=self.get_prop_value(prop=self._prop_fan_level))
if current_chinese_mode is None:
return None
return self._fan_mode_translation_map.get(current_chinese_mode, current_chinese_mode)
class FeatureSwingMode(MIoTServiceEntity, ClimateEntity): class FeatureSwingMode(MIoTServiceEntity, ClimateEntity):
"""SWING_MODE feature of the climate entity.""" """SWING_MODE feature of the climate entity."""

View File

@ -25,7 +25,7 @@
"cryptography", "cryptography",
"psutil" "psutil"
], ],
"version": "v0.4.6", "version": "v0.4.7",
"zeroconf": [ "zeroconf": [
"_miot-central._tcp.local." "_miot-central._tcp.local."
] ]

View File

@ -90,8 +90,9 @@ SUPPORTED_PLATFORMS: list = [
UNSUPPORTED_MODELS: list = [ UNSUPPORTED_MODELS: list = [
'chuangmi.ir.v2', 'chuangmi.ir.v2',
'era.airp.cwb03',
'hmpace.motion.v6nfc', 'hmpace.motion.v6nfc',
'xiaomi.router.rd03' 'k0918.toothbrush.t700'
] ]
DEFAULT_CLOUD_SERVER: str = 'cn' DEFAULT_CLOUD_SERVER: str = 'cn'

View File

@ -682,58 +682,66 @@ class MIoTDevice:
def unit_convert(self, spec_unit: str) -> Optional[str]: def unit_convert(self, spec_unit: str) -> Optional[str]:
"""Convert MIoT unit to Home Assistant unit. """Convert MIoT unit to Home Assistant unit.
25/01/20: All online prop unit statistical tables: unit, quantity. 2026/01/06: property unit statistics of the latest released
MIoT-Spec-V2 for all device models: unit, quantity.
{ {
"no_unit": 148499, "no_unit": 148499,
"percentage": 10042, "percentage": 12074,
"kelvin": 1895, "none": 11857,
"rgb": 772, // color "minutes": 5707,
"celsius": 5762, "celsius": 5767,
"none": 16106, "seconds": 3062,
"hours": 1540, "kelvin": 2511,
"minutes": 5061, "hours": 1380,
"ms": 27, "days": 615,
"watt": 216, "rgb": 752, // color
"arcdegrees": 159, "L": 379,
"ppm": 177, "mg/m3": 335,
"μg/m3": 106, "ppm": 182,
"days": 571, "watt": 246,
"seconds": 2749, "arcdegrees": 130,
"μg/m3": 117,
"kWh": 149,
"ms": 108,
"pascal": 108,
"lux": 100,
"V": 59,
"m": 45,
"A": 36,
"mL": 30,
"arcdegress": 25,
"mA": 26,
"bpm": 21, // realtime-heartrate
"B/s": 21, "B/s": 21,
"pascal": 110, "weeks": 18,
"mg/m3": 339, "dB": 17,
"lux": 125, "calorie": 18, // 1 cal = 4.184 J
"kWh": 124, "metre": 15,
"mv": 2, "hour": 11,
"V": 38, "cm": 12,
"A": 29, "gram": 8,
"mV": 4, "km/h": 8,
"L": 352, "mV": 9,
"m": 37, "times": 4, // exercise-count
"毫摩尔每升": 2, // blood-sugar, cholesterol "kCal": 4,
"mmol/L": 1, // urea
"weeks": 26,
"meter": 3,
"dB": 26,
"hour": 14,
"calorie": 19, // 1 cal = 4.184 J
"ppb": 3,
"arcdegress": 30,
"bpm": 4, // realtime-heartrate
"gram": 7,
"km/h": 9,
"W": 1,
"m3/h": 2,
"kilopascal": 1,
"mL": 4,
"mmHg": 4, "mmHg": 4,
"pcs": 3,
"meter": 3,
"kW": 2,
"KByte/s": 2,
"毫摩尔每升": 2, // blood-sugar, cholesterol
"m3/h": 2,
"ppb": 2,
"mv": 2,
"w": 1, "w": 1,
"bar": 1,
"megapascal": 1,
"kB": 1,
"mmol/L": 1, // urea
"min/km": 1,
"kilopascal": 1,
"liter": 1, "liter": 1,
"cm": 3, "W": 1
"mA": 2,
"kilogram": 2,
"kcal/d": 2, // basal-metabolism
"times": 1 // exercise-count
} }
""" """
unit_map = { unit_map = {

View File

@ -3,20 +3,35 @@
"en": { "en": {
"service:003:property:001:valuelist:000": "Idle", "service:003:property:001:valuelist:000": "Idle",
"service:003:property:001:valuelist:001": "Dry" "service:003:property:001:valuelist:001": "Dry"
},
"tr": {
"service:003:property:001:valuelist:000": "Boşta",
"service:003:property:001:valuelist:001": "Kurutma"
} }
}, },
"urn:miot-spec-v2:device:electronic-valve:0000A0A7:lxzn-02": { "urn:miot-spec-v2:device:electronic-valve:0000A0A7:lxzn-02": {
"tr": {
"service:004:property:001": "Yüksek Güç - Eşik Ayarı"
},
"zh-Hans": { "zh-Hans": {
"service:004:property:001": "功率过高-阈值设置" "service:004:property:001": "功率过高-阈值设置"
} }
}, },
"urn:miot-spec-v2:device:electronic-valve:0000A0A7:ykcn-cbcs": { "urn:miot-spec-v2:device:electronic-valve:0000A0A7:ykcn-cbcs": {
"tr": {
"service:004:property:001": "Yüksek Güç - Eşik Ayarı",
"service:004:property:009": "Düşük Voltaj Alarmı - Eşik Ayarı"
},
"zh-Hans": { "zh-Hans": {
"service:004:property:001": "功率过高-阈值设置", "service:004:property:001": "功率过高-阈值设置",
"service:004:property:009": "欠压告警-阈值设置" "service:004:property:009": "欠压告警-阈值设置"
} }
}, },
"urn:miot-spec-v2:device:fan:0000A005:zhimi-za1": { "urn:miot-spec-v2:device:fan:0000A005:zhimi-za1": {
"tr": {
"service:002:property:005:valuelist:000": "Doğal Rüzgar",
"service:002:property:005:valuelist:001": "Doğrudan Üfleme"
},
"zh-Hans": { "zh-Hans": {
"service:002:property:005:valuelist:000": "自然风", "service:002:property:005:valuelist:000": "自然风",
"service:002:property:005:valuelist:001": "直吹风" "service:002:property:005:valuelist:001": "直吹风"
@ -155,6 +170,28 @@
"service:004:event:001": "Произошло виртуальное событие", "service:004:event:001": "Произошло виртуальное событие",
"service:004:property:001": "Название события" "service:004:property:001": "Название события"
}, },
"tr": {
"service:001": "Cihaz Bilgileri",
"service:001:property:003": "Cihaz ID",
"service:001:property:005": "Seri Numarası (SN)",
"service:002": "Ağ Geçidi",
"service:002:event:001": "Ağ Değişti",
"service:002:event:002": "Ağ Değişti",
"service:002:property:001": "Erişim Yöntemi",
"service:002:property:001:valuelist:000": "Kablolu",
"service:002:property:001:valuelist:001": "5G Kablosuz",
"service:002:property:001:valuelist:002": "2.4G Kablosuz",
"service:002:property:002": "IP Adresi",
"service:002:property:003": "WiFi Ağ Adı",
"service:002:property:004": "Geçerli Zaman",
"service:002:property:005": "DHCP Sunucusu MAC Adresi",
"service:003": "Gösterge Işığı",
"service:003:property:001": "Anahtar",
"service:004": "Sanal Hizmet",
"service:004:action:001": "Sanal Olay Oluştur",
"service:004:event:001": "Sanal Olay Gerçekleşti",
"service:004:property:001": "Olay Adı"
},
"zh-Hant": { "zh-Hant": {
"service:001": "設備信息", "service:001": "設備信息",
"service:001:property:003": "設備ID", "service:001:property:003": "設備ID",
@ -179,6 +216,15 @@
} }
}, },
"urn:miot-spec-v2:device:lock:0000A038:loock-t2pv1": { "urn:miot-spec-v2:device:lock:0000A038:loock-t2pv1": {
"tr": {
"service:003:property:1021:valuelist:000": "Kilitli",
"service:003:property:1021:valuelist:001": "Kilitli (Çocuk Kilidi)",
"service:003:property:1021:valuelist:002": "Kilitli (İçten Kilitli)",
"service:003:property:1021:valuelist:003": "Kilitli (İçten Kilitli + Çocuk Kilidi)",
"service:003:property:1021:valuelist:004": "Kilidi Açık",
"service:003:property:1021:valuelist:008": "Kapı Kapalı Değil (Zaman Aşımı)",
"service:003:property:1021:valuelist:012": "Kapı Aralık"
},
"zh-Hans": { "zh-Hans": {
"service:003:property:1021:valuelist:000": "已上锁", "service:003:property:1021:valuelist:000": "已上锁",
"service:003:property:1021:valuelist:001": "已上锁(童锁)", "service:003:property:1021:valuelist:001": "已上锁(童锁)",
@ -193,6 +239,10 @@
"en": { "en": {
"service:002:property:001": "Soil Moisture" "service:002:property:001": "Soil Moisture"
}, },
"tr": {
"service:002:property:001": "Toprak Nemi",
"service:002:property:003": "Işık Yoğunluğu"
},
"zh-Hans": { "zh-Hans": {
"service:002:property:001": "土壤湿度", "service:002:property:001": "土壤湿度",
"service:002:property:003": "光照强度" "service:002:property:003": "光照强度"
@ -203,6 +253,11 @@
"service:027:property:001": "Fan Switch", "service:027:property:001": "Fan Switch",
"service:027:property:003": "Light Switch", "service:027:property:003": "Light Switch",
"service:027:property:004": "Fan and Light Switch" "service:027:property:004": "Fan and Light Switch"
},
"tr": {
"service:027:property:001": "Vantilatör Anahtarı",
"service:027:property:003": "Işık Anahtarı",
"service:027:property:004": "Vantilatör ve Işık Anahtarı"
} }
}, },
"urn:miot-spec-v2:device:switch:0000A003:lumi-acn040": { "urn:miot-spec-v2:device:switch:0000A003:lumi-acn040": {
@ -213,6 +268,13 @@
"service:016:action:001": "Middle Button Identify", "service:016:action:001": "Middle Button Identify",
"service:017:action:001": "Right Button Identify" "service:017:action:001": "Right Button Identify"
}, },
"tr": {
"service:011": "Sağ Düğme Açma ve Kapama",
"service:011:property:001": "Sağ Düğme Açma ve Kapama",
"service:015:action:001": "Sol Düğme Tanımlama",
"service:016:action:001": "Orta Düğme Tanımlama",
"service:017:action:001": "Sağ Düğme Tanımlama"
},
"zh-Hans": { "zh-Hans": {
"service:015:action:001": "左键确认", "service:015:action:001": "左键确认",
"service:016:action:001": "中键确认", "service:016:action:001": "中键确认",
@ -250,6 +312,37 @@
"service:004:property:005": "температура выносного датчика", "service:004:property:005": "температура выносного датчика",
"service:004:property:006": "максимальная температура цели", "service:004:property:006": "максимальная температура цели",
"service:004:property:007": "минимальная температура цели " "service:004:property:007": "минимальная температура цели "
},
"tr": {
"service:002": "Termostat",
"service:002:property:001": "Anahtar",
"service:002:property:002": "Yük Modu",
"service:002:property:002:valuelist:000": "Isıtmasız",
"service:002:property:002:valuelist:001": "Isıtma",
"service:002:property:003": "Arıza",
"service:002:property:003:valuelist:000": "Sensör Hatası",
"service:002:property:003:valuelist:001": "Hata Yok",
"service:002:property:003:valuelist:002": "Yüksek Sıcaklık Koruması",
"service:002:property:003:valuelist:003": "Düşük Sıcaklık Koruması",
"service:002:property:004": "Mod",
"service:002:property:004:valuelist:000": "Manuel Mod",
"service:002:property:004:valuelist:001": "Ev Modu",
"service:002:property:004:valuelist:002": "Dışarıda Modu",
"service:002:property:004:valuelist:003": "Otomatik Mod",
"service:002:property:004:valuelist:004": "Uyku Modu",
"service:002:property:005": "Hedef Sıcaklık",
"service:002:property:007": "Geçerli Sıcaklık",
"service:004": "Özel Hizmetler",
"service:004:property:001": "Çocuk Kilidi",
"service:004:property:002": "Sensör Tipi",
"service:004:property:002:valuelist:000": "Dahili Sensör",
"service:004:property:002:valuelist:001": "Harici Sensör",
"service:004:property:002:valuelist:002": "Dahili ve Harici Sensör",
"service:004:property:003": "Başlangıç Sıcaklık Farkı",
"service:004:property:004": "Telafi Sıcaklığı",
"service:004:property:005": "Harici Sensör Sıcaklığı",
"service:004:property:006": "Maksimum Hedef Sıcaklık",
"service:004:property:007": "Minimum Hedef Sıcaklık"
} }
}, },
"urn:miot-spec-v2:device:thermostat:0000A031:cubee-th123w": { "urn:miot-spec-v2:device:thermostat:0000A031:cubee-th123w": {
@ -283,6 +376,37 @@
"service:004:property:005": "температура выносного датчика", "service:004:property:005": "температура выносного датчика",
"service:004:property:006": "максимальная температура цели", "service:004:property:006": "максимальная температура цели",
"service:004:property:007": "минимальная температура цели " "service:004:property:007": "минимальная температура цели "
},
"tr": {
"service:002": "Termostat",
"service:002:property:001": "Anahtar",
"service:002:property:002": "Yük Modu",
"service:002:property:002:valuelist:000": "Isıtma",
"service:002:property:002:valuelist:001": "Isıtmasız",
"service:002:property:003": "Arıza",
"service:002:property:003:valuelist:000": "Hata Yok",
"service:002:property:003:valuelist:001": "Sensör Hatası",
"service:002:property:003:valuelist:002": "Yüksek Sıcaklık Koruması",
"service:002:property:003:valuelist:003": "Düşük Sıcaklık Koruması",
"service:002:property:004": "Mod",
"service:002:property:004:valuelist:000": "Manuel Mod",
"service:002:property:004:valuelist:001": "Ev Modu",
"service:002:property:004:valuelist:002": "Dışarıda Modu",
"service:002:property:004:valuelist:003": "Otomatik Mod",
"service:002:property:004:valuelist:004": "Uyku Modu",
"service:002:property:005": "Hedef Sıcaklık",
"service:002:property:007": "Geçerli Sıcaklık",
"service:004": "Özel Hizmetler",
"service:004:property:001": "Çocuk Kilidi",
"service:004:property:002": "Sensör Tipi",
"service:004:property:002:valuelist:000": "Dahili Sensör",
"service:004:property:002:valuelist:001": "Harici Sensör",
"service:004:property:002:valuelist:002": "Dahili ve Harici Sensör",
"service:004:property:003": "Başlangıç Sıcaklık Farkı",
"service:004:property:004": "Telafi Sıcaklığı",
"service:004:property:005": "Harici Sensör Sıcaklığı",
"service:004:property:006": "Maksimum Hedef Sıcaklık",
"service:004:property:007": "Minimum Hedef Sıcaklık"
} }
}, },
"urn:miot-spec-v2:device:thermostat:0000A031:tofan-wk01": { "urn:miot-spec-v2:device:thermostat:0000A031:tofan-wk01": {
@ -291,17 +415,204 @@
"service:002:property:002": "Air Conditioner Mode", "service:002:property:002": "Air Conditioner Mode",
"service:004": "Air Conditioner" "service:004": "Air Conditioner"
}, },
"tr": {
"service:002": "Yerden Isıtma",
"service:002:property:002": "Klima Modu",
"service:004": "Klima"
},
"zh-Hans": { "zh-Hans": {
"service:002": "地暖", "service:002": "地暖",
"service:004": "空调" "service:004": "空调"
} }
}, },
"urn:miot-spec-v2:device:vacuum:0000A006:ijai-v1": { "urn:miot-spec-v2:device:vacuum:0000A006:ijai-v1": {
"tr": {
"service:007:property:005:valuelist:000": "Sessiz",
"service:007:property:005:valuelist:001": "Standart",
"service:007:property:005:valuelist:002": "Orta",
"service:007:property:005:valuelist:003": "Güçlü"
},
"zh-Hans": { "zh-Hans": {
"service:007:property:005:valuelist:000": "安静", "service:007:property:005:valuelist:000": "安静",
"service:007:property:005:valuelist:001": "标准", "service:007:property:005:valuelist:001": "标准",
"service:007:property:005:valuelist:002": "中档", "service:007:property:005:valuelist:002": "中档",
"service:007:property:005:valuelist:003": "强力" "service:007:property:005:valuelist:003": "强力"
} }
},
"urn:miot-spec-v2:device:vacuum:0000A006:narwa-001": {
"tr": {
"service:001": "Cihaz Bilgileri",
"service:002": "Pil",
"service:002:property:001": "Pil Seviyesi",
"service:003": "Robot Süpürge",
"service:003:property:001": "Çalışma Durumu",
"service:004": "Temizleme",
"service:004:property:001": "Temizlik Modu",
"service:004:property:002": "Emme Gücü",
"service:005": "Harita Yönetimi",
"service:005:property:001": "Harita Listesi",
"service:005:property:002": "Aktif Harita",
"service:005:property:003": "Harita Adı",
"service:006": "Tüketim Malzemeleri",
"service:006:property:001": "Ana Fırça Ömrü",
"service:006:property:002": "Yan Fırça Ömrü",
"service:006:property:003": "Filtre Ömrü"
}
},
"urn:miot-spec-v2:device:vacuum:0000A006:narwa-ax11": {
"tr": {
"service:001": "Cihaz Bilgileri",
"service:002": "Pil",
"service:002:property:001": "Pil Seviyesi",
"service:003": "Robot Süpürge",
"service:003:property:001": "Çalışma Durumu",
"service:004": "Temizleme",
"service:004:property:001": "Temizlik Modu",
"service:004:property:002": "Emme Gücü",
"service:005": "Harita Yönetimi",
"service:005:property:001": "Harita Listesi",
"service:005:property:002": "Aktif Harita",
"service:005:property:003": "Harita Adı",
"service:006": "Tüketim Malzemeleri",
"service:006:property:001": "Ana Fırça Ömrü",
"service:006:property:002": "Yan Fırça Ömrü",
"service:006:property:003": "Filtre Ömrü"
}
},
"urn:miot-spec-v2:device:vacuum:0000A006:roidmi-v60": {
"tr": {
"service:001": "Cihaz Bilgileri",
"service:002": "Pil",
"service:002:property:001": "Pil Seviyesi",
"service:003": "Robot Süpürge",
"service:003:property:001": "Çalışma Durumu",
"service:004": "Temizleme",
"service:004:property:001": "Temizlik Modu",
"service:004:property:002": "Emme Gücü",
"service:004:property:003": "Temizlik Süresi",
"service:004:property:004": "Temizlenen Alan",
"service:005": "Harita Yönetimi",
"service:005:property:001": "Harita Listesi",
"service:005:property:002": "Aktif Harita",
"service:005:property:003": "Harita Adı",
"service:006": "Tüketim Malzemeleri",
"service:006:property:001": "Ana Fırça Ömrü",
"service:006:property:002": "Yan Fırça Ömrü",
"service:006:property:003": "Filtre Ömrü",
"service:007": "Emme Gücü",
"service:007:property:001": "Güç Seviyesi",
"service:007:property:001:valuelist:000": "Sessiz",
"service:007:property:001:valuelist:001": "Standart",
"service:007:property:001:valuelist:002": "Orta",
"service:007:property:001:valuelist:003": "Güçlü"
}
},
"urn:miot-spec-v2:device:vacuum:0000A006:viomi-v38": {
"tr": {
"service:001": "Cihaz Bilgileri",
"service:002": "Pil",
"service:002:property:001": "Pil Seviyesi",
"service:002:property:002": "Şarj Durumu",
"service:003": "Robot Süpürge",
"service:003:property:001": "Çalışma Durumu",
"service:003:property:002": "Hata Kodu",
"service:004": "Temizleme",
"service:004:property:001": "Temizlik Modu",
"service:004:property:002": "Emme Gücü",
"service:004:property:003": "Su Seviyesi",
"service:004:property:004": "Temizlik Süresi",
"service:004:property:005": "Temizlenen Alan",
"service:005": "Tüketim Malzemeleri",
"service:005:property:001": "Ana Fırça Ömrü",
"service:005:property:002": "Yan Fırça Ömrü",
"service:005:property:003": "Filtre Ömrü",
"service:005:property:004": "Sensör Ömrü",
"service:005:property:005": "Paspas Bezi Ömrü",
"service:006": "Harita Yönetimi",
"service:006:property:001": "Harita Listesi",
"service:006:property:002": "Aktif Harita",
"service:006:property:003": "Harita Adı",
"service:006:property:004": "Harita ID",
"service:007": "Emme Gücü",
"service:007:property:001": "Güç Seviyesi",
"service:007:property:001:valuelist:000": "Sessiz",
"service:007:property:001:valuelist:001": "Standart",
"service:007:property:001:valuelist:002": "Orta",
"service:007:property:001:valuelist:003": "Güçlü",
"service:007:property:001:valuelist:004": "Maksimum",
"service:008": "Su Tankı",
"service:008:property:001": "Su Seviyesi",
"service:008:property:001:valuelist:000": "Düşük",
"service:008:property:001:valuelist:001": "Orta",
"service:008:property:001:valuelist:002": "Yüksek",
"service:009": "Bölge Temizliği",
"service:009:property:001": "Oda Seçimi",
"service:009:property:002": "Bölge Temizliği",
"service:010": "Zamanlama",
"service:010:property:001": "Zamanlayıcı",
"service:010:property:002": "Temizlik Zamanı",
"service:011": "Ses ve Bildirim",
"service:011:property:001": "Ses Seviyesi",
"service:011:property:002": "Sesli Bildirimler",
"service:012": "Gelişmiş Ayarlar",
"service:012:property:001": "Halı Modu",
"service:012:property:002": "Tekrar Geçiş",
"service:012:property:003": "Kenar Temizliği",
"service:012:property:004": "Engel Algılama"
}
},
"urn:miot-spec-v2:device:vacuum:0000A006:viomi-v5": {
"tr": {
"service:001": "Cihaz Bilgileri",
"service:002": "Pil",
"service:002:property:001": "Pil Seviyesi",
"service:002:property:002": "Şarj Durumu",
"service:003": "Robot Süpürge",
"service:003:property:001": "Çalışma Durumu",
"service:003:property:002": "Hata Kodu",
"service:004": "Temizleme",
"service:004:property:001": "Temizlik Modu",
"service:004:property:002": "Emme Gücü",
"service:004:property:003": "Su Seviyesi",
"service:004:property:004": "Temizlik Süresi",
"service:004:property:005": "Temizlenen Alan",
"service:005": "Tüketim Malzemeleri",
"service:005:property:001": "Ana Fırça Ömrü",
"service:005:property:002": "Yan Fırça Ömrü",
"service:005:property:003": "Filtre Ömrü",
"service:005:property:004": "Sensör Ömrü",
"service:005:property:005": "Paspas Bezi Ömrü",
"service:006": "Harita Yönetimi",
"service:006:property:001": "Harita Listesi",
"service:006:property:002": "Aktif Harita",
"service:006:property:003": "Harita Adı",
"service:006:property:004": "Harita ID",
"service:007": "Emme Gücü",
"service:007:property:001": "Güç Seviyesi",
"service:007:property:001:valuelist:000": "Sessiz",
"service:007:property:001:valuelist:001": "Standart",
"service:007:property:001:valuelist:002": "Orta",
"service:007:property:001:valuelist:003": "Güçlü",
"service:007:property:001:valuelist:004": "Maksimum",
"service:008": "Su Tankı",
"service:008:property:001": "Su Seviyesi",
"service:008:property:001:valuelist:000": "Düşük",
"service:008:property:001:valuelist:001": "Orta",
"service:008:property:001:valuelist:002": "Yüksek",
"service:009": "Bölge Temizliği",
"service:009:property:001": "Oda Seçimi",
"service:009:property:002": "Bölge Temizliği",
"service:010": "Zamanlama",
"service:010:property:001": "Zamanlayıcı",
"service:010:property:002": "Temizlik Zamanı",
"service:011": "Ses ve Bildirim",
"service:011:property:001": "Ses Seviyesi",
"service:011:property:002": "Sesli Bildirimler",
"service:012": "Gelişmiş Ayarlar",
"service:012:property:001": "Halı Modu",
"service:012:property:002": "Tekrar Geçiş",
"service:012:property:003": "Kenar Temizliği",
"service:012:property:004": "Engel Algılama"
}
} }
} }

View File

@ -54,6 +54,9 @@ urn:miot-spec-v2:device:air-conditioner:0000A004:xiaomi-c35:1:
prop.10.6: prop.10.6:
unit: none unit: none
urn:miot-spec-v2:device:air-conditioner:0000A004:xiaomi-c35:2: urn:miot-spec-v2:device:air-conditioner:0000A004:xiaomi-c35:1 urn:miot-spec-v2:device:air-conditioner:0000A004:xiaomi-c35:2: urn:miot-spec-v2:device:air-conditioner:0000A004:xiaomi-c35:1
urn:miot-spec-v2:device:air-conditioner:0000A004:xiaomi-h09h00:4:
prop.10.6:
unit: none
urn:miot-spec-v2:device:air-conditioner:0000A004:xiaomi-h40h00:1: urn:miot-spec-v2:device:air-conditioner:0000A004:xiaomi-h40h00:1:
prop.10.6: prop.10.6:
unit: none unit: none
@ -499,6 +502,26 @@ urn:miot-spec-v2:device:safe-box:0000A042:loock-v1:1:
prop.5.1: prop.5.1:
name: contact-state name: contact-state
expr: (src_value!=1) expr: (src_value!=1)
urn:miot-spec-v2:device:speaker:0000A015:xiaomi-l04m:2:
prop.3.1:
access:
- read
- notify
urn:miot-spec-v2:device:speaker:0000A015:xiaomi-lx04:2:
prop.3.1:
access:
- read
- notify
urn:miot-spec-v2:device:speaker:0000A015:xiaomi-lx06:2:
prop.3.1:
access:
- read
- notify
urn:miot-spec-v2:device:speaker:0000A015:xiaomi-x08c:2:
prop.2.1:
access:
- read
- notify
urn:miot-spec-v2:device:speaker:0000A015:xiaomi-x08e:1: urn:miot-spec-v2:device:speaker:0000A015:xiaomi-x08e:1:
prop.3.1: prop.3.1:
name: playing-state-a name: playing-state-a
@ -559,6 +582,9 @@ urn:miot-spec-v2:device:thermostat:0000A031:suittc-wk168:1:
description: '15' description: '15'
- value: 16 - value: 16
description: '16' description: '16'
urn:miot-spec-v2:device:toothbrush:0000A07E:xiaomi-p001:1:
prop.4.1041:
unit: days
urn:miot-spec-v2:device:water-purifier:0000A013:roswan-lte01:1:0000D05A: urn:miot-spec-v2:device:water-purifier:0000A013:roswan-lte01:1:0000D05A:
prop.4.1: prop.4.1:
unit: ppm unit: ppm