From fdc22c0a4c9f0c99397ac2e68fadaa11f5198c54 Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 26 Feb 2021 19:58:56 +0100 Subject: [PATCH] [miio] add support for zhimi.airpurifier.vb2 Mi Air Purifier Pro H (#10183) * [miio] add support for zhimi.airpurifier.vb2 Mi Air Purifier Pro H close #10174 * [miio] update modes to values visible in app * [miio] cleanup and fix valuu mapping * [miio] fix duration Signed-off-by: Marcel Verpaalen --- bundles/org.openhab.binding.miio/README.md | 116 ++ .../binding/miio/internal/MiIoDevices.java | 1 + .../database/zhimi.airpurifier.vb2-miot.json | 1099 +++++++++++++++++ 3 files changed, 1216 insertions(+) create mode 100644 bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.vb2-miot.json diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md index eb857bfe5eb..99228dab56f 100644 --- a/bundles/org.openhab.binding.miio/README.md +++ b/bundles/org.openhab.binding.miio/README.md @@ -456,6 +456,7 @@ Currently the miio binding supports more than 270 different models. | Mi Air Purifier v5 | miio:basic | [zhimi.airpurifier.v5](#zhimi-airpurifier-v5) | Yes | | | Mi Air Purifier Pro v6 | miio:basic | [zhimi.airpurifier.v6](#zhimi-airpurifier-v6) | Yes | | | Mi Air Purifier Pro v7 | miio:basic | [zhimi.airpurifier.v7](#zhimi-airpurifier-v7) | Yes | | +| 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 | | | Mi Standing Fan | miio:basic | [zhimi.fan.sa1](#zhimi-fan-sa1) | Yes | | @@ -4248,6 +4249,62 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl | temperature | Number:Temperature | Temperature | | | childlock | Switch | Child Lock | | +### Mi Air Purifier Pro H (zhimi.airpurifier.vb2) Channels + +| Channel | Type | Description | Comment | +|----------------------|----------------------|------------------------------------------|------------| +| actions | String | Actions | Value mapping ["button-toggle"="Toggle","button-toggle-mode"="Toggle Mode"] | +| fault | Number | Air Purifier - Device 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"] | +| on | Switch | Air Purifier - Power | | +| fan_level | Number | Air Purifier - Fan Level | Value mapping ["1"="Level1","2"="Level2","3"="Level3","0"="Sleep"] | +| mode | Number | Air Purifier - Mode | Value mapping ["0"="Auto","1"="Night","2"="Favourite","3"="Manual"] | +| 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 | | +| volume | Number:Dimensionless | Alarm - Volume | | +| brightness | Number | Indicator Light - Brightness | Value mapping ["0"="brightest","1"="glimmer","2"="not bright"] | +| on1 | Switch | Indicator Light - Switch Status | | +| physical_controls_locked | Switch | Physical Control Locked - Physical Control Locked | | +| button_pressed | String | Button - Button_pressed | | +| filter_max_time | Number:Time | Filter Time - Filter Max Time | | +| filter_hour_used_debug | Number:Time | Filter Time - Filter Hour Used Debug | | +| m1_strong | Number | Motor Speed - M1 Strong | | +| m1_high | Number | Motor Speed - M1 High | | +| m1_med | Number | Motor Speed - M1 Med | | +| m1_med_l | Number | Motor Speed - M1 Med L | | +| m1_low | Number | Motor Speed - M1 Low | | +| m1_silent | Number | Motor Speed - M1 Silent | | +| m1_favorite | Number | Motor Speed - M1 Favorite | | +| motor1_speed | Number | Motor Speed - Motor1 Speed | | +| motor1_set_speed | Number | Motor Speed - Motor1 Set Speed | | +| favorite_level | Number | Motor Speed - Favorite Level | | +| use_time | Number:Time | Use Time - Use Time | | +| purify_volume | Number | Aqi - Purify Volume | | +| average_aqi | Number | Aqi - Average Aqi | | +| average_aqi_cnt | Number | Aqi - Average_aqi Read Times | | +| aqi_zone | String | Aqi - Aqi Zone | | +| sensor_state | Number | Aqi - Sensor State | Value mapping ["0"="waiting","1"="ready"] | +| aqi_goodh | Number | Aqi - Aqi Goodh | | +| aqi_runstate | Number | Aqi - Runstate | Value mapping ["0"="continue","1"="hold","2"="sleep"] | +| aqi_state | Number | Aqi - Aqi State | Value mapping ["0"="AQI_GOOD_L","1"="AQI_GOOD_H","2"="AQI_MID_L","3"="AQI_MID_H","4"="AQI_BAD_L","5"="AQI_BAD_H"] | +| 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 | | +| app_extra | Number | Others - App Extra | | +| main_channel | Number | Others - Main Channel | | +| slave_channel | Number | Others - Slave Channel | | +| cola | String | Others - Cola | | +| buttom_door | String | Others - Buttom Door | | +| reboot_cause | Number | Others - Reboot_cause | Value mapping ["0"="REASON_HW_BOOT","1"="REASON_USER_REBOOT","2"="REASON_UPDATE","3"="REASON_WDT"] | +| manual_level | Number | Others - Manual Level | Value mapping ["1"="level1","2"="level2","3"="level3"] | +| powertime | Number:duration | Others - Powertime | | +| country_code | Number | Others - Country Code | Value mapping ["91"="India","44"="UK","852"="Hong Kong","886"="Taiwan","82"="Korea"] | + ### Mi Standing Fan (zhimi.fan.sa1) Channels | Channel | Type | Description | Comment | @@ -9149,6 +9206,65 @@ Number:Temperature temperature "Temperature" (G_airpurifier) {channel="miio:basi Switch childlock "Child Lock" (G_airpurifier) {channel="miio:basic:airpurifier:childlock"} ``` +### Mi Air Purifier Pro H (zhimi.airpurifier.vb2) 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 "Mi Air Purifier Pro H" +String actions "Actions" (G_airpurifier) {channel="miio:basic:airpurifier:actions"} +Number fault "Air Purifier - Device Fault" (G_airpurifier) {channel="miio:basic:airpurifier:fault"} +Switch on "Air Purifier - Power" (G_airpurifier) {channel="miio:basic:airpurifier:on"} +Number fan_level "Air Purifier - Fan Level" (G_airpurifier) {channel="miio:basic:airpurifier:fan_level"} +Number mode "Air Purifier - Mode" (G_airpurifier) {channel="miio:basic:airpurifier:mode"} +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:Dimensionless volume "Alarm - Volume" (G_airpurifier) {channel="miio:basic:airpurifier:volume"} +Number brightness "Indicator Light - Brightness" (G_airpurifier) {channel="miio:basic:airpurifier:brightness"} +Switch on1 "Indicator Light - Switch Status" (G_airpurifier) {channel="miio:basic:airpurifier:on1"} +Switch physical_controls_locked "Physical Control Locked - Physical Control Locked" (G_airpurifier) {channel="miio:basic:airpurifier:physical_controls_locked"} +String button_pressed "Button - Button_pressed" (G_airpurifier) {channel="miio:basic:airpurifier:button_pressed"} +Number:Time filter_max_time "Filter Time - Filter Max Time" (G_airpurifier) {channel="miio:basic:airpurifier:filter_max_time"} +Number:Time filter_hour_used_debug "Filter Time - Filter Hour Used Debug" (G_airpurifier) {channel="miio:basic:airpurifier:filter_hour_used_debug"} +Number m1_strong "Motor Speed - M1 Strong" (G_airpurifier) {channel="miio:basic:airpurifier:m1_strong"} +Number m1_high "Motor Speed - M1 High" (G_airpurifier) {channel="miio:basic:airpurifier:m1_high"} +Number m1_med "Motor Speed - M1 Med" (G_airpurifier) {channel="miio:basic:airpurifier:m1_med"} +Number m1_med_l "Motor Speed - M1 Med L" (G_airpurifier) {channel="miio:basic:airpurifier:m1_med_l"} +Number m1_low "Motor Speed - M1 Low" (G_airpurifier) {channel="miio:basic:airpurifier:m1_low"} +Number m1_silent "Motor Speed - M1 Silent" (G_airpurifier) {channel="miio:basic:airpurifier:m1_silent"} +Number m1_favorite "Motor Speed - M1 Favorite" (G_airpurifier) {channel="miio:basic:airpurifier:m1_favorite"} +Number motor1_speed "Motor Speed - Motor1 Speed" (G_airpurifier) {channel="miio:basic:airpurifier:motor1_speed"} +Number motor1_set_speed "Motor Speed - Motor1 Set Speed" (G_airpurifier) {channel="miio:basic:airpurifier:motor1_set_speed"} +Number favorite_level "Motor Speed - Favorite Level" (G_airpurifier) {channel="miio:basic:airpurifier:favorite_level"} +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"} +Number average_aqi_cnt "Aqi - Average_aqi Read Times" (G_airpurifier) {channel="miio:basic:airpurifier:average_aqi_cnt"} +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"} +Number aqi_goodh "Aqi - Aqi Goodh" (G_airpurifier) {channel="miio:basic:airpurifier:aqi_goodh"} +Number aqi_runstate "Aqi - Runstate" (G_airpurifier) {channel="miio:basic:airpurifier:aqi_runstate"} +Number aqi_state "Aqi - Aqi State" (G_airpurifier) {channel="miio:basic:airpurifier:aqi_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 app_extra "Others - App Extra" (G_airpurifier) {channel="miio:basic:airpurifier:app_extra"} +Number main_channel "Others - Main Channel" (G_airpurifier) {channel="miio:basic:airpurifier:main_channel"} +Number slave_channel "Others - Slave Channel" (G_airpurifier) {channel="miio:basic:airpurifier:slave_channel"} +String cola "Others - Cola" (G_airpurifier) {channel="miio:basic:airpurifier:cola"} +String buttom_door "Others - Buttom Door" (G_airpurifier) {channel="miio:basic:airpurifier:buttom_door"} +Number reboot_cause "Others - Reboot_cause" (G_airpurifier) {channel="miio:basic:airpurifier:reboot_cause"} +Number manual_level "Others - Manual Level" (G_airpurifier) {channel="miio:basic:airpurifier:manual_level"} +Number:duration powertime "Others - Powertime" (G_airpurifier) {channel="miio:basic:airpurifier:powertime"} +Number country_code "Others - Country Code" (G_airpurifier) {channel="miio:basic:airpurifier:country_code"} +``` + ### 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. diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java index e602b2bbc3c..64c03164870 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java @@ -340,6 +340,7 @@ public enum MiIoDevices { ZHIMI_AIRPURIFIER_V5("zhimi.airpurifier.v5", "Mi Air Purifier v5", THING_TYPE_BASIC), ZHIMI_AIRPURIFIER_V6("zhimi.airpurifier.v6", "Mi Air Purifier Pro v6", THING_TYPE_BASIC), ZHIMI_AIRPURIFIER_V7("zhimi.airpurifier.v7", "Mi Air Purifier Pro v7", THING_TYPE_BASIC), + 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_FAN_SA1("zhimi.fan.sa1", "Mi Standing Fan", THING_TYPE_BASIC), diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.vb2-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.vb2-miot.json new file mode 100644 index 00000000000..4e20dcae188 --- /dev/null +++ b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.vb2-miot.json @@ -0,0 +1,1099 @@ +{ + "deviceMapping": { + "id": [ + "zhimi.airpurifier.vb2" + ], + "propertyMethod": "get_properties", + "maxProperties": 3, + "channels": [ + { + "property": "", + "friendlyName": "Actions", + "channel": "actions", + "type": "String", + "stateDescription": { + "options": [ + { + "value": "button-toggle", + "label": "Toggle" + }, + { + "value": "button-toggle-mode", + "label": "Toggle Mode" + } + ] + }, + "actions": [ + { + "command": "action", + "parameterType": "EMPTY", + "siid": 8, + "aiid": 1, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "button-toggle" + } + ] + } + }, + { + "command": "action", + "parameterType": "EMPTY", + "siid": 8, + "aiid": 2, + "condition": { + "name": "matchValue", + "parameters": [ + { + "matchValue": "button-toggle-mode" + } + ] + } + } + ], + "readmeComment": "Value mapping [\"button-toggle\"\u003d\"Toggle\",\"button-toggle-mode\"\u003d\"Toggle Mode\"]" + }, + { + "property": "fault", + "siid": 2, + "piid": 1, + "friendlyName": "Air Purifier - Device 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": "on", + "siid": 2, + "piid": 2, + "friendlyName": "Air Purifier - Power", + "channel": "on", + "type": "Switch", + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "ONOFFBOOL" + } + ] + }, + { + "property": "fan-level", + "siid": 2, + "piid": 4, + "friendlyName": "Air Purifier - Fan Level", + "channel": "fan_level", + "type": "Number", + "stateDescription": { + "options": [ + { + "value": "1", + "label": "Level1" + }, + { + "value": "2", + "label": "Level2" + }, + { + "value": "3", + "label": "Level3" + }, + { + "value": "0", + "label": "Sleep" + } + ] + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ], + "readmeComment": "Value mapping [\"1\"\u003d\"Level1\",\"2\"\u003d\"Level2\",\"3\"\u003d\"Level3\",\"0\"\u003d\"Sleep\"]" + }, + { + "property": "mode", + "siid": 2, + "piid": 5, + "friendlyName": "Air Purifier - Mode", + "channel": "mode", + "type": "Number", + "stateDescription": { + "options": [ + { + "value": "0", + "label": "Auto" + }, + { + "value": "1", + "label": "Night" + }, + { + "value": "2", + "label": "Favourite" + }, + { + "value": "3", + "label": "Manual" + } + ] + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ], + "readmeComment": "Value mapping [\"0\"\u003d\"Auto\",\"1\"\u003d\"Night\",\"2\"\u003d\"Favourite\",\"3\"\u003d\"Manual\"]" + }, + { + "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": "%.1f", + "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": "CELCIUS", + "stateDescription": { + "minimum": -40, + "maximum": 125, + "pattern": "%.1f", + "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": 18000, + "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": "volume", + "siid": 5, + "piid": 2, + "friendlyName": "Alarm - Volume", + "channel": "volume", + "type": "Number:Dimensionless", + "unit": "percentage", + "stateDescription": { + "minimum": 0, + "maximum": 100, + "step": 1, + "pattern": "%.0f %unit%" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "brightness", + "siid": 6, + "piid": 1, + "friendlyName": "Indicator Light - Brightness", + "channel": "brightness", + "type": "Number", + "stateDescription": { + "options": [ + { + "value": "0", + "label": "brightest" + }, + { + "value": "1", + "label": "glimmer" + }, + { + "value": "2", + "label": "not bright" + } + ] + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ], + "readmeComment": "Value mapping [\"0\"\u003d\"brightest\",\"1\"\u003d\"glimmer\",\"2\"\u003d\"not bright\"]" + }, + { + "property": "on1", + "siid": 6, + "piid": 6, + "friendlyName": "Indicator Light - Switch Status", + "channel": "on1", + "type": "Switch", + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "ONOFFBOOL" + } + ] + }, + { + "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": "button-pressed", + "siid": 8, + "piid": 1, + "friendlyName": "Button - Button_pressed", + "channel": "button_pressed", + "type": "String", + "stateDescription": { + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "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": 8000, + "step": 1, + "pattern": "%.0f %unit%" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "filter-hour-used-debug", + "siid": 9, + "piid": 2, + "friendlyName": "Filter Time - Filter Hour Used Debug", + "channel": "filter_hour_used_debug", + "type": "Number:Time", + "unit": "hours", + "stateDescription": { + "minimum": 0, + "maximum": 18000, + "step": 1, + "pattern": "%.0f %unit%" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "m1-strong", + "siid": 10, + "piid": 1, + "friendlyName": "Motor Speed - M1 Strong", + "channel": "m1_strong", + "type": "Number", + "stateDescription": { + "minimum": 300, + "maximum": 2300, + "step": 10, + "pattern": "%.0f" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "m1-high", + "siid": 10, + "piid": 2, + "friendlyName": "Motor Speed - M1 High", + "channel": "m1_high", + "type": "Number", + "stateDescription": { + "minimum": 300, + "maximum": 2300, + "step": 10, + "pattern": "%.0f" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "m1-med", + "siid": 10, + "piid": 3, + "friendlyName": "Motor Speed - M1 Med", + "channel": "m1_med", + "type": "Number", + "stateDescription": { + "minimum": 300, + "maximum": 2300, + "step": 10, + "pattern": "%.0f" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "m1-med-l", + "siid": 10, + "piid": 4, + "friendlyName": "Motor Speed - M1 Med L", + "channel": "m1_med_l", + "type": "Number", + "stateDescription": { + "minimum": 300, + "maximum": 2300, + "step": 10, + "pattern": "%.0f" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "m1-low", + "siid": 10, + "piid": 5, + "friendlyName": "Motor Speed - M1 Low", + "channel": "m1_low", + "type": "Number", + "stateDescription": { + "minimum": 300, + "maximum": 2300, + "step": 10, + "pattern": "%.0f" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "m1-silent", + "siid": 10, + "piid": 6, + "friendlyName": "Motor Speed - M1 Silent", + "channel": "m1_silent", + "type": "Number", + "stateDescription": { + "minimum": 300, + "maximum": 2300, + "step": 10, + "pattern": "%.0f" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "m1-favorite", + "siid": 10, + "piid": 7, + "friendlyName": "Motor Speed - M1 Favorite", + "channel": "m1_favorite", + "type": "Number", + "stateDescription": { + "minimum": 300, + "maximum": 2300, + "step": 10, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "motor1-speed", + "siid": 10, + "piid": 8, + "friendlyName": "Motor Speed - Motor1 Speed", + "channel": "motor1_speed", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 10000, + "step": 1, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "motor1-set-speed", + "siid": 10, + "piid": 9, + "friendlyName": "Motor Speed - Motor1 Set Speed", + "channel": "motor1_set_speed", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 10000, + "step": 1, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "favorite-level", + "siid": 10, + "piid": 10, + "friendlyName": "Motor Speed - Favorite Level", + "channel": "favorite_level", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 9, + "step": 1, + "pattern": "%.0f" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "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": "average-aqi-cnt", + "siid": 13, + "piid": 3, + "friendlyName": "Aqi - Average_aqi Read Times", + "channel": "average_aqi_cnt", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 2147483647, + "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": "aqi-goodh", + "siid": 13, + "piid": 6, + "friendlyName": "Aqi - Aqi Goodh", + "channel": "aqi_goodh", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 255, + "step": 1, + "pattern": "%.0f" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "aqi-runstate", + "siid": 13, + "piid": 7, + "friendlyName": "Aqi - Runstate", + "channel": "aqi_runstate", + "type": "Number", + "stateDescription": { + "readOnly": true, + "options": [ + { + "value": "0", + "label": "continue" + }, + { + "value": "1", + "label": "hold" + }, + { + "value": "2", + "label": "sleep" + } + ] + }, + "refresh": true, + "actions": [], + "readmeComment": "Value mapping [\"0\"\u003d\"continue\",\"1\"\u003d\"hold\",\"2\"\u003d\"sleep\"]" + }, + { + "property": "aqi-state", + "siid": 13, + "piid": 8, + "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\"]" + }, + { + "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": "app-extra", + "siid": 15, + "piid": 1, + "friendlyName": "Others - App Extra", + "channel": "app_extra", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 2147483647, + "step": 1, + "pattern": "%.0f" + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ] + }, + { + "property": "main-channel", + "siid": 15, + "piid": 2, + "friendlyName": "Others - Main Channel", + "channel": "main_channel", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 2147483647, + "step": 1, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "slave-channel", + "siid": 15, + "piid": 3, + "friendlyName": "Others - Slave Channel", + "channel": "slave_channel", + "type": "Number", + "stateDescription": { + "minimum": 0, + "maximum": 2147483647, + "step": 1, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "cola", + "siid": 15, + "piid": 4, + "friendlyName": "Others - Cola", + "channel": "cola", + "type": "String", + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "STRING" + } + ] + }, + { + "property": "buttom-door", + "siid": 15, + "piid": 5, + "friendlyName": "Others - Buttom Door", + "channel": "buttom_door", + "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": "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": 15, + "piid": 7, + "friendlyName": "Others - Manual Level", + "channel": "manual_level", + "type": "Number", + "stateDescription": { + "readOnly": true, + "options": [ + { + "value": "1", + "label": "level1" + }, + { + "value": "2", + "label": "level2" + }, + { + "value": "3", + "label": "level3" + } + ] + }, + "refresh": true, + "actions": [], + "readmeComment": "Value mapping [\"1\"\u003d\"level1\",\"2\"\u003d\"level2\",\"3\"\u003d\"level3\"]" + }, + { + "property": "powertime", + "siid": 15, + "piid": 8, + "friendlyName": "Others - Powertime", + "channel": "powertime", + "type": "Number:duration", + "unit": "seconds", + "stateDescription": { + "minimum": 0, + "maximum": 2147483647, + "step": 1, + "pattern": "%.0f", + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "country-code", + "siid": 15, + "piid": 9, + "friendlyName": "Others - Country Code", + "channel": "country_code", + "type": "Number", + "stateDescription": { + "options": [ + { + "value": "91", + "label": "India" + }, + { + "value": "44", + "label": "UK" + }, + { + "value": "852", + "label": "Hong Kong" + }, + { + "value": "886", + "label": "Taiwan" + }, + { + "value": "82", + "label": "Korea" + } + ] + }, + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "NUMBER" + } + ], + "readmeComment": "Value mapping [\"91\"\u003d\"India\",\"44\"\u003d\"UK\",\"852\"\u003d\"Hong Kong\",\"886\"\u003d\"Taiwan\",\"82\"\u003d\"Korea\"]" + } + ], + "experimental": false + } +}