]> git.basschouten.com Git - openhab-addons.git/commitdiff
[miio] add support for zhimi airpurifier 3C (mb4) (#9885)
authorMarcel <marcel@verpaalen.com>
Fri, 22 Jan 2021 22:36:58 +0000 (23:36 +0100)
committerGitHub <noreply@github.com>
Fri, 22 Jan 2021 22:36:58 +0000 (14:36 -0800)
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
bundles/org.openhab.binding.miio/README.md
bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java
bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.mb4-miot.json [new file with mode: 0644]

index aace3de0a2f087a9efa7e976693ec1c16d775c72..5c6a77e066543c66de1c52109b8c8a2d53134163 100644 (file)
@@ -441,6 +441,7 @@ Currently the miio binding supports more than 260 different models.
 | Mi Air Purifier 3            | miio:basic       | [zhimi.airpurifier.ma4](#zhimi-airpurifier-ma4) | Yes       | Identified manual actions for execution<br />`action{"did":"filter-reset-filter-life","siid":4,"aiid":1,"in":[]}`<br />`action{"did":"button-toggle","siid":8,"aiid":1,"in":[]}`<br />`action{"did":"button-toggle-mode","siid":8,"aiid":2,"in":[]}`<br />Please test and feedback if they are working to they can be linked to a channel.<br />Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Mi Air Purifier 2S           | miio:basic       | [zhimi.airpurifier.mb1](#zhimi-airpurifier-mb1) | Yes       |            |
 | Mi Air Purifier 3/3H         | miio:basic       | [zhimi.airpurifier.mb3](#zhimi-airpurifier-mb3) | Yes       | Identified manual actions for execution<br />`action{"did":"filter-reset-filter-life","siid":4,"aiid":1,"in":[]}`<br />`action{"did":"button-toggle","siid":8,"aiid":1,"in":[]}`<br />`action{"did":"button-toggle-mode","siid":8,"aiid":2,"in":[]}`<br />Please test and feedback if they are working to they can be linked to a channel.<br />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.airpurifier.mb4](#zhimi-airpurifier-mb4) | Yes       | Specified action for filter reset <br />`action{"did":"filter-reset-filter-life","siid":4,"aiid":1,"in":[3.0]}`<br />However, this has not been successfully tested yet. |
 | Mi Air Purifier 2S           | miio:basic       | [zhimi.airpurifier.mc1](#zhimi-airpurifier-mc1) | Yes       |            |
 | Mi Air Purifier 2H           | miio:basic       | [zhimi.airpurifier.mc2](#zhimi-airpurifier-mc2) | Yes       |            |
 | Mi Air Purifier Super        | miio:basic       | [zhimi.airpurifier.sa1](#zhimi-airpurifier-sa1) | Yes       |            |
@@ -3770,7 +3771,7 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
 | on               | Switch  | Air Purifier - Switch Status        |            |
 | fan-level        | Number  | Air Purifier - Fan Level            | Value mapping ["1"="Level1","2"="Level2","3"="Level3"] |
 | mode             | Number  | Air Purifier - Mode                 | Value mapping ["0"="Auto","1"="Sleep","2"="Favorite","3"="None"] |
-| pm2.5-density    | Number  | Environment - Pm2 5 Density         |            |
+| 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          |            |
@@ -3846,7 +3847,7 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
 | on               | Switch  | Air Purifier - Switch Status        |            |
 | fan-level        | Number  | Air Purifier - Fan Level            | Value mapping ["1"="Level1","2"="Level2","3"="Level3"] |
 | mode             | Number  | Air Purifier - Mode                 | Value mapping ["0"="Auto","1"="Sleep","2"="Favorite","3"="None"] |
-| pm2.5-density    | Number  | Environment - Pm2 5                 |            |
+| 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          |            |
@@ -3894,6 +3895,24 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
 | manual-level     | Number  | Others - Manual Level               | Value mapping ["1"="Level1","2"="Level2","3"="Level3"] |
 | country-code     | Number  | Others - National Code              | Value mapping ["91"="印度","44"="分销英文","852"="中国香港","886"="中国台湾","82"="韩国"] |
 
+### Mi Air Purifier 3C (<a name="zhimi-airpurifier-mb4">zhimi.airpurifier.mb4</a>) Channels
+
+| Channel          | Type    | Description                         | Comment    |
+|------------------|---------|-------------------------------------|------------|
+| on               | Switch  | Power                               |            |
+| fault            | String  | Air Purifier - Device Fault         |            |
+| mode             | Number  | Mode                                | Value mapping ["0"="Auto","1"="Sleep","2"="Favorite"] |
+| pm2_5_density    | Number  | Environment - Pm2 5 Density         |            |
+| filter_life_level | Number:Dimensionless | Filter - Filter Life Level          |            |
+| filter_used_time | Number:Time | Filter - Filter Used Time           |            |
+| alarm            | Switch  | Alarm - Alarm                       |            |
+| brightness       | Number  | Screen - Brightness                 |            |
+| physical_controls_locked | Switch  | Physical Control Locked - Physical Control Locked |            |
+| moto_speed_rpm   | Number  | Custom Service - Moto Speed Rpm     |            |
+| miio_lib_version | String  | Custom Service - Miio Lib Version   |            |
+| favorite_speed   | Number  | Custom Service - Favorite Speed     |            |
+| aqi_updata_heartbeat | Number:Time | Custom Service - Aqi Updata Heartbeat |            |
+
 ### Mi Air Purifier 2S (<a name="zhimi-airpurifier-mc1">zhimi.airpurifier.mc1</a>) Channels
 
 | Channel          | Type    | Description                         | Comment    |
@@ -8353,7 +8372,7 @@ Number fault "Air Purifier - Device Fault" (G_airpurifier) {channel="miio:basic:
 Switch on "Air Purifier - Switch Status" (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 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"}
@@ -8435,7 +8454,7 @@ Number fault "Air Purifier - Fault" (G_airpurifier) {channel="miio:basic:airpuri
 Switch on "Air Purifier - Switch Status" (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" (G_airpurifier) {channel="miio:basic:airpurifier:pm2.5-density"}
+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"}
@@ -8484,6 +8503,27 @@ Number manual_level "Others - Manual Level" (G_airpurifier) {channel="miio:basic
 Number country_code "Others - National Code" (G_airpurifier) {channel="miio:basic:airpurifier:country-code"}
 ```
 
+### Mi Air Purifier 3C (zhimi.airpurifier.mb4) 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.
+
+```java
+Group G_airpurifier "Mi Air Purifier 3C" <status>
+Switch on "Power" (G_airpurifier) {channel="miio:basic:airpurifier:on"}
+String fault "Air Purifier - Device Fault" (G_airpurifier) {channel="miio:basic:airpurifier:fault"}
+Number mode "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 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 "Screen - 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 moto_speed_rpm "Custom Service - Moto Speed Rpm" (G_airpurifier) {channel="miio:basic:airpurifier:moto_speed_rpm"}
+String miio_lib_version "Custom Service - Miio Lib Version" (G_airpurifier) {channel="miio:basic:airpurifier:miio_lib_version"}
+Number favorite_speed "Custom Service - Favorite Speed" (G_airpurifier) {channel="miio:basic:airpurifier:favorite_speed"}
+Number:Time aqi_updata_heartbeat "Custom Service - Aqi Updata Heartbeat" (G_airpurifier) {channel="miio:basic:airpurifier:aqi_updata_heartbeat"}
+```
+
 ### Mi Air Purifier 2S (zhimi.airpurifier.mc1) item file lines
 
 note: Autogenerated example. Replace the id (airpurifier) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
index 4b81f14adeaff14cb5feec146b9d96ed2682b4e9..4aeb72555a319182cb300df108d365848ca1813e 100644 (file)
@@ -325,6 +325,7 @@ public enum MiIoDevices {
     ZHIMI_AIRPURIFIER_MA4("zhimi.airpurifier.ma4", "Mi Air Purifier 3", THING_TYPE_BASIC),
     ZHIMI_AIRPURIFIER_MB1("zhimi.airpurifier.mb1", "Mi Air Purifier 2S", THING_TYPE_BASIC),
     ZHIMI_AIRPURIFIER_MB3("zhimi.airpurifier.mb3", "Mi Air Purifier 3/3H", THING_TYPE_BASIC),
+    ZHIMI_AIRPURIFIER_MB4("zhimi.airpurifier.mb4", "Mi Air Purifier 3C", THING_TYPE_BASIC),
     ZHIMI_AIRPURIFIER_MC1("zhimi.airpurifier.mc1", "Mi Air Purifier 2S", THING_TYPE_BASIC),
     ZHIMI_AIRPURIFIER_MC2("zhimi.airpurifier.mc2", "Mi Air Purifier 2H", THING_TYPE_BASIC),
     ZHIMI_AIRPURIFIER_SA1("zhimi.airpurifier.sa1", "Mi Air Purifier Super", THING_TYPE_BASIC),
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.mb4-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.airpurifier.mb4-miot.json
new file mode 100644 (file)
index 0000000..c4d613b
--- /dev/null
@@ -0,0 +1,257 @@
+{
+       "deviceMapping": {
+               "id": [
+                       "zhimi.airpurifier.mb4"
+               ],
+               "propertyMethod": "get_properties",
+               "maxProperties": 1,
+               "channels": [
+                       {
+                               "property": "on",
+                               "siid": 2,
+                               "piid": 1,
+                               "friendlyName": "Power",
+                               "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": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "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"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "tags": [
+                                       "Control"
+                               ],
+                               "readmeComment": "Value mapping [\"0\"\u003d\"Auto\",\"1\"\u003d\"Sleep\",\"2\"\u003d\"Favorite\"]"
+                       },
+                       {
+                               "property": "pm2.5-density",
+                               "siid": 3,
+                               "piid": 4,
+                               "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": "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": "alarm",
+                               "siid": 6,
+                               "piid": 1,
+                               "friendlyName": "Alarm - Alarm",
+                               "channel": "alarm",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "brightness",
+                               "siid": 7,
+                               "piid": 2,
+                               "friendlyName": "Screen - Brightness",
+                               "channel": "brightness",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 8,
+                                       "step": 1,
+                                       "pattern": "%.0f"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "physical-controls-locked",
+                               "siid": 8,
+                               "piid": 1,
+                               "friendlyName": "Physical Control Locked - Physical Control Locked",
+                               "channel": "physical_controls_locked",
+                               "type": "Switch",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "ONOFFBOOL"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "moto-speed-rpm",
+                               "siid": 9,
+                               "piid": 1,
+                               "friendlyName": "Custom Service - Moto Speed Rpm",
+                               "channel": "moto_speed_rpm",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 65535,
+                                       "step": 1,
+                                       "pattern": "%.1f",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "miio-lib-version",
+                               "siid": 9,
+                               "piid": 2,
+                               "friendlyName": "Custom Service - Miio Lib Version",
+                               "channel": "miio_lib_version",
+                               "type": "String",
+                               "stateDescription": {
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "favorite-speed",
+                               "siid": 9,
+                               "piid": 3,
+                               "friendlyName": "Custom Service - Favorite Speed",
+                               "channel": "favorite_speed",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "minimum": 300,
+                                       "maximum": 2200,
+                                       "step": 1,
+                                       "pattern": "%.1f"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "aqi-updata-heartbeat",
+                               "siid": 9,
+                               "piid": 4,
+                               "friendlyName": "Custom Service - Aqi Updata Heartbeat",
+                               "channel": "aqi_updata_heartbeat",
+                               "type": "Number:Time",
+                               "unit": "seconds",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 65534,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ]
+                       }
+               ],
+               "readmeComment": "Specified action for filter reset \u003cbr /\u003e`action{\"did\":\"filter-reset-filter-life\",\"siid\":4,\"aiid\":1,\"in\":[3.0]}`\u003cbr /\u003eHowever, this has not been successfully tested yet.",
+               "experimental": false
+       }
+}