# US 2021/0243084 A1 · Systems and methods for creating virtual devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0243084 A1
- Document ID: US20210243084A1
- Status: Published application
- Kind: A1
- Application number: 17/163,013
- Filed: 2021-01-29
- Published: 2021-08-05
- Earliest claimed: 2020-01-31
- Assignees: Wyze Labs, Inc.
- Applicants: Wyze Labs, Inc.
- Inventors: Yeqing Lou; Mark Tan; Yun Zhang; Dongsheng Song
- Web page: https://patentgrep.com/patent/US20210243084A1

## CPC

- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- G06F 3/04847: Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
- G06F 3/0488: using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F 9/451: Execution arrangements for user interfaces
- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06N 20/00: Machine learning
- G16Y 40/35: Management of things, i.e. controlling in accordance with a policy or in order to achieve specified objectives
- H04L 12/282: {based on user interaction within the home (receiver circuitry for displaying additional information being controlled by a remote control apparatus H04N21/42204)}
- H04L 41/0681: Configuration of triggering conditions
- H04L 41/0873: Checking configuration conflicts between network elements
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/122: of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
- H04L 41/22: comprising specially adapted graphical user interfaces [GUI]
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 2012/285: {Generic home appliances, e.g. refrigerators}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G16Y: INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]

## Abstract

A virtual device management system for creating and implementing virtual devices and associated methods are provided herein. The system presents to a user a list of devices available for combining to create the virtual device. When the system receives from the user a selection of two or more devices that the user wishes to combine to create the virtual device, the system presents to the user a list of available functions that can be performed by the virtual device based on the selected devices. The system then receives from the user a selection of one or more functions and configures the virtual device to perform the selected functions. The system can also be configured to present, via a user interface via a mobile application running on a user device, a plurality of virtual devices with predetermined functionalities that are created by detecting the various connected devices within an IoT network.

## Claims

### Claim 1

A method performed by one or more computing systems for creating a virtual device, the method comprising:
presenting to a user, via a user interface, a list of separate devices available for combination to create the virtual device;
receiving from the user selection of two or more devices to be combined to create the virtual device;
presenting to the user, via the user interface, a list of functions that can be performed by the virtual device based on the selected devices;
receiving from the user selection of one or more functions to be performed by the virtual device; and
configuring the virtual device to perform the selected functions.

### Claim 2 (depends on 1)

The method of claim 1, further comprising allowing the user to create a new function to be performed by the virtual device.

### Claim 3 (depends on 1)

The method of claim 1, further comprising checking compatibility of the selected devices, wherein, when the selected devices are incompatible, providing an alert to a user regarding incompatibility of the selected devices.

### Claim 4 (depends on 3)

The method of claim 3, wherein checking the compatibility includes checking a spatial relationship of the selected devices.

### Claim 5 (depends on 1)

The method of claim 1, wherein receiving the user selection comprises receiving a first user selection of a first device, and automatically disabling selection of devices that are incompatible with the first device.

### Claim 6 (depends on 1)

The method of claim 1, further comprising proactively suggesting a virtual device based on analysis of actions frequently performed by the user.

### Claim 7 (depends on 6)

The method of claim 6, wherein the analysis is performed by applying one or more of machine learning algorithms.

### Claim 8 (depends on 1)

The method of claim 1, further comprising presenting to the user a list of predefined recipes for creating a virtual device.

### Claim 9 (depends on 8)

The method of claim 8, further comprising allowing the user to modify the predefined recipes.

### Claim 10 (depends on 8)

The method of claim 8, further comprising when the user selects a recipe, displaying information regarding the recipe, the information including one or more of a name, a description, functions, and ingredients of the recipe.

### Claim 11 (depends on 1)

The method of claim 1, further comprising displaying current status of the available devices.

### Claim 12

One or more computing systems for creating a virtual device, the one or more computing systems comprising:
one or more computer-readable storage mediums for storing computer-executable instructions for controlling the one or more computing systems to:
present to a user, via a user interface, a list of recipes for creating the virtual device;
receive from the user selection of a recipe;
in response to receiving the selection, display information about the recipe, the information including a descriptive image, a description, and ingredients;
receive an indication that the user wants to create the virtual device; and
in response to receiving the indication, create the virtual device according to the recipe; and
one or more processors for executing the computer-executable instructions stored in the one or more computer-readable storage mediums.

### Claim 13 (depends on 12)

The one or more computing systems of claim 12, wherein the computer-executable instructions further control the one or more computing systems to allow the user to modify the selected recipe.

### Claim 14 (depends on 13)

The one or more computing systems of claim 13, wherein modifying the selected recipe includes adding or removing a device or adding or removing a function.

### Claim 15 (depends on 12)

The one or more computing systems of claim 12, wherein the recipes are presented based on one or more of common use cases, recipes that have been created by other users, frequency of use, and actions frequently performed by the user.

### Claim 16

A virtual device management system for creating and implementing virtual devices, the system comprising:
a plurality of physical devices configured to communicate data, wherein each physical device of the plurality of physical devices includes at least one function associated with capabilities of the physical device, and wherein the plurality of physical devices includes at least a first physical device and a second physical device;
at least one controller configurably connected to the plurality of physical devices, wherein the at least one controller comprises at least one processor and at least one non-transitory memory, and wherein the at least one controller is configured to—
identify the plurality of physical devices configurably connected to the at least one controller;
extract the functions from the plurality of physical devices;
define at least one virtual device that utilizes the functions of at least the first and second physical devices, wherein the virtual product includes automation rules associated with the functions of the first and second physical devices;
present to a user, via a user interface, the at least one virtual device;
receive from the user, via the user interface, a selection of the at least one virtual device; and
create the at least one virtual device selected by the user by defining automation rules associated with data received from the first and second physical devices.

### Claim 17 (depends on 16)

The system of claim 16 wherein the plurality of physical devices comprises at least two of a camera, a door lock, a doorbell, a light, a sensor, a robotic vacuum, a speaker, and an electrical outlet.

### Claim 18 (depends on 16)

The system of claim 16 wherein the at least one controller is further configured to determine compatibility of the plurality of physical devices to identify which functions of the individual physical devices can be combined to create virtual devices.

### Claim 19 (depends on 18)

The system of claim 18 wherein the at least one controller is further configured to identify spatial relationships between the plurality of physical devices as a parameter of compatibility for creating a virtual device.

### Claim 20 (depends on 16)

The system of claim 16 wherein the at least one controller is further configured to:
present to the user, via the user interface, a list of functions associated with the plurality of physical devices; receive from the user, via the user interface, a selection of two or more functions from the list; and
configuring a new virtual device to perform the selected functions.
