]> git.basschouten.com Git - openhab-addons.git/commitdiff
[miio] add support for Mi Smart Standing Fan Pro Global (dmaker.fan.p15) (#10855)
authorMarcel <marcel@verpaalen.com>
Tue, 15 Jun 2021 22:03:46 +0000 (00:03 +0200)
committerGitHub <noreply@github.com>
Tue, 15 Jun 2021 22:03:46 +0000 (00:03 +0200)
* [miio] add support for Mi Smart Standing Fan Pro Global (dmaker.fan.p15)

add support Mi Smart Standing Fan Pro EU/Global (dmaker.fan.p15)
Improve p8 & p9 fans
close #10843

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* [miio] improve timeunit

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/dmaker.fan.p15-miot.json [new file with mode: 0644]
bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p8-miot.json
bundles/org.openhab.binding.miio/src/main/resources/database/dmaker.fan.p9-miot.json

index 8a4770cebf1e7650430e5d003535a5e787797f30..e805374132402f566defb6a13ef2c0fc0253c5cb 100644 (file)
@@ -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<br />`action{"did":"fan-toggle","siid":2,"aiid":1,"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 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<br />`action{"did":"fan-toggle","siid":2,"aiid":1,"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 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<br />`action{"did":"off-delay-time-toggle","siid":3,"aiid":1,"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 Robot Vacuum Mop 1C STYTJ01ZHM | miio:basic       | [dreame.vacuum.mc1808](#dreame-vacuum-mc1808) | Yes       | Identified manual actions for execution<br />`action{"did":"battery-start-charge","siid":2,"aiid":1,"in":[]}`<br />`action{"did":"vacuum-start-sweep","siid":3,"aiid":1,"in":[]}`<br />`action{"did":"vacuum-stop-sweeping","siid":3,"aiid":2,"in":[]}`<br />`action{"did":"brush-cleaner-reset-brush-life","siid":26,"aiid":1,"in":[]}`<br />`action{"did":"filter-reset-filter-life","siid":27,"aiid":1,"in":[]}`<br />`action{"did":"brush-cleaner-reset-brush-life","siid":28,"aiid":1,"in":[]}`<br />`action{"did":"clean-start-clean","siid":18,"aiid":1,"in":[]}`<br />`action{"did":"clean-stop-clean","siid":18,"aiid":2,"in":[]}`<br />`action{"did":"remote-start-remote","siid":21,"aiid":1,"in":[1.0, 2.0]}`<br />`action{"did":"remote-stop-remote","siid":21,"aiid":2,"in":[]}`<br />`action{"did":"remote-exit-remote","siid":21,"aiid":3,"in":[]}`<br />`action{"did":"map-map-req","siid":23,"aiid":1,"in":[2.0]}`<br />`action{"did":"audio-position","siid":24,"aiid":1,"in":[]}`<br />`action{"did":"audio-set-voice","siid":24,"aiid":2,"in":[]}`<br />`action{"did":"audio-play-sound","siid":24,"aiid":3,"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 |
 | Dreame Robot Vacuum-Mop F9   | miio:basic       | [dreame.vacuum.p2008](#dreame-vacuum-p2008) | Yes       | Identified manual actions for execution<br />`action{"did":"vacuum-start-sweep","siid":2,"aiid":1,"in":[]}`<br />`action{"did":"vacuum-stop-sweeping","siid":2,"aiid":2,"in":[]}`<br />`action{"did":"battery-start-charge","siid":3,"aiid":1,"in":[]}`<br />`action{"did":"brush-cleaner-reset-brush-life","siid":9,"aiid":1,"in":[]}`<br />`action{"did":"brush-cleaner-reset-brush-life","siid":10,"aiid":1,"in":[]}`<br />`action{"did":"filter-reset-filter-life","siid":11,"aiid":1,"in":[]}`<br />`action{"did":"vacuum-extend-start-clean","siid":4,"aiid":1,"in":[10.0]}`<br />`action{"did":"vacuum-extend-stop-clean","siid":4,"aiid":2,"in":[]}`<br />`action{"did":"map-map-req","siid":6,"aiid":1,"in":[2.0]}`<br />`action{"did":"map-update-map","siid":6,"aiid":2,"in":[4.0]}`<br />`action{"did":"audio-position","siid":7,"aiid":1,"in":[]}`<br />`action{"did":"audio-play-sound","siid":7,"aiid":2,"in":[]}`<br />`action{"did":"time-delete-timer","siid":8,"aiid":1,"in":[3.0]}`<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 |
 | 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]}`<br />`action{"did":"vacuum-extend-stop-clean","siid":4,"aiid":2,"in":[]}`<br />`action{"did":"map-map-req","siid":6,"aiid":1,"in":[2.0]}`<br />`action{"did":"map-update-map","siid":6,"aiid":2,"in":[4.0]}`<br />`action{"did":"audio-position","siid":7,"aiid":1,"in":[]}`<br />`action{"did":"audio-play-sound","siid":7,"aiid":2,"in":[]}`<br />`action{"did":"time-delete-timer","siid":8,"aiid":1,"in":[3.0]}`<br /> |
@@ -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 (<a name="dmaker-fan-p15">dmaker.fan.p15</a>) 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 (<a name="dreame-vacuum-mc1808">dreame.vacuum.mc1808</a>) 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" <status>
-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" <status>
-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" <status>
-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" <status>
-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" <status>
+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.
index 3771a0037b2a54d614274a4504fab5fbb5d80c53..7c26ec91556175840308ed2e8f57cdc309a893fa 100644 (file)
@@ -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 (file)
index 0000000..29316ff
--- /dev/null
@@ -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
+       }
+}
index 4fa4e796428cacc0e39ac4f495bbed9c3b725e70..a8b0662dcbf0071afbb13410d6547f1e5f8687e5 100644 (file)
@@ -8,56 +8,42 @@
                "maxProperties": 2,
                "channels": [
                        {
-                               "property": "manufacturer",
-                               "siid": 1,
-                               "piid": 1,
-                               "friendlyName": "Device Information-Device Manufacturer",
-                               "channel": "Manufacturer",
-                               "channelType": "miot_string",
-                               "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",
+                               "property": "",
+                               "friendlyName": "Actions",
+                               "channel": "actions",
                                "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": [
                                "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": [
                                "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": [
                                        {
                                                "parameterType": "NUMBER"
                                        }
                                ],
+                               "category": "flow",
                                "tags": [
                                        "Control"
-                               ]
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Straight Wind\",\"1\"\u003d\"Sleep\"]`"
                        },
                        {
                                "property": "off-delay-time",
                                "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"
                                ]
                        },
                        {
                                "piid": 11,
                                "friendlyName": "Fan-Alarm",
                                "channel": "Alarm",
-                               "channelType": "miot_bool",
                                "type": "Switch",
                                "refresh": true,
                                "actions": [
                                "piid": 12,
                                "friendlyName": "Fan-Brightness",
                                "channel": "Brightness",
-                               "channelType": "miot_bool",
                                "type": "Switch",
                                "refresh": true,
                                "actions": [
                                "piid": 1,
                                "friendlyName": "Physical Control Locked-Physical Control Locked",
                                "channel": "PhysicalControlsLocked",
-                               "channelType": "miot_bool",
                                "type": "Switch",
                                "refresh": true,
                                "actions": [
                                        }
                                ]
                        }
-               ]
+               ],
+               "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
        }
 }
index 8ec1b22d3c9067f0cf6aedd32aaeaee821a59721..b98eb6a0548d88e89fb6ab94115ac25c29ed4530 100644 (file)
@@ -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",
-                               "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",
+                               "property": "",
+                               "friendlyName": "Actions",
+                               "channel": "actions",
                                "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": [
                                "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"
+                                               },
+                                               {
+                                                       "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",
                                "piid": 4,
                                "friendlyName": "Fan-Mode",
                                "channel": "Mode",
-                               "channelType": "miot_uint8",
                                "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Straight Wind"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Natural Wind"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Sleep"
+                                               }
+                                       ]
+                               },
                                "refresh": true,
                                "actions": [
                                        {
                                                "parameterType": "NUMBER"
                                        }
                                ],
+                               "category": "flow",
                                "tags": [
                                        "Control"
-                               ]
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Straight Wind\",\"1\"\u003d\"Natural Wind\",\"2\"\u003d\"Sleep\"]`"
                        },
                        {
                                "property": "horizontal-swing",
                                "piid": 5,
                                "friendlyName": "Fan-Horizontal Swing",
                                "channel": "HorizontalSwing",
-                               "channelType": "miot_bool",
                                "type": "Switch",
                                "refresh": true,
                                "actions": [
                                                "command": "set_properties",
                                                "parameterType": "ONOFFBOOL"
                                        }
+                               ],
+                               "category": "switch",
+                               "tags": [
+                                       "Switch"
                                ]
                        },
                        {
                                "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",
                                "piid": 7,
                                "friendlyName": "Fan-Alarm",
                                "channel": "Alarm",
-                               "channelType": "miot_bool",
                                "type": "Switch",
                                "refresh": true,
                                "actions": [
                                "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"
                                ]
                        },
                        {
                                "piid": 9,
                                "friendlyName": "Fan-Brightness",
                                "channel": "Brightness",
-                               "channelType": "miot_bool",
                                "type": "Switch",
                                "refresh": true,
                                "actions": [
                                ],
                                "category": "light",
                                "tags": [
-                                       "Control",
-                                       "Light"
+                                       "Control"
                                ]
                        },
                        {
                                "piid": 10,
                                "friendlyName": "Fan-Motor Control",
                                "channel": "MotorControl",
-                               "channelType": "miot_uint8",
                                "type": "Number",
                                "refresh": true,
                                "actions": [
                                "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": [
                                        {
                                "piid": 1,
                                "friendlyName": "Physical Control Locked-Physical Control Locked",
                                "channel": "PhysicalControlsLocked",
-                               "channelType": "miot_bool",
                                "type": "Switch",
                                "refresh": true,
                                "actions": [