diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md
index 72986ffbe..36fde80df 100644
--- a/bundles/org.openhab.binding.miio/README.md
+++ b/bundles/org.openhab.binding.miio/README.md
@@ -4618,16 +4618,16 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
| power | Switch | Power | |
| angleEnable | Switch | Rotation | |
| usedhours | Number:Time | Run Time | |
-| angle | Number | Angle | |
-| poweroffTime | Number | Timer | |
+| angle | Number:Angle | Angle | Value mapping `["30"="30","60"="60","90"="90","120"="120"]` |
+| poweroffTime | Number:Time | Power-Off Timer | |
| buzzer | Switch | Buzzer | |
-| led_b | Number | LED | |
+| led_b | Number | LED | Value mapping `["0"="Bright","1"="Dimmed","2"="Off"]` |
| child_lock | Switch | Child Lock | |
-| speedLevel | Number | Speed Level | |
+| speedLevel | Dimmer | Speed Level | |
| speed | Number | Speed | |
-| naturalLevel | Number | Natural Level | |
+| naturalLevel | Dimmer | Natural Level | |
| acPower | Switch | AC Power | |
-| move | String | Move Direction | |
+| move | String | Move Direction | Value mapping `[""="None","left"="Left","right"="Right"]` |
### Mi Smart Fan (zhimi.fan.v1) Channels
@@ -4636,20 +4636,20 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
| power | Switch | Power | |
| angleEnable | Switch | Rotation | |
| usedhours | Number:Time | Run Time | |
-| angle | Number | Angle | |
-| poweroffTime | Number | Timer | |
+| angle | Number:Angle | Angle | Value mapping `["30"="30","60"="60","90"="90","120"="120"]` |
+| poweroffTime | Number:Time | Power-Off Timer | |
| buzzer | Switch | Buzzer | |
-| led_b | Number | LED | |
+| led_b | Number | LED | Value mapping `["0"="Bright","1"="Dimmed","2"="Off"]` |
| child_lock | Switch | Child Lock | |
-| speedLevel | Number | Speed Level | |
+| speedLevel | Dimmer | Speed Level | |
| speed | Number | Speed | |
-| naturalLevel | Number | Natural Level | |
+| naturalLevel | Dimmer | Natural Level | |
| temp_dec | Number | Temperature | |
| humidity | Number:Dimensionless | Humidity | |
-| acPower | String | AC Power | |
+| acPower | Switch | AC Power | |
| mode | String | Battery Charge | |
| battery | Number | Battery | |
-| move | String | Move Direction | |
+| move | String | Move Direction | Value mapping `[""="None","left"="Left","right"="Right"]` |
### Smartmi DC Pedestal Fan (zhimi.fan.v2) Channels
@@ -4658,20 +4658,20 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
| power | Switch | Power | |
| angleEnable | Switch | Rotation | |
| usedhours | Number:Time | Run Time | |
-| angle | Number | Angle | |
-| poweroffTime | Number | Timer | |
+| angle | Number:Angle | Angle | Value mapping `["30"="30","60"="60","90"="90","120"="120"]` |
+| poweroffTime | Number:Time | Power-Off Timer | |
| buzzer | Switch | Buzzer | |
-| led_b | Number | LED | |
+| led_b | Number | LED | Value mapping `["0"="Bright","1"="Dimmed","2"="Off"]` |
| child_lock | Switch | Child Lock | |
-| speedLevel | Number | Speed Level | |
+| speedLevel | Dimmer | Speed Level | |
| speed | Number | Speed | |
-| naturalLevel | Number | Natural Level | |
+| naturalLevel | Dimmer | Natural Level | |
| temp_dec | Number | Temperature | |
| humidity | Number:Dimensionless | Humidity | |
-| acPower | String | AC Power | |
+| acPower | Switch | AC Power | |
| mode | String | Battery Charge | |
| battery | Number | Battery | |
-| move | String | Move Direction | |
+| move | String | Move Direction | Value mapping `[""="None","left"="Left","right"="Right"]` |
### Smartmi DC Pedestal Fan (zhimi.fan.v3) Channels
@@ -4680,20 +4680,20 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
| power | Switch | Power | |
| angleEnable | Switch | Rotation | |
| usedhours | Number:Time | Run Time | |
-| angle | Number | Angle | |
-| poweroffTime | Number | Timer | |
+| angle | Number:Angle | Angle | Value mapping `["30"="30","60"="60","90"="90","120"="120"]` |
+| poweroffTime | Number:Time | Power-Off Timer | |
| buzzer | Switch | Buzzer | |
-| led_b | Number | LED | |
+| led_b | Number | LED | Value mapping `["0"="Bright","1"="Dimmed","2"="Off"]` |
| child_lock | Switch | Child Lock | |
-| speedLevel | Number | Speed Level | |
+| speedLevel | Dimmer | Speed Level | |
| speed | Number | Speed | |
-| naturalLevel | Number | Natural Level | |
+| naturalLevel | Dimmer | Natural Level | |
| temp_dec | Number | Temperature | |
| humidity | Number:Dimensionless | Humidity | |
-| acPower | String | AC Power | |
+| acPower | Switch | AC Power | |
| mode | String | Battery Charge | |
| battery | Number | Battery | |
-| move | String | Move Direction | |
+| move | String | Move Direction | Value mapping `[""="None","left"="Left","right"="Right"]` |
### Smartmi Inverter Pedestal Fan (zhimi.fan.za1) Channels
@@ -4702,16 +4702,16 @@ e.g. `openhab:send actionCommand 'upd_timer["1498595904821", "on"]'` would enabl
| power | Switch | Power | |
| angleEnable | Switch | Rotation | |
| usedhours | Number:Time | Run Time | |
-| angle | Number | Angle | |
-| poweroffTime | Number | Timer | |
+| angle | Number:Angle | Angle | Value mapping `["30"="30","60"="60","90"="90","120"="120"]` |
+| poweroffTime | Number:Time | Power-Off Timer | |
| buzzer | Switch | Buzzer | |
-| led_b | Number | LED | |
+| led_b | Number | LED | Value mapping `["0"="Bright","1"="Dimmed","2"="Off"]` |
| child_lock | Switch | Child Lock | |
-| speedLevel | Number | Speed Level | |
+| speedLevel | Dimmer | Speed Level | |
| speed | Number | Speed | |
-| naturalLevel | Number | Natural Level | |
+| naturalLevel | Dimmer | Natural Level | |
| acPower | Switch | AC Power | |
-| move | String | Move Direction | |
+| move | String | Move Direction | Value mapping `[""="None","left"="Left","right"="Right"]` |
### Smartmi Standing Fan 2 (zhimi.fan.za3) Channels
@@ -9906,14 +9906,14 @@ Group G_fan "Mi Standing Fan"
Switch power "Power" (G_fan) {channel="miio:basic:fan:power"}
Switch angleEnable "Rotation" (G_fan) {channel="miio:basic:fan:angleEnable"}
Number:Time usedhours "Run Time" (G_fan) {channel="miio:basic:fan:usedhours"}
-Number angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
-Number poweroffTime "Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
+Number:Angle angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
+Number:Time poweroffTime "Power-Off Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
Switch buzzer "Buzzer" (G_fan) {channel="miio:basic:fan:buzzer"}
Number led_b "LED" (G_fan) {channel="miio:basic:fan:led_b"}
Switch child_lock "Child Lock" (G_fan) {channel="miio:basic:fan:child_lock"}
-Number speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
+Dimmer speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
Number speed "Speed" (G_fan) {channel="miio:basic:fan:speed"}
-Number naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
+Dimmer naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
Switch acPower "AC Power" (G_fan) {channel="miio:basic:fan:acPower"}
String move "Move Direction" (G_fan) {channel="miio:basic:fan:move"}
```
@@ -9927,17 +9927,17 @@ Group G_fan "Mi Smart Fan"
Switch power "Power" (G_fan) {channel="miio:basic:fan:power"}
Switch angleEnable "Rotation" (G_fan) {channel="miio:basic:fan:angleEnable"}
Number:Time usedhours "Run Time" (G_fan) {channel="miio:basic:fan:usedhours"}
-Number angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
-Number poweroffTime "Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
+Number:Angle angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
+Number:Time poweroffTime "Power-Off Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
Switch buzzer "Buzzer" (G_fan) {channel="miio:basic:fan:buzzer"}
Number led_b "LED" (G_fan) {channel="miio:basic:fan:led_b"}
Switch child_lock "Child Lock" (G_fan) {channel="miio:basic:fan:child_lock"}
-Number speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
+Dimmer speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
Number speed "Speed" (G_fan) {channel="miio:basic:fan:speed"}
-Number naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
+Dimmer naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
Number temp_dec "Temperature" (G_fan) {channel="miio:basic:fan:temp_dec"}
Number:Dimensionless humidity "Humidity" (G_fan) {channel="miio:basic:fan:humidity"}
-String acPower "AC Power" (G_fan) {channel="miio:basic:fan:acPower"}
+Switch acPower "AC Power" (G_fan) {channel="miio:basic:fan:acPower"}
String mode "Battery Charge" (G_fan) {channel="miio:basic:fan:mode"}
Number battery "Battery" (G_fan) {channel="miio:basic:fan:battery"}
String move "Move Direction" (G_fan) {channel="miio:basic:fan:move"}
@@ -9952,17 +9952,17 @@ Group G_fan "Smartmi DC Pedestal Fan"
Switch power "Power" (G_fan) {channel="miio:basic:fan:power"}
Switch angleEnable "Rotation" (G_fan) {channel="miio:basic:fan:angleEnable"}
Number:Time usedhours "Run Time" (G_fan) {channel="miio:basic:fan:usedhours"}
-Number angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
-Number poweroffTime "Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
+Number:Angle angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
+Number:Time poweroffTime "Power-Off Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
Switch buzzer "Buzzer" (G_fan) {channel="miio:basic:fan:buzzer"}
Number led_b "LED" (G_fan) {channel="miio:basic:fan:led_b"}
Switch child_lock "Child Lock" (G_fan) {channel="miio:basic:fan:child_lock"}
-Number speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
+Dimmer speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
Number speed "Speed" (G_fan) {channel="miio:basic:fan:speed"}
-Number naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
+Dimmer naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
Number temp_dec "Temperature" (G_fan) {channel="miio:basic:fan:temp_dec"}
Number:Dimensionless humidity "Humidity" (G_fan) {channel="miio:basic:fan:humidity"}
-String acPower "AC Power" (G_fan) {channel="miio:basic:fan:acPower"}
+Switch acPower "AC Power" (G_fan) {channel="miio:basic:fan:acPower"}
String mode "Battery Charge" (G_fan) {channel="miio:basic:fan:mode"}
Number battery "Battery" (G_fan) {channel="miio:basic:fan:battery"}
String move "Move Direction" (G_fan) {channel="miio:basic:fan:move"}
@@ -9977,17 +9977,17 @@ Group G_fan "Smartmi DC Pedestal Fan"
Switch power "Power" (G_fan) {channel="miio:basic:fan:power"}
Switch angleEnable "Rotation" (G_fan) {channel="miio:basic:fan:angleEnable"}
Number:Time usedhours "Run Time" (G_fan) {channel="miio:basic:fan:usedhours"}
-Number angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
-Number poweroffTime "Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
+Number:Angle angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
+Number:Time poweroffTime "Power-Off Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
Switch buzzer "Buzzer" (G_fan) {channel="miio:basic:fan:buzzer"}
Number led_b "LED" (G_fan) {channel="miio:basic:fan:led_b"}
Switch child_lock "Child Lock" (G_fan) {channel="miio:basic:fan:child_lock"}
-Number speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
+Dimmer speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
Number speed "Speed" (G_fan) {channel="miio:basic:fan:speed"}
-Number naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
+Dimmer naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
Number temp_dec "Temperature" (G_fan) {channel="miio:basic:fan:temp_dec"}
Number:Dimensionless humidity "Humidity" (G_fan) {channel="miio:basic:fan:humidity"}
-String acPower "AC Power" (G_fan) {channel="miio:basic:fan:acPower"}
+Switch acPower "AC Power" (G_fan) {channel="miio:basic:fan:acPower"}
String mode "Battery Charge" (G_fan) {channel="miio:basic:fan:mode"}
Number battery "Battery" (G_fan) {channel="miio:basic:fan:battery"}
String move "Move Direction" (G_fan) {channel="miio:basic:fan:move"}
@@ -10002,14 +10002,14 @@ Group G_fan "Smartmi Inverter Pedestal Fan"
Switch power "Power" (G_fan) {channel="miio:basic:fan:power"}
Switch angleEnable "Rotation" (G_fan) {channel="miio:basic:fan:angleEnable"}
Number:Time usedhours "Run Time" (G_fan) {channel="miio:basic:fan:usedhours"}
-Number angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
-Number poweroffTime "Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
+Number:Angle angle "Angle" (G_fan) {channel="miio:basic:fan:angle"}
+Number:Time poweroffTime "Power-Off Timer" (G_fan) {channel="miio:basic:fan:poweroffTime"}
Switch buzzer "Buzzer" (G_fan) {channel="miio:basic:fan:buzzer"}
Number led_b "LED" (G_fan) {channel="miio:basic:fan:led_b"}
Switch child_lock "Child Lock" (G_fan) {channel="miio:basic:fan:child_lock"}
-Number speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
+Dimmer speedLevel "Speed Level" (G_fan) {channel="miio:basic:fan:speedLevel"}
Number speed "Speed" (G_fan) {channel="miio:basic:fan:speed"}
-Number naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
+Dimmer naturalLevel "Natural Level" (G_fan) {channel="miio:basic:fan:naturalLevel"}
Switch acPower "AC Power" (G_fan) {channel="miio:basic:fan:acPower"}
String move "Move Direction" (G_fan) {channel="miio:basic:fan:move"}
```
diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoQuantiyTypes.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoQuantiyTypes.java
index 65a4f8020..7ebf9c40c 100644
--- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoQuantiyTypes.java
+++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoQuantiyTypes.java
@@ -52,6 +52,7 @@ public enum MiIoQuantiyTypes {
LITRE(Units.LITRE, "liter"),
LUX(Units.LUX),
RADIANS(Units.RADIAN, "radians"),
+ DEGREE(Units.DEGREE_ANGLE, "degree"),
KILOWATT_HOUR(Units.KILOWATT_HOUR, "kwh", "kWH"),
SQUARE_METRE(SIUnits.SQUARE_METRE, "square_meter", "squaremeter"),
PERCENT(Units.PERCENT, "percentage"),
diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/basic/Conversions.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/basic/Conversions.java
index cc45d72e0..9812a38b7 100644
--- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/basic/Conversions.java
+++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/basic/Conversions.java
@@ -12,8 +12,6 @@
*/
package org.openhab.binding.miio.internal.basic;
-import java.util.concurrent.TimeUnit;
-
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,12 +28,13 @@ import com.google.gson.JsonPrimitive;
public class Conversions {
private static final Logger LOGGER = LoggerFactory.getLogger(Conversions.class);
- public static JsonElement secondsToHours(JsonElement seconds) {
- long hours = TimeUnit.SECONDS.toHours(seconds.getAsInt());
- return new JsonPrimitive(hours);
+ public static JsonElement secondsToHours(JsonElement seconds) throws ClassCastException {
+ double value = seconds.getAsDouble() / 3600;
+ return new JsonPrimitive(value);
}
- public static JsonElement yeelightSceneConversion(JsonElement intValue) {
+ public static JsonElement yeelightSceneConversion(JsonElement intValue)
+ throws ClassCastException, IllegalStateException {
switch (intValue.getAsInt()) {
case 1:
return new JsonPrimitive("color");
@@ -54,17 +53,17 @@ public class Conversions {
}
}
- public static JsonElement divideTen(JsonElement value10) {
+ public static JsonElement divideTen(JsonElement value10) throws ClassCastException, IllegalStateException {
double value = value10.getAsDouble() / 10.0;
return new JsonPrimitive(value);
}
- public static JsonElement divideHundred(JsonElement value10) {
+ public static JsonElement divideHundred(JsonElement value10) throws ClassCastException, IllegalStateException {
double value = value10.getAsDouble() / 100.0;
return new JsonPrimitive(value);
}
- public static JsonElement tankLevel(JsonElement value12) {
+ public static JsonElement tankLevel(JsonElement value12) throws ClassCastException, IllegalStateException {
// 127 without water tank. 120 = 100% water
if (value12.getAsInt() == 127) {
return new JsonPrimitive(-1);
@@ -75,20 +74,25 @@ public class Conversions {
}
public static JsonElement execute(String transfortmation, JsonElement value) {
- switch (transfortmation.toUpperCase()) {
- case "YEELIGHTSCENEID":
- return yeelightSceneConversion(value);
- case "SECONDSTOHOURS":
- return secondsToHours(value);
- case "/10":
- return divideTen(value);
- case "/100":
- return divideHundred(value);
- case "TANKLEVEL":
- return tankLevel(value);
- default:
- LOGGER.debug("Transformation {} not found. Returning '{}'", transfortmation, value.toString());
- return value;
+ try {
+ switch (transfortmation.toUpperCase()) {
+ case "YEELIGHTSCENEID":
+ return yeelightSceneConversion(value);
+ case "SECONDSTOHOURS":
+ return secondsToHours(value);
+ case "/10":
+ return divideTen(value);
+ case "/100":
+ return divideHundred(value);
+ case "TANKLEVEL":
+ return tankLevel(value);
+ default:
+ LOGGER.debug("Transformation {} not found. Returning '{}'", transfortmation, value.toString());
+ return value;
+ }
+ } catch (ClassCastException | IllegalStateException e) {
+ LOGGER.debug("Transformation {} failed. Returning '{}'", transfortmation, value.toString());
+ return value;
}
}
}
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.fan.sa1.json b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.fan.sa1.json
index 0147a674d..e551fe543 100644
--- a/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.fan.sa1.json
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.fan.sa1.json
@@ -9,7 +9,6 @@
"property": "power",
"friendlyName": "Power",
"channel": "power",
- "channelType": "power",
"type": "Switch",
"refresh": true,
"actions": [
@@ -27,7 +26,6 @@
"property": "angle_enable",
"friendlyName": "Rotation",
"channel": "angleEnable",
- "channelType": "angleEnable",
"type": "Switch",
"refresh": true,
"actions": [
@@ -35,64 +33,101 @@
"command": "set_angle_enable",
"parameterType": "ONOFF"
}
+ ],
+ "category": "switch",
+ "tags": [
+ "Switch"
]
},
{
"property": "use_time",
"friendlyName": "Run Time",
"channel": "usedhours",
- "channelType": "usedhours",
"type": "Number:Time",
"unit": "hours",
"refresh": true,
"transformation": "SecondsToHours",
- "ChannelGroup": "Status",
"actions": [],
- "category": "time"
+ "category": "time",
+ "tags": [
+ "Measurement",
+ "Duration"
+ ]
},
{
"property": "angle",
"friendlyName": "Angle",
"channel": "angle",
- "channelType": "angle",
- "type": "Number",
+ "type": "Number:Angle",
+ "unit": "degree",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "30",
+ "label": "30"
+ },
+ {
+ "value": "60",
+ "label": "60"
+ },
+ {
+ "value": "90",
+ "label": "90"
+ },
+ {
+ "value": "120",
+ "label": "120"
+ }
+ ]
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_angle",
"parameterType": "NUMBER"
}
- ]
+ ],
+ "category": "incline",
+ "tags": [
+ "Setpoint"
+ ],
+ "readmeComment": "Value mapping `[\"30\"\u003d\"30\",\"60\"\u003d\"60\",\"90\"\u003d\"90\",\"120\"\u003d\"120\"]`"
},
{
"property": "poweroff_time",
- "friendlyName": "Timer",
+ "friendlyName": "Power-Off Timer",
"channel": "poweroffTime",
- "channelType": "poweroffTime",
- "type": "Number",
+ "type": "Number:Time",
+ "unit": "hours",
"refresh": true,
- "ChannelGroup": "actions",
+ "transformation": "SecondsToHours",
"actions": [
{
"command": "set_poweroff_time",
"parameterType": "NUMBER"
}
+ ],
+ "category": "time",
+ "tags": [
+ "Setpoint",
+ "Duration"
]
},
{
"property": "buzzer",
"friendlyName": "Buzzer",
"channel": "buzzer",
- "channelType": "buzzer",
"type": "Switch",
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_buzzer",
"parameterType": "ONOFF"
}
+ ],
+ "category": "soundvolume",
+ "tags": [
+ "Switch"
]
},
{
@@ -100,14 +135,34 @@
"friendlyName": "LED",
"channel": "led_b",
"type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Bright"
+ },
+ {
+ "value": "1",
+ "label": "Dimmed"
+ },
+ {
+ "value": "2",
+ "label": "Off"
+ }
+ ]
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_led_b",
"parameterType": "NUMBER"
}
- ]
+ ],
+ "category": "light",
+ "tags": [
+ "Control"
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Bright\",\"1\"\u003d\"Dimmed\",\"2\"\u003d\"Off\"]`"
},
{
"property": "child_lock",
@@ -115,83 +170,130 @@
"channel": "child_lock",
"type": "Switch",
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_child_lock",
"parameterType": "ONOFF"
}
+ ],
+ "category": "lock",
+ "tags": [
+ "Control"
]
},
{
"property": "speed_level",
"friendlyName": "Speed Level",
"channel": "speedLevel",
- "channelType": "speedLevel",
- "type": "Number",
+ "type": "Dimmer",
+ "stateDescription": {
+ "minimum": 1,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %%"
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_speed_level",
"parameterType": "NUMBER"
}
+ ],
+ "category": "fan",
+ "tags": [
+ "Setpoint",
+ "Level"
]
},
{
"property": "speed",
"friendlyName": "Speed",
"channel": "speed",
- "channelType": "speed",
"type": "Number",
+ "stateDescription": {
+ "pattern": "%.0f RPM",
+ "readOnly": true
+ },
"refresh": true,
- "ChannelGroup": "actions",
- "actions": [
- {
- "command": "set_speed",
- "parameterType": "NUMBER"
- }
+ "actions": [],
+ "category": "fan",
+ "tags": [
+ "Measurement",
+ "Level"
]
},
{
"property": "natural_level",
"friendlyName": "Natural Level",
"channel": "naturalLevel",
- "channelType": "naturalLevel",
- "type": "Number",
+ "type": "Dimmer",
+ "stateDescription": {
+ "minimum": 1,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %%"
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_natural_level",
"parameterType": "NUMBER"
}
+ ],
+ "category": "flow",
+ "tags": [
+ "Setpoint",
+ "Level"
]
},
{
"property": "ac_power",
"friendlyName": "AC Power",
"channel": "acPower",
- "channelType": "acPower",
"type": "Switch",
+ "stateDescription": {
+ "readOnly": true
+ },
"refresh": true,
- "ChannelGroup": "Status",
- "actions": []
+ "actions": [],
+ "category": "poweroutlet_eu",
+ "tags": [
+ "Switch"
+ ]
},
{
"property": "",
"friendlyName": "Move Direction",
"channel": "move",
- "channelType": "move",
"type": "String",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "",
+ "label": "None"
+ },
+ {
+ "value": "left",
+ "label": "Left"
+ },
+ {
+ "value": "right",
+ "label": "Right"
+ }
+ ]
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_move",
"parameterType": "STRING"
}
- ]
+ ],
+ "category": "movecontrol",
+ "tags": [
+ "Control"
+ ],
+ "readmeComment": "Value mapping `[\"\"\u003d\"None\",\"left\"\u003d\"Left\",\"right\"\u003d\"Right\"]`"
}
]
}
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.fan.v3.json b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.fan.v3.json
index 0d6723107..35543a109 100644
--- a/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.fan.v3.json
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/zhimi.fan.v3.json
@@ -10,7 +10,6 @@
"property": "power",
"friendlyName": "Power",
"channel": "power",
- "channelType": "power",
"type": "Switch",
"refresh": true,
"actions": [
@@ -28,7 +27,6 @@
"property": "angle_enable",
"friendlyName": "Rotation",
"channel": "angleEnable",
- "channelType": "angleEnable",
"type": "Switch",
"refresh": true,
"actions": [
@@ -36,64 +34,101 @@
"command": "set_angle_enable",
"parameterType": "ONOFF"
}
+ ],
+ "category": "switch",
+ "tags": [
+ "Switch"
]
},
{
"property": "use_time",
"friendlyName": "Run Time",
"channel": "usedhours",
- "channelType": "usedhours",
"type": "Number:Time",
"unit": "hours",
"refresh": true,
"transformation": "SecondsToHours",
- "ChannelGroup": "Status",
"actions": [],
- "category": "time"
+ "category": "time",
+ "tags": [
+ "Measurement",
+ "Duration"
+ ]
},
{
"property": "angle",
"friendlyName": "Angle",
"channel": "angle",
- "channelType": "angle",
- "type": "Number",
+ "type": "Number:Angle",
+ "unit": "degree",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "30",
+ "label": "30"
+ },
+ {
+ "value": "60",
+ "label": "60"
+ },
+ {
+ "value": "90",
+ "label": "90"
+ },
+ {
+ "value": "120",
+ "label": "120"
+ }
+ ]
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_angle",
"parameterType": "NUMBER"
}
- ]
+ ],
+ "category": "incline",
+ "tags": [
+ "Setpoint"
+ ],
+ "readmeComment": "Value mapping `[\"30\"\u003d\"30\",\"60\"\u003d\"60\",\"90\"\u003d\"90\",\"120\"\u003d\"120\"]`"
},
{
"property": "poweroff_time",
- "friendlyName": "Timer",
+ "friendlyName": "Power-Off Timer",
"channel": "poweroffTime",
- "channelType": "poweroffTime",
- "type": "Number",
+ "type": "Number:Time",
+ "unit": "hours",
"refresh": true,
- "ChannelGroup": "actions",
+ "transformation": "SecondsToHours",
"actions": [
{
"command": "set_poweroff_time",
"parameterType": "NUMBER"
}
+ ],
+ "category": "time",
+ "tags": [
+ "Setpoint",
+ "Duration"
]
},
{
"property": "buzzer",
"friendlyName": "Buzzer",
"channel": "buzzer",
- "channelType": "buzzer",
"type": "Switch",
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_buzzer",
"parameterType": "ONOFF"
}
+ ],
+ "category": "soundvolume",
+ "tags": [
+ "Switch"
]
},
{
@@ -101,14 +136,34 @@
"friendlyName": "LED",
"channel": "led_b",
"type": "Number",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "0",
+ "label": "Bright"
+ },
+ {
+ "value": "1",
+ "label": "Dimmed"
+ },
+ {
+ "value": "2",
+ "label": "Off"
+ }
+ ]
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_led_b",
"parameterType": "NUMBER"
}
- ]
+ ],
+ "category": "light",
+ "tags": [
+ "Control"
+ ],
+ "readmeComment": "Value mapping `[\"0\"\u003d\"Bright\",\"1\"\u003d\"Dimmed\",\"2\"\u003d\"Off\"]`"
},
{
"property": "child_lock",
@@ -116,52 +171,70 @@
"channel": "child_lock",
"type": "Switch",
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_child_lock",
"parameterType": "ONOFF"
}
+ ],
+ "category": "lock",
+ "tags": [
+ "Control"
]
},
{
"property": "speed_level",
"friendlyName": "Speed Level",
"channel": "speedLevel",
- "channelType": "speedLevel",
- "type": "Number",
+ "type": "Dimmer",
+ "stateDescription": {
+ "minimum": 1,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %%"
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_speed_level",
"parameterType": "NUMBER"
}
+ ],
+ "category": "fan",
+ "tags": [
+ "Setpoint",
+ "Level"
]
},
{
"property": "speed",
"friendlyName": "Speed",
"channel": "speed",
- "channelType": "speed",
"type": "Number",
+ "stateDescription": {
+ "pattern": "%.0f RPM",
+ "readOnly": true
+ },
"refresh": true,
- "ChannelGroup": "actions",
- "actions": [
- {
- "command": "set_speed",
- "parameterType": "NUMBER"
- }
+ "actions": [],
+ "category": "fan",
+ "tags": [
+ "Measurement",
+ "Level"
]
},
{
"property": "natural_level",
"friendlyName": "Natural Level",
"channel": "naturalLevel",
- "channelType": "naturalLevel",
- "type": "Number",
+ "type": "Dimmer",
+ "stateDescription": {
+ "minimum": 1,
+ "maximum": 100,
+ "step": 1,
+ "pattern": "%.0f %%"
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_natural_level",
@@ -204,21 +277,25 @@
"property": "ac_power",
"friendlyName": "AC Power",
"channel": "acPower",
- "channelType": "acPower",
- "type": "String",
+ "type": "Switch",
+ "stateDescription": {
+ "readOnly": true
+ },
"refresh": true,
- "ChannelGroup": "Status",
- "actions": []
+ "actions": [],
+ "category": "poweroutlet_eu",
+ "tags": [
+ "Switch"
+ ]
},
{
"property": "bat_charge",
"friendlyName": "Battery Charge",
"channel": "mode",
- "channelType": "mode",
"type": "String",
"refresh": true,
- "ChannelGroup": "actions",
- "actions": []
+ "actions": [],
+ "category": "batterylevel"
},
{
"property": "battery",
@@ -227,23 +304,41 @@
"channelType": "system:battery-level",
"type": "Number",
"refresh": true,
- "ChannelGroup": "Status",
"actions": []
},
{
"property": "",
"friendlyName": "Move Direction",
"channel": "move",
- "channelType": "move",
"type": "String",
+ "stateDescription": {
+ "options": [
+ {
+ "value": "",
+ "label": "None"
+ },
+ {
+ "value": "left",
+ "label": "Left"
+ },
+ {
+ "value": "right",
+ "label": "Right"
+ }
+ ]
+ },
"refresh": true,
- "ChannelGroup": "actions",
"actions": [
{
"command": "set_move",
"parameterType": "STRING"
}
- ]
+ ],
+ "category": "movecontrol",
+ "tags": [
+ "Control"
+ ],
+ "readmeComment": "Value mapping `[\"\"\u003d\"None\",\"left\"\u003d\"Left\",\"right\"\u003d\"Right\"]`"
}
]
}