diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md
index 8a4770cebf1..e8053741324 100644
--- a/bundles/org.openhab.binding.miio/README.md
+++ b/bundles/org.openhab.binding.miio/README.md
@@ -203,11 +203,12 @@ Currently the miio binding supports more than 290 different models.
| Mi Smart Humidifier | miio:basic | [deerma.humidifier.mjjsq](#deerma-humidifier-mjjsq) | Yes | |
| Mi Fresh Air Ventilator A1-150 | miio:basic | [dmaker.airfresh.a1](#dmaker-airfresh-a1) | Yes | |
| Mi Fresh Air Ventilator | miio:basic | [dmaker.airfresh.t2017](#dmaker-airfresh-t2017) | Yes | |
-| Mi Smart Standing Fan 2 Lite | miio:basic | [dmaker.fan.1c](#dmaker-fan-1c) | Yes | |
+| Mi Smart Standing Fan 2 Lite | miio:basic | [dmaker.fan.1c](#dmaker-fan-1c) | Yes | Identified manual actions for execution
`action{"did":"fan-toggle","siid":2,"aiid":1,"in":[]}`
Please test and feedback if they are working to they can be linked to a channel.
Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| Mi Smart Standing Fan 1X | miio:basic | [dmaker.fan.p5](#dmaker-fan-p5) | Yes | |
-| Mi Smart Standing Fan 1C | miio:basic | [dmaker.fan.p8](#dmaker-fan-p8) | Yes | |
+| Mi Smart Standing Fan 1C | miio:basic | [dmaker.fan.p8](#dmaker-fan-p8) | Yes | Identified manual actions for execution
`action{"did":"fan-toggle","siid":2,"aiid":1,"in":[]}`
Please test and feedback if they are working to they can be linked to a channel.
Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| Mi Smart Tower Fan | miio:basic | [dmaker.fan.p9](#dmaker-fan-p9) | Yes | |
| Mi Smart Standing Fan 2 | miio:basic | [dmaker.fan.p10](#dmaker-fan-p10) | Yes | |
+| Mi Smart Standing Fan Pro | miio:basic | [dmaker.fan.p15](#dmaker-fan-p15) | Yes | Identified manual actions for execution
`action{"did":"off-delay-time-toggle","siid":3,"aiid":1,"in":[]}`
Please test and feedback if they are working to they can be linked to a channel.
Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| Mi Robot Vacuum Mop 1C STYTJ01ZHM | miio:basic | [dreame.vacuum.mc1808](#dreame-vacuum-mc1808) | Yes | Identified manual actions for execution
`action{"did":"battery-start-charge","siid":2,"aiid":1,"in":[]}`
`action{"did":"vacuum-start-sweep","siid":3,"aiid":1,"in":[]}`
`action{"did":"vacuum-stop-sweeping","siid":3,"aiid":2,"in":[]}`
`action{"did":"brush-cleaner-reset-brush-life","siid":26,"aiid":1,"in":[]}`
`action{"did":"filter-reset-filter-life","siid":27,"aiid":1,"in":[]}`
`action{"did":"brush-cleaner-reset-brush-life","siid":28,"aiid":1,"in":[]}`
`action{"did":"clean-start-clean","siid":18,"aiid":1,"in":[]}`
`action{"did":"clean-stop-clean","siid":18,"aiid":2,"in":[]}`
`action{"did":"remote-start-remote","siid":21,"aiid":1,"in":[1.0, 2.0]}`
`action{"did":"remote-stop-remote","siid":21,"aiid":2,"in":[]}`
`action{"did":"remote-exit-remote","siid":21,"aiid":3,"in":[]}`
`action{"did":"map-map-req","siid":23,"aiid":1,"in":[2.0]}`
`action{"did":"audio-position","siid":24,"aiid":1,"in":[]}`
`action{"did":"audio-set-voice","siid":24,"aiid":2,"in":[]}`
`action{"did":"audio-play-sound","siid":24,"aiid":3,"in":[]}`
Please test and feedback if they are working to they can be linked to a channel.
Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| Dreame Robot Vacuum-Mop F9 | miio:basic | [dreame.vacuum.p2008](#dreame-vacuum-p2008) | Yes | Identified manual actions for execution
`action{"did":"vacuum-start-sweep","siid":2,"aiid":1,"in":[]}`
`action{"did":"vacuum-stop-sweeping","siid":2,"aiid":2,"in":[]}`
`action{"did":"battery-start-charge","siid":3,"aiid":1,"in":[]}`
`action{"did":"brush-cleaner-reset-brush-life","siid":9,"aiid":1,"in":[]}`
`action{"did":"brush-cleaner-reset-brush-life","siid":10,"aiid":1,"in":[]}`
`action{"did":"filter-reset-filter-life","siid":11,"aiid":1,"in":[]}`
`action{"did":"vacuum-extend-start-clean","siid":4,"aiid":1,"in":[10.0]}`
`action{"did":"vacuum-extend-stop-clean","siid":4,"aiid":2,"in":[]}`
`action{"did":"map-map-req","siid":6,"aiid":1,"in":[2.0]}`
`action{"did":"map-update-map","siid":6,"aiid":2,"in":[4.0]}`
`action{"did":"audio-position","siid":7,"aiid":1,"in":[]}`
`action{"did":"audio-play-sound","siid":7,"aiid":2,"in":[]}`
`action{"did":"time-delete-timer","siid":8,"aiid":1,"in":[3.0]}`
Please test and feedback if they are working to they can be linked to a channel.
Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| Dreame Robot Vacuum D9 | miio:basic | [dreame.vacuum.p2009](#dreame-vacuum-p2009) | Yes | Identified manual actions for execution not linked in the database >`action{"did":"vacuum-extend-start-clean","siid":4,"aiid":1,"in":[10.0]}`
`action{"did":"vacuum-extend-stop-clean","siid":4,"aiid":2,"in":[]}`
`action{"did":"map-map-req","siid":6,"aiid":1,"in":[2.0]}`
`action{"did":"map-update-map","siid":6,"aiid":2,"in":[4.0]}`
`action{"did":"audio-position","siid":7,"aiid":1,"in":[]}`
`action{"did":"audio-play-sound","siid":7,"aiid":2,"in":[]}`
`action{"did":"time-delete-timer","siid":8,"aiid":1,"in":[3.0]}`
|
@@ -738,15 +739,12 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
| Channel | Type | Description | Comment |
|----------------------|----------------------|------------------------------------------|------------|
-| Manufacturer | String | Device Information-Device Manufacturer | |
-| Model | String | Device Information-Device Model | |
-| SerialNumber | String | Device Information-Device Serial Number | |
-| FirmwareRevision | String | Device Information-Current Firmware Version | |
-| On | Switch | Fan-Switch Status | |
-| FanLevel | Number | Fan-Fan Level | |
+| actions | String | Actions | Value mapping `["fan-toggle"="Fan Toggle"]` |
+| On | Switch | Fan - Switch Status | |
+| FanLevel | Number | Fan-Fan Level | Value mapping `["1"="Level1","2"="Level2","3"="Level3"]` |
| HorizontalSwing | Switch | Fan-Horizontal Swing | |
-| Mode | Number | Fan-Mode | |
-| OffDelayTime | Number | Fan-Power Off Delay Time | |
+| Mode | Number | Fan-Mode | Value mapping `["0"="Straight Wind","1"="Sleep"]` |
+| OffDelayTime | Number:Time | Fan-Power Off Delay Time | |
| Alarm | Switch | Fan-Alarm | |
| Brightness | Switch | Fan-Brightness | |
| PhysicalControlsLocked | Switch | Physical Control Locked-Physical Control Locked | |
@@ -769,15 +767,12 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
| Channel | Type | Description | Comment |
|----------------------|----------------------|------------------------------------------|------------|
-| Manufacturer | String | Device Information-Device Manufacturer | |
-| Model | String | Device Information-Device Model | |
-| SerialNumber | String | Device Information-Device Serial Number | |
-| FirmwareRevision | String | Device Information-Current Firmware Version | |
-| On | Switch | Fan-Switch Status | |
-| FanLevel | Number | Fan-Fan Level | |
+| actions | String | Actions | Value mapping `["fan-toggle"="Fan Toggle"]` |
+| On | Switch | Fan - Switch Status | |
+| FanLevel | Number | Fan-Fan Level | Value mapping `["1"="Level1","2"="Level2","3"="Level3"]` |
| HorizontalSwing | Switch | Fan-Horizontal Swing | |
-| Mode | Number | Fan-Mode | |
-| OffDelayTime | Number | Fan-Power Off Delay Time | |
+| Mode | Number | Fan-Mode | Value mapping `["0"="Straight Wind","1"="Sleep"]` |
+| OffDelayTime | Number:Time | Fan-Power Off Delay Time | |
| Alarm | Switch | Fan-Alarm | |
| Brightness | Switch | Fan-Brightness | |
| PhysicalControlsLocked | Switch | Physical Control Locked-Physical Control Locked | |
@@ -786,17 +781,14 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
| Channel | Type | Description | Comment |
|----------------------|----------------------|------------------------------------------|------------|
-| Manufacturer | String | Device Information-Device Manufacturer | |
-| Model | String | Device Information-Device Model | |
-| SerialNumber | String | Device Information-Device Serial Number | |
-| FirmwareRevision | String | Device Information-Current Firmware Version | |
+| actions | String | Actions | Value mapping `["fan-toggle"="Fan Toggle"]` |
| On | Switch | Fan-Switch Status | |
-| FanLevel | Number | Fan-Fan Level | |
-| Mode | Number | Fan-Mode | |
+| FanLevel | Number | Fan-Fan Level | Value mapping `["1"="Level1","2"="Level2","3"="Level3","4"="Level4"]` |
+| Mode | Number | Fan-Mode | Value mapping `["0"="Straight Wind","1"="Natural Wind","2"="Sleep"]` |
| HorizontalSwing | Switch | Fan-Horizontal Swing | |
-| HorizontalAngle | Number | Fan-Horizontal Angle | |
+| HorizontalAngle | Number | Fan-Horizontal Angle | Value mapping `["30"="30","60"="60","90"="90","120"="120","150"="150"]` |
| Alarm | Switch | Fan-Alarm | |
-| OffDelayTime | Number | Fan-Power Off Delay Time | |
+| OffDelayTime | Number:Time | Fan - Power Off Delay Time | |
| Brightness | Switch | Fan-Brightness | |
| MotorControl | Number | Fan-Motor Control | |
| SpeedLevel | Number | Fan-Speed Level | |
@@ -806,22 +798,36 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
| Channel | Type | Description | Comment |
|----------------------|----------------------|------------------------------------------|------------|
-| Manufacturer | String | Device Information-Device Manufacturer | |
-| Model | String | Device Information-Device Model | |
-| SerialNumber | String | Device Information-Device Serial Number | |
-| FirmwareRevision | String | Device Information-Current Firmware Version | |
+| actions | String | Actions | Value mapping `["fan-toggle"="Fan Toggle"]` |
| On | Switch | Fan-Switch Status | |
-| FanLevel | Number | Fan-Fan Level | |
-| Mode | Number | Fan-Mode | |
+| FanLevel | Number | Fan-Fan Level | Value mapping `["1"="Level1","2"="Level2","3"="Level3","4"="Level4"]` |
+| Mode | Number | Fan-Mode | Value mapping `["0"="Straight Wind","1"="Natural Wind","2"="Sleep"]` |
| HorizontalSwing | Switch | Fan-Horizontal Swing | |
-| HorizontalAngle | Number | Fan-Horizontal Angle | |
+| HorizontalAngle | Number | Fan-Horizontal Angle | Value mapping `["30"="30","60"="60","90"="90","120"="120","150"="150"]` |
| Alarm | Switch | Fan-Alarm | |
-| OffDelayTime | Number | Fan-Power Off Delay Time | |
+| OffDelayTime | Number:Time | Fan - Power Off Delay Time | |
| Brightness | Switch | Fan-Brightness | |
| MotorControl | Number | Fan-Motor Control | |
| SpeedLevel | Number | Fan-Speed Level | |
| PhysicalControlsLocked | Switch | Physical Control Locked-Physical Control Locked | |
+### Mi Smart Standing Fan Pro (dmaker.fan.p15) Channels
+
+| Channel | Type | Description | Comment |
+|----------------------|----------------------|------------------------------------------|------------|
+| on | Switch | Fan - Switch Status | |
+| fan_level | Number | Fan - Gear Fan Level | Value mapping `["1"="Level1","2"="Level2","3"="Level3","4"="Level4"]` |
+| mode | Number | Fan - Mode | Value mapping `["0"="Straight Wind","1"="Natural Wind"]` |
+| horizontal_swing | Switch | Fan - Horizontal Swing | |
+| horizontal_angle | Number | Fan - Horizontal Angle | Value mapping `["30"="30","60"="60","90"="90","120"="120","140"="140"]` |
+| status | Number | Fan - Status | |
+| on1 | Switch | Indicator Light - Switch Status | |
+| alarm | Switch | Alarm - Alarm | |
+| fault | Number | Motor Controller - Device Fault | Value mapping `["0"="No Faults"]` |
+| physical_controls_locked | Switch | Physical Control Locked - Physical Control Locked | |
+| off_delay_time | Number:Time | Off Delay Time - Off Delay Time | |
+| actions | String | Actions | Value mapping `["off-delay-time-toggle"="Off Delay Time Toggle"]` |
+
### Mi Robot Vacuum Mop 1C STYTJ01ZHM (dreame.vacuum.mc1808) Channels
| Channel | Type | Description | Comment |
@@ -5349,15 +5355,12 @@ note: Autogenerated example. Replace the id (fan) in the channel with your own.
```
Group G_fan "Mi Smart Standing Fan 2 Lite"
-String Manufacturer "Device Information-Device Manufacturer" (G_fan) {channel="miio:basic:fan:Manufacturer"}
-String Model "Device Information-Device Model" (G_fan) {channel="miio:basic:fan:Model"}
-String SerialNumber "Device Information-Device Serial Number" (G_fan) {channel="miio:basic:fan:SerialNumber"}
-String FirmwareRevision "Device Information-Current Firmware Version" (G_fan) {channel="miio:basic:fan:FirmwareRevision"}
-Switch On "Fan-Switch Status" (G_fan) {channel="miio:basic:fan:On"}
+String actions "Actions" (G_fan) {channel="miio:basic:fan:actions"}
+Switch On "Fan - Switch Status" (G_fan) {channel="miio:basic:fan:On"}
Number FanLevel "Fan-Fan Level" (G_fan) {channel="miio:basic:fan:FanLevel"}
Switch HorizontalSwing "Fan-Horizontal Swing" (G_fan) {channel="miio:basic:fan:HorizontalSwing"}
Number Mode "Fan-Mode" (G_fan) {channel="miio:basic:fan:Mode"}
-Number OffDelayTime "Fan-Power Off Delay Time" (G_fan) {channel="miio:basic:fan:OffDelayTime"}
+Number:Time OffDelayTime "Fan-Power Off Delay Time" (G_fan) {channel="miio:basic:fan:OffDelayTime"}
Switch Alarm "Fan-Alarm" (G_fan) {channel="miio:basic:fan:Alarm"}
Switch Brightness "Fan-Brightness" (G_fan) {channel="miio:basic:fan:Brightness"}
Switch PhysicalControlsLocked "Physical Control Locked-Physical Control Locked" (G_fan) {channel="miio:basic:fan:PhysicalControlsLocked"}
@@ -5386,15 +5389,12 @@ note: Autogenerated example. Replace the id (fan) in the channel with your own.
```
Group G_fan "Mi Smart Standing Fan 1C"
-String Manufacturer "Device Information-Device Manufacturer" (G_fan) {channel="miio:basic:fan:Manufacturer"}
-String Model "Device Information-Device Model" (G_fan) {channel="miio:basic:fan:Model"}
-String SerialNumber "Device Information-Device Serial Number" (G_fan) {channel="miio:basic:fan:SerialNumber"}
-String FirmwareRevision "Device Information-Current Firmware Version" (G_fan) {channel="miio:basic:fan:FirmwareRevision"}
-Switch On "Fan-Switch Status" (G_fan) {channel="miio:basic:fan:On"}
+String actions "Actions" (G_fan) {channel="miio:basic:fan:actions"}
+Switch On "Fan - Switch Status" (G_fan) {channel="miio:basic:fan:On"}
Number FanLevel "Fan-Fan Level" (G_fan) {channel="miio:basic:fan:FanLevel"}
Switch HorizontalSwing "Fan-Horizontal Swing" (G_fan) {channel="miio:basic:fan:HorizontalSwing"}
Number Mode "Fan-Mode" (G_fan) {channel="miio:basic:fan:Mode"}
-Number OffDelayTime "Fan-Power Off Delay Time" (G_fan) {channel="miio:basic:fan:OffDelayTime"}
+Number:Time OffDelayTime "Fan-Power Off Delay Time" (G_fan) {channel="miio:basic:fan:OffDelayTime"}
Switch Alarm "Fan-Alarm" (G_fan) {channel="miio:basic:fan:Alarm"}
Switch Brightness "Fan-Brightness" (G_fan) {channel="miio:basic:fan:Brightness"}
Switch PhysicalControlsLocked "Physical Control Locked-Physical Control Locked" (G_fan) {channel="miio:basic:fan:PhysicalControlsLocked"}
@@ -5406,17 +5406,14 @@ note: Autogenerated example. Replace the id (fan) in the channel with your own.
```
Group G_fan "Mi Smart Tower Fan"
-String Manufacturer "Device Information-Device Manufacturer" (G_fan) {channel="miio:basic:fan:Manufacturer"}
-String Model "Device Information-Device Model" (G_fan) {channel="miio:basic:fan:Model"}
-String SerialNumber "Device Information-Device Serial Number" (G_fan) {channel="miio:basic:fan:SerialNumber"}
-String FirmwareRevision "Device Information-Current Firmware Version" (G_fan) {channel="miio:basic:fan:FirmwareRevision"}
+String actions "Actions" (G_fan) {channel="miio:basic:fan:actions"}
Switch On "Fan-Switch Status" (G_fan) {channel="miio:basic:fan:On"}
Number FanLevel "Fan-Fan Level" (G_fan) {channel="miio:basic:fan:FanLevel"}
Number Mode "Fan-Mode" (G_fan) {channel="miio:basic:fan:Mode"}
Switch HorizontalSwing "Fan-Horizontal Swing" (G_fan) {channel="miio:basic:fan:HorizontalSwing"}
Number HorizontalAngle "Fan-Horizontal Angle" (G_fan) {channel="miio:basic:fan:HorizontalAngle"}
Switch Alarm "Fan-Alarm" (G_fan) {channel="miio:basic:fan:Alarm"}
-Number OffDelayTime "Fan-Power Off Delay Time" (G_fan) {channel="miio:basic:fan:OffDelayTime"}
+Number:Time OffDelayTime "Fan - Power Off Delay Time" (G_fan) {channel="miio:basic:fan:OffDelayTime"}
Switch Brightness "Fan-Brightness" (G_fan) {channel="miio:basic:fan:Brightness"}
Number MotorControl "Fan-Motor Control" (G_fan) {channel="miio:basic:fan:MotorControl"}
Number SpeedLevel "Fan-Speed Level" (G_fan) {channel="miio:basic:fan:SpeedLevel"}
@@ -5429,23 +5426,40 @@ note: Autogenerated example. Replace the id (fan) in the channel with your own.
```
Group G_fan "Mi Smart Standing Fan 2"
-String Manufacturer "Device Information-Device Manufacturer" (G_fan) {channel="miio:basic:fan:Manufacturer"}
-String Model "Device Information-Device Model" (G_fan) {channel="miio:basic:fan:Model"}
-String SerialNumber "Device Information-Device Serial Number" (G_fan) {channel="miio:basic:fan:SerialNumber"}
-String FirmwareRevision "Device Information-Current Firmware Version" (G_fan) {channel="miio:basic:fan:FirmwareRevision"}
+String actions "Actions" (G_fan) {channel="miio:basic:fan:actions"}
Switch On "Fan-Switch Status" (G_fan) {channel="miio:basic:fan:On"}
Number FanLevel "Fan-Fan Level" (G_fan) {channel="miio:basic:fan:FanLevel"}
Number Mode "Fan-Mode" (G_fan) {channel="miio:basic:fan:Mode"}
Switch HorizontalSwing "Fan-Horizontal Swing" (G_fan) {channel="miio:basic:fan:HorizontalSwing"}
Number HorizontalAngle "Fan-Horizontal Angle" (G_fan) {channel="miio:basic:fan:HorizontalAngle"}
Switch Alarm "Fan-Alarm" (G_fan) {channel="miio:basic:fan:Alarm"}
-Number OffDelayTime "Fan-Power Off Delay Time" (G_fan) {channel="miio:basic:fan:OffDelayTime"}
+Number:Time OffDelayTime "Fan - Power Off Delay Time" (G_fan) {channel="miio:basic:fan:OffDelayTime"}
Switch Brightness "Fan-Brightness" (G_fan) {channel="miio:basic:fan:Brightness"}
Number MotorControl "Fan-Motor Control" (G_fan) {channel="miio:basic:fan:MotorControl"}
Number SpeedLevel "Fan-Speed Level" (G_fan) {channel="miio:basic:fan:SpeedLevel"}
Switch PhysicalControlsLocked "Physical Control Locked-Physical Control Locked" (G_fan) {channel="miio:basic:fan:PhysicalControlsLocked"}
```
+### Mi Smart Standing Fan Pro (dmaker.fan.p15) 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.
+
+```
+Group G_fan "Mi Smart Standing Fan Pro"
+Switch on "Fan - Switch Status" (G_fan) {channel="miio:basic:fan:on"}
+Number fan_level "Fan - Gear Fan Level" (G_fan) {channel="miio:basic:fan:fan_level"}
+Number mode "Fan - Mode" (G_fan) {channel="miio:basic:fan:mode"}
+Switch horizontal_swing "Fan - Horizontal Swing" (G_fan) {channel="miio:basic:fan:horizontal_swing"}
+Number horizontal_angle "Fan - Horizontal Angle" (G_fan) {channel="miio:basic:fan:horizontal_angle"}
+Number status "Fan - Status" (G_fan) {channel="miio:basic:fan:status"}
+Switch on1 "Indicator Light - Switch Status" (G_fan) {channel="miio:basic:fan:on1"}
+Switch alarm "Alarm - Alarm" (G_fan) {channel="miio:basic:fan:alarm"}
+Number fault "Motor Controller - Device Fault" (G_fan) {channel="miio:basic:fan:fault"}
+Switch physical_controls_locked "Physical Control Locked - Physical Control Locked" (G_fan) {channel="miio:basic:fan:physical_controls_locked"}
+Number:Time off_delay_time "Off Delay Time - Off Delay Time" (G_fan) {channel="miio:basic:fan:off_delay_time"}
+String actions "Actions" (G_fan) {channel="miio:basic:fan:actions"}
+```
+
### Mi Robot Vacuum Mop 1C STYTJ01ZHM (dreame.vacuum.mc1808) item file lines
note: Autogenerated example. Replace the id (vacuum) 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 3771a0037b2..7c26ec91556 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
@@ -56,6 +56,7 @@ public enum MiIoDevices {
DMAKER_FAN_P8("dmaker.fan.p8", "Mi Smart Standing Fan 1C", THING_TYPE_BASIC),
DMAKER_FAN_P9("dmaker.fan.p9", "Mi Smart Tower Fan", THING_TYPE_BASIC),
DMAKER_FAN_P10("dmaker.fan.p10", "Mi Smart Standing Fan 2", THING_TYPE_BASIC),
+ DMAKER_FAN_P15("dmaker.fan.p15", "Mi Smart Standing Fan Pro", THING_TYPE_BASIC),
DREAME_VACUUM_MC1808("dreame.vacuum.mc1808", "Mi Robot Vacuum Mop 1C STYTJ01ZHM", THING_TYPE_BASIC),
DREAME_VACUUM_P2008("dreame.vacuum.p2008", "Dreame Robot Vacuum-Mop F9", THING_TYPE_BASIC),
DREAME_VACUUM_P2009("dreame.vacuum.p2009", "Dreame Robot Vacuum D9 ", THING_TYPE_BASIC),
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p15-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p15-miot.json
new file mode 100644
index 00000000000..29316ff4112
--- /dev/null
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p15-miot.json
@@ -0,0 +1,319 @@
+{
+ "deviceMapping": {
+ "id": [
+ "dmaker.fan.p15"
+ ],
+ "propertyMethod": "get_properties",
+ "maxProperties": 1,
+ "channels": [
+ {
+ "property": "on",
+ "siid": 2,
+ "piid": 1,
+ "friendlyName": "Fan - Switch Status",
+ "channel": "on",
+ "type": "Switch",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "ONOFFBOOL"
+ }
+ ],
+ "category": "switch",
+ "tags": [
+ "Switch"
+ ]
+ },
+ {
+ "property": "fan-level",
+ "siid": 2,
+ "piid": 2,
+ "friendlyName": "Fan - Gear Fan Level",
+ "channel": "fan_level",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "1",
+ "label": "Level1"
+ },
+ {
+ "value": "2",
+ "label": "Level2"
+ },
+ {
+ "value": "3",
+ "label": "Level3"
+ },
+ {
+ "value": "4",
+ "label": "Level4"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "category": "fan",
+ "tags": [
+ "SetPoint"
+ ],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"Level1\",\"2\"\u003d\"Level2\",\"3\"\u003d\"Level3\",\"4\"\u003d\"Level4\"]`"
+ },
+ {
+ "property": "mode",
+ "siid": 2,
+ "piid": 3,
+ "friendlyName": "Fan - Mode",
+ "channel": "mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Straight Wind"
+ },
+ {
+ "value": "1",
+ "label": "Natural Wind"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "category": "flow",
+ "tags": [
+ "Control"
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Straight Wind\",\"1\"\u003d\"Natural Wind\"]`"
+ },
+ {
+ "property": "horizontal-swing",
+ "siid": 2,
+ "piid": 4,
+ "friendlyName": "Fan - Horizontal Swing",
+ "channel": "horizontal_swing",
+ "type": "Switch",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "ONOFFBOOL"
+ }
+ ],
+ "category": "switch",
+ "tags": [
+ "Switch"
+ ]
+ },
+ {
+ "property": "horizontal-angle",
+ "siid": 2,
+ "piid": 5,
+ "friendlyName": "Fan - Horizontal Angle",
+ "channel": "horizontal_angle",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "30",
+ "label": "30"
+ },
+ {
+ "value": "60",
+ "label": "60"
+ },
+ {
+ "value": "90",
+ "label": "90"
+ },
+ {
+ "value": "120",
+ "label": "120"
+ },
+ {
+ "value": "140",
+ "label": "140"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "STRING"
+ }
+ ],
+ "category": "incline",
+ "tags": [
+ "Setpoint"
+ ],
+ "readmeComment": "Value mapping `[\"30\"\u003d\"30\",\"60\"\u003d\"60\",\"90\"\u003d\"90\",\"120\"\u003d\"120\",\"140\"\u003d\"140\"]`"
+ },
+ {
+ "property": "status",
+ "siid": 2,
+ "piid": 6,
+ "friendlyName": "Fan - Status",
+ "channel": "status",
+ "type": "Number",
+ "stateDescription": {
+ "minimum": 1,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f",
+ "readOnly": true
+ },
+ "refresh": true,
+ "actions": [],
+ "category": "fan",
+ "tags": [
+ "Status"
+ ]
+ },
+ {
+ "property": "on1",
+ "siid": 4,
+ "piid": 1,
+ "friendlyName": "Indicator Light - Switch Status",
+ "channel": "on1",
+ "type": "Switch",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "ONOFFBOOL"
+ }
+ ],
+ "category": "lightbulb",
+ "tags": [
+ "Control"
+ ]
+ },
+ {
+ "property": "alarm",
+ "siid": 5,
+ "piid": 1,
+ "friendlyName": "Alarm - Alarm",
+ "channel": "alarm",
+ "type": "Switch",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "ONOFFBOOL"
+ }
+ ],
+ "category": "alarm"
+ },
+ {
+ "property": "fault",
+ "siid": 6,
+ "piid": 2,
+ "friendlyName": "Motor Controller - Device Fault",
+ "channel": "fault",
+ "type": "Number",
+ "stateDescription": {
+ "readOnly": true,
+ "options": [
+ {
+ "value": "0",
+ "label": "No Faults"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [],
+ "category": "error",
+ "tags": [
+ "Status"
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"No Faults\"]`"
+ },
+ {
+ "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": "off-delay-time",
+ "siid": 3,
+ "piid": 1,
+ "friendlyName": "Off Delay Time - Off Delay Time",
+ "channel": "off_delay_time",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 480,
+ "step": 1,
+ "pattern": "%.0f"
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "category": "time",
+ "tags": [
+ "Setpoint"
+ ]
+ },
+ {
+ "property": "",
+ "friendlyName": "Actions",
+ "channel": "actions",
+ "type": "String",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "off-delay-time-toggle",
+ "label": "Off Delay Time Toggle"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 3,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "off-delay-time-toggle"
+ }
+ ]
+ }
+ }
+ ],
+ "readmeComment": "Value mapping `[\"off-delay-time-toggle\"\u003d\"Off Delay Time Toggle\"]`"
+ }
+ ],
+ "readmeComment": "Identified manual actions for execution\u003cbr /\u003e`action{\"did\":\"off-delay-time-toggle\",\"siid\":3,\"aiid\":1,\"in\":[]}`\u003cbr /\u003ePlease test and feedback if they are working to they can be linked to a channel.",
+ "experimental": false
+ }
+}
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p8-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p8-miot.json
index 4fa4e796428..a8b0662dcbf 100644
--- a/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p8-miot.json
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p8-miot.json
@@ -8,56 +8,42 @@
"maxProperties": 2,
"channels": [
{
- "property": "manufacturer",
- "siid": 1,
- "piid": 1,
- "friendlyName": "Device Information-Device Manufacturer",
- "channel": "Manufacturer",
- "channelType": "miot_string",
+ "property": "",
+ "friendlyName": "Actions",
+ "channel": "actions",
"type": "String",
- "refresh": true,
- "actions": []
- },
- {
- "property": "model",
- "siid": 1,
- "piid": 2,
- "friendlyName": "Device Information-Device Model",
- "channel": "Model",
- "channelType": "miot_string",
- "type": "String",
- "refresh": true,
- "actions": []
- },
- {
- "property": "serial-number",
- "siid": 1,
- "piid": 3,
- "friendlyName": "Device Information-Device Serial Number",
- "channel": "SerialNumber",
- "channelType": "miot_string",
- "type": "String",
- "refresh": true,
- "actions": []
- },
- {
- "property": "firmware-revision",
- "siid": 1,
- "piid": 4,
- "friendlyName": "Device Information-Current Firmware Version",
- "channel": "FirmwareRevision",
- "channelType": "miot_string",
- "type": "String",
- "refresh": true,
- "actions": []
+ "stateDescription": {
+ "options": [
+ {
+ "value": "fan-toggle",
+ "label": "Fan Toggle"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 2,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "fan-toggle"
+ }
+ ]
+ }
+ }
+ ],
+ "readmeComment": "Value mapping `[\"fan-toggle\"\u003d\"Fan Toggle\"]`"
},
{
"property": "on",
"siid": 2,
"piid": 1,
- "friendlyName": "Fan-Switch Status",
+ "friendlyName": "Fan - Switch Status",
"channel": "On",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [
@@ -77,15 +63,35 @@
"piid": 2,
"friendlyName": "Fan-Fan Level",
"channel": "FanLevel",
- "channelType": "miot_uint8",
"type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "1",
+ "label": "Level1"
+ },
+ {
+ "value": "2",
+ "label": "Level2"
+ },
+ {
+ "value": "3",
+ "label": "Level3"
+ }
+ ]
+ },
"refresh": true,
"actions": [
{
"command": "set_properties",
"parameterType": "NUMBER"
}
- ]
+ ],
+ "category": "fan",
+ "tags": [
+ "SetPoint"
+ ],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"Level1\",\"2\"\u003d\"Level2\",\"3\"\u003d\"Level3\"]`"
},
{
"property": "horizontal-swing",
@@ -93,7 +99,6 @@
"piid": 3,
"friendlyName": "Fan-Horizontal Swing",
"channel": "HorizontalSwing",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [
@@ -109,8 +114,19 @@
"piid": 7,
"friendlyName": "Fan-Mode",
"channel": "Mode",
- "channelType": "miot_uint8",
"type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Straight Wind"
+ },
+ {
+ "value": "1",
+ "label": "Sleep"
+ }
+ ]
+ },
"refresh": true,
"actions": [
{
@@ -118,9 +134,11 @@
"parameterType": "NUMBER"
}
],
+ "category": "flow",
"tags": [
"Control"
- ]
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Straight Wind\",\"1\"\u003d\"Sleep\"]`"
},
{
"property": "off-delay-time",
@@ -128,14 +146,24 @@
"piid": 10,
"friendlyName": "Fan-Power Off Delay Time",
"channel": "OffDelayTime",
- "channelType": "miot_uint16",
- "type": "Number",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 480,
+ "step": 1,
+ "pattern": "%.0f %unit%"
+ },
"refresh": true,
"actions": [
{
"command": "set_properties",
"parameterType": "NUMBER"
}
+ ],
+ "category": "time",
+ "tags": [
+ "Setpoint"
]
},
{
@@ -144,7 +172,6 @@
"piid": 11,
"friendlyName": "Fan-Alarm",
"channel": "Alarm",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [
@@ -161,7 +188,6 @@
"piid": 12,
"friendlyName": "Fan-Brightness",
"channel": "Brightness",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [
@@ -182,7 +208,6 @@
"piid": 1,
"friendlyName": "Physical Control Locked-Physical Control Locked",
"channel": "PhysicalControlsLocked",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [
@@ -192,6 +217,8 @@
}
]
}
- ]
+ ],
+ "readmeComment": "Identified manual actions for execution\u003cbr /\u003e`action{\"did\":\"fan-toggle\",\"siid\":2,\"aiid\":1,\"in\":[]}`\u003cbr /\u003ePlease test and feedback if they are working to they can be linked to a channel.",
+ "experimental": true
}
}
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p9-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p9-miot.json
index 8ec1b22d3c9..b98eb6a0548 100644
--- a/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p9-miot.json
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p9-miot.json
@@ -5,51 +5,38 @@
"dmaker.fan.p10"
],
"propertyMethod": "get_properties",
- "maxProperties": 2,
+ "maxProperties": 1,
"channels": [
{
- "property": "manufacturer",
- "siid": 1,
- "piid": 1,
- "friendlyName": "Device Information-Device Manufacturer",
- "channel": "Manufacturer",
- "channelType": "miot_string",
+ "property": "",
+ "friendlyName": "Actions",
+ "channel": "actions",
"type": "String",
- "refresh": true,
- "actions": []
- },
- {
- "property": "model",
- "siid": 1,
- "piid": 2,
- "friendlyName": "Device Information-Device Model",
- "channel": "Model",
- "channelType": "miot_string",
- "type": "String",
- "refresh": true,
- "actions": []
- },
- {
- "property": "serial-number",
- "siid": 1,
- "piid": 3,
- "friendlyName": "Device Information-Device Serial Number",
- "channel": "SerialNumber",
- "channelType": "miot_string",
- "type": "String",
- "refresh": true,
- "actions": []
- },
- {
- "property": "firmware-revision",
- "siid": 1,
- "piid": 4,
- "friendlyName": "Device Information-Current Firmware Version",
- "channel": "FirmwareRevision",
- "channelType": "miot_string",
- "type": "String",
- "refresh": true,
- "actions": []
+ "stateDescription": {
+ "options": [
+ {
+ "value": "fan-toggle",
+ "label": "Fan Toggle"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "command": "action",
+ "parameterType": "EMPTY",
+ "siid": 2,
+ "aiid": 1,
+ "condition": {
+ "name": "matchValue",
+ "parameters": [
+ {
+ "matchValue": "fan-toggle"
+ }
+ ]
+ }
+ }
+ ],
+ "readmeComment": "Value mapping `[\"fan-toggle\"\u003d\"Fan Toggle\"]`"
},
{
"property": "on",
@@ -57,7 +44,6 @@
"piid": 1,
"friendlyName": "Fan-Switch Status",
"channel": "On",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [
@@ -77,24 +63,27 @@
"piid": 2,
"friendlyName": "Fan-Fan Level",
"channel": "FanLevel",
- "channelType": "miot_uint8",
- "type": "Number",
- "refresh": true,
- "actions": [
- {
- "command": "set_properties",
- "parameterType": "NUMBER"
- }
- ]
- },
- {
- "property": "mode",
- "siid": 2,
- "piid": 4,
- "friendlyName": "Fan-Mode",
- "channel": "Mode",
- "channelType": "miot_uint8",
"type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "1",
+ "label": "Level1"
+ },
+ {
+ "value": "2",
+ "label": "Level2"
+ },
+ {
+ "value": "3",
+ "label": "Level3"
+ },
+ {
+ "value": "4",
+ "label": "Level4"
+ }
+ ]
+ },
"refresh": true,
"actions": [
{
@@ -102,9 +91,47 @@
"parameterType": "NUMBER"
}
],
+ "category": "fan",
+ "tags": [
+ "SetPoint"
+ ],
+ "readmeComment": "Value mapping `[\"1\"\u003d\"Level1\",\"2\"\u003d\"Level2\",\"3\"\u003d\"Level3\",\"4\"\u003d\"Level4\"]`"
+ },
+ {
+ "property": "mode",
+ "siid": 2,
+ "piid": 4,
+ "friendlyName": "Fan-Mode",
+ "channel": "Mode",
+ "type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Straight Wind"
+ },
+ {
+ "value": "1",
+ "label": "Natural Wind"
+ },
+ {
+ "value": "2",
+ "label": "Sleep"
+ }
+ ]
+ },
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "category": "flow",
"tags": [
"Control"
- ]
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Straight Wind\",\"1\"\u003d\"Natural Wind\",\"2\"\u003d\"Sleep\"]`"
},
{
"property": "horizontal-swing",
@@ -112,7 +139,6 @@
"piid": 5,
"friendlyName": "Fan-Horizontal Swing",
"channel": "HorizontalSwing",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [
@@ -120,6 +146,10 @@
"command": "set_properties",
"parameterType": "ONOFFBOOL"
}
+ ],
+ "category": "switch",
+ "tags": [
+ "Switch"
]
},
{
@@ -128,15 +158,43 @@
"piid": 6,
"friendlyName": "Fan-Horizontal Angle",
"channel": "HorizontalAngle",
- "channelType": "miot_uint8",
"type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "30",
+ "label": "30"
+ },
+ {
+ "value": "60",
+ "label": "60"
+ },
+ {
+ "value": "90",
+ "label": "90"
+ },
+ {
+ "value": "120",
+ "label": "120"
+ },
+ {
+ "value": "150",
+ "label": "150"
+ }
+ ]
+ },
"refresh": true,
"actions": [
{
"command": "set_properties",
"parameterType": "NUMBER"
}
- ]
+ ],
+ "category": "incline",
+ "tags": [
+ "Setpoint"
+ ],
+ "readmeComment": "Value mapping `[\"30\"\u003d\"30\",\"60\"\u003d\"60\",\"90\"\u003d\"90\",\"120\"\u003d\"120\",\"150\"\u003d\"150\"]`"
},
{
"property": "alarm",
@@ -144,7 +202,6 @@
"piid": 7,
"friendlyName": "Fan-Alarm",
"channel": "Alarm",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [
@@ -159,16 +216,26 @@
"property": "off-delay-time",
"siid": 2,
"piid": 8,
- "friendlyName": "Fan-Power Off Delay Time",
+ "friendlyName": "Fan - Power Off Delay Time",
"channel": "OffDelayTime",
- "channelType": "miot_uint8",
- "type": "Number",
+ "type": "Number:Time",
+ "unit": "minutes",
+ "stateDescription": {
+ "minimum": 0,
+ "maximum": 480,
+ "step": 1,
+ "pattern": "%.0f %unit%"
+ },
"refresh": true,
"actions": [
{
"command": "set_properties",
"parameterType": "NUMBER"
}
+ ],
+ "category": "time",
+ "tags": [
+ "Setpoint"
]
},
{
@@ -177,7 +244,6 @@
"piid": 9,
"friendlyName": "Fan-Brightness",
"channel": "Brightness",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [
@@ -188,8 +254,7 @@
],
"category": "light",
"tags": [
- "Control",
- "Light"
+ "Control"
]
},
{
@@ -198,7 +263,6 @@
"piid": 10,
"friendlyName": "Fan-Motor Control",
"channel": "MotorControl",
- "channelType": "miot_uint8",
"type": "Number",
"refresh": true,
"actions": [
@@ -214,8 +278,13 @@
"piid": 11,
"friendlyName": "Fan-Speed Level",
"channel": "SpeedLevel",
- "channelType": "miot_uint8",
"type": "Number",
+ "stateDescription": {
+ "minimum": 1,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f"
+ },
"refresh": true,
"actions": [
{
@@ -230,7 +299,6 @@
"piid": 1,
"friendlyName": "Physical Control Locked-Physical Control Locked",
"channel": "PhysicalControlsLocked",
- "channelType": "miot_bool",
"type": "Switch",
"refresh": true,
"actions": [