Communicating status messages in an internet of things (IOT) network

By generating and encrypting status indicators with a security key, the IoT network efficiently communicates device statuses across different protocols, addressing the challenge of delayed updates and enhancing network responsiveness.

WO2025057059A1PCT designated stage expired Publication Date: 2025-03-20NAGRAVISION SA
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/IB2024/058788
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-15
Filing Date
2024-09-10
Publication Date
2025-03-20

AI Technical Summary

Technical Problem

Existing IoT networks face challenges in efficiently communicating status messages between devices and controllers, particularly when the controller loses connection with the network, leading to delayed or incomplete status updates.

Method used

The proposed solution involves generating a security key associated with a device's status, encrypting a status indicator using this key, and transmitting the encrypted indicator through a networking device, which facilitates communication between devices using different communication protocols.

Benefits of technology

This approach enables faster and more efficient status message communication in IoT networks, allowing controllers to receive up-to-date status information without the need for individual device queries, thereby improving network responsiveness and reducing latency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2024058788_20032025_PF_FP_ABST
    Figure IB2024058788_20032025_PF_FP_ABST
Patent Text Reader

Abstract

Systems and techniques are described herein for communicating a status of a device. For instance, a method for communicating a status of a device is provided. The method may include: generating, by the device, a security key associated with the status of the device; providing the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; generating, by the device, a status indicator indicative of the status of the device; encrypting, by the device, the status indicator using the security key to generate an encrypted status indicator; and transmitting, by the device to a networking device, the encrypted status indicator according to the first communications protocol.
Need to check novelty before this filing date? Find Prior Art

Description

COMMUNICATING STATUS MESSAGES IN AN INTERNET OF THINGS (IOT) NETWORKCROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to U.S. Patent Application No. 63 / 538,551 filed September 15, 2023 , which is hereby incorporated by reference, in its entirety and for all purposes.TECHNICAL FIELD

[0002] The present disclosure generally relates to communicating status messages. For example, aspects of the present disclosure include systems and techniques for communicating status messages in an internet of things (loT) network.BACKGROUND

[0003] Many devices have been configured to communicate with other devices. For example, many devices have been configured to send status messages to and / or receive control messages from other devices (e.g., a controller). Such devices may be referred to as internet of things (loT) devices. Communications protocols have been developed to facilitate communications between loT devices (“loT communications”). Such protocols may be referred to as loT protocols. Thread is an example of an loT protocol.SUMMARY

[0004] The following presents a simplified summary relating to one or more aspects disclosed herein. Thus, the following summary should not be considered an extensive overview relating to all contemplated aspects, nor should the following summary be considered to identify key or critical elements relating to all contemplated aspects or to delineate the scope associated with any particular aspect. Accordingly, the following summary presents certain concepts relating to one or more aspects relating to the mechanisms disclosed herein in a simplified form to precede the detailed description presented below.

[0005] Systems and techniques are described for communicating a status of a device. According to at least one example, a method is provided for communicating a status of a device. The method includes: generating, by the device, a security key associated with the status of the device; providing the security key to a controller, wherein the device isconfigured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; generating, by the device, a status indicator indicative of the status of the device; encrypting, by the device, the status indicator using the security key to generate an encrypted status indicator; and transmitting, by the device to a networking device, the encrypted status indicator according to the first communications protocol.

[0006] In another example, a device for communicating a status of a device is provided that includes at least one memory and at least one processor (e.g., configured in circuitry) coupled to the at least one memory. The at least one processor configured to: generate a security key associated with the status of the device; provide the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; generate a status indicator indicative of the status of the device; encrypt the status indicator using the security key to generate an encrypted status indicator; and transmit, to a networking device, the encrypted status indicator according to the first communications protocol.

[0007] In another example, a non-transitory computer-readable medium is provided that has stored thereon instructions that, when executed by one or more processors, cause the one or more processors to: generate a security key associated with the status of the device; provide the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; generate a status indicator indicative of the status of the device; encrypt the status indicator using the security key to generate an encrypted status indicator; and transmit, to a networking device, the encrypted status indicator according to the first communications protocol.

[0008] In another example, an apparatus for communicating a status of a device is provided. The apparatus includes: means for generating a security key associated with the status of the device; means for providing the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; means for generating a statusindicator indicative of the status of the device; means for encrypting the status indicator using the security key to generate an encrypted status indicator; and means for transmitting, to a networking device, the encrypted status indicator according to the first communications protocol.

[0009] Systems and techniques are described for receiving a status of a device. According to at least one example, a method is provided for receiving a status of a device. The method includes: receiving, by a controller, a security key from the device, wherein the security key is associated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; responsive to establishing a connection between the controller and a networking device, sending, by the controller, a query according to the second communications protocol; receiving, responsive to the query, by the controller, an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and decrypting, by the controller, the encrypted status indicator using the security key.

[0010] In another example, an apparatus for receiving a status of a device is provided that includes at least one memory and at least one processor (e.g., configured in circuitry) coupled to the at least one memory. The at least one processor configured to: least one processor coupled to the at least one memory and configured to: receive a security key from the device, wherein the security key is associated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the apparatus is configured to communicate via a second communications protocol; responsive to establishing a connection between the apparatus and a networking device, send a query according to the second communications protocol; receive, responsive to the query an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and decrypt the encrypted status indicator using the security key.

[0011] In another example, a non-transitory computer-readable medium is provided that has stored thereon instructions that, when executed by one or more processors, cause the one or more processors to: receive a security key from the device, wherein the security key isassociated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the apparatus is configured to communicate via a second communications protocol; responsive to establishing a connection between the apparatus and a networking device, send a query according to the second communications protocol; receive, responsive to the query an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and decrypt the encrypted status indicator using the security key.

[0012] In another example, an apparatus for receiving a status of a device is provided. The apparatus includes: means for receiving a security key from the device, wherein the security key is associated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the apparatus is configured to communicate via a second communications protocol; means for, responsive to establishing a connection between the apparatus and a networking device, sending a query according to the second communications protocol; means for receiving, responsive to the query an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and means for decrypting the encrypted status indicator using the security key.

[0013] In some aspects, one or more of the apparatuses described herein is, can be part of, or can include a mobile device (e.g., a mobile telephone or so-called “smart phone”, a tablet computer, or other type of mobile device), an extended reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a vehicle (or a computing device or system of a vehicle), a smart or connected device (e.g., an Internet- of-Things (loT) device), a wearable device, a personal computer, a laptop computer, a video server, a television (e.g., a network-connected television), a robotics device or system, or other device. In some aspects, each apparatus can include an image sensor (e.g., a camera) or multiple image sensors (e.g., multiple cameras) for capturing one or more images. In some aspects, each apparatus can include one or more displays for displaying one or more images, notifications, and / or other displayable data. In some aspects, each apparatus can include one or more speakers, one or more light-emitting devices, and / or one or more microphones. In some aspects, each apparatus can include one or more sensors. In some cases, the one or moresensors can be used for determining a location of the apparatuses, a state of the apparatuses (e.g., a tracking state, an operating state, a temperature, a humidity level, and / or other state), and / or for other purposes.

[0014] This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in isolation to determine the scope of the claimed subject matter. The subject matter should be understood by reference to appropriate portions of the entire specification of this patent, any or all drawings, and each claim.

[0015] The foregoing, together with other features and aspects, will become more apparent upon referring to the following specification, claims, and accompanying drawings.BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Illustrative examples of the present application are described in detail below with reference to the following figures:

[0017] FIG. 1 is a block diagram illustrating an example system in which a device may provide status information to a controller, according to various aspects of the present disclosure;

[0018] FIG. 2 is a timing diagram illustrating an example process for providing status information from device to controller, according to various aspects of the present disclosure;

[0019] FIG. 3 is a block diagram illustrating an example for communicating a status of a device, according to various aspects of the present disclosure;

[0020] FIG. 4 is a flow diagram illustrating another example process for receiving a status a device, in accordance with aspects of the present disclosure;

[0021] FIG. 5 is a block diagram illustrating an example computing-device architecture of an example computing device which can implement the various techniques described herein.DETAILED DESCRIPTION

[0022] Certain aspects of this disclosure are provided below. Some of these aspects may be applied independently and some of them may be applied in combination as would be apparent to those of skill in the art. In the following description, for the purposes of explanation, specific details are set forth in order to provide a thorough understanding of aspects of the application. However, it will be apparent that various aspects may be practiced without these specific details. The figures and description are not intended to be restrictive.

[0023] The ensuing description provides example aspects only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing description of the exemplary aspects will provide those skilled in the art with an enabling description for implementing an exemplary aspect. It should be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the application as set forth in the appended claims.

[0024] The terms “exemplary” and / or “example” are used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” and / or “example” is not necessarily to be construed as preferred or advantageous over other aspects. Likewise, the term “aspects of the disclosure” does not require that all aspects of the disclosure include the discussed feature, advantage, or mode of operation.

[0025] As an example of uses of internet of things (loT) devices, a number of loT devices (e.g., loT lights, loT door sensors, loT speakers, loT sensors etc.) may operate within an environment (e.g., a home). The loT devices may, according to an loT protocol, communicate respective statuses to a controller and / or receive control messages from the controller. The controller may be implemented as, for example, an application or “app” running on a device (e.g., a smart phone or tablet) of a user.

[0026] The loT devices may be configured to communicate according to an loT protocol (e.g., Thread). The controller may, or may not, be configured to communicate according the loT protocol. To enable communications between the controller and the loT devices, many loT protocols include a role for a networking device capable of translating communications between the controller and the loT devices. For example, the networking device may receive communications from the controller according to a communications protocol used by thecontroller (e.g., an 802.11 protocol), translate the communications into the loT protocol, and transmit the translated communications to the loT devices according to the loT protocol. Further, the networking device may receive communications from the loT devices according to the loT protocol, translate the communications into the protocol used by the controller, and transmit the translated communications to the controller according to the protocol used by the controller. For example, Thread defines a border router role. The border router may translate communications between a protocol of the controller (e.g., an 802.11 protocol) and the Thread protocol of the loT devices.

[0027] In some cases, a number of loT devices may be included in an loT network. The loT network may include a networking device. For example, all loT devices in communication with a networking device may be defined as an loT network. A controller may communicate with all of the loT devices of an loT network through the networking device. In some cases, some loT devices may relay communications between a networking device and other loT devices. For example, the loT network may operate similar to ways that other communication networks operate (e.g., using identifiers or addresses and routing tables). Further, in some cases, an loT network may include multiple networking devices.

[0028] When a controller loses connection with an loT network, for example, by leaving the environment (e.g., if a user takes their smart device implementing the controller away from home), the loT devices may no longer communicate with the controller. Away from the environment, the controller may not receive communications (including status messages) from the loT devices. When the controller returns to the environment, the controller may not have the most recent statuses of the loT devices. For example, the controller may not have received communications regarding changes to statuses of the loT devices that occurred while the controller was out of communication with the loT network.

[0029] According to conventional protocols, to obtain up-to-date statuses of the loT devices, the controller may receive status messages from each of the loT devices one at a time. For example, a networking device of an loT network (or the controller) may store a table of loT devices associated with an loT network (or a networking device of the loT network). When the controller establishes a communication session with the networking device, the controllermay send (through the networking device) a query to each of the loT devices associated with the networking device and each of the loT devices may respond. Such query and response communications may be performed serially (e.g., the controller may query a first loT device and await a response before querying second loT device). It may take some time for the controller to receive statuses from all of the loT devices of an loT network. This may be especially true if the loT network includes many loT devices, if the controller is configured to wait for a timeout when a first loT device does not respond before querying a second loT device, and / or if the controller needs to reauthenticate the controller with each of the loT devices one at a time.

[0030] Systems, apparatuses, methods (also referred to as processes), and computer- readable media (collectively referred to herein as “systems and techniques”) are described herein for communicating a status of a device. The systems and techniques described herein may generate, by a device (e.g., an loT device), a security key associated with the status of the device. For example, the loT device may generate a cryptographic symmetric key. The systems and techniques may provide the security key to a controller (e.g., a controller of one or more loT devices). The device (e.g., the loT device) may be configured to communicate via a first communications protocol (e.g., an loT protocol, such as Thread). The controller may be configured to communicate via a second communications protocol (e.g., an 802.11 protocol). In some cases, the device and the controller may both be configured to communicate via a third communication protocol, such as a Bluetooth™ protocol. The device may provide the security key to the controller by transmitting the security key via the third communication protocol. The systems and techniques may generate, by the device (e.g., the loT device), a status indicator indicative of a status of the device and encrypt, by the device, the status indicator using the security key to generate an encrypted status indicator. The systems and techniques may transmit, by the device to a networking device, the encrypted status indicator according to the first communications protocol (e.g., the loT protocol).

[0031] The networking device may receive the encrypted status indicator and store the encrypted status indicator (e.g., as a key-value pair (KVP)). Additionally or alternatively, the networking device may provide the encrypted status indicator to the controller either in response to receiving the encrypted status indicator or in response to a query from thecontroller. For example, if the controller is in communication with the networking device when the encrypted status indicator is received by the networking device, the networking device may send the encrypted status indicator to the controller responsive to receiving the encrypted status indicator. However, if the controller is not in communication with the networking device when encrypted status indicator is received by the networking device, the networking device may store the encrypted status indicator in a memory of the networking device. Then, when the controller establishes a communicative connection with the networking device, the controller may a query (e.g., a multicast Domain Name System (mDNS) query) to the networking device, according to the second communications protocol. Responsive to the query, the networking device may provide the encrypted status indicator to the controller according to the second communications protocol. The controller may decrypt the encrypted status indicator using the security key.

[0032] In this way, the systems and techniques may provide statuses to the controller in a way that is faster than what is achieved by conventional protocols. For example, the systems and techniques may provide statuses of loT devices when the controller establishes the communicative connection with the networking device rather than requiring the controller to individually query the loT devices. Further, the systems and techniques may provide the statuses in response to an mDNS query without requiring a specific (or proprietary) query for the statuses.

[0033] Various aspects of the application will be described with respect to the figures below.

[0034] FIG. 1 is a block diagram illustrating an example system 100 in which a device 106 may provide status information to a controller 102, according to various aspects of the present disclosure. In general, device 106 may generate a security key 108 and provide security key 108 to controller 102. Controller 102 may store security key 108 in a memory 110 of controller 102. Device 106 may generate a status indicator and encrypt the status indicator to generate encrypted status indicator 112 (which may be referred to alternatively, such as in FIG. 1, as “status 112”). Device 106 may provide encrypted status indicator 112 to a networking device 104. Networking device 104 may store encrypted status indicator 112 at a memory 114 of networking device 104. Controller 102 may send a query 118 to networking device 104.Networking device 104 may provide encrypted status indicator 112 to controller 102 in response to query 118. Controller 102 may decrypt encrypted status indicator 112 using security key 108.

[0035] Controller 102 may be any device capable of receiving messages (e.g., status messages) from device 106 and / or capable of providing control messages to device 106. In some aspects, controller 102 may be an application (“app”) implemented on a device. The device, or controller 102 itself, may be, or may be included in, a mobile device (e.g., a mobile telephone or so-called “smart phone”, a tablet computer, or other type of mobile device), an extended reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a vehicle (or a computing device or system of a vehicle), a wearable device, a personal computer, a laptop computer, a video server, a television (e.g., a network-connected television), a robotics device or system, or other device. Controller 102 may be configured to communicate according to a number of protocols, including, as examples, Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocols (which may be referred to alternatively as 802.11 protocols or Wi-Fi protocols), cellular network protocols (including third generation (3G) protocols, fourth generation (4G) protocols, and fifth generation (5G) protocols), Zigbee, Z-Wave, near-field communications (NFC), and Bluetooth™.

[0036] Device 106 may be any device configured to provide messages (e.g., status messages) to other devices and / or to receive control messages from other devices. Device 106 may be an internet of things (loT) device. Device 106 may be, for example, a smart appliance, (e.g., a smart refrigerator, a smart oven, or a smart dishwasher), a smart thermostat, a smart television, a smart speaker, a smart door lock, or a smart security system. Device 106 may be configured to communicate according to an loT protocol (e.g., Thread). Further, device 106 may be configured to communicate according to one or more other protocols, such as, for example, Bluetooth™, Zigbee, and NFC.

[0037] Device 106 may generate encrypted status indicator 112. Encrypted status indicator 112 may include an indication of, for example, an operational state of device 106 (e.g., operational, non-operational, online, offline, low-power mode, safe mode, running, waiting,a color of light produced by device 106, a temperature of device 106, for example, if device 106 is an appliance), a state measured or observed by device 106 (e.g., whether a door or window is open or closed, a temperature, for example, if device 106 is a thermostat, light sensed, motion detected, carbon monoxide detected, smoke detected, water detected, such as a leak).

[0038] Networking device 104 may be any device capable of relaying messages received between controller 102 and device 106. For example, networking device 104 may be a gateway device capable of communicating with device 106 according to a communications protocol of device 106 (e.g., an loT protocol) and capable of communicating with controller 102 according to a communications protocol of controller 102 (e.g., an 802.11 protocol). Further, networking device 104 may be capable of translating messages received from device 106 according to the communications protocol of device 106 into messages according to the protocol of controller 102 for sending the translated messages to controller 102. Further still, networking device 104 may be capable of translating messages received from controller 102 according to the communications protocol of controller 102 into messages according to the protocol of device 106 for sending the translated messages to device 106. In some aspects, networking device 104 may be a border router according to the Thread protocol. In some aspects, networking device 104 may be a networking device of an loT network. For example, multiple loT devices (not illustrated in FIG. 1) may be communicatively connected to networking device 104 and to controller 102 through networking device 104.

[0039] Security key 108 may be a security key associated with a status of device 106. In some aspects, security key 108 may be a symmetric cryptographic key. For example, if device 106 is power constrained, security key 108 may be a symmetric cryptographic key. In other aspects, security key 108 may be, or may include, a private-public key pair. Security key 108 may be specific to device 106 and common to all controllers (e.g., including other controllers not illustrated in FIG. 1) that may control device 106. Security key 108 may be capable of being rotated. Security key 108 may be associated with metadata that helps to identify the key (e.g., a key ID) as well as any metadata needed by the specific symmetric key algorithm to operate properly.

[0040] Device 106 may generate a status indicator indicative of a status of device 106. The status indicator may indicate a sensed property (and / or a change in a sensed property). For example device 106 may sense temperature, sound, light, and / or position and may generate status indicators based on the sensed temperature, sound, light, and / or position. Further, device 106 may generate a status indicator responsive to changes in the sensed temperature, sound, light, and / or position. Additionally or alternatively, the status indicator may indicate a state of device 106, for example, an operational state of device 106 or one or more operational parameters of device 106. In some cases, device 106 may generate a status indicators responsive to changes to the state of device 106. Additionally or alternatively, device 106 may generate a status indicator at regular intervals, even if there has been no change to the state of device 106. Device 106 may encrypt the status indicator (to generate encrypted status indicator 112) using security key 108 according to any suitable encryption algorithm, such as, for example, Advanced Encryption Standard (AES) 256.

[0041] Query 118 may be a query sent by controller 102 responsive to controller 102 establishing communications with networking device 104. For example, controller 102 may establish a communicative connection with networking device 104 and, responsive to establishing the communicative connection, controller 102 may send query 118 to networking device 104. Query 118 may be according to a communication protocol of controller 102. Query 118 may be a multicast Domain Name System (mDNS) message.

[0042] FIG. 2 is a timing diagram illustrating an example process 200 for providing status information from device 106 to controller 102, according to various aspects of the present disclosure. System 100 of FIG. 1 may implement process 200 to provide encrypted status indicator 112 to controller 102. In general, device 106 may generate a security key (e.g., security key 108 of FIG. 1) (at an operation 206) and provide the security key to controller 102 (at an operation 208). Controller 102 may store the security key (at an operation 210). Device 106 may generate a status indicator and encrypt the status indicator (at an operation 212). Device 106 may provide the encrypted status indicator (e.g., encrypted status indicator 112) to networking device 104 (at an operation 216). Networking device 104 may store the encrypted status indicator (at an operation 218). Controller 102 may query networking device 104 (at an operation 224) (e.g., by sending query 118 of FIG. 1). Networking device 104 mayprovide the encrypted status indicator to controller 102 (at an operation 226). Controller 102 may decrypt the encrypted status indicator using the security key (at an operation 228).

[0043] In FIG. 2 and the accompanying description, process 200 is divided into a number of processes or sub-processes (e.g., a registration process 202, a session-establishment process 211, an update process 214, and a sync process 222) for descriptive purposes. The operations of process 200 may generally occur with relation to respective ones of the number of processes. However, the number of processes are provided merely to aid in understanding and are not limiting.

[0044] Registration process 202 of process 200 (e.g., a registration sub-process of process 200) may include a pairing process 204 (e.g., a pairing sub-process) in which device 106 pairs with controller 102. Pairing process 204 may be protocol-specific, for example, pairing process 204 may be according to a protocol of device 106 and / or networking device 104. For example, pairing process 204 may be according to a Matter protocol or a HomeKit Accessory Protocol (e.g., based on a protocol of device 106 and / or networking device 104). During pairing process 204 controller 102 and device 106 may generate keys by which controller 102 and device 106 may authenticate messages from one another. During pairing process 204, device 106 may generate a number of keys including, as examples, keys associated with subscription events and keys associated with conversations. Further, during registration process 202, in addition to device 106 providing keys to controller 102, controller 102 may provide keys to device 106. Some of the keys exchanged during registration process 202 may be according to the protocol of device 106. Examples of keys exchanged between controller 102 and device 106 (e.g., as part of registration process 202 and / or session-establishment process 211) include: long-term access tokens or public / private key pairs (which may be exchanged during registration process 202), session keys (e.g., to protect confidentiality and / or integrity of the short-term communications session), and / or keys for normal operations. For example, during normal operations of controller 102 and device 106, controller 102 and / or device 106 may communicate periodic status queries (e.g., from controller 102 to device 106) and / or push notifications (e.g., from device 106 to controller 102).

[0045] In addition to the keys exchanged during pairing process 204 according to the protocol of device 106, at operation 206, device 106 may generate a security key associated with a status of device 106 (e.g., security key 108 of FIG. 1). At operation 208, device 106 may provide the security key associated with the status of device 106 and meta data associated with the security key to controller 102. In some aspects, controller 102 and device 106 may communicate via a common protocol. During registration process 202, and specifically for device 106 to provide the security key to controller 102, device 106 may communicate according to the common protocol. For example, at operation 208, device 106 may transmit the security key to controller 102 according to a Bluetooth™ or NFC protocol. At operation210, controller 102 may securely store the security key and any provided metadata locally for future use.

[0046] In some cases, long-term secrets, including the security key, may be exchanged during registration process 202. Additionally or alternatively, older pairings could be “upgraded” or “updated” to participate in the systems and techniques of the present disclosure for example, by exchanging the security key during a short-term session (e.g., as part of session-establishment process 211).

[0047] In some aspects, process 200 may include a session-establishment process 211 (e.g., a session-establishment sub-process of process 200). As part of session-establishment process211, short-term sessions may established and associated short-term keys 213 may be exchanged.

[0048] Following registration process 202, and in some cases, following sessionestablishment process 211, device 106 may determine a status of device 106. The status of device 106 may be based on a sensed property or a change in a sensed property. Sensed properties include, as examples, sensed light, sound, position, movement, electrical current, electrical voltage, and temperature. Additionally or alternatively, the status of device 106 may be based on an operational state and / or operational parameters of device 106. Device 106 may generate a status indicator indicative of the status of device 106 based on a change (e.g., a change in a sensed property, a change in an operational state, and / or a change to operational parameters of device 106). Additionally or alternatively, device 106 may generate the statusindicator at regular intervals (e.g., responsive to a timeout) even if no state change has occurred, been sensed, or been determined. At operation 212, device 106 may encrypt the status indicator using the security key (e.g., security key 108 Of FIG. 1) to generate an encrypted status indicator (e.g., encrypted status indicator 112 of FIG. 1).

[0049] At operation 216, which may be part of update process 214 (which may be a subprocess of process 200), device 106 may provide the encrypted status indicator to networking device 104. For example, device 106 may transmit the encrypted status indicator to networking device 104 according to a protocol of device 106 (e.g., an loT protocol). Additionally, device 106 may transmit metadata associated with the encrypted status indicator to networking device 104 at operation 216.

[0050] At operation 218, networking device 104 may store the encrypted status indicator. For example, networking device 104 may store information regarding device 106. Networking device 104 may also store information regarding other devices (e.g., other loT devices not illustrated in FIG. 1 or in FIG. 2). For example, networking device 104 may store information for multiple (e.g., all) loT devices of an loT network. Networking device 104 may store data (including data about networking device 104 and / or data about other devices) as key-value- pairs (KVPs). For instance, networking device 104 may store state information about services (including, as examples, human- friendly names, IPv6-address information, protocol-specific attributes, etc.) to track and / or advertise the information about the services.

[0051] Networking device 104 may store the encrypted status indicator and related key metadata (e.g., as one or more KVPs). For example, networking device 104 may store (or update) a KVP associated with a status of device 106 to include the encrypted status indicator. Networking device 104 advertise the encrypted status indicator KVP. Additionally or alternatively, networking device 104 may store and / or advertise an indicator that networking device 104 is capable of storing encrypted status indicators. For example, networking device 104 may store and / or advertise a feature flag, a capability flag, and / or a version number that may indicate (e.g., to controller 102 and / or device 106), that networking device 104 is capable of storing encrypted status indicators of device 106 and / or of other devices.

[0052] Additionally or alternatively, networking device 104 may store a respective freshness attribute associated with each of the encrypted status indicators. Further, networking device 104 may provide the freshness attribute when networking device 104 provides the encrypted status indicators. For example, networking device 104 may store a freshness attribute associated with the encrypted status indicator received from device 106 at operation 208. Networking device 104 may provide the freshness attribute to controller 102 when networking device 104 provides the encrypted status indicator to controller 102.

[0053] In some situations, controller 102 may be in communication with networking device 104 when the encrypted status indicator is received by networking device 104 at operation 216. In such situations, networking device 104 may, at operation 220, provide the encrypted status indicator to controller 102 in response to receiving the encrypted status indicator (e.g., at operation 216).

[0054] In other situations, controller 102 may not be in communication with networking device 104 when the encrypted status indicator is received by networking device 104. For example, controller 102 may be a mobile device (e.g., which may be carried by a user) while networking device 104 may be stationary (e.g., networking device 104 may remain at a home of the user). Continuing the example, the user may take controller 102 away from networking device 104. Device 106 may generate and provide an encrypted status indicator to networking device 104. In such situations, networking device 104 may store (or “cache”) the encrypted status indicator until networking device 104 is able to provide the encrypted status indicator to controller 102. For example, networking device 104 may receive the encrypted status indicator at operation 216, store the encrypted status indicator at operation 218, and not provide the encrypted status indicator to controller 102 at operation 220. In such situations, operation 220 may be omitted from process 200. Rather, networking device 104 may continue to store the encrypted status indicator until controller 102 is in communication with networking device 104.

[0055] Update process 214 may be followed by sync process 222 (which may be a subprocess of process 200). Sync process 222 may begin with controller 102 providing a query (e.g., query 118 of FIG. 1) to networking device 104. For example, when controller 102establishes, or reestablishes, communication with networking device 104 (e.g., when controller 102 joins a local area network (LAN) including networking device 104), controller 102 may send a query (e.g., a multicast Domain Name System (mDNS) query) (e.g., query 118 of FIG. 1). The query may be part of a discovery protocol. The discovery protocol may be used to detect devices (including loT devices) associated with networking device 104.

[0056] At operation 226, networking device 104 may respond to the query by sending the encrypted status indicator (e.g., as a KVP). Networking device 104 may be configured to respond to queries (e.g., mDNS queries) by providing KVPs. For example, networking device 104 may be configured to provide discovery data, such as, IPv6-address information in response to queries. Further, because networking device 104 is storing the encrypted status indicator as a KVP, networking device 104 may provide the encrypted status indicator in response to the query. Additionally or alternatively, networking device 104 may provide any stored metadata related to the encrypted status indicator (e.g., a freshness attribute) to controller 102 responsive to the query. In some cases, networking device 104 may provide multiple encrypted status indicators for each of a number of respective devices of the network of networking device 104. For example, in some cases, networking device 104 may transmit encrypted status indicators for all of the devices of the network of networking device 104.

[0057] At operation 226, controller 102 may decrypt the encrypted status indicator using the security key provided at operation 208 (e.g., security key 108). In some aspects, controller 102 may perform a look-up of the security key provided. In some aspects, controller 102 may use metadata for the look-up and / or decryption process.

[0058] In some aspects, one or more operations of process 200 may be performed according to existing protocols. For instance, in some cases, various aspects of the present disclosure may leverage operations of existing protocols to perform one or more of the operations of process 200.

[0059] FIG. 3 is a flow diagram illustrating a process 300 for communicating a status of a device, in accordance with aspects of the present disclosure. One or more operations of process 300 may be performed by a computing device (or apparatus) or a component (e.g., a chipset, codec, etc.) of the computing device. The computing device may be a mobile device(e.g., a mobile phone), a network-connected wearable such as a watch, an extended reality (XR) device such as a virtual reality (VR) device or augmented reality (AR) device, a vehicle or component or system of a vehicle, a desktop computing device, a tablet computing device, a server computer, a robotic device, and / or any other computing device with the resource capabilities to perform the process 300. The one or more operations of process 300 may be implemented as software components that are executed and run on one or more processors.

[0060] At a block 302, a computing device (or one or more components thereof) may generate, by the device, a security key associated with the status of the device.

[0061] In some aspects, the computing device (or one or more components thereof) may be, or may include, an internet of things (loT) device and the first communications protocol comprises an loT protocol. In some aspects, the loT protocol may be, or may include, a Thread protocol.

[0062] At a block 304, the computing device (or one or more components thereof) may provide the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol.

[0063] In some aspects, the controller may be configured to control one or more internet of things (loT) devices. In some aspects, the second communications protocol may be, or may include, an 802.11 protocol.

[0064] In some aspects, the computing device (or one or more components thereof) may associate the device with the controller. In some aspects, the computing device (or one or more components thereof) may pair the device with the controller.

[0065] In some aspects, the security key may be, or may include, a symmetric key

[0066] In some aspects, the device may be further configured to communicate via a third communications protocol. The controller may be further configured to communicate via the third communications protocol. The device may provide the security key to the controller according to the third communications protocol. In such aspects, the third communicationsprotocol may be, or may include, at least one of Bluetooth® or near-field communication (NFC). In other aspects, the device may provide the security key to the controller according to the first communications protocol. In other aspects, the device may provide the security key to the controller according to the second communications protocol.

[0067] At a block 306, the computing device (or one or more components thereof) may generate, by the device, a status indicator indicative of the status of the device.

[0068] In some aspects, the status indicator may be generated responsive to a state change of the device. In some aspects, the status indicator may be generated responsive to a timeout.

[0069] At a block 308, the computing device (or one or more components thereof) may encrypt, by the device, the status indicator using the security key to generate an encrypted status indicator.

[0070] At a block 310, the computing device (or one or more components thereof) may transmit, by the device to a networking device, the encrypted status indicator according to the first communications protocol.

[0071] In some aspects, the encrypted status indicator may be transmitted as a value of a key-value pair.

[0072] In some aspects, the networking device may be, or may include, a gateway between the first communications protocol and the second communications protocol. In some aspects, the first communications protocol may be, or may include, a Thread protocol. The networking device may be, or may include, a border router according to the Thread protocol.

[0073] FIG. 4 is a flow diagram illustrating a process 400 for receiving a status of a device, in accordance with aspects of the present disclosure. One or more operations of process 400 may be performed by a computing device (or apparatus) or a component (e.g., a chipset, codec, etc.) of the computing device. The computing device may be a mobile device (e.g., a mobile phone), a network-connected wearable such as a watch, an extended reality (XR) device such as a virtual reality (VR) device or augmented reality (AR) device, a vehicle or component or system of a vehicle, a desktop computing device, a tablet computing device, aserver computer, a robotic device, and / or any other computing device with the resource capabilities to perform the process 400. The one or more operations of process 400 may be implemented as software components that are executed and run on one or more processors.

[0074] At a block 402, a computing device (or one or more components thereof) may receive, by a controller, a security key from the device, wherein the security key is associated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol.

[0075] In some aspects, the controller may be configured to control one or more internet of things (loT) devices. In some aspects, the second communications protocol may be, or may include, an 802.11 protocol.

[0076] In some aspects, the device may be, or may include, an internet of things (loT) device and the first communications protocol comprises an loT protocol. In some aspects, the loT protocol comprises a Thread protocol.

[0077] In some aspects, the device may be further configured to communicate via a third communications protocol. The controller may be further configured to communicate via the third communications protocol. The device may provide the security key to the controller according to the third communications protocol. In such aspects, the third communications protocol may be, or may include, at least one of Bluetooth® or near-field communication (NFC). In other aspects, the device may provide the security key to the controller according to the first communications protocol. In other aspects, the device may provide the security key to the controller according to the second communications protocol.

[0078] In some aspects, the computing device (or one or more components thereof) may associate the device with the controller. In some aspects, the computing device (or one or more components thereof) may pair the device with the controller.

[0079] In some aspects, the security key may be, or may include, a symmetric key.

[0080] At a block 404, the computing device (or one or more components thereof) may responsive to establishing a connection between the controller and a networking device, send, by the controller, a query according to the second communications protocol.

[0081] Isa, the query may be, or may include, a multicast Domain Name System (mDNS) query

[0082] In some aspects, the networking device may be, or may include, a gateway between the first communications protocol and the second communications protocol. In some aspects, the first communications protocol may be, or may include, a Thread protocol wherein the networking device comprises a border router according to the Thread protocol.

[0083] At a block 406, the computing device (or one or more components thereof) may receive, responsive to the query, by the controller, an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device.

[0084] In some aspects, the encrypted status indicator may be received as a value of a keyvalue pair.

[0085] At a block 408, the computing device (or one or more components thereof) may decrypt, by the controller, the encrypted status indicator using the security key.

[0086] In some examples, as noted previously, the methods described herein (e.g., process 200 of FIG. 2, process 300 of FIG. 3, process 400 of FIG. 4, and / or other methods described herein) can be performed, in whole or in part, by a computing device or apparatus. In one example, one or more of the methods can be performed by system 100 of FIG. 1, controller 102 of FIG. 1 , device 106 of FIG. 1, or by another system or device. In another example, one or more of the methods (e.g., process 200, process 300, process 400, and / or other methods described herein) can be performed, in whole or in part, by the computing-device architecture 500 shown in FIG. 5. For instance, a computing device with the computing-device architecture 500 shown in FIG. 5 can include, or be included in, the components of the system 100, controller 102, and / or device 106 and can implement the operations of process 200, process 300, process 400, and / or other process described herein. In some cases, the computing deviceor apparatus can include various components, such as one or more input devices, one or more output devices, one or more processors, one or more microprocessors, one or more microcomputers, one or more cameras, one or more sensors, and / or other component(s) that are configured to carry out the steps of processes described herein. In some examples, the computing device can include a display, a network interface configured to communicate and / or receive the data, any combination thereof, and / or other component(s). The network interface can be configured to communicate and / or receive Internet Protocol (IP) based data or other type of data.

[0087] The components of the computing device can be implemented in circuitry. For example, the components can include and / or can be implemented using electronic circuits or other electronic hardware, which can include one or more programmable electronic circuits (e.g., microprocessors, graphics processing units (GPUs), digital signal processors (DSPs), central processing units (CPUs), and / or other suitable electronic circuits), and / or can include and / or be implemented using computer software, firmware, or any combination thereof, to perform the various operations described herein.

[0088] Process 200, process 300, process 400, and / or other process described herein are illustrated as logical flow diagrams, the operation of which represents a sequence of operations that can be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and / or in parallel to implement the processes.

[0089] Additionally, process 200, process 300, process 400, and / or other process described herein can be performed under the control of one or more computer systems configured with executable instructions and can be implemented as code (e.g., executable instructions, one ormore computer programs, or one or more applications) executing collectively on one or more processors, by hardware, or combinations thereof. As noted above, the code can be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program comprising a plurality of instructions executable by one or more processors. The computer-readable or machine-readable storage medium can be non- transitory.

[0090] FIG. 5 illustrates an example computing-device architecture 500 of an example computing device which can implement the various techniques described herein. In some examples, the computing device can include a mobile device, a wearable device, an extended reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a personal computer, a laptop computer, a video server, a vehicle (or computing device of a vehicle), or other device. For example, the computing-device architecture 500 may include, implement, or be included in any or all of system 100 of FIG. 1, controller 102 of FIG. 1, device 106 of FIG. 1. Additionally or alternatively, computingdevice architecture 500 may be configured to perform process 400, and / or other process described herein.

[0091] The components of computing-device architecture 500 are shown in electrical communication with each other using connection 512, such as a bus. The example computingdevice architecture 500 includes a processing unit (CPU or processor) 502 and computing device connection 512 that couples various computing device components including computing device memory 510, such as read only memory (ROM) 508 and random-access memory (RAM) 506, to processor 502.

[0092] Computing-device architecture 500 can include a cache of high-speed memory connected directly with, in close proximity to, or integrated as part of processor 502. Computing-device architecture 500 can copy data from memory 510 and / or the storage device 514 to cache 504 for quick access by processor 502. In this way, the cache can provide a performance boost that avoids processor 502 delays while waiting for data. These and other modules can control or be configured to control processor 502 to perform various actions. Other computing device memory 510 may be available for use as well. Memory 510 caninclude multiple different types of memory with different performance characteristics. Processor 502 can include any general-purpose processor and a hardware or software service, such as service 1 516, service 2 518, and service 3 520 stored in storage device 514, configured to control processor 502 as well as a special-purpose processor where software instructions are incorporated into the processor design. Processor 502 may be a self-contained system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor may be symmetric or asymmetric.

[0093] To enable user interaction with the computing-device architecture 500, input device 522 can represent any number of input mechanisms, such as a microphone for speech, a touch- sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. Output device 524 can also be one or more of a number of output mechanisms known to those of skill in the art, such as a display, projector, television, speaker device, etc. In some instances, multimodal computing devices can enable a user to provide multiple types of input to communicate with computing-device architecture 500. Communication interface 526 can generally govern and manage the user input and computing device output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.

[0094] Storage device 514 is a non-volatile memory and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, random-access memories (RAMs) 506, read only memory (ROM) 508, and hybrids thereof. Storage device 514 can include services 516, 518, and 520 for controlling processor 502. Other hardware or software modules are contemplated. Storage device 514 can be connected to the computing device connection 512. In one aspect, a hardware module that performs a particular function can include the software component stored in a computer- readable medium in connection with the necessary hardware components, such as processor 502, connection 512, output device 524, and so forth, to carry out the function.

[0095] The term “substantially,” in reference to a given parameter, property, or condition, may refer to a degree that one of ordinary skill in the art would understand that the given parameter, property, or condition is met with a small degree of variance, such as, for example, within acceptable manufacturing tolerances. By way of example, depending on the particular parameter, property, or condition that is substantially met, the parameter, property, or condition may be at least 90% met, at least 95% met, or even at least 99% met.

[0096] Aspects of the present disclosure are applicable to any suitable electronic device (such as security systems, smartphones, tablets, laptop computers, vehicles, drones, or other devices) including or coupled to one or more active depth sensing systems. While described below with respect to a device having or coupled to one light projector, aspects of the present disclosure are applicable to devices having any number of light projectors and are therefore not limited to specific devices.

[0097] The term “device” is not limited to one or a specific number of physical objects (such as one smartphone, one controller, one processing system and so on). As used herein, a device may be any electronic device with one or more parts that may implement at least some portions of this disclosure. While the below description and examples use the term “device” to describe various aspects of this disclosure, the term “device” is not limited to a specific configuration, type, or number of objects. Additionally, the term “system” is not limited to multiple components or specific aspects. For example, a system may be implemented on one or more printed circuit boards or other substrates and may have movable or static components. While the below description and examples use the term “system” to describe various aspects of this disclosure, the term “system” is not limited to a specific configuration, type, or number of objects.

[0098] Specific details are provided in the description above to provide a thorough understanding of the aspects and examples provided herein. However, it will be understood by one of ordinary skill in the art that the aspects may be practiced without these specific details. For clarity of explanation, in some instances the present technology may be presented as including individual functional blocks including functional blocks including devices, device components, steps or routines in a method embodied in software, or combinations ofhardware and software. Additional components may be used other than those shown in the figures and / or described herein. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the aspects in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the aspects.

[0099] Individual aspects may be described above as a process or method which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed but could have additional steps not included in a figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination can correspond to a return of the function to the calling function or the main function.

[0100] Processes and methods according to the above-described examples can be implemented using computer-executable instructions that are stored or otherwise available from computer-readable media. Such instructions can include, for example, instructions and data which cause or otherwise configure a general-purpose computer, special purpose computer, or a processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, source code, etc.

[0101] The term “computer-readable medium” includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other mediums capable of storing, containing, or carrying instruction(s) and / or data. A computer-readable medium may include a non-transitory medium in which data can be stored and that does not include carrier waves and / or transitory electronic signals propagating wirelessly or over wired connections. Examples of a non-transitory medium may include, but are not limited to, a magnetic disk ortape, optical storage media such as compact disk (CD) or digital versatile disk (DVD), flash memory, magnetic or optical disks, USB devices provided with non-volatile memory, networked storage devices, any suitable combination thereof, among others. A computer- readable medium may have stored thereon code and / or machine-executable instructions that may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, or the like.

[0102] In some aspects the computer-readable storage devices, mediums, and memories can include a cable or wireless signal containing a bit stream and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.

[0103] Devices implementing processes and methods according to these disclosures can include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and can take any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks (e.g., a computer-program product) may be stored in a computer-readable or machine-readable medium. A processor(s) may perform the necessary tasks. Typical examples of form factors include laptops, smart phones, mobile phones, tablet devices or other small form factor personal computers, personal digital assistants, rackmount devices, standalone devices, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example.

[0104] The instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are example means for providing the functions described in the disclosure.

[0105] In the foregoing description, aspects of the application are described with reference to specific aspects thereof, but those skilled in the art will recognize that the application is not limited thereto. Thus, while illustrative aspects of the application have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art. Various features and aspects of the abovedescribed application may be used individually or jointly. Further, aspects can be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of the specification. The specification and drawings are, accordingly, to be regarded as illustrative rather than restrictive. For the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate aspects, the methods may be performed in a different order than that described.

[0106] One of ordinary skill will appreciate that the less than (“<“) and greater than (“>“) symbols or terminology used herein can be replaced with less than or equal to (“<”) and greater than or equal to (“>”) symbols, respectively, without departing from the scope of this description.

[0107] Where components are described as being “configured to” perform certain operations, such configuration can be accomplished, for example, by designing electronic circuits or other hardware to perform the operation, by programming programmable electronic circuits (e.g., microprocessors, or other suitable electronic circuits) to perform the operation, or any combination thereof.

[0108] The phrase “coupled to” refers to any component that is physically connected to another component either directly or indirectly, and / or any component that is in communication with another component (e.g., connected to the other component over a wiredor wireless connection, and / or other suitable communication interface) either directly or indirectly.

[0109] Claim language or other language reciting “at least one of’ a set and / or “one or more” of a set indicates that one member of the set or multiple members of the set (in any combination) satisfy the claim. For example, claim language reciting “at least one of A and B” or “at least one of A or B” means A, B, or A and B. In another example, claim language reciting “at least one of A, B, and C” or “at least one of A, B, or C” means A, B, C, or A and B, or A and C, or B and C, A and B and C, or any duplicate information or data (e.g., A and A, B and B, C and C, A and A and B, and so on), or any other ordering, duplication, or combination of A, B, and C. The language “at least one of’ a set and / or “one or more” of a set does not limit the set to the items listed in the set. For example, claim language reciting “at least one of A and B” or “at least one of A or B” may mean A, B, or A and B, and may additionally include items not listed in the set of A and B. The phrases “at least one” and “one or more” are used interchangeably herein.

[0110] Claim language or other language reciting “at least one processor configured to,” “at least one processor being configured to,” “one or more processors configured to,” “one or more processors being configured to,” or the like indicates that one processor or multiple processors (in any combination) can perform the associated operation(s). For example, claim language reciting “at least one processor configured to: X, Y, and Z” means a single processor can be used to perform operations X, Y, and Z; or that multiple processors are each tasked with a certain subset of operations X, Y, and Z such that together the multiple processors perform X, Y, and Z; or that a group of multiple processors work together to perform operations X, Y, and Z. In another example, claim language reciting “at least one processor configured to: X, Y, and Z” can mean that any single processor may only perform at least a subset of operations X, Y, and Z.[OHl] Where reference is made to one or more elements performing functions (e.g., steps of a method), one element may perform all functions, or more than one element may collectively perform the functions. When more than one element collectively performs the functions, each function need not be performed by each of those elements (e.g., differentfunctions may be performed by different elements) and / or each function need not be performed in whole by only one element (e.g., different elements may perform different subfunctions of a function). Similarly, where reference is made to one or more elements configured to cause another element (e.g., an apparatus) to perform functions, one element may be configured to cause the other element to perform all functions, or more than one element may collectively be configured to cause the other element to perform the functions.

[0112] Where reference is made to an entity (e.g., any entity or device described herein) performing functions or being configured to perform functions (e.g., steps of a method), the entity may be configured to cause one or more elements (individually or collectively) to perform the functions. The one or more components of the entity may include at least one memory, at least one processor, at least one communication interface, another component configured to perform one or more (or all) of the functions, and / or any combination thereof. Where reference to the entity performing functions, the entity may be configured to cause one component to perform all functions, or to cause more than one component to collectively perform the functions. When the entity is configured to cause more than one component to collectively perform the functions, each function need not be performed by each of those components (e.g., different functions may be performed by different components) and / or each function need not be performed in whole by only one component (e.g., different components may perform different sub-functions of a function).

[0113] The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the aspects disclosed herein may be implemented as electronic hardware, computer software, firmware, or combinations thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.

[0114] The techniques described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices such as general-purposes computers, wireless communication device handsets, or integrated circuit devices having multiple uses including application in wireless communication device handsets and other devices. Any features described as modules or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be realized at least in part by a computer-readable data storage medium including program code including instructions that, when executed, performs one or more of the methods described above. The computer-readable data storage medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may include memory or data storage media, such as random-access memory (RAM) such as synchronous dynamic random-access memory (SDRAM), read-only memory (ROM), non-volatile random-access memory (NVRAM), electrically erasable programmable readonly memory (EEPROM), FLASH memory, magnetic or optical data storage media, and the like. The techniques additionally, or alternatively, may be realized at least in part by a computer-readable communication medium that carries or communicates program code in the form of instructions or data structures and that can be accessed, read, and / or executed by a computer, such as propagated signals or waves.

[0115] The program code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, an application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Such a processor may be configured to perform any of the techniques described in this disclosure. A general-purpose processor may be a microprocessor; but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structure, any combination ofthe foregoing structure, or any other structure or apparatus suitable for implementation of the techniques described herein.

[0116] Illustrative aspects of the disclosure include:

[0117] Aspect 1. A method for communicating a status of a device, the method comprising: generating, by the device, a security key associated with the status of the device; providing the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; generating, by the device, a status indicator indicative of the status of the device; encrypting, by the device, the status indicator using the security key to generate an encrypted status indicator; and transmitting, by the device to a networking device, the encrypted status indicator according to the first communications protocol.

[0118] Aspect 2. The method of aspect 1, wherein the device comprises an internet of things (loT) device and the first communications protocol comprises an loT protocol.

[0119] Aspect 3. The method of aspect 2, wherein the loT protocol comprises a Thread protocol.

[0120] Aspect 4. The method of any one of aspects 1 to 3, wherein the networking device comprises a gateway between the first communications protocol and the second communications protocol.

[0121] Aspect 5. The method of any one of aspects 1 to 4, wherein the first communications protocol comprises a Thread protocol wherein the networking device comprises a border router according to the Thread protocol.

[0122] Aspect 6. The method of any one of aspects 1 to 5, wherein the controller is configured to control one or more internet of things (loT) devices.

[0123] Aspect 7. The method of any one of aspects 1 to 6, wherein the second communications protocol comprises an 802.11 protocol.

[0124] Aspect 8. The method of any one of aspects 1 to 7, wherein the device is further configured to communicate via a third communications protocol, wherein the controller is further configured to communicate via the third communications protocol, and wherein the device provides the security key to the controller according to the third communications protocol.

[0125] Aspect 9. The method of aspect 9, wherein the third communications protocol comprises at least one of Bluetooth® or near- field communication (NFC).

[0126] Aspect 10. The method of any one of aspects 1 to 9, wherein the device provides the security key to the controller according to the first communications protocol.

[0127] Aspect 11. The method of any one of aspects 1 to 10, wherein the device provides the security key to the controller according to the second communications protocol.

[0128] Aspect 12. The method of any one of aspects 1 to 11, further comprising associating the device with the controller.

[0129] Aspect 13. The method of any one of aspects 1 to 12, further comprising pairing the device with the controller.

[0130] Aspect 14. The method of any one of aspects 1 to 13, wherein the security key comprises a symmetric key.

[0131] Aspect 15. The method of any one of aspects 1 to 14, wherein the encrypted status indicator is transmitted as a value of a key-value pair.

[0132] Aspect 16. The method of any one of aspects 1 to 15, wherein the status indicator is generated responsive to a state change of the device.

[0133] Aspect 17. The method of any one of aspects 1 to 16, wherein the status indicator is generated responsive to a timeout.

[0134] Aspect 18. A method for receiving a status of a device, the method comprising: receiving, by a controller, a security key from the device, wherein the security key isassociated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; responsive to establishing a connection between the controller and a networking device, sending, by the controller, a query according to the second communications protocol; receiving, responsive to the query, by the controller, an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and decrypting, by the controller, the encrypted status indicator using the security key.

[0135] Aspect 19. The method of aspect 18, wherein the controller is configured to control one or more internet of things (loT) devices.

[0136] Aspect 20. The method of any one of aspects 18 or 19, wherein the second communications protocol comprises an 802.11 protocol.

[0137] Aspect 21. The method of any one of aspects 18 to 20, wherein the networking device comprises a gateway between the first communications protocol and the second communications protocol.

[0138] Aspect 22. The method of any one of aspects 18 to 21 , wherein the first communications protocol comprises a Thread protocol wherein the networking device comprises a border router according to the Thread protocol.

[0139] Aspect 23. The method of any one of aspects 18 to 22, wherein the device comprises an internet of things (loT) device and the first communications protocol comprises an loT protocol.

[0140] Aspect 24. The method of aspect 23, wherein the loT protocol comprises a Thread protocol.

[0141] Aspect 25. The method of any one of aspects 18 to 24, wherein the device is further configured to communicate via a third communications protocol, wherein the controller is further configured to communicate via the third communications protocol, and wherein thedevice provides the security key to the controller according to the third communications protocol.

[0142] Aspect 26. The method of aspect 25, wherein the third communications protocol comprises at least one of Bluetooth® or near- field communication (NFC).

[0143] Aspect 27. The method of any one of aspects 18 to 26, wherein the device provides the security key to the controller according to the first communications protocol.

[0144] Aspect 28. The method of any one of aspects 18 to 27, wherein the device provides the security key to the controller according to the second communications protocol.

[0145] Aspect 29. The method of any one of aspects 18 to 28, further comprising associating the device with the controller.

[0146] Aspect 30. The method of any one of aspects 18 to 29, further comprising pairing the device with the controller.

[0147] Aspect 31. The method of any one of aspects 18 to 30, wherein the security key comprises a symmetric key.

[0148] Aspect 32. The method of any one of aspects 18 to 31, wherein the query comprises a multicast Domain Name System (mDNS) query.

[0149] Aspect 33. The method of any one of aspects 18 to 32, wherein the encrypted status indicator is received as a value of a key-value pair.

[0150] Aspect 34. A device for communicating a status, the device comprising: at least one memory; and at least one processor coupled to the at least one memory and configured to: generate a security key associated with the status of the device; provide the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; generate a status indicator indicative of the status of the device; encrypt the status indicator using the security key to generate an encrypted status indicator;and transmit, to a networking device, the encrypted status indicator according to the first communications protocol.

[0151] Aspect 35. The device of aspect 34, wherein the device comprises an internet of things (loT) device and the first communications protocol comprises an loT protocol.

[0152] Aspect 36. An apparatus for receiving a status of a device, the apparatus comprising: at least one memory; and at least one processor coupled to the at least one memory and configured to: receive a security key from the device, wherein the security key is associated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the apparatus is configured to communicate via a second communications protocol; responsive to establishing a connection between the apparatus and a networking device, send a query according to the second communications protocol; receive, responsive to the query an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and decrypt the encrypted status indicator using the security key.

[0153] Aspect 37. The apparatus of aspect 36, wherein the apparatus comprises a controller configured to control one or more internet of things (loT) devices.

[0154] Aspect 38. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed by at least one processor, cause the at least one processor to: generate a security key associated with the status of the device; provide the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; generate a status indicator indicative of the status of the device; encrypt the status indicator using the security key to generate an encrypted status indicator; and transmit, to a networking device, the encrypted status indicator according to the first communications protocol.

[0155] Aspect 39. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed by at least one processor, cause the at least one processor to: receive a security key from the device, wherein the security key is associatedwith the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the apparatus is configured to communicate via a second communications protocol; responsive to establishing a connection between the apparatus and a networking device, send a query according to the second communications protocol; receive, responsive to the query an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and decrypt the encrypted status indicator using the security key.

[0156] Aspect 40. A device for communicating a status, the device comprising: means for generating a security key associated with the status of the device; means for providing the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; means for generating a status indicator indicative of the status of the device; means for encrypting the status indicator using the security key to generate an encrypted status indicator; and means for transmitting, to a networking device, the encrypted status indicator according to the first communications protocol.

[0157] Aspect 41. An apparatus for receiving a status of a device, the apparatus comprising: means for receiving a security key from the device, wherein the security key is associated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the apparatus is configured to communicate via a second communications protocol; means for, responsive to establishing a connection between the apparatus and a networking device, sending a query according to the second communications protocol; means for receiving, responsive to the query an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and means for decrypting the encrypted status indicator using the security key.

[0158] Aspect 42. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed by at least one processor, cause the at least one processor to perform operations according to any of aspects 1 to 33.31

[0159] Aspect 43. An apparatus for providing virtual content for display, the apparatus comprising one or more means for perform operations according to any of aspects 1 to 33.

Claims

CLAIMSWHAT IS CLAIMED IS:

1. A method for communicating a status of a device, the method comprising: generating, by the device, a security key associated with the status of the device; providing the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; generating, by the device, a status indicator indicative of the status of the device; encrypting, by the device, the status indicator using the security key to generate an encrypted status indicator; and transmitting, by the device to a networking device, the encrypted status indicator according to the first communications protocol.

2. The method of claim 1, wherein the device comprises an internet of things (loT) device and the first communications protocol comprises an loT protocol.

3. The method of claim 1, wherein the networking device comprises a gateway between the first communications protocol and the second communications protocol.

4. The method of claim 1, wherein the first communications protocol comprises a Thread protocol wherein the networking device comprises a border router according to the Thread protocol.

5. The method of claim 1, wherein the controller is configured to control one or more internet of things (loT) devices.

6. The method of claim 1, wherein the device is further configured to communicate via a third communications protocol, wherein the controller is further configured to communicatevia the third communications protocol, and wherein the device provides the security key to the controller according to the third communications protocol.

7. The method of claim 9, wherein the third communications protocol comprises at least one of Bluetooth® or near- field communication (NFC).

8. The method of claim 1, wherein the device provides the security key to the controller according to the first communications protocol.

9. The method of claim 1, wherein the device provides the security key to the controller according to the second communications protocol.

10. The method of claim 1, further comprising associating the device with the controller.

11. The method of claim 1 , wherein the security key comprises a symmetric key.

12. The method of claim 1, wherein the encrypted status indicator is transmitted as a value of a key-value pair.

13. The method of claim 1, wherein the status indicator is generated responsive to a state change of the device.

14. The method of claim 1 , wherein the status indicator is generated responsive to a timeout.

15. A method for receiving a status of a device, the method comprising: receiving, by a controller, a security key from the device, wherein the security key is associated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol;responsive to establishing a connection between the controller and a networking device, sending, by the controller, a query according to the second communications protocol; receiving, responsive to the query, by the controller, an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and decrypting, by the controller, the encrypted status indicator using the security key.

16. The method of claim 15 , wherein the controller is configured to control one or more internet of things (loT) devices.

17. The method of claim 15, wherein the networking device comprises a gateway between the first communications protocol and the second communications protocol.

18. The method of claim 15, wherein the first communications protocol comprises a Thread protocol wherein the networking device comprises a border router according to the Thread protocol.

19. The method of claim 15, wherein the device is further configured to communicate via a third communications protocol, wherein the controller is further configured to communicate via the third communications protocol, and wherein the device provides the security key to the controller according to the third communications protocol.

20. The method of claim 15, wherein the query comprises a multicast Domain Name System (mDNS) query.

21. A device for communicating a status, the device comprising: at least one memory; and at least one processor coupled to the at least one memory and configured to: generate a security key associated with the status of the device;provide the security key to a controller, wherein the device is configured to communicate via a first communications protocol, and wherein the controller is configured to communicate via a second communications protocol; generate a status indicator indicative of the status of the device; encrypt the status indicator using the security key to generate an encrypted status indicator; and transmit, to a networking device, the encrypted status indicator according to the first communications protocol.

22. An apparatus for receiving a status of a device, the apparatus comprising: at least one memory; and at least one processor coupled to the at least one memory and configured to: receive a security key from the device, wherein the security key is associated with the status of the device, wherein the device is configured to communicate via a first communications protocol, and wherein the apparatus is configured to communicate via a second communications protocol; responsive to establishing a connection between the apparatus and a networking device, send a query according to the second communications protocol; receive, responsive to the query an encrypted status indicator from the networking device, wherein the encrypted status indicator is indicative of the status of the device; and decrypt the encrypted status indicator using the security key.

Citation Information

Patent Citations

  • System and method for automatic wireless network authentication

    US20160294828A1

  • System for the secure distributed firmware and configuration update of unnetworked physical devices

    US20170131994A1

  • Accessory communication control

    US20230289271A1

  • Techniques for flexible control of playback devices

    WO2023039294A2