iobroker.roborock
Version:
215 lines (188 loc) • 4.68 kB
text/typescript
export const ROBOROCK_PROTO_STR = `syntax = "proto3";
package SCMap;
// Hauptnachricht (Root)
message RobotMap {
uint32 mapType = 1;
MapExtInfo mapExtInfo = 2;
MapHeadInfo mapHead = 3;
MapDataInfo mapData = 4;
repeated AllMapInfo mapInfo = 5;
DeviceHistoryPoseInfo historyPose = 6;
DevicePoseDataInfo chargeStation = 7;
DeviceCurrentPoseInfo currentPose = 8;
repeated DeviceAreaDataInfo virtualWalls = 9;
repeated DeviceAreaDataInfo areasInfo = 10;
repeated DeviceNavigationPointDataInfo navigationPoints = 11;
repeated RoomDataInfo roomDataInfo = 12;
DeviceRoomMatrix roomMatrix = 13;
repeated DeviceRoomChainDataInfo roomChain = 14;
repeated ObjectDataInfo objects = 15;
repeated FurnitureDataInfo furnitureInfo = 16;
repeated HouseInfo houseInfos = 17;
repeated DeviceAreaDataInfo backupAreas = 18;
repeated DeviceAreaDataInfo sillInfo = 19;
repeated DeviceCarpetDataInfo carpetInfo = 20;
repeated DeviceAreaDataInfo recmForbitZone = 21;
repeated DeviceAreaDataInfo map_hide = 22;
}
message MapHeadInfo {
uint32 mapHeadId = 1;
uint32 sizeX = 2;
uint32 sizeY = 3;
float minX = 4;
float minY = 5;
float maxX = 6;
float maxY = 7;
float resolution = 8;
}
message MapDataInfo {
bytes mapData = 1; // Das Pixel-Grid!
}
message MapExtInfo {
uint32 taskBeginDate = 1;
uint32 mapUploadDate = 2;
uint32 mapValid = 3;
uint32 radian = 4;
uint32 force = 5;
uint32 cleanPath = 6;
MapBoundaryInfo boudaryInfo = 7;
uint32 mapVersion = 8;
uint32 mapValueType = 9;
}
message MapBoundaryInfo {
string mapMd5 = 1;
uint32 vMinX = 2;
uint32 vMaxX = 3;
uint32 vMinY = 4;
uint32 vMaxY = 5;
}
message RoomDataInfo {
uint32 roomId = 1;
string roomName = 2;
uint32 roomTypeId = 3;
uint32 meterialId = 4;
uint32 cleanState = 5;
uint32 roomClean = 6;
uint32 roomCleanIndex = 7;
DevicePointInfo roomNamePost = 8;
CleanPerferenceDataInfo cleanPerfer = 9;
uint32 colorId = 10; // Used for room coloring
uint32 floor_direction = 11;
uint32 global_seq = 12;
}
message DevicePoseDataInfo {
float x = 1;
float y = 2;
float phi = 3;
}
message DeviceCurrentPoseInfo {
uint32 poseId = 1;
uint32 update = 2;
float x = 3;
float y = 4;
float phi = 5;
}
message DeviceHistoryPoseInfo {
uint32 poseId = 1;
repeated DeviceCoverPointDataInfo points = 2;
}
message DeviceCoverPointDataInfo {
uint32 update = 1;
float x = 2;
float y = 3;
}
message DevicePointInfo {
float x = 1;
float y = 2;
}
message DeviceAreaDataInfo {
uint32 status = 1;
uint32 type = 2;
uint32 areaIndex = 3;
repeated DevicePointInfo points = 4;
string name = 5;
uint32 area_type = 6;
}
message FurnitureDataInfo {
uint32 id = 1;
uint32 typeId = 2;
repeated DevicePointInfo points = 3;
string url = 4;
uint32 status = 5;
repeated DevicePointInfo react = 6;
uint32 sizeType = 7;
}
// Hilfsstrukturen
message AllMapInfo {
uint32 mapHeadId = 1;
string mapName = 2;
uint32 force = 3;
}
message CleanPerferenceDataInfo {
uint32 cleanMode = 1;
uint32 waterLevel = 2;
uint32 windPower = 3;
uint32 twiceClean = 4;
uint32 carpet = 5;
}
message DeviceRoomMatrix {
bytes matrix = 1;
}
message DeviceRoomChainDataInfo {
uint32 roomId = 1;
repeated DeviceChainPointDataInfo points = 2;
repeated DeviceDoorChainInfo door_info = 3;
}
message DeviceChainPointDataInfo {
uint32 x = 1;
uint32 y = 2;
uint32 value = 3;
}
message DeviceDoorChainInfo {
repeated DeviceGridPointDataInfo door_point = 1;
repeated uint32 area_id = 2;
}
message DeviceGridPointDataInfo {
uint32 x = 1;
uint32 y = 2;
}
message ObjectDataInfo {
uint32 objectId = 1;
uint32 objectTypeId = 2;
string objectName = 3;
uint32 confirm = 4;
float x = 5;
float y = 6;
string url = 7;
}
message DeviceNavigationPointDataInfo {
uint32 pointId = 1;
uint32 status = 2;
uint32 pointType = 3;
float x = 4;
float y = 5;
float phi = 6;
}
message HouseInfo {
uint32 id = 1;
string name = 2;
uint32 curMapCount = 3;
uint32 maxMapSize = 4;
repeated AllMapInfo maps = 5;
}
message DeviceCarpetDataInfo {
uint32 id = 1;
uint32 status = 2;
uint32 method = 3;
repeated DevicePointInfo points = 4;
string name = 5;
uint32 adapt = 6;
uint32 is_global = 7;
uint32 is_detect = 8;
uint32 is_cleaned = 9;
}
message CarpetOffsetInfo {
float phi = 1;
float dist = 2;
}
`;