]> git.basschouten.com Git - openhab-addons.git/commitdiff
[miio] Support of Smartmi Air Purifier zhimi.airpurifier.za1 (#10534)
authorMarcel <marcel@verpaalen.com>
Tue, 27 Apr 2021 14:45:10 +0000 (16:45 +0200)
committerGitHub <noreply@github.com>
Tue, 27 Apr 2021 14:45:10 +0000 (16:45 +0200)
Closes #10526

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
bundles/org.openhab.binding.miio/README.base.md
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/database/zhimi.airpurifier.vb2-miot.json
bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.za1-miot.json [new file with mode: 0644]

index 8223a88c09f2ae789f8bad1cf28df048519fb665..dc998c7e772236afff69d6ca790ae41c0355b516 100644 (file)
@@ -528,4 +528,4 @@ Mapping of countries in mihome app to server:
 | Yemen                    | YE           | sg     |
 | Zambia                   | ZM           | sg     |
 | Zimbabwe                 | ZW           | sg     |
-| Åland Islands            | AX           | de     |
\ No newline at end of file
+| Åland Islands            | AX           | de     |
index 6f2ed2fd5e9c7ef699f8578861301158cfed6794..371dc00fb876eed1c80d6fbb76542eed277936c9 100644 (file)
@@ -464,6 +464,7 @@ Currently the miio binding supports more than 280 different models.
 | Mi Air Purifier Pro H        | miio:basic       | [zhimi.airpurifier.vb2](#zhimi-airpurifier-vb2) | Yes       |            |
 | Mi Air Purifier virtual      | miio:unsupported | zhimi.airpurifier.virtual | No        |            |
 | Mi Air Purifier 2(Virtual)   | miio:unsupported | zhimi.airpurifier.vtl_m1 | No        |            |
+| Smartmi Air Purifier         | miio:basic       | [zhimi.airpurifier.za1](#zhimi-airpurifier-za1) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Mi Standing Fan              | miio:basic       | [zhimi.fan.sa1](#zhimi-fan-sa1) | Yes       |            |
 | Mi Smart Fan                 | miio:basic       | [zhimi.fan.v1](#zhimi-fan-v1) | Yes       |            |
 | Smartmi DC Pedestal Fan      | miio:basic       | [zhimi.fan.v2](#zhimi-fan-v2) | Yes       |            |
@@ -4497,6 +4498,43 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
 | powertime            | Number:duration      | Others - Powertime                       |            |
 | country_code         | Number               | Others - Country Code                    | Value mapping ["91"="India","44"="UK","852"="Hong Kong","886"="Taiwan","82"="Korea"] |
 
+### Smartmi Air Purifier (<a name="zhimi-airpurifier-za1">zhimi.airpurifier.za1</a>) Channels
+
+| Channel              | Type                 | Description                              | Comment    |
+|----------------------|----------------------|------------------------------------------|------------|
+| on                   | Switch               | Air Purifier - Switch Status             |            |
+| fault                | Number               | Air Purifier - Fault                     | Value mapping ["0"="No faults","1"="m1_run","2"="m1_stuck","3"="no_sensor","4"="error_hum","5"="error_temp","6"="timer_error1","7"="timer_error2"] |
+| mode                 | Number               | Air Purifier - Mode                      | Value mapping ["0"="Auto","1"="Sleep","2"="Favorite"] |
+| air_quality          | Number               | Environment - Air Quality                |            |
+| pm2_5_density        | Number               | Environment - PM2 5 Density              |            |
+| relative_humidity    | Number:Dimensionless | Environment - Relative Humidity          |            |
+| temperature          | Number:Temperature   | Environment - Temperature                |            |
+| filter_life_level    | Number:Dimensionless | Filter - Filter Life Level               |            |
+| filter_used_time     | Number:Time          | Filter - Filter Used Time                |            |
+| alarm                | Switch               | Alarm - Alarm                            |            |
+| brightness           | Number               | Indicator Light - Brightness             | Value mapping ["0"="Bright","1"="Light","2"="Off"] |
+| physical_controls_locked | Switch               | Physical Control Locked - Physical Control Locked |            |
+| filter_max_time      | Number:Time          | Filter Time - Filter Max Time            |            |
+| favorite_fan_level   | Number               | Motor Speed - Favorite Fan Level         |            |
+| motor_speed          | Number               | Motor Speed - Motor Speed                |            |
+| use_time             | Number:Time          | Use Time - Use Time                      |            |
+| purify_volume        | Number               | Aqi - Purify Volume                      |            |
+| average_aqi          | Number               | Aqi - Average Aqi                        |            |
+| aqi_zone             | String               | Aqi - Aqi Zone                           |            |
+| sensor_state         | Number               | Aqi - Sensor State                       | Value mapping ["0"="waiting","1"="ready"] |
+| rfid_tag             | String               | Rfid - Rfid Tag                          |            |
+| rfid_factory_id      | String               | Rfid - Rfid Factory Id                   |            |
+| rfid_product_id      | String               | Rfid - Rfid Product Id                   |            |
+| rfid_time            | String               | Rfid - Rfid Time                         |            |
+| rfid_serial_num      | String               | Rfid - Rfid Serial Num                   |            |
+| reboot_cause         | Number               | Others - Reboot Cause                    | Value mapping ["0"="hardware","1"="human","2"="upgrade","3"="watchdog"] |
+| hw_version           | Number               | Others - Hw Version                      |            |
+| sgp_ethanol          | Number               | Others - Sgp Ethanol                     |            |
+| sgp_serial           | Number               | Others - Sgp Serial                      |            |
+| sgp_version          | String               | Others - Sgp Version                     |            |
+| country_code         | Number               | Others - Country Code                    | Value mapping ["1"="America","2"="Canada","3"="Singapore","4"="Europe","5"="Australian","6"="Korea","7"="China","8"="France","9"="Japanese","10"="Taiwan"] |
+| gesture_status       | Switch               | Others - Gesture Status                  |            |
+
 ### Mi Standing Fan (<a name="zhimi-fan-sa1">zhimi.fan.sa1</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
@@ -9659,6 +9697,46 @@ Number:duration powertime "Others - Powertime" (G_airpurifier) {channel="miio:ba
 Number country_code "Others - Country Code" (G_airpurifier) {channel="miio:basic:airpurifier:country_code"}
 ```
 
+### Smartmi Air Purifier (zhimi.airpurifier.za1) 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.
+
+```
+Group G_airpurifier "Smartmi Air Purifier" <status>
+Switch on "Air Purifier - Switch Status" (G_airpurifier) {channel="miio:basic:airpurifier:on"}
+Number fault "Air Purifier - Fault" (G_airpurifier) {channel="miio:basic:airpurifier:fault"}
+Number mode "Air Purifier - Mode" (G_airpurifier) {channel="miio:basic:airpurifier:mode"}
+Number air_quality "Environment - Air Quality" (G_airpurifier) {channel="miio:basic:airpurifier:air_quality"}
+Number pm2_5_density "Environment - PM2 5 Density" (G_airpurifier) {channel="miio:basic:airpurifier:pm2_5_density"}
+Number:Dimensionless relative_humidity "Environment - Relative Humidity" (G_airpurifier) {channel="miio:basic:airpurifier:relative_humidity"}
+Number:Temperature temperature "Environment - Temperature" (G_airpurifier) {channel="miio:basic:airpurifier:temperature"}
+Number:Dimensionless filter_life_level "Filter - Filter Life Level" (G_airpurifier) {channel="miio:basic:airpurifier:filter_life_level"}
+Number:Time filter_used_time "Filter - Filter Used Time" (G_airpurifier) {channel="miio:basic:airpurifier:filter_used_time"}
+Switch alarm "Alarm - Alarm" (G_airpurifier) {channel="miio:basic:airpurifier:alarm"}
+Number brightness "Indicator Light - Brightness" (G_airpurifier) {channel="miio:basic:airpurifier:brightness"}
+Switch physical_controls_locked "Physical Control Locked - Physical Control Locked" (G_airpurifier) {channel="miio:basic:airpurifier:physical_controls_locked"}
+Number:Time filter_max_time "Filter Time - Filter Max Time" (G_airpurifier) {channel="miio:basic:airpurifier:filter_max_time"}
+Number favorite_fan_level "Motor Speed - Favorite Fan Level" (G_airpurifier) {channel="miio:basic:airpurifier:favorite_fan_level"}
+Number motor_speed "Motor Speed - Motor Speed" (G_airpurifier) {channel="miio:basic:airpurifier:motor_speed"}
+Number:Time use_time "Use Time - Use Time" (G_airpurifier) {channel="miio:basic:airpurifier:use_time"}
+Number purify_volume "Aqi - Purify Volume" (G_airpurifier) {channel="miio:basic:airpurifier:purify_volume"}
+Number average_aqi "Aqi - Average Aqi" (G_airpurifier) {channel="miio:basic:airpurifier:average_aqi"}
+String aqi_zone "Aqi - Aqi Zone" (G_airpurifier) {channel="miio:basic:airpurifier:aqi_zone"}
+Number sensor_state "Aqi - Sensor State" (G_airpurifier) {channel="miio:basic:airpurifier:sensor_state"}
+String rfid_tag "Rfid - Rfid Tag" (G_airpurifier) {channel="miio:basic:airpurifier:rfid_tag"}
+String rfid_factory_id "Rfid - Rfid Factory Id" (G_airpurifier) {channel="miio:basic:airpurifier:rfid_factory_id"}
+String rfid_product_id "Rfid - Rfid Product Id" (G_airpurifier) {channel="miio:basic:airpurifier:rfid_product_id"}
+String rfid_time "Rfid - Rfid Time" (G_airpurifier) {channel="miio:basic:airpurifier:rfid_time"}
+String rfid_serial_num "Rfid - Rfid Serial Num" (G_airpurifier) {channel="miio:basic:airpurifier:rfid_serial_num"}
+Number reboot_cause "Others - Reboot Cause" (G_airpurifier) {channel="miio:basic:airpurifier:reboot_cause"}
+Number hw_version "Others - Hw Version" (G_airpurifier) {channel="miio:basic:airpurifier:hw_version"}
+Number sgp_ethanol "Others - Sgp Ethanol" (G_airpurifier) {channel="miio:basic:airpurifier:sgp_ethanol"}
+Number sgp_serial "Others - Sgp Serial" (G_airpurifier) {channel="miio:basic:airpurifier:sgp_serial"}
+String sgp_version "Others - Sgp Version" (G_airpurifier) {channel="miio:basic:airpurifier:sgp_version"}
+Number country_code "Others - Country Code" (G_airpurifier) {channel="miio:basic:airpurifier:country_code"}
+Switch gesture_status "Others - Gesture Status" (G_airpurifier) {channel="miio:basic:airpurifier:gesture_status"}
+```
+
 ### Mi Standing Fan (zhimi.fan.sa1) item file lines
 
 note: Autogenerated example. Replace the id (fan) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
index 16f871fc5f3b6330e6730f00f1a0d357caa3be69..bba32932b0d89f40363168a50f0176e1e221caf6 100644 (file)
@@ -348,6 +348,7 @@ public enum MiIoDevices {
     ZHIMI_AIRPURIFIER_VB2("zhimi.airpurifier.vb2", "Mi Air Purifier Pro H", THING_TYPE_BASIC),
     ZHIMI_AIRPURIFIER_VIRTUAL("zhimi.airpurifier.virtual", "Mi Air Purifier virtual", THING_TYPE_UNSUPPORTED),
     ZHIMI_AIRPURIFIER_VTL_M1("zhimi.airpurifier.vtl_m1", "Mi Air Purifier 2(Virtual)", THING_TYPE_UNSUPPORTED),
+    ZHIMI_AIRPURIFIER_ZA1("zhimi.airpurifier.za1", "Smartmi Air Purifier", THING_TYPE_BASIC),
     ZHIMI_FAN_SA1("zhimi.fan.sa1", "Mi Standing Fan", THING_TYPE_BASIC),
     ZHIMI_FAN_V1("zhimi.fan.v1", "Mi Smart Fan", THING_TYPE_BASIC),
     ZHIMI_FAN_V2("zhimi.fan.v2", "Smartmi DC Pedestal Fan", THING_TYPE_BASIC),
index 4e20dcae188de5c2431f580c750544ade3514abd..0b1cfadc92bbbc763b7efa89d4451ee71465cf49 100644 (file)
                                        "minimum": 0,
                                        "maximum": 600,
                                        "step": 1,
-                                       "pattern": "%.1f",
+                                       "pattern": "%.0f",
                                        "readOnly": true
                                },
                                "refresh": true,
                                "stateDescription": {
                                        "minimum": -40,
                                        "maximum": 125,
-                                       "pattern": "%.1f",
+                                       "pattern": "%.1f %unit%",
                                        "readOnly": true
                                },
                                "refresh": true,
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.za1-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.za1-miot.json
new file mode 100644 (file)
index 0000000..7444888
--- /dev/null
@@ -0,0 +1,659 @@
+{
+       "deviceMapping": {
+               "id": [
+                       "zhimi.airpurifier.za1"
+               ],
+               "propertyMethod": "get_properties",
+               "maxProperties": 1,
+               "channels": [
+                       {
+                               "property": "on",
+                               "siid": 2,
+                               "piid": 1,
+                               "friendlyName": "Air Purifier - Switch Status",
+                               "channel": "on",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "fault",
+                               "siid": 2,
+                               "piid": 2,
+                               "friendlyName": "Air Purifier - Fault",
+                               "channel": "fault",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "No faults"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "m1_run"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "m1_stuck"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "no_sensor"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "error_hum"
+                                               },
+                                               {
+                                                       "value": "5",
+                                                       "label": "error_temp"
+                                               },
+                                               {
+                                                       "value": "6",
+                                                       "label": "timer_error1"
+                                               },
+                                               {
+                                                       "value": "7",
+                                                       "label": "timer_error2"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "readmeComment": "Value mapping [\"0\"\u003d\"No faults\",\"1\"\u003d\"m1_run\",\"2\"\u003d\"m1_stuck\",\"3\"\u003d\"no_sensor\",\"4\"\u003d\"error_hum\",\"5\"\u003d\"error_temp\",\"6\"\u003d\"timer_error1\",\"7\"\u003d\"timer_error2\"]"
+                       },
+                       {
+                               "property": "mode",
+                               "siid": 2,
+                               "piid": 5,
+                               "friendlyName": "Air Purifier - Mode",
+                               "channel": "mode",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Auto"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Sleep"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Favorite"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping [\"0\"\u003d\"Auto\",\"1\"\u003d\"Sleep\",\"2\"\u003d\"Favorite\"]"
+                       },
+                       {
+                               "property": "air-quality",
+                               "siid": 3,
+                               "piid": 1,
+                               "friendlyName": "Environment - Air Quality",
+                               "channel": "air_quality",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 500,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "pm2.5-density",
+                               "siid": 3,
+                               "piid": 6,
+                               "friendlyName": "Environment - PM2 5 Density",
+                               "channel": "pm2_5_density",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 600,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "relative-humidity",
+                               "siid": 3,
+                               "piid": 7,
+                               "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": "temperature",
+                               "siid": 3,
+                               "piid": 8,
+                               "friendlyName": "Environment - 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": 3,
+                               "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": 5,
+                               "friendlyName": "Filter - Filter Used Time",
+                               "channel": "filter_used_time",
+                               "type": "Number:Time",
+                               "unit": "hours",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 15000,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "alarm",
+                               "siid": 5,
+                               "piid": 1,
+                               "friendlyName": "Alarm - Alarm",
+                               "channel": "alarm",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "brightness",
+                               "siid": 6,
+                               "piid": 1,
+                               "friendlyName": "Indicator Light - Brightness",
+                               "channel": "brightness",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Bright"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Light"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Off"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping [\"0\"\u003d\"Bright\",\"1\"\u003d\"Light\",\"2\"\u003d\"Off\"]"
+                       },
+                       {
+                               "property": "physical-controls-locked",
+                               "siid": 7,
+                               "piid": 1,
+                               "friendlyName": "Physical Control Locked - Physical Control Locked",
+                               "channel": "physical_controls_locked",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "filter-max-time",
+                               "siid": 9,
+                               "piid": 1,
+                               "friendlyName": "Filter Time - Filter Max Time",
+                               "channel": "filter_max_time",
+                               "type": "Number:Time",
+                               "unit": "hours",
+                               "stateDescription": {
+                                       "minimum": 2000,
+                                       "maximum": 6000,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "favorite-fan-level",
+                               "siid": 10,
+                               "piid": 10,
+                               "friendlyName": "Motor Speed - Favorite Fan Level",
+                               "channel": "favorite_fan_level",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 14,
+                                       "step": 1,
+                                       "pattern": "%.0f"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "motor-speed",
+                               "siid": 10,
+                               "piid": 11,
+                               "friendlyName": "Motor Speed - Motor Speed",
+                               "channel": "motor_speed",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 3000,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "use-time",
+                               "siid": 12,
+                               "piid": 1,
+                               "friendlyName": "Use Time - Use Time",
+                               "channel": "use_time",
+                               "type": "Number:Time",
+                               "unit": "seconds",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 2147483647,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "purify-volume",
+                               "siid": 13,
+                               "piid": 1,
+                               "friendlyName": "Aqi - Purify Volume",
+                               "channel": "purify_volume",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 2147483647,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "average-aqi",
+                               "siid": 13,
+                               "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-zone",
+                               "siid": 13,
+                               "piid": 4,
+                               "friendlyName": "Aqi - Aqi Zone",
+                               "channel": "aqi_zone",
+                               "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "sensor-state",
+                               "siid": 13,
+                               "piid": 5,
+                               "friendlyName": "Aqi - Sensor State",
+                               "channel": "sensor_state",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "waiting"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "ready"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "readmeComment": "Value mapping [\"0\"\u003d\"waiting\",\"1\"\u003d\"ready\"]"
+                       },
+                       {
+                               "property": "rfid-tag",
+                               "siid": 14,
+                               "piid": 1,
+                               "friendlyName": "Rfid - Rfid Tag",
+                               "channel": "rfid_tag",
+                               "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "rfid-factory-id",
+                               "siid": 14,
+                               "piid": 2,
+                               "friendlyName": "Rfid - Rfid Factory Id",
+                               "channel": "rfid_factory_id",
+                               "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "rfid-product-id",
+                               "siid": 14,
+                               "piid": 3,
+                               "friendlyName": "Rfid - Rfid Product Id",
+                               "channel": "rfid_product_id",
+                               "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "rfid-time",
+                               "siid": 14,
+                               "piid": 4,
+                               "friendlyName": "Rfid - Rfid Time",
+                               "channel": "rfid_time",
+                               "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "rfid-serial-num",
+                               "siid": 14,
+                               "piid": 5,
+                               "friendlyName": "Rfid - Rfid Serial Num",
+                               "channel": "rfid_serial_num",
+                               "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "reboot-cause",
+                               "siid": 15,
+                               "piid": 6,
+                               "friendlyName": "Others - Reboot Cause",
+                               "channel": "reboot_cause",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "hardware"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "human"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "upgrade"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "watchdog"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "readmeComment": "Value mapping [\"0\"\u003d\"hardware\",\"1\"\u003d\"human\",\"2\"\u003d\"upgrade\",\"3\"\u003d\"watchdog\"]"
+                       },
+                       {
+                               "property": "hw-version",
+                               "siid": 15,
+                               "piid": 8,
+                               "friendlyName": "Others - Hw Version",
+                               "channel": "hw_version",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 65535,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "sgp-ethanol",
+                               "siid": 15,
+                               "piid": 9,
+                               "friendlyName": "Others - Sgp Ethanol",
+                               "channel": "sgp_ethanol",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 65535,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "sgp-serial",
+                               "siid": 15,
+                               "piid": 10,
+                               "friendlyName": "Others - Sgp Serial",
+                               "channel": "sgp_serial",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": -1,
+                                       "step": 1,
+                                       "pattern": "%.0f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "sgp-version",
+                               "siid": 15,
+                               "piid": 11,
+                               "friendlyName": "Others - Sgp Version",
+                               "channel": "sgp_version",
+                               "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "country-code",
+                               "siid": 15,
+                               "piid": 12,
+                               "friendlyName": "Others - Country Code",
+                               "channel": "country_code",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "1",
+                                                       "label": "America"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Canada"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Singapore"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "Europe"
+                                               },
+                                               {
+                                                       "value": "5",
+                                                       "label": "Australian"
+                                               },
+                                               {
+                                                       "value": "6",
+                                                       "label": "Korea"
+                                               },
+                                               {
+                                                       "value": "7",
+                                                       "label": "China"
+                                               },
+                                               {
+                                                       "value": "8",
+                                                       "label": "France"
+                                               },
+                                               {
+                                                       "value": "9",
+                                                       "label": "Japanese"
+                                               },
+                                               {
+                                                       "value": "10",
+                                                       "label": "Taiwan"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping [\"1\"\u003d\"America\",\"2\"\u003d\"Canada\",\"3\"\u003d\"Singapore\",\"4\"\u003d\"Europe\",\"5\"\u003d\"Australian\",\"6\"\u003d\"Korea\",\"7\"\u003d\"China\",\"8\"\u003d\"France\",\"9\"\u003d\"Japanese\",\"10\"\u003d\"Taiwan\"]"
+                       },
+                       {
+                               "property": "gesture-status",
+                               "siid": 15,
+                               "piid": 13,
+                               "friendlyName": "Others - Gesture Status",
+                               "channel": "gesture_status",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ]
+                       }
+               ],
+               "experimental": true
+       }
+}