]> git.basschouten.com Git - openhab-addons.git/commitdiff
[miio] add support Xiaomi Smart Air Purifier 4 (modelId: zhimi.airp.mb5) (#13717)
authorMarcel <marcel@verpaalen.com>
Sat, 26 Nov 2022 05:59:34 +0000 (06:59 +0100)
committerGitHub <noreply@github.com>
Sat, 26 Nov 2022 05:59:34 +0000 (06:59 +0100)
* [miio] add support Xiaomi Smart Air Purifier 4 (modelId: zhimi.airp.mb5)

Adding support for the following models:
* Xiaomi Smart Air Purifier 4 (modelId: zhimi.airp.mb5)

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
bundles/org.openhab.binding.miio/README.md
bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java
bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties
bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airp.mb5-miot.json [new file with mode: 0644]

index 0b66a36358eddb5c8c4650d20ea9b4dd3c1751aa..9ecfa668187fdec1fdbf016688fd98567341d1d8 100644 (file)
@@ -504,6 +504,7 @@ Currently the miio binding supports more than 340 different models.
 | Mi Fresh Air Ventilator C1-80      | miio:basic       | [zhimi.airfresh.ua1](#zhimi-airfresh-ua1) | Yes          |            |
 | Mi PM2.5 Air Quality Monitor       | miio:basic       | [zhimi.airmonitor.v1](#zhimi-airmonitor-v1) | Yes          |            |
 | Mi Air Purifier 3C                 | miio:basic       | [zhimi.airp.mb4a](#zhimi-airp-mb4a) | Yes          |            |
+| Xiaomi Smart Air Purifier 4        | miio:basic       | [zhimi.airp.mb5](#zhimi-airp-mb5) | Experimental | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Mi Air Purifier 2 (mini)           | miio:basic       | [zhimi.airpurifier.m1](#zhimi-airpurifier-m1) | Yes          |            |
 | Mi Air Purifier 2                  | miio:basic       | [zhimi.airpurifier.m2](#zhimi-airpurifier-m2) | Yes          |            |
 | Mi Air Purifier 2S                 | miio:basic       | [zhimi.airpurifier.ma1](#zhimi-airpurifier-ma1) | Yes          |            |
@@ -10981,6 +10982,43 @@ Number favorite_speed "Custom Service - Favorite Speed" (G_airp) {channel="miio:
 Number:Time aqi_updata_heartbeat "Custom Service - Aqi Updata Heartbeat" (G_airp) {channel="miio:basic:airp:aqi_updata_heartbeat"}
 ```
 
+### Xiaomi Smart Air Purifier 4 (zhimi.airp.mb5) item file lines
+
+note: Autogenerated example. Replace the id (airp) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
+
+```
+Group G_airp "Xiaomi Smart Air Purifier 4" <status>
+String actions "Actions" (G_airp) {channel="miio:basic:airp:actions"}
+Switch on "Air Purifier - Switch Status" (G_airp) {channel="miio:basic:airp:on"}
+Number fault "Air Purifier - Device Fault" (G_airp) {channel="miio:basic:airp:fault"}
+Number mode "Mode" (G_airp) {channel="miio:basic:airp:mode"}
+Number fan_level "Air Purifier - Fan Level" (G_airp) {channel="miio:basic:airp:fan_level"}
+Switch anion "Air Purifier - Anion" (G_airp) {channel="miio:basic:airp:anion"}
+Number:Dimensionless relative_humidity "Environment - Relative Humidity" (G_airp) {channel="miio:basic:airp:relative_humidity"}
+Number pm2_5_density "Environment - PM2 5 Density" (G_airp) {channel="miio:basic:airp:pm2_5_density"}
+Number:Temperature temperature "Temperature" (G_airp) {channel="miio:basic:airp:temperature"}
+Number:Dimensionless filter_life_level "Filter - Filter Life Level" (G_airp) {channel="miio:basic:airp:filter_life_level"}
+Number:Time filter_used_time "Filter - Filter Used Time" (G_airp) {channel="miio:basic:airp:filter_used_time"}
+Number:Time filter_left_time "Filter - Filter Left Time" (G_airp) {channel="miio:basic:airp:filter_left_time"}
+Switch alarm "Alarm - Alarm" (G_airp) {channel="miio:basic:airp:alarm"}
+Switch physical_controls_locked "Physical Control Locked - Physical Control Locked" (G_airp) {channel="miio:basic:airp:physical_controls_locked"}
+Number brightness "Screen - Brightness" (G_airp) {channel="miio:basic:airp:brightness"}
+Number temperature_display_unit "Device Display Unit - Temperature Display Unit" (G_airp) {channel="miio:basic:airp:temperature_display_unit"}
+Number motor_speed_rpm "Custom Service - Motor Speed Rpm" (G_airp) {channel="miio:basic:airp:motor_speed_rpm"}
+Number favorite_speed "Custom Service - Favorite Speed" (G_airp) {channel="miio:basic:airp:favorite_speed"}
+Number motor_set_speed "Custom Service - Motor Set Speed" (G_airp) {channel="miio:basic:airp:motor_set_speed"}
+Number favorite_level "Custom Service - Favorite Level" (G_airp) {channel="miio:basic:airp:favorite_level"}
+Switch buttom_door "Custom Service - Buttom Door" (G_airp) {channel="miio:basic:airp:bottom_door"}
+Number reboot_cause "Custom Service - Reboot Cause" (G_airp) {channel="miio:basic:airp:reboot_cause"}
+Number manual_level "Custom Service - Manual Level" (G_airp) {channel="miio:basic:airp:manual_level"}
+Number country_code "Custom Service - Country Code" (G_airp) {channel="miio:basic:airp:country_code"}
+Number iic_error_count "Custom Service - Iic Error Count" (G_airp) {channel="miio:basic:airp:iic_error_count"}
+Number:Time filter_used_debug "Filter Time - Filter Used Debug" (G_airp) {channel="miio:basic:airp:filter_used_debug"}
+Number purify_volume "Aqi - Purify Volume" (G_airp) {channel="miio:basic:airp:purify_volume"}
+Number average_aqi "Aqi - Average Aqi" (G_airp) {channel="miio:basic:airp:average_aqi"}
+Number aqi_state "Aqi - Aqi State" (G_airp) {channel="miio:basic:airp:aqi_state"}
+```
+
 ### Mi Air Purifier 2 (mini) (zhimi.airpurifier.m1) item file lines
 
 note: Autogenerated example. Replace the id (airpurifier) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
index 0a1dc9787a87a015e80d748350c2f90c5d46be5b..ccc2894442b0159807d04c7fcc4bcfb2d1e652e5 100644 (file)
@@ -388,6 +388,7 @@ public enum MiIoDevices {
     ZHIMI_AIRFRESH_UA1("zhimi.airfresh.ua1", "Mi Fresh Air Ventilator C1-80", THING_TYPE_BASIC),
     ZHIMI_AIRMONITOR_V1("zhimi.airmonitor.v1", "Mi PM2.5 Air Quality Monitor", THING_TYPE_BASIC),
     ZHIMI_AIRP_MB4A("zhimi.airp.mb4a", "Mi Air Purifier 3C", THING_TYPE_BASIC),
+    ZHIMI_AIRP_MB5("zhimi.airp.mb5", "Xiaomi Smart Air Purifier 4", THING_TYPE_BASIC),
     ZHIMI_AIRPURIFIER_M1("zhimi.airpurifier.m1", "Mi Air Purifier 2 (mini)", THING_TYPE_BASIC),
     ZHIMI_AIRPURIFIER_M2("zhimi.airpurifier.m2", "Mi Air Purifier 2", THING_TYPE_BASIC),
     ZHIMI_AIRPURIFIER_MA1("zhimi.airpurifier.ma1", "Mi Air Purifier 2S", THING_TYPE_BASIC),
index 558fce83bc6fc427045832318733d35fad71ed62..4d2e6759289cbde4c295e00c4d973989fb9ed5f3 100644 (file)
@@ -318,6 +318,7 @@ thing.zhimi.airfresh.va4 = Smartmi Fresh Air System (Heating)
 thing.zhimi.airfresh.ua1 = Mi Fresh Air Ventilator C1-80
 thing.zhimi.airmonitor.v1 = Mi PM2.5 Air Quality Monitor
 thing.zhimi.airp.mb4a = Mi Air Purifier 3C
+thing.zhimi.airp.mb5 = Xiaomi Smart Air Purifier 4
 thing.zhimi.airpurifier.m1 = Mi Air Purifier 2 (mini)
 thing.zhimi.airpurifier.m2 = Mi Air Purifier 2
 thing.zhimi.airpurifier.ma1 = Mi Air Purifier 2S
@@ -1540,6 +1541,35 @@ ch.zhimi.airp.mb4a-miot.moto_speed_rpm = Custom Service - Moto Speed Rpm
 ch.zhimi.airp.mb4a-miot.on = Power
 ch.zhimi.airp.mb4a-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked
 ch.zhimi.airp.mb4a-miot.pm2_5_density = Environment - PM2 5 Density
+ch.zhimi.airp.mb5-miot.actions = Actions
+ch.zhimi.airp.mb5-miot.alarm = Alarm - Alarm
+ch.zhimi.airp.mb5-miot.anion = Air Purifier - Anion
+ch.zhimi.airp.mb5-miot.aqi_state = Aqi - Aqi State
+ch.zhimi.airp.mb5-miot.average_aqi = Aqi - Average Aqi
+ch.zhimi.airp.mb5-miot.brightness = Screen - Brightness
+ch.zhimi.airp.mb5-miot.bottom_door = Custom Service - Bottom Door
+ch.zhimi.airp.mb5-miot.country_code = Custom Service - Country Code
+ch.zhimi.airp.mb5-miot.fan_level = Air Purifier - Fan Level
+ch.zhimi.airp.mb5-miot.fault = Air Purifier - Device Fault
+ch.zhimi.airp.mb5-miot.favorite_level = Custom Service - Favorite Level
+ch.zhimi.airp.mb5-miot.favorite_speed = Custom Service - Favorite Speed
+ch.zhimi.airp.mb5-miot.filter_left_time = Filter - Filter Left Time
+ch.zhimi.airp.mb5-miot.filter_life_level = Filter - Filter Life Level
+ch.zhimi.airp.mb5-miot.filter_used_debug = Filter Time - Filter Used Debug
+ch.zhimi.airp.mb5-miot.filter_used_time = Filter - Filter Used Time
+ch.zhimi.airp.mb5-miot.iic_error_count = Custom Service - Iic Error Count
+ch.zhimi.airp.mb5-miot.manual_level = Custom Service - Manual Level
+ch.zhimi.airp.mb5-miot.mode = Mode
+ch.zhimi.airp.mb5-miot.motor_speed_rpm = Custom Service - Motor Speed Rpm
+ch.zhimi.airp.mb5-miot.motor_set_speed = Custom Service - Motor Set Speed
+ch.zhimi.airp.mb5-miot.on = Air Purifier - Switch Status
+ch.zhimi.airp.mb5-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked
+ch.zhimi.airp.mb5-miot.pm2_5_density = Environment - PM2 5 Density
+ch.zhimi.airp.mb5-miot.purify_volume = Aqi - Purify Volume
+ch.zhimi.airp.mb5-miot.reboot_cause = Custom Service - Reboot Cause
+ch.zhimi.airp.mb5-miot.relative_humidity = Environment - Relative Humidity
+ch.zhimi.airp.mb5-miot.temperature = Temperature
+ch.zhimi.airp.mb5-miot.temperature_display_unit = Device Display Unit - Temperature Display Unit
 ch.zhimi.airpurifier.m1.aqi = Air Quality Index
 ch.zhimi.airpurifier.m1.averageaqi = Average Air Quality Index
 ch.zhimi.airpurifier.m1.buzzer = Buzzer Status
@@ -3105,6 +3135,47 @@ option.zhimi.airp.mb4a-miot.actions-filter-reset-filter-life = Filter Reset Filt
 option.zhimi.airp.mb4a-miot.mode-0 = Auto
 option.zhimi.airp.mb4a-miot.mode-1 = Sleep
 option.zhimi.airp.mb4a-miot.mode-2 = Favorite
+option.zhimi.airp.mb5-miot.actions-air-purifier-toggle = Air Purifier Toggle
+option.zhimi.airp.mb5-miot.actions-custom-service-toggle-fan-level = Custom Service Toggle Fan Level
+option.zhimi.airp.mb5-miot.actions-custom-service-toggle-mode = Custom Service Toggle Mode
+option.zhimi.airp.mb5-miot.actions-filter-reset-filter-life = Filter Reset Filter Life
+option.zhimi.airp.mb5-miot.aqi_state-0 = AQI-GOOD-L
+option.zhimi.airp.mb5-miot.aqi_state-1 = AQI-GOOD-H
+option.zhimi.airp.mb5-miot.aqi_state-2 = AQI-MID-L
+option.zhimi.airp.mb5-miot.aqi_state-3 = AQI-MID-H
+option.zhimi.airp.mb5-miot.aqi_state-4 = AQI-BAD-L
+option.zhimi.airp.mb5-miot.aqi_state-5 = AQI-BAD-H
+option.zhimi.airp.mb5-miot.brightness-0 = Close
+option.zhimi.airp.mb5-miot.brightness-1 = Bright
+option.zhimi.airp.mb5-miot.brightness-2 = Brightest
+option.zhimi.airp.mb5-miot.country_code-1 = US
+option.zhimi.airp.mb5-miot.country_code-2 = EU
+option.zhimi.airp.mb5-miot.country_code-44 = UK
+option.zhimi.airp.mb5-miot.country_code-66 = TH
+option.zhimi.airp.mb5-miot.country_code-82 = KR
+option.zhimi.airp.mb5-miot.country_code-886 = TW
+option.zhimi.airp.mb5-miot.country_code-91 = IN
+option.zhimi.airp.mb5-miot.fan_level-1 = Level1
+option.zhimi.airp.mb5-miot.fan_level-2 = Level2
+option.zhimi.airp.mb5-miot.fan_level-3 = Level3
+option.zhimi.airp.mb5-miot.fault-0 = No Faults
+option.zhimi.airp.mb5-miot.fault-1 = Sensor PM Error
+option.zhimi.airp.mb5-miot.fault-2 = Temp Error
+option.zhimi.airp.mb5-miot.fault-3 = Hum Error
+option.zhimi.airp.mb5-miot.fault-4 = No Filter
+option.zhimi.airp.mb5-miot.manual_level-1 = Level1
+option.zhimi.airp.mb5-miot.manual_level-2 = Level2
+option.zhimi.airp.mb5-miot.manual_level-3 = Level3
+option.zhimi.airp.mb5-miot.mode-0 = Auto
+option.zhimi.airp.mb5-miot.mode-1 = Sleep
+option.zhimi.airp.mb5-miot.mode-2 = Favorite
+option.zhimi.airp.mb5-miot.mode-3 = Manual
+option.zhimi.airp.mb5-miot.reboot_cause-0 = REASON-HW-BOOT
+option.zhimi.airp.mb5-miot.reboot_cause-1 = REASON-USER-REBOOT
+option.zhimi.airp.mb5-miot.reboot_cause-2 = REASON-UPDATE
+option.zhimi.airp.mb5-miot.reboot_cause-3 = REASON-WDT
+option.zhimi.airp.mb5-miot.temperature_display_unit-1 = Celsius
+option.zhimi.airp.mb5-miot.temperature_display_unit-2 = Fahrenheit
 option.zhimi.airpurifier.m1.favoritelevel-0 = Favorite 0
 option.zhimi.airpurifier.m1.favoritelevel-1 = Favorite 1
 option.zhimi.airpurifier.m1.favoritelevel-10 = Favorite 10
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airp.mb5-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airp.mb5-miot.json
new file mode 100644 (file)
index 0000000..8684009
--- /dev/null
@@ -0,0 +1,747 @@
+{
+       "deviceMapping": {
+               "id": [
+                       "zhimi.airp.mb5"
+               ],
+               "propertyMethod": "get_properties",
+               "maxProperties": 1,
+               "channels": [
+                       {
+                               "property": "",
+                               "friendlyName": "Actions",
+                               "channel": "actions",
+                               "type": "String",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "air-purifier-toggle",
+                                                       "label": "Air Purifier Toggle"
+                                               },
+                                               {
+                                                       "value": "filter-reset-filter-life",
+                                                       "label": "Filter Reset Filter Life"
+                                               },
+                                               {
+                                                       "value": "custom-service-toggle-mode",
+                                                       "label": "Custom Service Toggle Mode"
+                                               },
+                                               {
+                                                       "value": "custom-service-toggle-fan-level",
+                                                       "label": "Custom Service Toggle Fan Level"
+                                               }
+                                       ]
+                               },
+                               "refresh": false,
+                               "actions": [
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 2,
+                                               "aiid": 1,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "air-purifier-toggle"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "UNKNOWN",
+                                               "parameters": [
+                                                       3.0
+                                               ],
+                                               "siid": 4,
+                                               "aiid": 1,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "filter-reset-filter-life"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 9,
+                                               "aiid": 1,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "custom-service-toggle-mode"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 9,
+                                               "aiid": 2,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "custom-service-toggle-fan-level"
+                                                               }
+                                                       ]
+                                               }
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"air-purifier-toggle\"\u003d\"Air Purifier Toggle\",\"filter-reset-filter-life\"\u003d\"Filter Reset Filter Life\",\"custom-service-toggle-mode\"\u003d\"Custom Service Toggle Mode\",\"custom-service-toggle-fan-level\"\u003d\"Custom Service Toggle Fan Level\"]`"
+                       },
+                       {
+                               "property": "on",
+                               "siid": 2,
+                               "piid": 1,
+                               "friendlyName": "Air Purifier - Switch Status",
+                               "channel": "on",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ],
+                               "category": "switch",
+                               "tags": [
+                                       "Switch"
+                               ]
+                       },
+                       {
+                               "property": "fault",
+                               "siid": 2,
+                               "piid": 2,
+                               "friendlyName": "Air Purifier - Device Fault",
+                               "channel": "fault",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "No Faults"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Sensor PM Error"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Temp Error"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Hum Error"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "No Filter"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"No Faults\",\"1\"\u003d\"Sensor PM Error\",\"2\"\u003d\"Temp Error\",\"3\"\u003d\"Hum Error\",\"4\"\u003d\"No Filter\"]`"
+                       },
+                       {
+                               "property": "mode",
+                               "siid": 2,
+                               "piid": 4,
+                               "friendlyName": "Mode",
+                               "channel": "mode",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Auto"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Sleep"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Favorite"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Manual"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Auto\",\"1\"\u003d\"Sleep\",\"2\"\u003d\"Favorite\",\"3\"\u003d\"Manual\"]`"
+                       },
+                       {
+                               "property": "fan-level",
+                               "siid": 2,
+                               "piid": 5,
+                               "friendlyName": "Air Purifier - Fan Level",
+                               "channel": "fan_level",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "1",
+                                                       "label": "Level1"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Level2"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Level3"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"1\"\u003d\"Level1\",\"2\"\u003d\"Level2\",\"3\"\u003d\"Level3\"]`"
+                       },
+                       {
+                               "property": "anion",
+                               "siid": 2,
+                               "piid": 6,
+                               "friendlyName": "Air Purifier - Anion",
+                               "channel": "anion",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "humidity",
+                               "siid": 3,
+                               "piid": 1,
+                               "friendlyName": "Environment - Relative Humidity",
+                               "channel": "relative_humidity",
+                               "type": "Number:Dimensionless",
+                               "unit": "percentage",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 100,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "pm2.5-density",
+                               "siid": 3,
+                               "piid": 4,
+                               "friendlyName": "Environment - PM2 5 Density",
+                               "channel": "pm2_5_density",
+                               "type": "Number",
+                               "unit": "μg/m3",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 1000,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "temperature",
+                               "siid": 3,
+                               "piid": 7,
+                               "friendlyName": "Temperature",
+                               "channel": "temperature",
+                               "type": "Number:Temperature",
+                               "unit": "celsius",
+                               "stateDescription": {
+                                       "minimum": -30,
+                                       "maximum": 100,
+                                       "pattern": "%.1f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "filter-life-level",
+                               "siid": 4,
+                               "piid": 1,
+                               "friendlyName": "Filter - Filter Life Level",
+                               "channel": "filter_life_level",
+                               "type": "Number:Dimensionless",
+                               "unit": "percentage",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 100,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "filter-used-time",
+                               "siid": 4,
+                               "piid": 3,
+                               "friendlyName": "Filter - Filter Used Time",
+                               "channel": "filter_used_time",
+                               "type": "Number:Time",
+                               "unit": "hours",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 65000,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "filter-left-time",
+                               "siid": 4,
+                               "piid": 4,
+                               "friendlyName": "Filter - Filter Left Time",
+                               "channel": "filter_left_time",
+                               "type": "Number:Time",
+                               "unit": "days",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 1000,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "alarm",
+                               "siid": 6,
+                               "piid": 1,
+                               "friendlyName": "Alarm - Alarm",
+                               "channel": "alarm",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "physical-controls-locked",
+                               "siid": 8,
+                               "piid": 1,
+                               "friendlyName": "Physical Control Locked - Physical Control Locked",
+                               "channel": "physical_controls_locked",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "brightness",
+                               "siid": 13,
+                               "piid": 2,
+                               "friendlyName": "Screen - Brightness",
+                               "channel": "brightness",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Close"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Bright"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Brightest"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Close\",\"1\"\u003d\"Bright\",\"2\"\u003d\"Brightest\"]`"
+                       },
+                       {
+                               "property": "temperature-display-unit",
+                               "siid": 14,
+                               "piid": 1,
+                               "friendlyName": "Device Display Unit - Temperature Display Unit",
+                               "channel": "temperature_display_unit",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "1",
+                                                       "label": "Celsius"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Fahrenheit"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"1\"\u003d\"Celsius\",\"2\"\u003d\"Fahrenheit\"]`"
+                       },
+                       {
+                               "property": "motor-speed-rpm",
+                               "siid": 9,
+                               "piid": 1,
+                               "friendlyName": "Custom Service - Motor Speed Rpm",
+                               "channel": "motor_speed_rpm",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 65535,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "favorite-speed",
+                               "siid": 9,
+                               "piid": 2,
+                               "friendlyName": "Custom Service - Favorite Speed",
+                               "channel": "favorite_speed",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 200,
+                                       "maximum": 2300,
+                                       "step": 1,
+                                       "pattern": "%.0f"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "motor-set-speed",
+                               "siid": 9,
+                               "piid": 4,
+                               "friendlyName": "Custom Service - Motor Set Speed",
+                               "channel": "motor_set_speed",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 2000,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "favorite-level",
+                               "siid": 9,
+                               "piid": 5,
+                               "friendlyName": "Custom Service - Favorite Level",
+                               "channel": "favorite_level",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 11,
+                                       "step": 1,
+                                       "pattern": "%.0f"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "bottom-door",
+                               "siid": 9,
+                               "piid": 6,
+                               "friendlyName": "Custom Service - Buttom Door",
+                               "channel": "bottom_door",
+                               "type": "Switch",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "reboot-cause",
+                               "siid": 9,
+                               "piid": 8,
+                               "friendlyName": "Custom Service - Reboot Cause",
+                               "channel": "reboot_cause",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "REASON-HW-BOOT"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "REASON-USER-REBOOT"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "REASON-UPDATE"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "REASON-WDT"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"REASON-HW-BOOT\",\"1\"\u003d\"REASON-USER-REBOOT\",\"2\"\u003d\"REASON-UPDATE\",\"3\"\u003d\"REASON-WDT\"]`"
+                       },
+                       {
+                               "property": "manual-level",
+                               "siid": 9,
+                               "piid": 9,
+                               "friendlyName": "Custom Service - Manual Level",
+                               "channel": "manual_level",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "1",
+                                                       "label": "Level1"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Level2"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Level3"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"1\"\u003d\"Level1\",\"2\"\u003d\"Level2\",\"3\"\u003d\"Level3\"]`"
+                       },
+                       {
+                               "property": "country-code",
+                               "siid": 9,
+                               "piid": 10,
+                               "friendlyName": "Custom Service - Country Code",
+                               "channel": "country_code",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "2",
+                                                       "label": "EU"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "US"
+                                               },
+                                               {
+                                                       "value": "82",
+                                                       "label": "KR"
+                                               },
+                                               {
+                                                       "value": "886",
+                                                       "label": "TW"
+                                               },
+                                               {
+                                                       "value": "66",
+                                                       "label": "TH"
+                                               },
+                                               {
+                                                       "value": "44",
+                                                       "label": "UK"
+                                               },
+                                               {
+                                                       "value": "91",
+                                                       "label": "IN"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"2\"\u003d\"EU\",\"1\"\u003d\"US\",\"82\"\u003d\"KR\",\"886\"\u003d\"TW\",\"66\"\u003d\"TH\",\"44\"\u003d\"UK\",\"91\"\u003d\"IN\"]`"
+                       },
+                       {
+                               "property": "iic-error-count",
+                               "siid": 9,
+                               "piid": 11,
+                               "friendlyName": "Custom Service - Iic Error Count",
+                               "channel": "iic_error_count",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 65535,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "filter-used-debug",
+                               "siid": 10,
+                               "piid": 1,
+                               "friendlyName": "Filter Time - Filter Used Debug",
+                               "channel": "filter_used_debug",
+                               "type": "Number:Time",
+                               "unit": "hours",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 7000,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": false,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "purify-volume",
+                               "siid": 11,
+                               "piid": 1,
+                               "friendlyName": "Aqi - Purify Volume",
+                               "channel": "purify_volume",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "average-aqi",
+                               "siid": 11,
+                               "piid": 2,
+                               "friendlyName": "Aqi - Average Aqi",
+                               "channel": "average_aqi",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 600,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "aqi-state",
+                               "siid": 11,
+                               "piid": 3,
+                               "friendlyName": "Aqi - Aqi State",
+                               "channel": "aqi_state",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "AQI-GOOD-L"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "AQI-GOOD-H"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "AQI-MID-L"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "AQI-MID-H"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "AQI-BAD-L"
+                                               },
+                                               {
+                                                       "value": "5",
+                                                       "label": "AQI-BAD-H"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"AQI-GOOD-L\",\"1\"\u003d\"AQI-GOOD-H\",\"2\"\u003d\"AQI-MID-L\",\"3\"\u003d\"AQI-MID-H\",\"4\"\u003d\"AQI-BAD-L\",\"5\"\u003d\"AQI-BAD-H\"]`"
+                       }
+               ],
+               "experimental": true
+       }
+}