async setModeWithSegments(operation, segmentIds) {
        const movementMode = this.getVacuumMovementMode(this.robot.ephemeralState.outlineModeEnabled);

        if (segmentIds === undefined || segmentIds === null) {
            segmentIds = [];
        }
        await this.robot.sendCommand(
            "set_mode_withroom",
            [movementMode, operation, segmentIds.length].concat(segmentIds)
        );

        if (operation !== attributes.ViomiOperation.STOP) {
            if (segmentIds.length > 0) {
                this.robot.ephemeralState.lastOperationType = stateAttrs.StatusStateAttribute.FLAG.SEGMENT;
            } else {
                this.robot.ephemeralState.lastOperationType = stateAttrs.StatusStateAttribute.FLAG.NONE;
            }
            this.robot.ephemeralState.lastOperationAdditionalParams = segmentIds;
        }
    }
Start or resume cleaning the specified segment IDs, or the entire house.

@public
@param {any} operation Whether to start, stop or pause
@param {Array<number>} [segmentIds] If specified, room IDs to clean. Else all house.
@returns {Promise<void>}