diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md index 0018ba524..dced07e25 100644 --- a/bundles/org.openhab.binding.miio/README.md +++ b/bundles/org.openhab.binding.miio/README.md @@ -525,6 +525,7 @@ Currently the miio binding supports more than 340 different models. | Xiaomi Smart Air Purifier 4 Compact | miio:basic | [zhimi.airp.cpa4](#zhimi-airp-cpa4) | 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 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 | +| Xiaomi Smart Air Purifier 4 Pro | miio:basic | [zhimi.airp.vb4](#zhimi-airp-vb4) | Yes | | | 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 | | @@ -5056,6 +5057,40 @@ Note, not all the values need to be in the json file, e.g. a subset of the param | average_aqi | Number | Aqi - Average Aqi | | | 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"]` | +### Xiaomi Smart Air Purifier 4 Pro (zhimi.airp.vb4) Channels + +| Channel | Type | Description | Comment | +|----------------------|----------------------|------------------------------------------|------------| +| actions | String | Actions | Value mapping `["air-purifier-toggle"="Air Purifier Toggle","filter-reset-filter-life"="Filter Reset Filter Life","custom-service-toggle-mode"="Custom Service Toggle Mode","custom-service-toggle-fan-level"="Custom Service Toggle Fan Level"]` | +| on | Switch | Air Purifier - Switch Status | | +| fault | Number | Air Purifier - Device Fault | Value mapping `["0"="No Faults","1"="Sensor PM Error","2"="Temp Error","3"="Hum Error","4"="No Filter"]` | +| mode | Number | Mode | Value mapping `["0"="Auto","1"="Sleep","2"="Favorite","3"="Manual"]` | +| fan_level | Number | Air Purifier - Fan Level | Value mapping `["1"="Level1","2"="Level2","3"="Level3"]` | +| anion | Switch | Air Purifier - Anion | | +| relative_humidity | Number:Dimensionless | Environment - Relative Humidity | | +| pm2_5_density | Number | Environment - PM2 5 Density | | +| temperature | Number:Temperature | Temperature | | +| pm10_density | Number | Environment - PM10 Density | | +| filter_life_level | Number:Dimensionless | Filter - Filter Life Level | | +| filter_used_time | Number:Time | Filter - Filter Used Time | | +| filter_left_time | Number:Time | Filter - Filter Left Time | | +| alarm | Switch | Alarm | | +| physical_controls_locked | Switch | Physical Control Locked | | +| brightness | Number | Brightness | Value mapping `["0"="Close","1"="Bright","2"="Brightest"]` | +| temperature_display_unit | Number | Temperature Display Unit | Value mapping `["1"="Celsius","2"="Fahrenheit"]` | +| motor_speed_rpm | Number | Motor Speed Rpm | | +| favorite_speed | Number | Favorite Speed | | +| motor_set_speed | Number | Motor Set Speed | | +| favorite_level | Number | Favorite Level | | +| bottom_door | Switch | Bottom Door | | +| reboot_cause | Number | Reboot Cause | Value mapping `["0"="REASON-HW-BOOT","1"="REASON-USER-REBOOT","2"="REASON-UPDATE","3"="REASON-WDT"]` | +| manual_level | Number | Manual Level | Value mapping `["1"="Level1","2"="Level2","3"="Level3"]` | +| country_code | Number | Country Code | Value mapping `["2"="EU","1"="US","82"="KR","886"="TW","66"="TH","44"="UK","91"="IN"]` | +| filter_used_debug | Number:Time | Filter Time - Filter Used Debug | | +| purify_volume | Number | Aqi - Purify Volume | | +| average_aqi | Number | Aqi - Average Aqi | | +| 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"]` | + ### Mi Air Purifier 2 (mini) (zhimi.airpurifier.m1) Channels | Channel | Type | Description | Comment | @@ -11249,6 +11284,43 @@ Number average_aqi "Aqi - Average Aqi" (G_airp) {channel="miio:basic:airp:averag Number aqi_state "Aqi - Aqi State" (G_airp) {channel="miio:basic:airp:aqi_state"} ``` +### Xiaomi Smart Air Purifier 4 Pro (zhimi.airp.vb4) 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 Pro" +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 pm10_density "Environment - PM10 Density" (G_airp) {channel="miio:basic:airp:pm10_density"} +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" (G_airp) {channel="miio:basic:airp:alarm"} +Switch physical_controls_locked "Physical Control Locked" (G_airp) {channel="miio:basic:airp:physical_controls_locked"} +Number brightness "Brightness" (G_airp) {channel="miio:basic:airp:brightness"} +Number temperature_display_unit "Temperature Display Unit" (G_airp) {channel="miio:basic:airp:temperature_display_unit"} +Number motor_speed_rpm "Motor Speed Rpm" (G_airp) {channel="miio:basic:airp:motor_speed_rpm"} +Number favorite_speed "Favorite Speed" (G_airp) {channel="miio:basic:airp:favorite_speed"} +Number motor_set_speed "Motor Set Speed" (G_airp) {channel="miio:basic:airp:motor_set_speed"} +Number favorite_level "Favorite Level" (G_airp) {channel="miio:basic:airp:favorite_level"} +Switch bottom_door "Bottom Door" (G_airp) {channel="miio:basic:airp:bottom_door"} +Number reboot_cause "Reboot Cause" (G_airp) {channel="miio:basic:airp:reboot_cause"} +Number manual_level "Manual Level" (G_airp) {channel="miio:basic:airp:manual_level"} +Number country_code "Country Code" (G_airp) {channel="miio:basic:airp:country_code"} +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. 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 93485f236..743001407 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 @@ -391,6 +391,7 @@ public enum MiIoDevices { ZHIMI_AIRP_CPA4("zhimi.airp.cpa4", "Xiaomi Smart Air Purifier 4 Compact", 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_AIRP_VB4("zhimi.airp.vb4", "Xiaomi Smart Air Purifier 4 Pro", 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), diff --git a/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties index dd7d068cb..1a2680f17 100644 --- a/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties +++ b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties @@ -332,6 +332,7 @@ thing.zhimi.airmonitor.v1 = Mi PM2.5 Air Quality Monitor thing.zhimi.airp.cpa4 = Xiaomi Smart Air Purifier 4 Compact thing.zhimi.airp.mb4a = Mi Air Purifier 3C thing.zhimi.airp.mb5 = Xiaomi Smart Air Purifier 4 +thing.zhimi.airp.vb4 = Xiaomi Smart Air Purifier 4 Pro 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 @@ -1656,6 +1657,35 @@ 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.airp.vb4-miot.actions = Actions +ch.zhimi.airp.vb4-miot.alarm = Alarm +ch.zhimi.airp.vb4-miot.anion = Air Purifier - Anion +ch.zhimi.airp.vb4-miot.aqi_state = Aqi - Aqi State +ch.zhimi.airp.vb4-miot.average_aqi = Aqi - Average Aqi +ch.zhimi.airp.vb4-miot.bottom_door = Bottom Door +ch.zhimi.airp.vb4-miot.brightness = Brightness +ch.zhimi.airp.vb4-miot.country_code = Country Code +ch.zhimi.airp.vb4-miot.fan_level = Air Purifier - Fan Level +ch.zhimi.airp.vb4-miot.fault = Air Purifier - Device Fault +ch.zhimi.airp.vb4-miot.favorite_level = Favorite Level +ch.zhimi.airp.vb4-miot.favorite_speed = Favorite Speed +ch.zhimi.airp.vb4-miot.filter_left_time = Filter - Filter Left Time +ch.zhimi.airp.vb4-miot.filter_life_level = Filter - Filter Life Level +ch.zhimi.airp.vb4-miot.filter_used_debug = Filter Time - Filter Used Debug +ch.zhimi.airp.vb4-miot.filter_used_time = Filter - Filter Used Time +ch.zhimi.airp.vb4-miot.manual_level = Manual Level +ch.zhimi.airp.vb4-miot.mode = Mode +ch.zhimi.airp.vb4-miot.motor_set_speed = Motor Set Speed +ch.zhimi.airp.vb4-miot.motor_speed_rpm = Motor Speed Rpm +ch.zhimi.airp.vb4-miot.on = Air Purifier - Switch Status +ch.zhimi.airp.vb4-miot.physical_controls_locked = Physical Control Locked +ch.zhimi.airp.vb4-miot.pm10_density = Environment - PM10 Density +ch.zhimi.airp.vb4-miot.pm2_5_density = Environment - PM2 5 Density +ch.zhimi.airp.vb4-miot.purify_volume = Aqi - Purify Volume +ch.zhimi.airp.vb4-miot.reboot_cause = Reboot Cause +ch.zhimi.airp.vb4-miot.relative_humidity = Environment - Relative Humidity +ch.zhimi.airp.vb4-miot.temperature = Temperature +ch.zhimi.airp.vb4-miot.temperature_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 @@ -3378,6 +3408,47 @@ 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.airp.vb4-miot.actions-air-purifier-toggle = Air Purifier Toggle +option.zhimi.airp.vb4-miot.actions-custom-service-toggle-fan-level = Custom Service Toggle Fan Level +option.zhimi.airp.vb4-miot.actions-custom-service-toggle-mode = Custom Service Toggle Mode +option.zhimi.airp.vb4-miot.actions-filter-reset-filter-life = Filter Reset Filter Life +option.zhimi.airp.vb4-miot.aqi_state-0 = AQI-GOOD-L +option.zhimi.airp.vb4-miot.aqi_state-1 = AQI-GOOD-H +option.zhimi.airp.vb4-miot.aqi_state-2 = AQI-MID-L +option.zhimi.airp.vb4-miot.aqi_state-3 = AQI-MID-H +option.zhimi.airp.vb4-miot.aqi_state-4 = AQI-BAD-L +option.zhimi.airp.vb4-miot.aqi_state-5 = AQI-BAD-H +option.zhimi.airp.vb4-miot.brightness-0 = Close +option.zhimi.airp.vb4-miot.brightness-1 = Bright +option.zhimi.airp.vb4-miot.brightness-2 = Brightest +option.zhimi.airp.vb4-miot.country_code-1 = US +option.zhimi.airp.vb4-miot.country_code-2 = EU +option.zhimi.airp.vb4-miot.country_code-44 = UK +option.zhimi.airp.vb4-miot.country_code-66 = TH +option.zhimi.airp.vb4-miot.country_code-82 = KR +option.zhimi.airp.vb4-miot.country_code-886 = TW +option.zhimi.airp.vb4-miot.country_code-91 = IN +option.zhimi.airp.vb4-miot.fan_level-1 = Level1 +option.zhimi.airp.vb4-miot.fan_level-2 = Level2 +option.zhimi.airp.vb4-miot.fan_level-3 = Level3 +option.zhimi.airp.vb4-miot.fault-0 = No Faults +option.zhimi.airp.vb4-miot.fault-1 = Sensor PM Error +option.zhimi.airp.vb4-miot.fault-2 = Temp Error +option.zhimi.airp.vb4-miot.fault-3 = Hum Error +option.zhimi.airp.vb4-miot.fault-4 = No Filter +option.zhimi.airp.vb4-miot.manual_level-1 = Level1 +option.zhimi.airp.vb4-miot.manual_level-2 = Level2 +option.zhimi.airp.vb4-miot.manual_level-3 = Level3 +option.zhimi.airp.vb4-miot.mode-0 = Auto +option.zhimi.airp.vb4-miot.mode-1 = Sleep +option.zhimi.airp.vb4-miot.mode-2 = Favorite +option.zhimi.airp.vb4-miot.mode-3 = Manual +option.zhimi.airp.vb4-miot.reboot_cause-0 = REASON-HW-BOOT +option.zhimi.airp.vb4-miot.reboot_cause-1 = REASON-USER-REBOOT +option.zhimi.airp.vb4-miot.reboot_cause-2 = REASON-UPDATE +option.zhimi.airp.vb4-miot.reboot_cause-3 = REASON-WDT +option.zhimi.airp.vb4-miot.temperature_display_unit-1 = Celsius +option.zhimi.airp.vb4-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.vb4-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airp.vb4-miot.json new file mode 100644 index 000000000..8293472e9 --- /dev/null +++ b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airp.vb4-miot.json @@ -0,0 +1,744 @@ +{ + "deviceMapping": { + "id": [ + "zhimi.airp.vb4" + ], + "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": "pm10-density", + "siid": 3, + "piid": 8, + "friendlyName": "Environment - PM10 Density", + "channel": "pm10_density", + "type": "Number", + "stateDescription": { + "pattern": "%.0f", + "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", + "channel": "alarm", + "type": "Switch", + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "ONOFFBOOL" + } + ] + }, + { + "property": "physical-controls-locked", + "siid": 8, + "piid": 1, + "friendlyName": "Physical Control Locked", + "channel": "physical_controls_locked", + "type": "Switch", + "refresh": true, + "actions": [ + { + "command": "set_properties", + "parameterType": "ONOFFBOOL" + } + ] + }, + { + "property": "brightness", + "siid": 13, + "piid": 2, + "friendlyName": "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": "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": "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": "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": "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": "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": "Bottom Door", + "channel": "bottom_door", + "type": "Switch", + "stateDescription": { + "readOnly": true + }, + "refresh": true, + "actions": [] + }, + { + "property": "reboot-cause", + "siid": 9, + "piid": 8, + "friendlyName": "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": "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": "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": "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": false + } +}