diff --git a/bundles/org.openhab.binding.miio/README.base.md b/bundles/org.openhab.binding.miio/README.base.md index 155d0eb4e6e..943bf86a966 100644 --- a/bundles/org.openhab.binding.miio/README.base.md +++ b/bundles/org.openhab.binding.miio/README.base.md @@ -269,6 +269,8 @@ To (re-)read the file either restart openHAB, restart the binding or alternative Note, cropping is disabled (hence showing like the maps in OH3.1 and earlier) for any `cropBorder` value < 0. 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. +### Basic, gateway and lumi Things channels + !!!channelList ## Example item file Rockrobo vacuum @@ -317,6 +319,8 @@ Switch lastCompleted "Last Cleaning Completed" (gVacLast) {channel="miio:vac Image map "Cleaning Map" (gVacLast) {channel="miio:vacuum:034F0E45:cleaning#map"} ``` +### Basic, gateway and lumi Things item files examples + !!!itemFileExamples ### Country Servers diff --git a/bundles/org.openhab.binding.miio/README.md b/bundles/org.openhab.binding.miio/README.md index 13a7bc5be7d..0af243ddc80 100644 --- a/bundles/org.openhab.binding.miio/README.md +++ b/bundles/org.openhab.binding.miio/README.md @@ -364,59 +364,59 @@ Currently the miio binding supports more than 360 different models. | 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 | | -| Roborock S6 Pure | miio:vacuum | [roborock.vacuum.a08](#roborock-vacuum-a08) | Yes | | -| Roborock T7 Pro | miio:vacuum | [roborock.vacuum.a09](#roborock-vacuum-a09) | Yes | | -| Roborock S6 MaxV | miio:vacuum | [roborock.vacuum.a10](#roborock-vacuum-a10) | Yes | | -| Roborock T7 | miio:vacuum | [roborock.vacuum.a11](#roborock-vacuum-a11) | Yes | | -| Roborock T7S | miio:vacuum | [roborock.vacuum.a14](#roborock-vacuum-a14) | Yes | | -| Roborock S7 | miio:vacuum | [roborock.vacuum.a15](#roborock-vacuum-a15) | Yes | | -| Roborock S4 Max | miio:vacuum | [roborock.vacuum.a19](#roborock-vacuum-a19) | Yes | | -| Roborock T7S Plus | miio:vacuum | [roborock.vacuum.a23](#roborock-vacuum-a23) | Yes | | -| Roborock G10S Pro | miio:vacuum | [roborock.vacuum.a26](#roborock-vacuum-a26) | Yes | | -| Roborock S7 MaxV | miio:vacuum | [roborock.vacuum.a27](#roborock-vacuum-a27) | Yes | | -| Roborock G10 | miio:vacuum | [roborock.vacuum.a29](#roborock-vacuum-a29) | Yes | | -| Roborock G10 | miio:vacuum | [roborock.vacuum.a30](#roborock-vacuum-a30) | Yes | | -| Roborock Q5 | miio:vacuum | [roborock.vacuum.a34](#roborock-vacuum-a34) | Yes | | -| Roborock T8 | miio:vacuum | [roborock.vacuum.a37](#roborock-vacuum-a37) | Yes | | -| Roborock Q7 Max | miio:vacuum | [roborock.vacuum.a38](#roborock-vacuum-a38) | Yes | | -| Roborock Q7 | miio:vacuum | [roborock.vacuum.a40](#roborock-vacuum-a40) | Yes | | -| Roborock G10S | miio:vacuum | [roborock.vacuum.a46](#roborock-vacuum-a46) | Yes | | -| Roborock S8 | miio:vacuum | [roborock.vacuum.a51](#roborock-vacuum-a51) | Yes | | -| Roborock T8 Plus | miio:vacuum | [roborock.vacuum.a52](#roborock-vacuum-a52) | Yes | | -| Roborock S7 Pro Ultra | miio:vacuum | [roborock.vacuum.a62](#roborock-vacuum-a62) | Yes | | -| Roborock G10S Pure | miio:vacuum | [roborock.vacuum.a64](#roborock-vacuum-a64) | Yes | | -| Roborock S7 Max Ultra | miio:vacuum | [roborock.vacuum.a65](#roborock-vacuum-a65) | Yes | | -| Roborock G10 Plus | miio:vacuum | [roborock.vacuum.a66](#roborock-vacuum-a66) | Yes | | -| Roborock G20 | miio:vacuum | [roborock.vacuum.a69](#roborock-vacuum-a69) | Yes | | -| Roborock S8 Pro Ultra | miio:vacuum | [roborock.vacuum.a70](#roborock-vacuum-a70) | Yes | | -| Roborock Q5 Pro | miio:vacuum | [roborock.vacuum.a72](#roborock-vacuum-a72) | Yes | | -| Roborock Q8 Max | miio:vacuum | [roborock.vacuum.a73](#roborock-vacuum-a73) | Yes | | -| Roborock P10 | miio:vacuum | [roborock.vacuum.a74](#roborock-vacuum-a74) | Yes | | -| Roborock Q Revo | miio:vacuum | [roborock.vacuum.a75](#roborock-vacuum-a75) | Yes | | -| Roborock G10S Auto | miio:vacuum | [roborock.vacuum.a76](#roborock-vacuum-a76) | Yes | | -| Xiaowa C1 | miio:vacuum | [roborock.vacuum.c1](#roborock-vacuum-c1) | Yes | | +| Roborock S6 Pure | miio:vacuum | [roborock.vacuum.a08](#robo-rock-vacuum-channels) | Yes | | +| Roborock T7 Pro | miio:vacuum | [roborock.vacuum.a09](#robo-rock-vacuum-channels) | Yes | | +| Roborock S6 MaxV | miio:vacuum | [roborock.vacuum.a10](#robo-rock-vacuum-channels) | Yes | | +| Roborock T7 | miio:vacuum | [roborock.vacuum.a11](#robo-rock-vacuum-channels) | Yes | | +| Roborock T7S | miio:vacuum | [roborock.vacuum.a14](#robo-rock-vacuum-channels) | Yes | | +| Roborock S7 | miio:vacuum | [roborock.vacuum.a15](#robo-rock-vacuum-channels) | Yes | | +| Roborock S4 Max | miio:vacuum | [roborock.vacuum.a19](#robo-rock-vacuum-channels) | Yes | | +| Roborock T7S Plus | miio:vacuum | [roborock.vacuum.a23](#robo-rock-vacuum-channels) | Yes | | +| Roborock G10S Pro | miio:vacuum | [roborock.vacuum.a26](#robo-rock-vacuum-channels) | Yes | | +| Roborock S7 MaxV | miio:vacuum | [roborock.vacuum.a27](#robo-rock-vacuum-channels) | Yes | | +| Roborock G10 | miio:vacuum | [roborock.vacuum.a29](#robo-rock-vacuum-channels) | Yes | | +| Roborock G10 | miio:vacuum | [roborock.vacuum.a30](#robo-rock-vacuum-channels) | Yes | | +| Roborock Q5 | miio:vacuum | [roborock.vacuum.a34](#robo-rock-vacuum-channels) | Yes | | +| Roborock T8 | miio:vacuum | [roborock.vacuum.a37](#robo-rock-vacuum-channels) | Yes | | +| Roborock Q7 Max | miio:vacuum | [roborock.vacuum.a38](#robo-rock-vacuum-channels) | Yes | | +| Roborock Q7 | miio:vacuum | [roborock.vacuum.a40](#robo-rock-vacuum-channels) | Yes | | +| Roborock G10S | miio:vacuum | [roborock.vacuum.a46](#robo-rock-vacuum-channels) | Yes | | +| Roborock S8 | miio:vacuum | [roborock.vacuum.a51](#robo-rock-vacuum-channels) | Yes | | +| Roborock T8 Plus | miio:vacuum | [roborock.vacuum.a52](#robo-rock-vacuum-channels) | Yes | | +| Roborock S7 Pro Ultra | miio:vacuum | [roborock.vacuum.a62](#robo-rock-vacuum-channels) | Yes | | +| Roborock G10S Pure | miio:vacuum | [roborock.vacuum.a64](#robo-rock-vacuum-channels) | Yes | | +| Roborock S7 Max Ultra | miio:vacuum | [roborock.vacuum.a65](#robo-rock-vacuum-channels) | Yes | | +| Roborock G10 Plus | miio:vacuum | [roborock.vacuum.a66](#robo-rock-vacuum-channels) | Yes | | +| Roborock G20 | miio:vacuum | [roborock.vacuum.a69](#robo-rock-vacuum-channels) | Yes | | +| Roborock S8 Pro Ultra | miio:vacuum | [roborock.vacuum.a70](#robo-rock-vacuum-channels) | Yes | | +| Roborock Q5 Pro | miio:vacuum | [roborock.vacuum.a72](#robo-rock-vacuum-channels) | Yes | | +| Roborock Q8 Max | miio:vacuum | [roborock.vacuum.a73](#robo-rock-vacuum-channels) | Yes | | +| Roborock P10 | miio:vacuum | [roborock.vacuum.a74](#robo-rock-vacuum-channels) | Yes | | +| Roborock Q Revo | miio:vacuum | [roborock.vacuum.a75](#robo-rock-vacuum-channels) | Yes | | +| Roborock G10S Auto | miio:vacuum | [roborock.vacuum.a76](#robo-rock-vacuum-channels) | Yes | | +| Xiaowa C1 | miio:vacuum | [roborock.vacuum.c1](#robo-rock-vacuum-channels) | Yes | | | Roborock Xiaowa E Series Vacuum v2 | miio:unsupported | roborock.vacuum.e2 | No | | -| Mi Robot Vacuum 1S | miio:vacuum | [roborock.vacuum.m1s](#roborock-vacuum-m1s) | Yes | | -| Roborock P5 | miio:vacuum | [roborock.vacuum.p5](#roborock-vacuum-p5) | Yes | | -| Roborock S4 | miio:vacuum | [roborock.vacuum.s4](#roborock-vacuum-s4) | Yes | | -| Roborock Vacuum S4v2 | miio:vacuum | [roborock.vacuum.s4v2](#roborock-vacuum-s4v2) | Yes | | -| Roborock S5 | miio:vacuum | [roborock.vacuum.s5](#roborock-vacuum-s5) | Yes | | -| Roborock S5 Max | miio:vacuum | [roborock.vacuum.s5e](#roborock-vacuum-s5e) | Yes | | -| Roborock S6 | miio:vacuum | [roborock.vacuum.s6](#roborock-vacuum-s6) | Yes | | -| Roborock T4 | miio:vacuum | [roborock.vacuum.t4](#roborock-vacuum-t4) | Yes | | -| Roborock Vacuum T4 v2 | miio:vacuum | [roborock.vacuum.t4v2](#roborock-vacuum-t4v2) | Yes | | -| Roborock Vacuum T4 v3 | miio:vacuum | [roborock.vacuum.t4v3](#roborock-vacuum-t4v3) | Yes | | -| Roborock T6 | miio:vacuum | [roborock.vacuum.t6](#roborock-vacuum-t6) | Yes | | -| Roborock Vacuum T6 v2 | miio:vacuum | [roborock.vacuum.t6v2](#roborock-vacuum-t6v2) | Yes | | -| Roborock Vacuum T6 v3 | miio:vacuum | [roborock.vacuum.t6v3](#roborock-vacuum-t6v3) | Yes | | -| Roborock Vacuum T7 | miio:vacuum | [roborock.vacuum.t7](#roborock-vacuum-t7) | Yes | | -| Roborock Vacuum T7p | miio:vacuum | [roborock.vacuum.t7p](#roborock-vacuum-t7p) | Yes | | -| Roborock Vacuum T7 v2 | miio:vacuum | [roborock.vacuum.t7pv2](#roborock-vacuum-t7pv2) | Yes | | -| Roborock Vacuum T7 v3 | miio:vacuum | [roborock.vacuum.t7pv3](#roborock-vacuum-t7pv3) | Yes | | -| Roborock Vacuum T7 v2 | miio:vacuum | [roborock.vacuum.t7v2](#roborock-vacuum-t7v2) | Yes | | -| Roborock Vacuum T7 v3 | miio:vacuum | [roborock.vacuum.t7v3](#roborock-vacuum-t7v3) | Yes | | -| Roborock Vacuum S6 | miio:vacuum | [rockrobo.vacuum.s6](#rockrobo-vacuum-s6) | Yes | | -| Mi Robot Vacuum | miio:vacuum | [rockrobo.vacuum.v1](#rockrobo-vacuum-v1) | Yes | | +| Mi Robot Vacuum 1S | miio:vacuum | [roborock.vacuum.m1s](#robo-rock-vacuum-channels) | Yes | | +| Roborock P5 | miio:vacuum | [roborock.vacuum.p5](#robo-rock-vacuum-channels) | Yes | | +| Roborock S4 | miio:vacuum | [roborock.vacuum.s4](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum S4v2 | miio:vacuum | [roborock.vacuum.s4v2](#robo-rock-vacuum-channels) | Yes | | +| Roborock S5 | miio:vacuum | [roborock.vacuum.s5](#robo-rock-vacuum-channels) | Yes | | +| Roborock S5 Max | miio:vacuum | [roborock.vacuum.s5e](#robo-rock-vacuum-channels) | Yes | | +| Roborock S6 | miio:vacuum | [roborock.vacuum.s6](#robo-rock-vacuum-channels) | Yes | | +| Roborock T4 | miio:vacuum | [roborock.vacuum.t4](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T4 v2 | miio:vacuum | [roborock.vacuum.t4v2](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T4 v3 | miio:vacuum | [roborock.vacuum.t4v3](#robo-rock-vacuum-channels) | Yes | | +| Roborock T6 | miio:vacuum | [roborock.vacuum.t6](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T6 v2 | miio:vacuum | [roborock.vacuum.t6v2](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T6 v3 | miio:vacuum | [roborock.vacuum.t6v3](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T7 | miio:vacuum | [roborock.vacuum.t7](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T7p | miio:vacuum | [roborock.vacuum.t7p](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T7 v2 | miio:vacuum | [roborock.vacuum.t7pv2](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T7 v3 | miio:vacuum | [roborock.vacuum.t7pv3](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T7 v2 | miio:vacuum | [roborock.vacuum.t7v2](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum T7 v3 | miio:vacuum | [roborock.vacuum.t7v3](#robo-rock-vacuum-channels) | Yes | | +| Roborock Vacuum S6 | miio:vacuum | [rockrobo.vacuum.s6](#robo-rock-vacuum-channels) | Yes | | +| Mi Robot Vacuum | miio:vacuum | [rockrobo.vacuum.v1](#robo-rock-vacuum-channels) | Yes | | | ROIDMI EVE vacuum | miio:basic | [roidmi.vacuum.v60](#roidmi-vacuum-v60) | Yes | | | ROIDMI EVA | miio:basic | [roidmi.vacuum.v66](#roidmi-vacuum-v66) | Experimental | Experimental support. Please report back if all channels are functional. Preferably share the debug log of property refresh and command responses | | PTX OneKey Switch (WIFI) | miio:basic | [090615.switch.xswitch01](#090615-switch-xswitch01) | Yes | | @@ -663,6 +663,8 @@ To (re-)read the file either restart openHAB, restart the binding or alternative Note, cropping is disabled (hence showing like the maps in OH3.1 and earlier) for any `cropBorder` value < 0. 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. +### Basic, gateway and lumi Things channels + ### Mi Air Frying Pan (careli.fryer.maf01) Channels | Channel | Type | Description | Comment | @@ -6260,6 +6262,8 @@ Switch lastCompleted "Last Cleaning Completed" (gVacLast) {channel="miio:vac Image map "Cleaning Map" (gVacLast) {channel="miio:vacuum:034F0E45:cleaning#map"} ``` +### Basic, gateway and lumi Things item files examples + ### 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. diff --git a/bundles/org.openhab.binding.miio/src/test/java/org/openhab/binding/miio/internal/ReadmeHelper.java b/bundles/org.openhab.binding.miio/src/test/java/org/openhab/binding/miio/internal/ReadmeHelper.java index 7687d86ea10..1cce2bd251c 100644 --- a/bundles/org.openhab.binding.miio/src/test/java/org/openhab/binding/miio/internal/ReadmeHelper.java +++ b/bundles/org.openhab.binding.miio/src/test/java/org/openhab/binding/miio/internal/ReadmeHelper.java @@ -141,7 +141,9 @@ public class ReadmeHelper { Arrays.asList(MiIoDevices.values()).forEach(device -> { if (!"unknown".equals(device.getModel())) { - String link = device.getModel().replace(".", "-"); + String link = device.getThingType().equals(MiIoBindingConstants.THING_TYPE_VACUUM) + ? "robo-rock-vacuum-channels" + : device.getModel().replace(".", "-"); boolean isSupported = device.getThingType().equals(MiIoBindingConstants.THING_TYPE_UNSUPPORTED); Boolean experimental = false; String remark = "";