diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md
index 1fa6c7c31..9e08ec8fc 100644
--- a/bundles/org.openhab.binding.miio/README.md
+++ b/bundles/org.openhab.binding.miio/README.md
@@ -149,6 +149,7 @@ or in case of unknown models include the model information of a similar device t
| Mi Humdifier | miio:basic | [zhimi.humidifier.v1](#zhimi-humidifier-v1) | Yes | |
| Light Control (Wall Switch) | miio:unsupported | lumi.ctrl_neutral1.v1 | No | |
| Light Control (Wall Switch) | miio:unsupported | lumi.ctrl_neutral2.v1 | No | |
+| Xiaomi youpin Curtain Controller (Wi-Fi) | miio:basic | [lumi.curtain.hagl05](#lumi-curtain-hagl05) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| Mr Bond M1 Pro Smart Clothes Dryer | miio:basic | [mrbond.airer.m1pro](#mrbond-airer-m1pro) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| Mr Bond M1 Smart Clothes Dryer | miio:basic | [mrbond.airer.m1s](#mrbond-airer-m1s) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
| Mr Bond M1 Super Smart Clothes Dryer | miio:basic | [mrbond.airer.m1super](#mrbond-airer-m1super) | Yes | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
@@ -1287,6 +1288,20 @@ e.g. `smarthome:send actionCommand 'upd_timer["1498595904821", "on"]'` would ena
| temperature | Number | Temperature | |
| childlock | Switch | Child Lock | |
+### Xiaomi youpin Curtain Controller (Wi-Fi) (lumi.curtain.hagl05) Channels
+
+| Channel | Type | Description | Comment |
+|------------------|---------|-------------------------------------|------------|
+| fault | Number | Curtain - Device Fault | Value mapping [0="No faults"] |
+| current-position | Number | Curtain - Current Position | |
+| status | Number | Curtain - Status | Value mapping [0="Stopped",1="Opening",2="Closing"] |
+| target-position | Number | Curtain - Target Position | |
+| manual-enabled | Number | curtain_cfg - manual_enabled | Value mapping [0="Disable",1="Enable"] |
+| polarity | Number | curtain_cfg - polarity | Value mapping [0="Positive",1="Reverse"] |
+| pos-limit | Number | curtain_cfg - pos_limit | Value mapping [0="Unlimit",1="Limit"] |
+| en-night-tip-light | Switch | Set night tip light | Value mapping [0="Disable",1="Enable"] |
+| run-time | Number | curtain_cfg - run_time | |
+
### Mr Bond M1 Pro Smart Clothes Dryer (mrbond.airer.m1pro) Channels
| Channel | Type | Description | Comment |
@@ -4262,6 +4277,23 @@ Number temperature "Temperature" (G_humidifier) {channel="miio:basic:humidifier:
Switch childlock "Child Lock" (G_humidifier) {channel="miio:basic:humidifier:childlock"}
```
+### Xiaomi youpin Curtain Controller (Wi-Fi) (lumi.curtain.hagl05) item file lines
+
+note: Autogenerated example. Replace the id (curtain) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
+
+```java
+Group G_curtain "Xiaomi youpin Curtain Controller (Wi-Fi)"
+Number fault "Curtain - Device Fault" (G_curtain) {channel="miio:basic:curtain:fault"}
+Number current-position "Curtain - Current Position" (G_curtain) {channel="miio:basic:curtain:current-position"}
+Number status "Curtain - Status" (G_curtain) {channel="miio:basic:curtain:status"}
+Number target-position "Curtain - Target Position" (G_curtain) {channel="miio:basic:curtain:target-position"}
+Number manual-enabled "curtain_cfg - manual_enabled" (G_curtain) {channel="miio:basic:curtain:manual-enabled"}
+Number polarity "curtain_cfg - polarity" (G_curtain) {channel="miio:basic:curtain:polarity"}
+Number pos-limit "curtain_cfg - pos_limit" (G_curtain) {channel="miio:basic:curtain:pos-limit"}
+Switch en-night-tip-light "Set night tip light" (G_curtain) {channel="miio:basic:curtain:en-night-tip-light"}
+Number run-time "curtain_cfg - run_time" (G_curtain) {channel="miio:basic:curtain:run-time"}
+```
+
### Mr Bond M1 Pro Smart Clothes Dryer (mrbond.airer.m1pro) item file lines
note: Autogenerated example. Replace the id (airer) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java
index 3198a4b7a..8044452c7 100644
--- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java
+++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoDevices.java
@@ -89,6 +89,7 @@ public enum MiIoDevices {
HUMIDIFIER("zhimi.humidifier.v1", "Mi Humdifier", THING_TYPE_BASIC),
LUMI_C11("lumi.ctrl_neutral1.v1", "Light Control (Wall Switch)", THING_TYPE_UNSUPPORTED),
LUMI_C12("lumi.ctrl_neutral2.v1", "Light Control (Wall Switch)", THING_TYPE_UNSUPPORTED),
+ LUMI_CURTAIN_HAGL05("lumi.curtain.hagl05", "Xiaomi youpin Curtain Controller (Wi-Fi)", THING_TYPE_BASIC),
MRBOND_AIRER_M1PRO("mrbond.airer.m1pro", "Mr Bond M1 Pro Smart Clothes Dryer", THING_TYPE_BASIC),
MRBOND_AIRER_M1S("mrbond.airer.m1s", "Mr Bond M1 Smart Clothes Dryer", THING_TYPE_BASIC),
MRBOND_AIRER_M1SUPER("mrbond.airer.m1super", "Mr Bond M1 Super Smart Clothes Dryer", THING_TYPE_BASIC),
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/thing/commonChannels.xml b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/thing/commonChannels.xml
index 12404925b..a9b137edf 100644
--- a/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/thing/commonChannels.xml
+++ b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/thing/commonChannels.xml
@@ -509,6 +509,66 @@
Switch
+
+ Number
+
+
+
+
+
+
+
+
+ Number
+
+
+
+
+
+
+
+
+
+
+ Number
+
+
+
+
+
+
+
+
+
+ Number
+
+
+
+
+
+
+
+
+
+ Number
+
+
+
+
+
+
+
+
+
+ Switch
+
+
+
+
+
+
+
+
Number
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/lumi.curtain.hagl05-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/lumi.curtain.hagl05-miot.json
new file mode 100644
index 000000000..497618906
--- /dev/null
+++ b/bundles/org.openhab.binding.miio/src/main/resources/database/lumi.curtain.hagl05-miot.json
@@ -0,0 +1,202 @@
+{
+ "deviceMapping": {
+ "id": [
+ "lumi.curtain.hagl05"
+ ],
+ "propertyMethod": "get_properties",
+ "maxProperties": 1,
+ "channels": [
+ {
+ "property": "fault",
+ "siid": 2,
+ "piid": 1,
+ "friendlyName": "Curtain - Device Fault",
+ "channel": "fault",
+ "channelType": "LumiCurtainHagl05_fault",
+ "type": "Number",
+ "refresh": true,
+ "actions": [],
+ "value-list": [
+ {
+ "value": 0,
+ "description": "No faults"
+ }
+ ],
+ "readmeComment": "Value mapping [0\u003d\"No faults\"]"
+ },
+ {
+ "property": "current-position",
+ "siid": 2,
+ "piid": 3,
+ "friendlyName": "Curtain - Current Position",
+ "channel": "current-position",
+ "channelType": "miot_uint8",
+ "type": "Number",
+ "refresh": true,
+ "actions": []
+ },
+ {
+ "property": "status",
+ "siid": 2,
+ "piid": 6,
+ "friendlyName": "Curtain - Status",
+ "channel": "status",
+ "channelType": "LumiCurtainHagl05_status",
+ "type": "Number",
+ "refresh": true,
+ "actions": [],
+ "value-list": [
+ {
+ "value": 0,
+ "description": "Stopped"
+ },
+ {
+ "value": 1,
+ "description": "Opening"
+ },
+ {
+ "value": 2,
+ "description": "Closing"
+ }
+ ],
+ "readmeComment": "Value mapping [0\u003d\"Stopped\",1\u003d\"Opening\",2\u003d\"Closing\"]"
+ },
+ {
+ "property": "target-position",
+ "siid": 2,
+ "piid": 7,
+ "friendlyName": "Curtain - Target Position",
+ "channel": "target-position",
+ "channelType": "miot_uint8",
+ "type": "Number",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ]
+ },
+ {
+ "property": "manual-enabled",
+ "siid": 4,
+ "piid": 1,
+ "friendlyName": "curtain_cfg - Manual Enabled",
+ "channel": "manual-enabled",
+ "channelType": "LumiCurtainHagl05_manual-enabled",
+ "type": "Number",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "value-list": [
+ {
+ "value": 0,
+ "description": "Disable"
+ },
+ {
+ "value": 1,
+ "description": "Enable"
+ }
+ ],
+ "readmeComment": "Value mapping [0\u003d\"Disable\",1\u003d\"Enable\"]"
+ },
+ {
+ "property": "polarity",
+ "siid": 4,
+ "piid": 2,
+ "friendlyName": "curtain_cfg - Polarity",
+ "channel": "polarity",
+ "channelType": "LumiCurtainHagl05_polarity",
+ "type": "Number",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "value-list": [
+ {
+ "value": 0,
+ "description": "Positive"
+ },
+ {
+ "value": 1,
+ "description": "Reverse"
+ }
+ ],
+ "readmeComment": "Value mapping [0\u003d\"Positive\",1\u003d\"Reverse\"]"
+ },
+ {
+ "property": "pos-limit",
+ "siid": 4,
+ "piid": 3,
+ "friendlyName": "curtain_cfg - Position Limit",
+ "channel": "pos-limit",
+ "channelType": "LumiCurtainHagl05_pos-limit",
+ "type": "Number",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "value-list": [
+ {
+ "value": 0,
+ "description": "Unlimit"
+ },
+ {
+ "value": 1,
+ "description": "Limit"
+ }
+ ],
+ "readmeComment": "Value mapping [0\u003d\"Unlimit\",1\u003d\"Limit\"]"
+ },
+ {
+ "property": "en-night-tip-light",
+ "siid": 4,
+ "piid": 4,
+ "friendlyName": "Set Night Tip Light",
+ "channel": "en-night-tip-light",
+ "channelType": "LumiCurtainHagl05_en-night-tip-light",
+ "type": "Switch",
+ "refresh": true,
+ "actions": [
+ {
+ "command": "set_properties",
+ "parameterType": "NUMBER"
+ }
+ ],
+ "value-list": [
+ {
+ "value": 0,
+ "description": "Disable"
+ },
+ {
+ "value": 1,
+ "description": "Enable"
+ }
+ ],
+ "readmeComment": "Value mapping [0\u003d\"Disable\",1\u003d\"Enable\"]"
+ },
+ {
+ "property": "run-time",
+ "siid": 4,
+ "piid": 5,
+ "friendlyName": "curtain_cfg - Run-time",
+ "channel": "run-time",
+ "channelType": "miot_int32",
+ "type": "Number",
+ "refresh": true,
+ "actions": []
+ }
+ ],
+ "experimental": true
+ }
+}