]> git.basschouten.com Git - openhab-addons.git/commitdiff
[miio] add support for mi airfryers (careli.fryer.maf01,2&3) (#11142)
authorMarcel <marcel@verpaalen.com>
Sun, 29 Aug 2021 20:17:43 +0000 (22:17 +0200)
committerGitHub <noreply@github.com>
Sun, 29 Aug 2021 20:17:43 +0000 (22:17 +0200)
Also includes update of models names db

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/careli.fryer.maf01-miot.json [new file with mode: 0644]
bundles/org.openhab.binding.miio/src/main/resources/database/careli.fryer.maf02-miot.json [new file with mode: 0644]
bundles/org.openhab.binding.miio/src/main/resources/misc/device_names.json

index b56de128dc35a284cdb324daaa1228bb9dfbc435..cd88291ed48b462ec0fb38d3e7b4b62d914b65b1 100644 (file)
@@ -180,6 +180,9 @@ Currently the miio binding supports more than 290 different models.
 | Device                       | ThingType        | Device Model           | Supported | Remark     |
 |------------------------------|------------------|------------------------|-----------|------------|
 | AUX Smart Air Conditioner    | miio:unsupported | aux.aircondition.v1    | No        |            |
+| Mi Air Frying Pan            | miio:basic       | [careli.fryer.maf01](#careli-fryer-maf01) | Yes       | Identified manual actions for execution<br />`action{"did":"air-fryer-start-cook","siid":2,"aiid":1,"in":[]}`<br />`action{"did":"air-fryer-cancel-cooking","siid":2,"aiid":2,"in":[]}`<br />`action{"did":"air-fryer-pause","siid":2,"aiid":3,"in":[]}`<br />`action{"did":"custom-start-cook","siid":3,"aiid":1,"in":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}`<br />`action{"did":"custom-resume-cook","siid":3,"aiid":2,"in":[]}`<br />Please test and feedback if they are working to they can be linked to a channel.<br />Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Mi Smart Air Fryer (3.5L)    | miio:basic       | [careli.fryer.maf02](#careli-fryer-maf02) | Yes       | Identified manual actions for execution<br />`action{"did":"air-fryer-start-cook","siid":2,"aiid":1,"in":[]}`<br />`action{"did":"air-fryer-cancel-cooking","siid":2,"aiid":2,"in":[]}`<br />`action{"did":"air-fryer-pause","siid":2,"aiid":3,"in":[]}`<br />`action{"did":"custom-start-custom-cook","siid":3,"aiid":1,"in":[1.0, 3.0, 4.0, 5.0, 6.0, 7.0]}`<br />`action{"did":"custom-resume-cooking","siid":3,"aiid":2,"in":[]}`<br />Please test and feedback if they are working to they can be linked to a channel.<br />Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Mi Air Frying Pan            | miio:basic       | [careli.fryer.maf03](#careli-fryer-maf03) | Yes       | Identified manual actions for execution<br />`action{"did":"air-fryer-start-cook","siid":2,"aiid":1,"in":[]}`<br />`action{"did":"air-fryer-cancel-cooking","siid":2,"aiid":2,"in":[]}`<br />`action{"did":"air-fryer-pause","siid":2,"aiid":3,"in":[]}`<br />`action{"did":"custom-start-cook","siid":3,"aiid":1,"in":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}`<br />`action{"did":"custom-resume-cook","siid":3,"aiid":2,"in":[]}`<br />Please test and feedback if they are working to they can be linked to a channel.<br />Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Qingping Air Monitor Lite    | miio:basic       | [cgllc.airm.cgdn1](#cgllc-airm-cgdn1) | Yes       | Identified manual actions for execution<br />`action{"did":"settings-set-start-time","siid":9,"aiid":2,"in":[2.0]}`<br />`action{"did":"settings-set-end-time","siid":9,"aiid":3,"in":[3.0]}`<br />`action{"did":"settings-set-frequency","siid":9,"aiid":4,"in":[4.0]}`<br />`action{"did":"settings-set-screen-off","siid":9,"aiid":5,"in":[5.0]}`<br />`action{"did":"settings-set-device-off","siid":9,"aiid":6,"in":[6.0]}`<br />`action{"did":"settings-set-temp-unit","siid":9,"aiid":7,"in":[7.0]}`<br />Please test and feedback if they are working to they can be linked to a channel. |
 | Mi Multifunction Air Monitor | miio:basic       | [cgllc.airmonitor.b1](#cgllc-airmonitor-b1) | Yes       |            |
 | Qingping Air Monitor         | miio:basic       | [cgllc.airmonitor.s1](#cgllc-airmonitor-s1) | Yes       |            |
@@ -201,7 +204,7 @@ Currently the miio binding supports more than 290 different models.
 | Mi IH Pressure Rice Cooker   | miio:unsupported | chunmi.cooker.press2   | No        |            |
 | Gosund Smart Plug            | miio:basic       | [cuco.plug.cp1](#cuco-plug-cp1) | Yes       |            |
 | Mi Smart Antibacterial Humidifier | miio:basic       | [deerma.humidifier.jsq](#deerma-humidifier-jsq) | Yes       |            |
-| Mi S Smart humidifer         | miio:basic       | [deerma.humidifier.jsq1](#deerma-humidifier-jsq1) | Yes       |            |
+| Mi S Smart Humidifer         | miio:basic       | [deerma.humidifier.jsq1](#deerma-humidifier-jsq1) | Yes       |            |
 | 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       |            |
@@ -264,24 +267,24 @@ Currently the miio binding supports more than 290 different models.
 | Philips Zhirui Ceiling Lamp Bedroom 40W | miio:basic       | [philips.light.bceiling1](#philips-light-bceiling1) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Philips Zhirui Ceiling Lamp Bedroom 28W | miio:basic       | [philips.light.bceiling2](#philips-light-bceiling2) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Philips ZhiRui E27 bulb      | miio:basic       | [philips.light.bulb](#philips-light-bulb) | Yes       |            |
-| Philips ZhiRui E14 candle lamp Frosted version | miio:basic       | [philips.light.candle](#philips-light-candle) | Yes       |            |
-| Philips ZhiRui E14 candle lamp crystal version | miio:basic       | [philips.light.candle2](#philips-light-candle2) | Yes       |            |
+| Philips ZhiRui E14 Candle Lamp Frosted version | miio:basic       | [philips.light.candle](#philips-light-candle) | Yes       |            |
+| Philips ZhiRui E14 Candle Lamp Crystal version | miio:basic       | [philips.light.candle2](#philips-light-candle2) | Yes       |            |
 | Mijia Philips Color Bulb     | miio:basic       | [philips.light.cbulb](#philips-light-cbulb) | Yes       |            |
 | Philips Light                | miio:basic       | [philips.light.cbulbs](#philips-light-cbulbs) | Yes       |            |
-| Philips connected ceiling    | miio:basic       | [philips.light.ceiling](#philips-light-ceiling) | Yes       |            |
+| Philips Connected Ceiling    | miio:basic       | [philips.light.ceiling](#philips-light-ceiling) | Yes       |            |
 | Philips Light                | miio:basic       | [philips.light.dcolor](#philips-light-dcolor) | Yes       |            |
-| ZhiRui dimmable downlight    | miio:basic       | [philips.light.dlight](#philips-light-dlight) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
-| Philips ZhiRui downlight     | miio:basic       | [philips.light.downlight](#philips-light-downlight) | Yes       |            |
+| ZhiRui Dimmable Downlight    | miio:basic       | [philips.light.dlight](#philips-light-dlight) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Philips ZhiRui Downlight     | miio:basic       | [philips.light.downlight](#philips-light-downlight) | Yes       |            |
 | Philips Wi-Fi bulb E27 White | miio:basic       | [philips.light.hbulb](#philips-light-hbulb) | Yes       |            |
-| Philips ZhiYi Ceiling lamp FL 40W | miio:basic       | [philips.light.lnblight1](#philips-light-lnblight1) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
-| Philips ZhiYi Ceiling lamp FL 28W | miio:basic       | [philips.light.lnblight2](#philips-light-lnblight2) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
-| Philips ZhiYi Ceiling lamp FL 80W | miio:basic       | [philips.light.lnlrlight](#philips-light-lnlrlight) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Philips ZhiYi Ceiling Lamp FL 40W | miio:basic       | [philips.light.lnblight1](#philips-light-lnblight1) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Philips ZhiYi Ceiling Lamp FL 28W | miio:basic       | [philips.light.lnblight2](#philips-light-lnblight2) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Philips ZhiYi Ceiling Lamp FL 80W | miio:basic       | [philips.light.lnlrlight](#philips-light-lnlrlight) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Philips Zhirui Ceiling Lamp Living room 80W | miio:basic       | [philips.light.lrceiling](#philips-light-lrceiling) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Zhirui Ceiling Lamp Nordic 80W | miio:basic       | [philips.light.mceil](#philips-light-mceil) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Zhirui Ceiling Lamp Nordic 40W | miio:basic       | [philips.light.mceilm](#philips-light-mceilm) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Zhirui Ceiling Lamp Nordic 28W | miio:basic       | [philips.light.mceils](#philips-light-mceils) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Philips Smart Lamp           | miio:basic       | [philips.light.mono1](#philips-light-mono1) | Yes       |            |
-| Philips ZhiRui bedside lamp  | miio:basic       | [philips.light.moonlight](#philips-light-moonlight) | Yes       |            |
+| Philips ZhiRui Bedside Lamp  | miio:basic       | [philips.light.moonlight](#philips-light-moonlight) | Yes       |            |
 | Zhirui Ceiling Lamp Black 80W | miio:basic       | [philips.light.obceil](#philips-light-obceil) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 |  Zhirui Ceiling Lamp Black 40W | miio:basic       | [philips.light.obceim](#philips-light-obceim) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Zhirui Ceiling Lamp Black 28W | miio:basic       | [philips.light.obceis](#philips-light-obceis) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
@@ -289,15 +292,15 @@ Currently the miio binding supports more than 290 different models.
 | Zhirui Ceiling Lamp Starry 80W | miio:basic       | [philips.light.sceil](#philips-light-sceil) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Zhirui Ceiling Lamp Starry 40W | miio:basic       | [philips.light.sceilm](#philips-light-sceilm) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Zhirui Ceiling Lamp Starry 28W | miio:basic       | [philips.light.sceils](#philips-light-sceils) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
-| Philips EyeCare connected desk lamp gen2. | miio:basic       | [philips.light.sread1](#philips-light-sread1) | Yes       |            |
+| Philips EyeCare Connected Desk Lamp gen2. | miio:basic       | [philips.light.sread1](#philips-light-sread1) | Yes       |            |
 | Mijia Philips Desk Lamp 2S   | miio:basic       | [philips.light.sread2](#philips-light-sread2) | Yes       |            |
-| Philips connected lights     | miio:basic       | [philips.light.virtual](#philips-light-virtual) | Yes       |            |
+| Philips Connected Lights     | miio:basic       | [philips.light.virtual](#philips-light-virtual) | Yes       |            |
 | Zhirui Ceiling Lamp Gorgeous 80W | miio:basic       | [philips.light.xzceil](#philips-light-xzceil) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Zhirui Ceiling Lamp Gorgeous 40W | miio:basic       | [philips.light.xzceim](#philips-light-xzceim) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Zhirui Ceiling Lamp Gorgeous 28W | miio:basic       | [philips.light.xzceis](#philips-light-xzceis) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
-| Philips ZhiYi ceiling lamp   | miio:basic       | [philips.light.zyceiling](#philips-light-zyceiling) | Yes       |            |
-| Philips ZhiYi desk lamp      | miio:basic       | [philips.light.zysread](#philips-light-zysread) | Yes       |            |
-| Philips ZhiYi strip          | miio:basic       | [philips.light.zystrip](#philips-light-zystrip) | Yes       |            |
+| Philips ZhiYi Ceiling lamp   | miio:basic       | [philips.light.zyceiling](#philips-light-zyceiling) | Yes       |            |
+| Philips ZhiYi Desk Lamp      | miio:basic       | [philips.light.zysread](#philips-light-zysread) | Yes       |            |
+| Philips ZhiYi Strip          | miio:basic       | [philips.light.zystrip](#philips-light-zystrip) | Yes       |            |
 | CHINGMI Smart Power Strip v1 | miio:basic       | [qmi.powerstrip.v1](#qmi-powerstrip-v1) | Yes       |            |
 | Rockrobo Xiaowa Sweeper v2   | miio:unsupported | roborock.sweeper.e2v2  | No        |            |
 | Rockrobo Xiaowa Sweeper v3   | miio:unsupported | roborock.sweeper.e2v3  | No        |            |
@@ -336,14 +339,14 @@ Currently the miio binding supports more than 290 different models.
 | PTX Twokey switch(wifi)      | miio:basic       | [090615.switch.xswitch02](#090615-switch-xswitch02) | Yes       |            |
 | PTX ThreeKey Switch (WIFI)   | miio:basic       | [090615.switch.xswitch03](#090615-switch-xswitch03) | Yes       |            |
 | SCISHARE Smart Capsule Coffee Machine | miio:basic       | [scishare.coffee.s1102](#scishare-coffee-s1102) | Yes       | This device does not allow for regular querying for the status. Hence the status is not updated for the action channels.<br />Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
-| Xiaomi Scishare smart capsule coffee machine | miio:basic       | [scishare.coffee.s1301](#scishare-coffee-s1301) | Yes       | This device does not allow for regular querying for the status. Hence the status is not updated for the action channels.<br />Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Xiaomi Scishare Smart Capsule Coffee Machine | miio:basic       | [scishare.coffee.s1301](#scishare-coffee-s1301) | Yes       | This device does not allow for regular querying for the status. Hence the status is not updated for the action channels.<br />Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Soocare Electric Toothbrush  | miio:unsupported | soocare.toothbrush.x3  | No        |            |
-| Viomi Internet refrigerator iLive(French style 462L) | miio:unsupported | viomi.fridge.v3        | No        |            |
+| Viomi Internet Refrigerator iLive(French style 462L) | miio:unsupported | viomi.fridge.v3        | No        |            |
 | Viomi Cleaning Robot V-RVCLM21B | miio:basic       | [viomi.vacuum.v6](#viomi-vacuum-v6) | Yes       |            |
 | Mi Robot Vacuum-Mop P        | miio:basic       | [viomi.vacuum.v7](#viomi-vacuum-v7) | Yes       |            |
 | Mi Robot Vacuum-Mop P        | miio:basic       | [viomi.vacuum.v8](#viomi-vacuum-v8) | Yes       |            |
 | Viomi S9                     | miio:basic       | [viomi.vacuum.v18](#viomi-vacuum-v18) | 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":"vacuum-pause","siid":2,"aiid":3,"in":[]}`<br />`action{"did":"vacuum-start-charge","siid":2,"aiid":4,"in":[]}`<br />`action{"did":"vacuum-stop-massage","siid":2,"aiid":5,"in":[]}`<br />`action{"did":"vacuum-start-mop","siid":2,"aiid":6,"in":[]}`<br />`action{"did":"vacuum-start-only-sweep","siid":2,"aiid":7,"in":[]}`<br />`action{"did":"vacuum-start-sweep-mop","siid":2,"aiid":8,"in":[]}`<br />`action{"did":"viomi-vacuum-reset-map","siid":4,"aiid":7,"in":[]}`<br />`action{"did":"viomi-vacuum-set-calibration","siid":4,"aiid":10,"in":[]}`<br />`action{"did":"viomi-vacuum-reset-consumable","siid":4,"aiid":11,"in":[35.0]}`<br />`action{"did":"viomi-vacuum-set-room-clean","siid":4,"aiid":13,"in":[36.0, 37.0, 38.0]}`<br />`action{"did":"order-del","siid":5,"aiid":2,"in":[1.0]}`<br />`action{"did":"order-get","siid":5,"aiid":3,"in":[]}`<br />`action{"did":"point-zone-start-point-clean","siid":6,"aiid":1,"in":[]}`<br />`action{"did":"point-zone-pause-point-clean","siid":6,"aiid":2,"in":[]}`<br />`action{"did":"point-zone-start-zone-clean","siid":6,"aiid":5,"in":[]}`<br />`action{"did":"point-zone-pause-zone-clean","siid":6,"aiid":6,"in":[]}`<br />`action{"did":"map-upload-by-maptype","siid":7,"aiid":1,"in":[]}`<br />`action{"did":"map-upload-by-mapid","siid":7,"aiid":2,"in":[]}`<br />`action{"did":"map-set-cur-map","siid":7,"aiid":3,"in":[2.0, 15.0]}`<br />`action{"did":"map-del-map","siid":7,"aiid":5,"in":[2.0]}`<br />`action{"did":"map-rename-map","siid":7,"aiid":7,"in":[2.0, 4.0]}`<br />`action{"did":"map-arrange-room","siid":7,"aiid":8,"in":[2.0, 5.0, 6.0, 14.0]}`<br />`action{"did":"map-split-room","siid":7,"aiid":9,"in":[2.0, 5.0, 7.0, 8.0, 14.0]}`<br />`action{"did":"map-rename-room","siid":7,"aiid":10,"in":[2.0, 7.0, 9.0, 14.0]}`<br />`action{"did":"map-get-map-list","siid":7,"aiid":11,"in":[]}`<br />`action{"did":"map-get-cleaning-path","siid":7,"aiid":12,"in":[12.0]}`<br />`action{"did":"map-set-new-map","siid":7,"aiid":13,"in":[]}`<br />`action{"did":"map-deal-new-map","siid":7,"aiid":14,"in":[16.0]}`<br />`action{"did":"voice-find-device","siid":8,"aiid":2,"in":[]}`<br />`action{"did":"voice-download-voice","siid":8,"aiid":3,"in":[3.0, 7.0, 8.0]}`<br />`action{"did":"voice-get-downloadstatus","siid":8,"aiid":4,"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 |
-| VIOMI Internet electric water heater 1A (60L) | miio:basic       | [viomi.waterheater.e1](#viomi-waterheater-e1) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| VIOMI Internet Electric Water Heater 1A (60L) | miio:basic       | [viomi.waterheater.e1](#viomi-waterheater-e1) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Mi Inverter Air Conditioner (1.5HP) | miio:basic       | [xiaomi.aircondition.ma1](#xiaomi-aircondition-ma1) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Mi Inverter Air Conditioner (1.5HP, China Energy Label Level 1) | miio:basic       | [xiaomi.aircondition.ma2](#xiaomi-aircondition-ma2) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Mi Vertical Air Conditioner (2HP) | miio:basic       | [xiaomi.aircondition.ma4](#xiaomi-aircondition-ma4) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
@@ -373,8 +376,8 @@ Currently the miio binding supports more than 290 different models.
 | Mi Wi-Fi Repeater 2          | miio:unsupported | xiaomi.repeater.v2     | No        |            |
 | Mi Network Speaker           | miio:unsupported | xiaomi.wifispeaker.v1  | No        |            |
 | Uclean Smart Toilet Seat     | miio:basic       | [xjx.toilet.pro](#xjx-toilet-pro) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
-| Uclean smart toilet pure     | miio:basic       | [xjx.toilet.pure](#xjx-toilet-pure) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
-| Uclean smart toilet relax    | miio:basic       | [xjx.toilet.relax](#xjx-toilet-relax) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Uclean Smart Toilet pure     | miio:basic       | [xjx.toilet.pure](#xjx-toilet-pure) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
+| Uclean Smart Toilet relax    | miio:basic       | [xjx.toilet.relax](#xjx-toilet-relax) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Whale Spout Smart Toilet Zero | miio:basic       | [xjx.toilet.zero](#xjx-toilet-zero) | Yes       | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses |
 | Yeelight Smart Bath Heater   | miio:unsupported | yeelight.bhf_light.v2  | No        |            |
 | Yeelight Smart Bath Heater Pro | miio:basic       | [yeelink.bhf_light.v1](#yeelink-bhf_light-v1) | Yes       |            |
@@ -395,7 +398,7 @@ Currently the miio binding supports more than 290 different models.
 | Yeelight Crystal Pendant Lamp | miio:basic       | [yeelink.light.ceiling10](#yeelink-light-ceiling10) | Yes       |            |
 | Yeelight LED Ceiling Ambi Lamp | miio:basic       | [yeelink.light.ceiling10.ambi](#yeelink-light-ceiling10-ambi) | Yes       |            |
 | Yeelight Ceiling Light 320 1S | miio:basic       | [yeelink.light.ceiling11](#yeelink-light-ceiling11) | Yes       |            |
-| Yeelight stylized Ceiling Light  Pro | miio:basic       | [yeelink.light.ceiling12](#yeelink-light-ceiling12) | Yes       |            |
+| Yeelight Stylized Ceiling Light  Pro | miio:basic       | [yeelink.light.ceiling12](#yeelink-light-ceiling12) | Yes       |            |
 | Yeelight Ceiling Light       | miio:basic       | [yeelink.light.ceiling13](#yeelink-light-ceiling13) | Yes       |            |
 | Yeelight Ceiling Light Mini  | miio:basic       | [yeelink.light.ceiling14](#yeelink-light-ceiling14) | Yes       |            |
 | Yeelight Ceiling Light 480 1S | miio:basic       | [yeelink.light.ceiling15](#yeelink-light-ceiling15) | Yes       |            |
@@ -564,6 +567,67 @@ Note, cropping is disabled (hence showing like the maps in OH3.1 and earlier) fo
 Note, not all the values need to be in the json file, e.g. a subset of the parameters also works, the parameters not in the `mapConfig.json` will take the default values.
 
 
+### Mi Air Frying Pan (<a name="careli-fryer-maf01">careli.fryer.maf01</a>) Channels
+
+| Channel              | Type                 | Description                              | Comment    |
+|----------------------|----------------------|------------------------------------------|------------|
+| actions              | String               | Actions                                  | Value mapping `["air-fryer-start-cook"="Air Fryer Start Cook","air-fryer-cancel-cooking"="Air Fryer Cancel Cooking","air-fryer-pause"="Air Fryer Pause","custom-start-cook"="Custom Start Cook","custom-resume-cook"="Custom Resume Cook"]` |
+| status               | Number               | Air Fryer - Status                       | Value mapping `["0"="Shutdown","1"="Standby","2"="Pause","3"="Appointment","4"="Cooking","5"="Preheat ","6"="Cooked","7"="Preheat Finish","8"="Preheat Pause","9"="Pause2"]` |
+| fault                | Number               | Air Fryer - Device Fault                 | Value mapping `["0"="No Faults","1"="E1","2"="E2"]` |
+| target_time          | Number:Time          | Air Fryer - Target Time                  |            |
+| target_temperature   | Number:Temperature   | Air Fryer - Target Temperature           |            |
+| left_time            | Number:Time          | Air Fryer - Left Time                    |            |
+| recipe_id            | String               | Custom - Recipe Id                       |            |
+| recipe_name          | String               | Custom - Recipe Name                     |            |
+| work_time            | Number:Time          | Custom - Work Time                       |            |
+| work_temp            | Number:Temperature   | Custom - Work Temp                       |            |
+| appoint_time         | Number:Time          | Custom - Appoint Time                    |            |
+| food_quantity        | Number               | Custom - Food Quantity                   | Value mapping `["0"="Null","1"="Single","2"="Double","3"="Half","4"="Full"]` |
+| preheat_switch       | Number               | Custom - Preheat Switch                  | Value mapping `["0"="Null","1"="Off","2"="On"]` |
+| appoint_time_left    | Number:Time          | Custom - Appoint Time Left               |            |
+| recipe_sync          | String               | Custom - Recipe Sync                     |            |
+| turn_pot             | Number               | Custom - Turn Pot                        | Value mapping `["1"="Switch Off","0"="Not Turn Pot","2"="Turn Pot"]` |
+
+### Mi Smart Air Fryer (3.5L) (<a name="careli-fryer-maf02">careli.fryer.maf02</a>) Channels
+
+| Channel              | Type                 | Description                              | Comment    |
+|----------------------|----------------------|------------------------------------------|------------|
+| actions              | String               | Actions                                  | Value mapping `["air-fryer-start-cook"="Air Fryer Start Cook","air-fryer-cancel-cooking"="Air Fryer Cancel Cooking","air-fryer-pause"="Air Fryer Pause","custom-start-custom-cook"="Custom Start Custom Cook","custom-resume-cooking"="Custom Resume Cooking"]` |
+| status               | Number               | Air Fryer - Status                       | Value mapping `["0"="Shutdown","1"="Standby","2"="Pause","3"="Appointment","4"="Cooking","5"="Preheat ","6"="Cooked","7"="Preheat Finish","8"="Preheat Pause","9"="Pause2"]` |
+| fault                | Number               | Air Fryer - Device Fault                 | Value mapping `["0"="No Faults","1"="E1","2"="E2"]` |
+| target_time          | Number:Time          | Air Fryer - Target Time                  |            |
+| target_temperature   | Number:Temperature   | Air Fryer - Target Temperature           |            |
+| left_time            | Number:Time          | Air Fryer - Left Time                    |            |
+| recipe_id            | String               | Custom - Recipe Id                       |            |
+| work_time            | Number:Time          | Custom - Work Time                       |            |
+| work_temp            | Number:Temperature   | Custom - Work Temp                       |            |
+| appoint_time         | Number:Time          | Custom - Appoint Time                    |            |
+| food_quantity        | Number               | Custom - Food Quantity                   | Value mapping `["0"="Null","1"="Single","2"="Double","3"="Half","4"="Full"]` |
+| preheat_switch       | Number               | Custom - Preheat Switch                  | Value mapping `["0"="Null","1"="Off","2"="On"]` |
+| appoint_time_left    | Number:Time          | Custom - Appoint Time Left               |            |
+| turn_pot             | Number               | Custom - Turn Pot                        | Value mapping `["1"="Switch Off","0"="Not Turn Pot","2"="Turn Pot"]` |
+
+### Mi Air Frying Pan (<a name="careli-fryer-maf03">careli.fryer.maf03</a>) Channels
+
+| Channel              | Type                 | Description                              | Comment    |
+|----------------------|----------------------|------------------------------------------|------------|
+| actions              | String               | Actions                                  | Value mapping `["air-fryer-start-cook"="Air Fryer Start Cook","air-fryer-cancel-cooking"="Air Fryer Cancel Cooking","air-fryer-pause"="Air Fryer Pause","custom-start-cook"="Custom Start Cook","custom-resume-cook"="Custom Resume Cook"]` |
+| status               | Number               | Air Fryer - Status                       | Value mapping `["0"="Shutdown","1"="Standby","2"="Pause","3"="Appointment","4"="Cooking","5"="Preheat ","6"="Cooked","7"="Preheat Finish","8"="Preheat Pause","9"="Pause2"]` |
+| fault                | Number               | Air Fryer - Device Fault                 | Value mapping `["0"="No Faults","1"="E1","2"="E2"]` |
+| target_time          | Number:Time          | Air Fryer - Target Time                  |            |
+| target_temperature   | Number:Temperature   | Air Fryer - Target Temperature           |            |
+| left_time            | Number:Time          | Air Fryer - Left Time                    |            |
+| recipe_id            | String               | Custom - Recipe Id                       |            |
+| recipe_name          | String               | Custom - Recipe Name                     |            |
+| work_time            | Number:Time          | Custom - Work Time                       |            |
+| work_temp            | Number:Temperature   | Custom - Work Temp                       |            |
+| appoint_time         | Number:Time          | Custom - Appoint Time                    |            |
+| food_quantity        | Number               | Custom - Food Quantity                   | Value mapping `["0"="Null","1"="Single","2"="Double","3"="Half","4"="Full"]` |
+| preheat_switch       | Number               | Custom - Preheat Switch                  | Value mapping `["0"="Null","1"="Off","2"="On"]` |
+| appoint_time_left    | Number:Time          | Custom - Appoint Time Left               |            |
+| recipe_sync          | String               | Custom - Recipe Sync                     |            |
+| turn_pot             | Number               | Custom - Turn Pot                        | Value mapping `["1"="Switch Off","0"="Not Turn Pot","2"="Turn Pot"]` |
+
 ### Qingping Air Monitor Lite (<a name="cgllc-airm-cgdn1">cgllc.airm.cgdn1</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
@@ -711,7 +775,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | sound                | Switch               | Notification Sounds                      |            |
 | watertankstatus      | Number               | Watertank Status                         |            |
 
-### Mi S Smart humidifer  (<a name="deerma-humidifier-jsq1">deerma.humidifier.jsq1</a>) Channels
+### Mi S Smart Humidifer  (<a name="deerma-humidifier-jsq1">deerma.humidifier.jsq1</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1615,7 +1679,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | switchscene          | Switch               | Switch Scene                             |            |
 | delayoff             | Switch               | Delay Off                                |            |
 
-### Philips ZhiRui E14 candle lamp Frosted version (<a name="philips-light-candle">philips.light.candle</a>) Channels
+### Philips ZhiRui E14 Candle Lamp Frosted version (<a name="philips-light-candle">philips.light.candle</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1626,7 +1690,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | delayoff             | Switch               | Delay Off                                |            |
 | toggle               | Switch               | Toggle                                   |            |
 
-### Philips ZhiRui E14 candle lamp crystal version (<a name="philips-light-candle2">philips.light.candle2</a>) Channels
+### Philips ZhiRui E14 Candle Lamp Crystal version (<a name="philips-light-candle2">philips.light.candle2</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1663,7 +1727,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | switch_en            | Switch               | Switch Enabled                           |            |
 | delayoff             | Switch               | Delay Off                                |            |
 
-### Philips connected ceiling (<a name="philips-light-ceiling">philips.light.ceiling</a>) Channels
+### Philips Connected Ceiling (<a name="philips-light-ceiling">philips.light.ceiling</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1687,7 +1751,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | switch_en            | Switch               | Switch Enabled                           |            |
 | delayoff             | Switch               | Delay Off                                |            |
 
-### ZhiRui dimmable downlight (<a name="philips-light-dlight">philips.light.dlight</a>) Channels
+### ZhiRui Dimmable Downlight (<a name="philips-light-dlight">philips.light.dlight</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1702,7 +1766,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | dimmingPeriod        | Number               | Dimming Period                           |            |
 | MibandStatus         | String               | Mi Band Status                           |            |
 
-### Philips ZhiRui downlight (<a name="philips-light-downlight">philips.light.downlight</a>) Channels
+### Philips ZhiRui Downlight (<a name="philips-light-downlight">philips.light.downlight</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1726,7 +1790,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | switchscene          | Switch               | Switch Scene                             |            |
 | delayoff             | Switch               | Delay Off                                |            |
 
-### Philips ZhiYi Ceiling lamp FL 40W (<a name="philips-light-lnblight1">philips.light.lnblight1</a>) Channels
+### Philips ZhiYi Ceiling Lamp FL 40W (<a name="philips-light-lnblight1">philips.light.lnblight1</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1742,7 +1806,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | delayoff             | Switch               | Delay Off                                |            |
 | mb                   | Switch               | MiBand                                   |            |
 
-### Philips ZhiYi Ceiling lamp FL 28W (<a name="philips-light-lnblight2">philips.light.lnblight2</a>) Channels
+### Philips ZhiYi Ceiling Lamp FL 28W (<a name="philips-light-lnblight2">philips.light.lnblight2</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1758,7 +1822,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | delayoff             | Switch               | Delay Off                                |            |
 | mb                   | Switch               | MiBand                                   |            |
 
-### Philips ZhiYi Ceiling lamp FL 80W (<a name="philips-light-lnlrlight">philips.light.lnlrlight</a>) Channels
+### Philips ZhiYi Ceiling Lamp FL 80W (<a name="philips-light-lnlrlight">philips.light.lnlrlight</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1843,7 +1907,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | brightness           | Dimmer               | Brightness                               |            |
 | scene                | Number               | Scene                                    |            |
 
-### Philips ZhiRui bedside lamp (<a name="philips-light-moonlight">philips.light.moonlight</a>) Channels
+### Philips ZhiRui Bedside Lamp (<a name="philips-light-moonlight">philips.light.moonlight</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1956,7 +2020,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | dimmingPeriod        | Number               | Dimming Period                           |            |
 | MibandStatus         | String               | Mi Band Status                           |            |
 
-### Philips EyeCare connected desk lamp gen2. (<a name="philips-light-sread1">philips.light.sread1</a>) Channels
+### Philips EyeCare Connected Desk Lamp gen2. (<a name="philips-light-sread1">philips.light.sread1</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -1980,7 +2044,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | eyecare              | Switch               | Eyecare                                  |            |
 | bl                   | Switch               | Night Light                              |            |
 
-### Philips connected lights (<a name="philips-light-virtual">philips.light.virtual</a>) Channels
+### Philips Connected Lights (<a name="philips-light-virtual">philips.light.virtual</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -2037,7 +2101,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | dimmingPeriod        | Number               | Dimming Period                           |            |
 | MibandStatus         | String               | Mi Band Status                           |            |
 
-### Philips ZhiYi ceiling lamp (<a name="philips-light-zyceiling">philips.light.zyceiling</a>) Channels
+### Philips ZhiYi Ceiling lamp (<a name="philips-light-zyceiling">philips.light.zyceiling</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -2048,7 +2112,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | switchscene          | Switch               | Switch Scene                             |            |
 | toggle               | Switch               | Toggle                                   |            |
 
-### Philips ZhiYi desk lamp (<a name="philips-light-zysread">philips.light.zysread</a>) Channels
+### Philips ZhiYi Desk Lamp (<a name="philips-light-zysread">philips.light.zysread</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -2060,7 +2124,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | switchscene          | Switch               | Switch Scene                             |            |
 | delayoff             | Switch               | Delay Off                                |            |
 
-### Philips ZhiYi strip (<a name="philips-light-zystrip">philips.light.zystrip</a>) Channels
+### Philips ZhiYi Strip (<a name="philips-light-zystrip">philips.light.zystrip</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -2124,7 +2188,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | expresso             | Number               | Brew Americano                           | Value is the amount of coffee in ml. parameters in json are cupAmount: [set by OH], coffee: 40,water: 80, temp: 90 |
 | boil                 | Number               | Boil water                               | Value is the amount of water (ml) to heat. 2nd parameter in the json db is the water temperature |
 
-### Xiaomi Scishare smart capsule coffee machine (<a name="scishare-coffee-s1301">scishare.coffee.s1301</a>) Channels
+### Xiaomi Scishare Smart Capsule Coffee Machine (<a name="scishare-coffee-s1301">scishare.coffee.s1301</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -2259,7 +2323,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | download-status      | Number               | Voice - Download Status                  | Value mapping `["0"="Free","1"="Downloading"]` |
 | download-progress    | Number:Dimensionless | Voice - Download Progress                |            |
 
-### VIOMI Internet electric water heater 1A (60L) (<a name="viomi-waterheater-e1">viomi.waterheater.e1</a>) Channels
+### VIOMI Internet Electric Water Heater 1A (60L) (<a name="viomi-waterheater-e1">viomi.waterheater.e1</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -2866,7 +2930,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | fan_temp             | Number:Temperature   | Fan Temperature                          |            |
 | status_led           | Number               | Night Light                              |            |
 
-### Uclean smart toilet pure (<a name="xjx-toilet-pure">xjx.toilet.pure</a>) Channels
+### Uclean Smart Toilet pure (<a name="xjx-toilet-pure">xjx.toilet.pure</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -2876,7 +2940,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | fan_temp             | Number:Temperature   | Fan Temperature                          |            |
 | status_led           | Number               | Night Light                              |            |
 
-### Uclean smart toilet relax (<a name="xjx-toilet-relax">xjx.toilet.relax</a>) Channels
+### Uclean Smart Toilet relax (<a name="xjx-toilet-relax">xjx.toilet.relax</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -3136,7 +3200,7 @@ Note, not all the values need to be in the json file, e.g. a subset of the param
 | customScene          | String               | Set Scene                                |            |
 | nightlightBrightness | Number               | Nightlight Brightness                    |            |
 
-### Yeelight stylized Ceiling Light  Pro (<a name="yeelink-light-ceiling12">yeelink.light.ceiling12</a>) Channels
+### Yeelight Stylized Ceiling Light  Pro (<a name="yeelink-light-ceiling12">yeelink.light.ceiling12</a>) Channels
 
 | Channel              | Type                 | Description                              | Comment    |
 |----------------------|----------------------|------------------------------------------|------------|
@@ -5144,6 +5208,76 @@ Image map "Cleaning Map" (gVacLast) {channel="miio:vacuum:034F0E45:cleaning#map"
 ```
 
 
+### Mi Air Frying Pan (careli.fryer.maf01) item file lines
+
+note: Autogenerated example. Replace the id (fryer) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
+
+```
+Group G_fryer "Mi Air Frying Pan" <status>
+String actions "Actions" (G_fryer) {channel="miio:basic:fryer:actions"}
+Number status "Air Fryer - Status" (G_fryer) {channel="miio:basic:fryer:status"}
+Number fault "Air Fryer - Device Fault" (G_fryer) {channel="miio:basic:fryer:fault"}
+Number:Time target_time "Air Fryer - Target Time" (G_fryer) {channel="miio:basic:fryer:target_time"}
+Number:Temperature target_temperature "Air Fryer - Target Temperature" (G_fryer) {channel="miio:basic:fryer:target_temperature"}
+Number:Time left_time "Air Fryer - Left Time" (G_fryer) {channel="miio:basic:fryer:left_time"}
+String recipe_id "Custom - Recipe Id" (G_fryer) {channel="miio:basic:fryer:recipe_id"}
+String recipe_name "Custom - Recipe Name" (G_fryer) {channel="miio:basic:fryer:recipe_name"}
+Number:Time work_time "Custom - Work Time" (G_fryer) {channel="miio:basic:fryer:work_time"}
+Number:Temperature work_temp "Custom - Work Temp" (G_fryer) {channel="miio:basic:fryer:work_temp"}
+Number:Time appoint_time "Custom - Appoint Time" (G_fryer) {channel="miio:basic:fryer:appoint_time"}
+Number food_quantity "Custom - Food Quantity" (G_fryer) {channel="miio:basic:fryer:food_quantity"}
+Number preheat_switch "Custom - Preheat Switch" (G_fryer) {channel="miio:basic:fryer:preheat_switch"}
+Number:Time appoint_time_left "Custom - Appoint Time Left" (G_fryer) {channel="miio:basic:fryer:appoint_time_left"}
+String recipe_sync "Custom - Recipe Sync" (G_fryer) {channel="miio:basic:fryer:recipe_sync"}
+Number turn_pot "Custom - Turn Pot" (G_fryer) {channel="miio:basic:fryer:turn_pot"}
+```
+
+### Mi Smart Air Fryer (3.5L) (careli.fryer.maf02) item file lines
+
+note: Autogenerated example. Replace the id (fryer) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
+
+```
+Group G_fryer "Mi Smart Air Fryer (3.5L)" <status>
+String actions "Actions" (G_fryer) {channel="miio:basic:fryer:actions"}
+Number status "Air Fryer - Status" (G_fryer) {channel="miio:basic:fryer:status"}
+Number fault "Air Fryer - Device Fault" (G_fryer) {channel="miio:basic:fryer:fault"}
+Number:Time target_time "Air Fryer - Target Time" (G_fryer) {channel="miio:basic:fryer:target_time"}
+Number:Temperature target_temperature "Air Fryer - Target Temperature" (G_fryer) {channel="miio:basic:fryer:target_temperature"}
+Number:Time left_time "Air Fryer - Left Time" (G_fryer) {channel="miio:basic:fryer:left_time"}
+String recipe_id "Custom - Recipe Id" (G_fryer) {channel="miio:basic:fryer:recipe_id"}
+Number:Time work_time "Custom - Work Time" (G_fryer) {channel="miio:basic:fryer:work_time"}
+Number:Temperature work_temp "Custom - Work Temp" (G_fryer) {channel="miio:basic:fryer:work_temp"}
+Number:Time appoint_time "Custom - Appoint Time" (G_fryer) {channel="miio:basic:fryer:appoint_time"}
+Number food_quantity "Custom - Food Quantity" (G_fryer) {channel="miio:basic:fryer:food_quantity"}
+Number preheat_switch "Custom - Preheat Switch" (G_fryer) {channel="miio:basic:fryer:preheat_switch"}
+Number:Time appoint_time_left "Custom - Appoint Time Left" (G_fryer) {channel="miio:basic:fryer:appoint_time_left"}
+Number turn_pot "Custom - Turn Pot" (G_fryer) {channel="miio:basic:fryer:turn_pot"}
+```
+
+### Mi Air Frying Pan (careli.fryer.maf03) item file lines
+
+note: Autogenerated example. Replace the id (fryer) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
+
+```
+Group G_fryer "Mi Air Frying Pan" <status>
+String actions "Actions" (G_fryer) {channel="miio:basic:fryer:actions"}
+Number status "Air Fryer - Status" (G_fryer) {channel="miio:basic:fryer:status"}
+Number fault "Air Fryer - Device Fault" (G_fryer) {channel="miio:basic:fryer:fault"}
+Number:Time target_time "Air Fryer - Target Time" (G_fryer) {channel="miio:basic:fryer:target_time"}
+Number:Temperature target_temperature "Air Fryer - Target Temperature" (G_fryer) {channel="miio:basic:fryer:target_temperature"}
+Number:Time left_time "Air Fryer - Left Time" (G_fryer) {channel="miio:basic:fryer:left_time"}
+String recipe_id "Custom - Recipe Id" (G_fryer) {channel="miio:basic:fryer:recipe_id"}
+String recipe_name "Custom - Recipe Name" (G_fryer) {channel="miio:basic:fryer:recipe_name"}
+Number:Time work_time "Custom - Work Time" (G_fryer) {channel="miio:basic:fryer:work_time"}
+Number:Temperature work_temp "Custom - Work Temp" (G_fryer) {channel="miio:basic:fryer:work_temp"}
+Number:Time appoint_time "Custom - Appoint Time" (G_fryer) {channel="miio:basic:fryer:appoint_time"}
+Number food_quantity "Custom - Food Quantity" (G_fryer) {channel="miio:basic:fryer:food_quantity"}
+Number preheat_switch "Custom - Preheat Switch" (G_fryer) {channel="miio:basic:fryer:preheat_switch"}
+Number:Time appoint_time_left "Custom - Appoint Time Left" (G_fryer) {channel="miio:basic:fryer:appoint_time_left"}
+String recipe_sync "Custom - Recipe Sync" (G_fryer) {channel="miio:basic:fryer:recipe_sync"}
+Number turn_pot "Custom - Turn Pot" (G_fryer) {channel="miio:basic:fryer:turn_pot"}
+```
+
 ### Qingping Air Monitor Lite (cgllc.airm.cgdn1) item file lines
 
 note: Autogenerated example. Replace the id (airm) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
@@ -5333,12 +5467,12 @@ Switch sound "Notification Sounds" (G_humidifier) {channel="miio:basic:humidifie
 Number watertankstatus "Watertank Status" (G_humidifier) {channel="miio:basic:humidifier:watertankstatus"}
 ```
 
-### Mi S Smart humidifer  (deerma.humidifier.jsq1) item file lines
+### Mi S Smart Humidifer  (deerma.humidifier.jsq1) item file lines
 
 note: Autogenerated example. Replace the id (humidifier) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_humidifier "Mi S Smart humidifer " <status>
+Group G_humidifier "Mi S Smart Humidifer " <status>
 Switch power "Power" (G_humidifier) {channel="miio:basic:humidifier:power"}
 Number mode "Mode" (G_humidifier) {channel="miio:basic:humidifier:mode"}
 Number:Dimensionless humidity "Humidity" (G_humidifier) {channel="miio:basic:humidifier:humidity"}
@@ -6405,12 +6539,12 @@ Switch switchscene "Switch Scene" (G_light) {channel="miio:basic:light:switchsce
 Switch delayoff "Delay Off" (G_light) {channel="miio:basic:light:delayoff"}
 ```
 
-### Philips ZhiRui E14 candle lamp Frosted version (philips.light.candle) item file lines
+### Philips ZhiRui E14 Candle Lamp Frosted version (philips.light.candle) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiRui E14 candle lamp Frosted version" <status>
+Group G_light "Philips ZhiRui E14 Candle Lamp Frosted version" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6419,12 +6553,12 @@ Switch delayoff "Delay Off" (G_light) {channel="miio:basic:light:delayoff"}
 Switch toggle "Toggle" (G_light) {channel="miio:basic:light:toggle"}
 ```
 
-### Philips ZhiRui E14 candle lamp crystal version (philips.light.candle2) item file lines
+### Philips ZhiRui E14 Candle Lamp Crystal version (philips.light.candle2) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiRui E14 candle lamp crystal version" <status>
+Group G_light "Philips ZhiRui E14 Candle Lamp Crystal version" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6465,12 +6599,12 @@ Switch switch_en "Switch Enabled" (G_light) {channel="miio:basic:light:switch_en
 Switch delayoff "Delay Off" (G_light) {channel="miio:basic:light:delayoff"}
 ```
 
-### Philips connected ceiling (philips.light.ceiling) item file lines
+### Philips Connected Ceiling (philips.light.ceiling) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips connected ceiling" <status>
+Group G_light "Philips Connected Ceiling" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6495,12 +6629,12 @@ Switch switch_en "Switch Enabled" (G_light) {channel="miio:basic:light:switch_en
 Switch delayoff "Delay Off" (G_light) {channel="miio:basic:light:delayoff"}
 ```
 
-### ZhiRui dimmable downlight (philips.light.dlight) item file lines
+### ZhiRui Dimmable Downlight (philips.light.dlight) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "ZhiRui dimmable downlight" <status>
+Group G_light "ZhiRui Dimmable Downlight" <status>
 Switch on "Power" (G_light) {channel="miio:basic:light:on"}
 Number mode "Mode" (G_light) {channel="miio:basic:light:mode"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
@@ -6513,12 +6647,12 @@ Number dimmingPeriod "Dimming Period" (G_light) {channel="miio:basic:light:dimmi
 String MibandStatus "Mi Band Status" (G_light) {channel="miio:basic:light:MibandStatus"}
 ```
 
-### Philips ZhiRui downlight (philips.light.downlight) item file lines
+### Philips ZhiRui Downlight (philips.light.downlight) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiRui downlight" <status>
+Group G_light "Philips ZhiRui Downlight" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6543,12 +6677,12 @@ Switch switchscene "Switch Scene" (G_light) {channel="miio:basic:light:switchsce
 Switch delayoff "Delay Off" (G_light) {channel="miio:basic:light:delayoff"}
 ```
 
-### Philips ZhiYi Ceiling lamp FL 40W (philips.light.lnblight1) item file lines
+### Philips ZhiYi Ceiling Lamp FL 40W (philips.light.lnblight1) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiYi Ceiling lamp FL 40W" <status>
+Group G_light "Philips ZhiYi Ceiling Lamp FL 40W" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6562,12 +6696,12 @@ Switch delayoff "Delay Off" (G_light) {channel="miio:basic:light:delayoff"}
 Switch mb "MiBand" (G_light) {channel="miio:basic:light:mb"}
 ```
 
-### Philips ZhiYi Ceiling lamp FL 28W (philips.light.lnblight2) item file lines
+### Philips ZhiYi Ceiling Lamp FL 28W (philips.light.lnblight2) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiYi Ceiling lamp FL 28W" <status>
+Group G_light "Philips ZhiYi Ceiling Lamp FL 28W" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6581,12 +6715,12 @@ Switch delayoff "Delay Off" (G_light) {channel="miio:basic:light:delayoff"}
 Switch mb "MiBand" (G_light) {channel="miio:basic:light:mb"}
 ```
 
-### Philips ZhiYi Ceiling lamp FL 80W (philips.light.lnlrlight) item file lines
+### Philips ZhiYi Ceiling Lamp FL 80W (philips.light.lnlrlight) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiYi Ceiling lamp FL 80W" <status>
+Group G_light "Philips ZhiYi Ceiling Lamp FL 80W" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6684,12 +6818,12 @@ Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Number scene "Scene" (G_light) {channel="miio:basic:light:scene"}
 ```
 
-### Philips ZhiRui bedside lamp (philips.light.moonlight) item file lines
+### Philips ZhiRui Bedside Lamp (philips.light.moonlight) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiRui bedside lamp" <status>
+Group G_light "Philips ZhiRui Bedside Lamp" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6821,12 +6955,12 @@ Number dimmingPeriod "Dimming Period" (G_light) {channel="miio:basic:light:dimmi
 String MibandStatus "Mi Band Status" (G_light) {channel="miio:basic:light:MibandStatus"}
 ```
 
-### Philips EyeCare connected desk lamp gen2. (philips.light.sread1) item file lines
+### Philips EyeCare Connected Desk Lamp gen2. (philips.light.sread1) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips EyeCare connected desk lamp gen2." <status>
+Group G_light "Philips EyeCare Connected Desk Lamp gen2." <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Switch ambientPower "Ambient Power" (G_light) {channel="miio:basic:light:ambientPower"}
@@ -6851,12 +6985,12 @@ Switch eyecare "Eyecare" (G_light) {channel="miio:basic:light:eyecare"}
 Switch bl "Night Light" (G_light) {channel="miio:basic:light:bl"}
 ```
 
-### Philips connected lights (philips.light.virtual) item file lines
+### Philips Connected Lights (philips.light.virtual) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips connected lights" <status>
+Group G_light "Philips Connected Lights" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6920,12 +7054,12 @@ Number dimmingPeriod "Dimming Period" (G_light) {channel="miio:basic:light:dimmi
 String MibandStatus "Mi Band Status" (G_light) {channel="miio:basic:light:MibandStatus"}
 ```
 
-### Philips ZhiYi ceiling lamp (philips.light.zyceiling) item file lines
+### Philips ZhiYi Ceiling lamp (philips.light.zyceiling) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiYi ceiling lamp" <status>
+Group G_light "Philips ZhiYi Ceiling lamp" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6934,12 +7068,12 @@ Switch switchscene "Switch Scene" (G_light) {channel="miio:basic:light:switchsce
 Switch toggle "Toggle" (G_light) {channel="miio:basic:light:toggle"}
 ```
 
-### Philips ZhiYi desk lamp (philips.light.zysread) item file lines
+### Philips ZhiYi Desk Lamp (philips.light.zysread) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiYi desk lamp" <status>
+Group G_light "Philips ZhiYi Desk Lamp" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -6949,12 +7083,12 @@ Switch switchscene "Switch Scene" (G_light) {channel="miio:basic:light:switchsce
 Switch delayoff "Delay Off" (G_light) {channel="miio:basic:light:delayoff"}
 ```
 
-### Philips ZhiYi strip (philips.light.zystrip) item file lines
+### Philips ZhiYi Strip (philips.light.zystrip) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Philips ZhiYi strip" <status>
+Group G_light "Philips ZhiYi Strip" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Dimmer cct "Correlated Color Temperature" (G_light) {channel="miio:basic:light:cct"}
@@ -7031,12 +7165,12 @@ Number expresso "Brew Americano" (G_coffee) {channel="miio:basic:coffee:expresso
 Number boil "Boil water" (G_coffee) {channel="miio:basic:coffee:boil"}
 ```
 
-### Xiaomi Scishare smart capsule coffee machine (scishare.coffee.s1301) item file lines
+### Xiaomi Scishare Smart Capsule Coffee Machine (scishare.coffee.s1301) item file lines
 
 note: Autogenerated example. Replace the id (coffee) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_coffee "Xiaomi Scishare smart capsule coffee machine" <status>
+Group G_coffee "Xiaomi Scishare Smart Capsule Coffee Machine" <status>
 Switch power "Power" (G_coffee) {channel="miio:basic:coffee:power"}
 String Status "status" (G_coffee) {channel="miio:basic:coffee:Status"}
 Number expresso "Brew Expresso" (G_coffee) {channel="miio:basic:coffee:expresso"}
@@ -7181,12 +7315,12 @@ Number download_status "Voice - Download Status" (G_vacuum) {channel="miio:basic
 Number:Dimensionless download_progress "Voice - Download Progress" (G_vacuum) {channel="miio:basic:vacuum:download-progress"}
 ```
 
-### VIOMI Internet electric water heater 1A (60L) (viomi.waterheater.e1) item file lines
+### VIOMI Internet Electric Water Heater 1A (60L) (viomi.waterheater.e1) item file lines
 
 note: Autogenerated example. Replace the id (waterheater) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_waterheater "VIOMI Internet electric water heater 1A (60L)" <status>
+Group G_waterheater "VIOMI Internet Electric Water Heater 1A (60L)" <status>
 Number washStatus "Wash Status" (G_waterheater) {channel="miio:basic:waterheater:washStatus"}
 Number velocity "Velocity" (G_waterheater) {channel="miio:basic:waterheater:velocity"}
 Number:Temperature waterTemp "Water Temperature" (G_waterheater) {channel="miio:basic:waterheater:waterTemp"}
@@ -7872,12 +8006,12 @@ Number:Temperature fan_temp "Fan Temperature" (G_toilet) {channel="miio:basic:to
 Number status_led "Night Light" (G_toilet) {channel="miio:basic:toilet:status_led"}
 ```
 
-### Uclean smart toilet pure (xjx.toilet.pure) item file lines
+### Uclean Smart Toilet pure (xjx.toilet.pure) item file lines
 
 note: Autogenerated example. Replace the id (toilet) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_toilet "Uclean smart toilet pure" <status>
+Group G_toilet "Uclean Smart Toilet pure" <status>
 Number:Temperature seat_temp "Seat Temperature" (G_toilet) {channel="miio:basic:toilet:seat_temp"}
 Number status_seatheat "Seat Status" (G_toilet) {channel="miio:basic:toilet:status_seatheat"}
 Number:Temperature water_temp_t "Water Temperature" (G_toilet) {channel="miio:basic:toilet:water_temp_t"}
@@ -7885,12 +8019,12 @@ Number:Temperature fan_temp "Fan Temperature" (G_toilet) {channel="miio:basic:to
 Number status_led "Night Light" (G_toilet) {channel="miio:basic:toilet:status_led"}
 ```
 
-### Uclean smart toilet relax (xjx.toilet.relax) item file lines
+### Uclean Smart Toilet relax (xjx.toilet.relax) item file lines
 
 note: Autogenerated example. Replace the id (toilet) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_toilet "Uclean smart toilet relax" <status>
+Group G_toilet "Uclean Smart Toilet relax" <status>
 Number:Temperature seat_temp "Seat Temperature" (G_toilet) {channel="miio:basic:toilet:seat_temp"}
 Number status_seatheat "Seat Status" (G_toilet) {channel="miio:basic:toilet:status_seatheat"}
 Number:Temperature water_temp_t "Water Temperature" (G_toilet) {channel="miio:basic:toilet:water_temp_t"}
@@ -8205,12 +8339,12 @@ String customScene "Set Scene" (G_light) {channel="miio:basic:light:customScene"
 Number nightlightBrightness "Nightlight Brightness" (G_light) {channel="miio:basic:light:nightlightBrightness"}
 ```
 
-### Yeelight stylized Ceiling Light  Pro (yeelink.light.ceiling12) item file lines
+### Yeelight Stylized Ceiling Light  Pro (yeelink.light.ceiling12) item file lines
 
 note: Autogenerated example. Replace the id (light) in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.
 
 ```
-Group G_light "Yeelight stylized Ceiling Light  Pro" <status>
+Group G_light "Yeelight Stylized Ceiling Light  Pro" <status>
 Switch power "Power" (G_light) {channel="miio:basic:light:power"}
 Dimmer brightness "Brightness" (G_light) {channel="miio:basic:light:brightness"}
 Number:Time delayoff "Shutdown Timer" (G_light) {channel="miio:basic:light:delayoff"}
index dd45031ca1752a1c635c6b8f0d7858dfd6ac227d..4a851d72c07eae8544e6c513a9c24c13bfc340d3 100644 (file)
@@ -25,6 +25,9 @@ import org.openhab.core.thing.ThingTypeUID;
 @NonNullByDefault
 public enum MiIoDevices {
     AUX_AIRCONDITION_V1("aux.aircondition.v1", "AUX Smart Air Conditioner", THING_TYPE_UNSUPPORTED),
+    CARELI_FRYER_MAF01("careli.fryer.maf01", "Mi Air Frying Pan", THING_TYPE_BASIC),
+    CARELI_FRYER_MAF02("careli.fryer.maf02", "Mi Smart Air Fryer (3.5L)", THING_TYPE_BASIC),
+    CARELI_FRYER_MAF03("careli.fryer.maf03", "Mi Air Frying Pan", THING_TYPE_BASIC),
     CGLLC_AIRM_CGDN1("cgllc.airm.cgdn1", "Qingping Air Monitor Lite", THING_TYPE_BASIC),
     CGLLC_AIRMONITOR_B1("cgllc.airmonitor.b1", "Mi Multifunction Air Monitor", THING_TYPE_BASIC),
     CGLLC_AIRMONITOR_S1("cgllc.airmonitor.s1", "Qingping Air Monitor", THING_TYPE_BASIC),
@@ -47,7 +50,7 @@ public enum MiIoDevices {
     CHUNMI_COOKER_PRESS2("chunmi.cooker.press2", "Mi IH Pressure Rice Cooker", THING_TYPE_UNSUPPORTED),
     CUCO_PLUG_CP1("cuco.plug.cp1", "Gosund Smart Plug", THING_TYPE_BASIC),
     DEERMA_HUMIDIFIER_JSQ("deerma.humidifier.jsq", "Mi Smart Antibacterial Humidifier", THING_TYPE_BASIC),
-    DEERMA_HUMIDIFIER_JSQ1("deerma.humidifier.jsq1", "Mi S Smart humidifer ", THING_TYPE_BASIC),
+    DEERMA_HUMIDIFIER_JSQ1("deerma.humidifier.jsq1", "Mi S Smart Humidifer ", THING_TYPE_BASIC),
     DEERMA_HUMIDIFIER_MJJSQ("deerma.humidifier.mjjsq", "Mi Smart Humidifier", THING_TYPE_BASIC),
     DMAKER_AIRFRESH_A1("dmaker.airfresh.a1", "Mi Fresh Air Ventilator A1-150", THING_TYPE_BASIC),
     DMAKER_AIRFRESH_T2017("dmaker.airfresh.t2017", "Mi Fresh Air Ventilator", THING_TYPE_BASIC),
@@ -112,24 +115,24 @@ public enum MiIoDevices {
     PHILIPS_LIGHT_BCEILING1("philips.light.bceiling1", "Philips Zhirui Ceiling Lamp Bedroom 40W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_BCEILING2("philips.light.bceiling2", "Philips Zhirui Ceiling Lamp Bedroom 28W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_BULB("philips.light.bulb", "Philips ZhiRui E27 bulb", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_CANDLE("philips.light.candle", "Philips ZhiRui E14 candle lamp Frosted version", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_CANDLE2("philips.light.candle2", "Philips ZhiRui E14 candle lamp crystal version", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_CANDLE("philips.light.candle", "Philips ZhiRui E14 Candle Lamp Frosted version", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_CANDLE2("philips.light.candle2", "Philips ZhiRui E14 Candle Lamp Crystal version", THING_TYPE_BASIC),
     PHILIPS_LIGHT_CBULB("philips.light.cbulb", "Mijia Philips Color Bulb", THING_TYPE_BASIC),
     PHILIPS_LIGHT_CBULBS("philips.light.cbulbs", "Philips Light", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_CEILING("philips.light.ceiling", "Philips connected ceiling", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_CEILING("philips.light.ceiling", "Philips Connected Ceiling", THING_TYPE_BASIC),
     PHILIPS_LIGHT_DCOLOR("philips.light.dcolor", "Philips Light", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_DLIGHT("philips.light.dlight", "ZhiRui dimmable downlight", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_DOWNLIGHT("philips.light.downlight", "Philips ZhiRui downlight", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_DLIGHT("philips.light.dlight", "ZhiRui Dimmable Downlight", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_DOWNLIGHT("philips.light.downlight", "Philips ZhiRui Downlight", THING_TYPE_BASIC),
     PHILIPS_LIGHT_HBULB("philips.light.hbulb", "Philips Wi-Fi bulb E27 White", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_LNBLIGHT1("philips.light.lnblight1", "Philips ZhiYi Ceiling lamp FL 40W", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_LNBLIGHT2("philips.light.lnblight2", "Philips ZhiYi Ceiling lamp FL 28W", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_LNLRLIGHT("philips.light.lnlrlight", "Philips ZhiYi Ceiling lamp FL 80W", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_LNBLIGHT1("philips.light.lnblight1", "Philips ZhiYi Ceiling Lamp FL 40W", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_LNBLIGHT2("philips.light.lnblight2", "Philips ZhiYi Ceiling Lamp FL 28W", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_LNLRLIGHT("philips.light.lnlrlight", "Philips ZhiYi Ceiling Lamp FL 80W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_LRCEILING("philips.light.lrceiling", "Philips Zhirui Ceiling Lamp Living room 80W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_MCEIL("philips.light.mceil", "Zhirui Ceiling Lamp Nordic 80W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_MCEILM("philips.light.mceilm", "Zhirui Ceiling Lamp Nordic 40W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_MCEILS("philips.light.mceils", "Zhirui Ceiling Lamp Nordic 28W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_MONO1("philips.light.mono1", "Philips Smart Lamp", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_MOONLIGHT("philips.light.moonlight", "Philips ZhiRui bedside lamp", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_MOONLIGHT("philips.light.moonlight", "Philips ZhiRui Bedside Lamp", THING_TYPE_BASIC),
     PHILIPS_LIGHT_OBCEIL("philips.light.obceil", "Zhirui Ceiling Lamp Black 80W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_OBCEIM("philips.light.obceim", " Zhirui Ceiling Lamp Black 40W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_OBCEIS("philips.light.obceis", "Zhirui Ceiling Lamp Black 28W", THING_TYPE_BASIC),
@@ -137,15 +140,15 @@ public enum MiIoDevices {
     PHILIPS_LIGHT_SCEIL("philips.light.sceil", "Zhirui Ceiling Lamp Starry 80W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_SCEILM("philips.light.sceilm", "Zhirui Ceiling Lamp Starry 40W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_SCEILS("philips.light.sceils", "Zhirui Ceiling Lamp Starry 28W", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_SREAD1("philips.light.sread1", "Philips EyeCare connected desk lamp gen2.", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_SREAD1("philips.light.sread1", "Philips EyeCare Connected Desk Lamp gen2.", THING_TYPE_BASIC),
     PHILIPS_LIGHT_SREAD2("philips.light.sread2", "Mijia Philips Desk Lamp 2S", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_VIRTUAL("philips.light.virtual", "Philips connected lights", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_VIRTUAL("philips.light.virtual", "Philips Connected Lights", THING_TYPE_BASIC),
     PHILIPS_LIGHT_XZCEIL("philips.light.xzceil", "Zhirui Ceiling Lamp Gorgeous 80W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_XZCEIM("philips.light.xzceim", "Zhirui Ceiling Lamp Gorgeous 40W", THING_TYPE_BASIC),
     PHILIPS_LIGHT_XZCEIS("philips.light.xzceis", "Zhirui Ceiling Lamp Gorgeous 28W", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_ZYCEILING("philips.light.zyceiling", "Philips ZhiYi ceiling lamp", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_ZYSREAD("philips.light.zysread", "Philips ZhiYi desk lamp", THING_TYPE_BASIC),
-    PHILIPS_LIGHT_ZYSTRIP("philips.light.zystrip", "Philips ZhiYi strip", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_ZYCEILING("philips.light.zyceiling", "Philips ZhiYi Ceiling lamp", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_ZYSREAD("philips.light.zysread", "Philips ZhiYi Desk Lamp", THING_TYPE_BASIC),
+    PHILIPS_LIGHT_ZYSTRIP("philips.light.zystrip", "Philips ZhiYi Strip", THING_TYPE_BASIC),
     QMI_POWERSTRIP_V1("qmi.powerstrip.v1", "CHINGMI Smart Power Strip v1", THING_TYPE_BASIC),
     ROBOROCK_SWEEPER_E2V2("roborock.sweeper.e2v2", "Rockrobo Xiaowa Sweeper v2", THING_TYPE_UNSUPPORTED),
     ROBOROCK_SWEEPER_E2V3("roborock.sweeper.e2v3", "Rockrobo Xiaowa Sweeper v3", THING_TYPE_UNSUPPORTED),
@@ -184,14 +187,14 @@ public enum MiIoDevices {
     S090615_SWITCH_XSWITCH02("090615.switch.xswitch02", "PTX Twokey switch(wifi)", THING_TYPE_BASIC),
     S090615_SWITCH_XSWITCH03("090615.switch.xswitch03", "PTX ThreeKey Switch (WIFI)", THING_TYPE_BASIC),
     SCISHARE_COFFEE_S1102("scishare.coffee.s1102", "SCISHARE Smart Capsule Coffee Machine", THING_TYPE_BASIC),
-    SCISHARE_COFFEE_S1301("scishare.coffee.s1301", "Xiaomi Scishare smart capsule coffee machine", THING_TYPE_BASIC),
+    SCISHARE_COFFEE_S1301("scishare.coffee.s1301", "Xiaomi Scishare Smart Capsule Coffee Machine", THING_TYPE_BASIC),
     SOOCARE_TOOTHBRUSH_X3("soocare.toothbrush.x3", "Soocare Electric Toothbrush", THING_TYPE_UNSUPPORTED),
-    VIOMI_FRIDGE_V3("viomi.fridge.v3", "Viomi Internet refrigerator iLive(French style 462L)", THING_TYPE_UNSUPPORTED),
+    VIOMI_FRIDGE_V3("viomi.fridge.v3", "Viomi Internet Refrigerator iLive(French style 462L)", THING_TYPE_UNSUPPORTED),
     VIOMI_VACUUM_V6("viomi.vacuum.v6", "Viomi Cleaning Robot V-RVCLM21B", THING_TYPE_BASIC),
     VIOMI_VACUUM_V7("viomi.vacuum.v7", "Mi Robot Vacuum-Mop P", THING_TYPE_BASIC),
     VIOMI_VACUUM_V8("viomi.vacuum.v8", "Mi Robot Vacuum-Mop P", THING_TYPE_BASIC),
     VIOMI_VACUUM_V18("viomi.vacuum.v18", "Viomi S9", THING_TYPE_BASIC),
-    VIOMI_WATERHEATER_E1("viomi.waterheater.e1", "VIOMI Internet electric water heater 1A (60L)", THING_TYPE_BASIC),
+    VIOMI_WATERHEATER_E1("viomi.waterheater.e1", "VIOMI Internet Electric Water Heater 1A (60L)", THING_TYPE_BASIC),
     XIAOMI_AIRCONDITION_MA1("xiaomi.aircondition.ma1", "Mi Inverter Air Conditioner (1.5HP)", THING_TYPE_BASIC),
     XIAOMI_AIRCONDITION_MA2("xiaomi.aircondition.ma2",
             "Mi Inverter Air Conditioner (1.5HP, China Energy Label Level 1)", THING_TYPE_BASIC),
@@ -255,8 +258,8 @@ public enum MiIoDevices {
     XIAOMI_REPEATER_V2("xiaomi.repeater.v2", "Mi Wi-Fi Repeater 2", THING_TYPE_UNSUPPORTED),
     XIAOMI_WIFISPEAKER_V1("xiaomi.wifispeaker.v1", "Mi Network Speaker", THING_TYPE_UNSUPPORTED),
     XJX_TOILET_PRO("xjx.toilet.pro", "Uclean Smart Toilet Seat", THING_TYPE_BASIC),
-    XJX_TOILET_PURE("xjx.toilet.pure", "Uclean smart toilet pure", THING_TYPE_BASIC),
-    XJX_TOILET_RELAX("xjx.toilet.relax", "Uclean smart toilet relax", THING_TYPE_BASIC),
+    XJX_TOILET_PURE("xjx.toilet.pure", "Uclean Smart Toilet pure", THING_TYPE_BASIC),
+    XJX_TOILET_RELAX("xjx.toilet.relax", "Uclean Smart Toilet relax", THING_TYPE_BASIC),
     XJX_TOILET_ZERO("xjx.toilet.zero", "Whale Spout Smart Toilet Zero", THING_TYPE_BASIC),
     YEELIGHT_BHF_LIGHT_V2("yeelight.bhf_light.v2", "Yeelight Smart Bath Heater", THING_TYPE_UNSUPPORTED),
     YEELINK_BHF_LIGHT_V1("yeelink.bhf_light.v1", "Yeelight Smart Bath Heater Pro", THING_TYPE_BASIC),
@@ -277,7 +280,7 @@ public enum MiIoDevices {
     YEELINK_LIGHT_CEILING10("yeelink.light.ceiling10", "Yeelight Crystal Pendant Lamp", THING_TYPE_BASIC),
     YEELINK_LIGHT_CEILING10_AMBI("yeelink.light.ceiling10.ambi", "Yeelight LED Ceiling Ambi Lamp", THING_TYPE_BASIC),
     YEELINK_LIGHT_CEILING11("yeelink.light.ceiling11", "Yeelight Ceiling Light 320 1S", THING_TYPE_BASIC),
-    YEELINK_LIGHT_CEILING12("yeelink.light.ceiling12", "Yeelight stylized Ceiling Light  Pro", THING_TYPE_BASIC),
+    YEELINK_LIGHT_CEILING12("yeelink.light.ceiling12", "Yeelight Stylized Ceiling Light  Pro", THING_TYPE_BASIC),
     YEELINK_LIGHT_CEILING13("yeelink.light.ceiling13", "Yeelight Ceiling Light", THING_TYPE_BASIC),
     YEELINK_LIGHT_CEILING14("yeelink.light.ceiling14", "Yeelight Ceiling Light Mini", THING_TYPE_BASIC),
     YEELINK_LIGHT_CEILING15("yeelink.light.ceiling15", "Yeelight Ceiling Light 480 1S", THING_TYPE_BASIC),
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/careli.fryer.maf01-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/careli.fryer.maf01-miot.json
new file mode 100644 (file)
index 0000000..1b900e0
--- /dev/null
@@ -0,0 +1,528 @@
+{
+       "deviceMapping": {
+               "id": [
+                       "careli.fryer.maf01",
+                       "careli.fryer.maf03"
+               ],
+               "propertyMethod": "get_properties",
+               "maxProperties": 1,
+               "channels": [
+                       {
+                               "property": "",
+                               "friendlyName": "Actions",
+                               "channel": "actions",
+                               "type": "String",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "air-fryer-start-cook",
+                                                       "label": "Air Fryer Start Cook"
+                                               },
+                                               {
+                                                       "value": "air-fryer-cancel-cooking",
+                                                       "label": "Air Fryer Cancel Cooking"
+                                               },
+                                               {
+                                                       "value": "air-fryer-pause",
+                                                       "label": "Air Fryer Pause"
+                                               },
+                                               {
+                                                       "value": "custom-start-cook",
+                                                       "label": "Custom Start Cook"
+                                               },
+                                               {
+                                                       "value": "custom-resume-cook",
+                                                       "label": "Custom Resume Cook"
+                                               }
+                                       ]
+                               },
+                               "actions": [
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 2,
+                                               "aiid": 1,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "air-fryer-start-cook"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 2,
+                                               "aiid": 2,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "air-fryer-cancel-cooking"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 2,
+                                               "aiid": 3,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "air-fryer-pause"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "NONE",
+                                               "parameters": [
+                                                       1,
+                                                       2,
+                                                       3,
+                                                       4,
+                                                       5,
+                                                       6,
+                                                       7.0
+                                               ],
+                                               "siid": 3,
+                                               "aiid": 1,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "custom-start-cook"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 3,
+                                               "aiid": 2,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "custom-resume-cook"
+                                                               }
+                                                       ]
+                                               }
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"air-fryer-start-cook\"\u003d\"Air Fryer Start Cook\",\"air-fryer-cancel-cooking\"\u003d\"Air Fryer Cancel Cooking\",\"air-fryer-pause\"\u003d\"Air Fryer Pause\",\"custom-start-cook\"\u003d\"Custom Start Cook\",\"custom-resume-cook\"\u003d\"Custom Resume Cook\"]`"
+                       },
+                       {
+                               "property": "status",
+                               "siid": 2,
+                               "piid": 1,
+                               "friendlyName": "Air Fryer - Status",
+                               "channel": "status",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Shutdown"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Standby"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Pause"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Appointment"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "Cooking"
+                                               },
+                                               {
+                                                       "value": "5",
+                                                       "label": "Preheat "
+                                               },
+                                               {
+                                                       "value": "6",
+                                                       "label": "Cooked"
+                                               },
+                                               {
+                                                       "value": "7",
+                                                       "label": "Preheat Finish"
+                                               },
+                                               {
+                                                       "value": "8",
+                                                       "label": "Preheat Pause"
+                                               },
+                                               {
+                                                       "value": "9",
+                                                       "label": "Pause2"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "tags": [
+                                       "Status"
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Shutdown\",\"1\"\u003d\"Standby\",\"2\"\u003d\"Pause\",\"3\"\u003d\"Appointment\",\"4\"\u003d\"Cooking\",\"5\"\u003d\"Preheat \",\"6\"\u003d\"Cooked\",\"7\"\u003d\"Preheat Finish\",\"8\"\u003d\"Preheat Pause\",\"9\"\u003d\"Pause2\"]`"
+                       },
+                       {
+                               "property": "fault",
+                               "siid": 2,
+                               "piid": 2,
+                               "friendlyName": "Air Fryer - Device Fault",
+                               "channel": "fault",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "No Faults"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "E1"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "E2"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "category": "error",
+                               "tags": [
+                                       "Status"
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"No Faults\",\"1\"\u003d\"E1\",\"2\"\u003d\"E2\"]`"
+                       },
+                       {
+                               "property": "target-time",
+                               "siid": 2,
+                               "piid": 3,
+                               "friendlyName": "Air Fryer - Target Time",
+                               "channel": "target_time",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 1,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ],
+                               "category": "time",
+                               "tags": [
+                                       "Setpoint"
+                               ]
+                       },
+                       {
+                               "property": "target-temperature",
+                               "siid": 2,
+                               "piid": 4,
+                               "friendlyName": "Air Fryer - Target Temperature",
+                               "channel": "target_temperature",
+                               "type": "Number:Temperature",
+                               "unit": "celsius",
+                               "stateDescription": {
+                                       "minimum": 40,
+                                       "maximum": 200,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "category": "temperature",
+                               "tags": [
+                                       "Setpoint",
+                                       "Temperature"
+                               ]
+                       },
+                       {
+                               "property": "left-time",
+                               "siid": 2,
+                               "piid": 5,
+                               "friendlyName": "Air Fryer - Left Time",
+                               "channel": "left_time",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "category": "time"
+                       },
+                       {
+                               "property": "recipe-id",
+                               "siid": 3,
+                               "piid": 1,
+                               "friendlyName": "Custom - Recipe Id",
+                               "channel": "recipe_id",
+                               "type": "String",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "recipe-name",
+                               "siid": 3,
+                               "piid": 2,
+                               "friendlyName": "Custom - Recipe Name",
+                               "channel": "recipe_name",
+                               "type": "String",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "work-time",
+                               "siid": 3,
+                               "piid": 3,
+                               "friendlyName": "Custom - Work Time",
+                               "channel": "work_time",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 1,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": false,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ],
+                               "category": "time"
+                       },
+                       {
+                               "property": "work-temp",
+                               "siid": 3,
+                               "piid": 4,
+                               "friendlyName": "Custom - Work Temp",
+                               "channel": "work_temp",
+                               "type": "Number:Temperature",
+                               "unit": "celsius",
+                               "stateDescription": {
+                                       "minimum": 40,
+                                       "maximum": 200,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": false,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "category": "temperature",
+                               "tags": [
+                                       "Setpoint",
+                                       "Temperature"
+                               ]
+                       },
+                       {
+                               "property": "appoint-time",
+                               "siid": 3,
+                               "piid": 5,
+                               "friendlyName": "Custom - Appoint Time",
+                               "channel": "appoint_time",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "food-quantity",
+                               "siid": 3,
+                               "piid": 6,
+                               "friendlyName": "Custom - Food Quantity",
+                               "channel": "food_quantity",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Null"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Single"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Double"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Half"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "Full"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Null\",\"1\"\u003d\"Single\",\"2\"\u003d\"Double\",\"3\"\u003d\"Half\",\"4\"\u003d\"Full\"]`"
+                       },
+                       {
+                               "property": "preheat-switch",
+                               "siid": 3,
+                               "piid": 7,
+                               "friendlyName": "Custom - Preheat Switch",
+                               "channel": "preheat_switch",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Null"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Off"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "On"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Null\",\"1\"\u003d\"Off\",\"2\"\u003d\"On\"]`"
+                       },
+                       {
+                               "property": "appoint-time-left",
+                               "siid": 3,
+                               "piid": 8,
+                               "friendlyName": "Custom - Appoint Time Left",
+                               "channel": "appoint_time_left",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": []
+                       },
+                       {
+                               "property": "recipe-sync",
+                               "siid": 3,
+                               "piid": 9,
+                               "friendlyName": "Custom - Recipe Sync",
+                               "channel": "recipe_sync",
+                               "type": "String",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "turn-pot",
+                               "siid": 3,
+                               "piid": 10,
+                               "friendlyName": "Custom - Turn Pot",
+                               "channel": "turn_pot",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "1",
+                                                       "label": "Switch Off"
+                                               },
+                                               {
+                                                       "value": "0",
+                                                       "label": "Not Turn Pot"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Turn Pot"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"1\"\u003d\"Switch Off\",\"0\"\u003d\"Not Turn Pot\",\"2\"\u003d\"Turn Pot\"]`"
+                       }
+               ],
+               "readmeComment": "Identified manual actions for execution\u003cbr /\u003e`action{\"did\":\"air-fryer-start-cook\",\"siid\":2,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"air-fryer-cancel-cooking\",\"siid\":2,\"aiid\":2,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"air-fryer-pause\",\"siid\":2,\"aiid\":3,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"custom-start-cook\",\"siid\":3,\"aiid\":1,\"in\":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}`\u003cbr /\u003e`action{\"did\":\"custom-resume-cook\",\"siid\":3,\"aiid\":2,\"in\":[]}`\u003cbr /\u003ePlease test and feedback if they are working to they can be linked to a channel.",
+               "experimental": true
+       }
+}
diff --git a/bundles/org.openhab.binding.miio/src/main/resources/database/careli.fryer.maf02-miot.json b/bundles/org.openhab.binding.miio/src/main/resources/database/careli.fryer.maf02-miot.json
new file mode 100644 (file)
index 0000000..f32e171
--- /dev/null
@@ -0,0 +1,500 @@
+{
+       "deviceMapping": {
+               "id": [
+                       "careli.fryer.maf02"
+               ],
+               "propertyMethod": "get_properties",
+               "maxProperties": 1,
+               "channels": [
+                       {
+                               "property": "",
+                               "friendlyName": "Actions",
+                               "channel": "actions",
+                               "type": "String",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "air-fryer-start-cook",
+                                                       "label": "Air Fryer Start Cook"
+                                               },
+                                               {
+                                                       "value": "air-fryer-cancel-cooking",
+                                                       "label": "Air Fryer Cancel Cooking"
+                                               },
+                                               {
+                                                       "value": "air-fryer-pause",
+                                                       "label": "Air Fryer Pause"
+                                               },
+                                               {
+                                                       "value": "custom-start-custom-cook",
+                                                       "label": "Custom Start Custom Cook"
+                                               },
+                                               {
+                                                       "value": "custom-resume-cooking",
+                                                       "label": "Custom Resume Cooking"
+                                               }
+                                       ]
+                               },
+                               "actions": [
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 2,
+                                               "aiid": 1,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "air-fryer-start-cook"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 2,
+                                               "aiid": 2,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "air-fryer-cancel-cooking"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 2,
+                                               "aiid": 3,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "air-fryer-pause"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "UNKNOWN",
+                                               "parameters": [
+                                                       1,
+                                                       3,
+                                                       4,
+                                                       5,
+                                                       6,
+                                                       7.0
+                                               ],
+                                               "siid": 3,
+                                               "aiid": 1,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "custom-start-custom-cook"
+                                                               }
+                                                       ]
+                                               }
+                                       },
+                                       {
+                                               "command": "action",
+                                               "parameterType": "EMPTY",
+                                               "siid": 3,
+                                               "aiid": 2,
+                                               "condition": {
+                                                       "name": "matchValue",
+                                                       "parameters": [
+                                                               {
+                                                                       "matchValue": "custom-resume-cooking"
+                                                               }
+                                                       ]
+                                               }
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"air-fryer-start-cook\"\u003d\"Air Fryer Start Cook\",\"air-fryer-cancel-cooking\"\u003d\"Air Fryer Cancel Cooking\",\"air-fryer-pause\"\u003d\"Air Fryer Pause\",\"custom-start-custom-cook\"\u003d\"Custom Start Custom Cook\",\"custom-resume-cooking\"\u003d\"Custom Resume Cooking\"]`"
+                       },
+                       {
+                               "property": "status",
+                               "siid": 2,
+                               "piid": 1,
+                               "friendlyName": "Air Fryer - Status",
+                               "channel": "status",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Shutdown"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Standby"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Pause"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Appointment"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "Cooking"
+                                               },
+                                               {
+                                                       "value": "5",
+                                                       "label": "Preheat "
+                                               },
+                                               {
+                                                       "value": "6",
+                                                       "label": "Cooked"
+                                               },
+                                               {
+                                                       "value": "7",
+                                                       "label": "Preheat Finish"
+                                               },
+                                               {
+                                                       "value": "8",
+                                                       "label": "Preheat Pause"
+                                               },
+                                               {
+                                                       "value": "9",
+                                                       "label": "Pause2"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "tags": [
+                                       "Status"
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Shutdown\",\"1\"\u003d\"Standby\",\"2\"\u003d\"Pause\",\"3\"\u003d\"Appointment\",\"4\"\u003d\"Cooking\",\"5\"\u003d\"Preheat \",\"6\"\u003d\"Cooked\",\"7\"\u003d\"Preheat Finish\",\"8\"\u003d\"Preheat Pause\",\"9\"\u003d\"Pause2\"]`"
+                       },
+                       {
+                               "property": "fault",
+                               "siid": 2,
+                               "piid": 2,
+                               "friendlyName": "Air Fryer - Device Fault",
+                               "channel": "fault",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "readOnly": true,
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "No Faults"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "E1"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "E2"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "category": "error",
+                               "tags": [
+                                       "Status"
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"No Faults\",\"1\"\u003d\"E1\",\"2\"\u003d\"E2\"]`"
+                       },
+                       {
+                               "property": "target-time",
+                               "siid": 2,
+                               "piid": 3,
+                               "friendlyName": "Air Fryer - Target Time",
+                               "channel": "target_time",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 1,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ],
+                               "category": "time",
+                               "tags": [
+                                       "Setpoint"
+                               ]
+                       },
+                       {
+                               "property": "target-temperature",
+                               "siid": 2,
+                               "piid": 4,
+                               "friendlyName": "Air Fryer - Target Temperature",
+                               "channel": "target_temperature",
+                               "type": "Number:Temperature",
+                               "unit": "celsius",
+                               "stateDescription": {
+                                       "minimum": 40,
+                                       "maximum": 200,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "category": "temperature",
+                               "tags": [
+                                       "Setpoint",
+                                       "Temperature"
+                               ]
+                       },
+                       {
+                               "property": "left-time",
+                               "siid": 2,
+                               "piid": 5,
+                               "friendlyName": "Air Fryer - Left Time",
+                               "channel": "left_time",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%",
+                                       "readOnly": true
+                               },
+                               "refresh": true,
+                               "actions": [],
+                               "category": "time"
+                       },
+                       {
+                               "property": "recipe-id",
+                               "siid": 3,
+                               "piid": 1,
+                               "friendlyName": "Custom - Recipe Id",
+                               "channel": "recipe_id",
+                               "type": "String",
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "work-time",
+                               "siid": 3,
+                               "piid": 3,
+                               "friendlyName": "Custom - Work Time",
+                               "channel": "work_time",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 1,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": false,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ],
+                               "category": "time"
+                       },
+                       {
+                               "property": "work-temp",
+                               "siid": 3,
+                               "piid": 4,
+                               "friendlyName": "Custom - Work Temp",
+                               "channel": "work_temp",
+                               "type": "Number:Temperature",
+                               "unit": "celsius",
+                               "stateDescription": {
+                                       "minimum": 40,
+                                       "maximum": 200,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": false,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "category": "temperature",
+                               "tags": [
+                                       "Setpoint",
+                                       "Temperature"
+                               ]
+                       },
+                       {
+                               "property": "appoint-time",
+                               "siid": 3,
+                               "piid": 5,
+                               "friendlyName": "Custom - Appoint Time",
+                               "channel": "appoint_time",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "food-quantity",
+                               "siid": 3,
+                               "piid": 6,
+                               "friendlyName": "Custom - Food Quantity",
+                               "channel": "food_quantity",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Null"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Single"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Double"
+                                               },
+                                               {
+                                                       "value": "3",
+                                                       "label": "Half"
+                                               },
+                                               {
+                                                       "value": "4",
+                                                       "label": "Full"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Null\",\"1\"\u003d\"Single\",\"2\"\u003d\"Double\",\"3\"\u003d\"Half\",\"4\"\u003d\"Full\"]`"
+                       },
+                       {
+                               "property": "preheat-switch",
+                               "siid": 3,
+                               "piid": 7,
+                               "friendlyName": "Custom - Preheat Switch",
+                               "channel": "preheat_switch",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "0",
+                                                       "label": "Null"
+                                               },
+                                               {
+                                                       "value": "1",
+                                                       "label": "Off"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "On"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"0\"\u003d\"Null\",\"1\"\u003d\"Off\",\"2\"\u003d\"On\"]`"
+                       },
+                       {
+                               "property": "appoint-time-left",
+                               "siid": 3,
+                               "piid": 8,
+                               "friendlyName": "Custom - Appoint Time Left",
+                               "channel": "appoint_time_left",
+                               "type": "Number:Time",
+                               "unit": "minutes",
+                               "stateDescription": {
+                                       "minimum": 0,
+                                       "maximum": 1440,
+                                       "step": 1,
+                                       "pattern": "%.0f %unit%"
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "STRING"
+                                       }
+                               ]
+                       },
+                       {
+                               "property": "turn-pot",
+                               "siid": 3,
+                               "piid": 10,
+                               "friendlyName": "Custom - Turn Pot",
+                               "channel": "turn_pot",
+                               "type": "Number",
+                               "stateDescription": {
+                                       "options": [
+                                               {
+                                                       "value": "1",
+                                                       "label": "Switch Off"
+                                               },
+                                               {
+                                                       "value": "0",
+                                                       "label": "Not Turn Pot"
+                                               },
+                                               {
+                                                       "value": "2",
+                                                       "label": "Turn Pot"
+                                               }
+                                       ]
+                               },
+                               "refresh": true,
+                               "actions": [
+                                       {
+                                               "command": "set_properties",
+                                               "parameterType": "NUMBER"
+                                       }
+                               ],
+                               "readmeComment": "Value mapping `[\"1\"\u003d\"Switch Off\",\"0\"\u003d\"Not Turn Pot\",\"2\"\u003d\"Turn Pot\"]`"
+                       }
+               ],
+               "readmeComment": "Identified manual actions for execution\u003cbr /\u003e`action{\"did\":\"air-fryer-start-cook\",\"siid\":2,\"aiid\":1,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"air-fryer-cancel-cooking\",\"siid\":2,\"aiid\":2,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"air-fryer-pause\",\"siid\":2,\"aiid\":3,\"in\":[]}`\u003cbr /\u003e`action{\"did\":\"custom-start-custom-cook\",\"siid\":3,\"aiid\":1,\"in\":[1.0, 3.0, 4.0, 5.0, 6.0, 7.0]}`\u003cbr /\u003e`action{\"did\":\"custom-resume-cooking\",\"siid\":3,\"aiid\":2,\"in\":[]}`\u003cbr /\u003ePlease test and feedback if they are working to they can be linked to a channel.",
+               "experimental": true
+       }
+}
index da85b66191184c37acd2f49e5c4af7ddd56d59ec..5b3cc2e91d676af7bcbd65bc5b7c5f4778122e45 100644 (file)
@@ -26,6 +26,7 @@
   "090615.light.mlig02": "PTX Intelligent deep dimming lamp (mesh)",
   "090615.light.pipadd": "Crackle smart light band (mesh)",
   "090615.light.pipatd": "Crackle smart anti glare lamp (mesh)",
+  "090615.light.xrlig1": "Cactus intelligent spotlight (mesh)",
   "090615.plug.cmp86": "PTX 86 power version socket (WiFi)",
   "090615.plug.pipa86": "Crackle intelligent switch two three plug",
   "090615.plug.plus01": "Intelligent 86 socket(WIFI)",
   "aimore.switch.double": "大于智能双键开关",
   "aimore.switch.switch": "大于智能开关",
   "aimore.switch.three": "大于智能三键开关",
+  "air.blanket.tq24": "智能水暖床",
   "air.fan.18123": "AD55",
   "air.fan.23110": "AD19",
   "air.fan.30140": "AD39",
   "asp.treadmill.pbj": "Lijiujia M1 treadmill",
   "asunga.curtain.ct01s": "smartcurtain",
   "ateai.mosq.dakuo": "Dakuo Mosquito Repellent",
+  "aupu.bhf_light.s368m": "AUPU S368M",
   "aux.aircondition.hc1": "AUX Smart Air Conditioner",
   "aux.aircondition.test1": "aux-air condition",
   "aux.aircondition.test2": "aux-air condition",
   "beihao.airer.l9xf": "JIajueshi clothes-horse",
   "beihao.airer.lyj08": "Ai Smart Clothes Dryer",
   "beiyun.switch.250c": "Seebest Smart Universal Dimmer Switch (BLE-Mesh)",
+  "bemfa.aircondition.air2": "空调",
+  "bemfa.aircondition.air4": "空调",
   "bemfa.fan.fan": "风扇",
   "bemfa.light.be01": "巴法",
   "bemfa.light.bemfa": "巴法云",
   "bj352.humidifier.h70": "352 Skin humidifier",
   "bj352.waterpuri.k10": "352Water purifier K10",
   "bj352.waterpuri.s100cm": "352WaterPurifierS100",
+  "bjakq.airfresh.zen300": "AIRBURG Smart Fresh Clean System ZEN-300M",
   "bjdm.airfresh.test01": "LOMEDIQI Intelligent automatic air purifier",
   "bkrobo.bed.t1": "Blupeace Air Massage Mattress Topper",
   "bkrobo.bed.t1dbl": "Blupeace Air Massage Mattress Topper Double",
   "blink.light.bl0001": "BlinkerSmartLight",
   "blink.plug.bp0001": "BlinkerSmartPlug",
   "bofu.curtain.normal": "BOFU Electric Curtain",
+  "bofu.curtain.q301": "QinLinkQ301",
   "bright.aircondition.air": "空调",
   "bright.curtain.curtai": "窗帘电机",
   "bright.light.light": "灯",
   "btzn.switch.4key": "比特四键弱电开关",
   "btzn.switch.cardv1": "比特插卡取电开关",
   "bull.curtain.cw11": "智能窗帘",
+  "bull.plug.27s223": "G27智能插座_10A五孔",
   "bull.plug.gn003": "G27_智能插座_16A三孔",
+  "bull.plug.uy2162": "WiFi插座(16A电量统计版)",
+  "bull.plug.y2012": "WiFi插座",
+  "bull.plug.y201g": "WiFi插座(电量统计版)",
   "bull.switch.001": "WiFi插座_非计量版",
   "bull.switch.bull01": "WiFi插座_计量版",
   "bull.switch.gn004": "G27_智能插座_10A五孔",
+  "bull.switch.s049": "G55智能一位单火开关",
+  "bull.switch.s051a": "G55智能三位单火开关-左",
   "bull.switch.s112": "G27_智能开关_一开",
   "bull.switch.s212": "G27_智能开关_二开_上键",
   "bull.switch.s212b": "G27_智能开关_二开_下键",
   "careli.fryer.maf01": "Mi air frying pan",
   "careli.fryer.maf02": "Mi Smart Air Fryer (3.5L)",
   "careli.fryer.maf03": "Mi air frying pan",
+  "careli.fryer.maf07": "Mi Smart Air Fryer (3.5L)",
   "cchip.airer.a2": "manskubo P series",
   "cchip.light.l1": "Air Surface ceiling light",
   "cchome.curtain.khl01": "Curtain motor",
   "cgllc.sensor_ht.qpg1": "Qingping Temp \u0026 RH Monitor",
   "cgzn.aircondition.air": "air",
   "cgzn.airer.airer": "晾衣架",
+  "cgzn.airer.airer2": "晾衣架",
   "cgzn.airpurifier.ai": "ai",
   "cgzn.camera.camera": "摄像头",
   "cgzn.curtain.curtain": "curtain",
   "chunmi.cooker.press1": "Mi IH Pressure Rice Cooker",
   "chunmi.cooker.press2": "Mi IH Pressure Rice Cooker",
   "chunmi.cooker.tw1": "Mi Smart Rice Cooker (1.6L)",
+  "chunmi.cooker.wy3": "Xiaomi Smart Rice Cooker 3L",
   "chunmi.cooker.zwz01": "ZHIWUZHU Cooking Intelligent Rice Cooker 4L",
   "chunmi.health_pot.a1": "Mi Smart Multi-functional Kettle",
   "chunmi.ihcooker.chefnic": "Mi Induction Cooker Set Chef Nic Edition",
   "chunmi.ihcooker.exp1": "Mi Induction Cooker",
   "chunmi.ihcooker.hk1": "Mi Induction Cooker",
   "chunmi.ihcooker.korea1": "Mi Induction Cooker",
+  "chunmi.ihcooker.slim": "Mi Induction Cooker Ultra Slim",
   "chunmi.ihcooker.tkpro1": "TOKIT Smart Induction Cooker Pro",
   "chunmi.ihcooker.tkv1": "TOKIT-Smart induction Cooker Entry-chunmi",
   "chunmi.ihcooker.tw1": "Mi Induction Cooker",
   "dmaker.fan.p11": "Mi Smart Standing Fan Pro",
   "dmaker.fan.p15": "Mi Smart Standing Fan Pro",
   "dmaker.fan.p18": "Mi Smart Standing Fan 2",
+  "dmaker.fan.p220": "Mi Smart Standing Fan (with Battery)",
   "dmaker.fan.p5": "Mi Smart Standing Fan 1X",
   "dmaker.fan.p8": "Mi Smart Standing Fan 1C",
   "dmaker.fan.p9": "Mi Smart Tower Fan",
   "dotdot.light.dian90": "Diandian90w",
   "dreame.vacuum.ma1808": "Mi Robot Vacuum-Mop",
   "dreame.vacuum.mb1808": "Mi Robot Vacuum-Mop",
-  "dreame.vacuum.mc1808": "Mi Robot Vacuum Mop",
+  "dreame.vacuum.mc1808": "Mi Robot Vacuum-Mop",
   "dreame.vacuum.p2008": "Dreame Robot Vacuum-Mop F9",
   "dreame.vacuum.p2009": "Dreame Robot Vacuum D9 ",
+  "dreame.vacuum.p2027": "Dreame Bot W10",
   "dreame.vacuum.p2028": "Dreame Bot Z10 Pro",
+  "dreame.vacuum.p2028a": "Dreame Bot L10 Plus",
   "dreame.vacuum.p2029": "Dreame Bot L10 Pro",
   "dreame.vacuum.p2036": "Trouver Robot LDS Vacuum-Mop Finder",
   "dreame.vacuum.p2041": "Mi Robot Vacuum-Mop 1T",
   "dreame.vacuum.p2041o": "Mi Robot Vacuum-Mop 2 Pro+",
   "dreame.vacuum.p2140": "Mijia Robot Vacuum-Mop 2C",
   "dreame.vacuum.p2148o": "Mijia Robot Vacuum-Mop Ultra Slim",
+  "dreame.vacuum.p2150o": "Mijia Robot Vacuum-Mop Dirt Disposal",
   "dreame.vacuum.p2156o": "MOVA Z500 Robot Vacuum and Mop Cleaner",
   "dreame.vacuum.p2157": "MOVA L600 Robot Vacuum and Mop Cleaner",
   "dreame.vacuum.p2187": "Dreame Bot D9 Pro",
+  "dreame.vacuum.p2259": "Dreame Bot D9 Max",
   "dsm.lock.h3": "DESSMANN smart lock-Di H3",
   "dsm.lock.q3": "Q3",
   "dsm.lock.r5": "DESSMANN Facial recognition smart lock-Di R5",
   "eda.switch.1sfsw": "Earda Mesh Switch L1",
   "eda.switch.2sfsw": "Earda Mesh Switch L2",
   "eda.switch.2sw": "Earda Mesh Switch 2",
+  "eda.switch.3sfsw": "Earda Mesh Switch L3",
   "eda.switch.3sw": "Earda Mesh Switch 3",
   "eda.switch.switch": "Earda Mesh Switch 1",
   "edaltd.fan.fan": "风扇",
   "evecca.switch.evecca": "易慧家智能门窗产品",
   "evecca.switch.sw001a": "易慧家智能开关",
   "ezhome.aircondition.yy1001": "Air Conditioner",
+  "ezhome.airer.yy0006": "云接入晾衣架",
+  "ezhome.airp.yy0007": "云接入空气净化器",
   "ezhome.curtain.yy0004": "云接入窗帘",
   "ezhome.curtain.yy0005": "云接入窗帘",
   "ezhome.curtain.zhyapp04": "Curtain",
   "future.tv.tv": "电视机",
   "future.wifispeaker.amp02": " 瑞立音乐播放器",
   "fyw.switch.sw0a01": "Xiaowei Scene MESH Switch",
+  "gdyimu.vacuum.g1m": "Lydsto inertial navigation sweep and  drag integrated robot G1M",
   "gdyimu.vacuum.r1": "Lydsto Lydsto R1 A Intelligent Sweep\u0026Mop Integrated Robot",
+  "gdyimu.vacuum.r1da": "Lydsto Sweeping And Mopping Robot R1DA",
   "ge.light.mono1": "X-Bulb智能灯泡",
   "gerwin.curtain.gm25xm": "GM Smart Curtain",
   "ghome.curtain.sf004": "窗帘电机",
   "gmn.light.wyfan1": "Gomanni G1 series bedroom fan lamp",
   "gmn.light.wyra01": "Gemani Smart Tai Chi Light Strip",
   "gmrii.curtain.gt30": "GMIRI Curtain GT30TV/P",
+  "gmrii.curtain.gt50": "GMIRI Curtain GT50TV/M",
   "gmwl.light.cibdo0410ga": "gmwlznd",
   "golden.curtain.c01": "curtain",
   "golden.kettle.wd01ei": "drinking",
   "golden.light.m002": "bulb",
   "gsd.light.wy0a01": "QTUN Mesh Light",
   "gtop.light.eps119": "ZY Smart Ceiling Lamp",
+  "gtop.light.gtop02": "ZhiYue Smart Spotlight",
   "gtop.light.xl01": "ZhiYue Smart Light",
   "gtop.light.xl6601": "智能灯具",
   "guoshi.other.sem01": "Hi+ Intelligent Steam Eyeshade",
+  "gxdz.curtain.gx168": "Integrated Electric Curtain",
+  "gxhl.switch.7zds11": "7z One-way Smart Dimmable Switch",
+  "gxhl.switch.7zds12": "7z Two-way Smart Dimmable Switch",
   "gxhl.switch.7zsw11": "7z One-key Smart Switch",
   "gxhl.switch.7zsw12": "7z Two-key Smart Switch",
   "gxhl.switch.7zsw13": "7z Three-key Smart Switch",
   "hmpace.scales.mibfs": "Mi Body Composition Scale 2",
   "hmpace.scales.miscale2": "Mi Smart Scale 2",
   "hmpace.watch.v1": "Amazfit Watch",
-  "hope.wifispeaker.box3x": "Hope MusicBox 3X",
+  "hope.curtain.473": "窗帘电机",
+  "hope.gateway.host3": "智慧屏网关",
+  "hope.switch.switch": "开关",
+  "hope.wifispeaker.box3x": "Background Music",
   "hope.wifispeaker.m9": "Hope M9",
   "hope.wifispeaker.mini3a": "HOPE Music Box Mini 3A",
-  "hope.wifispeaker.pad3s": "Hope Music with dual source",
+  "hope.wifispeaker.pad3s": "Double source BM",
   "hopo.wopener.si200": "窗户",
   "hopo.wopener.si300": "智能窗控",
   "horow.airer.p90": "Xijian smart clothes rack",
   "huayi.light.virgo": "HUIZUO VIRGO For Living Room",
   "huayi.light.wy": "HUIZUO Ceiling Light",
   "huayi.light.wy002": "HUAYI LIGHTING COMMON CEILING LIGHT",
+  "huayi.light.wy006": "HUIZUO Intelligent lighting (2021 )",
   "huayi.light.wy200": "HUIZUO LIANGCHEN(BLE Mesh)",
   "huayi.light.wy201": "HUIZUO SAG Downlight (BLE Mesh)",
   "huayi.light.wy202": "HUIZUO Bulb (BLE Mesh)",
   "hyd.airer.znlyj1": "MI Home smart clothes dryer",
   "hyd.airer.znlyj2": "Mijia Smart Clothes Drying Rack",
   "hyd.airer.znlyj3": "Mijia Smart Clothes Drying Rack",
+  "hyd.airer.znlyj4": "Mijia Smart Clothes Drying Rack",
   "hyzm.light.wymy1": "Lifan Nordic Intelligent Lamp",
   "hzft.hood.em52i": "油烟机EM52.i",
   "hzft.waterheater.d1301i": "热水器D1301i",
   "ihome.sensor_ht.esth": "温湿度传感器",
   "ihome.switch.switch": "开关",
   "ijai.vacuum.v1": "Mi Robot Vacuum-Mop Pro",
+  "ijai.vacuum.v2": "Mi Robot Vacuum-Mop 2",
+  "ijomoo.toilet.i90": "JOMOO Smart Toilet I90",
   "ijomoo.toilet.zs320": "Smart Toilet Lid-ZS320T",
   "ikea.light.led1536g5": "IKEA E14 white spectrum",
   "ikea.light.led1537r6": "IKEA GU10 white spectrum",
   "ikecin.aircondition.ir1": "空调",
   "ikecin.airfresh.26": "新风控制器",
   "ikecin.airfresh.95": "智能新风控制",
+  "ikecin.airrtc.103": "空调温控器",
   "ikecin.airrtc.25": "智能温控器",
   "ikecin.airrtc.29": "智能温控器",
   "ikecin.airrtc.76": "智能温控器",
   "ikecin.airrtc.96": "智能温控器",
   "ikecin.airrtc.99": "智能温控器",
   "ikecin.curtain.100": "智能窗帘电机",
+  "ikecin.fan.ir5": "风扇",
   "ikecin.plug.6": "智能开关",
   "ikecin.stb.ir3": "机顶盒",
   "ikecin.switch.ir10": "开关",
   "isa.camera.df3": "Da Fang SMART CAMERA",
   "isa.camera.hl5": "XiaoYuan Smart Camera",
   "isa.camera.hlc6": "Mi Home Security Camera 1080p (Magnetic Mount)",
-  "isa.camera.hlc7": "Mi Camera 2 Magnetic Mount (2K)",
+  "isa.camera.hlc7": "Mi Camera 2K (Magnetic Mount)",
   "isa.camera.isc5": "Xiao Fang SMART CAMERA",
   "isa.camera.isc5c1": "Xiao Fang SMART CAMERA",
   "isa.camera.qf3": "Hualai Xiaofang smart camera (dual camera version)",
   "isa.switch.kg03hl": "Mi Smart Triple One Way Wall Switch with Display",
   "isl.light.wy0a01": "Aslan Smart Lamp",
   "isleep.blanket.hs2001": "LETSLEEP Water Heating Mattress HS2001",
+  "isleep.blanket.hs2201": "LETSLEEP water heated blanket‘HS2201’",
   "iwarm.aircondition.gt": "小沃精灵",
   "iwarm.waterheater.l1p24": "小沃壁挂炉",
   "janshi.magic_touch.g2": "G2 Spinal comfort neck massager",
   "jsc.light.wydfn1": "Danfino Intelligent Roof Suction Lamp",
   "jsc.light.wyls02": "Scene Ble mesh light",
   "jsc.light.wyyt01": "Yantai Intelligent Lamp",
+  "jtxiot.curtain.jtxwin": "窗帘电机",
   "jtxiot.switch.switch": "开关",
   "juhl.aircondition.a11": "aircondition",
   "julun.light.jl0002": "julun smart light",
   "kejia.airer.mznpro": "Mi Smart AirerPRO",
   "kejia.airer.th001": "Smart drying rack",
   "kejia.airer.yzjpro": "Yizhijia Smart airerPRO",
+  "kingee.airer.kelyj5": "BOGAOKE Smart Electric Drying Rack",
   "kiwik.aircondition.irac": "空调红外遥控器",
   "kiwik.curtain.kaw": "窗帘电机",
   "kiwik.fan.fan": "风扇红外遥控器",
   "landib.light.kd85": "灯",
   "lbest.airer.lm01": "Clothes Drying Rack",
   "lcrmcr.safe.20mini": "Camerick Mini under screen fingerprint safe deposit box",
+  "lcrmcr.safe.30mk": "CRMCR Miike fingerprint safe deposit box",
   "lcrmcr.safe.an35sidz": "CRMCR iRon electronic safe",
   "lcrmcr.safe.an35sizw": "CRMCR iRon fingerprint safe",
   "lcrmcr.safe.d60ht": "CRMCR Hundred-Treasuresmart safe box",
   "leishi.light.rgba03": "NVC Smart bulb",
   "leishi.light.wy0a01": "NVC  Smart bulb",
   "leishi.light.wy0a02": "NVC Smart down lamp",
+  "leishi.light.wy0a03": "NVC  Smart lamp",
   "leishi.light.wy0a04": "NVC Smart bulb ",
   "leishi.light.wy0a05": "NVC Smart panel light ",
   "leishi.light.wy0a06": "NVC Intelligent Lighting",
   "leishi.light.wy0a07": "NVC Smart Strip",
+  "leishi.light.wy0a08": "NVC smart ceiling lamp",
   "leishi.light.wy0b01": "NVC Smart Desk lamp",
   "leishi.light.wy0c01": "NVC Smart Ceiling Lamp(ZhiRui)",
   "leishi.light.wy0c02": "NVC Smart Ceiling Lamp(ZhiZhen)",
   "lemesh.light.wy0c07": "Scene mesh color temperature lamp TM series",
   "lemesh.light.wy0c08": "Scene mesh color temperature lamp",
   "lemesh.switch.sw0a01": "Scene mesh breaker",
+  "lemesh.switch.sw0a02": "Scene mesh breaker TM",
   "lemesh.switch.sw1a02": "One-click Smart Switch Mesh version",
   "lemesh.switch.sw2a02": "Two-button Smart Switch(Mesh)",
   "lemesh.switch.sw3a02": "Three-button Smart Switch(Mesh)",
   "lfsmt.switch.ls057": "Smart Light Switch (3-way)",
   "lfsmt.tv.spot001": "TV Remote Controller",
   "line.curtain.8m1": "Line Curtain 8m1",
+  "line.curtain.dm1": "Line Curtain DM1",
   "linked.aircondition.st1": "QJ_WK",
   "linked.aircondition.st4": "青春版温控器(蓝牙版)",
   "linked.aircondition.st8": "青春版温控器",
   "linked.light.ft179": "一路灯光面板-S",
   "linp.curtain.lpc1": "Linptech Smart Curtain ",
   "linp.doorbell.g03": "Self-Powered Wirelss Doorbell",
+  "linp.doorbell.g04": "Self-powered WiFi doorbell 2",
   "linp.gateway.n2": "Linptech  RF Gateway",
   "linp.remote.k9b": "Linptech Bluetooth Wireless Switch (3 Keys)",
   "linp.remote.k9b1": "Linptech Bluetooth Wireless Switch (1 Keys)",
   "lonink.switch.ln084": "LONINK One key switch (WiFi)",
   "lonink.switch.ln085": "LONINK Two key switch (WiFi)",
   "lonink.switch.ln086": "LONINK Three key switch(WiFi)",
+  "lonsam.curtain.lscl": "LS intelligent curtain motor",
   "loock.cateye.v01": "Loock CatY",
   "loock.cateye.v02": "Mi Smart Video Doorbell with Monitor",
   "loock.lock.cc2s": "Loock Smart Lock Classic 2",
   "lumi.ctrl_ln2.v1": "Aqara Wall Switch (With Neutral, Double Rocker)",
   "lumi.ctrl_neutral1.v1": "Aqara Wall Switch(No Neutral, Single Rocker)",
   "lumi.ctrl_neutral2.v1": "Aqara Wall Switch (No Neutral, Double Rocker)",
+  "lumi.curtain.acn002": "Aqara Blind Engine E1",
   "lumi.curtain.aq2": "Aqara Roller Shade Controller",
   "lumi.curtain.fix": "智能窗帘电机",
   "lumi.curtain.fix2": "智能窗帘电机(百分比控制)",
   "lumi.curtain.nv1": "智能窗帘",
   "lumi.curtain.other": "智能窗帘电机",
   "lumi.curtain.v1": "Aqara Curtain Controller",
+  "lumi.flood.acn001": "Aqara Water Leak Sensor E1",
   "lumi.flood.bmcn01": "Mi Flood Detector",
   "lumi.gateway.acn01": "Aqara Hub M1S",
   "lumi.gateway.aeu01": "Aqara Hub M1S",
   "lumi.lock.mcn01": "Mi Smart Door Lock",
   "lumi.lock.v1": "Door lock",
   "lumi.lock.wbmcn1": "Mi Smart Door Lock Pro",
+  "lumi.magnet.acn001": "Aqara Door and Window Sensor E1",
   "lumi.motion.bmgl01": "Mi Motion Sensor 2",
   "lumi.plug.acn01": "智能插座T1(国标)",
   "lumi.plug.acn02": "智能墙壁插座T1",
   "lumi.plug.v1": "Mi Smart Plug",
   "lumi.plug.wacn01": "墙壁插座(网关版)",
   "lumi.relay.c2acn01": "Aqara Wireless Relay Controller(2 Channels)",
+  "lumi.remote.acn003": "Aqara Wireless Remote Switch E1 (Single Rocker)",
+  "lumi.remote.acn004": "Aqara Wireless Remote Switch E1 (Double Rocker)",
   "lumi.remote.b186acn01": "Aqara Wireless Remote Switch (Single Rocker)",
   "lumi.remote.b186acn02": "Aqara Wireless Remote Switch D1 (Single Rocker)",
   "lumi.remote.b1acn01": "Aqara Wireless Mini Switch",
   "lxk.switch.sjkg": "双键开关",
   "lxk.waterpuri.jsq": "净水器",
   "madv.alarm.winlock1": "Dling window security alarm smart model.",
+  "madv.cateye.dle3jz": "Dling Smart Video Doorbell E3",
   "madv.cateye.dlowl": "dling Smart Video Doorbell",
   "madv.cateye.dlowle": "Dling Smart Video Doorbell E3",
   "madv.cateye.dlowlplus": "Dling Smart Video Doorbell Plus",
   "magene.walkingpad.g83": "顽鹿游戏功率健身车",
   "manka.light.light": "照明灯",
   "manka.plug.socket": "智能插座",
+  "mate.humidifier.cs01": "MATE air cube",
   "maxi.aircondition.b01x": "MxiControlCAC",
   "maxi.airfresh.b01x2rt": "MxiControlPAU",
   "maxi.heater.b01x2rt": "MxiControlEH",
   "mibx2.washer.v1": "Mi Internet Direct Drive Washer Dryer 10kg",
   "mibx2.washer.v2": "Mi Direct Drive Washer Dryer 10kg",
   "mibx2.washer.v3": "Mi Wave Washer 10kg",
+  "mibx2.washer.v6": "Mi Wave Washer 10kg m2",
   "mibx5.dry.v2": "Mi Smart Heat Pump Dryer 10kg",
   "mibx5.dry.v3": "Mi Smart Dryer 10kg",
   "micoe.airer.hz001h": "Mocie Mies 10 Pro- Drying Style",
   "miot.switch.mswl1": "Mesh无线开关测试(单键)",
   "miot.switch.mswl2": "Mesh无线开关测试(双键)",
   "miot.switch.mswl3": "Mesh无线开关测试(三键)",
+  "miot.switch.y0715": "2",
   "miyooo.light.x32": "美攸智能",
   "mjj.curtain.mode2": "窗帘",
   "mjj.light.mode3": "灯控",
   "mrbond.airer.m2": "MR.BOND",
   "mrbond.airer.m2pro": "MR.BOND",
   "mrbond.airer.m31a": "MrBond smart clothes dryer-Simple2",
+  "mrbond.airer.m31a2": "MrBond smart clothes dryer-Simple2",
   "mrbond.airer.m31c": "MrBond smart clothes dryer-UV2",
+  "mrbond.airer.m31c2": "MrBond smart clothes dryer-UV2",
   "mrbond.airer.m33a": "MrBond smart clothes dryer-Simple3",
   "mrbond.airer.m33c": "MrBond smart clothes dryer-UV3",
   "mrbond.airer.m53c": "MrBond smart clothes dryer-Air Drying",
   "mrbond.airp.h1pro": "MrBond intelligent deodorizer",
   "mrbond.curtain.rac03": "MR.BOND Smart Curtain",
   "msj.f_washer.m1": "Sink cleaning machine",
+  "msj.f_washer.m1pro": "Food cleaning machine",
   "msj.f_washer.m2": "Smart sink washing machine",
   "mskub.airer.k6": "Manskubo K model smart clothes dryer",
   "mxiang.camera.mwc10": "Mi Wireless Outdoor Security Camera 1080p Indoor Receiver",
   "ninebot.scooter.v4": "Mi Electric Scooter Pro 2 series",
   "ninebot.scooter.v5": "Mi Electric Scooter Essential",
   "ninebot.scooter.v6": "Mi Electric Scooter 1S",
+  "ninebot.scooter.v7": "Mi Electric Scooter 3",
   "nnleaf.light.panels": "Light Panels",
   "nnleaf.light.strips": "Nanoleaf Lightstrip",
   "nnleaf.light.ulp": "Nanoleaf ULP",
   "opple.light.barelp": "Opple Smart Lamp Board Mode A",
   "opple.light.bydceiling": "Opple BEYOND Ceiling",
   "opple.light.ceiling": "ceilinglight",
+  "opple.light.dcfan": "OPPLE DC variable frequency Fan Light",
   "opple.light.desk": "desklight",
   "opple.light.fanlight": "OPPLE FANLIGHT",
   "opple.light.lgtstr": "OPPLE Light Strip Mode A",
   "opple.light.tabcol": "OPPLE Smartlamp Mode B",
   "opple.light.tabcw": "OPPLE Smartlamp Mode C",
   "opple.light.tablgt": "OPPLE Smartlamp Mode A",
+  "opple.remote.5pb111": "Opple Bluetooth Wireless Switch(1 Keys)",
+  "opple.remote.5pb112": "Opple Bluetooth Wireless Switch(2 Keys)",
+  "opple.remote.5pb113": "Opple Bluetooth Wireless Switch(3 Keys)",
+  "opple.switch.lbs01a": "OPPLE Q4 Mesh Wall Switch(1 Keys)",
+  "opple.switch.lbs02a": "OPPLE Q4 Mesh Wall Switch(2 Keys)",
+  "opple.switch.lbs03a": "OPPLE Q4 Mesh Wall Switch(3 Keys)",
   "orion.wifispeaker.cm1": "小豹AI音箱",
   "orvibo.aircondition.ir1": "Air conditioner",
   "orvibo.airer.csv1": "欧瑞博晾衣架",
   "pair.light.3": "开关",
   "pair.light.4": "调光灯",
   "pair.light.5": "可调双色温灯",
+  "pair.switch.scene": "场景",
   "pak.light.pak002": "pak ceiling lamp",
   "pak.light.pak005": "Pak LED Smart Home Ceiling Lamp",
   "pak.light.pak006": "Pak LED BULB",
   "philips.light.dlight": "ZhiRui dimmable downlight",
   "philips.light.downlight": "Philips ZhiRui downlight",
   "philips.light.hbulb": "Philips Wi-Fi bulb E27 White",
+  "philips.light.lite": "Mi Smart Desk Lamp Lite",
   "philips.light.lnblight1": "Philips ZhiYi Ceiling lamp FL 40W",
   "philips.light.lnblight2": "Philips ZhiYi Ceiling lamp FL 28W",
   "philips.light.lnlrlight": "Philips ZhiYi Ceiling lamp FL 80W",
   "qike.bhf_light.qk201801": "Smart Bath(Basic)",
   "qmi.plug.psv1": "aigo smart powerstrip",
   "qmi.powerstrip.v1": "CHINGMI Smart Power Strip",
+  "quhwa.aircondition.0602": "空调",
+  "quhwa.curtain.0109": "窗帘",
+  "quhwa.light.0133": "灯",
+  "quhwa.plug.0107": "插座",
+  "quhwa.switch.0101": "开关",
+  "quhwa.switch.0102": "开关",
   "qushui.bed.001": "8H Milan smart electric bed",
   "qushui.bed.002": "8H Smart Adjustable Mattress",
   "qushui.bed.003": "8H Milan Smart Electric Bed Pro",
+  "qushui.bed.004": "8h artificial intelligence sleeping mattress Damo",
+  "qushui.bed.8hai1": "8H AI Smart mattress",
+  "qushui.bed.dt4": "8H Milan Smart leather electric bed S",
   "qushui.dryer.8gxg1": "8h free Intelligent nursing, sterilization and deodorization shoe cabinet",
   "qushui.sofa.001": "8H Master Smart Electric Modular Sofa",
   "qyds.light.wy0a01": "Qianzhongyi intelligent lamp",
   "skg.magic_touch.skgw50": "SKG Waist Massager W5 TE",
   "skyrc.airp.su001": "Petoneer Smart Odor Eliminator-Pro",
   "skyrc.airpurifier.pur": "Petoneer AirMaster",
+  "skyrc.feeder.dfeed": "Petoneer Two-Meal Feeder",
   "skyrc.feeder.fed": " Petoneer Nutri Mini Feeder",
   "skyrc.feeder.mmfed": "Petoneer NutriSpin 6 Meal Pet Feeder",
   "skyrc.feeder.vdfeed": "Nutri Vision Mini",
   "skyrc.feeder.vfed": " Petoneer Nutri Vision",
   "skyrc.pet_waterer.fre1": "Fresco Mini Plus",
+  "smartj.curtain.sjcmns": "SmartJoy Zhizhen Curtain Motor(WiFi)",
   "smartj.curtain.sjd82p": "SmartJoy Intelligent curtain motor (WiFi Pro)",
   "smartj.curtain.sjdt82": "SmartJoy intelligent curtain motor",
   "smartj.light.sjdlds": "SmartJoy Zhizhen Dimmer (Bluetooth Mesh version)",
   "smith.waterheater.cxea1": "Chanitex Electric Water Heater CXE-A1",
   "smith.waterheater.cxeb1": "Chanitex Electric Water Heater CXE-60B1",
   "smith.waterheater.x1": "Garnet Electric Water Heater CTE-X1",
-  "smith.waterpuri.cxr1k": "Chanitex CXR1000-T1/A1",
-  "smith.waterpuri.cxr600": "Chantex CXR600-T1/A1",
-  "smith.waterpuri.cxr800": "Chanitex CXR800-T1/A1",
+  "smith.waterpuri.cxr1k": "Chanitex CXR1000-A1/T1",
+  "smith.waterpuri.cxr600": "Chantex CXR600-A1/T1",
+  "smith.waterpuri.cxr800": "Chanitex CXR800-A1/T1",
   "smith.waterpuri.jnt600": "Chanitex Smart Water Purifier",
   "smyoo.light.04": "闪优调色灯",
   "smyoo.light.light01": "Smyoo Light",
   "smyoo.light.music": "音乐灯",
   "smyoo.plug.plugin02": "Smyoo Switch",
   "smyoo.switch.syn020": "开关带重启",
+  "snowyi.curtain.cre04": "雪意4路导轨式窗帘电机控制模块",
+  "snowyi.light.cct04": "雪意4路LED调光模块(0-10v)",
+  "snowyi.light.rel04": "雪意4路导轨式继电器控制模块",
   "solove.fan.f5new": "Plain desktop fan F5i",
   "songyi.light.light": "灯",
   "soocare.toothbrush.m1": "Mi Electric Toothbrush",
   "soocare.toothbrush.m1s": "Mi Smart Electric Toothbrush T500",
   "soocare.toothbrush.mc1": "Mi Kids Electric Toothbrush",
   "soocare.toothbrush.x3": "Soocare Electric Toothbrush",
+  "sperll.light.fairy": "灯带控制器",
   "srkj.aircondition.v001": "空调",
   "srkj.curtain.cl01": "窗帘",
   "srkj.light.test": "调光灯",
   "sxds.blanket.jssncd": "JESIF Smart Plumbing Mattress(single)",
   "sxds.pillow.pillow02": "Natural latex sleep pillow",
   "sxmiot.sensor_ht.th0001": "迅鸣温湿度计",
+  "syi.airer.d16": "KaBei electric clothes rack",
+  "syi.airer.hkg001": "Haohaka electric clothes hangers",
   "syi.airer.sy1": "KaRuiQi electric drying rack",
   "syi.airer.zjl": "ZhiJuLe electric drying rack",
   "sykj.aircondition.wkq0a": "温控器",
   "thinks.lunar.xm1": "Smart Sleeping Sensor -- Lunar",
   "tih.aircondition.a12345": "Maid White 冷气机",
   "tinymu.toilet.ailid": "TINYMU Smart Toilet AI Version",
+  "tinymu.toilet.wmt15": "TINYMU Smart Toilet Ultimate V Shape",
   "tinymu.toiletlid.v1": "TINYMU Smart Toilet",
   "tokit.cooker.press1": "TOKIT Pressure IH Smart Rice Cooker",
   "tokit.cooker.tk20l01": "Mini Rice Cooker",
   "tokit.oven.tk32pro1": "TOKIT Smart Oven",
   "tokit.pre_cooker.tkih1": "TOKIT Smart IH Pressure Cooker",
   "tokit.waterpuri.tkj1": "TOKIT Smart Water Purifier 600G",
+  "topwit.switch.rzw01": "Smart  Switch 1 gang (Not Required N Wire)",
+  "topwit.switch.rzw02": "Smart  Switch 2 gang (Not Required N Wire)",
+  "topwit.switch.rzw03": "Smart  Switch 2 gang (Not Required N Wire)",
+  "topwit.switch.rzw11": "Smart  Switch 1 gang (Not Required N Wire)",
+  "topwit.switch.rzw12": "Smart  Switch 2 gang (Not Required N Wire)",
+  "topwit.switch.rzw13": "Smart  Switch 3 gang (Not Required N Wire)",
   "tospo1.light.bpzc01": "Tospo LED full color bulb 7W",
   "tospo1.light.bpzc02": "Tospo LED full color bulb 12W",
   "tospo1.light.bpzp01": "Tospo A60 Bulb ",
   "trios.bleshoes.v1": "米家智能跑鞋",
   "trios1.bleshoes.v02": "FreeTie Smart Sports Core",
   "tsd.light.amn001": "Topstar Smart Bulb",
+  "tsd.light.amn002": "Topstar Smart Light Strip",
   "tsd.light.h002": "TOPSTAR Smart Light",
   "tsd.light.test01": "Dancelight I Series Bulb",
   "tsd.light.tp1": "DanceLight I Series Ceiling Lamp",
   "umiot.switch.ums": "AllCenter开关系列",
   "uvfive.s_lamp.slmap2": "Five germicidal lamp",
   "uvfive.steriliser.tiger": "FIVE sterilization rack",
+  "uvfive.tow_w.berry": "FIVE Smart Hot Towel Machine",
+  "vanco.toilet.pro1": "Vancoco Smart Toilet Pro",
   "viewx.light.101001": "inncap smart bulb distribution network",
   "viomi.airc.m1": "meekee 1P",
   "viomi.airc.m2": "meekee 1.5P",
   "viomi.aircondition.y84": "Navi 2 3P",
   "viomi.aircondition.y85": "Navi 2C 2P",
   "viomi.aircondition.y86": "Navi 2C 3P",
+  "viomi.aircondition.y88": "Smart AC A1-12K",
+  "viomi.aircondition.y89": "Smart AC A1-18K",
   "viomi.aircondition.y9": "Milano 1P",
   "viomi.airer.ich108": "Viomi electric drying rack Lite 1C",
+  "viomi.airer.ich109": "Viomi Internet e-drying rack(Aing)",
   "viomi.airer.nch102": "Viomi Internet e-drying rack Sunny 2S",
   "viomi.airer.vcy102": "Viomi Internet e-drying rack Sunny 2A",
   "viomi.airer.xy108": "Viomi Internet e-drying rack(Suny)",
   "viomi.dishwasher.v10": "Viomi Smart  dishwasher 10 settings 0805",
   "viomi.dishwasher.v11": "Viomi Smart  dishwasher 10 settings 0804",
   "viomi.dishwasher.v12": "viomi smart dishwasher 8 settings 0803B",
+  "viomi.dishwasher.v14": "viomi smart dishwasher 10 settings building 0807",
   "viomi.fan.v5": "Viomi ButterflyFan DC",
   "viomi.fan.v6": "VIOMI AI Air-circulating Fan",
   "viomi.fan.v7": "Viomi AI DC Inverter floor fan 3",
   "viomi.fridge.x28": "Viomi Smart Refrigerator 21Face(502L)",
   "viomi.fridge.x29": "Viomi Smart Refrigerator 21Face(505L)",
   "viomi.fridge.x35": "Viomi Refrigerator (SBS610L)",
+  "viomi.fridge.x37": "Viomi AI Refrigerator 21Face2(525L)",
   "viomi.fridge.x4": "Viomi Internet refrigerator 21 face (side by side 450L)",
   "viomi.fridge.x7": "Viomi Smart refrigerator 21 face (428L)",
   "viomi.health_pot.c2": "Viomi Smart Health Pot Honey Pro",
   "viomi.health_pot.v1": "Mi Smart Multipurpose Kettle",
   "viomi.heater.v3": "Viomi Tower type heater",
   "viomi.heater.v4": "Viomi Kick-Line heater Pro2",
+  "viomi.heater.v5": "Viomi Smart Heater Pro 2",
   "viomi.heater.vxtj01": "Viomi Kick-Line heater Pro",
   "viomi.hood.a10": "Viomi Smart  Hood Free 3",
   "viomi.hood.a11": "Viomi Smart Hood (VC302)",
   "viomi.hood.c1": "VIOMI Smart Rang Hood Cross",
   "viomi.hood.c13": "Viomi AI Hood  Flash 2",
   "viomi.hood.c14": "Viomi AI Hood Cross2 X1",
+  "viomi.hood.c15": "Viomi Smart Hood Cross3 A1",
   "viomi.hood.c16": "Viomi Smart Hood Wing 1C",
   "viomi.hood.c17": "Viomi Smart Hood Free 3 Pro",
   "viomi.hood.c2": "Viomi Smart  Hood Cross 2",
   "viomi.lock.lbt14a": "Viomi Internet smart lock eLink 2A",
   "viomi.lock.link1": "VIOMI door lock Link (Bluetooth)",
   "viomi.lock.link2": "Viomi Door Lock Link (Long endurance version)",
+  "viomi.lock.link2p": "Viomi Internet smart lock eLink 2Pro",
   "viomi.lock.link2v": "Viomi Internet smart lock eyeLink 2V",
   "viomi.oven.so1": "VIOMI Internet steaming and baking all-in-one machine king (embedded)",
   "viomi.oven.so2": "VIOMI Internet steaming and baking all-in-one machine queen (embedded)",
   "viomi.oven.so3": "Viomi Smart Steaming and Baking Machine King Pro(Build-in)",
   "viomi.oven.so6": "Viomi Smart Steaming and Baking Machine Face(Build-in)",
   "viomi.steriliser.v1": "Viomi Disinfection Cabinet (Build-in)",
+  "viomi.switch.mlc1": "云米智能开关1C(单火一键)",
+  "viomi.switch.mlc2": "云米智能开关1C(单火二键)",
+  "viomi.switch.mlc3": "云米智能开关1C(单火三键)",
+  "viomi.switch.mlc4": "云米智能开关1C(零火一键)",
+  "viomi.switch.mlc5": "云米智能开关1C(零火二键)",
+  "viomi.switch.mlc6": "云米智能开关1C(零火三键)",
   "viomi.switch.s1": "云米无线开关inkRock(单键版)",
   "viomi.vacuum.v11": "Viomi V-SLAM Robot Vacuum",
   "viomi.vacuum.v12": "Viomi Cleanning Robot X2",
   "viomi.washer.v32": "Viomi Washer Eyebot(12KG)",
   "viomi.washer.v33": "Viomi Washer\u0026Dryer Master 2(10kg)",
   "viomi.washer.v34": "Viomi Washer\u0026Dryer Master 2S(10kg)",
+  "viomi.washer.v35": "Viomi Washer\u0026Dryer Master 2PRO(10kg)",
   "viomi.washer.v36": "Viomi Washer\u0026Dryer Neo2S(10kg)",
   "viomi.washer.v38": "Viomi Washer\u0026Dryer Master2Mix (10kg)",
   "viomi.washer.v4": "Viomi Washing Drying Machine (8KG)",
   "viomi.waterheater.u49": "Viomi Smart Gas Water Heater VGW1821 18L",
   "viomi.waterheater.u50": "Viomi Smart Gas Water Heater VGW1622 16L",
   "viomi.waterheater.u51": "Viomi Smart Gas Water Heater VGW1822 18L",
+  "viomi.waterheater.u53": "Viomi AI Gas Water Heater VGW1823 18L",
   "viomi.waterheater.u6": "Viomi Internet gas water heater 16L(Premium Version)",
   "viomi.waterheater.u7": "Viomi Smart Gas Water Heater Zero 16L",
   "viomi.waterheater.u8": "Viomi Smart Gas Water Heater Zero(18L)",
   "worth.light.wsoqsx": "康佳吸顶灯",
   "worth.light.wspk9a": "五路球泡灯",
   "worth.plug.787076": "智能插座",
+  "wowoto.projector.all": "小窝投影",
   "wxzn.switch.801438": "开关面板",
   "xbyk.switch.xh01s": "云开关",
   "xbzhm.light.w00a01": "Jinbaili Smart Monochrome Light",
   "xckj.waterheater.int02": "Circle kitchen ultra-thin Internet electric water heater",
   "xckj.waterpuri.ihwp01": "Ocooker Water Purifier",
   "xckj.waterpuri.js01": "Circle kitchen household water purifier",
+  "xfocus.wifispeaker.xfos": "Background Music",
   "xgds.light.wy0a01": "Romne Intelligent lamp",
   "xgds.light.wy0a02": "Romne smart ceiling lamp",
   "xhuan.light.wy0a01": "Sumi Ruying Light Strip",
   "xiaomi.router.ra69": "Redmi路由器AX6",
   "xiaomi.router.ra70": "Xiaomi Router AX9000",
   "xiaomi.router.ra72": "小米路由器AX6000",
+  "xiaomi.router.ra80": "小米路由器AX3000",
+  "xiaomi.router.ra81": "Redmi路由器AX3000",
   "xiaomi.router.rm1800": "小米路由器AX1800",
   "xiaomi.router.rm2100": "Redmi 路由器AC2100",
   "xiaomi.router.rmo15": "小米路由器",
   "xiaomi.tv.i1": "Mi TV",
   "xiaomi.tv.mitv5h1": "MiTV 5",
   "xiaomi.tv.mitv5proh1": "MiTV 5Pro",
+  "xiaomi.tv.mitvsp": "Xiaomi TV",
   "xiaomi.tv.oledh1": "Mi OLED TV 65 inch",
   "xiaomi.tv.rmaxv1": "redmi Max系列",
   "xiaomi.tv.rmh1": "RedmiTV X series",
   "xiaomi.tv.rmi1": "Redmi TV",
   "xiaomi.tv.rmv1": "Redmi TV",
+  "xiaomi.tv.tv6h1": "小米电视6至尊版",
   "xiaomi.tv.v1": "Mi TV",
   "xiaomi.tvbox.4prob1": "小米盒子4S Pro",
   "xiaomi.tvbox.b1": "Mi Box",
   "xiaomi.watch.band1S": "小米手环",
   "xiaomi.watch.band2": "小米手环",
   "xiaomi.wifispeaker.l04m": "Mi Smart Clock 4inch",
+  "xiaomi.wifispeaker.l05c": "Mi AI Speaker Play Plus",
   "xiaomi.wifispeaker.l06a": "Mi AI Speaker II",
   "xiaomi.wifispeaker.l09a": "Mi Smart Speaker Art",
   "xiaomi.wifispeaker.l09b": "Mi Smart Speaker Art II",
   "xiaomi.wifispeaker.l15a": "MI AI Speaker (2nd Gen)",
+  "xiaomi.wifispeaker.l16a": "Xiaomi Sound",
   "xiaomi.wifispeaker.l7a": "Redmi AI Speaker Play",
   "xiaomi.wifispeaker.lx01": "Mi AI Speaker Mini",
   "xiaomi.wifispeaker.lx04": "Mi Smart Clock 4inch",
   "xiaoxun.watch.sw761": "Mi Kids Smartwatch 4",
   "xiaoxun.watch.sw762": "Mi Kids Smartwatch 4C",
   "xiaoxun.watch.sw763": "Mi Kids Smartwatch 4X",
+  "xiaoxun.watch.sw766": "Mi Kids Smartwatch 5X",
   "xiaoxun.watch.sw768": "Mi Kids Smartwatch 5C",
   "xiaoxun.watch.sw900": "Xun AI Smartwatch MAX Pro",
   "xiaoxun.watch.sw960": "Mi Kids Smartwatch 4 Pro",
   "xzh.vacuum.vacuum": "扫地机器人",
   "xzx.light.wyxzx1": "Xi Zhi Xi Intelligent Lamp",
   "yaguan.light.bulb": "彩灯",
+  "yaguan.light.bulb02": "RGBCW彩灯",
   "yaguan.light.dimmer": "调光面板",
   "yaguan.light.light": "灯带",
   "yaguan.light.strip": "灯带",
+  "yaguan.light.strip2": "RGBCW灯带",
   "yaguan.plug.outlet": "插座",
   "yaguan.switch.relay": "通断器",
   "yaguan.switch.test": "雅观接入测试",
   "yeelink.controller.v2": "Yeelight S21 Smart Scene Panel",
   "yeelink.curtain.ctmt1": "Yeelight Smart Curtain Controller",
   "yeelink.curtain.procm1": "易来窗帘电机",
+  "yeelink.gateway.pro01": "Yeelight Pro Gateway",
   "yeelink.gateway.v1": "Yeelight Mesh Hub",
   "yeelink.gateway.va": "Yeelight Mesh Hub",
   "yeelink.light.ble1": "Yeelight Bedside Lamp",
   "yeelink.light.stripa": "Yeelight LED Lightstrip 1S",
   "yeelink.light.virtual": "Light Group (Mi \u0026 Yeelight)",
   "yeelink.light.vtl_ble1": "Yeelight Bedside Lamp(Virtual)",
+  "yeelink.light.yct01": "Yeelight Pro Tunable White Light",
   "yeelink.mirror.bm1": "diiib\u0026Yeelight smart mirror cabinet",
   "yeelink.plug.prosw": "pro_switch",
   "yeelink.remote.remote": "Yeelight Wireless Switch S1",
   "yunmi.waterpuri.lx12": "Mi Water Purifier S1",
   "yunmi.waterpuri.lx14": "Mi Water Purifier H1000G",
   "yunmi.waterpuri.lx2": "Mi Water Purifier",
+  "yunmi.waterpuri.lx20": "Mi Water Purifier 1200G",
   "yunmi.waterpuri.lx3": "Mi Water Purifier (Under Counter)",
   "yunmi.waterpuri.lx4": "Mi Water Purifier",
   "yunmi.waterpuri.lx5": "Mi Water Purifier 1A/400G Pro",
   "yunmi.waterpuri.s5": "Viomi smart water purifier S2(600G)",
   "yunmi.waterpuri.s9": "Viomi  water purifier super 1000G",
   "yunmi.waterpuri.x10": "Viomi ai protable heating water purifier X2",
+  "yunmi.waterpuri.x11": "Viomi protable heating water purifier X2 mini",
   "yunmi.waterpuri.x2": "Viomi 1sec instant Water Heating Purifier X3(Premium Version)",
   "yunmi.waterpuri.x7": "Viomi 1sec Instant Water Heating Purifier X1",
   "yunmi.waterpuri.x8": "Viomi protable heating water purifier X2",
   "zhimi.toilet.pa2": "Smartmi Smart Toilet M1",
   "zhimi.toilet.sa1": "Smartmi Smart Bidet Toilet Seat Pro",
   "zhimi.toilet.va1": "Smartmi Smart Bidet Toilet Seat S",
+  "zhimi.vacuum.xa1": "Lydsto Sweeping and Mopping Robot R1",
   "zhimi.waterpuri.ma1": "Mi Water Purifier H400G",
   "zhiqin.switch.mij04": "Chloroplast G1 Smart Wall Switch (Zero Fire Wire Single Key)",
   "zhiqin.switch.mij05": "Chloroplast G1 Smart Wall Switch (Zero Fire Line Double Bond)",
   "zhiqin.switch.mij06": "Chloroplast G1 smart wall switch (zero fire line triple key)",
+  "zhiqin.switch.x101": "CHLOROP G1 Smart Wall Switch (No Neutral Single Rocher)",
+  "zhiqin.switch.x102": "CHLOROP G1 Smart Wall Switch (No Neutral Double Rocher)",
+  "zhiqin.switch.x103": "CHLOROP G1 Smart Wall Switch (No Neutral Triple Rocher)",
   "zhu123.curtain.curtain1": "smartplus",
   "zhu123.curtain.v3": "smart plus curtain",
   "zhu123.switch.1": "smart light",
   "zkea.aircondition.zkea": "三恒系统",
   "zszm.light.wy0a02": "ZSZM Intelligent spotlight",
   "zszm.light.wy0a03": "ZSZM Intelligent ceiling lamp",
+  "ztao.switch.pck154": "电脑开机卡",
   "zunder.aircondition.air": "air",
   "zunder.light.66744": "声控精灵灯光类2",
   "zunder.light.zun111": "light",
   "zunder.light.zun222": "声控精灵灯光类4",
   "zunder.stb.zunder": "Set top box",
-  "zunder.switch.onoff": "out"
+  "zunder.switch.onoff": "out",
+  "zyzy1.aircondition.0715": "空调",
+  "zyzy1.aircondition.y712": "智能空调",
+  "zyzy1.fan.y07011": "智能米家风扇",
+  "zyzy1.plug.y07012": "空调插座"
 }