MAP GENERATOR FOR MAP-BASED DEVICE MANAGEMENT

Disclosed are system, method and/or computer program products for generating a map for map-based management of a plurality of Internet of Things (IoT) devices. An embodiment obtains first data associated with a mobile device, including data indicative of a relative position of the mobile device with respect to one or more subsets of the plurality of IoT devices at different points in time, and/or second data from each of one or more of the plurality of IoT devices, including data indicative of a relative position of each of the one or more IoT devices with respect to a subset of other IoT devices in the plurality of IoT devices, generates, based on at least the first and/or second data, a map in which each of the IoT devices is assigned a corresponding location, and provides the map to an application that enables map-based management of the plurality of IoT devices.

BACKGROUND

Field

This disclosure is generally directed to device management, and more particularly to automatically generating a map of devices, such as Internet of Things (IoT) devices, to enable map-based management thereof.

Background

Modern living and working spaces, such as homes, hotels, or offices, are increasingly equipped with many devices that are configured to engage in digital communications. These devices may range from traditional internet-connected devices such as personal computers, telephone systems, security systems, gaming systems, and over-the-top (OTT) streaming media players, to newer devices including “smart home” devices such as connected appliances, utilities, lights, switches, power outlets, and speakers, as well as wearable devices such as watches and/or health monitors, among countless other examples. These devices may generally be referred to as “Internet of Things” (IoT) devices.

Applications exist that enable users to control IoT devices installed on a premises, such as a home or office. Conventional IoT device control applications typically identify IoT devices by name and may enable the user to sort those devices by name or date added. However, in a scenario in which there are a large number of IoT devices (e.g., a large number of smart lightbulbs in a relatively small area), trying to individually control each one of those IoT devices using such an application can be difficult and confusing. For example, a user may know which IoT device he/she wants to control, but he/she may not recall the specific name that was assigned to the device or the date it was added and thus cannot easily identify it within the application.

SUMMARY

Provided herein are system, apparatus, article of manufacture, method and/or computer program product embodiments, and/or combinations and sub-combinations thereof, for generating a map that may be used to enable map-based management of a plurality of Internet of Things (IoT) devices. An example embodiment obtains first map-building data associated with a mobile device, the first map-building data including first positional data indicative of a relative position of the mobile device with respect to one or more subsets of the plurality of IoT devices at different points in time, and/or second map-building data from each of one or more IoT devices of the plurality of IoT devices, the second map-building data including second positional data indicative of a relative position of each of the one or more IoT devices with respect to a subset of other IoT devices in the plurality of IoT devices. The example embodiment generates, based on at least the first map-building data and/or the second map-building data, a map in which each IoT device of the plurality of IoT devices is assigned a corresponding map location. The example embodiment provides the map to an application that enables map-based management of the plurality of IoT devices.

DETAILED DESCRIPTION

As discussed in the Background Section above, applications exist that enable users to control IoT devices installed on a premises, such as a home or office. Conventional IoT device control applications typically identify IoT devices by name and may enable a user to sort those devices by name or date added. However, in a scenario in which there are a large number of IoT devices (e.g., a large number of smart lightbulbs in a relatively small area), trying to individually control each one of those IoT devices using such an application can be difficult and confusing. For example, a user may know (and even be looking at) the IoT device he/she wants to control, but he/she may not recall the specific name that was assigned to the device or the date it was added and thus cannot easily identify it within the application.

Furthermore, such conventional IoT device control applications may not provide a capability, outside of perhaps user-assigned names (e.g., “Patio-lightbulb-6”), by which a user can determine where each IoT device is located within a home or other premises. This can make it difficult for the user to control or activate devices in a certain room or area of the home or other premises.

Still further, such conventional IoT device control applications may not provide a method by which a user thereof can determine which IoT devices are physically closest to him/her. This can make it difficult for the user to configure or operate IoT devices that are close to him/her without knowing the assigned names of those IoT devices.

Provided herein are system, apparatus, device, method and/or computer program product embodiments, and/or combinations and sub-combinations thereof, for generating a map that may be used to enable map-based management of a plurality of IoT devices present on a premises, thereby addressing one or more of the foregoing issues associated with conventional IoT device control applications. An example embodiment obtains first map-building data associated with a mobile device (e.g., a user's phone), the first map-building data including first positional data indicative of a relative position of the mobile device with respect to one or more subsets of the plurality of IoT devices at different points in time, and/or second map-building data from each of one or more IoT devices of the plurality of IoT devices, the second map-building data including second positional data indicative of a relative position of each of the one or more IoT device with respect to a subset of other IoT devices in the plurality of IoT devices. The example embodiment generates, based on at least the first map-building data and/or the second map-building data, a map (e.g., a two-dimensional (2D) map or a three-dimensional (3D) map) in which each of the IoT devices in the plurality of IoT devices is assigned a corresponding map location (e.g., one or more map coordinates). The example embodiment provides the map to an application that enables map-based management (e.g., identification, configuration, and/or operation) of the plurality of IoT devices.

For example, the application may be configured to display at least a portion of the map to the user so that the user can identify IoT devices by location within the map, rather than by name or date added. In certain embodiments, the application may enable the user to view the map from different perspectives (e.g., 2D vs. 3D, by floor, by inside vs. outside, by rotating the map, or by zooming in or out).

As another example, the application may be configured to determine a location of a user within the map, generate a list of IoT devices sorted by a proximity to the user based on the location of the user and the IoT devices within the map, and display the list to the user. This beneficially enables the user to easily identify the IoT devices that are closest to him/her.

As yet another example, the application may be configured to determine a location and orientation of a user within the map, generate, based on the determined location and orientation of the user within the map, a simulated user view that includes representations of selected ones of the IoT devices (e.g., the IoT devices that are within a field of view associated with the user), and display the simulated view to the user. In further accordance with such an embodiment, the representations of the IoT devices may be interactive, such that a user need only touch (or otherwise interact with) a given IoT device representation to identify, configure and/or operate the corresponding IoT device. Such an embodiment provides an easy and intuitive way for a user to control IoT devices that are near to them, without having to search for the IoT device in a list or remember what name was assigned to the IoT device.

As still another example, the application may be configured to determine a location of a user within the map, identify one or more of the IoT devices having a location within the map that is within a predetermined distance to the location of the user within the map, and, in response to the identifying, actuate an operation of the identified one or more IoT devices. Such an embodiment can advantageously leverage the map to automatically operate IoT devices based on user location within the premises (e.g., automatically turn on lights when the user walks into a room, automatically trigger an alarm when a person enters the home, etc.).

In embodiments, a mobile device (e.g., a user's smartphone) may be used to generate data for building the map. Such map-building data may be obtained, for example, by leveraging one or more wireless interfaces and/or sensors incorporated within the mobile device. Such map-building data may be collected organically over time as a user carries the mobile device around the premises. For example, the map-building data may include positional data that is indicative of a relative position of the mobile device with respect to different subsets of the plurality of IoT devices at different points in time. By way of example only, the positional data may comprise, for a given point in time, one or more of: received signal strength information for each IoT device in a subset of the plurality of IoT devices; time of flight information for each IoT device in the subset of the plurality of IoT devices; distance information for each IoT device in the subset of the plurality of IoT devices; bearing information for each IoT device in the subset of the plurality of IoT devices; an estimated position of the mobile device based on triangulation or trilateration with respect to the subset of the plurality of IoT devices; image data corresponding to the subset of the plurality of IoT devices; audio data corresponding to the subset of the plurality of IoT devices; LiDAR data corresponding to the subset of the plurality of IoT devices; or Wi-Fi sensing data corresponding to the subset of the plurality of IoT devices. The map-building data provided by the mobile device may also include one or more of a position of the mobile device as determined by a satellite-based positioning system or a position of the mobile device as determined by an indoor positioning system.

In a further embodiment, the IoT devices may be used to generate data for building the map. Such map-building data may be obtained, for example, by leveraging one or more wireless interfaces and/or sensors incorporated within the IoT devices. Such map-building data may be obtained, for example, each time an IoT device is installed on the premises, and/or periodically or intermittently over time. For example, map-building data may be obtained from each of one or more IoT devices of the plurality of IoT devices, wherein the map-building data includes positional data that is indicative of a relative position of each of the one or more IoT devices with respect to a subset of other IoT devices in the plurality of IoT devices. By way of example only, the positional data may comprise, for each of the one or more of the plurality of IoT devices, one or more of: received signal strength information for each IoT device in the subset of other IoT devices; time of flight information for each IoT device in the subset of other IoT devices; distance information for each IoT device in the subset of other IoT devices; bearing information for each IoT device in the subset of other IoT devices; an estimated position of the IoT device based on triangulation or trilateration with respect to the subset of other IoT devices; image data corresponding to the subset of other IoT devices; audio data corresponding to the subset of other IoT devices; radar data corresponding to the subset of other IoT devices; LiDAR data corresponding to the subset of other IoT devices; or Wi-Fi sensing data corresponding to the subset of other IoT devices. The map-building data provided by each of the one or more of the plurality of IoT devices may also include one or more of a position of the IoT device as determined by a satellite-based positioning system or a position of the IoT device as determined by an indoor positioning system.

In an embodiment, the map is generated by a machine learning (ML) model based at least on the aforementioned map-building data. In further accordance with such an embodiment, the application may include a map editor that enables a user thereof to modify a map location of at least one of the plurality of IoT devices. In still further accordance with such an embodiment, training data may be generated based at least on the modification and such training data may be used to update the ML model. Thus, in accordance with such an embodiment, edits to IoT device map locations input by any number of users may advantageously be used to improve the performance of the map-building ML model over time.

In an embodiment, generating the map includes generating a floorplan of the premises and incorporating the floorplan into the map. The floorplan may be generated, for example, based on data collected from the aforementioned mobile device and/or IoT devices, based on the determined locations of the IoT devices within the map, and/or based on other data. In an embodiment, the floorplan comprises a plurality of rooms and incorporating the floorplan into the map comprises selectively assigning different subsets of the plurality of IoT devices to different ones of the rooms. This feature advantageously enables room-based identification, configuration and operational control of the IoT devices.

In a further embodiment, the aforementioned floorplan is generated by an ML model. In further accordance with such an embodiment, the application may include a floorplan editor that enables a user thereof to modify a feature of the floorplan. In still further accordance with such an embodiment, training data may be generated based at least on the modification and such training data may be used to update the ML model. Thus, in accordance with such an embodiment, edits to floorplan features input by any number of users may advantageously be used to improve the performance of the floorplan-building ML model over time.

Various embodiments of this disclosure may be implemented using and/or may be part of a multimedia environment102shown inFIG.1. It is noted, however, that multimedia environment102is provided solely for illustrative purposes, and is not limiting. Embodiments of this disclosure may be implemented using and/or may be part of environments different from and/or in addition to the multimedia environment102, as will be appreciated by persons skilled in the relevant art(s) based on the teachings contained herein. An example of the multimedia environment102shall now be described.

Multimedia Environment

FIG.1illustrates a block diagram of a multimedia environment102, according to some embodiments. In a non-limiting example, multimedia environment102may be directed to streaming media. However, this disclosure is applicable to any type of media (instead of or in addition to streaming media), as well as any mechanism, means, protocol, method and/or process for distributing media.

Multimedia environment102may include one or more media systems104. A media system104could represent a family room, a kitchen, a backyard, a home theater, a school classroom, a library, a car, a boat, a bus, a plane, a movie theater, a stadium, an auditorium, a park, a bar, a restaurant, or any other location or space where it is desired to receive and play streaming content. User(s)132may operate with the media system104to select and consume content.

Each media system104may include one or more media devices106each coupled to one or more display devices108. It is noted that terms such as “coupled,” “connected to,” “attached,” “linked,” “combined” and similar terms may refer to physical, electrical, magnetic, logical, etc., connections, unless otherwise specified herein.

Media device106may be a streaming media device, DVD or BLU-RAY device, audio/video playback device, cable box, and/or digital video recording device, to name just a few examples. Display device108may be a monitor, television (TV), computer, smart phone, tablet, wearable (such as a watch or glasses), appliance, internet of things (IoT) device, and/or projector, to name just a few examples. In some embodiments, media device106can be a part of, integrated with, operatively coupled to, and/or connected to its respective display device108.

Each media device106may be configured to communicate with network118via a communication device114. Communication device114may include, for example, a cable modem or satellite TV transceiver. Media device106may communicate with communication device114over a link116, wherein link116may include wireless (such as Wi-Fi) and/or wired connections.

Media system104may include a remote control110. Remote control110can be any component, part, apparatus and/or method for controlling media device106and/or display device108, such as a remote control, a tablet, laptop computer, smartphone, wearable, on-screen controls, integrated control buttons, audio controls, or any combination thereof, to name just a few examples. In an embodiment, remote control110wirelessly communicates with media device106and/or display device108using cellular, Bluetooth, infrared, etc., or any combination thereof. Remote control110may include a microphone112, which is further described below.

Multimedia environment102may include a plurality of content servers120(also called content providers, channels or sources120). Although only one content server120is shown inFIG.1, in practice multimedia environment102may include any number of content servers120. Each content server120may be configured to communicate with network118.

In some embodiments, metadata124comprises data about content122. For example, metadata124may include associated or ancillary information indicating or related to writer, director, producer, composer, artist, actor, summary, chapters, production, history, year, trailers, alternate versions, related content, applications, and/or any other information pertaining or relating to the content122. Metadata124may also or alternatively include links to any such information pertaining or relating to content122. Metadata124may also or alternatively include one or more indexes of content122, such as but not limited to a trick mode index.

Multimedia environment102may include one or more system servers126. System servers126may operate to support media devices106from the cloud. It is noted that the structural and functional aspects of system servers126may wholly or partially exist in the same or different ones of system servers126.

Media devices106may exist in thousands or millions of media systems104. Accordingly, media devices106may lend themselves to crowdsourcing embodiments and, thus, system servers126may include one or more crowdsource servers128.

For example, using information received from media devices106in the thousands and millions of media systems104, crowdsource server(s)128may identify similarities and overlaps between closed captioning requests issued by different users132watching a particular movie. Based on such information, crowdsource server(s)128may determine that turning closed captioning on may enhance users' viewing experience at particular portions of the movie (for example, when the soundtrack of the movie is difficult to hear), and turning closed captioning off may enhance users' viewing experience at other portions of the movie (for example, when displaying closed captioning obstructs critical visual aspects of the movie). Accordingly, crowdsource server(s)128may operate to cause closed captioning to be automatically turned on and/or off during future streamings of the movie.

System servers126may also include an audio command processing module130. As noted above, remote control110may include microphone112. Microphone112may receive audio data from users132(as well as other sources, such as the display device108). In some embodiments, media device106may be audio responsive, and the audio data may represent verbal commands from user132to control media device106as well as other components in media system104, such as display device108.

In some embodiments, the audio data received by microphone112in remote control110is transferred to media device106, which is then forwarded to audio command processing module130in system servers126. Audio command processing module130may operate to process and analyze the received audio data to recognize user132's verbal command. Audio command processing module130may then forward the verbal command back to media device106for processing.

In some embodiments, the audio data may be alternatively or additionally processed and analyzed by an audio command processing module216in media device106(see FIG.2). Media device106and system servers126may then cooperate to pick one of the verbal commands to process (either the verbal command recognized by audio command processing module130in system servers126, or the verbal command recognized by audio command processing module216in media device106).

FIG.2illustrates a block diagram of an example media device106, according to some embodiments. Media device106may include a streaming module202, a processing module204, storage/buffers208, and a user interface module206. As described above, user interface module206may include audio command processing module216.

Media device106may also include one or more audio decoders212and one or more video decoders214.

Each audio decoder212may be configured to decode audio of one or more audio formats, such as but not limited to AAC, HE-AAC, AC3 (Dolby Digital), EAC3 (Dolby Digital Plus), WMA, WAY, PCM, MP3, OGG GSM, FLAC, AU, AIFF, and/or VOX, to name just some examples.

Now referring to bothFIGS.1and2, in some embodiments, user132may interact with media device106via, for example, remote control110. For example, user132may use remote control110to interact with user interface module206of media device106to select content, such as a movie, TV show, music, book, application, game, etc. Streaming module202of media device106may request the selected content from content server(s)120over network118. Content server(s)120may transmit the requested content to streaming module202. Media device106may transmit the received content to display device108for playback to user132.

In streaming embodiments, streaming module202may transmit the content to display device108in real time or near real time as it receives such content from content server(s)120. In non-streaming embodiments, media device106may store the content received from content server(s)120in storage/buffers208for later playback on display device108.

Map Generation and Map-Based Device Management

FIG.3illustrates a block diagram of a system300for enabling map-based management of a plurality of IoT devices, according to some embodiments. As shown inFIG.3, system300includes a premises302in which a plurality of IoT devices306,308,310and312are present. Premises302may comprise, for example and without limitation, a home, an office, a building, a factory, a warehouse, a bar, a restaurant, a movie theater, a stadium, an auditorium, a car, a bus, a boat, or any other structure, location or space in which IoT devices may be present. Although only four IoT devices are shown as being present in premises302for the sake of illustration, it should be understood that premises302may include any number of IoT devices, including tens, hundreds or even thousands of IoT devices.

As used herein, the term “IoT device” is intended to broadly encompass any device that is capable of engaging in digital communication with another device. For example, a device that can digitally communicate with another device can comprise an IoT device, as that term is used herein, even if such communication does not occur over the Internet.

Each of IoT devices306,308,310and312may comprise a device such as, for example, a smart phone, a laptop computer, a notebook computer, a tablet computer, a netbook, a desktop computer, a video game console, a set-top box, or an OTT streaming media player. Furthermore, each of IoT devices306,308,310and312may comprise a so-called “smart home” device such as, for example, a smart lightbulb, a smart switch, a smart refrigerator, a smart washing machine, a smart dryer, a smart coffeemaker, a smart alarm clock, a smart smoke alarm, a smart carbon monoxide detector, a smart security sensor, a smart doorbell camera, a smart indoor or outdoor camera, a smart door lock, a smart thermostat, a smart plug, a smart television, a smart speaker, a smart remote controller, or a voice controller. Still further, each of IoT devices306,308,310and312may comprise a wearable device such as a watch, a fitness tracker, a health monitor, a smart pacemaker, or an extended reality headset. However, these are only examples and are not intended to be limiting.

IoT devices306,308,310and312may be communicatively connected to a local area network (LAN)334via a suitable wired and/or wireless connection. In an embodiment, LAN334is implemented using a hub-and-spoke or star topology. For example, in accordance with such an embodiment, each of IoT devices306,308,310and312may be connected to a router via a corresponding Ethernet cable, wireless access point (AP), or IoT device hub. The router may include a modem that enables the router to act as an interface between entities connected to LAN334and an external wide area network (WAN), such as the Internet. In an alternate embodiment, LAN334is implemented using a mesh network topology. For example, in accordance with such an embodiment, each of IoT devices306,308,310, and312may be linked directly to the other three IoT devices such that it can communicate directly therewith without a router. However, these are examples only, and other techniques for implementing LAN334may be used.

As further shown inFIG.3, IoT device306may comprise a map-building data collector328, one or more sensors330, and one or more wireless interfaces332. Map-building data collector328is configured to collect data from which a map of the IoT devices present in premises302(represented inFIG.3as IoT device map318) may be generated, as will be described in more detail herein. Map-building data collector328may be implemented as processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof.

Sensor(s)330may comprise one or more devices or systems for detecting and responding to (e.g., measuring, recording) objects and events in the physical environment of IoT device306. By way of example only and without limitation, sensor(s)330may include one or more of a camera or other optical sensor, a microphone, a radar system, a LiDAR system, a Wi-Fi sensing system, a temperature sensor, a pressure sensor, a proximity sensor, an accelerometer, a gyroscope, a magnetometer, an infrared sensor, a gas sensor, or a smoke sensor.

Wireless interface(s)332comprise components suitable for enabling IoT device306to wirelessly communicate with other devices via a corresponding wireless protocol. Wireless interface(s)332may include, for example and without limitation, one or more of: a Wi-Fi interface that enables IoT device306to wirelessly communicate with an access point or other remote Wi-Fi-capable device according to one or more of the wireless network protocols based on the IEEE (Institute of Electrical and Electronics Engineers) 802.11 family of standards; a cellular interface that enables IoT device306to wirelessly communicate with remote devices via one or more cellular networks; a Bluetooth interface that enables IoT device to engage in short-range wireless communication with other Bluetooth-enabled devices; or a Zigbee interface that enables IoT device306to wirelessly communicate with other Zigbee-enabled devices.

Each of IoT devices308,310and312may include similar components to those shown with respect to IoT device306. Thus, for example, each of IoT device308,310and312may include a map-building data collector, one or more sensors, and one or more wireless interfaces.

Mobile device304is intended to represent a device that may be carried or otherwise moved to different locations in premises302. By way of example only and without limitation, mobile device304may comprise a smart phone, a laptop computer, a notebook computer, a tablet computer, a netbook, a handheld video game console, or a wearable device (e.g., smart watch, extended reality headset). Mobile device304may also comprise a robot or other device capable of self-locomotion through premises302. In an embodiment in which multimedia environment102is present in premises302, mobile device304may comprise remote control110. Mobile device304includes an IoT device manager314, one or more sensors324, and one or more wireless interfaces326.

IoT device manager314may be implemented as processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. In one embodiment, IoT device manager314comprises an application that is executed by one or more processors of mobile device304. IoT device manager314is configured to enable map-based management of IoT devices present in premises302, including IoT devices306,308,310and312. As shown inFIG.3, IoT device manager314includes a map-building data collector316, an IoT device map318, a map editor320, and map-based IoT device management tools322.

Map-building data collector316is configured to collect data from which a map of the IoT devices present in premises302(represented inFIG.3as IoT device map318) may be be generated, as will be described in more detail herein.

IoT device map318is a map of the IoT device present in premises302, including IoT devices306,308,310and312. IoT device map318may be, for example, a 2D or 3D map in which each IoT device present in premises302is assigned a corresponding map location (e.g., one or more coordinates within the 2D or 3D map). As will be discussed in more detail herein, IoT device map318may be generated (and updated) by a map building service350, after which IoT device map318may be provided to or otherwise accessed by mobile device304.

Map editor320comprises a functionality of IoT device manager314by which a user may selectively modify IoT device map318. For example, in an embodiment, a user may interact with map editor320to modify a map location of at least one of IoT devices306,308,310and312within IoT device map318. A user may modify the map location of an IoT device, for example, if the user perceives that the assigned location of the IoT device in IoT device map318is incorrect. Furthermore, in an embodiment in which IoT device map318comprises a floorplan of premises302, a user may interact with map editor320to modify a feature of the floorplan. A user may modify a feature of the floorplan, for example, if the user perceives that the representation of the floorplan feature within IoT device map318is incorrect.

Map-based IoT device management tools322comprise functionalities of IoT device manager314that leverage IoT device map318to allow a user to conduct map-based identification, configuration and/or operation of IoT devices present in premises302, such as IoT devices306,308,310and312. For example, map-based IoT device management tools322may include a map viewer that is configured to display at least a portion of IoT device map318via a display associated with mobile device304. Such a map viewer may enable a user to identify IoT devices by virtue of their location within IoT device map318. In certain embodiments, the map viewer may enable the user to view IoT device map318, or portions thereof, from different perspectives (e.g., 2D vs. 3D, by floor, by inside vs. outside, by rotating the map, or by zooming in or out). Examples of other functionalities that may be included within map-based IoT device management tools will be described elsewhere herein.

Sensor(s)324may comprise one or more devices or systems for detecting and responding to (e.g., measuring, recording) objects and events in the physical environment of mobile device304. By way of example only and without limitation, sensor(s)324may include one or more of a camera or other optical sensor, a microphone, a LiDAR system, a Wi-Fi sensing system, a Global Positioning System (GPS) sensor, an accelerometer, a gyroscope, or a magnetometer.

Wireless interface(s)326comprise components suitable for enabling mobile device304to wirelessly communicate with other devices via a corresponding wireless protocol. Wireless interface(s)326may include, for example and without limitation, one or more of: a Wi-Fi interface that enables mobile device304to wirelessly communicate with an access point or other remote Wi-Fi-capable device according to one or more of the wireless network protocols based on the IEEE 802.11 family of standards; a cellular interface that enables mobile device304to wirelessly communicate with remote devices via one or more cellular networks; or a Bluetooth interface that enables mobile device304to engage in short-range wireless communication with other Bluetooth-enabled devices.

Although only a single mobile device304is shown inFIG.3, it is to be understood that multiple mobile devices may be present in premises302, and each such mobile device may be configured in a like manner to mobile device304.

As further shown inFIG.3, system300includes a map building service350. Map building service350may be implemented as processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. Map building service350may be implemented by a device (e.g., a server) that is remote from premises302but communicatively connected thereto (e.g., communicatively connected to LAN334) via one or more networks. Alternatively, map building service350may be implemented by a device within premises302, such as by mobile device304, or one of IoT devices306,308,310,312. Still further, map building service350may be implemented in a distributed manner by two or more remotely-located and/or local devices.

Map building service350comprises a map builder354. Map builder354is configured to receive map-building data352and, based at least thereon, generate IoT device map318. Map-building data352may include data collected by map-building data collector328of IoT device306, by map-building data collectors that may be included in each of IoT devices308,310and312and other IoT devices present in premises302, by map-building data collector316of mobile device304, and by map-building data collectors that may be included in other mobile devices present in premises302. Map-building data352may also include data collected from other sources.

In an embodiment, map builder354is implemented as an ML model. For example, map builder354may comprise a supervised ML model. In further accordance with such an example, map builder354may comprise a supervised deep learning ML model implemented using neural networks. However, these examples are not intended to be limiting and map builder354may be implemented using other types of ML models, or without ML (e.g., as a heuristic algorithm).

As shown inFIG.3, map builder354may include a floorplan builder356. Floorplan-builder356is configured to receive map-building data352and, based at least thereon, generate a floorplan of premises302that is incorporated into IoT device map318. For example, the floorplan generated by floorplan builder356may comprise a plurality of rooms and incorporating the floorplan into IoT device map318may entail selectively assigning different subsets of the IoT devices to different ones of the rooms.

In an embodiment, floorplan builder356comprises a standalone ML model. For example, floorplan builder356may comprise a supervised ML model. In further accordance with such an example, floorplan builder356may comprise a supervised deep learning ML model implemented using neural networks. However, these examples are not intended to be limiting and floorplan builder356may be implemented using other types of ML models, or without ML (e.g., as a heuristic algorithm). In an alternate embodiment, floorplan builder356356is part of a same ML model or algorithm that is used to implement map builder354.

As discussed above, in embodiments, a user may utilize map editor320to modify IoT device map318, wherein such modifications may include modifying a location of an IoT device within IoT device map318or modifying a feature of a floorplan that is incorporated into IoT device map318. In further accordance with such embodiments, information concerning such modifications may be collected from mobile device304, as well as from other devices that enable a user to modify an IoT device map (both within premises302and in other premises). This information is collectively represented inFIG.3as map-editing data360. In an embodiment in which map builder354is implemented using a supervised ML model, map-editing data360may be used to generate training data that is provided to a map builder trainer362that updates the supervised ML model based on the training data. Likewise, in an embodiment in which floorplan builder356is implemented as a supervised ML model, map-editing data360may be used to generate training data that is provided to a floorplan builder trainer364that updates the supervised ML model based on the training data. Thus, in accordance with such embodiments, edits to IoT device maps or to floorplans features included therein made by any number of users may advantageously be used to improve the performance of map builder354and/or floorplan builder356over time.

Although IoT device manager314is shown as part of mobile device304inFIG.3, it should be understood that additional instances of IoT device manager314may be implemented on other devices within premises302, including on one or more of IoT devices306,308,310or312. For example, in an embodiment in which multimedia environment102is present in premises302, a media device106(e.g., an OTT streaming media device) may implement an instance of IoT device manager314(or certain portions thereof) and a user interface thereof may be displayed via a corresponding display device108. As another example, a smart TV present in premises302may implement an instance of IoT device manager314(or certain portions thereof).

To further illustrate how system300enables map-based management of a plurality of IoT devices,FIG.4will now be described. In particular,FIG.4illustrates a process by which mobile device304and/or IoT devices306,308,310and312may be used to collect map-building data352, according to some embodiments.

In the example ofFIG.4, premises302includes a house or other structure comprising a plurality of rooms. A plurality of IoT devices are present in premises302, both inside the structure and outside the structure (e.g., in a yard or other outdoor area associated with the structure). The plurality of IoT devices include IoT devices306,308,310and312as previously described in reference toFIG.3as well as additional IoT devices404,406,408,410,412,414,416,418,420,422,424and426. Some or all of these IoT devices may include components similar to those shown for IoT device306inFIG.3(e.g., a map-building data collector, sensor(s) and wireless interface(s)).

As a user402carries mobile device304around premises302(as indicated by the dashed line inFIG.4), map-building data collector316included therein may operate to collect map-building data on a substantially continuous, periodic or intermittent basis. For example, map-building data collector316may operate to obtain positional data that is indicative of a relative position of mobile device304with respect to the same subset or different subsets of the IoT devices at different points in time as user402traverses premises302.

Map-building data collector316may leverage wireless interface(s)326to obtain such positional data. For example, in an embodiment, mobile device304may be capable of exchanging Wi-Fi signals with one or more of the IoT devices within premises302. In further accordance with such an embodiment, mobile device304and one or more of the IoT devices within premises302may implement WI-FI AWARE™ technology that enables such devices to discover each other when within a suitable range and engage in Wi-Fi communication directly therewith. In further accordance with such an embodiment, mobile device304may be capable of deriving both distance and bearing information with respect to one or more IoT devices at a given point in time based, for example, on time-of-flight measurements obtained via Wi-FI communications with each such IoT device. Alternatively, the positional data may comprise the time-of-flight measurements themselves. In another embodiment, mobile device304may be capable of discovering one or more IoT devices in accordance with Bluetooth device discovery protocols and determining distance and bearing information with respect to those IoT device(s) at a given point in time based on Bluetooth communications therewith.

As another example, map-building data collector316may obtain the positional data by determining a received signal strength associated with wireless signals (e.g., Wi-Fi or Bluetooth signals) received from various IoT devices at a given point in time. Such received signal strength information may be used, for example, to estimate a distance to each of the IoT devices. In further accordance with such an example, the positional data may comprise the received signal strength information for the different IoT devices and/or the estimated distances thereto.

In a scenario in which map-building data collector316is capable of determining a distance, or distance and bearing, to three or more IoT devices at a given point in time, map-building data collector316may determine an estimated position of mobile device304based on triangulation or trilateration with respect to the IoT devices, and this estimated location may be provided as the positional data.

Map-building data collector316may also leverage sensors324to obtain the aforementioned positional data. For example, a camera included in mobile device304may be used to capture images that may be processed to identify one or more IoT devices that are within a field of view of the camera when the image was captured and to estimate a distance and bearing thereto. In further accordance with such an example, each IoT device within the field of view of the camera may be controlled to generate a visual indicator unique to that IoT device (e.g., a light of a particular color) at the time of image capture to help an image processor distinguish between the different IoT devices.

As another example, a microphone included in mobile device304may be used to capture audio data that may be processed to identify sounds emanating from one or more IoT devices and to estimate a distance thereto based, e.g., on a volume associated with each of those sounds. If multiple microphones are available, a bearing to each IoT device may also be determined based on the audio data. In further accordance with such an example, each such IoT device may be controlled to generate an audio indicator unique to that IoT device (e.g., a distinct sound) at the time of audio capture to help an audio processor distinguish between the different IoT devices.

As yet another example, map-building data collector316may use a LiDAR system within mobile device304to sense IoT devices proximal to mobile device304at a given point in time and to estimate a distance and bearing thereto. As still another example, map-building data collector316may use a Wi-Fi sensing system (i.e., a system that uses Wi-Fi signal reflections to sense people and objects) within mobile device304to sense IoT devices proximal to mobile device304at a given point in time and to estimate a distance and bearing thereto.

In an embodiment in which mobile device304includes a GPS sensor, map-building data collector316may include a GPS position of mobile device304at different points in time as part of the map-building data. In other embodiments, map-building data collector316may include a position of mobile device304as determined by some other satellite-based positioning system at different points in time as part of the map-building data. In yet another embodiment, map-building data collector316may include a position of mobile device304as determined by an indoor positioning system (e.g., a WLAN based positioning system) at different points in time as part of the map-building data.

In an embodiment in which mobile device304includes one or more motion sensors (e.g., gyroscope, accelerometer, and/or magnetometer), map-building data collector316may include motion sensor data obtained from mobile device304as part of the map-building data. For example, the motion sensor data obtained from mobile device304may include raw data or measurements generated by the motion sensor(s). Additionally or alternatively, the motion sensor data obtained from mobile device304may include an estimated position, orientation or movement property (e.g., trajectory, speed, and/or acceleration) of mobile device304as determined based on data generated by the motion sensor(s).

In a further embodiment, the IoT devices within premises302themselves may be used to generate map building data352. For example, the IoT devices may be used to generate the aforementioned positional data associated with mobile device304based on wireless communication therewith. As another example, each IoT device may be used to generate positional data with respect to the other IoT devices present in premises302.

For example, map-building data collector328within IoT device306may leverage wireless interface(s)332to generate positional data that is indicative of a relative position of IoT device306with respect to a subset of other IoT devices present in premises302. For example, through the receipt of wireless signals from such other IoT devices or the exchange of wireless signals with such other IoT devices, map-building data collector328of IoT device306may determine positional data that comprises one or more of: received signal strength information for each IoT device in the subset of other IoT devices; time of flight information for each IoT device in the subset of other IoT devices; distance information for each IoT device in the subset of other IoT devices; bearing information for each IoT device in the subset of other IoT devices; or an estimated position of the IoT device based on triangulation or trilateration with respect to the subset of other IoT devices. Map-building data collector328may also include channel reliability information for each IoT device in the subset of other IoT devices in map building data352.

Map-building data collector328within IoT device306may also leverage sensor(s)330to obtain map-building data352. In particular, map-building data collector328may leverage sensor(s)330to generate positional data that is indicative of a relative position of IoT device306with respect to a subset of other IoT devices present in premises302.

For example, a camera included in IoT device306may be used to capture images that may be processed to identify one or more other IoT devices that are within a field of view of the camera when the image was captured and to estimate a distance and bearing thereto. In further accordance with such an example, each IoT device within the field of view of the camera may be controlled to generate a visual indicator unique to that IoT device (e.g., a light of a particular color) at the time of image capture to help an image processor to distinguish between the different IoT devices.

As another example, a microphone included in IoT device306may be used to capture audio data that may be processed to identify sounds emanating from one or more other IoT devices and to estimate a distance thereto based, e.g., on a volume associated with each of those sounds. If multiple microphones are available, a bearing to each IoT device may also be determined based on the audio data. In further accordance with such an example, each such IoT device may be controlled to generate an audio indicator unique to that IoT device (e.g., a distinct sound) at the time of audio capture to help an audio processor distinguish between the different IoT devices.

As yet another example, map-building data collector328may use a LiDAR system within IoT device306to sense IoT devices proximal to IoT device306and to estimate a distance and bearing thereto. As still another example, map-building data collector328may use a radar system within IoT device306to sense IoT devices proximal to IoT device306and to estimate a distance and bearing thereto. As still another example, map-building data collector328may use a Wi-Fi sensing system (i.e., a system that uses Wi-Fi signal reflections to sense people and objects) within IoT device306to sense IoT devices proximal to IoT device306and to estimate a distance and bearing thereto.

In an embodiment in which IoT device306includes one or more motion sensors (e.g., gyroscope, accelerometer, and/or magnetometer), map-building data collector328may include motion sensor data obtained from IoT device306as part of the map-building data. For example, the motion sensor data obtained from IoT device306may include raw data or measurements generated by the motion sensor(s). Additionally or alternatively, the motion sensor data obtained from IoT device306may include an estimated position, orientation or movement property (e.g., trajectory, speed, and/or acceleration) of IoT device306as determined based on data generated by the motion sensor(s).

Thus, as discussed above, both mobile device304(and other mobile devices that traverse premises302) and the IoT devices present in premises302may operate to collect map-building data352. In an embodiment, an initial set of map-building data352may be obtained (e.g., from IoT devices only) and used to generate a first version of IoT device map318. However, as more and more map-building data352is collected over time (e.g., by mobile devices carried through premises302), such additional data may be provided to map builder354and map builder354may use such data to produce updated (e.g., more accurate) versions of IoT device map318. Such updated versions of IoT device map318may be provided to IoT device manager314for use in providing map-based IoT device management.

FIG.5illustrates a flow diagram of a method500for enabling map-based management of a plurality of IoT devices, according to some embodiments. Method500can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.5, as will be understood by a person of ordinary skill in the art.

Method500shall be described with reference toFIG.3. However, method500is not limited to that example embodiment.

In502, map-building data352associated with mobile device304is obtained from map-building data collector316and/or map-building data collector328, wherein map-building data352including positional data that is indicative of a relative position of mobile device304with respect to one or more subsets of a plurality of IoT devices (e.g., IoT devices306,308,310and312) at different points in time.

In504, map builder354generates, based on at least map-building data352, an IoT device map318in which each IoT device in the plurality of IoT devices (e.g., IoT devices306,308,310and312) is assigned a corresponding map location (e.g., one or more map coordinates). IoT device map318may comprise, for example, a 2D map or a 3D map.

In506, IoT device map318is provided to an application (e.g., IoT device manager314) that enables map-based management of the plurality of IoT devices (e.g., IoT devices306,308,310and312). Providing IoT device map318to the application may include, for example and without limitation, transmitting IoT device map318to mobile device304for storage thereby or storing IoT device map318remotely (e.g., on a server) and enabling the application to access (e.g., query) remotely-stored IoT device map318.

In embodiments, the positional data referred to in502comprises, for a given point in time, one or more of: received signal strength information for each IoT device in a subset of the plurality of IoT devices; time of flight information for each IoT device in the subset of the plurality of IoT devices; distance information for each IoT device in the subset of the plurality of IoT devices; bearing information for each IoT device in the subset of the plurality of IoT devices; an estimated position of mobile device304based on triangulation or trilateration with respect to the subset of the plurality of IoT devices; image data corresponding to the subset of the plurality of IoT devices; audio data corresponding to the subset of the plurality of IoT devices; LiDAR data corresponding to the subset of the plurality of IoT devices; or Wi-Fi sensing data corresponding to the subset of the plurality of IoT devices.

In further embodiments, map building data352further includes, for a given point in time, one or more of: a position of mobile device304as determined by a satellite-based positioning system (e.g., GPS); a position of mobile device304as determined by an indoor positioning system; or motion sensor data obtained from mobile device304.

FIG.6illustrates a flow diagram of a method600for updating an ML model for generating a map of IoT devices, according to some embodiments. Method600is relevant to an embodiment in which map builder354is implemented as a supervised ML model. Method600can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.6, as will be understood by a person of ordinary skill in the art.

Method600shall be described with reference toFIG.3. However, method600is not limited to that example embodiment.

In602, map editor320modifies a map location of at least one of the plurality of IoT devices (e.g., at least one of IoT devices306,308,310and312) in IoT device map318based on user input. In an embodiment, information about the modification is included as part of map-editing data360.

In604, map builder trainer362generates training data based at least on the modification (e.g., based at least on the information about the modification included in map-editing data360).

In606, map builder trainer362uses the training data to update the ML model (e.g., the supervised ML model used to implement map builder354).

FIG.7illustrates a flow diagram of a method700for using a map of IoT devices to generate a list of the IoT devices sorted by proximity to a user, according to some embodiments. Method700can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.7, as will be understood by a person of ordinary skill in the art.

Method700shall be described with reference toFIG.3. However, method700is not limited to that example embodiment. In an embodiment, method700is performed by IoT device manager314as part of providing map-based IoT device management tools322.

In702, IoT device manager314determines a location of a user within IoT device map318. For example, IoT device manager314may determine the location of the user within IoT device map318by determining a location of mobile device304within IoT device map318, based on an assumption that mobile device304is being carried by the user. In this case, the location of mobile device304may be determined using any of the previously-described techniques for generating positional data associated with mobile device304. However, this is only an example, and other techniques may be used to determine the location of the user within IoT device map318.

In704, IoT device manager314generates a list of two or more of the plurality of IoT devices (e.g., two or more of IoT devices306,308,310and312) sorted by a proximity to the user based on the location of the user within IoT device map318and the locations of the two or more of the plurality of IoT devices within IoT device map318. For example, IoT device manager314may determine a distance between the user and each IoT device within IoT device map318, and then generate a list of the IoT devices sorted by shortest to longest distance.

In706, IoT device manager314displays the list. For example, IoT device manager314may display the list in a user interface associated with IoT device manager314. Such user interface may be displayed via a display device integrated with or connected to mobile device304. The presentation of the list in this manner may beneficially enable the user to easily identify the IoT devices that are closest to them.

FIG.8illustrates a flow diagram of a method800for using a map of IoT devices to generate a simulated user view that includes representations of selected ones of the IoT devices, according to some embodiments. Method800can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.8, as will be understood by a person of ordinary skill in the art.

Method800shall be described with reference toFIG.3. However, method800is not limited to that example embodiment. In an embodiment, method800is performed by IoT device manager314as part of providing map-based IoT device management tools322.

In802, IoT device manager314determines a location and orientation of a user within IoT device map318. For example, IoT device manager314may determine the location of the user within IoT device map318by determining a location of mobile device304within IoT device map318, based on an assumption that mobile device304is being carried by the user. In this case, the location of mobile device304may be determined using any of the previously-described techniques for generating positional data associated with mobile device304. However, this is only an example, and other techniques may be used to determine the location of the user within IoT device map318.

In an embodiment, IoT device manager314determines an orientation of the user within IoT device map318by determining an orientation of mobile device304within IoT device map318, based on an assumption that mobile device304is being held by the user. In this case, the orientation of mobile device304may be determined using one or more motion sensors (e.g., accelerometers, gyroscopes, magnetometers) included in mobile device304. However, this is only an example, and other techniques may be used to determine the orientation of the user within IoT device map318.

In804, based on the location and orientation of the user within IoT device map318, IoT device manager314generates a simulated user view that includes representations of selected ones of the plurality of IoT devices. For example, IoT device manager314may generate a simulated user view that includes representations of the IoT devices that are determined to be within a field of view associated with the user.

In806, IoT device manager314displays the simulated view. For example, IoT device manager314may display the simulated view in a user interface associated with IoT device manager314. Such user interface may be displayed via a display device integrated with or connected to mobile device304. In an embodiment in which mobile device304comprises an extended reality headset, the simulated view may be rendered in augmented reality or virtual reality.

In an embodiment, the representations of the IoT devices in the aforementioned simulated view may be interactive, such that a user need only touch (or otherwise interact with) a given IoT device representation to identify, configure or operate the corresponding IoT device. An embodiment that implements method800can provide an easy and intuitive way for a user to control IoT devices that are near to them, without having to search for the IoT device in a list or remember what name was assigned to the IoT device.

FIG.9illustrates a flow diagram of a method900for using a map of IoT devices to selectively operate one or more of the IoT devices based on a user proximity thereto, according to some embodiments. Method900can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.9, as will be understood by a person of ordinary skill in the art.

Method900shall be described with reference toFIG.3. However, method900is not limited to that example embodiment. In an embodiment, method900is performed by IoT device manager314as part of providing map-based IoT device management tools322.

In902, IoT device manager314determines a location of a user within IoT device map318. For example, IoT device manager314may determine the location of the user within IoT device map318by determining a location of mobile device304within IoT device map318, based on an assumption that mobile device304is being carried by the user. In this case, the location of mobile device304may be determined using any of the previously-described techniques for generating positional data associated with mobile device304. However, this is only an example, and other techniques may be used to determine the location of the user within IoT device map318.

In904, IoT device manager314identifies one or more IoT devices of the plurality of IoT devices (e.g., one or more of IoT devices306,308,310and312) having a location within IoT device map318that is within a predetermined distance to the location of the user within IoT device map318.

In906, in response to the identifying in904, IoT device manager314actuates an operation of the identified one or more IoT devices.

An embodiment that implements method900can advantageously leverage IoT device map318to automatically operate IoT devices (e.g., any or all of IoT devices306,308,310and312) based on user location within premises302(e.g., automatically turn on lights when the user walks into a room, automatically trigger an alarm when a person enters the home, etc.).

FIG.10illustrates a flow diagram of a method1000for generating a map of IoT devices that incorporates a floorplan, according to some embodiments. Method1000can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.10, as will be understood by a person of ordinary skill in the art.

Method1000shall be described with reference toFIG.3. However, method1000is not limited to that example embodiment.

In1002, floorplan builder356generates a floorplan of premises302. In embodiments, floorplan builder356generates the floorplan based on map-building data352, based on the determined locations of IoT devices (e.g., Iot devices306,308,310and312) within IoT device map318, and/or based on other data. In embodiments, floorplan builder356may generate the floorplan based on sensor data obtained by one or more of the IoT devices (e.g. images or scans of premises302). In other embodiments, floorplan builder356may generate the floorplan based on publicly-available data associated with premises302(e.g., floorplan data published online by a real estate website), based on data collected by a robot (e.g., data collected by a robot vacuum that is configured to learn the floorplan of premises302over time), and/or based on other data obtained from other sources.

In1004, map builder354incorporates the floorplan into IoT device map318. In an embodiment in which the floorplan comprises a plurality of rooms, incorporating the floorplan into IoT device map318may comprise selectively assigning different subsets of the plurality of IoT devices to different ones of the rooms. Such a feature can advantageously enable room-based identification, configuration and operational control of the IoT devices.

FIG.11illustrates a flow diagram of a method1100for updating an ML model for generating a floorplan that is incorporated into a map of IoT devices, according to some embodiments. Method1100is relevant to an embodiment in which floorplan builder356is implemented as a supervised ML model. Method1100can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.11, as will be understood by a person of ordinary skill in the art.

Method1100shall be described with reference toFIG.3. However, method1100is not limited to that example embodiment.

In1102, map editor320modifies a feature of the floorplan incorporated into IoT device map318based on user input. For example, map editor320may modify the placement and/or dimensions of a room, wall, door, staircase, tree or other space, structure or object included in the floorplan based on user input. As another example, map editor320may modify a name assigned to a room included in the floorplan based on user input. In an embodiment, information about the modification is included as part of map-editing data360.

In1104, floorplan builder trainer364generates training data based at least on the modification (e.g., based at least on the information about the modification of the feature of the floorplan included in map-editing data360).

In1106, floorplan builder trainer364uses the training data to update the ML model (e.g., the supervised ML model used to implement floorplan builder356).

FIG.12illustrates a flow diagram of a further method1200for enabling map-based management of a plurality of IoT devices, according to some embodiments. Method1200can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.12, as will be understood by a person of ordinary skill in the art.

Method1200shall be described with reference toFIG.3. However, method1200is not limited to that example embodiment.

In1202, map-building data352is obtained from each of one or more IoT devices of a plurality of IoT devices (e.g., IoT devices306,308,310and312), wherein map-building data352includes positional data that is indicative of a relative position of each of the one or more IoT devices with respect to a subset of other IoT devices in the plurality of IoT devices.

In1204, map builder354generates, based on at least map-building data352, IoT device map318in which each of the IoT devices in the plurality of IoT devices is assigned a corresponding map location (e.g., one or more map coordinates). IoT device map318may comprise, for example, a 2D map or a 3D map.

In1206, IoT device map318is provided to an application (e.g., IoT device manager314) that enables map-based management of the plurality of IoT devices (e.g., IoT devices306,308,310and312). Providing IoT device map318to the application may include, for example and without limitation, transmitting IoT device map318to mobile device304for storage thereby or storing IoT device map318remotely (e.g., on a server) and enabling the application to access (e.g., query) remotely-stored IoT device map318.

In embodiments, the positional data referred to in1202comprises one or more of: received signal strength information for each IoT device in the subset of other IoT devices; time of flight information for each IoT device in the subset of other IoT devices; distance information for each IoT device in the subset of other IoT devices; bearing information for each IoT device in the subset of other IoT devices; an estimated position of the IoT device based on triangulation or trilateration with respect to the subset of other IoT devices; image data corresponding to the subset of other IoT devices; audio data corresponding to the subset of other IoT devices; radar data corresponding to the subset of other IoT devices; LiDAR data corresponding to the subset of other IoT devices; or Wi-Fi sensing data corresponding to the subset of other IoT devices.

In further embodiments, map building data352further includes one or more of: a position of the IoT device as determined by a satellite-based positioning system (e.g., GPS); a position of the IoT device as determined by an indoor positioning system; or motion sensor data obtained from the IoT device.

Example Computer System

Various embodiments may be implemented, for example, using one or more well-known computer systems, such as computer system1300shown inFIG.13. For example, one or more of mobile device304, IoT device306, IoT device308, IoT device310, IoT device312, map building service350, or map builder trainer362may be implemented using combinations or sub-combinations of computer system1300. Also or alternatively, one or more computer systems1300may be used, for example, to implement any of the embodiments discussed herein, as well as combinations and sub-combinations thereof.

Computer system1300may include one or more processors (also called central processing units, or CPUs), such as a processor1304. Processor1304may be connected to a communication infrastructure or bus1306.

Computer system1300may also include user input/output device(s)1303, such as monitors, keyboards, pointing devices, etc., which may communicate with communication infrastructure1306through user input/output interface(s)1302.

Computer system1300may also include a main or primary memory1308, such as random access memory (RAM). Main memory1308may include one or more levels of cache. Main memory1308may have stored therein control logic (i.e., computer software) and/or data.

Computer system1300may also include one or more secondary storage devices or memory1310. Secondary memory1310may include, for example, a hard disk drive1312and/or a removable storage device or drive1314. Removable storage drive1314may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.

Removable storage drive1314may interact with a removable storage unit1318. Removable storage unit1318may include a computer usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage unit1318may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/any other computer data storage device. Removable storage drive1314may read from and/or write to removable storage unit1318.

Secondary memory1310may include other means, devices, components, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system1300. Such means, devices, components, instrumentalities or other approaches may include, for example, a removable storage unit1322and an interface1320. Examples of the removable storage unit1322and the interface1320may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB or other port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

Computer system1300may further include a communication or network interface1324. Communication interface1324may enable computer system1300to communicate and interact with any combination of external devices, external networks, external entities, etc. (individually and collectively referenced by reference number1328). For example, communication interface1324may allow computer system1300to communicate with external or remote devices1328over communications path1326, which may be wired and/or wireless (or a combination thereof), and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system1300via communication path1326.

In some embodiments, a tangible, non-transitory apparatus or article of manufacture comprising a tangible, non-transitory computer useable or readable medium having control logic (software) stored thereon may also be referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system1300, main memory1308, secondary memory1310, and removable storage units1318and1322, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system1300or processor(s)1304), may cause such data processing devices to operate as described herein.

CONCLUSION