diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoBindingConstants.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoBindingConstants.java index 4a887e7f76b39..ce318ee083ea6 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoBindingConstants.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoBindingConstants.java @@ -123,4 +123,8 @@ public final class MiIoBindingConstants { + File.separator + BINDING_ID; public static final String BINDING_USERDATA_PATH = OpenHAB.getUserDataFolder() + File.separator + MiIoBindingConstants.BINDING_ID; + + public static final String I18N_THING_PREFIX = "thing."; + public static final String I18N_CHANNEL_PREFIX = "ch."; + public static final String I18N_OPTION_PREFIX = "option."; } diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoHandlerFactory.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoHandlerFactory.java index afb8073b11228..8a68a89a9ea59 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoHandlerFactory.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/MiIoHandlerFactory.java @@ -29,6 +29,8 @@ import org.openhab.binding.miio.internal.handler.MiIoUnsupportedHandler; import org.openhab.binding.miio.internal.handler.MiIoVacuumHandler; import org.openhab.core.common.ThreadPoolManager; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.i18n.TranslationProvider; import org.openhab.core.io.net.http.HttpClientFactory; import org.openhab.core.thing.Thing; import org.openhab.core.thing.ThingTypeUID; @@ -60,6 +62,8 @@ public class MiIoHandlerFactory extends BaseThingHandlerFactory { private CloudConnector cloudConnector; private ChannelTypeRegistry channelTypeRegistry; private BasicChannelTypeProvider basicChannelTypeProvider; + private final TranslationProvider i18nProvider; + private final LocaleProvider localeProvider; private @Nullable Future scheduledTask; private final Logger logger = LoggerFactory.getLogger(MiIoHandlerFactory.class); @@ -67,11 +71,14 @@ public class MiIoHandlerFactory extends BaseThingHandlerFactory { public MiIoHandlerFactory(@Reference HttpClientFactory httpClientFactory, @Reference ChannelTypeRegistry channelTypeRegistry, @Reference MiIoDatabaseWatchService miIoDatabaseWatchService, @Reference CloudConnector cloudConnector, - @Reference BasicChannelTypeProvider basicChannelTypeProvider, Map properties) { + @Reference BasicChannelTypeProvider basicChannelTypeProvider, @Reference TranslationProvider i18nProvider, + @Reference LocaleProvider localeProvider, Map properties) { this.httpClientFactory = httpClientFactory; this.miIoDatabaseWatchService = miIoDatabaseWatchService; this.channelTypeRegistry = channelTypeRegistry; this.basicChannelTypeProvider = basicChannelTypeProvider; + this.i18nProvider = i18nProvider; + this.localeProvider = localeProvider; this.cloudConnector = cloudConnector; @Nullable String username = (String) properties.get("username"); @@ -108,16 +115,18 @@ public boolean supportsThingType(ThingTypeUID thingTypeUID) { protected @Nullable ThingHandler createHandler(Thing thing) { ThingTypeUID thingTypeUID = thing.getThingTypeUID(); if (thingTypeUID.equals(THING_TYPE_MIIO)) { - return new MiIoGenericHandler(thing, miIoDatabaseWatchService, cloudConnector); + return new MiIoGenericHandler(thing, miIoDatabaseWatchService, cloudConnector, i18nProvider, + localeProvider); } if (thingTypeUID.equals(THING_TYPE_BASIC)) { return new MiIoBasicHandler(thing, miIoDatabaseWatchService, cloudConnector, channelTypeRegistry, - basicChannelTypeProvider); + basicChannelTypeProvider, i18nProvider, localeProvider); } if (thingTypeUID.equals(THING_TYPE_VACUUM)) { - return new MiIoVacuumHandler(thing, miIoDatabaseWatchService, cloudConnector, channelTypeRegistry); + return new MiIoVacuumHandler(thing, miIoDatabaseWatchService, cloudConnector, channelTypeRegistry, + i18nProvider, localeProvider); } return new MiIoUnsupportedHandler(thing, miIoDatabaseWatchService, cloudConnector, - httpClientFactory.getCommonHttpClient()); + httpClientFactory.getCommonHttpClient(), i18nProvider, localeProvider); } } diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoAbstractHandler.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoAbstractHandler.java index dd8aaa923fbae..244435a4d4779 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoAbstractHandler.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoAbstractHandler.java @@ -50,6 +50,8 @@ import org.openhab.core.cache.ExpiringCache; import org.openhab.core.common.NamedThreadFactory; import org.openhab.core.config.core.Configuration; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.i18n.TranslationProvider; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.StringType; import org.openhab.core.thing.ChannelUID; @@ -60,6 +62,8 @@ import org.openhab.core.thing.binding.BaseThingHandler; import org.openhab.core.thing.binding.builder.ThingBuilder; import org.openhab.core.types.Command; +import org.osgi.framework.Bundle; +import org.osgi.framework.FrameworkUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,6 +85,9 @@ public abstract class MiIoAbstractHandler extends BaseThingHandler implements Mi protected static final int MAX_QUEUE = 5; protected static final Gson GSON = new GsonBuilder().create(); protected static final String TIMESTAMP = "timestamp"; + protected final Bundle bundle; + protected final TranslationProvider i18nProvider; + protected final LocaleProvider localeProvider; protected ScheduledExecutorService miIoScheduler = new ScheduledThreadPoolExecutor(3, new NamedThreadFactory("binding-" + getThing().getUID().getAsString(), true)); @@ -114,10 +121,13 @@ public abstract class MiIoAbstractHandler extends BaseThingHandler implements Mi protected MiIoDatabaseWatchService miIoDatabaseWatchService; public MiIoAbstractHandler(Thing thing, MiIoDatabaseWatchService miIoDatabaseWatchService, - CloudConnector cloudConnector) { + CloudConnector cloudConnector, TranslationProvider i18nProvider, LocaleProvider localeProvider) { super(thing); this.miIoDatabaseWatchService = miIoDatabaseWatchService; this.cloudConnector = cloudConnector; + this.i18nProvider = i18nProvider; + this.localeProvider = localeProvider; + this.bundle = FrameworkUtil.getBundle(this.getClass()); } @Override @@ -590,7 +600,8 @@ private void changeType(final String modelId) { String label = getThing().getLabel(); if (label == null || label.startsWith("Xiaomi Mi Device")) { ThingBuilder thingBuilder = editThing(); - thingBuilder.withLabel(miDevice.getDescription()); + label = getLocalText(I18N_THING_PREFIX + modelId, miDevice.getDescription()); + thingBuilder.withLabel(label); updateThing(thingBuilder.build()); } logger.info("Mi Device model {} identified as: {}. Does not match thingtype {}. Changing thingtype to {}", @@ -644,4 +655,13 @@ public void onMessageReceived(MiIoSendCommand response) { logger.debug("Error while handing message {}", response.getResponse(), e); } } + + protected String getLocalText(String key, String defaultText) { + try { + String text = i18nProvider.getText(bundle, key, defaultText, localeProvider.getLocale()); + return text != null ? text : defaultText; + } catch (IllegalArgumentException e) { + return defaultText; + } + } } diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoBasicHandler.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoBasicHandler.java index 19f7e3382aabc..d192889aad8a8 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoBasicHandler.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoBasicHandler.java @@ -49,6 +49,8 @@ import org.openhab.binding.miio.internal.cloud.CloudConnector; import org.openhab.binding.miio.internal.transport.MiIoAsyncCommunication; import org.openhab.core.cache.ExpiringCache; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.i18n.TranslationProvider; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.HSBType; import org.openhab.core.library.types.OnOffType; @@ -106,8 +108,9 @@ public class MiIoBasicHandler extends MiIoAbstractHandler { public MiIoBasicHandler(Thing thing, MiIoDatabaseWatchService miIoDatabaseWatchService, CloudConnector cloudConnector, ChannelTypeRegistry channelTypeRegistry, - BasicChannelTypeProvider basicChannelTypeProvider) { - super(thing, miIoDatabaseWatchService, cloudConnector); + BasicChannelTypeProvider basicChannelTypeProvider, TranslationProvider i18nProvider, + LocaleProvider localeProvider) { + super(thing, miIoDatabaseWatchService, cloudConnector, i18nProvider, localeProvider); this.channelTypeRegistry = channelTypeRegistry; this.basicChannelTypeProvider = basicChannelTypeProvider; } @@ -452,6 +455,7 @@ private boolean buildChannelStructure(String deviceName) { try { JsonObject deviceMapping = Utils.convertFileToJSON(fn); logger.debug("Using device database: {} for device {}", fn.getFile(), deviceName); + String key = fn.getFile().replaceFirst("/database/", "").split("json")[0]; Gson gson = new GsonBuilder().serializeNulls().create(); miioDevice = gson.fromJson(deviceMapping, MiIoBasicDevice.class); for (Channel ch : getThing().getChannels()) { @@ -475,7 +479,7 @@ private boolean buildChannelStructure(String deviceName) { logger.debug("properties {}", miChannel); if (!miChannel.getType().isEmpty()) { basicChannelTypeProvider.addChannelType(miChannel, deviceName); - ChannelUID channelUID = addChannel(thingBuilder, miChannel, deviceName); + ChannelUID channelUID = addChannel(thingBuilder, miChannel, deviceName, key); if (channelUID != null) { actions.put(channelUID, miChannel); channelsAdded++; @@ -505,7 +509,8 @@ private boolean buildChannelStructure(String deviceName) { return false; } - private @Nullable ChannelUID addChannel(ThingBuilder thingBuilder, MiIoBasicChannel miChannel, String model) { + private @Nullable ChannelUID addChannel(ThingBuilder thingBuilder, MiIoBasicChannel miChannel, String model, + String key) { String channel = miChannel.getChannel(); String dataType = miChannel.getType(); if (channel.isEmpty() || dataType.isEmpty()) { @@ -514,7 +519,8 @@ private boolean buildChannelStructure(String deviceName) { return null; } ChannelUID channelUID = new ChannelUID(getThing().getUID(), channel); - ChannelBuilder newChannel = ChannelBuilder.create(channelUID, dataType).withLabel(miChannel.getFriendlyName()); + String label = getLocalText(I18N_CHANNEL_PREFIX + key + channel, miChannel.getFriendlyName()); + ChannelBuilder newChannel = ChannelBuilder.create(channelUID, dataType).withLabel(label); boolean useGeneratedChannelType = false; if (!miChannel.getChannelType().isBlank()) { ChannelTypeUID channelTypeUID = new ChannelTypeUID(miChannel.getChannelType()); diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoGenericHandler.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoGenericHandler.java index 233adbd1df18c..6377698c98d99 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoGenericHandler.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoGenericHandler.java @@ -15,6 +15,8 @@ import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.miio.internal.basic.MiIoDatabaseWatchService; import org.openhab.binding.miio.internal.cloud.CloudConnector; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.i18n.TranslationProvider; import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.Thing; import org.openhab.core.types.Command; @@ -33,8 +35,8 @@ public class MiIoGenericHandler extends MiIoAbstractHandler { private final Logger logger = LoggerFactory.getLogger(MiIoGenericHandler.class); public MiIoGenericHandler(Thing thing, MiIoDatabaseWatchService miIoDatabaseWatchService, - CloudConnector cloudConnector) { - super(thing, miIoDatabaseWatchService, cloudConnector); + CloudConnector cloudConnector, TranslationProvider i18nProvider, LocaleProvider localeProvider) { + super(thing, miIoDatabaseWatchService, cloudConnector, i18nProvider, localeProvider); } @Override diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoUnsupportedHandler.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoUnsupportedHandler.java index 21e0dbdb967ff..84cb9c18c5d51 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoUnsupportedHandler.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoUnsupportedHandler.java @@ -44,6 +44,8 @@ import org.openhab.binding.miio.internal.cloud.CloudConnector; import org.openhab.binding.miio.internal.miot.MiotParser; import org.openhab.core.cache.ExpiringCache; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.i18n.TranslationProvider; import org.openhab.core.library.types.OnOffType; import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.Thing; @@ -87,8 +89,9 @@ public class MiIoUnsupportedHandler extends MiIoAbstractHandler { }); public MiIoUnsupportedHandler(Thing thing, MiIoDatabaseWatchService miIoDatabaseWatchService, - CloudConnector cloudConnector, HttpClient httpClientFactory) { - super(thing, miIoDatabaseWatchService, cloudConnector); + CloudConnector cloudConnector, HttpClient httpClientFactory, TranslationProvider i18nProvider, + LocaleProvider localeProvider) { + super(thing, miIoDatabaseWatchService, cloudConnector, i18nProvider, localeProvider); this.httpClient = httpClientFactory; } diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoVacuumHandler.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoVacuumHandler.java index 74f7b3e45eda4..98caed804be04 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoVacuumHandler.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoVacuumHandler.java @@ -52,6 +52,8 @@ import org.openhab.binding.miio.internal.robot.VacuumErrorType; import org.openhab.binding.miio.internal.transport.MiIoAsyncCommunication; import org.openhab.core.cache.ExpiringCache; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.i18n.TranslationProvider; import org.openhab.core.library.types.DateTimeType; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.OnOffType; @@ -113,8 +115,9 @@ public class MiIoVacuumHandler extends MiIoAbstractHandler { private RRMapDrawOptions mapDrawOptions = new RRMapDrawOptions(); public MiIoVacuumHandler(Thing thing, MiIoDatabaseWatchService miIoDatabaseWatchService, - CloudConnector cloudConnector, ChannelTypeRegistry channelTypeRegistry) { - super(thing, miIoDatabaseWatchService, cloudConnector); + CloudConnector cloudConnector, ChannelTypeRegistry channelTypeRegistry, TranslationProvider i18nProvider, + LocaleProvider localeProvider) { + super(thing, miIoDatabaseWatchService, cloudConnector, i18nProvider, localeProvider); this.channelTypeRegistry = channelTypeRegistry; mapChannelUid = new ChannelUID(thing.getUID(), CHANNEL_VACUUM_MAP); status = new ExpiringCache<>(CACHE_EXPIRY, () -> { diff --git a/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties new file mode 100644 index 0000000000000..124919afdbec3 --- /dev/null +++ b/bundles/org.openhab.binding.miio/src/main/resources/OH-INF/i18n/basic.properties @@ -0,0 +1,2460 @@ +# Automatic created list by miio readme maker for miio devices & database channels + +# Devices + +thing.aux.aircondition.v1 = AUX Smart Air Conditioner +thing.careli.fryer.maf01 = Mi Air Frying Pan +thing.careli.fryer.maf02 = Mi Smart Air Fryer (3.5L) +thing.careli.fryer.maf03 = Mi Air Frying Pan +thing.cgllc.airm.cgdn1 = Qingping Air Monitor Lite +thing.cgllc.airmonitor.b1 = Mi Multifunction Air Monitor +thing.cgllc.airmonitor.s1 = Qingping Air Monitor +thing.chuangmi.ir.v2 = Mi Universal Remote +thing.chuangmi.plug.212a01 = Mi Smart Power Plug 2 (Wi-Fi and Bluetooth Gateway) +thing.chuangmi.plug.hmi205 = Mi Smart Plug WiFi +thing.chuangmi.plug.hmi206 = Mi Smart Plug (WiFi) +thing.chuangmi.plug.hmi208 = Mi Smart Wi-Fi Plug (Bluetooth Gateway) +thing.chuangmi.plug.m1 = Mi Plug Mini +thing.chuangmi.plug.m3 = Mi Smart Plug (Wi-Fi) Basic +thing.chuangmi.plug.v1 = Mi Smart Power Plug +thing.chuangmi.plug.v2 = Mi Smart Power Plug v2 +thing.chuangmi.plug.v3 = MIJIA Smart Plug Enhanced +thing.chuangmi.remote.v2 = Mi Remote +thing.chunmi.cooker.normal1 = Mi IH Rice Cooker +thing.chunmi.cooker.normal2 = Mi IH Rice Cooker +thing.chunmi.cooker.normal4 = Mi IH Rice Cooker 4L +thing.chunmi.cooker.press1 = Mi IH Pressure Rice Cooker +thing.chunmi.cooker.press2 = Mi IH Pressure Rice Cooker +thing.cuco.plug.cp1 = Gosund Smart Plug +thing.deerma.humidifier.jsq = Mi Smart Antibacterial Humidifier +thing.deerma.humidifier.jsq1 = Mi S Smart Humidifer +thing.deerma.humidifier.mjjsq = Mi Smart Humidifier +thing.dmaker.airfresh.a1 = Mi Fresh Air Ventilator A1-150 +thing.dmaker.airfresh.t2017 = Mi Fresh Air Ventilator +thing.dmaker.fan.1c = Mi Smart Standing Fan 2 Lite +thing.dmaker.fan.p5 = Mi Smart Standing Fan 1X +thing.dmaker.fan.p8 = Mi Smart Standing Fan 1C +thing.dmaker.fan.p9 = Mi Smart Tower Fan +thing.dmaker.fan.p10 = Mi Smart Standing Fan 2 +thing.dmaker.fan.p15 = Mi Smart Standing Fan Pro +thing.dmaker.fan.p18 = Mi Smart Standing Fan 2 +thing.dreame.vacuum.mc1808 = Mi Robot Vacuum Mop 1C STYTJ01ZHM +thing.dreame.vacuum.p2008 = Dreame Robot Vacuum-Mop F9 +thing.dreame.vacuum.p2009 = Dreame Robot Vacuum D9 +thing.dreame.vacuum.p2036 = Trouver Robot LDS Vacuum-Mop Finder +thing.dreame.vacuum.p2041o = Mi Robot Vacuum-Mop 2 Pro+ +thing.dreame.vacuum.p2156o = MOVA Z500 Robot Vacuum and Mop Cleaner +thing.dreame.vacuum.p2157 = MOVA L600 Robot Vacuum and Mop Cleaner +thing.huayi.light.ari013 = HUIZUO ARIES For Bedroom +thing.huayi.light.aries = HUIZUO ARIES For Living Room +thing.huayi.light.fanwy = HUIZUO Fan Light +thing.huayi.light.fanwy2 = HUIZUO Fan Light(2020) +thing.huayi.light.peg091 = HUIZUO PEGASUS For Living Room +thing.huayi.light.peg093 = HUIZUO PEGASUS For Bedroom +thing.huayi.light.pis123 = HUIZUO PISCES For Bedroom +thing.huayi.light.pisces = HUIZUO PISCES For Living Room +thing.huayi.light.tau023 = HUIZUO TAURUS For Bedroom +thing.huayi.light.taurus = HUIZUO TAURUS For Living Room +thing.huayi.light.vir063 = HUIZUO VIRGO For Bedroom +thing.huayi.light.virgo = HUIZUO VIRGO For Living Room +thing.huayi.light.wy = HUIZUO Ceiling Light +thing.huayi.light.wy200 = HUIZUO LIANGCHEN(BLE Mesh) +thing.huayi.light.wy201 = HUIZUO SAG Downlight (BLE Mesh) +thing.huayi.light.wy202 = HUIZUO Bulb (BLE Mesh) +thing.huayi.light.wy203 = HUIZUO YONG Downlight (BLE Mesh) +thing.huayi.light.wy204 = huayi.light.wy204 +thing.huayi.light.wyheat = HUIZUO Heating Lamp +thing.huayi.light.zw131 = HUIZUO ZIWEI Ceiling Lamp +thing.hunmi.cooker.normal3 = MiJia Rice Cooker +thing.idelan.aircondition.v1 = Jinxing Smart Air Conditioner +thing.lumi.ctrl_neutral1.v1 = Aqara Wall Switch(No Neutral, Single Rocker) +thing.lumi.ctrl_neutral2.v1 = Aqara Wall Switch (No Neutral, Double Rocker) +thing.lumi.curtain.hagl05 = Xiaomiyoupin Curtain Controller (Wi-Fi) +thing.lumi.gateway.mgl03 = Mi Air Purifier virtual +thing.lumi.gateway.v1 = Mi smart Home Gateway Hub v1 +thing.lumi.gateway.v2 = Mi smart Home GatewayHub v2 +thing.lumi.gateway.v3 = Mi smart Home Gateway Hub v3 +thing.lumi.gateway.mieu01 = Mi smart Home Gateway Hub +thing.midea.aircondition.v1 = Midea AC-i Youth +thing.midea.aircondition.v2 = Midea Air Conditioner v2 +thing.midea.aircondition.xa1 = Midea AC-Cool Golden +thing.mijia.vacuum.v2 = Mi Robot Vacuum-Mop Essential +thing.mmgg.pet_waterer.s1 = Mijia Smart Pet Water Dispenser +thing.mmgg.pet_waterer.s2 = Mijia Smart Pet Water Dispenser +thing.mmgg.pet_waterer.s3 = Mijia Smart Pet Water Dispenser +thing.mmgg.pet_waterer.s4 = XIAOWAN Smart Pet Water Dispenser +thing.mrbond.airer.m1pro = MR.BOND +thing.mrbond.airer.m1s = MR.BOND +thing.mrbond.airer.m1super = MR.BOND +thing.nwt.derh.wdh318efw1 = WIDETECH WDH318EFW1 Internet Dehumidifier +thing.philips.light.bceiling1 = Philips Zhirui Ceiling Lamp Bedroom 40W +thing.philips.light.bceiling2 = Philips Zhirui Ceiling Lamp Bedroom 28W +thing.philips.light.bulb = Philips ZhiRui E27 bulb +thing.philips.light.candle = Philips ZhiRui E14 Candle Lamp Frosted version +thing.philips.light.candle2 = Philips ZhiRui E14 Candle Lamp Crystal version +thing.philips.light.cbulb = Mijia Philips Color Bulb +thing.philips.light.cbulbs = Philips Light +thing.philips.light.ceiling = Philips Connected Ceiling +thing.philips.light.dcolor = Philips Light +thing.philips.light.dlight = ZhiRui Dimmable Downlight +thing.philips.light.downlight = Philips ZhiRui Downlight +thing.philips.light.hbulb = Philips Wi-Fi bulb E27 White +thing.philips.light.lnblight1 = Philips ZhiYi Ceiling Lamp FL 40W +thing.philips.light.lnblight2 = Philips ZhiYi Ceiling Lamp FL 28W +thing.philips.light.lnlrlight = Philips ZhiYi Ceiling Lamp FL 80W +thing.philips.light.lrceiling = Philips Zhirui Ceiling Lamp Living room 80W +thing.philips.light.mceil = Zhirui Ceiling Lamp Nordic 80W +thing.philips.light.mceilm = Zhirui Ceiling Lamp Nordic 40W +thing.philips.light.mceils = Zhirui Ceiling Lamp Nordic 28W +thing.philips.light.mono1 = Philips Smart Lamp +thing.philips.light.moonlight = Philips ZhiRui Bedside Lamp +thing.philips.light.obceil = Zhirui Ceiling Lamp Black 80W +thing.philips.light.obceim = Zhirui Ceiling Lamp Black 40W +thing.philips.light.obceis = Zhirui Ceiling Lamp Black 28W +thing.philips.light.rwread = Mijia Philips Study Desk Lamp +thing.philips.light.sceil = Zhirui Ceiling Lamp Starry 80W +thing.philips.light.sceilm = Zhirui Ceiling Lamp Starry 40W +thing.philips.light.sceils = Zhirui Ceiling Lamp Starry 28W +thing.philips.light.sread1 = Philips EyeCare Connected Desk Lamp gen2. +thing.philips.light.sread2 = Mijia Philips Desk Lamp 2S +thing.philips.light.virtual = Philips Connected Lights +thing.philips.light.xzceil = Zhirui Ceiling Lamp Gorgeous 80W +thing.philips.light.xzceim = Zhirui Ceiling Lamp Gorgeous 40W +thing.philips.light.xzceis = Zhirui Ceiling Lamp Gorgeous 28W +thing.philips.light.zyceiling = Philips ZhiYi Ceiling lamp +thing.philips.light.zysread = Philips ZhiYi Desk Lamp +thing.philips.light.zystrip = Philips ZhiYi Strip +thing.qmi.powerstrip.v1 = CHINGMI Smart Power Strip v1 +thing.roborock.sweeper.e2v2 = Rockrobo Xiaowa Sweeper v2 +thing.roborock.sweeper.e2v3 = Rockrobo Xiaowa Sweeper v3 +thing.roborock.vacuum.a08 = Roborock S6 Pure +thing.roborock.vacuum.a09 = Roborock T7 Pro +thing.roborock.vacuum.a10 = Roborock S6 MaxV +thing.roborock.vacuum.a11 = Roborock T7 +thing.roborock.vacuum.a14 = Roborock T7S +thing.roborock.vacuum.a15 = Roborock S7 +thing.roborock.vacuum.a19 = Roborock S4 Max +thing.roborock.vacuum.a23 = Roborock T7S Plus +thing.roborock.vacuum.c1 = Xiaowa C1 +thing.roborock.vacuum.e2 = Roborock Xiaowa E Series Vacuum v2 +thing.roborock.vacuum.m1s = Mi Robot Vacuum 1S +thing.roborock.vacuum.p5 = Roborock P5 +thing.roborock.vacuum.s4 = Roborock S4 +thing.roborock.vacuum.s4v2 = Roborock Vacuum S4v2 +thing.roborock.vacuum.s5 = Roborock S5 +thing.roborock.vacuum.s5e = Roborock S5 Max +thing.roborock.vacuum.s6 = Roborock S6 +thing.roborock.vacuum.t4 = Roborock T4 +thing.roborock.vacuum.t4v2 = Roborock Vacuum T4 v2 +thing.roborock.vacuum.t4v3 = Roborock Vacuum T4 v3 +thing.roborock.vacuum.t6 = Roborock T6 +thing.roborock.vacuum.t6v2 = Roborock Vacuum T6 v2 +thing.roborock.vacuum.t6v3 = Roborock Vacuum T6 v3 +thing.roborock.vacuum.t7 = Roborock Vacuum T7 +thing.roborock.vacuum.t7p = Roborock Vacuum T7p +thing.roborock.vacuum.t7pv2 = Roborock Vacuum T7 v2 +thing.roborock.vacuum.t7pv3 = Roborock Vacuum T7 v3 +thing.roborock.vacuum.t7v2 = Roborock Vacuum T7 v2 +thing.roborock.vacuum.t7v3 = Roborock Vacuum T7 v3 +thing.rockrobo.vacuum.s6 = Roborock Vacuum S6 +thing.rockrobo.vacuum.v1 = Mi Robot Vacuum +thing.090615.switch.xswitch01 = PTX OneKey Switch (WIFI) +thing.090615.switch.xswitch02 = PTX Twokey switch(wifi) +thing.090615.switch.xswitch03 = PTX ThreeKey Switch (WIFI) +thing.scishare.coffee.s1102 = SCISHARE Smart Capsule Coffee Machine +thing.scishare.coffee.s1301 = Xiaomi Scishare Smart Capsule Coffee Machine +thing.soocare.toothbrush.x3 = Soocare Electric Toothbrush +thing.viomi.fridge.v3 = Viomi Internet Refrigerator iLive(French style 462L) +thing.viomi.vacuum.v6 = Viomi Cleaning Robot V-RVCLM21B +thing.viomi.vacuum.v7 = Mi Robot Vacuum-Mop P +thing.viomi.vacuum.v8 = Mi Robot Vacuum-Mop P +thing.viomi.vacuum.v18 = Viomi S9 +thing.viomi.waterheater.e1 = VIOMI Internet Electric Water Heater 1A (60L) +thing.xiaomi.aircondition.ma1 = Mi Inverter Air Conditioner (1.5HP) +thing.xiaomi.aircondition.ma2 = Mi Inverter Air Conditioner (1.5HP, China Energy Label Level 1) +thing.xiaomi.aircondition.ma4 = Mi Vertical Air Conditioner (2HP) +thing.xiaomi.aircondition.ma5 = Mi Smart Vertical Air Conditioner C1 (2HP / Inverter / China Energy Label Level 1) +thing.xiaomi.aircondition.ma6 = Mi Smart Air Conditioner C1 (1.5HP / Conventional / China Energy Label Level 3) +thing.xiaomi.aircondition.ma9 = Mi Smart Air Conditioner C1 (1HP / Inverter / China Energy Label Level 1) +thing.xiaomi.aircondition.mc1 = Mi Smart Air Conditioner A (1HP / Inverter / China Energy Label Level 1) +thing.xiaomi.aircondition.mc2 = Mi Smart Air Conditioner A (1.5HP / Inverter / China Energy Label Level 1) +thing.xiaomi.aircondition.mc4 = Mi Smart Air Conditioner A (1HP / Inverter / China Energy Label Level <1) +thing.xiaomi.aircondition.mc5 = Mi Smart Air Conditioner A (1.5HP / Inverter / China Energy Label Level <1) +thing.xiaomi.aircondition.mc6 = Mi Smart Vertical Air Conditioner A (2HP / Inverter / China Energy Label Level <1) +thing.xiaomi.aircondition.mc7 = Mi Smart Vertical Air Conditioner A (3HP / Inverter / China Energy Label Level <1) +thing.xiaomi.aircondition.mc8 = Mi Smart Ultra Electricity Saving Air Conditioner(1.5HP/Inverter/New China Energy Label Level 3) +thing.xiaomi.aircondition.mc9 = Mi Smart Ultra Electricity Saving Vertical Air Conditioner(2HP/Inverter/New China Energy Label Level 3) +thing.xiaomi.aircondition.c10 = Mi Smart Ultra Electricity Saving Vertical Air Conditioner (2HP/Inverter/New China Energy Label Level 1) +thing.xiaomi.aircondition.c11 = Mi Smart Ultra Electricity Saving Vertical Air Conditioner (3HP/Inverter/New China Energy Label Level 1) +thing.xiaomi.aircondition.mh1 = Mi Smart Air Conditioner C (1HP / Inverter / New China Energy Label Level 1) +thing.xiaomi.aircondition.mh2 = Mi Smart Air Conditioner C (1.5HP / Inverter / New China Energy Label Level 1) +thing.xiaomi.aircondition.mh3 = Mi Smart Ultra Electricity Saving Air Conditioner(1HP/Inverter/New China Energy Label Level 3) +thing.xiaomi.aircondition.mt1 = Mi Smart Air Conditioner X (1HP / Inverter / New China Energy Label Level 1) +thing.xiaomi.aircondition.mt2 = Mi Smart Air Conditioner X (1.5HP / Inverter / New China Energy Label Level 1) +thing.xiaomi.aircondition.mt3 = Mi Smart Gentle Breeze Air Conditioner (1HP / Inverter / New China Energy Label Level 1) +thing.xiaomi.aircondition.mt4 = Mi Smart Gentle Breeze Air Conditioner (1.5HP / Inverter / New China Energy Label Level 1) +thing.xiaomi.aircondition.mt5 = Mi Smart Gentle Breeze Vertical Air Conditioner (3HP / Inverter / New China Energy Label Level 1) +thing.xiaomi.aircondition.mt7 = Mi Smart Ultra Electricity Saving Air Conditioner (1HP/Inverter/New China Energy Label Level 1) +thing.xiaomi.aircondition.mt8 = Mi Smart Ultra Electricity Saving Air Conditioner (1.5HP/Inverter/New China Energy Label Level 1) +thing.xiaomi.repeater.v2 = Mi Wi-Fi Repeater 2 +thing.xiaomi.wifispeaker.v1 = Mi Network Speaker +thing.xjx.toilet.pro = Uclean Smart Toilet Seat +thing.xjx.toilet.pure = Uclean Smart Toilet pure +thing.xjx.toilet.relax = Uclean Smart Toilet relax +thing.xjx.toilet.zero = Whale Spout Smart Toilet Zero +thing.yeelight.bhf_light.v2 = Yeelight Smart Bath Heater +thing.yeelink.bhf_light.v1 = Yeelight Smart Bath Heater Pro +thing.yeelink.bhf_light.v2 = Yeelight Smart Bath Heater +thing.yeelink.light.bslamp1 = Mi Bedside Lamp +thing.yeelink.light.bslamp2 = Mi Bedside Lamp 2 +thing.yeelink.light.bslamp3 = Yeelight Bedside Lamp II +thing.yeelink.light.ceiling1 = Yeelight Ceiling Light +thing.yeelink.light.ceiling2 = Yeelight Ceiling Light SE +thing.yeelink.light.ceiling3 = Yeelight LED Ceiling Light +thing.yeelink.light.ceiling4 = Yeelight LED Ceiling Light +thing.yeelink.light.ceiling4.ambi = Yeelight LED Ceiling Ambi Lamp +thing.yeelink.light.ceiling5 = Mi LED Ceiling Light +thing.yeelink.light.ceiling6 = Yeelight HaoShi LED Ceiling Lamp Pro +thing.yeelink.light.ceiling7 = Yeelight Haoshi Ceiling Lamp +thing.yeelink.light.ceiling8 = LED Ceiling Light Crystal Plus +thing.yeelink.light.ceiling9 = Yeelight HaoShi LED Ceiling Lamp Pro +thing.yeelink.light.ceiling10 = Yeelight Crystal Pendant Lamp +thing.yeelink.light.ceiling10.ambi = Yeelight LED Ceiling Ambi Lamp +thing.yeelink.light.ceiling11 = Yeelight Ceiling Light 320 1S +thing.yeelink.light.ceiling12 = Yeelight Stylized Ceiling Light Pro +thing.yeelink.light.ceiling13 = Yeelight Ceiling Light +thing.yeelink.light.ceiling14 = Yeelight Ceiling Light Mini +thing.yeelink.light.ceiling15 = Yeelight Ceiling Light 480 1S +thing.yeelink.light.ceiling16 = Yeelight Xingyu Ceiling Light +thing.yeelink.light.ceiling17 = Yeelight ShaoHua Celing Light +thing.yeelink.light.ceiling18 = Yeelight Ceiling Light Pro +thing.yeelink.light.ceiling19 = Yeelight Ceiling Light Pro +thing.yeelink.light.ceiling19.ambi = Yeelight LED Ceiling Ambi Lamp +thing.yeelink.light.ceiling20 = Yeelight Ceiling Light +thing.yeelink.light.ceiling20.ambi = Yeelight LED Ceiling Ambi Lamp +thing.yeelink.light.ceiling21 = Mi Smart LED Living Room Ceiling Light +thing.yeelink.light.ceiling22 = Mi Smart LED Ceiling Light +thing.yeelink.light.ceiling23 = Mi Smart LED Ceiling Light (350mm) +thing.yeelink.light.ceil26 = Yeelight Jade Smart LED Ceiling Light C2001 +thing.yeelink.light.color1 = Yeelight Color Bulb +thing.yeelink.light.color2 = Yeelight LED Bulb (Color) +thing.yeelink.light.color3 = Mi LED Smart Bulb (White and Color) +thing.yeelink.light.color4 = Yeelight LED Bulb 1S(Color) +thing.yeelink.light.color5 = Mi Smart LED Bulb Essential (White and Color) +thing.yeelink.light.colora = Yeelight Smart LED Bulb 1SE (color) +thing.yeelink.light.ct2 = Yeelight LED Bulb (Tunable) +thing.yeelink.light.lamp1 = Mi LED Desk Lamp +thing.yeelink.light.lamp2 = Mi Smart LED Desk Lamp Pro +thing.yeelink.light.lamp3 = Yeelight LED Lamp +thing.yeelink.light.lamp4 = Mi LED Desk Lamp 1S +thing.yeelink.light.lamp5 = Yeelight Smart Desk Lamp Prime +thing.yeelink.light.lamp6 = Yeelight +thing.yeelink.light.lamp7 = Yeelight LED Light Sensor Desk Lamp V1 +thing.yeelink.light.lamp8 = Yeelight +thing.yeelink.light.lamp9 = Yeelight Star LED Table Lamp +thing.yeelink.light.lamp10 = Yeelight Star Floor Lamp +thing.yeelink.light.lamp15 = Yeelight Screen Light Bar +thing.yeelink.light.mono1 = Yeelight Bulb +thing.yeelink.light.mono2 = Yeelight White Bulb v2 +thing.yeelink.light.mono4 = Yeelight LED Bulb 1S(Dimmable) +thing.yeelink.light.mono5 = Yeelight LED Filament Bulb +thing.yeelink.light.mono6 = Mi Smart LED Bulb +thing.yeelink.light.monoa = Yeelight LED smart bulb W3(dimmable) +thing.yeelink.light.monob = Yeelight GU10 Smart Bulb W1(dimmable) +thing.yeelink.light.panel1 = Yeelight Whiteglow Panel Light +thing.yeelink.light.strip1 = Yeelight Lightstrip +thing.yeelink.light.strip2 = Yeelight Lightstrip Plus +thing.yeelink.light.strip4 = Yeelight Willow LED Lightstrip +thing.yeelink.light.virtual = Light Group (Mi & Yeelight) +thing.yeelink.switch.sw1 = Yeelight Smart Dual Control Module +thing.yeelink.wifispeaker.v1 = Yeelight Smart Speaker +thing.yilai.light.ceiling1 = Yilai Ceiling Light Aiyue 480 +thing.yilai.light.ceiling2 = Yilai Ceiling Lamp Hefeng 430 +thing.yilai.light.ceiling3 = Yilai Ceiling Lamp Hefeng Pro +thing.yunmi.waterpuri.lx2 = Mi Water Purifier lx2 +thing.yunmi.waterpuri.lx3 = Mi Water Purifier (Under Counter) +thing.yunmi.waterpuri.lx4 = Mi Water Purifier lx4 +thing.yunmi.waterpuri.lx5 = Mi Water Purifier 1A/400G Pro +thing.yunmi.waterpuri.lx6 = Mi Water Purifier (Under Counter) +thing.yunmi.waterpuri.lx7 = Mi Water Purifier 500G/500G Pro +thing.yunmi.waterpuri.lx8 = Mi Water Purifier 600G +thing.yunmi.waterpuri.lx9 = Mi Water Purifier D1 +thing.yunmi.waterpuri.lx10 = Mi Water Purifier lx10 +thing.yunmi.waterpuri.lx11 = Mi Water Purifier C1 (Triple Setting) +thing.yunmi.waterpuri.lx12 = Mi Water Purifier S1 +thing.yunmi.waterpurifier.v1 = Mi Water Purifier v1 +thing.yunmi.waterpurifier.v2 = Mi Water Purifier v2 +thing.yunmi.waterpurifier.v3 = Mi Water Purifier (Under sink) v3 +thing.yunmi.waterpurifier.v4 = Mi Water Purifier v4 +thing.zhimi.airfresh.va2 = Smartmi Ventilation System +thing.zhimi.airfresh.va4 = Smartmi Fresh Air System (Heating) +thing.zhimi.airmonitor.v1 = Mi PM2.5 Air Quality Monitor +thing.zhimi.airpurifier.m1 = Mi Air Purifier 2 (mini) +thing.zhimi.airpurifier.m2 = Mi Air Purifier 2 +thing.zhimi.airpurifier.ma1 = Mi Air Purifier 2S +thing.zhimi.airpurifier.ma2 = Mi Air Purifier 2S +thing.zhimi.airpurifier.ma4 = Mi Air Purifier 3 +thing.zhimi.airpurifier.mb1 = Mi Air Purifier 2S +thing.zhimi.airpurifier.mb3 = Mi Air Purifier 3/3H +thing.zhimi.airpurifier.mb4 = Mi Air Purifier 3C +thing.zhimi.airpurifier.mc1 = Mi Air Purifier 2S +thing.zhimi.airpurifier.mc2 = Mi Air Purifier 2H +thing.zhimi.airpurifier.sa1 = Mi Air Purifier Super +thing.zhimi.airpurifier.sa2 = Mi Air Purifier MAX / MAX Pro +thing.zhimi.airpurifier.v1 = Mi Air Purifier v1 +thing.zhimi.airpurifier.v2 = Mi Air Purifier v2 +thing.zhimi.airpurifier.v3 = Mi Air Purifier v3 +thing.zhimi.airpurifier.v5 = Mi Air Purifier v5 +thing.zhimi.airpurifier.v6 = Mi Air Purifier Pro v6 +thing.zhimi.airpurifier.v7 = Mi Air Purifier Pro v7 +thing.zhimi.airpurifier.vb2 = Mi Air Purifier Pro H +thing.zhimi.airpurifier.virtual = Mi Air Purifier virtual +thing.zhimi.airpurifier.vtl_m1 = Mi Air Purifier 2(Virtual) +thing.zhimi.airpurifier.za1 = Smartmi Air Purifier +thing.zhimi.fan.sa1 = Mi Standing Fan +thing.zhimi.fan.v1 = Mi Smart Fan +thing.zhimi.fan.v2 = Smartmi DC Pedestal Fan +thing.zhimi.fan.v3 = Smartmi DC Pedestal Fan +thing.zhimi.fan.za1 = Smartmi Inverter Pedestal Fan +thing.zhimi.fan.za3 = Smartmi Standing Fan 2 +thing.zhimi.fan.za4 = Smartmi Standing Fan 2S +thing.zhimi.fan.za5 = Smartmi Standing Fan 3 +thing.zhimi.heater.ma2 = Mi Smart Space Heater S +thing.zhimi.heater.ma3 = Mi Smart Baseboard Heater E +thing.zhimi.heater.mc2 = Mi Smart Space Heater S +thing.zhimi.heater.na1 = Smartmi Smart Fan +thing.zhimi.heater.nb1 = Smartmi Smart Fan Heater +thing.zhimi.heater.za1 = Smartmi Radiant Heater Smart Version +thing.zhimi.heater.za2 = Smartmi Smart Convector Heater 1S +thing.zhimi.heater.zb1 = Smartmi Smart Convector Heater 1S +thing.zhimi.humidifier.ca1 = Smartmi Evaporative Humidifier +thing.zhimi.humidifier.ca4 = Smartmi Evaporative Humidifer 2 +thing.zhimi.humidifier.cb1 = Smartmi Evaporative Humidifier +thing.zhimi.humidifier.cb2 = Smartmi Evaporative Humidifier +thing.zhimi.humidifier.v1 = Smartmi Humidifier +thing.zimi.clock.myk01 = Mi AI Alarm +thing.zimi.powerstrip.v2 = Mi Smart Power Strip +thing.unknown = Unknown Mi IO Device + +# Channels + +ch.090615.switch.xswitch01.switch1name = Switch Name 1 +ch.090615.switch.xswitch01.switch1state = Switch 1 +ch.090615.switch.xswitch02.switch1name = Switch Name 1 +ch.090615.switch.xswitch02.switch1state = Switch 1 +ch.090615.switch.xswitch02.switch2name = Switch Name 2 +ch.090615.switch.xswitch02.switch2state = Switch 2 +ch.090615.switch.xswitch03.switch1name = Switch Name 1 +ch.090615.switch.xswitch03.switch1state = Switch 1 +ch.090615.switch.xswitch03.switch2name = Switch Name 2 +ch.090615.switch.xswitch03.switch2state = Switch 2 +ch.090615.switch.xswitch03.switch3name = Switch Name 3 +ch.090615.switch.xswitch03.switch3state = Switch 3 +ch.careli.fryer.maf01-miot.actions = Actions +ch.careli.fryer.maf01-miot.appoint_time = Custom - Appoint Time +ch.careli.fryer.maf01-miot.appoint_time_left = Custom - Appoint Time Left +ch.careli.fryer.maf01-miot.fault = Air Fryer - Device Fault +ch.careli.fryer.maf01-miot.food_quantity = Custom - Food Quantity +ch.careli.fryer.maf01-miot.left_time = Air Fryer - Left Time +ch.careli.fryer.maf01-miot.preheat_switch = Custom - Preheat Switch +ch.careli.fryer.maf01-miot.recipe_id = Custom - Recipe Id +ch.careli.fryer.maf01-miot.recipe_name = Custom - Recipe Name +ch.careli.fryer.maf01-miot.recipe_sync = Custom - Recipe Sync +ch.careli.fryer.maf01-miot.status = Air Fryer - Status +ch.careli.fryer.maf01-miot.target_temperature = Air Fryer - Target Temperature +ch.careli.fryer.maf01-miot.target_time = Air Fryer - Target Time +ch.careli.fryer.maf01-miot.turn_pot = Custom - Turn Pot +ch.careli.fryer.maf01-miot.work_temp = Custom - Work Temp +ch.careli.fryer.maf01-miot.work_time = Custom - Work Time +ch.careli.fryer.maf02-miot.actions = Actions +ch.careli.fryer.maf02-miot.appoint_time = Custom - Appoint Time +ch.careli.fryer.maf02-miot.appoint_time_left = Custom - Appoint Time Left +ch.careli.fryer.maf02-miot.fault = Air Fryer - Device Fault +ch.careli.fryer.maf02-miot.food_quantity = Custom - Food Quantity +ch.careli.fryer.maf02-miot.left_time = Air Fryer - Left Time +ch.careli.fryer.maf02-miot.preheat_switch = Custom - Preheat Switch +ch.careli.fryer.maf02-miot.recipe_id = Custom - Recipe Id +ch.careli.fryer.maf02-miot.status = Air Fryer - Status +ch.careli.fryer.maf02-miot.target_temperature = Air Fryer - Target Temperature +ch.careli.fryer.maf02-miot.target_time = Air Fryer - Target Time +ch.careli.fryer.maf02-miot.turn_pot = Custom - Turn Pot +ch.careli.fryer.maf02-miot.work_temp = Custom - Work Temp +ch.careli.fryer.maf02-miot.work_time = Custom - Work Time +ch.cgllc.airm.cgdn1-miot.actions = Actions +ch.cgllc.airm.cgdn1-miot.battery_level = Battery - Battery Level +ch.cgllc.airm.cgdn1-miot.charging_state = Battery - Charging State +ch.cgllc.airm.cgdn1-miot.co2_density = Environment - CO2 Density +ch.cgllc.airm.cgdn1-miot.device_off = Settings - Device Off +ch.cgllc.airm.cgdn1-miot.mac = Mac - Mac +ch.cgllc.airm.cgdn1-miot.monitoring_frequency = Settings - Monitoring Frequency +ch.cgllc.airm.cgdn1-miot.pm10_density = Environment - PM10 Density +ch.cgllc.airm.cgdn1-miot.pm2_5_density = Environment - PM2 5 Density +ch.cgllc.airm.cgdn1-miot.relative_humidity = Environment - Relative Humidity +ch.cgllc.airm.cgdn1-miot.screen_off = Settings - Screen Off +ch.cgllc.airm.cgdn1-miot.tempature_unit = Settings - Tempature Unit +ch.cgllc.airm.cgdn1-miot.temperature = Environment - Temperature +ch.cgllc.airm.cgdn1-miot.voltage = Battery - Voltage +ch.cgllc.airmonitor.b1.battery = Battery +ch.cgllc.airmonitor.b1.co2 = CO2e +ch.cgllc.airmonitor.b1.humidity = Humidity +ch.cgllc.airmonitor.b1.pm25 = PM2.5 +ch.cgllc.airmonitor.b1.temperature = Temperature +ch.cgllc.airmonitor.b1.tvoc = tVOC +ch.cgllc.airmonitor.s1.battery = Battery +ch.cgllc.airmonitor.s1.co2 = CO2 +ch.cgllc.airmonitor.s1.humidity = Humidity +ch.cgllc.airmonitor.s1.pm25 = PM2.5 +ch.cgllc.airmonitor.s1.temperature = Temperature +ch.cgllc.airmonitor.s1.tvoc = tVOC +ch.chuangmi.plug.212a01-miot.countdown = Imilab Timer - Countdown +ch.chuangmi.plug.212a01-miot.countdown-info = Imilab Timer - Countdown Info +ch.chuangmi.plug.212a01-miot.electric-current = Power Consumption - Electric Current +ch.chuangmi.plug.212a01-miot.electric-power = Current Power Consumption - Electric Power +ch.chuangmi.plug.212a01-miot.off-duration = Imilab Timer - Off Duration +ch.chuangmi.plug.212a01-miot.on = Power +ch.chuangmi.plug.212a01-miot.on-duration = Imilab Timer - On Duration +ch.chuangmi.plug.212a01-miot.on1 = Indicator Light - Switch Status +ch.chuangmi.plug.212a01-miot.power-consumption = Daily Power Consumption +ch.chuangmi.plug.212a01-miot.task-switch = Imilab Timer - Task Switch +ch.chuangmi.plug.212a01-miot.temperature = Temperature +ch.chuangmi.plug.212a01-miot.voltage = Power Consumption - Voltage +ch.chuangmi.plug.212a01-miot.working-time = Working Time +ch.chuangmi.plug.m1.led = Indicator light +ch.chuangmi.plug.m1.power = Power +ch.chuangmi.plug.m1.temperature = Temperature +ch.chuangmi.plug.v1.power = Power +ch.chuangmi.plug.v1.temperature = Temperature +ch.chuangmi.plug.v1.usb = USB +ch.chuangmi.plug.v2.power = Power +ch.chuangmi.plug.v2.usb = USB +ch.chuangmi.plug.v3.led = Wifi LED +ch.chuangmi.plug.v3.power = Power +ch.chuangmi.plug.v3.temperature = Temperature +ch.chuangmi.plug.v3.usb = USB +ch.cuco.plug.cp1-miot.FirmwareRevision = Device Information-CurrentFirmware Version +ch.cuco.plug.cp1-miot.Manufacturer = Device Information-Device Manufacturer +ch.cuco.plug.cp1-miot.Model = Device Information-Device Model +ch.cuco.plug.cp1-miot.On = Switch-Switch Status +ch.cuco.plug.cp1-miot.SerialNumber = Device Information-Device Serial Number +ch.deerma.humidifier.jsq1.humidity = Humidity +ch.deerma.humidifier.jsq1.humidity_set = Humidity Setting +ch.deerma.humidifier.jsq1.led = LED indicator Light +ch.deerma.humidifier.jsq1.mode = Mode +ch.deerma.humidifier.jsq1.power = Power +ch.deerma.humidifier.jsq1.sound = Notification Sounds +ch.deerma.humidifier.jsq1.watertankstatus = Watertank Status +ch.deerma.humidifier.jsq1.wet_and_protect = Wet and Protect +ch.deerma.humidifier.mjjsq.humidity = Humidity +ch.deerma.humidifier.mjjsq.humidity_set = Humidity Setting +ch.deerma.humidifier.mjjsq.led = LED indicator Light +ch.deerma.humidifier.mjjsq.mode = Mode +ch.deerma.humidifier.mjjsq.power = Power +ch.deerma.humidifier.mjjsq.sound = Notification Sounds +ch.deerma.humidifier.mjjsq.watertankstatus = Watertank Status +ch.dmaker.airfresh.a1.airFreshCO2 = CO2 +ch.dmaker.airfresh.a1.airFreshChildLock = Child Lock +ch.dmaker.airfresh.a1.airFreshCurrentSpeed = Current Speed +ch.dmaker.airfresh.a1.airFreshDisplay = Display +ch.dmaker.airfresh.a1.airFreshFavoriteSpeed = Favorite Speed +ch.dmaker.airfresh.a1.airFreshFilterDays = Filter Days Remaining +ch.dmaker.airfresh.a1.airFreshFilterPercents = Filter Percents Remaining +ch.dmaker.airfresh.a1.airFreshMode = Mode +ch.dmaker.airfresh.a1.airFreshPM25 = PM2.5 +ch.dmaker.airfresh.a1.airFreshPTCPower = PTC +ch.dmaker.airfresh.a1.airFreshPTCStatus = PTC Status +ch.dmaker.airfresh.a1.airFreshResetFilterA1 = Reset Filter +ch.dmaker.airfresh.a1.airFreshSound = Sound +ch.dmaker.airfresh.a1.airFreshTemperature = Temperature Outside +ch.dmaker.airfresh.a1.power = Power +ch.dmaker.airfresh.t2017.airFreshCO2 = CO2 +ch.dmaker.airfresh.t2017.airFreshChildLock = Child Lock +ch.dmaker.airfresh.t2017.airFreshCurrentSpeed = Current Speed +ch.dmaker.airfresh.t2017.airFreshDisplay = Display +ch.dmaker.airfresh.t2017.airFreshDisplayDirection = Screen direction +ch.dmaker.airfresh.t2017.airFreshFavoriteSpeed = Favorite Speed +ch.dmaker.airfresh.t2017.airFreshFilterDays = Filter Days Remaining +ch.dmaker.airfresh.t2017.airFreshFilterPercents = Filter Percents Remaining +ch.dmaker.airfresh.t2017.airFreshFilterProDays = Filter Pro Days Remaining +ch.dmaker.airfresh.t2017.airFreshFilterProPercents = Filter Pro Percents Remaining +ch.dmaker.airfresh.t2017.airFreshMode = Mode +ch.dmaker.airfresh.t2017.airFreshPM25 = PM2.5 +ch.dmaker.airfresh.t2017.airFreshPTCPower = PTC +ch.dmaker.airfresh.t2017.airFreshPTCStatus = PTC Status +ch.dmaker.airfresh.t2017.airFreshPtcLevel = PTC Level +ch.dmaker.airfresh.t2017.airFreshResetFilter = Reset Filter +ch.dmaker.airfresh.t2017.airFreshSound = Sound +ch.dmaker.airfresh.t2017.airFreshTemperature = Temperature Outside +ch.dmaker.airfresh.t2017.power = Power +ch.dmaker.fan.p15-miot.actions = Actions +ch.dmaker.fan.p15-miot.alarm = Alarm - Alarm +ch.dmaker.fan.p15-miot.fan_level = Fan - Gear Fan Level +ch.dmaker.fan.p15-miot.fault = Motor Controller - Device Fault +ch.dmaker.fan.p15-miot.horizontal_angle = Fan - Horizontal Angle +ch.dmaker.fan.p15-miot.horizontal_swing = Fan - Horizontal Swing +ch.dmaker.fan.p15-miot.mode = Fan - Mode +ch.dmaker.fan.p15-miot.off_delay_time = Off Delay Time - Off Delay Time +ch.dmaker.fan.p15-miot.on = Fan - Switch Status +ch.dmaker.fan.p15-miot.on1 = Indicator Light - Switch Status +ch.dmaker.fan.p15-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.dmaker.fan.p15-miot.status = Fan - Status +ch.dmaker.fan.p18-miot.actions = Actions +ch.dmaker.fan.p18-miot.alarm = Fan - Alarm +ch.dmaker.fan.p18-miot.brightness = Fan - Brightness +ch.dmaker.fan.p18-miot.fan_level = Fan - Fan Level +ch.dmaker.fan.p18-miot.horizontal_angle = Fan - Horizontal Angle +ch.dmaker.fan.p18-miot.horizontal_swing = Fan - Horizontal Swing +ch.dmaker.fan.p18-miot.mode = Fan - Mode +ch.dmaker.fan.p18-miot.motor_control = Fan - Motor Control +ch.dmaker.fan.p18-miot.off_delay_time = Fan - Power Off Delay Time +ch.dmaker.fan.p18-miot.on = Fan - Switch Status +ch.dmaker.fan.p18-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.dmaker.fan.p18-miot.speed_level = Fan - Speed Level +ch.dmaker.fan.p5.angle = Angle +ch.dmaker.fan.p5.beep = Beep Sound +ch.dmaker.fan.p5.child_lock = Child Lock +ch.dmaker.fan.p5.light = Light +ch.dmaker.fan.p5.mode = Mode +ch.dmaker.fan.p5.power = Power +ch.dmaker.fan.p5.roll = Rotation +ch.dmaker.fan.p5.speed = Speed +ch.dmaker.fan.p5.timer = Timer +ch.dmaker.fan.p8-miot.Alarm = Fan-Alarm +ch.dmaker.fan.p8-miot.Brightness = Fan-Brightness +ch.dmaker.fan.p8-miot.FanLevel = Fan-Fan Level +ch.dmaker.fan.p8-miot.HorizontalSwing = Fan-Horizontal Swing +ch.dmaker.fan.p8-miot.Mode = Fan-Mode +ch.dmaker.fan.p8-miot.OffDelayTime = Fan-Power Off Delay Time +ch.dmaker.fan.p8-miot.On = Fan - Switch Status +ch.dmaker.fan.p8-miot.PhysicalControlsLocked = Physical Control Locked-Physical Control Locked +ch.dmaker.fan.p8-miot.actions = Actions +ch.dmaker.fan.p9-miot.Alarm = Fan-Alarm +ch.dmaker.fan.p9-miot.Brightness = Fan-Brightness +ch.dmaker.fan.p9-miot.FanLevel = Fan-Fan Level +ch.dmaker.fan.p9-miot.HorizontalAngle = Fan-Horizontal Angle +ch.dmaker.fan.p9-miot.HorizontalSwing = Fan-Horizontal Swing +ch.dmaker.fan.p9-miot.Mode = Fan-Mode +ch.dmaker.fan.p9-miot.MotorControl = Fan-Motor Control +ch.dmaker.fan.p9-miot.OffDelayTime = Fan - Power Off Delay Time +ch.dmaker.fan.p9-miot.On = Fan-Switch Status +ch.dmaker.fan.p9-miot.PhysicalControlsLocked = Physical Control Locked-Physical Control Locked +ch.dmaker.fan.p9-miot.SpeedLevel = Fan-Speed Level +ch.dmaker.fan.p9-miot.actions = Actions +ch.dreame.vacuum.mc1808-miot.Area = clean-area +ch.dreame.vacuum.mc1808-miot.BatteryLevel = Battery-Battery Level +ch.dreame.vacuum.mc1808-miot.BrushLeftTime = Main Cleaning Brush-Brush Left Time +ch.dreame.vacuum.mc1808-miot.BrushLeftTime1 = Side Cleaning Brush-Brush Left Time +ch.dreame.vacuum.mc1808-miot.BrushLifeLevel = Main Cleaning Brush-Brush Life Level +ch.dreame.vacuum.mc1808-miot.BrushLifeLevel1 = Side Cleaning Brush-Brush Life Level +ch.dreame.vacuum.mc1808-miot.ButtonLed = Clean - Button Led +ch.dreame.vacuum.mc1808-miot.ChargingState = Battery-Charging State +ch.dreame.vacuum.mc1808-miot.CleanLogStartTime = Clean - Clean Log Start Time +ch.dreame.vacuum.mc1808-miot.Enable = Annoy - Enable +ch.dreame.vacuum.mc1808-miot.Fault = Robot Cleaner-Device Fault +ch.dreame.vacuum.mc1808-miot.FilterLeftTime = Filter-Filter Left Time +ch.dreame.vacuum.mc1808-miot.FilterLifeLevel = Filter - Filter Life Level +ch.dreame.vacuum.mc1808-miot.LifeBrushMain = Consumable - Life Brush Main +ch.dreame.vacuum.mc1808-miot.LifeBrushSide = Consumable - Life Brush Side +ch.dreame.vacuum.mc1808-miot.LifeSieve = Consumable - Life Sieve +ch.dreame.vacuum.mc1808-miot.MapView = Map - Map View +ch.dreame.vacuum.mc1808-miot.Mode = clean-mode +ch.dreame.vacuum.mc1808-miot.StartTime = Annoy - Start Time +ch.dreame.vacuum.mc1808-miot.Status = Robot Cleaner-Status +ch.dreame.vacuum.mc1808-miot.StopTime = Annoy - Stop Time +ch.dreame.vacuum.mc1808-miot.TaskDone = Clean - Task Done +ch.dreame.vacuum.mc1808-miot.TimeZone = Time - Time Zone +ch.dreame.vacuum.mc1808-miot.Timer = clean-timer +ch.dreame.vacuum.mc1808-miot.TotalCleanArea = Clean - Total Clean Area +ch.dreame.vacuum.mc1808-miot.TotalCleanTime = Clean - Total Clean Time +ch.dreame.vacuum.mc1808-miot.TotalCleanTimes = Clean - Total Clean Times +ch.dreame.vacuum.mc1808-miot.VoicePackets = Audio - Voice Packets +ch.dreame.vacuum.mc1808-miot.Volume = Audio - Volume +ch.dreame.vacuum.mc1808-miot.WorkMode = clean-workmode +ch.dreame.vacuum.mc1808-miot.vacuumaction = Vacuum Action +ch.dreame.vacuum.mc1808-miot.water-mode = Water Mode +ch.dreame.vacuum.p2008-miot.battery-level = Battery - Battery Level +ch.dreame.vacuum.p2008-miot.break-point-restart = Vacuum Extend - Break Point Restart +ch.dreame.vacuum.p2008-miot.brush-left-time = Main Cleaning Brush - Brush Left Time +ch.dreame.vacuum.p2008-miot.brush-left-time1 = Side Cleaning Brush - Brush Left Time +ch.dreame.vacuum.p2008-miot.brush-life-level = Main Cleaning Brush - Brush Life Level +ch.dreame.vacuum.p2008-miot.brush-life-level1 = Side Cleaning Brush - Brush Life Level +ch.dreame.vacuum.p2008-miot.carpet-press = Vacuum Extend - Carpet Press +ch.dreame.vacuum.p2008-miot.charging-state = Battery - Charging State +ch.dreame.vacuum.p2008-miot.cleaning-area = Vacuum Extend - Cleaning Area +ch.dreame.vacuum.p2008-miot.cleaning-mode = Vacuum Extend - Cleaning Mode +ch.dreame.vacuum.p2008-miot.cleaning-time = Vacuum Extend - Cleaning Time +ch.dreame.vacuum.p2008-miot.enable = Do Not Disturb - Enable +ch.dreame.vacuum.p2008-miot.end-time = Do Not Disturb - End Time +ch.dreame.vacuum.p2008-miot.fault = Robot Cleaner - Device Fault +ch.dreame.vacuum.p2008-miot.filter-left-time = Filter - Filter Left Time +ch.dreame.vacuum.p2008-miot.filter-life-level = Filter - Filter Life Level +ch.dreame.vacuum.p2008-miot.first-clean-time = Clean Logs - First Clean Time +ch.dreame.vacuum.p2008-miot.mop-mode = Vacuum Extend - Mop Mode +ch.dreame.vacuum.p2008-miot.save-map-status = Vslam Extend - Save Map Status +ch.dreame.vacuum.p2008-miot.start-time = Do Not Disturb - Start Time +ch.dreame.vacuum.p2008-miot.status = Robot Cleaner - Status +ch.dreame.vacuum.p2008-miot.task-status = Vacuum Extend - Task Status +ch.dreame.vacuum.p2008-miot.time-zone = Time - Time Zone +ch.dreame.vacuum.p2008-miot.timer-clean = Time - Timer Clean +ch.dreame.vacuum.p2008-miot.total-clean-area = Clean Logs - Total Clean Area +ch.dreame.vacuum.p2008-miot.total-clean-time = Clean Logs - Total Clean Time +ch.dreame.vacuum.p2008-miot.total-clean-times = Clean Logs - Total Clean Times +ch.dreame.vacuum.p2008-miot.voice-change-state = Audio - Voice Change State +ch.dreame.vacuum.p2008-miot.voice-packet-id = Audio - Voice Packet Id +ch.dreame.vacuum.p2008-miot.volume = Audio - Volume +ch.dreame.vacuum.p2008-miot.waterbox-status = Vacuum Extend - Waterbox Status +ch.dreame.vacuum.p2008-miot.work-mode = Vacuum Extend - Work Mode +ch.dreame.vacuum.p2009-miot.battery-level = Battery - Battery Level +ch.dreame.vacuum.p2009-miot.break-point-restart = Vacuum Extend - Break Point Restart +ch.dreame.vacuum.p2009-miot.brush-left-time = Main Cleaning Brush - Brush Left Time +ch.dreame.vacuum.p2009-miot.brush-left-time1 = Side Cleaning Brush - Brush Left Time +ch.dreame.vacuum.p2009-miot.brush-life-level = Main Cleaning Brush - Brush Life Level +ch.dreame.vacuum.p2009-miot.brush-life-level1 = Side Cleaning Brush - Brush Life Level +ch.dreame.vacuum.p2009-miot.carpet-press = Vacuum Extend - Carpet Press +ch.dreame.vacuum.p2009-miot.charging-state = Battery - Charging State +ch.dreame.vacuum.p2009-miot.clean-rags-tip = Vacuum Extend - Clean Rags Tip +ch.dreame.vacuum.p2009-miot.cleaning-area = Vacuum Extend - Cleaning Area +ch.dreame.vacuum.p2009-miot.cleaning-mode = Vacuum Extend - Cleaning Mode +ch.dreame.vacuum.p2009-miot.cleaning-time = Vacuum Extend - Cleaning Time +ch.dreame.vacuum.p2009-miot.enable = Do Not Disturb - Enable +ch.dreame.vacuum.p2009-miot.end-time = Do Not Disturb - End Time +ch.dreame.vacuum.p2009-miot.fault = Robot Cleaner - Device Fault +ch.dreame.vacuum.p2009-miot.faults = Vacuum Extend - Faults +ch.dreame.vacuum.p2009-miot.filter-left-time = Filter - Filter Left Time +ch.dreame.vacuum.p2009-miot.filter-life-level = Filter - Filter Life Level +ch.dreame.vacuum.p2009-miot.first-clean-time = Clean Logs - First Clean Time +ch.dreame.vacuum.p2009-miot.keep-sweeper-time = Vacuum Extend - Keep Sweeper Time +ch.dreame.vacuum.p2009-miot.mop-mode = Vacuum Extend - Mop Mode +ch.dreame.vacuum.p2009-miot.resetConsumable = Consumables Reset +ch.dreame.vacuum.p2009-miot.serial-number1 = Vacuum Extend - Serial Number +ch.dreame.vacuum.p2009-miot.start-time = Do Not Disturb - Start Time +ch.dreame.vacuum.p2009-miot.status = Robot Cleaner - Status +ch.dreame.vacuum.p2009-miot.task-status = Vacuum Extend - Task Status +ch.dreame.vacuum.p2009-miot.time-zone = Time - Time Zone +ch.dreame.vacuum.p2009-miot.timer-clean = Time - Timer Clean +ch.dreame.vacuum.p2009-miot.total-clean-area = Clean Logs - Total Clean Area +ch.dreame.vacuum.p2009-miot.total-clean-time = Clean Logs - Total Clean Time +ch.dreame.vacuum.p2009-miot.total-clean-times = Clean Logs - Total Clean Times +ch.dreame.vacuum.p2009-miot.vacuumaction = Vacuum Action +ch.dreame.vacuum.p2009-miot.voice-change-state = Audio - Voice Change State +ch.dreame.vacuum.p2009-miot.voice-packet-id = Audio - Voice Packet Id +ch.dreame.vacuum.p2009-miot.volume = Audio - Volume +ch.dreame.vacuum.p2009-miot.waterbox-status = Vacuum Extend - Waterbox Status +ch.dreame.vacuum.p2009-miot.work-mode = Vacuum Extend - Work Mode +ch.dreame.vacuum.p2156o-miot.actions = Actions +ch.dreame.vacuum.p2156o-miot.battery_level = Battery - Battery Level +ch.dreame.vacuum.p2156o-miot.break_point_restart = Vacuum Extend - Break Point Restart +ch.dreame.vacuum.p2156o-miot.brush_left_time = Main Cleaning Brush - Brush Left Time +ch.dreame.vacuum.p2156o-miot.brush_left_time1 = Side Cleaning Brush - Brush Left Time +ch.dreame.vacuum.p2156o-miot.brush_life_level = Main Cleaning Brush - Brush Life Level +ch.dreame.vacuum.p2156o-miot.brush_life_level1 = Side Cleaning Brush - Brush Life Level +ch.dreame.vacuum.p2156o-miot.carpet_press = Vacuum Extend - Carpet Press +ch.dreame.vacuum.p2156o-miot.charging_state = Battery - Charging State +ch.dreame.vacuum.p2156o-miot.cleaning-area = Vacuum Extend - Cleaning Area +ch.dreame.vacuum.p2156o-miot.cleaning_mode = Vacuum Extend - Cleaning Mode +ch.dreame.vacuum.p2156o-miot.cleaning_time = Vacuum Extend - Cleaning Time +ch.dreame.vacuum.p2156o-miot.enable = Do Not Disturb - Enable +ch.dreame.vacuum.p2156o-miot.end_time = Do Not Disturb - End Time +ch.dreame.vacuum.p2156o-miot.fault = Robot Cleaner - Device Fault +ch.dreame.vacuum.p2156o-miot.faults = Vacuum Extend - Faults +ch.dreame.vacuum.p2156o-miot.filter_left_time = Filter - Filter Left Time +ch.dreame.vacuum.p2156o-miot.filter_life_level = Filter - Filter Life Level +ch.dreame.vacuum.p2156o-miot.first_clean_time = Clean Logs - First Clean Time +ch.dreame.vacuum.p2156o-miot.keep_sweeper_time = Vacuum Extend - Keep Sweeper Time +ch.dreame.vacuum.p2156o-miot.mode = Robot Cleaner - Mode +ch.dreame.vacuum.p2156o-miot.mop_mode = Vacuum Extend - Mop Mode +ch.dreame.vacuum.p2156o-miot.save_map_status = Vslam Extend - Save Map Status +ch.dreame.vacuum.p2156o-miot.serial_number = Vacuum Extend - Serial Number +ch.dreame.vacuum.p2156o-miot.start_time = Do Not Disturb - Start Time +ch.dreame.vacuum.p2156o-miot.status = Robot Cleaner - Status +ch.dreame.vacuum.p2156o-miot.task_status = Vacuum Extend - Task Status +ch.dreame.vacuum.p2156o-miot.time_zone = Time - Time Zone +ch.dreame.vacuum.p2156o-miot.timer_clean = Time - Timer Clean +ch.dreame.vacuum.p2156o-miot.total_clean_area = Clean Logs - Total Clean Area +ch.dreame.vacuum.p2156o-miot.total_clean_time = Clean Logs - Total Clean Time +ch.dreame.vacuum.p2156o-miot.total_clean_times = Clean Logs - Total Clean Times +ch.dreame.vacuum.p2156o-miot.voice_change_state = Audio - Voice Change State +ch.dreame.vacuum.p2156o-miot.voice_packet_id = Audio - Voice Packet Id +ch.dreame.vacuum.p2156o-miot.volume = Audio - Volume +ch.dreame.vacuum.p2156o-miot.waterbox_status = Vacuum Extend - Waterbox Status +ch.dreame.vacuum.p2156o-miot.work_mode = Vacuum Extend - Work Mode +ch.huayi.light.fanwy-miot.brightness = Light - Brightness +ch.huayi.light.fanwy-miot.color-temperature = Light - Color Temperature +ch.huayi.light.fanwy-miot.fan-level = Fan - Fan Level +ch.huayi.light.fanwy-miot.mode = Fan - Mode +ch.huayi.light.fanwy-miot.motor-reverse = Fan - Motor Reverse +ch.huayi.light.fanwy-miot.on = Light - Power +ch.huayi.light.fanwy-miot.on1 = Fan - Power +ch.huayi.light.fanwy2-miot.brightness = Light - Brightness +ch.huayi.light.fanwy2-miot.color-temperature = Light - Color Temperature +ch.huayi.light.fanwy2-miot.fan-level = Fan - Fan Level +ch.huayi.light.fanwy2-miot.flabellum = Presets - Flabellum +ch.huayi.light.fanwy2-miot.mode = Fan - Mode +ch.huayi.light.fanwy2-miot.on = Light - Power +ch.huayi.light.fanwy2-miot.on1 = Fan - Power +ch.huayi.light.fanwy2-miot.pre-brightness = Presets - Pre Brightness +ch.huayi.light.fanwy2-miot.pre-colortemp = Presets - Pre Colortemp +ch.huayi.light.fanwy2-miot.pre-custom = Presets - Pre Custom +ch.huayi.light.fanwy2-miot.pre-speed = Presets - Pre Speed +ch.huayi.light.fanwy2-miot.reversal = Presets - Reversal +ch.huayi.light.fanwy2-miot.time-off = Presets - Time Off +ch.huayi.light.pis123-miot.brightness = Light - Brightness +ch.huayi.light.pis123-miot.color-temperature = Light - Color Temperature +ch.huayi.light.pis123-miot.on = Light - Power +ch.huayi.light.wy200-miot.brightness = Light - Brightness +ch.huayi.light.wy200-miot.color-temperature = Light - Color Temperature +ch.huayi.light.wy200-miot.on = Light - Power +ch.huayi.light.wyheat-miot.brightness = Light - Brightness +ch.huayi.light.wyheat-miot.color-temperature = Light - Color Temperature +ch.huayi.light.wyheat-miot.fault = Heater - Device Fault +ch.huayi.light.wyheat-miot.heat-level = Heater - Heat Level +ch.huayi.light.wyheat-miot.on = Light - Power +ch.huayi.light.wyheat-miot.on1 = Heater - Power +ch.huayi.light.wyheat-miot.screenshow = Other - Screenshow +ch.lumi.curtain.hagl05-miot.current-position = Curtain - Current Position +ch.lumi.curtain.hagl05-miot.en-night-tip-light = Set Night Tip Light +ch.lumi.curtain.hagl05-miot.fault = Curtain - Device Fault +ch.lumi.curtain.hagl05-miot.manual-enabled = curtain_cfg - Manual Enabled +ch.lumi.curtain.hagl05-miot.polarity = curtain_cfg - Polarity +ch.lumi.curtain.hagl05-miot.pos-limit = curtain_cfg - Position Limit +ch.lumi.curtain.hagl05-miot.run-time = curtain_cfg - Run-time +ch.lumi.curtain.hagl05-miot.status = Curtain - Status +ch.lumi.curtain.hagl05-miot.target-position = Curtain - Target Position +ch.lumi.gateway.alarmingVol = Alarming Volume +ch.lumi.gateway.doorbellPush = Doorbell Push +ch.lumi.gateway.doorbellVol = Doorbell Volume +ch.lumi.gateway.gatewayVol = Gateway Volume +ch.lumi.gateway.mieu01.alarming_volume = Alarming Volume +ch.lumi.gateway.mieu01.arming_time = Arming Time +ch.lumi.gateway.mieu01.corridor = Automatic Night Light +ch.lumi.gateway.mieu01.corridor_on_time = Corridor on time +ch.lumi.gateway.mieu01.doorbell_push = Doorbell Push +ch.lumi.gateway.mieu01.doorbell_volume = Doorbell Volume +ch.lumi.gateway.mieu01.gateway_volume = Gateway Volume +ch.lumi.gateway.mieu01.guard = Guard +ch.lumi.gateway.mieu01.language = Voice prompt Language +ch.lumi.gateway.mieu01.lumi_bind = Lumi_bind info +ch.lumi.gateway.mieu01.nightlight = Night Light +ch.lumi.gateway.mieu01.rgb = Colored Light +ch.lumi.gateway.mieu01.zigbee_channel = Zigbee Channel +ch.lumi.gateway.telnetEnable = Enable Telnet +ch.mijia.vacuum.v2-miot.alarm = Alarm - Alarm +ch.mijia.vacuum.v2-miot.battery-level = Battery - Battery Level +ch.mijia.vacuum.v2-miot.brush-left-time = Brush Cleaner - Brush Left Time +ch.mijia.vacuum.v2-miot.brush-left-time1 = Brush Cleaner - Brush Left Time +ch.mijia.vacuum.v2-miot.brush-life-level = Brush Cleaner - Brush Life Level +ch.mijia.vacuum.v2-miot.brush-life-level1 = Brush Cleaner - Brush Life Level +ch.mijia.vacuum.v2-miot.charging-state = Battery - Charging State +ch.mijia.vacuum.v2-miot.clean-area = Clean Record - Clean Area +ch.mijia.vacuum.v2-miot.clean_time = Clean Record - Clean Time +ch.mijia.vacuum.v2-miot.direction_key = Remote Control - Direction Key +ch.mijia.vacuum.v2-miot.fan-level = Robot Cleaner - Fan Level +ch.mijia.vacuum.v2-miot.fault = Robot Cleaner - Device Fault +ch.mijia.vacuum.v2-miot.filter-left-time = Filter - Filter Left Time +ch.mijia.vacuum.v2-miot.filter_life_level = Filter - Filter Life Level +ch.mijia.vacuum.v2-miot.language = Language - Language +ch.mijia.vacuum.v2-miot.mode = Robot Cleaner - Mode +ch.mijia.vacuum.v2-miot.mop-status = Other Status - Mop Status +ch.mijia.vacuum.v2-miot.not-disturb-switch = Language - Not Disturb Switch +ch.mijia.vacuum.v2-miot.status = Robot Cleaner - Status +ch.mijia.vacuum.v2-miot.target-water-level = Robot Cleaner - Target Water Level +ch.mijia.vacuum.v2-miot.total-clean-area = Clean Record - Total Clean Area +ch.mijia.vacuum.v2-miot.total-clean-count = Clean Record - Total Clean Count +ch.mijia.vacuum.v2-miot.total-clean-time = Clean Record - Total Clean Time +ch.mijia.vacuum.v2-miot.vacuumaction = Vacuum Action +ch.mijia.vacuum.v2-miot.volume = Alarm - Volume +ch.mmgg.pet_waterer.s1-miot.cotton-left-time = Filter Cotton - Cotton Left Time +ch.mmgg.pet_waterer.s1-miot.fault = Pet Drinking Fountain - Device Fault +ch.mmgg.pet_waterer.s1-miot.filter-left-time = Filter - Filter Left Time +ch.mmgg.pet_waterer.s1-miot.mode = Mode +ch.mmgg.pet_waterer.s1-miot.no-water-flag = No Water Flag - No Water Flag +ch.mmgg.pet_waterer.s1-miot.no-water-time = No Water Flag - No Water Time +ch.mmgg.pet_waterer.s1-miot.on = Power +ch.mmgg.pet_waterer.s1-miot.on1 = Indicator Light - Switch +ch.mmgg.pet_waterer.s1-miot.remain-clean-time = Remain Clean Time - Remain Clean Time +ch.mmgg.pet_waterer.s1-miot.resetConsumable = Consumables Reset +ch.mmgg.pet_waterer.s2-miot.cotton-left-time = Filter Cotton - Cotton Left Time +ch.mmgg.pet_waterer.s2-miot.fault = Pet Drinking Fountain - Device Fault +ch.mmgg.pet_waterer.s2-miot.filter-left-time = Filter - Filter Left Time +ch.mmgg.pet_waterer.s2-miot.mode = Mode +ch.mmgg.pet_waterer.s2-miot.no-water-flag = No Water Flag - No Water Flag +ch.mmgg.pet_waterer.s2-miot.no-water-time = No Water Flag - No Water Time +ch.mmgg.pet_waterer.s2-miot.on = Power +ch.mmgg.pet_waterer.s2-miot.on1 = Indicator Light - Switch +ch.mmgg.pet_waterer.s2-miot.pump-block-flag = No Water Flag - Pump Block Flag +ch.mmgg.pet_waterer.s2-miot.remain-clean-time = Remain Clean Time - Remain Clean Time +ch.mmgg.pet_waterer.s2-miot.resetConsumable = Consumables Reset +ch.mrbond.airer.m1pro.airer_location = Airer Location +ch.mrbond.airer.m1pro.disinfect = disinfect +ch.mrbond.airer.m1pro.distime = Disinfect Time +ch.mrbond.airer.m1pro.dry = Dry +ch.mrbond.airer.m1pro.drytime = Dry Time +ch.mrbond.airer.m1pro.led = LED Status +ch.mrbond.airer.m1pro.motor = Motor +ch.nwt.derh.wdh318efw1.alarm = Alarm +ch.nwt.derh.wdh318efw1.autohumidity = Auto humidity +ch.nwt.derh.wdh318efw1.buzzer = Buzzer +ch.nwt.derh.wdh318efw1.childlock = Child Lock +ch.nwt.derh.wdh318efw1.compressorstatus = Compressor Status +ch.nwt.derh.wdh318efw1.defroststatus = Defrost Status +ch.nwt.derh.wdh318efw1.fanspeed = Fan Speed +ch.nwt.derh.wdh318efw1.fanst = Fan St +ch.nwt.derh.wdh318efw1.humidity = Humidity +ch.nwt.derh.wdh318efw1.led = LED +ch.nwt.derh.wdh318efw1.mode = Mode +ch.nwt.derh.wdh318efw1.power = Power +ch.nwt.derh.wdh318efw1.tankfull = Tank Full +ch.nwt.derh.wdh318efw1.temperature = Temperature +ch.philips.light.bceiling1.ac = Auto Ambiance +ch.philips.light.bceiling1.bl = Night Light +ch.philips.light.bceiling1.brightness = Brightness +ch.philips.light.bceiling1.cct = Correlated Color Temperature +ch.philips.light.bceiling1.delayoff = Delay Off +ch.philips.light.bceiling1.dv = DV +ch.philips.light.bceiling1.mb = MiBand +ch.philips.light.bceiling1.ms = MiBand Notifications +ch.philips.light.bceiling1.power = Power +ch.philips.light.bceiling1.scene = Scene +ch.philips.light.bceiling1.sw = Switch +ch.philips.light.bulb.brightness = Brightness +ch.philips.light.bulb.cct = Correlated Color Temperature +ch.philips.light.bulb.delayoff = Delay Off +ch.philips.light.bulb.dv = DV +ch.philips.light.bulb.power = Power +ch.philips.light.bulb.scene = Scene +ch.philips.light.bulb.switchscene = Switch Scene +ch.philips.light.candle.brightness = Brightness +ch.philips.light.candle.cct = Correlated Color Temperature +ch.philips.light.candle.delayoff = Delay Off +ch.philips.light.candle.power = Power +ch.philips.light.candle.scene = Scene +ch.philips.light.candle.toggle = Toggle +ch.philips.light.cbulb.brightness = Brightness +ch.philips.light.cbulb.cct = Correlated Color Temperature +ch.philips.light.cbulb.cid = Color +ch.philips.light.cbulb.delayoff = Delay Off +ch.philips.light.cbulb.power = Power +ch.philips.light.cbulb.scene = Scene +ch.philips.light.cbulb.switch_en = Switch Enabled +ch.philips.light.cbulb.switchscene = Switch Scene +ch.philips.light.ceil-miot.MibandStatus = Mi Band Status +ch.philips.light.ceil-miot.WallScene = Wall Scene +ch.philips.light.ceil-miot.WallSceneEn = Wall Scene Enable +ch.philips.light.ceil-miot.autoCct = Auto CCT +ch.philips.light.ceil-miot.brightness = Brightness +ch.philips.light.ceil-miot.cct = Color Temperature +ch.philips.light.ceil-miot.dimmingPeriod = Dimming Period +ch.philips.light.ceil-miot.dv = Delayed Turn-off +ch.philips.light.ceil-miot.mode = Mode +ch.philips.light.ceil-miot.on = Power +ch.philips.light.ceiling.brightness = Brightness +ch.philips.light.ceiling.cct = Correlated Color Temperature +ch.philips.light.ceiling.power = Power +ch.philips.light.ceiling.scene = Scene +ch.philips.light.ceiling.switchscene = Switch Scene +ch.philips.light.ceiling.toggle = Toggle +ch.philips.light.mono.brightness = Brightness +ch.philips.light.mono.power = Power +ch.philips.light.mono.scene = Scene +ch.philips.light.moonlight.brightness = Brightness +ch.philips.light.moonlight.cct = Correlated Color Temperature +ch.philips.light.moonlight.delayoff = Delay Off +ch.philips.light.moonlight.dv = DV +ch.philips.light.moonlight.gonight = Go Night +ch.philips.light.moonlight.power = Power +ch.philips.light.moonlight.scene = Scene +ch.philips.light.moonlight.toggle = Toggle +ch.philips.light.rwread.brightness = Brightness +ch.philips.light.rwread.dv = DV +ch.philips.light.rwread.flm = Follow Me +ch.philips.light.rwread.power = Power +ch.philips.light.rwread.scene = Scene +ch.philips.light.sread1.ambientBrightness = Ambient Brightness +ch.philips.light.sread1.ambientPower = Ambient Power +ch.philips.light.sread1.bl = Night Light +ch.philips.light.sread1.brightness = Brightness +ch.philips.light.sread1.eyecare = Eyecare +ch.philips.light.sread1.illumination = Ambient Illumination +ch.philips.light.sread1.power = Power +ch.qmi.powerstrip.v1.current = Current +ch.qmi.powerstrip.v1.elec_leakage = Electic Leakage +ch.qmi.powerstrip.v1.led = wifi LED +ch.qmi.powerstrip.v1.mode = Mode +ch.qmi.powerstrip.v1.power = Power +ch.qmi.powerstrip.v1.powerUsage = Power Consumption +ch.qmi.powerstrip.v1.power_factor = Power Factor +ch.qmi.powerstrip.v1.power_price = Power Price +ch.qmi.powerstrip.v1.temperature = Temperature +ch.qmi.powerstrip.v1.voltage = Voltage +ch.scishare.coffee.s1102.Status = status +ch.scishare.coffee.s1102.boil = Boil water +ch.scishare.coffee.s1102.expresso = Brew Americano +ch.scishare.coffee.s1102.power = Power +ch.viomi.vacuum.v18-miot.auto-area-id = Map - Auto Area Id +ch.viomi.vacuum.v18-miot.battery-level = Battery - Battery Level +ch.viomi.vacuum.v18-miot.clean-area = Viomi Vacuum - Clean Area +ch.viomi.vacuum.v18-miot.clean-map-url = Viomi Vacuum - Clean Map Url +ch.viomi.vacuum.v18-miot.clean-mode = Viomi Vacuum - Clean Mode +ch.viomi.vacuum.v18-miot.clean-start-time = Viomi Vacuum - Clean Start Time +ch.viomi.vacuum.v18-miot.clean-use-time = Viomi Vacuum - Clean Use Time +ch.viomi.vacuum.v18-miot.clean-way = Viomi Vacuum - Clean Way +ch.viomi.vacuum.v18-miot.contact-state = Robot Cleaner - Contact State +ch.viomi.vacuum.v18-miot.contact-state1 = Robot Cleaner - Contact State +ch.viomi.vacuum.v18-miot.contact-state2 = Robot Cleaner - Contact State +ch.viomi.vacuum.v18-miot.cur-cleaning-path = Map - Cur Cleaning Path +ch.viomi.vacuum.v18-miot.cur-lang = Viomi Vacuum - Cur Lang +ch.viomi.vacuum.v18-miot.cur-map-id = Viomi Vacuum - Cur Map Id +ch.viomi.vacuum.v18-miot.cur-map-url = Viomi Vacuum - Cur Map Url +ch.viomi.vacuum.v18-miot.cur-voice = Voice - Cur Voice +ch.viomi.vacuum.v18-miot.dnd-enable = Order - Dnd Enable +ch.viomi.vacuum.v18-miot.dnd-end-hour = Order - Dnd End Hour +ch.viomi.vacuum.v18-miot.dnd-end-minute = Order - Dnd End Minute +ch.viomi.vacuum.v18-miot.dnd-start-hour = Order - Dnd Start Hour +ch.viomi.vacuum.v18-miot.dnd-start-minute = Order - Dnd Start Minute +ch.viomi.vacuum.v18-miot.dnd-timezone = Order - Dnd Timezone +ch.viomi.vacuum.v18-miot.door-state = Robot Cleaner - Door State +ch.viomi.vacuum.v18-miot.download-progress = Voice - Download Progress +ch.viomi.vacuum.v18-miot.download-status = Voice - Download Status +ch.viomi.vacuum.v18-miot.dust-collection = Viomi Vacuum - Dust Collection +ch.viomi.vacuum.v18-miot.fault = Robot Cleaner - Device Fault +ch.viomi.vacuum.v18-miot.has-map = Viomi Vacuum - Has Map +ch.viomi.vacuum.v18-miot.has-newmap = Viomi Vacuum - Has Newmap +ch.viomi.vacuum.v18-miot.hypa-hours = Viomi Vacuum - Hypa Hours +ch.viomi.vacuum.v18-miot.hypa-life = Viomi Vacuum - Hypa Life +ch.viomi.vacuum.v18-miot.last-update-time = Viomi Vacuum - Last Update Time +ch.viomi.vacuum.v18-miot.main-brush-hours = Viomi Vacuum - Main Brush Hours +ch.viomi.vacuum.v18-miot.main-brush-life = Viomi Vacuum - Main Brush Life +ch.viomi.vacuum.v18-miot.map-id = Map - Map Id +ch.viomi.vacuum.v18-miot.map-list = Map - Map List +ch.viomi.vacuum.v18-miot.map-name = Map - Map Name +ch.viomi.vacuum.v18-miot.map-num = Viomi Vacuum - Map Num +ch.viomi.vacuum.v18-miot.map-type = Map - Map Type +ch.viomi.vacuum.v18-miot.mode = Robot Cleaner - Mode +ch.viomi.vacuum.v18-miot.mop-hours = Viomi Vacuum - Mop Hours +ch.viomi.vacuum.v18-miot.mop-life = Viomi Vacuum - Mop Life +ch.viomi.vacuum.v18-miot.mop-route = Viomi Vacuum - Mop Route +ch.viomi.vacuum.v18-miot.mute = Robot Cleaner - Mute +ch.viomi.vacuum.v18-miot.oper-result = Map - Oper Result +ch.viomi.vacuum.v18-miot.orderdata = Order - Orderdata +ch.viomi.vacuum.v18-miot.remember-state = Viomi Vacuum - Remember State +ch.viomi.vacuum.v18-miot.repeat-state = Viomi Vacuum - Repeat State +ch.viomi.vacuum.v18-miot.side-brush-hours = Viomi Vacuum - Side Brush Hours +ch.viomi.vacuum.v18-miot.side-brush-life = Viomi Vacuum - Side Brush Life +ch.viomi.vacuum.v18-miot.status = Robot Cleaner - Status +ch.viomi.vacuum.v18-miot.suction-grade = Viomi Vacuum - Suction Grade +ch.viomi.vacuum.v18-miot.sweep-type = Robot Cleaner - Sweep Type +ch.viomi.vacuum.v18-miot.target-point = Point Zone - Target Point +ch.viomi.vacuum.v18-miot.target-voice = Voice - Target Voice +ch.viomi.vacuum.v18-miot.time-zone = Viomi Vacuum - Time Zone +ch.viomi.vacuum.v18-miot.timestamp = Order - Timestamp +ch.viomi.vacuum.v18-miot.vacuumaction = Vacuum Action +ch.viomi.vacuum.v18-miot.water-grade = Viomi Vacuum - Water Grade +ch.viomi.vacuum.v18-miot.wdr-mode = Robot Cleaner - Wide Dynamic Range Mode +ch.viomi.vacuum.v8.battery_life = Battery +ch.viomi.vacuum.v8.box_type = Box type +ch.viomi.vacuum.v8.err_state = Error +ch.viomi.vacuum.v8.has_map = has_map +ch.viomi.vacuum.v8.has_newmap = has_newmap +ch.viomi.vacuum.v8.is_mop = is_mop +ch.viomi.vacuum.v8.mode = Mode +ch.viomi.vacuum.v8.mop_type = mop_type +ch.viomi.vacuum.v8.remember_map = remember_map +ch.viomi.vacuum.v8.s_area = Clean Area +ch.viomi.vacuum.v8.s_time = Clean time +ch.viomi.vacuum.v8.state = State +ch.viomi.vacuum.v8.suction_grade = suction_grade +ch.viomi.vacuum.v8.vacuumaction = Vacuum Action +ch.viomi.vacuum.v8.water_grade = water_grade +ch.viomi.waterheater.e1.appointEnd = Appoint End +ch.viomi.waterheater.e1.appointStart = Appoint Start +ch.viomi.waterheater.e1.errStatus = Error Status +ch.viomi.waterheater.e1.hotWater = Hot Water +ch.viomi.waterheater.e1.modeType = Mode +ch.viomi.waterheater.e1.needClean = Need Clean +ch.viomi.waterheater.e1.targetTemp = Target Temperature +ch.viomi.waterheater.e1.velocity = Velocity +ch.viomi.waterheater.e1.washStatus = Wash Status +ch.viomi.waterheater.e1.waterTemp = Water Temperature +ch.xiaomi.aircondition.ma1-miot.alarm = Alarm - Alarm +ch.xiaomi.aircondition.ma1-miot.dryer = Air Conditioner - Dryer +ch.xiaomi.aircondition.ma1-miot.eco = Air Conditioner - Eco +ch.xiaomi.aircondition.ma1-miot.fan-level = Fan Control - Fan Level +ch.xiaomi.aircondition.ma1-miot.heater = Air Conditioner - Heater +ch.xiaomi.aircondition.ma1-miot.mode = Air Conditioner - Mode +ch.xiaomi.aircondition.ma1-miot.on = Power +ch.xiaomi.aircondition.ma1-miot.on1 = Indicator Light - Switch Status +ch.xiaomi.aircondition.ma1-miot.sleep-mode = Air Conditioner - Sleep Mode +ch.xiaomi.aircondition.ma1-miot.target-temperature = Air Conditioner - Target Temperature +ch.xiaomi.aircondition.ma1-miot.temperature = Environment - Temperature +ch.xiaomi.aircondition.ma1-miot.vertical-swing = Fan Control - Vertical Swing +ch.xiaomi.aircondition.mc1-miot.alarm = Alarm - Alarm +ch.xiaomi.aircondition.mc1-miot.clean = Maintenance - Clean +ch.xiaomi.aircondition.mc1-miot.dryer = Air Conditioner - Dryer +ch.xiaomi.aircondition.mc1-miot.eco = Air Conditioner - Eco +ch.xiaomi.aircondition.mc1-miot.elec-count = Electricity - Count +ch.xiaomi.aircondition.mc1-miot.electricity = Power consumption accumulation in kWh +ch.xiaomi.aircondition.mc1-miot.examine = Maintenance - Examine +ch.xiaomi.aircondition.mc1-miot.fan-level = Fan Control - Fan Level +ch.xiaomi.aircondition.mc1-miot.fan-percent = Fan Speed % +ch.xiaomi.aircondition.mc1-miot.heater = Air Conditioner - Heater +ch.xiaomi.aircondition.mc1-miot.mode = Air Conditioner - Mode +ch.xiaomi.aircondition.mc1-miot.on = Power +ch.xiaomi.aircondition.mc1-miot.on1 = Indicator Light - Switch Status +ch.xiaomi.aircondition.mc1-miot.running-duration = Maintenance - Running Duration +ch.xiaomi.aircondition.mc1-miot.sleep-mode = Air Conditioner - Sleep Mode +ch.xiaomi.aircondition.mc1-miot.target-temperature = Air Conditioner - Target Temperature +ch.xiaomi.aircondition.mc1-miot.temperature = Environment - Temperature +ch.xiaomi.aircondition.mc1-miot.timer = Enhance - Timer +ch.xiaomi.aircondition.mc1-miot.vertical-swing = Fan Control - Vertical Swing +ch.xjx.toilet.fan_temp = Fan Temperature +ch.xjx.toilet.seat_temp = Seat Temperature +ch.xjx.toilet.status_led = Night Light +ch.xjx.toilet.status_seatheat = Seat Status +ch.xjx.toilet.water_temp_t = Water Temperature +ch.yeelink.bhf1.bh_mode = Bath Heater mode +ch.yeelink.bhf1.brightness = Brightness +ch.yeelink.bhf1.delayoff = Shutdown Timer +ch.yeelink.bhf1.nightlightBrightness = Nightlight Brightness +ch.yeelink.bhf1.power = Power +ch.yeelink.bhf1.temperature = Temperature +ch.yeelink.light.ceiling.brightness = Brightness +ch.yeelink.light.ceiling.colorMode = Color Mode +ch.yeelink.light.ceiling.colorTemperature = Color Temperature +ch.yeelink.light.ceiling.customScene = Set Scene +ch.yeelink.light.ceiling.delayoff = Shutdown Timer +ch.yeelink.light.ceiling.name = Name +ch.yeelink.light.ceiling.nightlightBrightness = Nightlight Brightness +ch.yeelink.light.ceiling.power = Power +ch.yeelink.light.ceiling2.brightness = Brightness +ch.yeelink.light.ceiling2.colorMode = Color Mode +ch.yeelink.light.ceiling2.colorTemperature = Color Temperature +ch.yeelink.light.ceiling2.customScene = Set Scene +ch.yeelink.light.ceiling2.delayoff = Shutdown Timer +ch.yeelink.light.ceiling2.name = Name +ch.yeelink.light.ceiling2.nightlightBrightness = Nightlight Brightness +ch.yeelink.light.ceiling2.power = Power +ch.yeelink.light.ceiling4.ambientBrightness = Ambient Brightness +ch.yeelink.light.ceiling4.ambientColor = Ambient Color +ch.yeelink.light.ceiling4.ambientColorMode = Ambient Color Mode +ch.yeelink.light.ceiling4.ambientColorTemperature = Ambient Color Temperature +ch.yeelink.light.ceiling4.ambientPower = Ambient Power +ch.yeelink.light.ceiling4.brightness = Brightness +ch.yeelink.light.ceiling4.colorMode = Color Mode +ch.yeelink.light.ceiling4.colorTemperature = Color Temperature +ch.yeelink.light.ceiling4.customScene = Set Scene +ch.yeelink.light.ceiling4.delayoff = Shutdown Timer +ch.yeelink.light.ceiling4.name = Name +ch.yeelink.light.ceiling4.nightlightBrightness = Nightlight Brightness +ch.yeelink.light.ceiling4.power = Power +ch.yeelink.light.color1.brightness = Brightness +ch.yeelink.light.color1.colorMode = Color Mode +ch.yeelink.light.color1.colorTemperature = Color Temperature +ch.yeelink.light.color1.colorflow = Color Flow +ch.yeelink.light.color1.delayoff = Shutdown Timer +ch.yeelink.light.color1.name = Name +ch.yeelink.light.color1.power = Power +ch.yeelink.light.color1.rgbColor = RGB Color +ch.yeelink.light.lamp1.brightness = Brightness +ch.yeelink.light.lamp1.colorMode = Color Mode +ch.yeelink.light.lamp1.colorTemperature = Color Temperature +ch.yeelink.light.lamp1.delayoff = Shutdown Timer +ch.yeelink.light.lamp1.name = Name +ch.yeelink.light.lamp1.power = Power +ch.yeelink.light.light15.ambientBrightness = Ambient Brightness +ch.yeelink.light.light15.ambientColor = Ambient Color +ch.yeelink.light.light15.ambientColorMode = Ambient Color Mode +ch.yeelink.light.light15.ambientColorTemperature = Ambient Color Temperature +ch.yeelink.light.light15.ambientPower = Ambient Power +ch.yeelink.light.light15.brightness = Brightness +ch.yeelink.light.light15.colorMode = Color Mode +ch.yeelink.light.light15.colorTemperature = Color Temperature +ch.yeelink.light.light15.delayoff = Shutdown Timer +ch.yeelink.light.light15.power = Power +ch.yeelink.light.light15.rgbColor = RGB Color +ch.yeelink.switch.sw1-miot.flash = Extension - Flash +ch.yeelink.switch.sw1-miot.interlock = Extension - Interlock +ch.yeelink.switch.sw1-miot.mode = First Switch Default - Mode +ch.yeelink.switch.sw1-miot.mode1 = First Switch - Delay +ch.yeelink.switch.sw1-miot.mode2 = Second Switch Default - Mode +ch.yeelink.switch.sw1-miot.mode3 = Second Switch Service - Delay +ch.yeelink.switch.sw1-miot.on = First Switch - Switch Status +ch.yeelink.switch.sw1-miot.on1 = Second Switch - Switch Status +ch.yeelink.switch.sw1-miot.rc-list = Extension - Rc List +ch.yunmi.waterpurifier.f1_totalflow = Filter 1 Total Flow +ch.yunmi.waterpurifier.f1_totaltime = Filter 1 Total Time +ch.yunmi.waterpurifier.f1_usedflow = Filter 1 Used Flow +ch.yunmi.waterpurifier.f1_usedtime = Filter 1 Used Time +ch.yunmi.waterpurifier.f2_totalflow = Filter 2 Total Flow +ch.yunmi.waterpurifier.f2_totaltime = Filter 2 Total Time +ch.yunmi.waterpurifier.f2_usedflow = Filter 2 Used Flow +ch.yunmi.waterpurifier.f2_usedtime = Filter 2 Used Time +ch.yunmi.waterpurifier.f3_totalflow = Filter 3 Total Flow +ch.yunmi.waterpurifier.f3_totaltime = Filter 3 Total Time +ch.yunmi.waterpurifier.f3_usedflow = Filter 3 Used Flow +ch.yunmi.waterpurifier.f3_usedtime = Filter 3 Used Time +ch.yunmi.waterpurifier.f4_totalflow = Filter 4 Total Flow +ch.yunmi.waterpurifier.f4_totaltime = Filter 4 Total Time +ch.yunmi.waterpurifier.f4_usedflow = Filter 4 Used Flow +ch.yunmi.waterpurifier.f4_usedtime = Filter 4 Used Time +ch.yunmi.waterpurifier.lightMode = Light Mode +ch.yunmi.waterpurifier.lx8.f1_totalflow = Filter 1 Total Flow +ch.yunmi.waterpurifier.lx8.f1_totaltime = Filter 1 Total Time +ch.yunmi.waterpurifier.lx8.f1_usedflow = Filter 1 Used Flow +ch.yunmi.waterpurifier.lx8.f1_usedtime = Filter 1 Used Time +ch.yunmi.waterpurifier.lx8.f2_totalflow = Filter 2 Total Flow +ch.yunmi.waterpurifier.lx8.f2_totaltime = Filter 2 Total Time +ch.yunmi.waterpurifier.lx8.f2_usedflow = Filter 2 Used Flow +ch.yunmi.waterpurifier.lx8.f2_usedtime = Filter 2 Used Time +ch.yunmi.waterpurifier.lx8.f3_totalflow = Filter 3 Total Flow +ch.yunmi.waterpurifier.lx8.f3_totaltime = Filter 3 Total Time +ch.yunmi.waterpurifier.lx8.f3_usedflow = Filter 3 Used Flow +ch.yunmi.waterpurifier.lx8.f3_usedtime = Filter 3 Used Time +ch.yunmi.waterpurifier.lx8.f4_totalflow = Filter 4 Total Flow +ch.yunmi.waterpurifier.lx8.f4_totaltime = Filter 4 Total Time +ch.yunmi.waterpurifier.lx8.f4_usedflow = Filter 4 Used Flow +ch.yunmi.waterpurifier.lx8.f4_usedtime = Filter 4 Used Time +ch.yunmi.waterpurifier.lx8.lightMode = Light Mode +ch.yunmi.waterpurifier.lx8.maintenance_interval = Maintenance Interval +ch.yunmi.waterpurifier.lx8.maintenance_state = Maintenance State +ch.yunmi.waterpurifier.lx8.rinse = Rinse +ch.yunmi.waterpurifier.lx8.run_status = Run Status +ch.yunmi.waterpurifier.lx8.tds_in = TDS in +ch.yunmi.waterpurifier.lx8.tds_out = TDS out +ch.yunmi.waterpurifier.lx8.tds_warn_thd = TDS Warn Threshold +ch.yunmi.waterpurifier.maintenance_interval = Maintenance Interval +ch.yunmi.waterpurifier.maintenance_state = Maintenance State +ch.yunmi.waterpurifier.rinse = Rinse +ch.yunmi.waterpurifier.run_status = Run Status +ch.yunmi.waterpurifier.tds_in = TDS in +ch.yunmi.waterpurifier.tds_out = TDS out +ch.yunmi.waterpurifier.tds_out_avg = Average TDS out +ch.yunmi.waterpurifier.tds_warn_thd = TDS Warn Threshold +ch.yunmi.waterpurifier.temperature = Temperature +ch.zhimi.airfresh.va4.aqi = Air Quality Index +ch.zhimi.airfresh.va4.averageaqi = Average Air Quality Index +ch.zhimi.airfresh.va4.buzzer = Buzzer +ch.zhimi.airfresh.va4.childLock = Child Lock +ch.zhimi.airfresh.va4.co2 = CO2 +ch.zhimi.airfresh.va4.filterhours = Filter Hours used +ch.zhimi.airfresh.va4.heater = Heater +ch.zhimi.airfresh.va4.humidity = Humidity +ch.zhimi.airfresh.va4.led_level = Led - Brightness +ch.zhimi.airfresh.va4.mode = Mode +ch.zhimi.airfresh.va4.motorspeed = Motor Speed +ch.zhimi.airfresh.va4.power = Power +ch.zhimi.airfresh.va4.temperature = Temperature +ch.zhimi.airfresh.va4.usedhours = Run Time +ch.zhimi.airmonitor.v1.aqi = Air Quality Index +ch.zhimi.airmonitor.v1.battery = Battery +ch.zhimi.airmonitor.v1.night_begin = Night Begin Time +ch.zhimi.airmonitor.v1.night_end = Night End Time +ch.zhimi.airmonitor.v1.night_state = Night State +ch.zhimi.airmonitor.v1.power = Power +ch.zhimi.airmonitor.v1.time_state = Time State +ch.zhimi.airmonitor.v1.usb_state = USB State +ch.zhimi.airpurifier.m1.aqi = Air Quality Index +ch.zhimi.airpurifier.m1.averageaqi = Average Air Quality Index +ch.zhimi.airpurifier.m1.buzzer = Buzzer Status +ch.zhimi.airpurifier.m1.childlock = Child Lock +ch.zhimi.airpurifier.m1.favoritelevel = Favorite Level +ch.zhimi.airpurifier.m1.filterhours = Filter Hours used +ch.zhimi.airpurifier.m1.filterlife = Filter Life +ch.zhimi.airpurifier.m1.filtermaxlife = Filter Max Life +ch.zhimi.airpurifier.m1.humidity = Humidity +ch.zhimi.airpurifier.m1.led = LED Status +ch.zhimi.airpurifier.m1.mode = Mode +ch.zhimi.airpurifier.m1.motorspeed = Motor Speed +ch.zhimi.airpurifier.m1.power = Power +ch.zhimi.airpurifier.m1.purifyvolume = Purified Volume +ch.zhimi.airpurifier.m1.temperature = Temperature +ch.zhimi.airpurifier.m1.usedhours = Run Time +ch.zhimi.airpurifier.ma4-miot.alarm = Alarm - Alarm +ch.zhimi.airpurifier.ma4-miot.app-extra = Others - App Extra +ch.zhimi.airpurifier.ma4-miot.aqi-goodh = Aqi - Aqi Goodh +ch.zhimi.airpurifier.ma4-miot.aqi-runstate = Aqi - Aqi Runstate +ch.zhimi.airpurifier.ma4-miot.aqi-state = Aqi - Aqi State +ch.zhimi.airpurifier.ma4-miot.aqi-updata-heartbeat = Aqi - Aqi Updata Heartbeat +ch.zhimi.airpurifier.ma4-miot.aqi-zone = Aqi - Aqi Zone +ch.zhimi.airpurifier.ma4-miot.average-aqi = Aqi - Average Aqi +ch.zhimi.airpurifier.ma4-miot.average-aqi-cnt = Aqi - Average Aqi Cnt +ch.zhimi.airpurifier.ma4-miot.brightness = Indicator Light - Brightness +ch.zhimi.airpurifier.ma4-miot.buttom-door = Others - Buttom Door +ch.zhimi.airpurifier.ma4-miot.button-pressed = Button - Button_pressed +ch.zhimi.airpurifier.ma4-miot.cola = Others - Cola +ch.zhimi.airpurifier.ma4-miot.fan-level = Air Purifier - Fan Level +ch.zhimi.airpurifier.ma4-miot.fault = Air Purifier - Device Fault +ch.zhimi.airpurifier.ma4-miot.favorite-fan-level = Motor Speed - Favorite Fan Level +ch.zhimi.airpurifier.ma4-miot.filter-hour-used-debug = Filter Time - Filter Hour Used Debug +ch.zhimi.airpurifier.ma4-miot.filter-life-level = Filter - Filter Life Level +ch.zhimi.airpurifier.ma4-miot.filter-max-time = Filter Time - Filter Max Time +ch.zhimi.airpurifier.ma4-miot.filter-used-time = Filter - Filter Used Time +ch.zhimi.airpurifier.ma4-miot.hw-version = Others - Hw Version +ch.zhimi.airpurifier.ma4-miot.i2c-error-count = Others - I2c Error Count +ch.zhimi.airpurifier.ma4-miot.m1-favorite = Motor Speed - M1 Favorite +ch.zhimi.airpurifier.ma4-miot.m1-high = Motor Speed - M1 High +ch.zhimi.airpurifier.ma4-miot.m1-low = Motor Speed - M1 Low +ch.zhimi.airpurifier.ma4-miot.m1-med = Motor Speed - M1 Med +ch.zhimi.airpurifier.ma4-miot.m1-med-l = Motor Speed - M1 Med L +ch.zhimi.airpurifier.ma4-miot.m1-silent = Motor Speed - M1 Silent +ch.zhimi.airpurifier.ma4-miot.m1-strong = Motor Speed - M1 Strong +ch.zhimi.airpurifier.ma4-miot.main-channel = Others - Main Channel +ch.zhimi.airpurifier.ma4-miot.manual-level = Others - Manual Level +ch.zhimi.airpurifier.ma4-miot.mode = Air Purifier - Mode +ch.zhimi.airpurifier.ma4-miot.motor1-set-speed = Motor Speed - Motor1 Set Speed +ch.zhimi.airpurifier.ma4-miot.motor1-speed = Motor Speed - Motor1 Speed +ch.zhimi.airpurifier.ma4-miot.on = Air Purifier - Switch Status +ch.zhimi.airpurifier.ma4-miot.on1 = Indicator Light - Switch Status +ch.zhimi.airpurifier.ma4-miot.physical-controls-locked = Physical Control Locked - Physical Control Locked +ch.zhimi.airpurifier.ma4-miot.pm2_5-density = Environment - Pm2.5 Density +ch.zhimi.airpurifier.ma4-miot.purify-volume = Aqi - Purify Volume +ch.zhimi.airpurifier.ma4-miot.reboot-cause = Others - Reboot_cause +ch.zhimi.airpurifier.ma4-miot.relative-humidity = Environment - Relative Humidity +ch.zhimi.airpurifier.ma4-miot.rfid-factory-id = Rfid - Rfid Factory Id +ch.zhimi.airpurifier.ma4-miot.rfid-product-id = Rfid - Rfid Product Id +ch.zhimi.airpurifier.ma4-miot.rfid-serial-num = Rfid - Rfid Serial Num +ch.zhimi.airpurifier.ma4-miot.rfid-tag = Rfid - Rfid Tag +ch.zhimi.airpurifier.ma4-miot.rfid-time = Rfid - Rfid Time +ch.zhimi.airpurifier.ma4-miot.sensor-state = Aqi - Sensor State +ch.zhimi.airpurifier.ma4-miot.slave-channel = Others - Slave Channel +ch.zhimi.airpurifier.ma4-miot.temperature = Environment - Temperature +ch.zhimi.airpurifier.ma4-miot.use-time = Use Time - Use Time +ch.zhimi.airpurifier.mb3-miot.alarm = Alarm - Alarm +ch.zhimi.airpurifier.mb3-miot.app-extra = Others - App Extra +ch.zhimi.airpurifier.mb3-miot.aqi-goodh = Aqi - Aqi Goodh +ch.zhimi.airpurifier.mb3-miot.aqi-runstate = Aqi - Aqi Runstate +ch.zhimi.airpurifier.mb3-miot.aqi-state = Aqi - Aqi State +ch.zhimi.airpurifier.mb3-miot.aqi-updata-heartbeat = Aqi - Aqi Updata Heartbeat +ch.zhimi.airpurifier.mb3-miot.aqi-zone = Aqi - Aqi Zone +ch.zhimi.airpurifier.mb3-miot.average-aqi = Aqi - Average Aqi +ch.zhimi.airpurifier.mb3-miot.average-aqi-cnt = Aqi - Average Aqi Cnt +ch.zhimi.airpurifier.mb3-miot.brightness = Indicator Light - Brightness +ch.zhimi.airpurifier.mb3-miot.buttom-door = Others - Buttom Door +ch.zhimi.airpurifier.mb3-miot.button-pressed = Button - Button Pressed +ch.zhimi.airpurifier.mb3-miot.cola = Others - Cola +ch.zhimi.airpurifier.mb3-miot.country-code = Others - National Code +ch.zhimi.airpurifier.mb3-miot.fan-level = Air Purifier - Fan Level +ch.zhimi.airpurifier.mb3-miot.fault = Air Purifier - Fault +ch.zhimi.airpurifier.mb3-miot.favorite-fan-level = Motor Speed - Favorite Fan Level +ch.zhimi.airpurifier.mb3-miot.filter-hour-debug = Filter Time - Filter Hour Debug +ch.zhimi.airpurifier.mb3-miot.filter-life-level = Filter - Filter Life Level +ch.zhimi.airpurifier.mb3-miot.filter-max-time = Filter Time - Filter Max Time +ch.zhimi.airpurifier.mb3-miot.filter-used-time = Filter - Filter Used Time +ch.zhimi.airpurifier.mb3-miot.hw-version = Others - Hw Version +ch.zhimi.airpurifier.mb3-miot.iic-error-count = Others - Iic Error Count +ch.zhimi.airpurifier.mb3-miot.main-channel = Others - Main Channel +ch.zhimi.airpurifier.mb3-miot.manual-level = Others - Manual Level +ch.zhimi.airpurifier.mb3-miot.mode = Air Purifier - Mode +ch.zhimi.airpurifier.mb3-miot.motor-favorite = Motor Speed - Motor Favorite +ch.zhimi.airpurifier.mb3-miot.motor-high = Motor Speed - Motor High +ch.zhimi.airpurifier.mb3-miot.motor-low = Motor Speed - Motor Low +ch.zhimi.airpurifier.mb3-miot.motor-med = Motor Speed - Motor Med +ch.zhimi.airpurifier.mb3-miot.motor-med-l = Motor Speed - Motor Med L +ch.zhimi.airpurifier.mb3-miot.motor-set-speed = Motor Speed - Motor Set Speed +ch.zhimi.airpurifier.mb3-miot.motor-silent = Motor Speed - Motor Silent +ch.zhimi.airpurifier.mb3-miot.motor-speed = Motor Speed - Motor Speed +ch.zhimi.airpurifier.mb3-miot.motor-strong = Motor Speed - Motor Strong +ch.zhimi.airpurifier.mb3-miot.on = Air Purifier - Switch Status +ch.zhimi.airpurifier.mb3-miot.on1 = Indicator Light - Switch Status +ch.zhimi.airpurifier.mb3-miot.physical-controls-locked = Physical Control Locked - Physical Control Locked +ch.zhimi.airpurifier.mb3-miot.pm2_5-density = Environment - Pm2.5 density +ch.zhimi.airpurifier.mb3-miot.purify-volume = Aqi - Purify Volume +ch.zhimi.airpurifier.mb3-miot.reboot-cause = Others - Reboot Cause +ch.zhimi.airpurifier.mb3-miot.relative-humidity = Environment - Relative Humidity +ch.zhimi.airpurifier.mb3-miot.rfid-factory-id = Rfid - Rfid Factory Id +ch.zhimi.airpurifier.mb3-miot.rfid-product-id = Rfid - Rfid Product Id +ch.zhimi.airpurifier.mb3-miot.rfid-serial-num = Rfid - Rfid Serial Num +ch.zhimi.airpurifier.mb3-miot.rfid-tag = Rfid - Rfid Tag +ch.zhimi.airpurifier.mb3-miot.rfid-time = Rfid - Rfid Time +ch.zhimi.airpurifier.mb3-miot.sensor-state = Aqi - Sensor State +ch.zhimi.airpurifier.mb3-miot.slave-channel = Others - Slave Channel +ch.zhimi.airpurifier.mb3-miot.temperature = Environment - Temperature +ch.zhimi.airpurifier.mb3-miot.use-time = Use Time - Use Time +ch.zhimi.airpurifier.mb4-miot.alarm = Alarm - Alarm +ch.zhimi.airpurifier.mb4-miot.aqi_updata_heartbeat = Custom Service - Aqi Updata Heartbeat +ch.zhimi.airpurifier.mb4-miot.brightness = Screen - Brightness +ch.zhimi.airpurifier.mb4-miot.fault = Air Purifier - Device Fault +ch.zhimi.airpurifier.mb4-miot.favorite_speed = Custom Service - Favorite Speed +ch.zhimi.airpurifier.mb4-miot.filter_life_level = Filter - Filter Life Level +ch.zhimi.airpurifier.mb4-miot.filter_used_time = Filter - Filter Used Time +ch.zhimi.airpurifier.mb4-miot.miio_lib_version = Custom Service - Miio Lib Version +ch.zhimi.airpurifier.mb4-miot.mode = Mode +ch.zhimi.airpurifier.mb4-miot.moto_speed_rpm = Custom Service - Moto Speed Rpm +ch.zhimi.airpurifier.mb4-miot.on = Power +ch.zhimi.airpurifier.mb4-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.zhimi.airpurifier.mb4-miot.pm2_5_density = Environment - Pm2 5 Density +ch.zhimi.airpurifier.v1.act_det = Air AutoDetect +ch.zhimi.airpurifier.v1.aqi = Air Quality Index +ch.zhimi.airpurifier.v1.brightness = Brightness +ch.zhimi.airpurifier.v1.buzzer = Buzzer Status +ch.zhimi.airpurifier.v1.filterlive = Filter Life +ch.zhimi.airpurifier.v1.filtermaxlife = Filter Max Life +ch.zhimi.airpurifier.v1.humidity = Humidity +ch.zhimi.airpurifier.v1.led = LED Status +ch.zhimi.airpurifier.v1.mode = Mode +ch.zhimi.airpurifier.v1.power = Power +ch.zhimi.airpurifier.v6.aqi = Air Quality Index +ch.zhimi.airpurifier.v6.averageaqi = Average Air Quality Index +ch.zhimi.airpurifier.v6.bright = LED Brightness +ch.zhimi.airpurifier.v6.childlock = Child Lock +ch.zhimi.airpurifier.v6.favoritelevel = Favorite Level +ch.zhimi.airpurifier.v6.filterhours = Filter Hours used +ch.zhimi.airpurifier.v6.filterlife = Filter Life +ch.zhimi.airpurifier.v6.filtermaxlife = Filter Max Life +ch.zhimi.airpurifier.v6.humidity = Humidity +ch.zhimi.airpurifier.v6.led = LED Status +ch.zhimi.airpurifier.v6.mode = Mode +ch.zhimi.airpurifier.v6.motorspeed = Motor Speed +ch.zhimi.airpurifier.v6.power = Power +ch.zhimi.airpurifier.v6.purifyvolume = Purivied Volume +ch.zhimi.airpurifier.v6.temperature = Temperature +ch.zhimi.airpurifier.v6.usedhours = Run Time +ch.zhimi.airpurifier.v7.aqi = Air Quality Index +ch.zhimi.airpurifier.v7.averageaqi = Average Air Quality Index +ch.zhimi.airpurifier.v7.childlock = Child Lock +ch.zhimi.airpurifier.v7.favoritelevel = Favorite Level +ch.zhimi.airpurifier.v7.filterhours = Filter Hours used +ch.zhimi.airpurifier.v7.filterlife = Filter Life +ch.zhimi.airpurifier.v7.filtermaxlife = Filter Max Life +ch.zhimi.airpurifier.v7.humidity = Humidity +ch.zhimi.airpurifier.v7.illuminance = Illuminance +ch.zhimi.airpurifier.v7.led = LED Status +ch.zhimi.airpurifier.v7.mode = Mode +ch.zhimi.airpurifier.v7.motorspeed = Motor Speed +ch.zhimi.airpurifier.v7.motorspeed2 = Motor Speed 2 +ch.zhimi.airpurifier.v7.power = Power +ch.zhimi.airpurifier.v7.temperature = Temperature +ch.zhimi.airpurifier.v7.volume = Volume +ch.zhimi.airpurifier.vb2-miot.actions = Actions +ch.zhimi.airpurifier.vb2-miot.alarm = Alarm - Alarm +ch.zhimi.airpurifier.vb2-miot.app_extra = Others - App Extra +ch.zhimi.airpurifier.vb2-miot.aqi_goodh = Aqi - Aqi Goodh +ch.zhimi.airpurifier.vb2-miot.aqi_runstate = Aqi - Runstate +ch.zhimi.airpurifier.vb2-miot.aqi_state = Aqi - Aqi State +ch.zhimi.airpurifier.vb2-miot.aqi_zone = Aqi - Aqi Zone +ch.zhimi.airpurifier.vb2-miot.average_aqi = Aqi - Average Aqi +ch.zhimi.airpurifier.vb2-miot.average_aqi_cnt = Aqi - Average_aqi Read Times +ch.zhimi.airpurifier.vb2-miot.brightness = Indicator Light - Brightness +ch.zhimi.airpurifier.vb2-miot.buttom_door = Others - Buttom Door +ch.zhimi.airpurifier.vb2-miot.button_pressed = Button - Button_pressed +ch.zhimi.airpurifier.vb2-miot.cola = Others - Cola +ch.zhimi.airpurifier.vb2-miot.country_code = Others - Country Code +ch.zhimi.airpurifier.vb2-miot.fan_level = Air Purifier - Fan Level +ch.zhimi.airpurifier.vb2-miot.fault = Air Purifier - Device Fault +ch.zhimi.airpurifier.vb2-miot.favorite_level = Motor Speed - Favorite Level +ch.zhimi.airpurifier.vb2-miot.filter_hour_used_debug = Filter Time - Filter Hour Used Debug +ch.zhimi.airpurifier.vb2-miot.filter_life_level = Filter - Filter Life Level +ch.zhimi.airpurifier.vb2-miot.filter_max_time = Filter Time - Filter Max Time +ch.zhimi.airpurifier.vb2-miot.filter_used_time = Filter - Filter Used Time +ch.zhimi.airpurifier.vb2-miot.m1_favorite = Motor Speed - M1 Favorite +ch.zhimi.airpurifier.vb2-miot.m1_high = Motor Speed - M1 High +ch.zhimi.airpurifier.vb2-miot.m1_low = Motor Speed - M1 Low +ch.zhimi.airpurifier.vb2-miot.m1_med = Motor Speed - M1 Med +ch.zhimi.airpurifier.vb2-miot.m1_med_l = Motor Speed - M1 Med L +ch.zhimi.airpurifier.vb2-miot.m1_silent = Motor Speed - M1 Silent +ch.zhimi.airpurifier.vb2-miot.m1_strong = Motor Speed - M1 Strong +ch.zhimi.airpurifier.vb2-miot.main_channel = Others - Main Channel +ch.zhimi.airpurifier.vb2-miot.manual_level = Others - Manual Level +ch.zhimi.airpurifier.vb2-miot.mode = Air Purifier - Mode +ch.zhimi.airpurifier.vb2-miot.motor1_set_speed = Motor Speed - Motor1 Set Speed +ch.zhimi.airpurifier.vb2-miot.motor1_speed = Motor Speed - Motor1 Speed +ch.zhimi.airpurifier.vb2-miot.on = Air Purifier - Power +ch.zhimi.airpurifier.vb2-miot.on1 = Indicator Light - Switch Status +ch.zhimi.airpurifier.vb2-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.zhimi.airpurifier.vb2-miot.pm2_5_density = Environment - PM2 5 Density +ch.zhimi.airpurifier.vb2-miot.powertime = Others - Powertime +ch.zhimi.airpurifier.vb2-miot.purify_volume = Aqi - Purify Volume +ch.zhimi.airpurifier.vb2-miot.reboot_cause = Others - Reboot_cause +ch.zhimi.airpurifier.vb2-miot.relative_humidity = Environment - Relative Humidity +ch.zhimi.airpurifier.vb2-miot.rfid_factory_id = Rfid - Rfid Factory Id +ch.zhimi.airpurifier.vb2-miot.rfid_product_id = Rfid - Rfid Product Id +ch.zhimi.airpurifier.vb2-miot.rfid_serial_num = Rfid - Rfid Serial Num +ch.zhimi.airpurifier.vb2-miot.rfid_tag = Rfid - Rfid Tag +ch.zhimi.airpurifier.vb2-miot.rfid_time = Rfid - Rfid Time +ch.zhimi.airpurifier.vb2-miot.sensor_state = Aqi - Sensor State +ch.zhimi.airpurifier.vb2-miot.slave_channel = Others - Slave Channel +ch.zhimi.airpurifier.vb2-miot.temperature = Environment - Temperature +ch.zhimi.airpurifier.vb2-miot.use_time = Use Time - Use Time +ch.zhimi.airpurifier.vb2-miot.volume = Alarm - Volume +ch.zhimi.airpurifier.za1-miot.air_quality = Environment - Air Quality +ch.zhimi.airpurifier.za1-miot.alarm = Alarm - Alarm +ch.zhimi.airpurifier.za1-miot.aqi_zone = Aqi - Aqi Zone +ch.zhimi.airpurifier.za1-miot.average_aqi = Aqi - Average Aqi +ch.zhimi.airpurifier.za1-miot.brightness = Indicator Light - Brightness +ch.zhimi.airpurifier.za1-miot.country_code = Others - Country Code +ch.zhimi.airpurifier.za1-miot.fault = Air Purifier - Fault +ch.zhimi.airpurifier.za1-miot.favorite_fan_level = Motor Speed - Favorite Fan Level +ch.zhimi.airpurifier.za1-miot.filter_life_level = Filter - Filter Life Level +ch.zhimi.airpurifier.za1-miot.filter_max_time = Filter Time - Filter Max Time +ch.zhimi.airpurifier.za1-miot.filter_used_time = Filter - Filter Used Time +ch.zhimi.airpurifier.za1-miot.gesture_status = Others - Gesture Status +ch.zhimi.airpurifier.za1-miot.hw_version = Others - Hw Version +ch.zhimi.airpurifier.za1-miot.mode = Air Purifier - Mode +ch.zhimi.airpurifier.za1-miot.motor_speed = Motor Speed - Motor Speed +ch.zhimi.airpurifier.za1-miot.on = Air Purifier - Switch Status +ch.zhimi.airpurifier.za1-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.zhimi.airpurifier.za1-miot.pm2_5_density = Environment - PM2 5 Density +ch.zhimi.airpurifier.za1-miot.purify_volume = Aqi - Purify Volume +ch.zhimi.airpurifier.za1-miot.reboot_cause = Others - Reboot Cause +ch.zhimi.airpurifier.za1-miot.relative_humidity = Environment - Relative Humidity +ch.zhimi.airpurifier.za1-miot.rfid_factory_id = Rfid - Rfid Factory Id +ch.zhimi.airpurifier.za1-miot.rfid_product_id = Rfid - Rfid Product Id +ch.zhimi.airpurifier.za1-miot.rfid_serial_num = Rfid - Rfid Serial Num +ch.zhimi.airpurifier.za1-miot.rfid_tag = Rfid - Rfid Tag +ch.zhimi.airpurifier.za1-miot.rfid_time = Rfid - Rfid Time +ch.zhimi.airpurifier.za1-miot.sensor_state = Aqi - Sensor State +ch.zhimi.airpurifier.za1-miot.sgp_ethanol = Others - Sgp Ethanol +ch.zhimi.airpurifier.za1-miot.sgp_serial = Others - Sgp Serial +ch.zhimi.airpurifier.za1-miot.sgp_version = Others - Sgp Version +ch.zhimi.airpurifier.za1-miot.temperature = Environment - Temperature +ch.zhimi.airpurifier.za1-miot.use_time = Use Time - Use Time +ch.zhimi.fan.sa1.acPower = AC Power +ch.zhimi.fan.sa1.angle = Angle +ch.zhimi.fan.sa1.angleEnable = Rotation +ch.zhimi.fan.sa1.buzzer = Buzzer +ch.zhimi.fan.sa1.child_lock = Child Lock +ch.zhimi.fan.sa1.led_b = LED +ch.zhimi.fan.sa1.move = Move Direction +ch.zhimi.fan.sa1.naturalLevel = Natural Level +ch.zhimi.fan.sa1.power = Power +ch.zhimi.fan.sa1.poweroffTime = Power-Off Timer +ch.zhimi.fan.sa1.speed = Speed +ch.zhimi.fan.sa1.speedLevel = Speed Level +ch.zhimi.fan.sa1.usedhours = Run Time +ch.zhimi.fan.v3.acPower = AC Power +ch.zhimi.fan.v3.angle = Angle +ch.zhimi.fan.v3.angleEnable = Rotation +ch.zhimi.fan.v3.battery = Battery +ch.zhimi.fan.v3.buzzer = Buzzer +ch.zhimi.fan.v3.child_lock = Child Lock +ch.zhimi.fan.v3.humidity = Humidity +ch.zhimi.fan.v3.led_b = LED +ch.zhimi.fan.v3.mode = Battery Charge +ch.zhimi.fan.v3.move = Move Direction +ch.zhimi.fan.v3.naturalLevel = Natural Level +ch.zhimi.fan.v3.power = Power +ch.zhimi.fan.v3.poweroffTime = Power-Off Timer +ch.zhimi.fan.v3.speed = Speed +ch.zhimi.fan.v3.speedLevel = Speed Level +ch.zhimi.fan.v3.temp_dec = Temperature +ch.zhimi.fan.v3.usedhours = Run Time +ch.zhimi.fan.za4.angle = Angle +ch.zhimi.fan.za4.angleEnable = Rotation +ch.zhimi.fan.za4.buzzer = Buzzer +ch.zhimi.fan.za4.child_lock = Child Lock +ch.zhimi.fan.za4.led_b = LED +ch.zhimi.fan.za4.move = Move Direction +ch.zhimi.fan.za4.naturalLevel = Natural Level +ch.zhimi.fan.za4.power = Power +ch.zhimi.fan.za4.poweroffTime = Timer +ch.zhimi.fan.za4.speed = Speed +ch.zhimi.fan.za4.speedLevel = Speed Level +ch.zhimi.fan.za4.usedhours = Run Time +ch.zhimi.fan.za5-miot.ac_state = Custom Service - Ac State +ch.zhimi.fan.za5-miot.alarm = Alarm - Alarm +ch.zhimi.fan.za5-miot.anion = Fan - Anion +ch.zhimi.fan.za5-miot.battery_state = Custom Service - Battery State +ch.zhimi.fan.za5-miot.brightness = Indicator Light - Brightness +ch.zhimi.fan.za5-miot.button_press = Custom Service - Button Press +ch.zhimi.fan.za5-miot.fan_level = Fan - Fan Level +ch.zhimi.fan.za5-miot.horizontal_angle = Fan - Horizontal Angle +ch.zhimi.fan.za5-miot.horizontal_swing = Fan - Horizontal Swing +ch.zhimi.fan.za5-miot.mode = Fan - Mode +ch.zhimi.fan.za5-miot.off_delay = Fan - Power Off Delay +ch.zhimi.fan.za5-miot.on = Fan - Power +ch.zhimi.fan.za5-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.zhimi.fan.za5-miot.relative_humidity = Environment - Relative Humidity +ch.zhimi.fan.za5-miot.speed_level = Custom Service - Speed Level +ch.zhimi.fan.za5-miot.speed_now = Custom Service - Speed Now +ch.zhimi.fan.za5-miot.temperature = Environment - Temperature +ch.zhimi.heater.ma2-miot.alarm = Alarm - Alarm +ch.zhimi.heater.ma2-miot.brightness = Indicator Light - Brightness +ch.zhimi.heater.ma2-miot.countdown_time = Countdown - Countdown Time +ch.zhimi.heater.ma2-miot.fault = Heater - Fault +ch.zhimi.heater.ma2-miot.hw_enable = Private Service - Hw Enable +ch.zhimi.heater.ma2-miot.on = Heater - Switch Status +ch.zhimi.heater.ma2-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.zhimi.heater.ma2-miot.target_temperature = Heater - Target Temperature +ch.zhimi.heater.ma2-miot.temperature = Environment - Temperature +ch.zhimi.heater.ma2-miot.use_time = Private Service - Use Time +ch.zhimi.heater.ma3-miot.actions = Actions +ch.zhimi.heater.ma3-miot.alarm = Alarm - Alarm +ch.zhimi.heater.ma3-miot.brightness = Indicator Light - Brightness +ch.zhimi.heater.ma3-miot.countdown_time = Countdown - Countdown Time +ch.zhimi.heater.ma3-miot.fault = Heater - Fault +ch.zhimi.heater.ma3-miot.mode = Heater - Mode +ch.zhimi.heater.ma3-miot.on = Heater - Switch Status +ch.zhimi.heater.ma3-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.zhimi.heater.ma3-miot.target_temperature = Heater - Target Temperature +ch.zhimi.heater.ma3-miot.temperature = Environment - Temperature +ch.zhimi.heater.ma3-miot.use_time = Private Service - Use Time +ch.zhimi.heater.mc2-miot.alarm = Alarm - Alarm +ch.zhimi.heater.mc2-miot.brightness = Indicator Light - Brightness +ch.zhimi.heater.mc2-miot.countdown_time = Countdown - Countdown Time +ch.zhimi.heater.mc2-miot.country_code = Private Service - Country Code +ch.zhimi.heater.mc2-miot.fault = Heater - Device Fault +ch.zhimi.heater.mc2-miot.hw_enable = Private Service - Hw Enable +ch.zhimi.heater.mc2-miot.on = Heater - Power +ch.zhimi.heater.mc2-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.zhimi.heater.mc2-miot.target_temperature = Heater - Target Temperature +ch.zhimi.heater.mc2-miot.temperature = Environment - Temperature +ch.zhimi.heater.mc2-miot.use_time = Private Service - Use Time +ch.zhimi.heater.na1-miot.alarm = Alarm - Alarm +ch.zhimi.heater.na1-miot.brightness = Indicator Light - Brightness +ch.zhimi.heater.na1-miot.countdown_time = Countdown - Countdown Time +ch.zhimi.heater.na1-miot.fault = Heater - Device Fault +ch.zhimi.heater.na1-miot.heat_level = Heater - Heat Level +ch.zhimi.heater.na1-miot.mode = Heater - Mode +ch.zhimi.heater.na1-miot.on = Heater - Power +ch.zhimi.heater.na1-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.zhimi.heater.na1-miot.return_to_middle = Private Service - Return To Middle +ch.zhimi.heater.nb1-miot.alarm = Alarm - Alarm +ch.zhimi.heater.nb1-miot.brightness = Indicator Light - Brightness +ch.zhimi.heater.nb1-miot.countdown_time = Countdown - Countdown Time +ch.zhimi.heater.nb1-miot.country_code = Private Service - Country Code +ch.zhimi.heater.nb1-miot.fault = Heater - Device Fault +ch.zhimi.heater.nb1-miot.heat_level = Heater - Heat Level +ch.zhimi.heater.nb1-miot.hw_en = Private Service - Hw En +ch.zhimi.heater.nb1-miot.mode = Heater - Mode +ch.zhimi.heater.nb1-miot.on = Heater - Power +ch.zhimi.heater.nb1-miot.physical_controls_locked = Physical Control Locked - Physical Control Locked +ch.zhimi.heater.nb1-miot.return_to_middle = Private Service - Return To Middle +ch.zhimi.heater.nb1-miot.target_temperature = Heater - Target Temperature +ch.zhimi.heater.nb1-miot.temperature = Environment - Temperature +ch.zhimi.heater.za1.HWSwitch = HW Switch +ch.zhimi.heater.za1.brightness = Brightness +ch.zhimi.heater.za1.buzzer = Buzzer Status +ch.zhimi.heater.za1.childlock = Child Lock +ch.zhimi.heater.za1.power = Power +ch.zhimi.heater.za1.relative_humidity = Relative Humidity +ch.zhimi.heater.za1.target_temperature = Target Temperature +ch.zhimi.heater.za1.temperature = Temperature +ch.zhimi.heater.za1.usedhours = Run Time +ch.zhimi.heater.za2-miot.alarm = Alarm - Alarm +ch.zhimi.heater.za2-miot.brightness = Indicator Light - Brightness +ch.zhimi.heater.za2-miot.countdown-time = Countdown - Countdown Time +ch.zhimi.heater.za2-miot.fault = Heater - Device Fault +ch.zhimi.heater.za2-miot.on = Heater - Power +ch.zhimi.heater.za2-miot.physical-controls-locked = Physical Control Locked - Physical Controls Locked +ch.zhimi.heater.za2-miot.relative-humidity = Environment - Relative Humidity +ch.zhimi.heater.za2-miot.target-temperature = Heater - Target Temperature +ch.zhimi.heater.za2-miot.temperature = Environment - Temperature +ch.zhimi.heater.za2-miot.use-time = Private-Service - Use Time +ch.zhimi.heater.zb1-miot.alarm = Alarm - Alarm +ch.zhimi.heater.zb1-miot.brightness = Indicator Light - Brightness +ch.zhimi.heater.zb1-miot.countdown-time = Countdown - Countdown Time +ch.zhimi.heater.zb1-miot.country-code = Private-Service - Country-Code +ch.zhimi.heater.zb1-miot.fault = Heater - Device Fault +ch.zhimi.heater.zb1-miot.on = Heater - Power +ch.zhimi.heater.zb1-miot.physical-controls-locked = Physical Control Locked - Physical Controls Locked +ch.zhimi.heater.zb1-miot.relative-humidity = Environment - Relative Humidity +ch.zhimi.heater.zb1-miot.target-temperature = Heater - Target Temperature +ch.zhimi.heater.zb1-miot.temperature = Environment - Temperature +ch.zhimi.heater.zb1-miot.use-time = Private-Service - Use Time +ch.zhimi.humidifier.ca4.ButtonPressed = Button Pressed +ch.zhimi.humidifier.ca4.Fault = Humidifier Device Fault +ch.zhimi.humidifier.ca4.actualmotorspeed = Actual Motor Speed +ch.zhimi.humidifier.ca4.bright = LED Brightness +ch.zhimi.humidifier.ca4.buzzer = Buzzer Status +ch.zhimi.humidifier.ca4.childlock = Child Lock +ch.zhimi.humidifier.ca4.clean = Clean Mode +ch.zhimi.humidifier.ca4.dry = Dry +ch.zhimi.humidifier.ca4.humidity = Humidity +ch.zhimi.humidifier.ca4.mode = Mode - Fan Level +ch.zhimi.humidifier.ca4.power = Power +ch.zhimi.humidifier.ca4.powerhours = Power Time +ch.zhimi.humidifier.ca4.targetHumidity = Target Humidity +ch.zhimi.humidifier.ca4.targetmotorspeed = Target Motor Speed +ch.zhimi.humidifier.ca4.temperature = Temperature +ch.zhimi.humidifier.ca4.usedhours = Run Time +ch.zhimi.humidifier.ca4.waterlevel = Water Level +ch.zhimi.humidifier.cb1.bright = LED Brightness +ch.zhimi.humidifier.cb1.buzzer = Buzzer Status +ch.zhimi.humidifier.cb1.childlock = Child Lock +ch.zhimi.humidifier.cb1.depth = Depth +ch.zhimi.humidifier.cb1.dry = Dry +ch.zhimi.humidifier.cb1.humidifierMode = Humidifier Mode +ch.zhimi.humidifier.cb1.humidity = Humidity +ch.zhimi.humidifier.cb1.motorspeed = Motor Speed +ch.zhimi.humidifier.cb1.power = Power +ch.zhimi.humidifier.cb1.setHumidity = Humidity Set +ch.zhimi.humidifier.cb1.temperature = Temperature +ch.zhimi.humidifier.cb1.usedhours = Run Time +ch.zhimi.humidifier.v1.aqi = Air Quality Index +ch.zhimi.humidifier.v1.bright = LED Brightness +ch.zhimi.humidifier.v1.buzzer = Buzzer Status +ch.zhimi.humidifier.v1.childlock = Child Lock +ch.zhimi.humidifier.v1.depth = Depth +ch.zhimi.humidifier.v1.dry = Dry +ch.zhimi.humidifier.v1.humidity = Humidity +ch.zhimi.humidifier.v1.mode = Mode +ch.zhimi.humidifier.v1.motorspeed = Motor Speed +ch.zhimi.humidifier.v1.power = Power +ch.zhimi.humidifier.v1.setHumidity = Humidity Set +ch.zhimi.humidifier.v1.temperature = Temperature +ch.zhimi.humidifier.v1.translevel = Trans_level +ch.zhimi.humidifier.v1.usedhours = Run Time +ch.zimi.powerstrip.v2.current = Current +ch.zimi.powerstrip.v2.led = wifi LED +ch.zimi.powerstrip.v2.lp_autooff = Low Power Auto Off +ch.zimi.powerstrip.v2.lp_autooff_delay = Low Power Limit Time +ch.zimi.powerstrip.v2.lp_threshold = Low Power Threshold +ch.zimi.powerstrip.v2.power = Power +ch.zimi.powerstrip.v2.powerUsage = Power Consumption +ch.zimi.powerstrip.v2.power_price = power_price +ch.zimi.powerstrip.v2.temperature = Temperature +option.careli.fryer.maf01-miot.actions-air-fryer-cancel-cooking = Air Fryer Cancel Cooking +option.careli.fryer.maf01-miot.actions-air-fryer-pause = Air Fryer Pause +option.careli.fryer.maf01-miot.actions-air-fryer-start-cook = Air Fryer Start Cook +option.careli.fryer.maf01-miot.actions-custom-resume-cook = Custom Resume Cook +option.careli.fryer.maf01-miot.actions-custom-start-cook = Custom Start Cook +option.careli.fryer.maf01-miot.fault-0 = No Faults +option.careli.fryer.maf01-miot.fault-1 = E1 +option.careli.fryer.maf01-miot.fault-2 = E2 +option.careli.fryer.maf01-miot.food_quantity-0 = Null +option.careli.fryer.maf01-miot.food_quantity-1 = Single +option.careli.fryer.maf01-miot.food_quantity-2 = Double +option.careli.fryer.maf01-miot.food_quantity-3 = Half +option.careli.fryer.maf01-miot.food_quantity-4 = Full +option.careli.fryer.maf01-miot.preheat_switch-0 = Null +option.careli.fryer.maf01-miot.preheat_switch-1 = Off +option.careli.fryer.maf01-miot.preheat_switch-2 = On +option.careli.fryer.maf01-miot.status-0 = Shutdown +option.careli.fryer.maf01-miot.status-1 = Standby +option.careli.fryer.maf01-miot.status-2 = Pause +option.careli.fryer.maf01-miot.status-3 = Appointment +option.careli.fryer.maf01-miot.status-4 = Cooking +option.careli.fryer.maf01-miot.status-5 = Preheat +option.careli.fryer.maf01-miot.status-6 = Cooked +option.careli.fryer.maf01-miot.status-7 = Preheat Finish +option.careli.fryer.maf01-miot.status-8 = Preheat Pause +option.careli.fryer.maf01-miot.status-9 = Pause2 +option.careli.fryer.maf01-miot.turn_pot-0 = Not Turn Pot +option.careli.fryer.maf01-miot.turn_pot-1 = Switch Off +option.careli.fryer.maf01-miot.turn_pot-2 = Turn Pot +option.careli.fryer.maf02-miot.actions-air-fryer-cancel-cooking = Air Fryer Cancel Cooking +option.careli.fryer.maf02-miot.actions-air-fryer-pause = Air Fryer Pause +option.careli.fryer.maf02-miot.actions-air-fryer-start-cook = Air Fryer Start Cook +option.careli.fryer.maf02-miot.actions-custom-resume-cooking = Custom Resume Cooking +option.careli.fryer.maf02-miot.actions-custom-start-custom-cook = Custom Start Custom Cook +option.careli.fryer.maf02-miot.fault-0 = No Faults +option.careli.fryer.maf02-miot.fault-1 = E1 +option.careli.fryer.maf02-miot.fault-2 = E2 +option.careli.fryer.maf02-miot.food_quantity-0 = Null +option.careli.fryer.maf02-miot.food_quantity-1 = Single +option.careli.fryer.maf02-miot.food_quantity-2 = Double +option.careli.fryer.maf02-miot.food_quantity-3 = Half +option.careli.fryer.maf02-miot.food_quantity-4 = Full +option.careli.fryer.maf02-miot.preheat_switch-0 = Null +option.careli.fryer.maf02-miot.preheat_switch-1 = Off +option.careli.fryer.maf02-miot.preheat_switch-2 = On +option.careli.fryer.maf02-miot.status-0 = Shutdown +option.careli.fryer.maf02-miot.status-1 = Standby +option.careli.fryer.maf02-miot.status-2 = Pause +option.careli.fryer.maf02-miot.status-3 = Appointment +option.careli.fryer.maf02-miot.status-4 = Cooking +option.careli.fryer.maf02-miot.status-5 = Preheat +option.careli.fryer.maf02-miot.status-6 = Cooked +option.careli.fryer.maf02-miot.status-7 = Preheat Finish +option.careli.fryer.maf02-miot.status-8 = Preheat Pause +option.careli.fryer.maf02-miot.status-9 = Pause2 +option.careli.fryer.maf02-miot.turn_pot-0 = Not Turn Pot +option.careli.fryer.maf02-miot.turn_pot-1 = Switch Off +option.careli.fryer.maf02-miot.turn_pot-2 = Turn Pot +option.cgllc.airm.cgdn1-miot.actions-settings-set-device-off = Set Device Off +option.cgllc.airm.cgdn1-miot.actions-settings-set-end-time = Set End Time +option.cgllc.airm.cgdn1-miot.actions-settings-set-frequency = Set Frequency +option.cgllc.airm.cgdn1-miot.actions-settings-set-screen-off = Set Screen Off +option.cgllc.airm.cgdn1-miot.actions-settings-set-start-time = Set Start Time +option.cgllc.airm.cgdn1-miot.actions-settings-set-temp-unit = Set Temp Unit +option.cgllc.airm.cgdn1-miot.charging_state-1 = Charging +option.cgllc.airm.cgdn1-miot.charging_state-2 = Not charging +option.cgllc.airm.cgdn1-miot.charging_state-3 = Not chargeable +option.cgllc.airm.cgdn1-miot.device_off-0 = Null +option.cgllc.airm.cgdn1-miot.device_off-15 = Minute +option.cgllc.airm.cgdn1-miot.device_off-30 = Minute +option.cgllc.airm.cgdn1-miot.device_off-60 = Minute +option.cgllc.airm.cgdn1-miot.monitoring_frequency-0 = Null +option.cgllc.airm.cgdn1-miot.monitoring_frequency-1 = Second +option.cgllc.airm.cgdn1-miot.monitoring_frequency-300 = Second +option.cgllc.airm.cgdn1-miot.monitoring_frequency-60 = Second +option.cgllc.airm.cgdn1-miot.monitoring_frequency-600 = Second +option.cgllc.airm.cgdn1-miot.screen_off-0 = Null +option.cgllc.airm.cgdn1-miot.screen_off-15 = Second +option.cgllc.airm.cgdn1-miot.screen_off-30 = Second +option.cgllc.airm.cgdn1-miot.screen_off-300 = Second +option.cgllc.airm.cgdn1-miot.screen_off-60 = Second +option.deerma.humidifier.jsq1.mode-1 = Low +option.deerma.humidifier.jsq1.mode-2 = Medium +option.deerma.humidifier.jsq1.mode-3 = High +option.deerma.humidifier.jsq1.mode-4 = Humidity +option.deerma.humidifier.mjjsq.mode-1 = Low +option.deerma.humidifier.mjjsq.mode-2 = Medium +option.deerma.humidifier.mjjsq.mode-3 = High +option.deerma.humidifier.mjjsq.mode-4 = Humidity +option.dmaker.fan.p15-miot.actions-off-delay-time-toggle = Off Delay Time Toggle +option.dmaker.fan.p15-miot.fan_level-1 = Level1 +option.dmaker.fan.p15-miot.fan_level-2 = Level2 +option.dmaker.fan.p15-miot.fan_level-3 = Level3 +option.dmaker.fan.p15-miot.fan_level-4 = Level4 +option.dmaker.fan.p15-miot.fault-0 = No Faults +option.dmaker.fan.p15-miot.horizontal_angle-120 = 120 +option.dmaker.fan.p15-miot.horizontal_angle-140 = 140 +option.dmaker.fan.p15-miot.horizontal_angle-30 = 30 +option.dmaker.fan.p15-miot.horizontal_angle-60 = 60 +option.dmaker.fan.p15-miot.horizontal_angle-90 = 90 +option.dmaker.fan.p15-miot.mode-0 = Straight Wind +option.dmaker.fan.p15-miot.mode-1 = Natural Wind +option.dmaker.fan.p18-miot.actions-fan-toggle = Fan Toggle +option.dmaker.fan.p18-miot.fan_level-1 = Level1 +option.dmaker.fan.p18-miot.fan_level-2 = Level2 +option.dmaker.fan.p18-miot.fan_level-3 = Level3 +option.dmaker.fan.p18-miot.fan_level-4 = Level4 +option.dmaker.fan.p18-miot.horizontal_angle-120 = 120 +option.dmaker.fan.p18-miot.horizontal_angle-140 = 140 +option.dmaker.fan.p18-miot.horizontal_angle-30 = 30 +option.dmaker.fan.p18-miot.horizontal_angle-60 = 60 +option.dmaker.fan.p18-miot.horizontal_angle-90 = 90 +option.dmaker.fan.p18-miot.mode-0 = Straight Wind +option.dmaker.fan.p18-miot.mode-1 = Natural Wind +option.dmaker.fan.p18-miot.motor_control-0 = NO +option.dmaker.fan.p18-miot.motor_control-1 = LEFT +option.dmaker.fan.p18-miot.motor_control-2 = RIGHT +option.dmaker.fan.p8-miot.FanLevel-1 = Level1 +option.dmaker.fan.p8-miot.FanLevel-2 = Level2 +option.dmaker.fan.p8-miot.FanLevel-3 = Level3 +option.dmaker.fan.p8-miot.Mode-0 = Straight Wind +option.dmaker.fan.p8-miot.Mode-1 = Sleep +option.dmaker.fan.p8-miot.actions-fan-toggle = Fan Toggle +option.dmaker.fan.p9-miot.FanLevel-1 = Level1 +option.dmaker.fan.p9-miot.FanLevel-2 = Level2 +option.dmaker.fan.p9-miot.FanLevel-3 = Level3 +option.dmaker.fan.p9-miot.FanLevel-4 = Level4 +option.dmaker.fan.p9-miot.HorizontalAngle-120 = 120 +option.dmaker.fan.p9-miot.HorizontalAngle-150 = 150 +option.dmaker.fan.p9-miot.HorizontalAngle-30 = 30 +option.dmaker.fan.p9-miot.HorizontalAngle-60 = 60 +option.dmaker.fan.p9-miot.HorizontalAngle-90 = 90 +option.dmaker.fan.p9-miot.Mode-0 = Straight Wind +option.dmaker.fan.p9-miot.Mode-1 = Natural Wind +option.dmaker.fan.p9-miot.Mode-2 = Sleep +option.dmaker.fan.p9-miot.actions-fan-toggle = Fan Toggle +option.dreame.vacuum.mc1808-miot.ChargingState-1 = Charging +option.dreame.vacuum.mc1808-miot.ChargingState-2 = Not Charging +option.dreame.vacuum.mc1808-miot.ChargingState-4 = Charging +option.dreame.vacuum.mc1808-miot.ChargingState-5 = Go Charging +option.dreame.vacuum.mc1808-miot.Fault-0 = No faults +option.dreame.vacuum.mc1808-miot.Mode-0 = quiet +option.dreame.vacuum.mc1808-miot.Mode-1 = standard +option.dreame.vacuum.mc1808-miot.Mode-2 = medium +option.dreame.vacuum.mc1808-miot.Mode-3 = strong +option.dreame.vacuum.mc1808-miot.Status-1 = Sweeping +option.dreame.vacuum.mc1808-miot.Status-2 = Idle +option.dreame.vacuum.mc1808-miot.Status-3 = Paused +option.dreame.vacuum.mc1808-miot.Status-4 = Error +option.dreame.vacuum.mc1808-miot.Status-5 = Go Charging +option.dreame.vacuum.mc1808-miot.Status-6 = Charging +option.dreame.vacuum.mc1808-miot.TaskDone-0 = in progress +option.dreame.vacuum.mc1808-miot.TaskDone-1 = done +option.dreame.vacuum.mc1808-miot.vacuumaction-dock = Goto Dock +option.dreame.vacuum.mc1808-miot.vacuumaction-stop = Stop +option.dreame.vacuum.mc1808-miot.vacuumaction-stopsweep = Stop Sweep +option.dreame.vacuum.mc1808-miot.vacuumaction-sweep = Sweep +option.dreame.vacuum.mc1808-miot.vacuumaction-vacuum = Vacuum +option.dreame.vacuum.mc1808-miot.water-mode-1 = Low +option.dreame.vacuum.mc1808-miot.water-mode-2 = Medium +option.dreame.vacuum.mc1808-miot.water-mode-4 = High +option.dreame.vacuum.p2008-miot.break-point-restart-0 = Off +option.dreame.vacuum.p2008-miot.break-point-restart-1 = On +option.dreame.vacuum.p2008-miot.carpet-press-0 = Off +option.dreame.vacuum.p2008-miot.carpet-press-1 = On +option.dreame.vacuum.p2008-miot.charging-state-1 = Charging +option.dreame.vacuum.p2008-miot.charging-state-2 = Not Charging +option.dreame.vacuum.p2008-miot.charging-state-5 = Go Charging +option.dreame.vacuum.p2008-miot.cleaning-mode-0 = mode 0 +option.dreame.vacuum.p2008-miot.cleaning-mode-1 = mode 1 +option.dreame.vacuum.p2008-miot.cleaning-mode-2 = mode 2 +option.dreame.vacuum.p2008-miot.cleaning-mode-3 = mode 3 +option.dreame.vacuum.p2008-miot.fault-0 = No Faults +option.dreame.vacuum.p2008-miot.mop-mode-1 = low water +option.dreame.vacuum.p2008-miot.mop-mode-2 = medium water +option.dreame.vacuum.p2008-miot.mop-mode-3 = high water +option.dreame.vacuum.p2008-miot.save-map-status--1 = Not Enabled +option.dreame.vacuum.p2008-miot.save-map-status-0 = Off +option.dreame.vacuum.p2008-miot.save-map-status-1 = On +option.dreame.vacuum.p2008-miot.status-1 = Sweeping +option.dreame.vacuum.p2008-miot.status-2 = Idle +option.dreame.vacuum.p2008-miot.status-3 = Paused +option.dreame.vacuum.p2008-miot.status-4 = Error +option.dreame.vacuum.p2008-miot.status-5 = Go Charging +option.dreame.vacuum.p2008-miot.status-6 = Charging +option.dreame.vacuum.p2008-miot.task-status-0 = Status 0 +option.dreame.vacuum.p2008-miot.task-status-1 = Status 1 +option.dreame.vacuum.p2008-miot.waterbox-status-0 = Status 0 +option.dreame.vacuum.p2008-miot.waterbox-status-1 = Status 1 +option.dreame.vacuum.p2009-miot.break-point-restart-0 = Off +option.dreame.vacuum.p2009-miot.break-point-restart-1 = On +option.dreame.vacuum.p2009-miot.carpet-press-0 = Off +option.dreame.vacuum.p2009-miot.carpet-press-1 = On +option.dreame.vacuum.p2009-miot.charging-state-1 = Charging +option.dreame.vacuum.p2009-miot.charging-state-2 = Not Charging +option.dreame.vacuum.p2009-miot.charging-state-5 = Go Charging +option.dreame.vacuum.p2009-miot.cleaning-mode-0 = mode 0 +option.dreame.vacuum.p2009-miot.cleaning-mode-1 = mode 1 +option.dreame.vacuum.p2009-miot.cleaning-mode-2 = mode 2 +option.dreame.vacuum.p2009-miot.cleaning-mode-3 = mode 3 +option.dreame.vacuum.p2009-miot.fault-0 = No Error +option.dreame.vacuum.p2009-miot.fault-1 = Drop +option.dreame.vacuum.p2009-miot.fault-10 = Waterbox Empty +option.dreame.vacuum.p2009-miot.fault-11 = Box full +option.dreame.vacuum.p2009-miot.fault-12 = Brush +option.dreame.vacuum.p2009-miot.fault-13 = Side Brush +option.dreame.vacuum.p2009-miot.fault-14 = Fan +option.dreame.vacuum.p2009-miot.fault-15 = Left Wheel motor +option.dreame.vacuum.p2009-miot.fault-16 = Right Wheel motor +option.dreame.vacuum.p2009-miot.fault-17 = Turn suffocate +option.dreame.vacuum.p2009-miot.fault-18 = Forward suffocate +option.dreame.vacuum.p2009-miot.fault-19 = Charger get +option.dreame.vacuum.p2009-miot.fault-2 = Cliff +option.dreame.vacuum.p2009-miot.fault-20 = Battery low +option.dreame.vacuum.p2009-miot.fault-21 = Charge fault +option.dreame.vacuum.p2009-miot.fault-22 = Battery percentage +option.dreame.vacuum.p2009-miot.fault-23 = Heart +option.dreame.vacuum.p2009-miot.fault-24 = Camera occlusion +option.dreame.vacuum.p2009-miot.fault-25 = Camera fault +option.dreame.vacuum.p2009-miot.fault-26 = Event battery +option.dreame.vacuum.p2009-miot.fault-27 = Forward looking +option.dreame.vacuum.p2009-miot.fault-28 = Gyroscope +option.dreame.vacuum.p2009-miot.fault-3 = Bumper +option.dreame.vacuum.p2009-miot.fault-4 = Gesture +option.dreame.vacuum.p2009-miot.fault-5 = Bumper Repeat +option.dreame.vacuum.p2009-miot.fault-6 = Drop Repeat +option.dreame.vacuum.p2009-miot.fault-7 = Optical Flow +option.dreame.vacuum.p2009-miot.fault-8 = No Box +option.dreame.vacuum.p2009-miot.fault-9 = No Tankbox +option.dreame.vacuum.p2009-miot.mop-mode-1 = low water +option.dreame.vacuum.p2009-miot.mop-mode-2 = medium water +option.dreame.vacuum.p2009-miot.mop-mode-3 = high water +option.dreame.vacuum.p2009-miot.resetConsumable-filter-reset-filter-life = Reset Filter +option.dreame.vacuum.p2009-miot.resetConsumable-mainbrush-cleaner-reset-brush-life = Reset Main Brush +option.dreame.vacuum.p2009-miot.resetConsumable-sidebrush-cleaner-reset-brush-life = Reset Side Brush +option.dreame.vacuum.p2009-miot.status-1 = Sweeping +option.dreame.vacuum.p2009-miot.status-2 = Idle +option.dreame.vacuum.p2009-miot.status-3 = Paused +option.dreame.vacuum.p2009-miot.status-4 = Error +option.dreame.vacuum.p2009-miot.status-5 = Go Charging +option.dreame.vacuum.p2009-miot.status-6 = Charging +option.dreame.vacuum.p2009-miot.status-7 = Mopping +option.dreame.vacuum.p2009-miot.task-status-0 = Notask +option.dreame.vacuum.p2009-miot.task-status-1 = AutoClean +option.dreame.vacuum.p2009-miot.task-status-2 = CustomClean +option.dreame.vacuum.p2009-miot.task-status-3 = SelectAreanClean +option.dreame.vacuum.p2009-miot.task-status-4 = SpotArea +option.dreame.vacuum.p2009-miot.vacuumaction-dock = Goto Dock +option.dreame.vacuum.p2009-miot.vacuumaction-findme = Find me +option.dreame.vacuum.p2009-miot.vacuumaction-stopsweep = Stop Sweep +option.dreame.vacuum.p2009-miot.vacuumaction-sweep = Sweep +option.dreame.vacuum.p2009-miot.vacuumaction-testsound = Test Sound +option.dreame.vacuum.p2009-miot.waterbox-status-0 = Status 0 +option.dreame.vacuum.p2009-miot.waterbox-status-1 = Status 1 +option.dreame.vacuum.p2156o-miot.actions-audio-play-sound = Audio Play Sound +option.dreame.vacuum.p2156o-miot.actions-audio-position = Audio Position +option.dreame.vacuum.p2156o-miot.actions-battery-start-charge = Start Charge +option.dreame.vacuum.p2156o-miot.actions-brush-cleaner-reset-brush-life = Brush Cleaner Reset Brush Life +option.dreame.vacuum.p2156o-miot.actions-filter-reset-filter-life = Filter Reset Filter Life +option.dreame.vacuum.p2156o-miot.actions-map-map-req = Map Map Req +option.dreame.vacuum.p2156o-miot.actions-map-update-map = Map Update Map +option.dreame.vacuum.p2156o-miot.actions-time-delete-timer = Time Delete Timer +option.dreame.vacuum.p2156o-miot.actions-vacuum-extend-start-clean = Vacuum Extend Start Clean +option.dreame.vacuum.p2156o-miot.actions-vacuum-extend-stop-clean = Vacuum Extend Stop Clean +option.dreame.vacuum.p2156o-miot.actions-vacuum-start-sweep = Start Sweep +option.dreame.vacuum.p2156o-miot.actions-vacuum-stop-sweeping = Stop Sweeping +option.dreame.vacuum.p2156o-miot.break_point_restart-0 = Off +option.dreame.vacuum.p2156o-miot.break_point_restart-1 = On +option.dreame.vacuum.p2156o-miot.carpet_press-0 = Off +option.dreame.vacuum.p2156o-miot.carpet_press-1 = On +option.dreame.vacuum.p2156o-miot.charging_state-1 = Charging +option.dreame.vacuum.p2156o-miot.charging_state-2 = Not Charging +option.dreame.vacuum.p2156o-miot.charging_state-5 = Go Charging +option.dreame.vacuum.p2156o-miot.cleaning_mode-0 = mode 0 +option.dreame.vacuum.p2156o-miot.cleaning_mode-1 = mode 1 +option.dreame.vacuum.p2156o-miot.cleaning_mode-2 = mode 2 +option.dreame.vacuum.p2156o-miot.cleaning_mode-3 = mode 3 +option.dreame.vacuum.p2156o-miot.mode-0 = Silent +option.dreame.vacuum.p2156o-miot.mode-1 = Basic +option.dreame.vacuum.p2156o-miot.mode-2 = Strong +option.dreame.vacuum.p2156o-miot.mode-3 = Full Speed +option.dreame.vacuum.p2156o-miot.mop_mode-1 = low water +option.dreame.vacuum.p2156o-miot.mop_mode-2 = medium water +option.dreame.vacuum.p2156o-miot.mop_mode-3 = high water +option.dreame.vacuum.p2156o-miot.save_map_status-0 = Off +option.dreame.vacuum.p2156o-miot.save_map_status-1 = On +option.dreame.vacuum.p2156o-miot.status-1 = Sweeping +option.dreame.vacuum.p2156o-miot.status-2 = Idle +option.dreame.vacuum.p2156o-miot.status-3 = Paused +option.dreame.vacuum.p2156o-miot.status-4 = Error +option.dreame.vacuum.p2156o-miot.status-5 = Go Charging +option.dreame.vacuum.p2156o-miot.status-6 = Charging +option.dreame.vacuum.p2156o-miot.status-7 = Mopping +option.dreame.vacuum.p2156o-miot.task_status-0 = Notask +option.dreame.vacuum.p2156o-miot.task_status-1 = AutoClean +option.dreame.vacuum.p2156o-miot.task_status-2 = CustomClean +option.dreame.vacuum.p2156o-miot.task_status-3 = SelectAreanClean +option.dreame.vacuum.p2156o-miot.task_status-4 = SpotArea +option.dreame.vacuum.p2156o-miot.waterbox_status-0 = Status 0 +option.dreame.vacuum.p2156o-miot.waterbox_status-1 = Status 1 +option.huayi.light.fanwy-miot.mode-1 = Normal Wind +option.huayi.light.fanwy-miot.mode-2 = Natural Wind +option.huayi.light.fanwy2-miot.mode-0 = Basic +option.huayi.light.fanwy2-miot.mode-1 = Natural Wind +option.huayi.light.fanwy2-miot.pre-custom-0 = Switch Off +option.huayi.light.fanwy2-miot.pre-custom-1 = Open +option.huayi.light.fanwy2-miot.reversal-0 = Postitive +option.huayi.light.fanwy2-miot.reversal-1 = Reverse +option.huayi.light.wyheat-miot.fault-0 = No Faults +option.lumi.curtain.hagl05-miot.en-night-tip-light-0 = Disable +option.lumi.curtain.hagl05-miot.en-night-tip-light-1 = Enable +option.lumi.curtain.hagl05-miot.fault-0 = No faults +option.lumi.curtain.hagl05-miot.manual-enabled-0 = Disable +option.lumi.curtain.hagl05-miot.manual-enabled-1 = Enable +option.lumi.curtain.hagl05-miot.polarity-0 = Positive +option.lumi.curtain.hagl05-miot.polarity-1 = Reverse +option.lumi.curtain.hagl05-miot.pos-limit-0 = Unlimit +option.lumi.curtain.hagl05-miot.pos-limit-1 = Limit +option.lumi.curtain.hagl05-miot.status-0 = Stopped +option.lumi.curtain.hagl05-miot.status-1 = Opening +option.lumi.curtain.hagl05-miot.status-2 = Closing +option.mijia.vacuum.v2-miot.charging-state-0 = Not-charging +option.mijia.vacuum.v2-miot.charging-state-1 = Charging +option.mijia.vacuum.v2-miot.charging-state-2 = Charging-competely +option.mijia.vacuum.v2-miot.direction_key-0 = direction 0 +option.mijia.vacuum.v2-miot.direction_key-1 = direction 1 +option.mijia.vacuum.v2-miot.direction_key-2 = direction 2 +option.mijia.vacuum.v2-miot.direction_key-3 = direction 3 +option.mijia.vacuum.v2-miot.direction_key-4 = direction 4 +option.mijia.vacuum.v2-miot.fan-level-0 = Silence +option.mijia.vacuum.v2-miot.fan-level-1 = Stanrd +option.mijia.vacuum.v2-miot.fan-level-2 = Middle +option.mijia.vacuum.v2-miot.fan-level-3 = Enchance +option.mijia.vacuum.v2-miot.fault-0 = No Faults +option.mijia.vacuum.v2-miot.fault-1 = Left-wheel-error +option.mijia.vacuum.v2-miot.fault-10 = Charging-error +option.mijia.vacuum.v2-miot.fault-11 = No-wate-error +option.mijia.vacuum.v2-miot.fault-12 = Pick-up-error +option.mijia.vacuum.v2-miot.fault-2 = Right-wheel-error +option.mijia.vacuum.v2-miot.fault-3 = Cliff-error +option.mijia.vacuum.v2-miot.fault-4 = Low-battery-error +option.mijia.vacuum.v2-miot.fault-5 = Bump-error +option.mijia.vacuum.v2-miot.fault-6 = Main-brush-error +option.mijia.vacuum.v2-miot.fault-7 = Side-brush-error +option.mijia.vacuum.v2-miot.fault-8 = Fan-motor-error +option.mijia.vacuum.v2-miot.fault-9 = Dustbin-error +option.mijia.vacuum.v2-miot.language-0 = English +option.mijia.vacuum.v2-miot.language-1 = 简体中文 +option.mijia.vacuum.v2-miot.language-2 = Español +option.mijia.vacuum.v2-miot.language-3 = Русский +option.mijia.vacuum.v2-miot.language-4 = Italiano +option.mijia.vacuum.v2-miot.language-5 = Français +option.mijia.vacuum.v2-miot.language-6 = Deutsch +option.mijia.vacuum.v2-miot.language-7 = 한국어 +option.mijia.vacuum.v2-miot.language-8 = Polski +option.mijia.vacuum.v2-miot.mode-1 = Auto-clean +option.mijia.vacuum.v2-miot.mode-2 = Spot-clean +option.mijia.vacuum.v2-miot.mode-3 = Wallflow-clean +option.mijia.vacuum.v2-miot.mop-status-0 = Mop Uninstall +option.mijia.vacuum.v2-miot.mop-status-1 = Mop Install +option.mijia.vacuum.v2-miot.status-1 = Idle +option.mijia.vacuum.v2-miot.status-2 = Sweeping +option.mijia.vacuum.v2-miot.status-3 = Paused +option.mijia.vacuum.v2-miot.status-4 = Error +option.mijia.vacuum.v2-miot.status-5 = Charging +option.mijia.vacuum.v2-miot.status-6 = Go Charging +option.mijia.vacuum.v2-miot.target-water-level-1 = Level1 +option.mijia.vacuum.v2-miot.target-water-level-2 = Level2 +option.mijia.vacuum.v2-miot.target-water-level-3 = Level3 +option.mmgg.pet_waterer.s1-miot.fault-0 = No faults +option.mmgg.pet_waterer.s1-miot.mode-1 = Common +option.mmgg.pet_waterer.s1-miot.mode-2 = Smart +option.mmgg.pet_waterer.s1-miot.resetConsumable-filter-cotton-reset-cotton-life = Reset Cotton Time +option.mmgg.pet_waterer.s1-miot.resetConsumable-filter-reset-filter-life = Reset Filter Life +option.mmgg.pet_waterer.s1-miot.resetConsumable-remain-clean-time-reset-clean-time = Reset Clean Time +option.mmgg.pet_waterer.s2-miot.fault-0 = No faults +option.mmgg.pet_waterer.s2-miot.mode-1 = Common +option.mmgg.pet_waterer.s2-miot.mode-2 = Smart +option.mmgg.pet_waterer.s2-miot.resetConsumable-filter-cotton-reset-cotton-life = Reset Cotton Time +option.mmgg.pet_waterer.s2-miot.resetConsumable-filter-reset-filter-life = Reset Filter Life +option.mmgg.pet_waterer.s2-miot.resetConsumable-remain-clean-time-reset-clean-time = Reset Clean Time +option.qmi.powerstrip.v1.mode-green = Green +option.qmi.powerstrip.v1.mode-normal = Normal +option.viomi.vacuum.v18-miot.clean-mode-0 = Everywhere +option.viomi.vacuum.v18-miot.clean-mode-1 = Edges +option.viomi.vacuum.v18-miot.clean-mode-2 = Surface +option.viomi.vacuum.v18-miot.clean-mode-3 = Fixed Location +option.viomi.vacuum.v18-miot.clean-way-0 = Sweep Floor +option.viomi.vacuum.v18-miot.clean-way-1 = Sweep +option.viomi.vacuum.v18-miot.clean-way-2 = Mop +option.viomi.vacuum.v18-miot.contact-state-0 = Off +option.viomi.vacuum.v18-miot.contact-state-1 = On +option.viomi.vacuum.v18-miot.dnd-enable-0 = Disabled +option.viomi.vacuum.v18-miot.dnd-enable-1 = Enabled +option.viomi.vacuum.v18-miot.door-state-0 = Door 0 +option.viomi.vacuum.v18-miot.door-state-1 = Door 1 +option.viomi.vacuum.v18-miot.door-state-2 = Door 2 +option.viomi.vacuum.v18-miot.door-state-3 = Door 3 +option.viomi.vacuum.v18-miot.download-status-0 = Free +option.viomi.vacuum.v18-miot.download-status-1 = Downloading +option.viomi.vacuum.v18-miot.dust-collection-0 = Close +option.viomi.vacuum.v18-miot.dust-collection-1 = Open +option.viomi.vacuum.v18-miot.fault-0 = No Error +option.viomi.vacuum.v18-miot.fault-1 = Low Battery Find Charge +option.viomi.vacuum.v18-miot.fault-10 = Side Brush Err +option.viomi.vacuum.v18-miot.fault-11 = Fan Err +option.viomi.vacuum.v18-miot.fault-12 = Lidar Cover +option.viomi.vacuum.v18-miot.fault-13 = Garbage Full +option.viomi.vacuum.v18-miot.fault-14 = Garbage Out +option.viomi.vacuum.v18-miot.fault-15 = Garbage Full Out +option.viomi.vacuum.v18-miot.fault-16 = Trapped +option.viomi.vacuum.v18-miot.fault-17 = Pick Up +option.viomi.vacuum.v18-miot.fault-18 = Garbage Out +option.viomi.vacuum.v18-miot.fault-2 = Low Bat Need Poweroff +option.viomi.vacuum.v18-miot.fault-20 = Cannot Arrive +option.viomi.vacuum.v18-miot.fault-21 = Start From Forbid +option.viomi.vacuum.v18-miot.fault-22 = Drop +option.viomi.vacuum.v18-miot.fault-23 = Kit Water Pump +option.viomi.vacuum.v18-miot.fault-24 = Find Charge Failed +option.viomi.vacuum.v18-miot.fault-25 = No Mop Clean +option.viomi.vacuum.v18-miot.fault-26 = Low Battery Cant Clean +option.viomi.vacuum.v18-miot.fault-3 = Wheel Trap +option.viomi.vacuum.v18-miot.fault-4 = Collision Error +option.viomi.vacuum.v18-miot.fault-5 = Tile Do Task +option.viomi.vacuum.v18-miot.fault-6 = Lidar Point Err +option.viomi.vacuum.v18-miot.fault-7 = Front Wall Err +option.viomi.vacuum.v18-miot.fault-8 = Along Wall Err +option.viomi.vacuum.v18-miot.fault-9 = Mid Brush Err +option.viomi.vacuum.v18-miot.has-map-0 = No map in memory +option.viomi.vacuum.v18-miot.has-map-1 = Map in memory +option.viomi.vacuum.v18-miot.has-newmap-0 = None +option.viomi.vacuum.v18-miot.has-newmap-1 = New +option.viomi.vacuum.v18-miot.has-newmap-2 = Cover +option.viomi.vacuum.v18-miot.map-type-0 = Upload to url0 +option.viomi.vacuum.v18-miot.map-type-1 = Upload to url1 +option.viomi.vacuum.v18-miot.map-type-2 = Upload to url2 +option.viomi.vacuum.v18-miot.mode-0 = Silent +option.viomi.vacuum.v18-miot.mode-1 = Basic +option.viomi.vacuum.v18-miot.mode-2 = Medium +option.viomi.vacuum.v18-miot.mode-3 = Strong +option.viomi.vacuum.v18-miot.mop-route-0 = C-Curved +option.viomi.vacuum.v18-miot.mop-route-1 = Y-Route +option.viomi.vacuum.v18-miot.status-0 = Sleep +option.viomi.vacuum.v18-miot.status-1 = Idle +option.viomi.vacuum.v18-miot.status-2 = Paused +option.viomi.vacuum.v18-miot.status-3 = Go Charging +option.viomi.vacuum.v18-miot.status-4 = Charging +option.viomi.vacuum.v18-miot.status-5 = Sweeping +option.viomi.vacuum.v18-miot.status-6 = Sweeping and Mopping +option.viomi.vacuum.v18-miot.status-7 = Mopping +option.viomi.vacuum.v18-miot.suction-grade-0 = Silent +option.viomi.vacuum.v18-miot.suction-grade-1 = Standard +option.viomi.vacuum.v18-miot.suction-grade-2 = Medium +option.viomi.vacuum.v18-miot.suction-grade-3 = Strong +option.viomi.vacuum.v18-miot.sweep-type-0 = Total +option.viomi.vacuum.v18-miot.sweep-type-2 = Wall +option.viomi.vacuum.v18-miot.sweep-type-3 = Zone +option.viomi.vacuum.v18-miot.sweep-type-4 = Point +option.viomi.vacuum.v18-miot.sweep-type-5 = Control +option.viomi.vacuum.v18-miot.vacuumaction-pause = Pause +option.viomi.vacuum.v18-miot.vacuumaction-start-charge = Goto Dock +option.viomi.vacuum.v18-miot.vacuumaction-start-mop = Start Mop +option.viomi.vacuum.v18-miot.vacuumaction-start-only-sweep = Start Sweep Only +option.viomi.vacuum.v18-miot.vacuumaction-start-sweep = Sweep +option.viomi.vacuum.v18-miot.vacuumaction-start-sweep-mop = Start Sweep Mop +option.viomi.vacuum.v18-miot.vacuumaction-stop-massage = Stop Sweep +option.viomi.vacuum.v18-miot.vacuumaction-stop-sweeping = Stop Sweep +option.viomi.vacuum.v18-miot.water-grade-0 = 1 Block +option.viomi.vacuum.v18-miot.water-grade-1 = 2 Blocks +option.viomi.vacuum.v18-miot.water-grade-2 = 3 Blocks +option.viomi.vacuum.v18-miot.wdr-mode-0 = Mode 0 +option.viomi.vacuum.v18-miot.wdr-mode-1 = Mode 1 +option.viomi.vacuum.v18-miot.wdr-mode-2 = Mode 2 +option.xiaomi.aircondition.ma1-miot.fan-level-0 = Auto +option.xiaomi.aircondition.ma1-miot.fan-level-1 = Level1 +option.xiaomi.aircondition.ma1-miot.fan-level-2 = Level2 +option.xiaomi.aircondition.ma1-miot.fan-level-3 = Level3 +option.xiaomi.aircondition.ma1-miot.fan-level-4 = Level4 +option.xiaomi.aircondition.ma1-miot.fan-level-5 = Level5 +option.xiaomi.aircondition.ma1-miot.fan-level-6 = Level6 +option.xiaomi.aircondition.ma1-miot.fan-level-7 = Level7 +option.xiaomi.aircondition.ma1-miot.mode-1 = Cool +option.xiaomi.aircondition.ma1-miot.mode-2 = Dry +option.xiaomi.aircondition.ma1-miot.mode-3 = Heat +option.xiaomi.aircondition.ma1-miot.mode-4 = Fan +option.xiaomi.aircondition.mc1-miot.fan-level-0 = Auto +option.xiaomi.aircondition.mc1-miot.fan-level-1 = Level1 +option.xiaomi.aircondition.mc1-miot.fan-level-2 = Level2 +option.xiaomi.aircondition.mc1-miot.fan-level-3 = Level3 +option.xiaomi.aircondition.mc1-miot.fan-level-4 = Level4 +option.xiaomi.aircondition.mc1-miot.fan-level-5 = Level5 +option.xiaomi.aircondition.mc1-miot.fan-level-6 = Level6 +option.xiaomi.aircondition.mc1-miot.fan-level-7 = Level7 +option.xiaomi.aircondition.mc1-miot.mode-2 = Cool +option.xiaomi.aircondition.mc1-miot.mode-3 = Dry +option.xiaomi.aircondition.mc1-miot.mode-4 = Fan +option.xiaomi.aircondition.mc1-miot.mode-5 = Heat +option.yeelink.light.ceiling.colorMode-0 = Default +option.yeelink.light.ceiling.colorMode-1 = RGB mode +option.yeelink.light.ceiling.colorMode-2 = CT mode +option.yeelink.light.ceiling.colorMode-3 = HSV mode +option.yeelink.light.ceiling.colorMode-4 = Color Flow mode +option.yeelink.light.ceiling.colorMode-5 = Night Light mode +option.yeelink.light.ceiling2.colorMode-0 = Default +option.yeelink.light.ceiling2.colorMode-1 = RGB mode +option.yeelink.light.ceiling2.colorMode-2 = CT mode +option.yeelink.light.ceiling2.colorMode-3 = HSV mode +option.yeelink.light.ceiling2.colorMode-4 = Color Flow mode +option.yeelink.light.ceiling2.colorMode-5 = Night Light mode +option.yeelink.light.ceiling4.colorMode-0 = Default +option.yeelink.light.ceiling4.colorMode-1 = RGB mode +option.yeelink.light.ceiling4.colorMode-2 = CT mode +option.yeelink.light.ceiling4.colorMode-3 = HSV mode +option.yeelink.light.ceiling4.colorMode-4 = Color Flow mode +option.yeelink.light.ceiling4.colorMode-5 = Night Light mode +option.yeelink.light.color1.colorMode-0 = Default +option.yeelink.light.color1.colorMode-1 = RGB mode +option.yeelink.light.color1.colorMode-2 = CT mode +option.yeelink.light.color1.colorMode-3 = HSV mode +option.yeelink.light.color1.colorMode-4 = Color Flow mode +option.yeelink.light.color1.colorMode-5 = Night Light mode +option.yeelink.light.lamp1.colorMode-0 = Default +option.yeelink.light.lamp1.colorMode-1 = RGB mode +option.yeelink.light.lamp1.colorMode-2 = CT mode +option.yeelink.light.lamp1.colorMode-3 = HSV mode +option.yeelink.light.lamp1.colorMode-4 = Color Flow mode +option.yeelink.light.lamp1.colorMode-5 = Night Light mode +option.yeelink.light.light15.colorMode-0 = Default +option.yeelink.light.light15.colorMode-1 = RGB mode +option.yeelink.light.light15.colorMode-2 = CT mode +option.yeelink.light.light15.colorMode-3 = HSV mode +option.yeelink.light.light15.colorMode-4 = Color Flow mode +option.yeelink.light.light15.colorMode-5 = Night Light mode +option.yeelink.switch.sw1-miot.mode-0 = Off +option.yeelink.switch.sw1-miot.mode-1 = On +option.yeelink.switch.sw1-miot.mode2-0 = Off +option.yeelink.switch.sw1-miot.mode2-1 = On +option.yunmi.waterpurifier.lightMode-0 = Simple Mode +option.yunmi.waterpurifier.lightMode-1 = Special Mode +option.yunmi.waterpurifier.lx8.lightMode-0 = Simple Mode +option.yunmi.waterpurifier.lx8.lightMode-1 = Special Mode +option.zhimi.airfresh.va4.led_level-0 = High +option.zhimi.airfresh.va4.led_level-1 = Low +option.zhimi.airfresh.va4.led_level-2 = Idle +option.zhimi.airfresh.va4.mode-auto = Auto +option.zhimi.airfresh.va4.mode-interval = Interval +option.zhimi.airfresh.va4.mode-low = 1 +option.zhimi.airfresh.va4.mode-middle = 2 +option.zhimi.airfresh.va4.mode-silent = Night +option.zhimi.airfresh.va4.mode-strong = 3 +option.zhimi.airpurifier.m1.favoritelevel-0 = Favorite 0 +option.zhimi.airpurifier.m1.favoritelevel-1 = Favorite 1 +option.zhimi.airpurifier.m1.favoritelevel-10 = Favorite 10 +option.zhimi.airpurifier.m1.favoritelevel-11 = Favorite 11 +option.zhimi.airpurifier.m1.favoritelevel-12 = Favorite 13 +option.zhimi.airpurifier.m1.favoritelevel-13 = Favorite 13 +option.zhimi.airpurifier.m1.favoritelevel-14 = Favorite 14 +option.zhimi.airpurifier.m1.favoritelevel-15 = Favorite 15 +option.zhimi.airpurifier.m1.favoritelevel-2 = Favorite 2 +option.zhimi.airpurifier.m1.favoritelevel-3 = Favorite 3 +option.zhimi.airpurifier.m1.favoritelevel-4 = Favorite 4 +option.zhimi.airpurifier.m1.favoritelevel-5 = Favorite 5 +option.zhimi.airpurifier.m1.favoritelevel-6 = Favorite 6 +option.zhimi.airpurifier.m1.favoritelevel-7 = Favorite 7 +option.zhimi.airpurifier.m1.favoritelevel-8 = Favorite 8 +option.zhimi.airpurifier.m1.favoritelevel-9 = Favorite 9 +option.zhimi.airpurifier.m1.mode-auto = Auto +option.zhimi.airpurifier.m1.mode-favorite = Favorite +option.zhimi.airpurifier.m1.mode-high = High +option.zhimi.airpurifier.m1.mode-idle = Idle +option.zhimi.airpurifier.m1.mode-medium = Medium +option.zhimi.airpurifier.m1.mode-silent = Silent +option.zhimi.airpurifier.m1.mode-strong = Strong +option.zhimi.airpurifier.ma4-miot.aqi-runstate-0 = continue +option.zhimi.airpurifier.ma4-miot.aqi-runstate-1 = hold +option.zhimi.airpurifier.ma4-miot.aqi-runstate-2 = sleep +option.zhimi.airpurifier.ma4-miot.aqi-state-0 = AQI_GOOD_L +option.zhimi.airpurifier.ma4-miot.aqi-state-1 = AQI_GOOD_H +option.zhimi.airpurifier.ma4-miot.aqi-state-2 = AQI_MID_L +option.zhimi.airpurifier.ma4-miot.aqi-state-3 = AQI_MID_H +option.zhimi.airpurifier.ma4-miot.aqi-state-4 = AQI_BAD_L +option.zhimi.airpurifier.ma4-miot.aqi-state-5 = AQI_BAD_H +option.zhimi.airpurifier.ma4-miot.brightness-0 = brightest +option.zhimi.airpurifier.ma4-miot.brightness-1 = glimmer +option.zhimi.airpurifier.ma4-miot.brightness-2 = led_closed +option.zhimi.airpurifier.ma4-miot.fan-level-1 = Level1 +option.zhimi.airpurifier.ma4-miot.fan-level-2 = Level2 +option.zhimi.airpurifier.ma4-miot.fan-level-3 = Level3 +option.zhimi.airpurifier.ma4-miot.fault-0 = No faults +option.zhimi.airpurifier.ma4-miot.fault-1 = m1_run +option.zhimi.airpurifier.ma4-miot.fault-2 = m1_stuck +option.zhimi.airpurifier.ma4-miot.fault-3 = no_sensor +option.zhimi.airpurifier.ma4-miot.fault-4 = error_hum +option.zhimi.airpurifier.ma4-miot.fault-5 = error_temp +option.zhimi.airpurifier.ma4-miot.manual-level-1 = Level1 +option.zhimi.airpurifier.ma4-miot.manual-level-2 = Level2 +option.zhimi.airpurifier.ma4-miot.manual-level-3 = Level3 +option.zhimi.airpurifier.ma4-miot.mode-0 = Auto +option.zhimi.airpurifier.ma4-miot.mode-1 = Sleep +option.zhimi.airpurifier.ma4-miot.mode-2 = Favorite +option.zhimi.airpurifier.ma4-miot.mode-3 = None +option.zhimi.airpurifier.ma4-miot.reboot-cause-0 = REASON_HW_BOOT +option.zhimi.airpurifier.ma4-miot.reboot-cause-1 = REASON_USER_REBOOT +option.zhimi.airpurifier.ma4-miot.reboot-cause-2 = REASON_UPDATE +option.zhimi.airpurifier.ma4-miot.reboot-cause-3 = REASON_WDT +option.zhimi.airpurifier.mb3-miot.aqi-runstate-0 = continuous sampling +option.zhimi.airpurifier.mb3-miot.aqi-runstate-1 = preparing sampling +option.zhimi.airpurifier.mb3-miot.aqi-runstate-2 = stop sampling +option.zhimi.airpurifier.mb3-miot.aqi-state-0 = best +option.zhimi.airpurifier.mb3-miot.aqi-state-1 = good +option.zhimi.airpurifier.mb3-miot.aqi-state-2 = normal +option.zhimi.airpurifier.mb3-miot.aqi-state-3 = bad +option.zhimi.airpurifier.mb3-miot.aqi-state-4 = worse +option.zhimi.airpurifier.mb3-miot.aqi-state-5 = unhealthy +option.zhimi.airpurifier.mb3-miot.brightness-0 = Brightest +option.zhimi.airpurifier.mb3-miot.brightness-1 = Glimmer +option.zhimi.airpurifier.mb3-miot.brightness-2 = Led Closed +option.zhimi.airpurifier.mb3-miot.country-code-44 = 分销英文 +option.zhimi.airpurifier.mb3-miot.country-code-82 = 韩国 +option.zhimi.airpurifier.mb3-miot.country-code-852 = 中国香港 +option.zhimi.airpurifier.mb3-miot.country-code-886 = 中国台湾 +option.zhimi.airpurifier.mb3-miot.country-code-91 = 印度 +option.zhimi.airpurifier.mb3-miot.fan-level-1 = Level1 +option.zhimi.airpurifier.mb3-miot.fan-level-2 = Level2 +option.zhimi.airpurifier.mb3-miot.fan-level-3 = Level3 +option.zhimi.airpurifier.mb3-miot.fault-0 = No faults +option.zhimi.airpurifier.mb3-miot.fault-1 = m1_run +option.zhimi.airpurifier.mb3-miot.fault-2 = m1_stuck +option.zhimi.airpurifier.mb3-miot.fault-3 = no_sensor +option.zhimi.airpurifier.mb3-miot.fault-4 = error_hum +option.zhimi.airpurifier.mb3-miot.fault-5 = error_temp +option.zhimi.airpurifier.mb3-miot.manual-level-1 = Level1 +option.zhimi.airpurifier.mb3-miot.manual-level-2 = Level2 +option.zhimi.airpurifier.mb3-miot.manual-level-3 = Level3 +option.zhimi.airpurifier.mb3-miot.mode-0 = Auto +option.zhimi.airpurifier.mb3-miot.mode-1 = Sleep +option.zhimi.airpurifier.mb3-miot.mode-2 = Favorite +option.zhimi.airpurifier.mb3-miot.mode-3 = None +option.zhimi.airpurifier.mb3-miot.reboot-cause-0 = hardware reboot +option.zhimi.airpurifier.mb3-miot.reboot-cause-1 = software reboot +option.zhimi.airpurifier.mb3-miot.reboot-cause-2 = update reboot +option.zhimi.airpurifier.mb3-miot.reboot-cause-3 = dog reboot +option.zhimi.airpurifier.mb4-miot.mode-0 = Auto +option.zhimi.airpurifier.mb4-miot.mode-1 = Sleep +option.zhimi.airpurifier.mb4-miot.mode-2 = Favorite +option.zhimi.airpurifier.vb2-miot.actions-button-toggle = Toggle +option.zhimi.airpurifier.vb2-miot.actions-button-toggle-mode = Toggle Mode +option.zhimi.airpurifier.vb2-miot.aqi_runstate-0 = continue +option.zhimi.airpurifier.vb2-miot.aqi_runstate-1 = hold +option.zhimi.airpurifier.vb2-miot.aqi_runstate-2 = sleep +option.zhimi.airpurifier.vb2-miot.aqi_state-0 = AQI_GOOD_L +option.zhimi.airpurifier.vb2-miot.aqi_state-1 = AQI_GOOD_H +option.zhimi.airpurifier.vb2-miot.aqi_state-2 = AQI_MID_L +option.zhimi.airpurifier.vb2-miot.aqi_state-3 = AQI_MID_H +option.zhimi.airpurifier.vb2-miot.aqi_state-4 = AQI_BAD_L +option.zhimi.airpurifier.vb2-miot.aqi_state-5 = AQI_BAD_H +option.zhimi.airpurifier.vb2-miot.brightness-0 = brightest +option.zhimi.airpurifier.vb2-miot.brightness-1 = glimmer +option.zhimi.airpurifier.vb2-miot.brightness-2 = not bright +option.zhimi.airpurifier.vb2-miot.country_code-44 = UK +option.zhimi.airpurifier.vb2-miot.country_code-82 = Korea +option.zhimi.airpurifier.vb2-miot.country_code-852 = Hong Kong +option.zhimi.airpurifier.vb2-miot.country_code-886 = Taiwan +option.zhimi.airpurifier.vb2-miot.country_code-91 = India +option.zhimi.airpurifier.vb2-miot.fan_level-0 = Sleep +option.zhimi.airpurifier.vb2-miot.fan_level-1 = Level1 +option.zhimi.airpurifier.vb2-miot.fan_level-2 = Level2 +option.zhimi.airpurifier.vb2-miot.fan_level-3 = Level3 +option.zhimi.airpurifier.vb2-miot.fault-0 = No faults +option.zhimi.airpurifier.vb2-miot.fault-1 = m1_run +option.zhimi.airpurifier.vb2-miot.fault-2 = m1_stuck +option.zhimi.airpurifier.vb2-miot.fault-3 = no_sensor +option.zhimi.airpurifier.vb2-miot.fault-4 = error_hum +option.zhimi.airpurifier.vb2-miot.fault-5 = error_temp +option.zhimi.airpurifier.vb2-miot.fault-6 = timer_error1 +option.zhimi.airpurifier.vb2-miot.fault-7 = timer_error2 +option.zhimi.airpurifier.vb2-miot.manual_level-1 = level1 +option.zhimi.airpurifier.vb2-miot.manual_level-2 = level2 +option.zhimi.airpurifier.vb2-miot.manual_level-3 = level3 +option.zhimi.airpurifier.vb2-miot.mode-0 = Auto +option.zhimi.airpurifier.vb2-miot.mode-1 = Night +option.zhimi.airpurifier.vb2-miot.mode-2 = Favourite +option.zhimi.airpurifier.vb2-miot.mode-3 = Manual +option.zhimi.airpurifier.vb2-miot.reboot_cause-0 = REASON_HW_BOOT +option.zhimi.airpurifier.vb2-miot.reboot_cause-1 = REASON_USER_REBOOT +option.zhimi.airpurifier.vb2-miot.reboot_cause-2 = REASON_UPDATE +option.zhimi.airpurifier.vb2-miot.reboot_cause-3 = REASON_WDT +option.zhimi.airpurifier.vb2-miot.sensor_state-0 = waiting +option.zhimi.airpurifier.vb2-miot.sensor_state-1 = ready +option.zhimi.airpurifier.za1-miot.brightness-0 = Bright +option.zhimi.airpurifier.za1-miot.brightness-1 = Light +option.zhimi.airpurifier.za1-miot.brightness-2 = Off +option.zhimi.airpurifier.za1-miot.country_code-1 = America +option.zhimi.airpurifier.za1-miot.country_code-10 = Taiwan +option.zhimi.airpurifier.za1-miot.country_code-2 = Canada +option.zhimi.airpurifier.za1-miot.country_code-3 = Singapore +option.zhimi.airpurifier.za1-miot.country_code-4 = Europe +option.zhimi.airpurifier.za1-miot.country_code-5 = Australian +option.zhimi.airpurifier.za1-miot.country_code-6 = Korea +option.zhimi.airpurifier.za1-miot.country_code-7 = China +option.zhimi.airpurifier.za1-miot.country_code-8 = France +option.zhimi.airpurifier.za1-miot.country_code-9 = Japanese +option.zhimi.airpurifier.za1-miot.fault-0 = No faults +option.zhimi.airpurifier.za1-miot.fault-1 = m1_run +option.zhimi.airpurifier.za1-miot.fault-2 = m1_stuck +option.zhimi.airpurifier.za1-miot.fault-3 = no_sensor +option.zhimi.airpurifier.za1-miot.fault-4 = error_hum +option.zhimi.airpurifier.za1-miot.fault-5 = error_temp +option.zhimi.airpurifier.za1-miot.fault-6 = timer_error1 +option.zhimi.airpurifier.za1-miot.fault-7 = timer_error2 +option.zhimi.airpurifier.za1-miot.mode-0 = Auto +option.zhimi.airpurifier.za1-miot.mode-1 = Sleep +option.zhimi.airpurifier.za1-miot.mode-2 = Favorite +option.zhimi.airpurifier.za1-miot.reboot_cause-0 = hardware +option.zhimi.airpurifier.za1-miot.reboot_cause-1 = human +option.zhimi.airpurifier.za1-miot.reboot_cause-2 = upgrade +option.zhimi.airpurifier.za1-miot.reboot_cause-3 = watchdog +option.zhimi.airpurifier.za1-miot.sensor_state-0 = waiting +option.zhimi.airpurifier.za1-miot.sensor_state-1 = ready +option.zhimi.fan.sa1.angle-120 = 120 +option.zhimi.fan.sa1.angle-30 = 30 +option.zhimi.fan.sa1.angle-60 = 60 +option.zhimi.fan.sa1.angle-90 = 90 +option.zhimi.fan.sa1.led_b-0 = Bright +option.zhimi.fan.sa1.led_b-1 = Dimmed +option.zhimi.fan.sa1.led_b-2 = Off +option.zhimi.fan.sa1.move- = None +option.zhimi.fan.sa1.move-left = Left +option.zhimi.fan.sa1.move-right = Right +option.zhimi.fan.v3.angle-120 = 120 +option.zhimi.fan.v3.angle-30 = 30 +option.zhimi.fan.v3.angle-60 = 60 +option.zhimi.fan.v3.angle-90 = 90 +option.zhimi.fan.v3.led_b-0 = Bright +option.zhimi.fan.v3.led_b-1 = Dimmed +option.zhimi.fan.v3.led_b-2 = Off +option.zhimi.fan.v3.move- = None +option.zhimi.fan.v3.move-left = Left +option.zhimi.fan.v3.move-right = Right +option.zhimi.fan.za5-miot.button_press-0 = No Button Pressed +option.zhimi.fan.za5-miot.button_press-1 = power +option.zhimi.fan.za5-miot.button_press-2 = swing +option.zhimi.fan.za5-miot.fan_level-1 = Level 1 +option.zhimi.fan.za5-miot.fan_level-2 = Level 2 +option.zhimi.fan.za5-miot.fan_level-3 = Level 3 +option.zhimi.fan.za5-miot.fan_level-4 = Level 4 +option.zhimi.fan.za5-miot.mode-0 = Natural Wind +option.zhimi.fan.za5-miot.mode-1 = Straight Wind +option.zhimi.heater.ma2-miot.brightness-0 = Bright +option.zhimi.heater.ma2-miot.brightness-1 = Dark +option.zhimi.heater.ma2-miot.brightness-2 = Extinguished +option.zhimi.heater.ma2-miot.fault-0 = No Error +option.zhimi.heater.ma2-miot.fault-1 = NTC Connect Error +option.zhimi.heater.ma2-miot.fault-2 = High Temperature Alarm +option.zhimi.heater.ma2-miot.fault-3 = EEPROM Error +option.zhimi.heater.ma2-miot.fault-4 = Multi Errors +option.zhimi.heater.ma3-miot.actions-private-service-toggle-switch = Toggle Private Service +option.zhimi.heater.ma3-miot.brightness-0 = Bright +option.zhimi.heater.ma3-miot.brightness-1 = Dark +option.zhimi.heater.ma3-miot.brightness-2 = Extinguished +option.zhimi.heater.ma3-miot.fault-0 = No Error +option.zhimi.heater.ma3-miot.fault-1 = NTC Connect Error +option.zhimi.heater.ma3-miot.fault-2 = High Temperature Alarm +option.zhimi.heater.ma3-miot.fault-3 = EEPROM Error +option.zhimi.heater.ma3-miot.fault-4 = Multi Errors +option.zhimi.heater.ma3-miot.mode-0 = Auto +option.zhimi.heater.ma3-miot.mode-1 = LL Mode +option.zhimi.heater.ma3-miot.mode-2 = HH Mode +option.zhimi.heater.mc2-miot.brightness-0 = Bright +option.zhimi.heater.mc2-miot.brightness-1 = Dark +option.zhimi.heater.mc2-miot.brightness-2 = Extinguished +option.zhimi.heater.mc2-miot.country_code-0 = Unknown +option.zhimi.heater.mc2-miot.country_code-1 = US +option.zhimi.heater.mc2-miot.country_code-33 = FR +option.zhimi.heater.mc2-miot.country_code-44 = EU +option.zhimi.heater.mc2-miot.country_code-7 = RU +option.zhimi.heater.mc2-miot.country_code-81 = JP +option.zhimi.heater.mc2-miot.country_code-82 = KR +option.zhimi.heater.mc2-miot.country_code-852 = HK +option.zhimi.heater.mc2-miot.country_code-86 = CN +option.zhimi.heater.mc2-miot.country_code-886 = TW +option.zhimi.heater.mc2-miot.fault-0 = No Error +option.zhimi.heater.mc2-miot.fault-1 = NTC Connect Error +option.zhimi.heater.mc2-miot.fault-2 = High Temperature Alarm +option.zhimi.heater.mc2-miot.fault-3 = EEPROM Error +option.zhimi.heater.mc2-miot.fault-4 = Multi Errors +option.zhimi.heater.na1-miot.brightness-0 = Bright +option.zhimi.heater.na1-miot.brightness-1 = Dark +option.zhimi.heater.na1-miot.brightness-2 = Extinguished +option.zhimi.heater.na1-miot.fault-0 = No Error +option.zhimi.heater.na1-miot.fault-1 = NTC Connect Error +option.zhimi.heater.na1-miot.fault-2 = High Temperature Alarm +option.zhimi.heater.na1-miot.fault-3 = EEPROM Error +option.zhimi.heater.na1-miot.fault-4 = Multi Errors +option.zhimi.heater.na1-miot.heat_level-1 = High +option.zhimi.heater.na1-miot.heat_level-2 = Low +option.zhimi.heater.na1-miot.mode-0 = Fan not swing +option.zhimi.heater.na1-miot.mode-1 = Fan swing +option.zhimi.heater.nb1-miot.brightness-0 = Bright +option.zhimi.heater.nb1-miot.brightness-1 = Dark +option.zhimi.heater.nb1-miot.brightness-2 = Extinguished +option.zhimi.heater.nb1-miot.country_code-0 = Unknown +option.zhimi.heater.nb1-miot.country_code-1 = US +option.zhimi.heater.nb1-miot.country_code-33 = FR +option.zhimi.heater.nb1-miot.country_code-44 = EU +option.zhimi.heater.nb1-miot.country_code-7 = RU +option.zhimi.heater.nb1-miot.country_code-81 = JP +option.zhimi.heater.nb1-miot.country_code-82 = KR +option.zhimi.heater.nb1-miot.country_code-852 = HK +option.zhimi.heater.nb1-miot.country_code-86 = CN +option.zhimi.heater.nb1-miot.country_code-886 = TW +option.zhimi.heater.nb1-miot.fault-0 = No Error +option.zhimi.heater.nb1-miot.fault-1 = NTC Connect Error +option.zhimi.heater.nb1-miot.fault-2 = High Temperature Alarm +option.zhimi.heater.nb1-miot.fault-3 = EEPROM Error +option.zhimi.heater.nb1-miot.fault-4 = Multi Errors +option.zhimi.heater.nb1-miot.heat_level-1 = High +option.zhimi.heater.nb1-miot.heat_level-2 = Low +option.zhimi.heater.nb1-miot.mode-0 = Fan not swing +option.zhimi.heater.nb1-miot.mode-1 = Fan swing +option.zhimi.heater.za2-miot.brightness-0 = Bright +option.zhimi.heater.za2-miot.brightness-1 = Dark +option.zhimi.heater.za2-miot.brightness-2 = Extinguished +option.zhimi.heater.za2-miot.fault-0 = No Error +option.zhimi.heater.za2-miot.fault-1 = NTC Connect Error +option.zhimi.heater.za2-miot.fault-2 = High Temperature Alarm +option.zhimi.heater.za2-miot.fault-3 = EEPROM Error +option.zhimi.heater.za2-miot.fault-4 = Multi Errors +option.zhimi.heater.zb1-miot.brightness-0 = Bright +option.zhimi.heater.zb1-miot.brightness-1 = Dark +option.zhimi.heater.zb1-miot.brightness-2 = Extinguished +option.zhimi.heater.zb1-miot.country-code-0 = Unknown +option.zhimi.heater.zb1-miot.country-code-1 = US +option.zhimi.heater.zb1-miot.country-code-33 = FR +option.zhimi.heater.zb1-miot.country-code-44 = EU +option.zhimi.heater.zb1-miot.country-code-7 = RU +option.zhimi.heater.zb1-miot.country-code-81 = JP +option.zhimi.heater.zb1-miot.country-code-82 = KR +option.zhimi.heater.zb1-miot.country-code-852 = HK +option.zhimi.heater.zb1-miot.country-code-86 = CN +option.zhimi.heater.zb1-miot.country-code-886 = TW +option.zhimi.heater.zb1-miot.fault-0 = No Error +option.zhimi.heater.zb1-miot.fault-1 = NTC Connect Error +option.zhimi.heater.zb1-miot.fault-2 = High Temperature Alarm +option.zhimi.heater.zb1-miot.fault-3 = EEPROM Error +option.zhimi.heater.zb1-miot.fault-4 = Multi Errors +option.zhimi.humidifier.ca4.ButtonPressed-0 = none +option.zhimi.humidifier.ca4.ButtonPressed-1 = led +option.zhimi.humidifier.ca4.ButtonPressed-2 = power +option.zhimi.humidifier.ca4.bright-0 = Dark +option.zhimi.humidifier.ca4.bright-1 = Dimmed +option.zhimi.humidifier.ca4.bright-2 = Brightest +option.zhimi.humidifier.ca4.mode-0 = Auto +option.zhimi.humidifier.ca4.mode-1 = Silent +option.zhimi.humidifier.ca4.mode-2 = Normal +option.zhimi.humidifier.ca4.mode-3 = Maximum + 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 353fc1078883e..440c142ad12bb 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 @@ -12,7 +12,10 @@ */ package org.openhab.binding.miio.internal; +import static org.openhab.binding.miio.internal.MiIoBindingConstants.*; + import java.io.File; +import java.io.FileFilter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; @@ -24,6 +27,9 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; @@ -59,6 +65,7 @@ public class ReadmeHelper { private static final String BASEFILE = "./README.base.md"; private static final String OUTPUTFILE = "./README.md"; private static final String DEVICE_NAMES_FILE = "./src/main/resources/misc/device_names.json"; + private static final String I18N_CHANNEL_FILE = "./src/main/resources/OH-INF/i18n/basic.properties"; private static final boolean UPDATE_OPTION_MAPPING_README_COMMENTS = true; @Disabled @@ -71,7 +78,6 @@ public static void main(String[] args) { StringWriter channelList = rm.channelList(); LOGGER.info("## Creating Item Files for miio:basic devices"); StringWriter itemFileExamples = rm.itemFileExamples(); - LOGGER.info("## Done"); try { String baseDoc = new String(Files.readAllBytes(Paths.get(BASEFILE)), StandardCharsets.UTF_8); String newDoc = baseDoc.replaceAll("!!!devices", deviceList.toString()) @@ -79,8 +85,34 @@ public static void main(String[] args) { .replaceAll("!!!itemFileExamples", itemFileExamples.toString()); Files.write(Paths.get(OUTPUTFILE), newDoc.getBytes(StandardCharsets.UTF_8)); } catch (IOException e) { - LOGGER.warn("IO exception", e); + LOGGER.warn("IO exception writing readme", e); + } + + LOGGER.info("## Creating i18n entries for devices and miio:basic channels"); + StringBuilder sb = new StringBuilder(); + sb.append("# Automatic created list by miio readme maker for miio devices & database channels\n\n"); + sb.append("# Devices\n\n"); + for (MiIoDevices d : Arrays.asList(MiIoDevices.values())) { + sb.append(I18N_THING_PREFIX); + sb.append(d.getModel()); + sb.append(" = "); + sb.append(d.getDescription()); + sb.append("\n"); + } + sb.append("\n# Channels\n\n"); + for (Entry e : sortByKeys(rm.createI18nEntries()).entrySet()) { + sb.append(e.getKey()); + sb.append(" = "); + sb.append(e.getValue()); + sb.append("\n"); + } + sb.append("\n"); + try { + Files.write(Paths.get(I18N_CHANNEL_FILE), sb.toString().getBytes(StandardCharsets.UTF_8)); + } catch (IOException e) { + LOGGER.warn("IO exception creating i18n file", e); } + LOGGER.info("## Done"); } private StringWriter deviceList() { @@ -163,25 +195,21 @@ private StringWriter channelList() { } public static String readmeOptionMapping(MiIoBasicChannel channel, String model) { - StateDescriptionDTO stateDescription = channel.getStateDescription(); - if (stateDescription != null && stateDescription.getOptions() != null) { - final List options = stateDescription.getOptions(); - if (options != null && !options.isEmpty()) { - StringBuilder mapping = new StringBuilder(); - mapping.append("Value mapping `["); - options.forEach((option) -> { - mapping.append(String.format("\"%s\"=\"%s\",", String.valueOf(option.value), - String.valueOf(option.label))); - }); - mapping.deleteCharAt(mapping.length() - 1); - mapping.append("]`"); - String newComment = mapping.toString(); - if (!channel.getReadmeComment().contentEquals(newComment)) { - LOGGER.info("Channel {} - {} readme comment updated to '{}'", model, channel.getChannel(), - newComment); - } - return newComment; + final List options = getChannelOptions(channel); + if (!options.isEmpty()) { + StringBuilder mapping = new StringBuilder(); + mapping.append("Value mapping `["); + options.forEach((option) -> { + mapping.append( + String.format("\"%s\"=\"%s\",", String.valueOf(option.value), String.valueOf(option.label))); + }); + mapping.deleteCharAt(mapping.length() - 1); + mapping.append("]`"); + String newComment = mapping.toString(); + if (!channel.getReadmeComment().contentEquals(newComment)) { + LOGGER.info("Channel {} - {} readme comment updated to '{}'", model, channel.getChannel(), newComment); } + return newComment; } return channel.getReadmeComment(); } @@ -264,25 +292,80 @@ private List findDatabaseEntrys() { List arrayList = new ArrayList<>(); String path = "./src/main/resources/database/"; File dir = new File(path); - File[] filesList = dir.listFiles(); + FileFilter fileFilter = file -> !file.isDirectory() && file.getName().toLowerCase().endsWith(".json"); + File[] filesList = dir.listFiles(fileFilter); + if (filesList == null) { + return arrayList; + } for (File file : filesList) { - if (file.isFile()) { - try { - JsonObject deviceMapping = convertFileToJSON(path + file.getName()); - Gson gson = new GsonBuilder().serializeNulls().create(); - @Nullable - MiIoBasicDevice devdb = gson.fromJson(deviceMapping, MiIoBasicDevice.class); - if (devdb != null) { - arrayList.add(devdb); - } - } catch (Exception e) { - LOGGER.info("Error while searching in database '{}': {}", file.getName(), e.getMessage()); + try { + JsonObject deviceMapping = convertFileToJSON(path + file.getName()); + Gson gson = new GsonBuilder().serializeNulls().create(); + @Nullable + MiIoBasicDevice devdb = gson.fromJson(deviceMapping, MiIoBasicDevice.class); + if (devdb != null) { + arrayList.add(devdb); } + } catch (Exception e) { + LOGGER.info("Error while searching in database '{}': {}", file.getName(), e.getMessage()); } } return arrayList; } + public static List getChannelOptions(MiIoBasicChannel channel) { + StateDescriptionDTO state = channel.getStateDescription(); + if (state != null) { + List options = state.getOptions(); + if (options != null) { + return options; + } + } + return List.of(); + } + + private Map createI18nEntries() { + Map i18nEntries = new HashMap<>(); + String path = "./src/main/resources/database/"; + File dir = new File(path); + FileFilter fileFilter = file -> !file.isDirectory() && file.getName().toLowerCase().endsWith(".json"); + File[] filesList = dir.listFiles(fileFilter); + if (filesList == null) { + return i18nEntries; + } + for (File file : filesList) { + try { + String key = file.getName().toLowerCase().split("json")[0]; + JsonObject deviceMapping = convertFileToJSON(path + file.getName()); + Gson gson = new GsonBuilder().serializeNulls().create(); + @Nullable + MiIoBasicDevice devdb = gson.fromJson(deviceMapping, MiIoBasicDevice.class); + if (devdb == null) { + continue; + } + for (MiIoBasicChannel channel : devdb.getDevice().getChannels()) { + i18nEntries.put(I18N_CHANNEL_PREFIX + key + channel.getChannel(), channel.getFriendlyName()); + List options = getChannelOptions(channel); + for (OptionsValueListDTO channelOption : options) { + String optionValue = channelOption.value; + String optionLabel = channelOption.label; + if (optionValue != null && optionLabel != null) { + i18nEntries.put(I18N_OPTION_PREFIX + key + channel.getChannel() + "-" + optionValue, + optionLabel); + } + } + } + } catch (Exception e) { + LOGGER.info("Error while searching in database '{}': {}", file.getName(), e.getMessage()); + } + } + return i18nEntries; + } + + public static Map sortByKeys(Map map) { + return new TreeMap<>(map); + } + private static String minLengthString(String string, int length) { return String.format("%-" + length + "s", string); } @@ -290,7 +373,6 @@ private static String minLengthString(String string, int length) { JsonObject convertFileToJSON(String fileName) { // Read from File to String JsonObject jsonObject = new JsonObject(); - try { JsonElement jsonElement = JsonParser.parseReader(new FileReader(fileName)); jsonObject = jsonElement.getAsJsonObject();