[miio] Fix warning messages and discovery on newer robots (#13111)

also includes update to latest devicenames list

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
This commit is contained in:
Marcel
2022-11-06 10:03:51 +01:00
committed by GitHub
parent 2c30756fdd
commit 162e1461b0
3 changed files with 1256 additions and 41 deletions

View File

@@ -186,6 +186,17 @@ public enum MiIoDevices {
ROBOROCK_VACUUM_A15("roborock.vacuum.a15", "Roborock S7", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A19("roborock.vacuum.a19", "Roborock S4 Max", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A23("roborock.vacuum.a23", "Roborock T7S Plus", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A26("roborock.vacuum.a26", "Roborock G10S Pro", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A27("roborock.vacuum.a27", "Roborock S7 MaxV", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A29("roborock.vacuum.a29", "Roborock G10", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A30("roborock.vacuum.a30", "Roborock G10", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A34("roborock.vacuum.a34", "Roborock Q5", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A37("roborock.vacuum.a37", "Roborock T8", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A38("roborock.vacuum.a38", "Roborock Q7 Max", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A40("roborock.vacuum.a40", "Roborock Q7", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A46("roborock.vacuum.a46", "Roborock G10S", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A52("roborock.vacuum.a52", "Roborock T8 Plus", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_A62("roborock.vacuum.a62", "Roborock S7 Pro Ultra", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_C1("roborock.vacuum.c1", "Xiaowa C1", THING_TYPE_VACUUM),
ROBOROCK_VACUUM_E2("roborock.vacuum.e2", "Roborock Xiaowa E Series Vacuum v2", THING_TYPE_UNSUPPORTED),
ROBOROCK_VACUUM_M1S("roborock.vacuum.m1s", "Mi Robot Vacuum 1S", THING_TYPE_VACUUM),

View File

@@ -60,7 +60,14 @@ public class RRMapFileParser {
public static final int CARPET_MAP = 17;
public static final int MOP_PATH = 18;
public static final int CARPET_FORBIDDEN_AREA = 19;
public static final int SMART_ZONES_PATH_TYPE = 20;
public static final int SMART_ZONES = 21;
public static final int CUSTOM_CARPET = 22;
public static final int CL_FORBIDDEN_ZONES = 23;
public static final int FLOOR_MAP = 24;
public static final int FURNITURES = 25;
public static final int DOCK_TYPE = 26;
public static final int ENEMIES = 27;
public static final int DIGEST = 1024;
public static final int HEADER = 0x7272;
@@ -272,6 +279,16 @@ public class RRMapFileParser {
int blocksPairs = getUInt16(header, 0x08);
blocks = getBytes(data, 0, blocksPairs);
break;
case SMART_ZONES_PATH_TYPE:
case SMART_ZONES:
case CUSTOM_CARPET:
case CL_FORBIDDEN_ZONES:
case FLOOR_MAP:
case FURNITURES:
case DOCK_TYPE:
case ENEMIES:
// new blocktypes not yet decoded
break;
default:
logger.info("Unknown blocktype {} (pls report to author)", blocktype);
printBlockDetails = true;