Communicating status messages in internet of things (IoT) network

By generating and encrypting status indicators using IoT devices, and storing and forwarding them using networked devices, the problem of low efficiency in status acquisition when the controller reconnects is solved, and fast status acquisition is achieved.

CN121844540APending Publication Date: 2026-04-10NAGRAVISION SA
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-10
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

In Internet of Things (IoT) networks, after a controller reconnects, it needs to query each IoT device one by one to obtain the latest status, resulting in low efficiency in status acquisition, especially when there are many devices or when the connection is interrupted.

Method used

IoT devices generate a security key associated with a state and encrypt a state indicator via a first communication protocol (such as the IoT protocol). The state indicator is then stored or forwarded to the controller via a networked device. The controller decrypts the key and retrieves the state via a second communication protocol (such as the 802.11 protocol).

Benefits of technology

It enables rapid acquisition of IoT device status when the controller reconnects, reducing query time, improving status acquisition efficiency, and avoiding the delay of serial queries.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121844540A_ABST
    Figure CN121844540A_ABST
Patent Text Reader

Abstract

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

Description

[0001] Cross-reference to related applications

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

[0003] This disclosure generally relates to transmitting status messages. For example, aspects of this disclosure include systems and techniques for transmitting status messages in Internet of Things (IoT) networks. Background Technology

[0004] Many devices have been configured to communicate with other devices. For example, many devices have been configured to send status messages to other devices (such as controllers) and / or receive control messages from other devices. Such devices can be called Internet of Things (IoT) devices. Communication protocols have been developed to facilitate communication between IoT devices (“IoT communication”). Such protocols can be called IoT protocols. Thread is an example of an IoT protocol. Summary of the Invention

[0005] The following is a simplified overview relating to one or more aspects disclosed herein. Therefore, this overview should not be considered a broad overview relating to all anticipated aspects, nor should it be considered an identification of key or important elements relating to all anticipated aspects or a definition of the scope relating to any particular aspect. Consequently, the following overview introduces certain concepts relating to one or more aspects of the mechanisms disclosed herein in a simplified form, prior to the detailed descriptions presented below.

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

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

[0008] In another example, a non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to: generate a security key associated with a status of a device; provide the security key to a controller, wherein the device is configured to communicate via a first communication protocol, and wherein the controller is configured to communicate via a second communication protocol; generate a status indicator that indicates the status of the device; encrypt the status indicator using the security key to generate an encrypted status indicator; and transmit the encrypted status indicator to a networked device in accordance with the first communication protocol.

[0009] 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 a status of a device; means for providing the security key to a controller, wherein the device is configured to communicate via a first communication protocol, and wherein the controller is configured to communicate via a second communication protocol; means for generating a status indicator that indicates 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 the encrypted status indicator to a networked device in accordance with the first communication protocol.

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

[0011] In another example, an apparatus for receiving the status of a device is provided, comprising at least one memory and at least one processor (e.g., configured in a circuit), the at least one processor being coupled to the at least one memory. The at least one processor is configured to: be coupled to the at least one memory and be 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 communication protocol, and wherein the apparatus is configured to communicate via a second communication protocol; send a query according to the second communication protocol in response to establishing a connection between the apparatus and a networked device; receive an encrypted status indicator from the networked device in response to the query, wherein the encrypted status indicator indicates the status of the device; and decrypt the encrypted status indicator using the security key.

[0012] In another example, a non-transient computer-readable medium is provided having instructions stored thereon that, when executed by one or more processors, cause the one or more processors to: receive a security key from a device, wherein the security key is associated with the state of the device, wherein the device is configured to communicate via a first communication protocol, and wherein the device is configured to communicate via a second communication protocol; in response to establishing a connection between the device and a networked device, send a query according to the second communication protocol; in response to the query, receive an encrypted status indicator from the networked device, wherein the encrypted status indicator indicates the state of the device; and decrypt the encrypted status indicator using the security key.

[0013] In another example, an apparatus for receiving the status of a device is provided. The apparatus includes: components 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 communication protocol, and wherein the apparatus is configured to communicate via a second communication protocol; components for sending a query according to the second communication protocol in response to establishing a connection between the apparatus and a networked device; components for receiving an encrypted status indicator from the networked device in response to the query, wherein the encrypted status indicator indicates the status of the device; and components for decrypting the encrypted status indicator using the security key.

[0014] In some aspects, one or more devices described herein are, may be part of, or may include mobile devices (e.g., mobile phones or so-called "smartphones," tablet computers, or other types of mobile devices), extended reality devices (e.g., virtual reality (VR) devices, augmented reality (AR) devices, or mixed reality (MR) devices), vehicles (or computing devices or systems of vehicles), smart or connected devices (e.g., Internet of Things (IoT) devices), wearable devices, personal computers, laptop computers, video servers, televisions (e.g., connected TVs), robotic devices or systems, or other devices. In some aspects, each device may 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 device may include one or more displays for displaying one or more images, notifications, and / or other displayable data. In some aspects, each device may include one or more speakers, one or more light-emitting devices, and / or one or more microphones. In some aspects, each device may include one or more sensors. In some cases, one or more sensors may be used to determine the location of the device, the state of the device (e.g., tracking state, operating state, temperature, humidity level, and / or other states), and / or for other purposes.

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

[0016] The foregoing and other features and aspects will become more apparent from the following description, claims and drawings. Attached Figure Description

[0017] The exemplary embodiments of this application will be described in detail below with reference to the accompanying drawings:

[0018] Figure 1 This is a block diagram illustrating an example system in which a device can provide status information to a controller according to various aspects of this disclosure;

[0019] Figure 2 This is a timing diagram illustrating an example process of providing status information from a device to a controller according to various aspects of this disclosure;

[0020] Figure 3 This is a block diagram illustrating examples of the states of a transmission device according to various aspects of this disclosure;

[0021] Figure 4 This is a flowchart illustrating another example process for the state of a receiving device according to aspects of this disclosure;

[0022] Figure 5 This is a block diagram illustrating an example computing device architecture that can implement the various technologies described herein. Detailed Implementation

[0023] Some aspects of this disclosure are provided below. Some of these aspects can be applied independently, and some can be applied in combination, as will be apparent to those skilled in the art. In the following description, specific details are set forth for purposes of explanation to provide a thorough understanding of the application aspects. However, it will be apparent to those skilled in the art that various aspects can be practiced without these specific details. The accompanying drawings and description are not intended to be limiting.

[0024] The following description provides only exemplary aspects and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the description of the exemplary aspects below will provide those skilled in the art with enabling descriptions for implementing the exemplary aspects. It should be understood that various changes can be made in terms of functionality and arrangement of elements without departing from the spirit and scope of the application as set forth in the appended claims.

[0025] 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 constructed to be preferred or advantageous over other aspects. Similarly, the term “disclosed aspect” does not require that all disclosed aspects include the features, advantages, or modes of operation discussed.

[0026] As an example of the use of Internet of Things (IoT) devices, multiple IoT devices (e.g., IoT lights, IoT door sensors, IoT speakers, IoT sensors, etc.) can operate within an environment (e.g., a home). IoT devices can transmit corresponding statuses to a controller and / or receive control messages from the controller, according to IoT protocols. The controller can be implemented as, for example, an application or "app" running on a user's device (e.g., a smartphone or tablet).

[0027] IoT devices can be configured to communicate according to IoT protocols (e.g., Thread). Controllers can be configured to communicate according to IoT protocols, or not. To enable communication between the controller and IoT devices, many IoT protocols include the role of a networked device capable of translating communication between the controller and the IoT device. For example, a networked device can receive communication from a controller according to a communication protocol used by the controller (e.g., 802.11), translate the communication into the IoT protocol, and send the translated communication to the IoT device according to the IoT protocol. Alternatively, a networked device can receive communication from an IoT device according to an IoT protocol, translate the communication into a protocol used by the controller, and send the translated communication to the controller according to the protocol used by the controller. For example, Thread defines a border router role. A border router can translate communication between the controller's protocol (e.g., 802.11) and the Thread protocol of the IoT device.

[0028] In some cases, multiple IoT devices can be included in an IoT network. An IoT network can include networked devices. For example, all IoT devices communicating with networked devices can be defined as an IoT network. A controller can communicate with all IoT devices in the IoT network through networked devices. In some cases, some IoT devices can relay communication between networked devices and other IoT devices. For example, an IoT network can operate similarly to other communication networks (e.g., using identifiers or addresses and routing tables). Additionally, in some cases, an IoT network can include multiple networked devices.

[0029] When a controller loses connection to the IoT network, for example by leaving the environment (e.g., if a user takes their smart device that implements the controller away from home), the IoT device may no longer communicate with the controller. Away from the environment, the controller may not receive communication (including status messages) from the IoT device. When the controller returns to the environment, it may not have the latest state of the IoT device. For example, the controller may not receive communication about state changes of the IoT device that occurred while the controller was disconnected from the IoT network.

[0030] According to standard protocols, to obtain the latest status of IoT devices, a controller can receive status messages from each IoT device individually. For example, a networked device (or controller) in an IoT network can store a table of IoT devices associated with the IoT network (or its networked counterpart). When the controller establishes a communication session with a networked device, it can send queries (via the networked device) to each IoT device associated with that device, and each IoT device can respond. Such query and response communication can be performed serially (e.g., the controller can query the first IoT device and wait for a response before querying the second). It may take some time for the controller to receive status from all IoT devices in the IoT network. This is especially true if the IoT network includes many IoT devices, if the controller is configured to wait for a timeout before querying the second IoT device if the first IoT device does not respond, and / or if the controller needs to re-authenticate with each IoT device individually.

[0031] This document describes systems, apparatuses, methods (also referred to as processes), and computer-readable media (collectively, “Systems and Technologies”) for transmitting the state of a device. The systems and technologies described herein can generate a secure key associated with the state of the device via a device (e.g., an IoT device). For example, an IoT device can generate an encrypted symmetric key. The systems and technologies can provide the secure key to a controller (e.g., a controller for one or more IoT devices). The device (e.g., an IoT device) can be configured to communicate via a first communication protocol (e.g., an IoT protocol such as Thread). The controller can be configured to communicate via a second communication protocol (e.g., the 802.11 protocol). In some cases, both the device and the controller can be configured to communicate via a third communication protocol (e.g., Bluetooth). TM The device communicates with the controller via a third communication protocol. The device can provide a security key to the controller by sending the security key via a third communication protocol. The system and technology can generate a status indicator indicating the device's status through the device, and encrypt the status indicator using the security key to generate an encrypted status indicator. The system and technology can send the encrypted status indicator to networked devices according to a first communication protocol (e.g., an IoT protocol).

[0032] The networked device can receive and store encrypted status indicators (e.g., as key-value pairs (KVP)). Alternatively, the networked device can provide the encrypted status indicator to the controller in response to receiving the encrypted status indicator or in response to a query from the controller. For example, if the controller communicates with the networked device when the networked device receives the encrypted status indicator, the networked device can send the encrypted status indicator to the controller in response. However, if the controller does not communicate with the networked device when the networked device receives the encrypted status indicator, the networked device can store the encrypted status indicator in its memory. Then, when the controller establishes a communication connection with the networked device, the controller can send a query to the networked device according to a second communication protocol (e.g., a multicast Domain Name System (mDNS) query). In response to the query, the networked device can provide the encrypted status indicator to the controller according to the second communication protocol. The controller can decrypt the encrypted status indicator using a security key.

[0033] In this way, systems and technologies can provide state to the controller much faster than in conventional protocol implementations. For example, systems and technologies can provide the state of an IoT device as the controller establishes a communication connection with the networked device, rather than requiring the controller to query the IoT device separately. Additionally, systems and technologies can provide state in response to mDNS queries without requiring specific (or proprietary) queries for the state.

[0034] The various aspects of the application will be described below with reference to the accompanying drawings.

[0035] Figure 1 This is a block diagram illustrating an example system 100 in which device 106 can provide status information to controller 102 according to various aspects of this disclosure. Typically, device 106 can generate a security key 108 and provide the security key 108 to controller 102. Controller 102 can store the security key 108 in its memory 110. Device 106 can generate a status indicator and encrypt the status indicator to generate an encrypted status indicator 112 (which may alternatively be referred to as "status 112", for example in...). Figure 1 (In the middle). Device 106 can provide encrypted status indicator 112 to networked device 104. Networked device 104 can store encrypted status indicator 112 in its memory 114. Controller 102 can send query 118 to networked device 104. In response to query 118, networked device 104 can provide encrypted status indicator 112 to controller 102. Controller 102 can decrypt encrypted status indicator 112 using security key 108.

[0036] Controller 102 can be any device that can receive messages (e.g., status messages) and / or provide control messages to device 106. In some aspects, controller 102 can be an application (“app”) implemented on the device. The device or controller 102 itself can be a mobile device (e.g., a mobile phone or so-called “smartphone,” 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 networked television), a robotic device or system, or other device, or can be included in such devices. Controller 102 can be configured to communicate according to a number of protocols, including, for example, the Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocol (which may be alternatively referred to as the 802.11 protocol or the Wi-Fi protocol), cellular network protocols (including third-generation (3G), fourth-generation (4G), and fifth-generation (5G) protocols), Zigbee, Z-Wave, near field communication (NFC), and Bluetooth. TM .

[0037] Device 106 can be any device configured to provide messages (e.g., status messages) to other devices and / or receive control messages from other devices. Device 106 can be an Internet of Things (IoT) device. Device 106 can be, for example, a smart appliance (e.g., a smart refrigerator, smart oven, or smart dishwasher), a smart thermostat, a smart TV, a smart speaker, a smart door lock, or a smart security system. Device 106 can be configured to communicate according to an IoT protocol (e.g., Thread). Furthermore, device 106 can be configured to communicate according to one or more other protocols, such as, for example, Bluetooth. TM Zigbee and NFC.

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

[0039] Networked device 104 can be any device capable of relaying received messages between controller 102 and device 106. For example, networked device 104 can be a gateway device capable of communicating with device 106 according to its communication protocol (e.g., an IoT protocol) and with controller 102 according to its communication protocol (e.g., the 802.11 protocol). Furthermore, networked device 104 can convert messages received from device 106 according to its communication protocol into messages according to controller 102's protocol for transmission to controller 102. Similarly, networked device 104 can convert messages received from controller 102 according to its communication protocol into messages according to device 106's protocol for transmission to device 106. In some aspects, networked device 104 can be a border router according to the Thread protocol. In some aspects, networked device 104 can be a networked device in an IoT network. For example, multiple IoT devices (not shown in the diagram) Figure 1 (In the middle) can communicate with network device 104 and controller 102 through network device 104.

[0040] Security key 108 may be a security key associated with the state of device 106. In some aspects, security key 108 may be a symmetric encryption key. For example, if device 106 is power-limited, security key 108 may be a symmetric encryption 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 applicable to all controllers that may control device 106 (e.g., including those not shown in [the original text]). Figure 1 The other controllers in the system are generic. Security key 108 can be rotated. Security key 108 can be associated with key identification (e.g., key ID) and any metadata required for proper operation by a specific symmetric key algorithm.

[0041] Device 106 can generate a status indicator that indicates the state of device 106. The status indicator can indicate sensed attributes (and / or changes in sensed attributes). For example, device 106 can sense temperature, sound, light, and / or position, and can generate a status indicator based on the sensed temperature, sound, light, and / or position. Furthermore, device 106 can generate a status indicator in response to changes in sensed temperature, sound, light, and / or position. Alternatively or additionally, the status indicator can indicate the state of device 106, such as the operating state of device 106 or one or more operating parameters of device 106. In some cases, device 106 can generate a status indicator in response to a change in the state of device 106. Alternatively or additionally, device 106 can generate status indicators at regular intervals even if the state of device 106 does not change. Device 106 can encrypt the status indicator using a security key 108 (to generate an encrypted status indicator 112) according to any suitable encryption algorithm, such as, for example, Advanced Encryption Standard (AES) 256.

[0042] Query 118 can be a query sent by controller 102 in response to controller 102 establishing communication with network device 104. For example, controller 102 can establish a communication connection with network device 104, and in response to establishing the communication connection, controller 102 can send query 118 to network device 104. Query 118 can be based on the communication protocol of controller 102. Query 118 can be a multicast Domain Name System (mDNS) message.

[0043] Figure 2 This is a timing diagram of an example process 200 for providing status information from device 106 to controller 102 according to various aspects of this disclosure. Figure 1 System 100 can implement process 200 to provide an encrypted status indicator 112 to controller 102. Typically, device 106 can generate a security key (e.g., Figure 1 The device 106 generates a security key 108 (at operation 206) and provides the security key to the controller 102 (at operation 208). The controller 102 can store the security key (at operation 210). The device 106 can generate a status indicator and encrypt the status indicator (at operation 212). The device 106 can provide the encrypted status indicator (e.g., encrypted status indicator 112) to the networked device 104 (at operation 216). The networked device 104 can store the encrypted status indicator (at operation 218). The controller 102 can query the networked device 104 (at operation 224) (e.g., by sending...). Figure 1(Query 118). The networked device 104 can provide an encrypted status indicator to the controller 102 (at operation 226). The controller 102 can decrypt the encrypted status indicator using a security key (at operation 228).

[0044] exist Figure 2 In the accompanying description, for descriptive purposes, process 200 is divided into multiple processes or sub-processes (e.g., registration process 202, session establishment process 211, update process 214, and synchronization process 222). The operation of process 200 is generally associated with a corresponding one of the multiple processes. However, the multiple processes are provided for ease of understanding only and are not limiting.

[0045] The 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 based on the protocol of device 106 and / or networked device 104. For example, pairing process 204 may be based on the Matter protocol or the HomeKit accessory protocol (e.g., based on the protocol of device 106 and / or networked device 104). During pairing process 204, controller 102 and device 106 may generate keys that controller 102 and device 106 can use to authenticate messages to each other. During pairing process 204, device 106 may generate multiple keys, including, for example, keys associated with subscription events and keys associated with conversations. Furthermore, during registration process 202, in addition to device 106 providing keys to controller 102, controller 102 may also provide keys to device 106. Some keys exchanged during registration process 202 may be based on 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., for protecting the confidentiality and / or integrity of short-term communication sessions), and / or keys for normal operation. For example, during normal operation of controller 102 and device 106, controller 102 and / or device 106 may transmit periodic status queries (e.g., from controller 102 to device 106) and / or push notifications (e.g., from device 106 to controller 102).

[0046] In addition to the keys exchanged during pairing process 204 according to the protocol of device 106, at operation 206, device 106 can generate a security key associated with the state of device 106 (e.g., Figure 1(Security key 108). At operation 208, device 106 can provide controller 102 with a security key associated with the state of device 106 and metadata associated with the security key. In some aspects, controller 102 and device 106 can communicate via a public protocol. During registration process 202, specifically in order for device 106 to provide the security key to controller 102, device 106 can communicate according to a public protocol. For example, at operation 208, device 106 can communicate according to Bluetooth. TM Alternatively, the security key can be transmitted to controller 102 via the NFC protocol. At operation 210, controller 102 can locally and securely store the security key along with any provided metadata for future use.

[0047] In some cases, long-term secrets (including security keys) may be exchanged during registration process 202. Alternatively or as an alternative, older pairings may be “upgraded” or “updated” to participate in the systems and technologies disclosed herein, for example, by exchanging security keys during short sessions (e.g., as part of session establishment process 211).

[0048] In some aspects, process 200 may include session establishment process 211 (e.g., a session establishment subprocess of process 200). As part of session establishment process 211, a short-term session may be established and an associated short-term key 213 may be exchanged.

[0049] Following registration process 202, and in some cases, following session establishment process 211, device 106 may determine its state. The state of device 106 may be based on sensed attributes or changes in sensed attributes. Sensed attributes include, for example, sensed light, sound, position, motion, current, voltage, and temperature. Alternatively, the state of device 106 may be based on its operating state and / or operating parameters. Device 106 may generate a state indicator indicating its state based on changes (e.g., changes in sensed attributes, changes in operating state, and / or changes in operating parameters). Alternatively, even if no state change occurs, is sensed, or is determined, device 106 may generate a state indicator at regular intervals (e.g., in response to a timeout). At operation 212, device 106 may use a security key (e.g., ... Figure 1 The security key 108) encrypts the status indicator to generate an encrypted status indicator (e.g., Figure 1 Encrypted status indicator 112).

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

[0051] At operation 218, network device 104 may store encrypted status indicators. For example, network device 104 may store information about device 106. Network device 104 may also store information about other devices (e.g., Figure 1 or Figure 2 Information about other IoT devices (not shown in the diagram). For example, networked device 104 may store information about multiple IoT devices in the IoT network (e.g., all IoT devices). Networked device 104 may store data (including data about networked device 104 and / or data about other devices) as key-value pairs (KVPs). For example, networked device 104 may store status information about a service (including, as an example, a human-friendly name, IPv6 address information, protocol-specific attributes, etc.) to track and / or promote information about the service.

[0052] Networked device 104 may store encrypted status indicators and associated key metadata (e.g., as one or more KVPs). For example, networked device 104 may store (or update) KVPs associated with the status of device 106 to include encrypted status indicators. Networked device 104 may advertise encrypted status indicator KVPs. Alternatively or additionally, networked device 104 may store and / or advertise indicators that networked device 104 is capable of storing encrypted status indicators. For example, networked device 104 may store and / or advertise feature flags, capability flags, and / or version numbers that may indicate (e.g., to controller 102 and / or device 106) that networked device 104 is capable of storing encrypted status indicators for device 106 and / or encrypted status indicators for other devices.

[0053] Alternatively, the networking device 104 may store a corresponding freshness attribute associated with each encrypted status indicator. Furthermore, the networking device 104 may provide freshness attributes when it provides an encrypted status indicator. For example, the networking device 104 may store a freshness attribute associated with an encrypted status indicator received from device 106 at operation 208. The networking device 104 may also provide freshness attributes to the controller 102 when it provides an encrypted status indicator to the controller 102.

[0054] In some cases, when the networked device 104 receives an encrypted status indicator at operation 216, the controller 102 may communicate with the networked device 104. In such a case, the networked device 104 may provide an encrypted status indicator to the controller 102 at operation 220 in response to receiving the encrypted status indicator (e.g., at operation 216).

[0055] In other cases, controller 102 may not communicate with network device 104 when network device 104 receives an encrypted status indicator. For example, controller 102 may be a mobile device (e.g., one that can be carried by a user), while network device 104 may be stationary (e.g., network device 104 may remain in a user's home). Continuing the example, the user may take controller 102 away from network device 104. Device 106 may generate and provide an encrypted status indicator to network device 104. In such a case, network device 104 may store (or "cache") the encrypted status indicator until it is able to provide an encrypted status indicator to controller 102. For example, network device 104 may receive an 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 a case, operation 220 may be omitted from process 200. Instead, network device 104 may continue to store the encrypted status indicator until controller 102 communicates with network device 104.

[0056] Update process 214 may be followed by synchronization process 222 (which may be a subprocess of process 200). Synchronization process 222 may begin when controller 102 provides a query to networked device 104 (e.g., Figure 1 Query 118). For example, when controller 102 establishes or re-establishes communication with networked device 104 (e.g., when controller 102 joins a local area network (LAN) that includes networked device 104), controller 102 may send a query (e.g., a multicast Domain Name System (mDNS) query). Figure 1 (Query 118). The query may be part of the discovery protocol. The discovery protocol can be used to detect devices (including IoT devices) associated with connected device 104.

[0057] At operation 226, networking device 104 may respond to a query by sending an encrypted status indicator (e.g., as a KVP). Networking device 104 may be configured to respond to a query (e.g., an mDNS query) by providing a KVP. For example, networking device 104 may be configured to provide discovery data, such as IPv6 address information, in response to a query. Furthermore, since networking device 104 stores the encrypted status indicator as a KVP, it may provide the encrypted status indicator in response to a query. Alternatively, networking device 104 may provide any stored metadata (e.g., freshness attributes) associated with the encrypted status indicator to controller 102 in response to a query. In some cases, networking device 104 may provide multiple encrypted status indicators for each of multiple corresponding devices in its network. For example, in some cases, networking device 104 may send encrypted status indicators for all devices in its network.

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

[0059] In some aspects, one or more operations of process 200 may be performed according to existing protocols. For example, in some cases, various aspects of this disclosure may utilize the operation of existing protocols to perform one or more operations of process 200.

[0060] Figure 3 This is a flowchart illustrating a process 300 for transmitting the state of a device according to aspects of this disclosure. One or more operations of process 300 may be performed by a computing device (or apparatus) or a component of a computing device (e.g., chipset, codec, etc.). The computing device may be a mobile device (e.g., a mobile phone), a networked wearable device (such as a watch), an extended reality (XR) device (such as a virtual reality (VR) device or an augmented reality (AR) device), a vehicle or a 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 capability to perform process 300. One or more operations of process 300 may be implemented as a software component that executes and runs on one or more processors.

[0061] At box 302, the computing device (or one or more components thereof) may generate a security key associated with the state of the device.

[0062] In some aspects, the computing device (or one or more components thereof) may be or may include an Internet of Things (IoT) device, and the first communication protocol includes the IoT protocol. In some aspects, the IoT protocol may be or may include the Thread protocol.

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

[0064] In some aspects, the controller may be configured to control one or more Internet of Things (IoT) devices. In some aspects, the second communication protocol may be or may include the 802.11 protocol.

[0065] In some aspects, a computing device (or one or more components thereof) can associate a device with a controller. In other aspects, a computing device (or one or more components thereof) can pair a device with a controller.

[0066] In some respects, a security key may be or may include a symmetric key.

[0067] In some aspects, the device may also be configured to communicate via a third communication protocol. The controller may also be configured to communicate via a third communication protocol. The device may provide a security key to the controller according to the third communication protocol. In such aspects, the third communication protocol may be or may include at least one of Bluetooth® or Near Field Communication (NFC). In other aspects, the device may provide a security key to the controller according to a first communication protocol. In still other aspects, the device may provide a security key to the controller according to a second communication protocol.

[0068] At box 306, the computing device (or one or more components thereof) can generate a status indicator that indicates the status of the device.

[0069] In some respects, a status indicator may be generated in response to a change in the state of the device. In other respects, a status indicator may be generated in response to a timeout.

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

[0071] At box 310, the computing device (or one or more components thereof) may send an encrypted status indicator to the networked device in accordance with a first communication protocol.

[0072] In some respects, encrypted status indicators can be sent as the values ​​of key-value pairs.

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

[0074] Figure 4 This is a flowchart illustrating a process 400 for the state of a receiving device according to aspects of this disclosure. One or more operations of process 400 may be performed by a computing device (or apparatus) or a component of a computing device (e.g., chipset, codec, etc.). The computing device may be a mobile device (e.g., a mobile phone), a networked wearable device (such as a watch), an extended reality (XR) device (such as a virtual reality (VR) device or an augmented reality (AR) device), a vehicle or a 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 capability to perform process 400. One or more operations of process 400 may be implemented as a software component that is executed and runs on one or more processors.

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

[0076] In some aspects, the controller can be configured to control one or more Internet of Things (IoT) devices. In some aspects, the second communication protocol can be or may include the 802.11 protocol.

[0077] In some aspects, the device may be or may include an Internet of Things (IoT) device and the first communication protocol includes the IoT protocol. In some aspects, the IoT protocol includes the Thread protocol.

[0078] In some aspects, the device may also be configured to communicate via a third communication protocol. The controller may also be configured to communicate via a third communication protocol. The device may provide a security key to the controller according to the third communication protocol. In such aspects, the third communication protocol may be or may include at least one of Bluetooth® or Near Field Communication (NFC). In other aspects, the device may provide a security key to the controller according to a first communication protocol. In still other aspects, the device may provide a security key to the controller according to a second communication protocol.

[0079] In some aspects, a computing device (or one or more components thereof) can associate a device with a controller. In other aspects, a computing device (or one or more components thereof) can pair a device with a controller.

[0080] In some respects, a security key may be or may include a symmetric key.

[0081] At box 404, the computing device (or one or more components thereof) may, in response to establishing a connection between the controller and the networked device, send a query through the controller in accordance with a second communication protocol.

[0082] In some respects, a query may be or may include a multicast Domain Name System (mDNS) query.

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

[0084] At box 406, the computing device (or one or more components thereof) may, in response to a query, receive an encrypted status indicator from the networked device via the controller, wherein the encrypted status indicator indicates the status of the device.

[0085] In some respects, encrypted status indicators can be received as the values ​​of key-value pairs.

[0086] At box 408, the computing device (or one or more components thereof) can decrypt the encrypted status indicator using a security key via the controller.

[0087] As previously mentioned, in some examples, the methods described in this paper (e.g., Figure 2 Process 200, Figure 3 Process 300, Figure 4 The process 400, and / or other methods described herein, may be performed wholly or in part by a computing device or apparatus. In one example, one or more of these methods may be performed by... Figure 1 System 100, Figure 1 Controller 102, Figure 1 The device 106, or other system or device, performs the operation. In another example, one or more of these methods (e.g., process 200, process 300, process 400, and / or other methods described herein) may be executed, in whole or in part, by [the following]. Figure 5 The computing device architecture 500 shown is implemented. For example, it has... Figure 5The computing device of the illustrated computing device architecture 500 may include, or be included in, components of system 100, controller 102, and / or device 106, and may implement the operation of processes 200, 300, 400, and / or other processes described herein. In some cases, the computing device or apparatus may 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 components configured to perform the steps of the processes described herein. In some examples, the computing device may include a display, a network interface configured to transmit and / or receive data, any combination thereof, and / or other components. The network interface may be configured to transmit and / or receive Internet Protocol (IP) based data or other types of data.

[0088] Components of a computing device can be implemented in circuitry. For example, components may include electronic circuitry or other electronic hardware, and / or may be implemented using electronic circuitry or other electronic hardware, which may 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 may include and / or may be implemented using computer software, firmware, or any combination thereof to perform the various operations described herein.

[0089] Processes 200, 300, 400, and / or other processes described herein are shown as logic flowcharts, whose operations represent sequences of operations that can be implemented in hardware, computer instructions, or combinations thereof. In the context of computer instructions, an operation represents a computer-executable instruction stored on one or more computer-readable storage media that performs the described operation when executed by one or more processors. Typically, computer-executable instructions include routines, programs, objects, components, data structures, etc., that perform a specific function or implement a specific data type. The order in which operations are described is not intended to be construed as limiting, and any number of operations described can be combined in any order and / or in parallel to implement a process.

[0090] Furthermore, processes 200, 300, 400, and / or other processes described herein may be executed under the control of one or more computer systems configured with executable instructions, and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) that is collectively executed on one or more processors, by hardware, or a combination thereof. As described above, the code may be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program comprising multiple instructions that is executed by one or more processors. The computer-readable or machine-readable storage medium may be non-transient.

[0091] Figure 5 An example computing device architecture 500 is shown, illustrating example computing devices that can implement the various technologies described herein. In some examples, the computing device may 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 a computing device within a vehicle), or other devices. For example, computing device architecture 500 may include or implement... Figure 1 System 100 Figure 1 Controller 102 Figure 1 Any or all of the devices 106, or included in Figure 1 System 100 Figure 1 Controller 102 Figure 1 The computing device architecture 500 may be configured to execute process 400 and / or other processes described herein, in any or all of the devices 106.

[0092] The components of the computing device architecture 500 are shown to communicate electrically with each other using a connection 512 (such as a bus). The exemplary computing device architecture 500 includes a processing unit (CPU or processor) 502 and a 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 the processor 502.

[0093] The computing device architecture 500 may include a cache of high-speed memory, which is directly connected to, close to, or integrated as part of the processor 502. The computing device architecture 500 may copy data from memory 510 and / or storage device 514 to cache 504 for fast access by the processor 502. In this way, the cache can provide performance improvements by avoiding latency for the processor 502 while waiting for data. These and other modules may control or be configured to control the processor 502 to perform various actions. Other computing device memory 510 may also be available. Memory 510 may include various different types of memory with different performance characteristics. The processor 502 may include any general-purpose processor and hardware or software services, such as services 1 516, service 2 518, and service 3 520 stored in storage device 514, configured to control the processor 502 and dedicated processors in which software instructions are incorporated into the processor design. The processor 502 may be a self-contained system, including multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.

[0094] To enable user interaction with computing device architecture 500, input device 522 can represent any number of input mechanisms, such as a microphone for voice, a touch-sensitive screen for gesture or graphical input, a keyboard, a mouse, motion input, voice input, etc. Output device 524 can also be one or more of any number of output mechanisms known to those skilled in the art, such as a display, projector, television, speaker device, etc. In some cases, multi-mode computing devices can enable users to provide multiple types of input to communicate with computing device architecture 500. Communication interface 526 can typically manage and control user input and computing device output. There are no limitations on operation for any particular hardware arrangement, and therefore the basic features described herein can be easily replaced by improved hardware or firmware arrangements as they evolve.

[0095] Storage device 514 is a non-volatile memory and may be a hard disk or other type of computer-readable medium that can store computer-accessible data, such as magnetic tape cassettes, flash memory cards, solid-state storage devices, digital versatile optical discs, magnetic tape cartridges, random access memory (RAM) 506, read-only memory (ROM) 508, and mixtures thereof. Storage device 514 may include services 516, 518, and 520 for controlling processor 502. Other hardware or software modules are contemplated. Storage device 514 may be connected to computing device connection 512. In one aspect, a hardware module performing a specific function may include software components stored in a computer-readable medium in association with necessary hardware components such as processor 502, connection 512, output device 524, etc., to perform that function.

[0096] The term "substantially" in relation to a given parameter, property, or condition can refer to the degree to which a person skilled in the art will understand that the given parameter, property, or condition is met with small variations (such as, for example, within acceptable manufacturing tolerances). By way of example, depending on the specific parameter, property, or condition that is substantially met, it can be at least 90%, at least 95%, or even at least 99%.

[0097] Various aspects of this disclosure apply to any suitable electronic device (such as a security system, smartphone, tablet, laptop computer, vehicle, drone, or other device) that includes or is coupled to one or more active depth sensing systems. Although the following description relates to devices having or coupled to a light projector, various aspects of this disclosure apply to devices having any number of light projectors and are therefore not limited to any particular device.

[0098] The term "device" is not limited to one or a specific number of physical objects (such as a smartphone, a controller, a processing system, etc.). As used herein, a device can be any electronic device having one or more parts that implement at least some parts of this disclosure. Although the following description and examples use the term "device" to describe various aspects of this disclosure, the term "device" is not limited to a particular configuration, type, or number of objects. Furthermore, the term "system" is not limited to multiple components or a particular aspect. For example, a system can be implemented on one or more printed circuit boards or other substrates and can have movable or static components. Although the following description and examples use the term "system" to describe various aspects of this disclosure, the term "system" is not limited to a particular configuration, type, or number of objects.

[0099] Specific details are provided in the description above to provide a thorough understanding of the aspects and examples presented herein. However, those skilled in the art will understand that these aspects can be practiced without these specific details. For clarity, in some instances, the present art may be presented as separate functional blocks comprising devices, device components, steps or routines in methods implemented in software, or combinations of hardware and software. Additional components may be used in addition to 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 to avoid obscuring the aspects. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail to avoid obscuring the aspects.

[0100] A process or method can be described as a flowchart, flow diagram, data flow diagram, structure diagram, or block diagram. While a flowchart can describe operations as a sequential process, many operations can be executed in parallel or concurrently. Furthermore, the order of operations can be rearranged. A process terminates when an operation is completed, but may include additional steps not shown in the diagram. A process can correspond to a method, function, procedure, subroutine, subroutine, etc. When a process corresponds to a function, its termination can correspond to the function returning to the calling function or the main function.

[0101] The processes and methods implemented according to the above examples can be implemented using computer-executable instructions stored in or otherwise obtainable from a computer-readable medium. Such instructions may include, for example, instructions and data that cause or otherwise configure a general-purpose computer, special-purpose computer, or processing device to perform a particular function or group of functions. Part of the computer resources used may be accessible via a network. Computer-executable instructions may be, for example, binary files, intermediate format instructions (such as assembly language), firmware, source code, etc.

[0102] The term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instructions and / or data. Computer-readable media can include non-transient media, where data can be stored and does not include carrier signals and / or transient electrical signals propagated wirelessly or via a wired connection. Examples of non-transient media include, but are not limited to, magnetic disks or magnetic tapes, optical storage media (such as CDs or DVDs), flash memory, magnetic disks or optical discs, USB devices with non-volatile memory, networked storage devices, any suitable combination, etc. Code and / or machine-executable instructions can be stored on a computer-readable medium, which can represent any combination of procedures, functions, subroutines, programs, routines, subroutines, modules, software packages, classes, or instructions, data structures, or program statements. Code segments can be coupled to another code segment or hardware circuitry by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc., can be passed, forwarded, or transmitted via any suitable component, including memory sharing, messaging, token passing, network transmission, etc.

[0103] In some respects, computer-readable storage devices, media, and memories can include cables or wireless signals containing bit streams, etc. However, when referring to non-transient computer-readable storage media, media such as energy, carrier signals, electromagnetic waves, and the signals themselves are explicitly excluded.

[0104] Devices implementing the processes and methods disclosed herein may include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and may take on any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, program code or code segments (e.g., computer program products) that perform the necessary tasks may be stored on a computer-readable or machine-readable medium. A processor may perform the necessary tasks. Examples of typical form factors include laptop computers, smartphones, mobile phones, tablet devices, or other small form factor personal computers, personal digital assistants, rack-mounted devices, standalone devices, etc. The functionality described herein may also be embodied in peripheral devices or insert cards. As a further example, such functionality may also be implemented on different processes executed in a single device or on a circuit board between different chips.

[0105] Instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are exemplary components for providing the functionality described in this disclosure.

[0106] In the foregoing description, aspects of this application have been described with reference to specific aspects thereof; however, those skilled in the art will recognize that this application is not limited thereto. Therefore, while illustrative aspects of this application have been described in detail, it should be understood that the inventive concept can be embodied and practiced in other ways, and the appended claims are intended to be construed as including such variations, unless limited by prior art. The various features and aspects of this application described above can be used individually or in combination. Furthermore, aspects can be used in any number of settings and applications beyond those described herein without departing from the broader spirit and scope of the specification. Therefore, the specification and drawings should be considered illustrative rather than restrictive. For illustrative purposes, methods are described in a specific order. It should be understood that, in alternative aspects, methods may be performed in a different order than described.

[0107] Those skilled in the art will understand that the less than (“<”) and greater than (“>”) symbols or terms used herein may be replaced by the less than or equal to (“≤”) and greater than or equal to (“≥”) symbols, respectively, without departing from the scope of this description.

[0108] When a component is described as being “configured” to perform certain operations, such configuration can be achieved, for example, by designing electronic circuits or other hardware to perform the operations, by programming programmable electronic circuits (e.g., microprocessors or other suitable electronic circuits), or any combination thereof.

[0109] The phrase “coupled to” means that any component is physically connected directly or indirectly to another component, and / or any component communicates directly or indirectly with another component (e.g., via a wired or wireless connection and / or other suitable communication interface).

[0110] The use of "at least one" and / or "one or more" in the language of claims or other languages ​​indicates that one member of the set or multiple members of the set (in any combination) satisfy the claim. For example, the use of "at least one of A and B" or "at least one of A or B" in the language of claims means A, B, or A and B. In another example, the use of "at least one of A, B, and C" or "at least one of A, B, or C" in the language of claims means A, B, C, or A and B, or A and C, or B and C, A and B and C, or any repeating information or data (e.g., A and A, B and B, C and C, A and A and B, etc.), or any other ordering, repetition, or combination of A, B, and C. The use of "at least one" and / or "one or more" in the language of claims does not limit the set to the items listed in the set. For example, the use of "at least one of A and B" or "at least one of A or B" in the language of claims can mean A, B, or A and B, and can also include items not listed in the set of A and B. The phrases "at least one" and "one or more" are used interchangeably herein.

[0111] The language of the claims, or other languages, which state "at least one processor is configured to," "at least one processor is configured to," "one or more processors are configured to," or similar language, indicates that one or more processors (in any combination) can perform the associated operations. For example, the claim language stating "at least one processor is configured to: X, Y, and Z" means that a single processor can be used to perform operations X, Y, and Z; or that multiple processors are each assigned a specific subset of operations X, Y, and Z, such that multiple processors together perform X, Y, and Z; or that a group of multiple processors together perform operations X, Y, and Z. In another example, the claim language stating "at least one processor is configured to: X, Y, and Z" could mean that any single processor can perform only at least a subset of operations X, Y, and Z.

[0112] When referring to one or more elements that perform a function (e.g., steps of a method), one element may perform all functions, or multiple elements may perform functions together. When more than one element performs a function together, each function does not necessarily have to be performed by every single element (e.g., different functions may be performed by different elements) and / or each function does not necessarily have to be fully performed by only one element (e.g., different elements may perform different sub-functions of a function). Similarly, when referring to one or more elements configured to cause another element (e.g., a device) to perform a function, one element may be configured to cause the other element to perform all functions, or more than one element may be jointly configured to cause the other element to perform a function.

[0113] When an entity (e.g., any entity or device described herein) is referred to as performing a function or configured to perform a function (e.g., steps of a method), the entity may be configured to cause one or more elements (individually or jointly) to perform the function. 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. When an entity is referred to as performing a function, the entity may be configured to cause one component to perform all the functions, or to cause more than one component to perform the functions jointly. When the entity is configured to cause more than one component to perform the functions jointly, each function need not be performed by every single one of these components (e.g., different functions may be performed by different components) and / or each function need not be fully performed by only one component (e.g., different components may perform different sub-functions of the function).

[0114] The various illustrative logic blocks, modules, circuits, and algorithmic steps described in conjunction with the aspects disclosed herein can be implemented as electronic hardware, computer software, firmware, or a combination thereof. To clearly illustrate this interchangeability between hardware and software, the various illustrative components, blocks, modules, circuits, and steps have been generally described above in terms of their functionality. Whether this functionality is implemented in hardware or software depends on the specific application and design constraints on the overall system. Skilled artisans can implement the described functionality in different ways for each specific application, but such implementation decisions should not be construed as departing from the scope of this application.

[0115] The techniques described herein can also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques can be implemented in a variety of devices, such as general-purpose computers, wireless communication handsets, or multi-purpose integrated circuit devices, including applications in wireless communication handsets and other devices. Any feature described herein as a module or component can be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, such techniques can be implemented at least partially by a computer-readable data storage medium comprising program code including instructions that, when executed, perform one or more of the methods described above. The computer-readable data storage medium can form part of a computer program product, which may include packaging material. The computer-readable medium can 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 read-only memory (EEPROM), FLASH memory, magnetic or optical data storage media, etc. Alternatively, such technology can be implemented at least in part through a computer-readable communication medium that carries or transmits program code in the form of instructions or data structures that can be accessed, read, and / or executed by a computer, such as propagating signals or waves.

[0116] The program code can be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Such a processor can be configured to perform any of the techniques described in this disclosure. A general-purpose processor may be a microprocessor; however, alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration. Therefore, the term "processor" as used herein may refer to any of the foregoing structures, any combination of the foregoing structures, or any other structure or device suitable for implementing the techniques described herein.

[0117] The illustrative aspects of this disclosure include:

[0118] Aspect 1. A method for communicating the status of a device, the method comprising: generating a security key associated with the status of the device by the device; providing the security key to a controller, wherein the device is configured to communicate via a first communication protocol and wherein the controller is configured to communicate via a second communication protocol; generating a status indicator indicating the status of the device by the device; encrypting the status indicator by the device using the security key to generate an encrypted status indicator; and transmitting the encrypted status indicator to a networked device by the device in accordance with the first communication protocol.

[0119] Aspect 2, the method according to aspect 1, wherein the device includes an Internet of Things (IoT) device, and the first communication protocol includes an IoT protocol.

[0120] Aspect 3, according to the method described in aspect 2, wherein the IoT protocol includes the Thread protocol.

[0121] Aspect 4, the method according to any one of aspects 1 to 3, wherein the networking device includes a gateway between the first communication protocol and the second communication protocol.

[0122] Aspect 5, the method according to any one of aspects 1 to 4, wherein the first communication protocol includes the Thread protocol, and wherein the networking device includes a border router according to the Thread protocol.

[0123] Aspect 6, the method according to any one of aspects 1 to 5, wherein the controller is configured to control one or more Internet of Things (IoT) devices.

[0124] Aspect 7. The method according to any one of aspects 1 to 6, wherein the second communication protocol includes the 802.11 protocol.

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

[0126] Aspect 9. The method according to aspect 9, wherein the third communication protocol includes at least one of Bluetooth® or Near Field Communication (NFC).

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

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

[0129] Aspect 12. The method according to any one of aspects 1 to 11 further includes associating the device with the controller.

[0130] Aspect 13. The method according to any one of aspects 1 to 12 further includes pairing the device with the controller.

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

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

[0133] Aspect 16, the method according to any one of aspects 1 to 15, wherein a status indicator is generated in response to a change in the state of the device.

[0134] Aspect 17, the method according to any one of aspects 1 to 16, wherein a status indicator is generated in response to a timeout.

[0135] Aspect 18. A method for receiving the status of a device, the method comprising: receiving a security key from the device by a controller, wherein the security key is associated with the status of the device, wherein the device is configured to communicate via a first communication protocol, and wherein the controller is configured to communicate via a second communication protocol; in response to establishing a connection between the controller and a networked device, sending a query by the controller according to the second communication protocol; receiving an encrypted status indicator from the networked device by the controller in response to the query, wherein the encrypted status indicator indicates the status of the device; and decrypting the encrypted status indicator by the controller using the security key.

[0136] Aspect 19, the method according to aspect 18, wherein the controller is configured to control one or more Internet of Things (IoT) devices.

[0137] Aspect 20: The method according to any one of aspects 18 or 19, wherein the second communication protocol includes the 802.11 protocol.

[0138] Aspect 21. The method according to any one of aspects 18 to 20, wherein the networking device includes a gateway between the first communication protocol and the second communication protocol.

[0139] Aspect 22, the method according to any one of aspects 18 to 21, wherein the first communication protocol includes the Thread protocol, and wherein the networking device includes a border router according to the Thread protocol.

[0140] Aspect 23, the method according to any one of aspects 18 to 22, wherein the device includes an Internet of Things (IoT) device, and the first communication protocol includes an IoT protocol.

[0141] Aspect 24, the method described in aspect 23, wherein the IoT protocol includes the Thread protocol.

[0142] Aspect 25, the method according to any one of aspects 18 to 24, wherein the device is further configured to communicate via a third communication protocol, wherein the controller is further configured to communicate via the third communication protocol, and wherein the device provides a security key to the controller in accordance with the third communication protocol.

[0143] Aspect 26, the method according to aspect 25, wherein the third communication protocol includes at least one of Bluetooth® or Near Field Communication (NFC).

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

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

[0146] Aspect 29. The method according to any one of aspects 18 to 28 further includes associating the device with the controller.

[0147] Aspect 30: The method according to any one of aspects 18 to 29 further includes pairing the device with the controller.

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

[0149] Aspect 32, the method described in any of aspects 18 to 31, wherein the query includes a multicast Domain Name System (mDNS) query.

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

[0151] Aspect 34. An apparatus for communicating a state, the apparatus 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 state of the apparatus; provide the security key to a controller, wherein the apparatus is configured to communicate via a first communication protocol, and wherein the controller is configured to communicate via a second communication protocol; generate a state indicator indicating the state of the apparatus; encrypt the state indicator using the security key to generate an encrypted state indicator; and send the encrypted state indicator to a networked device according to the first communication protocol.

[0152] Aspect 35, the device according to aspect 34, wherein the device includes an Internet of Things (IoT) device, and the first communication protocol includes an IoT protocol.

[0153] Aspect 36. An apparatus for receiving the state 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 state of the device, wherein the device is configured to communicate via a first communication protocol, and wherein the apparatus is configured to communicate via a second communication protocol; send a query according to the second communication protocol in response to establishing a connection between the apparatus and a networked device; receive an encrypted state indicator from the networked device in response to the query, wherein the encrypted state indicator indicates the state of the device; and decrypt the encrypted state indicator using the security key.

[0154] Aspect 37, the apparatus according to aspect 36, wherein the apparatus includes a controller configured to control one or more Internet of Things (IoT) devices.

[0155] Aspect 38. A non-transient computer-readable storage medium having instructions stored thereon that, when executed by at least one processor, cause at least one processor to: generate a security key associated with the state of a device; provide the security key to a controller, wherein the device is configured to communicate via a first communication protocol and wherein the controller is configured to communicate via a second communication protocol; generate a state indicator indicating the state of the device; encrypt the state indicator using the security key to generate an encrypted state indicator; and send the encrypted state indicator to a networked device according to the first communication protocol.

[0156] Aspect 39. A non-transient computer-readable storage medium having instructions stored thereon, which, when executed by at least one processor, cause at least one processor to: receive a security key from a device, wherein the security key is associated with the state of the device, wherein the device is configured to communicate via a first communication protocol, and wherein the device is configured to communicate via a second communication protocol; in response to establishing a connection between the device and a networked device, send a query according to the second communication protocol; in response to the query, receive an encrypted state indicator from the networked device, wherein the encrypted state indicator indicates the state of the device; and decrypt the encrypted state indicator using the security key.

[0157] Aspect 40, an apparatus for communicating a state, the apparatus comprising: means for generating a security key associated with the state of the apparatus; means for providing the security key to a controller, wherein the apparatus is configured to communicate via a first communication protocol, and wherein the controller is configured to communicate via a second communication protocol; means for generating a state indicator indicating the state of the apparatus; means for encrypting the state indicator using the security key to generate an encrypted state indicator; and means for sending the encrypted state indicator to a networked device according to the first communication protocol.

[0158] Aspect 41. An apparatus for receiving the 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 communication protocol, and wherein the device is configured to communicate via a second communication protocol; means for sending a query according to the second communication protocol in response to establishing a connection between the device and a networked device; means for receiving an encrypted status indicator from the networked device in response to the query, wherein the encrypted status indicator indicates the status of the device; and means for decrypting the encrypted status indicator using the security key.

[0159] Aspect 42. A non-transient computer-readable storage medium having instructions stored thereon that, when executed by at least one processor, cause the at least one processor to perform an operation according to any one of aspects 1 to 33.

[0160] Aspect 43, an apparatus for providing virtual content for display, the apparatus comprising one or more components for performing operations according to any one of aspects 1 to 33.

Claims

1. A method for transmitting the status of a device, the method comprising: The device generates a security key associated with the state of the device. The security key is provided to the controller, wherein the device is configured to communicate via a first communication protocol, and wherein the controller is configured to communicate via a second communication protocol; The device generates a status indicator that indicates the status of the device; The device uses the security key to encrypt the status indicator to generate an encrypted status indicator; as well as The device sends the encrypted status indicator to the networked device according to the first communication protocol.

2. The method of claim 1, wherein the device includes an Internet of Things (IoT) device, and the first communication protocol includes an IoT protocol.

3. The method according to claim 1, wherein the networking device includes a gateway between the first communication protocol and the second communication protocol.

4. The method of claim 1, wherein the first communication protocol includes the Thread protocol, and wherein the networking device includes 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 (IoT) devices.

6. The method of claim 1, wherein the device is further configured to communicate via a third communication protocol, wherein the controller is further configured to communicate via the third communication protocol, and wherein the device provides the security key to the controller in accordance with the third communication protocol.

7. The method of claim 9, wherein the third communication protocol includes 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 communication protocol.

9. The method of claim 1, wherein the device provides the security key to the controller according to the second communication 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 sent as the value of a key-value pair.

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

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

15. A method for receiving the status of a device, the method comprising: The controller receives a security key from the device, the security key being associated with the state of the device, the device being configured to communicate via a first communication protocol, and the controller being configured to communicate via a second communication protocol; In response to the establishment of a connection between the controller and the networked device, the controller sends a query according to the second communication protocol; In response to the query, the controller receives an encrypted status indicator from the networked device, wherein the encrypted status indicator indicates the status of the device; as well as The controller uses the security key to decrypt the encrypted status indicator.

16. The method of claim 15, wherein the controller is configured to control one or more Internet of Things (IoT) devices.

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

18. The method of claim 15, wherein the first communication protocol includes the Thread protocol, and wherein the networking device includes 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 communication protocol, wherein the controller is further configured to communicate via the third communication protocol, and wherein the device provides the security key to the controller in accordance with the third communication protocol.

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

21. An apparatus for transmitting a state, the apparatus comprising: At least one memory; as well as At least one processor coupled to the at least one memory and configured to perform the following operations: Generate a security key associated with the state of the device; The security key is provided to the controller, wherein the device is configured to communicate via a first communication protocol, and wherein the controller is configured to communicate via a second communication protocol; Generate a status indicator that indicates the state of the device; The security key is used to encrypt the status indicator to generate an encrypted status indicator; as well as The encrypted status indicator is sent to the networked device according to the first communication protocol.

22. An apparatus for receiving the status of a device, the apparatus comprising: At least one memory; as well as At least one processor coupled to the at least one memory and configured to perform the following operations: Receive a security key from the device, wherein the security key is associated with the state of the device, wherein the device is configured to communicate via a first communication protocol, and wherein the device is configured to communicate via a second communication protocol; In response to establishing a connection between the device and the networked device, a query is sent according to the second communication protocol; In response to the query, an encrypted status indicator is received from the networked device, wherein the encrypted status indicator indicates the status of the device; as well as Use the security key to decrypt the encrypted status indicator.