CN107251530B - System and method for implementing internet of things (IoT) remote control applications - Google Patents

System and method for implementing internet of things (IoT) remote control applications Download PDF

Info

Publication number
CN107251530B
CN107251530B CN201680010500.0A CN201680010500A CN107251530B CN 107251530 B CN107251530 B CN 107251530B CN 201680010500 A CN201680010500 A CN 201680010500A CN 107251530 B CN107251530 B CN 107251530B
Authority
CN
China
Prior art keywords
iot
remote control
hub
electronic device
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680010500.0A
Other languages
Chinese (zh)
Other versions
CN107251530A (en
Inventor
J·布里特
J·李
S·松村
H·福罗德
S·齐默尔曼
P·迈尔斯
S·扎维克
D·久田见
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Afero Inc
Original Assignee
Afero Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/590,765 external-priority patent/US20160197769A1/en
Priority claimed from US14/590,686 external-priority patent/US9933768B2/en
Priority claimed from US14/590,663 external-priority patent/US9774497B2/en
Priority claimed from US14/590,708 external-priority patent/US9860681B2/en
Priority claimed from US14/590,719 external-priority patent/US9729340B2/en
Priority claimed from US14/590,799 external-priority patent/US9774507B2/en
Priority claimed from US14/590,649 external-priority patent/US20160198536A1/en
Priority claimed from US14/590,700 external-priority patent/US10816944B2/en
Application filed by Afero Inc filed Critical Afero Inc
Publication of CN107251530A publication Critical patent/CN107251530A/en
Application granted granted Critical
Publication of CN107251530B publication Critical patent/CN107251530B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • H04L12/2832Interconnection of the control functionalities between home networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Selective Calling Equipment (AREA)
  • Telephonic Communication Services (AREA)

Abstract

An Internet of things (IoT) hub is provided that includes a network interface to couple the IoT hub to an IoT service over a Wide Area Network (WAN); and at least one IoT device communicatively coupled to the IoT hub over a wireless communication channel. The IoT devices include Infrared (IR) or Radio Frequency (RF) enhancers to control a designated electronic device through IR or RF communication with the electronic device. The IoT device includes at least one sensor to detect a current condition related to operation of the electronic device transmitted to the IoT hub over the wireless communication channel. The lot hub includes a remote control code database for storing remote control codes that are available to control the electronic device. The lot hub includes control logic to generate a remote control command using the remote control code in response to the current conditions and input from an end user provided via a user device.

Description

System and method for implementing internet of things (IoT) remote control applications
Background
Technical Field
The present invention relates generally to the field of computer systems. More particularly, the present invention relates to systems and methods for implementing IoT remote control applications.
Prior Art
The "internet of things" refers to the interconnection of uniquely identifiable embedded devices within the internet infrastructure. Finally, IoT is expected to lead to a new and wide variety of applications where almost any type of physical thing can provide information about itself or its surroundings and/or can be remotely controlled through client devices on the internet.
The development and adoption of IoT has been slow due to some of the problems associated with lack of connectivity, power, and standardization. For example, one obstacle faced by IoT development and adoption is that there is no standard platform that allows developers to design and provide new IoT devices and services. To enter the IoT market, developers must design the entire IoT platform from scratch, including the network protocols and infrastructure, hardware, software, and services needed to support the required IoT implementation. Thus, each provider of IoT devices uses proprietary technology to design and connect IoT devices, which makes employing multiple types of IoT devices a burdensome task for end users. Another obstacle faced by IoT adoption is the difficulties associated with the connection and powering of IoT devices. For example, connecting appliances such as refrigerators, garage door openers, environmental sensors, home security sensors/controllers, etc. requires a power source to power each connected IoT device, and such power sources are typically not conveniently located (e.g., AC outlets are typically not located within a refrigerator).
Drawings
The invention may be better understood from the following detailed description taken in conjunction with the following drawings, in which:
fig. 1A-1B illustrate different embodiments of an IoT system architecture;
fig. 2 illustrates an IoT device in accordance with one embodiment of the present invention;
fig. 3 illustrates an IoT hub in accordance with one embodiment of the present invention;
fig. 4A-4B illustrate an embodiment of the invention for controlling and collecting data from IoT devices and generating notifications;
fig. 5 illustrates an embodiment of the present invention for collecting data from IoT devices and generating notifications from IoT hubs and/or IoT services;
FIG. 6 illustrates an embodiment of the present invention for detecting a loss of central connectivity and notifying a user;
fig. 7A-7C illustrate different embodiments of a micro IoT hub device with an LED lamp and a USB port;
fig. 8 illustrates a method of controlling an electronic device and other devices using an IoT device;
fig. 9 illustrates one embodiment of an IoT hub for selecting between different cell operators;
fig. 10 illustrates one embodiment of a method for selecting between different cell operators;
fig. 11 illustrates one embodiment of an IoT centric filtering event from an IoT device;
fig. 12 illustrates one embodiment of an IoT hub for collecting data related to user behavior within an IoT system;
FIG. 13 depicts a high-level view of one embodiment of a security architecture;
fig. 14 illustrates one embodiment of an architecture in which a user identity module (SIM) is used to store keys on an IoT device;
fig. 15A illustrates one embodiment in which an IoT device is registered using a barcode or QR code;
FIG. 15B shows an embodiment in which a barcode or QR code is used for pairing;
fig. 16 illustrates one embodiment of a method for programming a SIM using an IoT hub;
fig. 17 illustrates one embodiment of a method for registering an IoT device having an IoT hub and an IoT service; and is
Fig. 18 illustrates one embodiment of a method for encrypting data to be transmitted to an IoT device.
Detailed Description
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention described below. It will be apparent, however, to one skilled in the art that embodiments of the invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the underlying principles of embodiments of the present invention.
One embodiment of the present invention includes an internet of things (IoT) platform that developers can utilize to design and build new IoT devices and applications. In particular, one embodiment includes an underlying hardware/software platform for IoT devices that includes a predefined network protocol stack and an IoT hub through which the IoT devices connect to the internet. Further, one embodiment includes an IoT service through which an IoT hub and connected IoT devices may be accessed and managed as described below. Further, one embodiment of the IoT platform includes an IoT application or Web application (e.g., executing on a client device) to access and configure IoT services, hubs, and connected devices. Existing online retailers and other website operators can easily provide unique IoT functionality for existing user groups using the IoT platform described herein.
FIG. 1A shows an overview of an architectural platform on which embodiments of the present invention may be implemented. In particular, the illustrated embodiment includes multiple IoT devices 101 and 105 that are communicatively connected to a central IoT hub 110 through a local communication channel 130, which itself is communicatively connected to an IoT service 120 through the internet 220. Each of IoT devices 101-105 may initially pair with IoT hub 110 (e.g., using the pairing techniques described below) to enable each of local communication channels 130. In one embodiment, the IoT service 120 includes an end-user database 122 for maintaining user account information and data collected from each user's IoT devices. For example, if the IoT device includes sensors (e.g., temperature sensors, accelerometers, thermal sensors, motion detectors, etc.), database 122 may be continuously updated to store data collected by IoT device 101 and 105. The data stored in the database 122 may then be accessed by end users through an IoT application or browser installed on the user device 135 (or through a desktop or other client computer system), as well as through Web clients (e.g., such as the Web sites 130 that subscribe to the IoT service 120).
IoT devices 101 and 105 may be equipped with various types of sensors to collect information about themselves and their surroundings and provide the collected information to IoT services 120, user devices 135, and/or external websites 130 via IoT hub 110. Some of IoT devices 101 and 105 may perform specified functions in response to control commands sent through IoT hub 110. The following provides a number of specific examples of information and control commands collected by IoT devices 101 and 105. In one embodiment described below, IoT device 101 is a user input device designed to record user selections and send the user selections to IoT service 120 and/or a website.
In one embodiment, the IoT hub 110 includes a cellular radio to establish a connection to the internet 220 via a cellular service 115, such as a 4G (e.g., mobile WiMAX, LTE) or 5G cellular data service. Alternatively or additionally, the IoT hub 110 may include a WiFi radio to establish a WiFi connection through a WiFi access point or router 116 that connects the IoT hub 110 to the internet (e.g., via an internet service provider that provides internet services to end users). Of course, it should be noted that the underlying principles of the invention are not limited to any particular type of communication channel or protocol.
In one embodiment, IoT devices 101-105 are ultra-low power devices that enable battery power to run for long periods of time (e.g., years). To conserve power, the local communication channel 130 may be implemented using a low power wireless communication technology such as bluetooth Low Energy (LE). In this embodiment, each of IoT devices 101-105 and IoT hub 110 are equipped with a bluetooth LE radio and protocol stack.
As described above, in one embodiment, the IoT platform includes an IoT app or Web app that executes on the user device 135 to allow the user to access and configure the connected IoT devices 101 and 105, IoT hub 110, and/or IoT service 120. In one embodiment, the application or Web application may be designed by the operator of the website 130 to provide IoT functionality to its user group. As shown, the website may maintain a user database 131 containing account records associated with each user.
Fig. 1B illustrates additional connection options for multiple IoT hubs 110 and 111,190. In this embodiment, a single user may have multiple centers 110-111 installed on-site at a single customer premises 180 (e.g., the user's home or work site). This may be done, for example, to extend the wireless range required to connect all IoT devices 101 and 105. As shown, if a user has multiple hubs 110,111, they may be connected via a local communication channel (e.g., Wifi, Ethernet, powerline network, etc.). In one embodiment, each of the centers 110-111 may establish a direct connection with the IoT service 120 through a cellular connection 115 or a WiFi connection 116 (not explicitly shown in fig. 1B). Alternatively or in addition, one of the IoT hubs, such as IoT hub 110, may act as a "master" hub that provides connectivity and/or local services to all other IoT hubs on customer premises 180, such as IoT hub 111 (as shown by the dashed line connecting IoT hub 110 and IoT hub 111). For example, the primary IoT hub 110 may be the only IoT hub that establishes a direct connection with the IoT service 120. In one embodiment, only the "master" IoT hub 110 is equipped with a cellular communication interface to establish a connection with the IoT service 120. As such, all communications between the IoT service 120 and the other IoT hubs 111 will flow through the primary IoT hub 110. As this role, the master IoT hub 110 may have additional program code to perform filtering operations on data exchanged between the other IoT hubs 111 and the IoT service 120 (e.g., to serve some data requests locally, when possible).
Regardless of how IoT hub 110 and 111 are connected, in one embodiment, IoT service 120 will logically relate the hub to the user and combine all attached IoT devices 101 and 105 under a single comprehensive user interface (and/or browser-based interface) that is accessible via the user device with installed application 135.
In this embodiment, the master IoT hub 110 and the one or more slave IoT hubs 111 may be connected through local networks, which may be WiFi networks 116, ethernet networks, and/or use Power Line Communication (PLC) networks (e.g., where all or part of the network operates over the user's power lines). Additionally, for IoT hub 110 and 111, each of IoT devices 101 and 105 may be interconnected with IoT hub 110 and 111 using any type of local network channel, such as WiFi, ethernet, PLC, or bluetooth LE, among others.
Fig. 1B also shows an IoT hub 190 installed at the second customer premises 181. An almost unlimited number of such IoT hubs 190 may be installed and configured to collect data from IoT devices 191 and 192 at user premises around the world. In one embodiment, two customer premises 180 plus 181 may be configured for the same user. For example, one customer premises 180 may be the user's main home, and the other customer premises 181 may be the user's vacation home. In this case, the IoT service 120 would logically associate 111,190 the IoT hub 110 with the user and combine all of the attached IoT devices 101, 105,191, 192 under a single comprehensive user interface (and/or browser-based interface) that is accessible via the user device with the installed application 135.
As shown in fig. 2, one exemplary embodiment of IoT device 101 includes memory 210 for storing program code and data 201 and 203, and low power microcontroller 200 for executing the program code and processing the data. The memory 210 may be a volatile memory such as a Dynamic Random Access Memory (DRAM) or may be a non-volatile memory such as a flash memory. In one embodiment, non-volatile memory may be used for persistent storage, and volatile memory may be used for execution of program code and data at runtime. Further, memory 210 may be integrated within low power microcontroller 200 or may be coupled to low power microcontroller 200 via a bus or communication structure. The underlying principles of the invention are not limited to any particular implementation of memory 210.
As shown, the program code may include application code 203 that defines a set of application-specific functions to be performed by the IoT device 201, and library code 202 that includes a set of predefined building blocks that may be utilized by application developers of the IoT device 101. In one embodiment, the library code 202 includes a set of basic functions required to implement the IoT devices, such as a communication protocol stack 201 for enabling communication between each IoT device 101 and the IoT hub 110. As noted above, in one embodiment, the communication protocol stack 201 comprises a bluetooth LE protocol stack. In this embodiment, the bluetooth LE radio and antenna 207 may be integrated within the low power microcontroller 200. However, the underlying principles of the invention are not limited to any particular communication protocol.
The particular embodiment shown in fig. 2 also includes a plurality of input devices or sensors 210 to receive user input and provide the user input to the low power microcontroller, which processes the user input according to the application code 203 and the library code 202. In one embodiment, each of the input devices includes an LED 209 for providing feedback to the end user.
In addition, the illustrated embodiment includes a battery 208 for powering the low power microcontroller. In one embodiment, a non-rechargeable button cell battery is used. However, in alternative embodiments, an integrated rechargeable battery may be used (e.g., charged by connecting the IoT device to an AC power source (not shown)).
A speaker 205 for producing audio is also provided. In one embodiment, the low power microcontroller 299 includes audio decoding logic for decoding a compressed audio stream (e.g., such as an MPEG-4/Advanced Audio Coding (AAC) stream) to generate audio on the speaker 205. Alternatively, the low power microcontroller 200 and/or the application code/data 203 may comprise digitally sampled audio clips to provide verbal feedback to the end user when the user inputs a selection via the input device 210.
In one embodiment, one or more other/alternative I/O devices or sensors 250 may be included on IoT device 101 based on the particular application for which IoT device 101 is designed. For example, environmental sensors may be included to measure temperature, pressure, humidity, and the like. If an IoT device is used as a security device, a security sensor and/or a door lock opener may be included. Of course, these examples are provided for illustrative purposes only. The underlying principles of the invention are not limited to any particular type of IoT device. In fact, given the highly programmable nature of the low power microcontroller 200 equipped with the library code 202, application developers can easily develop new application code 203 and new I/O devices 250 to interact with the low power microcontroller for almost any type of IoT application.
In one embodiment, low power microcontroller 200 also includes a secure key store for storing encryption keys used to encrypt communications and/or generate signatures. Alternatively, the key may be protected in a Subscriber Identity Module (SIM).
In one embodiment, a wake-up receiver 207 is included to wake up the IoT device from an ultra-low power state that consumes little power. In one embodiment, the wake-up receiver 207 is configured to cause the IoT device 101 to exit the low-power state in response to a wake-up signal received from the wake-up transmitter 307 configured on the IoT hub 110 as shown in fig. 3. In particular, in one embodiment, the transmitter 307 and receiver 207 together form an electrically resonant transformer circuit, such as a tesla coil. In operation, when the hub 110 needs to wake the IoT device 101 from a very low power state, energy is sent from the transmitter 307 to the receiver 207 via radio frequency signals. Due to this energy transfer, IoT device 101 may be configured to consume little power when in a low power state because it does not need to continuously "listen" for signals from the center (as is the case with network protocols that allow devices to be woken up via network signals). More specifically, the microcontroller 200 of the IoT device 101 may be configured to wake up after being effectively powered down by using energy electrically transmitted from the transmitter 307 to the receiver 207.
As shown in fig. 3, IoT hub 110 also includes memory 317 for storing program code and data 305, and hardware logic 301, such as a microcontroller, for executing the program code and processing the data. A Wide Area Network (WAN) interface 302 and an antenna 310 connect the IoT hub 110 to the cellular service 115. Alternatively, as described above, the IoT hub 110 may also include a local network interface (not shown), such as a WiFi interface (and WiFi antenna) or an ethernet interface, for establishing a local network communication channel. In one embodiment, hardware logic 301 also includes a secure key store for storing encryption keys used to encrypt communications and generate/verify signatures. Alternatively, the key may be protected in a Subscriber Identity Module (SIM).
The local communication interface 303 and antenna 311 establish a local communication channel with each of the IoT devices 101 and 105. As described above, in one embodiment, the local communication interface 303/antenna 311 implements the bluetooth LE standard. However, the underlying principles of the invention are not limited to any particular protocol for establishing a local communication channel with IoT devices 101 and 105. Although shown as separate units in fig. 3, WAN interface 302 and/or local communication interface 303 may be embedded within the same chip as hardware logic component 301.
In one embodiment, the program code and data includes a communications protocol stack 308, which may include separate stacks for communicating over the local communications interface 303 and the WAN interface 302. Further, device pairing program code and data 306 may be stored in memory to allow the IoT hub to pair with the new IoT device. In one embodiment, each new IoT device 101 and 105 is assigned a unique code that is transmitted to IoT hub 110 during the pairing process. For example, the unique code may be embedded in a barcode on the IoT device and may be read by the barcode reader 106 or may be transmitted over the local communication channel 130. In alternative embodiments, the unique ID code may be sent from the IoT device, for example, via radio frequency ID (rfid) or Near Field Communication (NFC), and the IoT hub has a suitable receiver to detect the code as the IoT device 101 moves within a few inches of the IoT hub 110.
In one embodiment, once the unique ID has been transmitted, IoT hub 110 may verify the unique ID by: query a local database (not shown), perform a hash to verify that the code is acceptable, and/or communicate with the IoT service 120, the user device 135, and/or the website 130 to verify the ID code. In one embodiment, once verified, IoT hub 110 pairs with IoT device 101 and stores the pairing data in memory 317 (which, as described above, may comprise non-volatile memory). Once pairing is complete, IoT hub 110 may connect with IoT device 101 to perform the various IoT functions described herein.
In one embodiment, the organization running IoT services 120 may provide IoT hubs 110 and a basic hardware/software platform to allow developers to easily design new IoT services. In particular, in addition to the IoT hub 110, developers may be provided with a Software Development Kit (SDK) to update the program code and data 305 executing within the hub 110. Additionally, for IoT devices 101, the SDK may include a broad set of library code 202 designed for the underlying IoT hardware (e.g., the low power microcontroller 200 and other components shown in fig. 2) to facilitate designing a variety of different types of applications 101. In one embodiment, the SDK includes a graphical design interface in which developers need only specify inputs and outputs for IoT devices. All networking code has been prepared for developers, including a communication stack 201 that allows the IoT device 101 to connect to the hub 110 and the service 120. Further, in one embodiment, the SDK also includes a library code base for facilitating application design for mobile devices (e.g., iPhone and Android devices). Further, in one embodiment, the SDK also includes library code bases for facilitating the design of applications and APIs that reside within the IOT service 120 or the web site 130.
In one embodiment, IoT hub 110 manages continuous bi-directional data flow between IoT device 101 and IoT service 120 and 105. In the event that real-time updates to/from IoT devices 101-105 are needed (e.g., if a user needs to view the current state of security devices or environment readings), the IoT hub may keep the TCP sockets open to provide periodic updates to the user device 135 and/or the external website 130. The particular networking protocol used to provide the update may be tailored to the needs of the underlying application. For example, in some cases, if it may not be meaningful to have a continuous bi-directional flow, a simple request/response protocol may be used to gather information when needed.
In one embodiment, both IoT hub 110 and IoT devices 101 and 105 may be automatically upgraded over the network. In particular, when IoT hub 110 has a new update available, it may automatically download and install the update from IoT service 120. It may first copy the updated code into local memory, run and validate the update, and then replace the older program code. Similarly, when updates are available to each of IoT devices 101-105, the updates may be initially downloaded by IoT hub 110 and pushed to each of IoT devices 101-105. Each IoT device 101-105 may then apply the update in a manner similar to that described above for the IoT hub and report the results of the update back to IoT hub 110. If the update is successful, IoT hub 110 may delete the update from its memory and record the latest code version installed on each IoT device (e.g., so that it can continue to check each IoT device for new updates).
In one embodiment, the lot hub 110 is powered by an a/C power source. In particular, the IoT hub 110 may include a power supply unit 390 having a transformer for converting an a/C voltage provided through an a/C power line to a lower DC voltage.
Fig. 4A illustrates one embodiment of the present invention for performing universal remote control operations using an IoT system. Specifically, in this embodiment, a set of IoT devices 101 and 103 are equipped with Infrared (IR) and/or Radio Frequency (RF) enhancers 401 and 403, respectively, for sending remote control codes to control various different types of electronic equipment, including air conditioning/heater 430, lighting system 431, and audiovisual equipment 432, among others. In the embodiment shown in fig. 4A, the IoT devices 101-103 are also equipped with sensors 404-406 for detecting the operation of the devices it controls, respectively, as described below.
For example, the sensor 404 in the IoT device 101 may be a temperature and/or humidity sensor for sensing the current temperature/humidity and responsively controlling the air conditioner/heater 430 based on the current desired temperature. In this embodiment, the air conditioner/heater 430 is designed to be controlled via a remote control device (typically a remote controller with a temperature sensor embedded in itself). In one embodiment, the user provides the required temperature to the IoT hub 110 via an application or browser installed on the user device 135. Control logic 412 executing on IoT hub 110 receives current temperature/humidity data from sensor 404 and responsively sends commands to IoT device 101 to control IR/RF enhancer 401 according to the desired temperature/humidity. For example, if the temperature is below the desired temperature, control logic component 412 may send a command to the air conditioner/heater via IR/RF booster 401 to raise the temperature (e.g., by turning off the air conditioner or turning on the heater). The commands may include the necessary remote control code stored in database 413 on IoT hub 110. Alternatively or additionally, IoT service 421 may implement control logic 421 to control electronic device 430 and 432 based on specified user preferences and stored control code 422.
The IoT device 102 in the illustrated example is used to control the lighting 431. In particular, the sensor 405 in the IoT device 102 may be a light sensor or photodetector configured to detect the current brightness of light generated by the light fixture 431 (or other lighting device). The user may specify a desired lighting level (including an indication to turn on or off) for the lot hub 110 via the user device 135. In response, control logic 412 will send a command to IR/RF enhancer 402 to control the current brightness level of lamp 431 (e.g., increase illumination if the current brightness is too low, or decrease illumination if the current brightness is too high; or simply turn the lamp on or off).
The IoT device 103 in the illustrated example is configured to control an audiovisual device 432 (e.g., television, a/V receiver, cable/satellite receiver, AppleTVTMEtc.). The sensor 406 in the IoT device 103 may be an audio sensor (e.g., a microphone and associated logic) to detect the current ambient volume level and/or a light sensor to detect whether a television is on or off based on the light generated by the television (e.g., by measuring light within a specified spectrum). Alternatively, the sensor 406 may comprise a temperature sensor connected to the audio visual device to detect whether the audio device is turned on or off based on the detected temperature. Again, in response to user input via user device 135, control logic 412 may be enabled viaThe IR blaster 403 of the IoT device 103 sends commands to the audiovisual equipment.
It should be noted that the above is merely an illustrative example of one embodiment of the present invention. The underlying principles of the invention are not limited to any particular type of sensor or device controlled by an IoT device.
In embodiments where IoT devices 101 and 103 are coupled to IoT hub 110 via a bluetooth LE connection, sensor data and commands are sent over the bluetooth LE channel. However, the underlying principles of the invention are not limited to bluetooth LE or any other communication standard.
In one embodiment, the control code needed to control each piece of electronic equipment is stored in database 413 on IoT hub 110 and/or database 422 on IoT service 120. As shown in fig. 4B, control codes may be provided from a control code master database 422 to the IoT hub 110 for different pieces of equipment maintained on the IoT service 120. The end user may specify the type of electronic (or other) device to be controlled by an application or browser executing on the user device 135, and in response, the remote control code learning module 491 on the IoT hub may retrieve the required IR/RF codes from the remote control code database 492 on the IoT service 120 (e.g., identifying each piece of electronic equipment using a unique ID).
Further, in one embodiment, the IoT hub 110 is equipped with an IR/RF interface 490 to allow the remote control code learning module 491 to "learn" new remote control codes directly from the original remote controller 495 provided with the electronic device. For example, if the control code of the original remote controller provided with the air conditioner 430 is not included in the remote control database, the user may interact with the IoT hub 110 via an application/browser on the user device 135 to teach the IoT hub 110 the various control codes generated by the original remote controller (e.g., increase temperature, decrease temperature, etc.). Once the remote control codes are learned, they may be stored in the control code database 413 on the IoT hub 110 and/or sent back to the IoT service 120 for inclusion in the central remote control code database 492 (and subsequently used by other users for the same air conditioning unit 430).
In one embodiment, each of IoT devices 101-103 has a minimal form factor and may be secured to or near their respective electronic devices 430-432 using double-sided tape, small nails, magnetic attachments, and the like. To control equipment items such as air conditioner 430, it is desirable to place IoT device 101 far enough so that sensor 404 can accurately measure the ambient temperature in the home (e.g., placing the IoT device directly on the air conditioner would result in a temperature measurement that is too low when the air conditioner is running, or too high when the heater is running). In contrast, the IoT device 102 used to control lighting may be placed on or near the lighting fixture 431 so that the sensor 405 detects the current lighting level.
In addition to providing the described general control functions, one embodiment of the IoT hub 110 and/or the IoT service 120 sends notifications to end users related to the current state of each piece of electronic equipment. A notification, which may be a text message and/or an application specific notification, may then be displayed on the display of the user's mobile device 135. For example, if the user's air conditioner has been on for a long time but the temperature has not changed, the IoT hub 110 and/or the IoT service 120 may send a notification to the user that the air conditioner is not working properly. If the user is not at home (which may be detected by a motion sensor or based on a currently detected user location), and the sensor 406 indicates that the audiovisual device 430 is on, or the sensor 405 indicates that the light is illuminated, a notification may be sent to the user asking if the user wants to turn off the audiovisual device 432 and/or the light 431. For any device type, the same type of notification may be sent.
Once the user receives the notification, he/she can remotely control the electronic device 430 via an application or browser on the user device 135. In one embodiment, the user device 135 is a touch screen device and the application or browser displays an image of the remote control via user-selectable buttons for controlling the device 430 and 432. Upon receiving the notification, the user may turn on the graphical remote control and turn off or adjust the various pieces of equipment. If connected via the IoT service 120, the user's selection may be forwarded from the IoT service 120 to the IoT hub 110, which will then control the device via the control logic 412. Alternatively, the user input may be sent directly from the user device 135 to the IoT hub 110.
In one embodiment, a user may program control logic 412 on IoT hub 110 to perform various automated control functions with respect to electronic devices 430 and 432. In addition to maintaining the desired temperature, brightness level, and volume level as described above, control logic 412 may automatically shut down the electronic device if certain conditions are detected. For example, if the control logic component 412 detects that the user is not at home and the air conditioner is not functioning, it may automatically turn off the air conditioner. Similarly, if the user is not at home and sensor 406 indicates that audiovisual device 430 is on or sensor 405 indicates that a light is illuminated, control logic 412 may automatically send commands via IR/RF boosters 403 and 402 to turn off the audiovisual device and light, respectively.
Fig. 5 shows an additional embodiment of the IoT device 104 and 105 equipped with the sensor 503 and 504 for monitoring the electronic device 530 and 531. Specifically, the IoT device 104 of this embodiment includes a temperature sensor 503 that may be placed on or near the furnace 530 to detect when the furnace is turned on. In one embodiment, IoT device 104 sends the current temperature measured by temperature sensor 503 to IoT hub 110 and/or IoT service 120. If the furnace is determined to be on for more than a threshold period of time (e.g., based on the temperature measured during the period of time), control logic component 512 can send a notification to end-user device 135 informing the user that furnace 530 is on. In one embodiment, application-based or browser-based code on end-user device 135 displays the notification and provides the user with the ability to control furnace 530 (e.g., send a command to turn off the furnace).
Further, in one embodiment, IoT device 104 may include control module 501 to shut down the furnace or automatically shut down the furnace in response to receiving an instruction from a user (if control logic component 512 is programmed by the user to do so). In one embodiment, the control logic 501 includes a switch for switching off the furnace 530 electricity or gas. However, in other embodiments, the control logic 501 may be integrated within the furnace itself.
Fig. 5 also shows IoT devices 105 having motion sensors 504 for detecting motion of certain types of electronic equipment, such as a washer and/or dryer. Another available sensor is an audio sensor (e.g., a microphone and logic component) for detecting ambient volume levels. As with other embodiments described above, this embodiment may send a notification to the end user if certain specified conditions are met (e.g., indicating that the washer/dryer is not turned off if motion is detected for a long period of time). Although not shown in fig. 5, IoT device 105 may also be equipped with a control module to automatically turn off washer/dryer 531 (e.g., by turning off electricity/gas) and/or in response to user input.
In one embodiment, a first IoT device with control logic and a switch may be configured to turn off all power in a user's home, and a second IoT device with control logic and a switch may be configured to turn off all air in the user's home. The IoT devices with sensors may then be positioned on or near an electrically or gas powered device in the user's home. If the user is notified that a particular piece of equipment has been turned on (e.g., furnace 530), the user may send a command to turn off all electricity or gas in the home to prevent damage. Alternatively, the control logic 512 in the IoT hub 110 and/or the IoT service 120 may be configured to automatically shut down electricity or gas in such a case.
In one embodiment, the IoT hub 110 and the IoT service 120 communicate at periodic intervals. If the IoT service 120 detects that the connection with the IoT hub 110 has been lost (e.g., due to failure to receive a request or response from the IoT hub within a specified duration of time), it may communicate this information to the end-user device 135 (e.g., by sending a text message or application-specific notification). This functionality is graphically illustrated in fig. 6, which shows that the connection between IoT hub 110 and IoT service 120 has been disabled. The connection monitoring and notification logic 600 on the IoT service 120 detects that the connection has been disabled and, in response, sends a notification (e.g., over a cellular communication channel, WiFi, or any other communication channel used by the device 135) to the end-user device 135 informing the user of the connection status. In particular, in one embodiment, the connection monitoring logic detects when the first communication channel between the IoT service and the IoT hub becomes invalid and the notification logic sends a notification to the user's data processing device 135 in response to the connection monitoring logic detecting that the first communication channel has become invalid.
The user may then take steps to determine the cause of the connection problem. In embodiments where the lot hub is connected via a cellular network or WiFi, the user may only need to reboot lot hub device 110. In one embodiment, if the connection monitoring and notification logic 600 does not receive a communication from an IoT hub within a specified time period, the hub 110 may be pinged by attempting to determine its status. After a number of failed attempts (i.e., no response from the center), it may send a notification to the end-user device 135.
In embodiments where the lot hub is connected via a cellular network and a broadband connection in the user's home, this mechanism may be used to detect failure of either connection and may maintain communication with the lot hub 110 using the remaining good redundant connections.
One embodiment of the IoT hub 110 is implemented in a very compact form factor (e.g., the size of a cell phone charger). For example, the IoT hub 110 may be packaged as a 1.5 inch (or smaller) cube. Various alternative dimensions are also contemplated, such as a depth of between 1-2 inches (or less) and a height/length of between 1-3 inches, or any cube having sides of 2 inches or less.
Fig. 7A-7C illustrate one particular embodiment in which the IoT hub is integrated into a small enclosure designed to plug directly into an a/C receptacle via an a/C input interface 702. In this manner, IoT hubs 110 may be strategically located to achieve ideal reception anywhere there are power outlets in a user's home. In one embodiment, IoT hub 110 includes a transformer for converting a high voltage a/C input to a lower voltage D/C signal. Despite having a small form factor, in one embodiment, IoT hub 110 includes all of the features described herein for connecting with IoT service 120 and the plurality of IoT devices 101 and 105. For example, although not explicitly shown in fig. 7A-7C, in one embodiment, IoT hub 110 may include multiple communication interfaces (e.g., antennas and software) for communicating with IoT devices and IoT services. In one embodiment, IoT hub 110 includes a Power Line Communication (PLC) or similar network interface for establishing communication with IoT devices 101 and 105 over the a/C power line.
In addition, the embodiments of the IoT hubs shown in fig. 7A-7C are equipped with Light Emitting Diodes (LEDs) that, in addition to notifying the user of the current status of the hub 110, may also be used for night lights. Thus, a user may place an IoT hub in a hallway, bathroom, or children's room and use the hub for nightlight/IoT hub device dual use.
In one embodiment, the user may program the nightlight feature via an application on the user device 135 or a programming interface on a browser. For example, a user may program a night light to turn on at a particular time in the evening and turn off at a particular time in the morning. Furthermore, in one embodiment, different independently controlled colored LEDs are integrated in the IoT hub. The user may program the colors to be illuminated on the IoT hub at different times of day and night.
Once programmed, the LEDs 701 may be turned on/off by the IoT centric integrated low power uC 200. In one embodiment, the lot hub has an integrated photodetector to turn on a night light in response to ambient brightness falling below a specified threshold. Further, in one embodiment, the IoT hub has one or more integrated USB ports 710 for charging other devices (e.g., such as the user's mobile device 135). Of course, the underlying principles of the invention are not limited to an IoT hub 110 with an integrated USB charger.
Figure 8 shows a method according to one embodiment of the invention. At 801, an IoT device is positioned/configured on or near a device to be controlled. As described above, in one embodiment, the IoT device is equipped with double-sided tape to enable a user to easily attach the IoT device to various types of devices. Alternatively or additionally, each IoT device may include one or more mounting holes into which small nails or screws may be inserted to attach the IoT device to a wall or other surface. Further, some IoT devices may include magnetic materials to allow attachment of the IoT devices to metal surfaces.
Once the IoT devices are attached in place, they may be programmed via the user device 135 and the IoT hub 110 at 802. For example, a user may connect to the IoT hub 110 through an application or browser installed on the user device 135 (either directly or through the IoT service 120). The application or browser executable code may include a user interface that allows a user to identify and program each IoT device. Once the IoT device is selected, for example, the user may be provided with a list of different types of equipment to choose from (e.g., different models of remotely controllable air conditioners/heaters, audiovisual equipment, etc.). Once the correct device is selected, the remote control code is stored on the IoT hub as described above and sent to the IR/RF booster on the IoT device to control the device at 803. Further, as described above, various automatic control functions may be implemented through the IoT hub.
In one embodiment of the present invention, the IoT service 120 may enter into agreements with multiple cell operators 901 to provide connectivity with IoT hubs 110 in different geographic regions. For example, in the united states, IoT service 120 may agree with Verizon and AT & T to provide IoT centric connectivity. Thus, the IoT hub 110 may be located in a location serviced by two or more supported cell operators.
As shown in fig. 9, in one embodiment of the invention, IoT hub 901 includes cellular operator selection logic 901 for selecting between two or more available cell operators 915 and 916. In one embodiment, the cell operator selection logic is programmed with a set of rules 918 for selecting between two or more cell operators 915-. Once a particular cell operator is selected, the cell operator selection logic 901 will instruct the radio/network stack 902 of the IoT hub 110 to connect with that cell operator.
Various different types of selection rules 918 may be implemented. For example, if the IoT service 120 enters a more favorable agreement with the first cell operator 915 than the second cell operator 916 (e.g., a lower agreed-upon rate/cost 912), the first cell operator 915 may simply be connected by one rule, assuming all other variables are equal or within a specified threshold range (e.g., assuming the signal strength of the second cell operator is sufficient).
In one embodiment, the selection rules 918 implemented by the cell operator selection logic component 901 may factor in other variables related to cell operator connectivity and cost, including, for example, the current or historical signal strength 911 at each cell operator 915 and 916 measured at the IoT hub 110. For example, even if the IoT service 120 enters a more favorable agreement with the first cell operator 915 as described above, the cell operator selection logic 901 may still connect to the second cell operator 916 if the first operator's signal strength is below a specified threshold.
Similarly, the cell operator selection logic 901 may evaluate the reliability/performance data 913 of each cell operator 915-. For example, if the first cell operator 915 is known to be unreliable in a particular area and/or provide significantly lower performance (e.g., reduced data rate) than the second cell operator 916, then the cell operator selection logic 901 can select the second cell operator (despite having a more favorable agreement with the first cell operator). In one embodiment, reliability/performance data 913 and cell service signal strength data 911 may be collected by IoT hub 110 over time. For example, the IoT hub 110 may continuously monitor the signal strength, connection status, bandwidth, and other connection variables of each cell operator 915 and 916, and may make connection decisions based (at least in part) on the logged data.
In one embodiment, the IoT service 120 may provide updates to the IoT hub that include new/updated selection rules 918 and/or its established agreed new cell operators in relation to the existing cell operators 915 and 916. For example, if the agreement between IoT service 120 and second cell operator 916 is updated such that the cost of connecting through second cell operator 916 is low, new selection rules 918 and/or new cell service rates 912 containing this data may be sent from IoT service 120 to IoT hub 110. Cell operator selection logic 901 may then factor in these new rules/rates when presenting cell operator selection decisions (e.g., tending to prefer to do so if the connection with the second cell operator 916 is more cost-effective).
In one embodiment, the IoT hub 110 may be pre-configured by the IoT service 120 to connect with all available cell operators 915 and 916 (i.e., be provided with a Subscriber Identity Module (SIM)903 or other authentication data needed to connect with the cell operators 915 and 916). In one embodiment, a single SIM 903 (or other authentication means) may be configured for multiple cell operators 915-. Thus, after selecting the first cell operator 915 (e.g., based on the selection rules 918 and other variables), if the first cell operator 915 is unavailable, the IoT hub 110 may still drop back to the second cell operator 916. Similarly, the IoT hub 110 may switch from the first cell operator 915 to the second cell operator 916 in response to a change in current conditions (e.g., a decrease in signal strength to the cost of the first cell operator 915 and/or the second cell operator 916) and/or a new selection rule 918 sent from the IoT service 120.
Once IoT hub 110 is configured for multiple operators 915-916, it can dynamically switch between these operators throughout the day according to changing parameters. For example, the costs associated with each cellular operator 915-. Similarly, the cell towers of one operator may become overloaded at certain times of day or night, resulting in reduced connectivity. Using the techniques described herein, cell operator selection logic component 901 may continuously evaluate these conditions and dynamically switch between operators as conditions change.
Figure 10 illustrates a method according to one embodiment of the invention. The method may be implemented within the context of the architecture shown in FIG. 9, but is not limited to any particular system architecture.
At 1001, an IoT hub is configured for multiple cell operators and programmed with rules related to connecting to different cell operators. For example, one rule may result in an IoT hub being connected to a first service provider and not to a second service provider (all other variables being equal or within a defined threshold). At 1002, data relating to cell operator connectivity, cost, and/or other relevant variables is collected. For example, as described above, the signal strength of each cell operator may be used to present connection decisions.
At 1003, rules are executed using the collected data to determine a primary cell operator connecting the IoT hub. For example, an IoT hub may initially connect with a lower cost cell operator with all other variables equal (or within a specified threshold). As described above, the initial primary cell operator may then change in response to changes in the conditions and/or new/updated rules sent from the IoT service. At 1004, the IoT hub connects with the primary cell operator, possibly using the secondary cell operator as a fallback connection. The IoT hub may then wait at 1005 for a specified period of time (e.g., an hour, a day, a week, etc.), during which the IoT hub may collect additional data regarding connectivity, costs, etc. After the delay, the process repeats, and if the rules/data have changed significantly, the IoT hub may connect with the new primary cell operator at 1004.
As shown in fig. 11, in one embodiment, various different types of events 1101,1102-N may be generated by an IoT device and sent to IoT hub 110. By way of example and not limitation, events 1101,1102-N may include security events, such as a door or window in the user's home opening without a security code or other necessary authentication, a temperature reaching a specified threshold (e.g., indicating that a burner of a stove has been turned on or indicating a potential fire), a motion detector being triggered when the user and the user's family are not at home, a smoke detector being triggered, a sensor on a sprinkler system indicating that the operating time of a sprinkler has exceeded a specified period of time, a refrigerator sensor or a food cabinet sensor indicating that the user's usage of a particular food product is low, and so forth.
In one embodiment, IoT service 120 and/or one or more external services 1120 and 1122 may interact with IoT hub 110 via APIs to receive events 1101,1102-N generated by various IoT devices, and may take various actions in response to the events including sending notifications to user 1115 (e.g., via the user's mobile device). For example, an external grocery store service may receive events related to the usage levels of different foods in a user's refrigerator or food locker and automatically update the user's online grocery store list or arrange an order. The external security service may receive events related to security in the user's home and attempt to notify the user in response to an alert. If the temperature sensor rises above a certain threshold, another service may notify the fire department and/or send a notification to the user. It is noted that these specific examples are provided for illustrative purposes only. The underlying principles of the invention are not limited to any particular type of event or event response.
In some cases, the events generated by IoT devices may be innocuous and may not need to be sent to IoT service 120 and/or external service 1120 and 1122. For example, the user's IoT thermostat device may periodically report the current temperature in the user's home, and other IoT devices may periodically report events that indicate only measurements that are within an acceptable threshold range. Thus, to reduce the number of events sent over the cellular operator's network (or via the user's internet connection), one embodiment of IoT hub 110 includes an event filter 1110 that does not forward certain types of events to IoT service 120 and/or external services 1120 and 1122. In one embodiment, each event 1101,1102-N is assigned an identification code indicating the type of event. Based on a set of filtering rules 1111 provided by IoT services 120 and/or end users 1115 (e.g., configured via an application/browser), certain event types are filtered out (e.g., dropped or simply not forwarded) by event filters, while other event types are stored on IoT hub 110 and forwarded to IoT services 120 and/or other external services 1120 and 1122.
As described above, the external services 1120, 1122 and/or the IoT service 120 may be configured to notify the end user of certain types of events by sending notifications to the user device via the internet 220. For example, if the temperature sensor is above a specified threshold, the IoT service 120 may send a notification to the end-user device to inform the user about the potential problem. Further, in some cases, IoT hub 110 may send the notification directly to the end user (in addition to sending the event directly to IoT service 120 and/or external service 1120 and 1122).
In one embodiment, external services 1120-1122 and IoT service 120 utilize Application Programming Interfaces (APIs) exposed by IoT hub 110. For example, a particular service may register via an API to receive a particular set of events. Since IoT service 120 knows which APIs each external service 1120-1122 is configured to receive (and therefore which events), it can dynamically send filtering rule updates 1111 so that event filter 1110 only forwards those events that have been subscribed to by itself and the various external services 1120-1122. Depending on the configuration, IoT hub 110 may maintain a log of all events (including those events that are not forwarded to external services) or may simply discard the events that are not forwarded.
In one embodiment, the IoT service 120 includes an event filter (in addition to or instead of the event filter 1110 on the IoT hub 110) for filtering events according to a set of filtering rules as described herein. In this embodiment, each external service 1120-1122 may subscribe to receive certain types of events through the APIs exposed by IoT service 120. Events are generated by IoT hub 110 (which may be filtered through local event filter 1110), sent to IoT service 120 (which may be filtered by IoT service filter) and forwarded to external service 1120 and 1122 and/or the end-user device. IoT service filters can be configured in a similar manner to the IoT hub filters described herein (i.e., only forward certain types of events/notifications according to a set of filtering rules).
The technique for filtering events on the IoT hub 110 and/or the IoT service 120 as described above is advantageous because it reduces a large amount of unnecessary traffic on the cell operator's network and/or the internet connection of the user/service. These embodiments may be particularly advantageous for homes that are fully implemented with a large number of IoT devices (and thus typically a large number of events).
One embodiment of the present invention collects user behavior data related to each user's interaction with various IoT devices and responsively provides targeted content updates that are uniquely tailored to each user's interests. Fig. 12 illustrates an exemplary embodiment in which two users 1201-1202 control IoT devices 101-102 in the home through IoT device control logic 412 on IoT hub 110. Although only two IoT devices 101-102 and two users 1201-1202 are shown for simplicity, there may be more IoT devices and/or users communicatively coupled via IoT hub 110. As described above, the users 1201-1201 can interact with the IoT devices 101-102 via an application or browser installed on each user's data processing device (e.g., smart phone, personal computer, etc.). As described above, the application may be specifically designed to interact with the IoT service 120 and/or the IoT hub 110 to allow users to view data provided by the various IoT devices 101 and 102 and to control the IoT devices 101 and 102.
In one embodiment, the user behavior data collection logic 1200 executing on the IoT hub 110 monitors and collects the information viewed by each user (e.g., information provided by the various IoT devices 101 and 102) and the IoT devices controlled by each user. For example, one of the two users 1201-1202 may be a garden and may periodically view data related to the amount of water consumed in the garden (collected by sensors on the IoT device). The user may also control the sprinkler system via the IoT device, for example, by programming the IoT device controller 412 to control the IoT device to automatically turn on and off the sprinkler system. Another user may not be involved in gardening, but may wash and/or cook clothes at home.
Information related to each of these activities may be collected by user behavior data collection logic 1200 to generate a user profile for each user. For example, in one embodiment, the behavioral data is sent from the IoT hub 110 to the IoT service 120 where it is analyzed to determine the preferences of each user. The targeted content may then be sent to each individual user 1201 based on these preferences 1202. For example, a horticultural user may receive information related to the sale of horticultural items and a cooking user may receive information related to kitchen utensils and/or recipes. In one embodiment, the owner/operator of the IoT service 120 may enter into an agreement with the online advertising company to generate the target information for transmission to each user data processing device. In one embodiment, the IoT service 120 sends user behavior data to one or more external services 1120 and 1122, which then generate targeted notifications and content to the end user's data processing device.
In one embodiment, user behavior data is also collected directly from one of IoT service 120 or external service 1120 and 1122. For example, user purchases and other activities outside the context of the IoT system may be recorded at IoT service 120 and/or external service 1120 and 1122 and may be used as part of the analysis to determine targeted notifications/content.
This type of micro-positioning has not been previously performed because the specific actual behavior captured by the IoT systems described herein was not previously available. For example, current targeted advertising is based on a user's browsing history and/or purchasing history, but no data related to the user's actual activities is available (e.g., such as gardening, cooking, and home maintenance). Such data may be particularly advantageous when targeted information is provided to an end user as described herein, as it is based on the user's actual activities related to a particular product and/or service.
In one embodiment, the low power microcontroller 200 of each IoT device 101 and the low power logic component/microcontroller 301 of the IoT hub 110 include a security key storage for storing encryption keys used by embodiments described below (see, e.g., fig. 13-15B and related text). Alternatively, the key may be protected in a Subscriber Identity Module (SIM) as described below.
Fig. 13 illustrates a high-level architecture for encrypting communications between IoT services 120, IoT hub 110, and IoT devices 101-102 using Public Key Infrastructure (PKI) techniques and/or symmetric key exchange/encryption techniques.
First, an implementation using a public/private key pair will be described, followed by an implementation using symmetric key exchange/encryption techniques. In particular, in embodiments using PKI, a unique public/private key pair is associated with each IoT device 101 and 102, each IoT hub 110, and the IoT service 120. In one embodiment, when a new IoT hub 110 is established, its public key is provided to the IoT service 120, and when a new IoT device 101 is established, its public key is provided to the IoT hub 110 and the IoT service 120. Various techniques for securely exchanging public keys between devices are described below. In one implementation, all public keys are signed by a master key (i.e., in the form of a certificate) that is known to all receiving devices, so that any receiving device can verify the validity of the public key by verifying the signature. Thus, these certificates are exchanged, not just the original public key.
As shown, in one embodiment, each IoT device 101,102 includes a security key store 1301,1303 for securely storing the private key of each device, respectively. The security logic 1302,1304 then utilizes the securely stored private key to perform the encryption/decryption operations described herein. Similarly, the IoT hub 110 includes a secure storage 1311 for storing IoT hub private keys and public keys of the IoT devices 101 and 102 and the IoT service 120; and security logic 1312 to perform encryption/decryption operations using the keys. Finally, the IoT service 120 may include a security storage 1321 to securely store its own private keys, the various IoT devices, and IoT hub public keys, and security logic 1313 to encrypt/decrypt communications with the IoT hubs and devices using the keys. In one embodiment, when the IoT hub 110 receives a public key certificate from an IoT device, it may verify this certificate (e.g., by verifying the signature using the master key as described above) and then extract the public key therefrom and store it in its security key store 1311.
For example, in one embodiment, when the IoT service 120 needs to send a command or data to the IoT device 101 (e.g., a command to unlock a door, a request to read a sensor, data to be processed/displayed by the IoT device, etc.), the security logic 1313 encrypts the data/command using the public key of the IoT device 101 to generate an encrypted IoT device data packet. In one embodiment, it then encrypts the IoT device data packet using the public key of the IoT hub 110 to generate an IoT hub data packet and sends the IoT hub data packet to the IoT hub 110. In one implementation, service 120 signs the encrypted message with its private key or the master key described above so that device 101 can verify that it received an unaltered message from a trusted source. Device 101 may then verify the signature using a public key corresponding to the private key and/or the master key. As described above, symmetric key exchange/encryption techniques may be used instead of public key/private key encryption. In these embodiments, rather than storing one key separately and providing the corresponding public key to the other devices, each device may be provided with a copy of the same symmetric key used to encrypt and verify the signature. One example of a symmetric key algorithm is Advanced Encryption Standard (AES), but the underlying principles of the invention are not limited to any type of specific symmetric key.
Using a symmetric key implementation, each device 101 enters a secure key exchange protocol to exchange symmetric keys with the IoT hub 110. Keys may be exchanged via a secure communication channel using a secure key provisioning protocol, such as Dynamic Symmetric Key Provisioning Protocol (DSKPP) (see, e.g., request for comments (RFC) 6063). However, the underlying principles of the invention are not limited to any particular key provisioning protocol.
Once the symmetric keys are exchanged, they may be used by each device 101 and IoT hub 110 to encrypt communications. Similarly, the IoT hub 110 and the IoT service 120 may perform secure symmetric key exchanges and then encrypt communications using the exchanged symmetric keys. In one embodiment, new symmetric keys are periodically exchanged between device 101 and hub 110 and between hub 110 and IoT service 120. In one embodiment, a new symmetric key is exchanged through each new communication session between device 101, center 110, and service 120 (e.g., a new key is generated and securely exchanged for each communication session). In one embodiment, if the security module 1312 of the IoT hub is trusted, the service 120 may negotiate session keys with the central security module 1312 and then the security module 1312 will negotiate session keys with each device 120. The message from the service 120 will then be decrypted and validated in the central security module 1312 before re-encrypting the transmission towards the device 101.
In one embodiment, to prevent affecting central security module 1312, a one-time (permanent) installation key may be negotiated between device 101 and service 120 at installation time. When sending a message to device 101, service 120 may first encrypt/MAC using the device installation key and then encrypt/MAC using the session key of the center. The hub 110 will then verify and extract the encrypted device blob and send it to the device.
In one embodiment of the invention, a counter mechanism is implemented to prevent replay attacks. For example, each successive communication from device 101 to hub 110 (or vice versa) may be assigned a successively increasing counter value. Both the center 110 and the device 101 will track the value and verify that the value is correct in each successive communication between the devices. The same techniques may be implemented between the center 110 and the service 120. Using the counter in this manner will make it more difficult to spoof communications between each device (since the counter value will be incorrect). However, even without this, a shared installation key between the service and the device would prevent a network (central) wide attack on all devices.
In one embodiment, when encrypted using the public/private key, the IoT hub 110 decrypts the IoT hub data packet using its private key and generates an encrypted IoT device data packet that will be sent to the relevant IoT device 101. IoT device 101 then decrypts the IoT device data packet using its private key to generate commands/data originating from IoT service 120. It may then process the data and/or execute the command. With symmetric encryption, each device will encrypt and decrypt using a shared symmetric key. In either case, each sending device may also sign the message with its private key so that the receiving device can verify its authenticity.
Communications from IoT devices 101 to IoT hubs 110 and IoT services 120 may be encrypted using different sets of keys. For example, in one embodiment, using public/private key protocol, security logic 1302 on IoT device 101 encrypts data packets sent to IoT hub 110 using the public key of IoT hub 110. The security logic component 1312 on the IoT hub 110 may then decrypt the data packet using the IoT hub's private key. Similarly, security logic 1302 on IoT device 101 and/or security logic 1312 on IoT hub 110 may encrypt data packets sent to IoT service 120 using the public key of IoT service 120 (which may then be decrypted by security logic 1313 on IoT service 120 using the private key of the service). Using a symmetric key, device 101 and center 110 may share a symmetric key, while center and service 120 may share a different symmetric key.
Although some specific details are set forth in the description above, it should be noted that the underlying principles of the invention may be implemented using a variety of different encryption techniques. For example, while some embodiments discussed above use asymmetric public/private key pairs, alternative embodiments may use symmetric keys securely exchanged between the various IoT devices 101 and 102, the IoT hub 110, and the IoT service 120. Further, in some embodiments, the data/command itself is not encrypted, but a key is used to generate a signature on the data/command (or other data structure). The receiver can then verify the signature using its key.
As shown in fig. 14, in one embodiment, the security key storage on each IoT device 101 is implemented using a programmable Subscriber Identity Module (SIM) 1401. In this embodiment, the IoT device 101 may initially be provided to the end user using an unprogrammed SIM card 1401 within the SIM interface 1400 seated on the IoT device 101. To program the SIM card with a set of one or more encryption keys, the user removes the programmable SIM card 1401 from the SIM interface 500 and inserts it into the SIM programming interface 1402 on the IoT hub 110. Programming logic 1425 on the IoT hub then securely programs the SIM card 1401 to register/pair the IoT device 101 using the IoT hub 110 and the IoT service 120. In one embodiment, a public/private key pair may be randomly generated by the programming logic component 1425, and the public key of the key pair may then be stored in the IoT hub's secure storage 411, while the private key may be stored in the programmable SIM 1401. Further, programming logic 1425 may store public keys of IoT hub 110, IoT service 120, and/or any other IoT device 101 on SIM card 1401 (for use by security logic 1302 on IoT device 101 to encrypt outgoing data). Once the SIM 1401 is programmed, the new IoT device 101 may be configured by the IoT service 120 using the SIM as a security identifier (e.g., registering the device with the SIM using existing techniques). After configuration, the IoT hub 110 and the IoT service 120 will securely store a copy of the IoT device public key to be used in encrypting communications with the IoT device 101.
The techniques described above in connection with fig. 14 provide great flexibility in providing new IoT devices to end users. Without requiring the user to register each SIM directly with a particular service provider at the time of sale/purchase (as is currently done), the SIM can be programmed directly by the end user through the IoT hub 110, and the programmed results can be securely communicated to the IoT service 120. Thus, new IoT devices 101 may be sold from online or local retailers to end users and then securely configured by the IoT service 120.
Although the registration and encryption techniques are described above in the specific context of a SIM (subscriber identity module), the underlying principles of the invention are not limited to "SIM" devices. Rather, the underlying principles of the invention may be implemented using any type of device having a secure storage for storing a set of encryption keys. Further, while the above embodiments include removable SIM devices, in one embodiment, the SIM devices are not removable, and the IoT devices themselves may be inserted within the programming interface 1402 of the IoT hub 110.
In one embodiment, the SIM is pre-programmed into the IoT device 101 prior to being assigned to the end user, without requiring the user to program the SIM (or other device). In this embodiment, when a user establishes an IoT device 101, encryption keys may be securely exchanged between the IoT hub 110/IoT service 120 and the new IoT device 101 using the various techniques described herein.
For example, as shown in fig. 15A, each IoT device 101 or SIM 401 may be encapsulated with a barcode or QR code 1501 that uniquely identifies the IoT device 101 and/or SIM 1401. In one embodiment, the barcode or QR code 1501 includes an encoded representation of the public key for the IoT device 101 or SIM 1401. Alternatively, the barcode or QR code 1501 may be used by the IoT hub 110 and/or the IoT service 120 to identify or generate a public key (e.g., to serve as a pointer to a public key already stored in secure storage). The barcode or QR code 1501 may be printed on a separate card (as shown in fig. 15A), or may be printed directly on the IoT device itself. Regardless of where the barcode is printed, in one embodiment, the IoT hub 110 is equipped with a barcode reader 206 to read the barcode and provide the resulting data to the security logic 1312 on the IoT hub 110 and/or the security logic 1313 on the IoT service 120. The security logic 1312 on the IoT hub 110 may then store the public key of the IoT device within its security key store 1311, and the security logic 1313 on the IoT service 120 may store the public key within its security store 1321 (for subsequent encrypted communications).
In one embodiment, the data contained in the barcode or QR code 1501 may also be captured by a user device 135 (e.g., an iPhone or Android device) with an installed IoT application or a browser-based applet designed by an IoT service provider. Once captured, the barcode data may be securely transmitted to the IoT service 120 over a secure connection, such as a Secure Sockets Layer (SSL) connection, for example. The barcode data may also be provided from the client device 135 to the IoT hub 110 over a secure local connection (e.g., over a local WiFi or bluetooth LE connection).
Security logic 1302 on IoT device 101 and security logic 1312 on IoT hub 110 may be implemented using hardware, software, firmware, or any combination thereof. For example, in one embodiment, security logic 1302,1312 is implemented within a chip used to establish local communication channel 130 between IoT device 101 and IoT hub 110 (e.g., a bluetooth LE chip if local channel 130 is a bluetooth LE). Regardless of the specific location of the security logic 1302,1312, in one embodiment, the security logic 1302,1312 is designed to establish a secure execution environment for executing certain types of program code. This may be accomplished, for example, by using TrustZone technology (available on some ARM processors) and/or trusted execution technology (designed by Intel). Of course, the underlying principles of the invention are not limited to any particular type of secure execution technology.
In one embodiment, a barcode or QR code 1501 may be used to pair each IoT device 101 with an IoT hub 110. For example, rather than using the standard wireless pairing methods currently used to pair bluetooth LE devices, pairing codes embedded within barcode or QR code 1501 may be provided to IoT hub 110 to pair the IoT hub with the corresponding IoT device.
Fig. 15B illustrates an embodiment in which barcode reader 206 on IoT hub 110 captures barcode/QR code 1501 associated with IoT device 101. As described above, the barcode/QR code 1501 may be printed directly on the IoT device 101, or may be printed on a separate card provided with the IoT device 101. In either case, the barcode reader 206 reads the pairing code from the barcode/QR code 1501 and provides the pairing code to the local communication module 1580. In one embodiment, the local communication module 1580 is a bluetooth LE chip and associated software, although the underlying principles of the invention are not limited to any particular protocol standard. Upon receiving the pairing code, it is stored in a secure storage containing pairing data 1585 and the IoT device 101 and IoT hub 110 will pair automatically. Whenever the IoT hub pairs with a new IoT device in this manner, the paired pairing data will be stored within the secure storage 1585. In one embodiment, once the local communication module 1580 of the IoT hub 110 receives the pairing code, it may use the code as a key to encrypt communications with the IoT device 101 over the local wireless channel.
Similarly, on the IoT device 101 side, the local communication module 1590 stores pairing data indicating pairing with the IoT hub within the local secure storage 1595. The pairing data 1595 may include a pre-programmed pairing code identified in the barcode/QR code 1501. The pairing data 1595 may also include pairing data (e.g., additional keys used to encrypt communications with the IoT hub 110) received from the local communication module 1580 on the IoT hub 110 that is needed to establish a secure local communication channel.
Thus, the barcode/QR code 1501 may be used to perform local pairing in a much more secure manner than current wireless pairing protocols, since the pairing code is not sent wirelessly. Further, in one embodiment, the same barcode/QR code 1501 used for pairing may be used to identify encryption keys to establish secure connections from IoT device 101 to IoT hub 110 and from IoT hub 110 to IoT service 120.
Figure 16 illustrates a method for programming a SIM card according to one embodiment of the present invention. The method may be implemented within the system architecture described above, but is not limited to any particular system architecture.
At 1601, the user receives a new IoT device with a blank SIM card, and at 1602, the user inserts the blank SIM card into the IoT hub. At 1603, the user programs a blank SIM card with a set of one or more encryption keys. For example, as described above, in one embodiment, the IoT hub may randomly generate a public/private key pair and store the private key on the SIM card and the public key in its local secure storage. Further, at 1604, at least the public key is sent to an IoT service so that it can be used to identify and establish encrypted communications with IoT devices. As described above, in one embodiment, programmable devices other than "SIM" cards may be used to perform the same functions as the SIM card in the method shown in fig. 16.
Fig. 17 illustrates a method of integrating a new IoT device into a network. The method may be implemented within the system architecture described above, but is not limited to any particular system architecture.
At 1701, the user receives a new IoT device to which an encryption key has been pre-assigned. At 1702, a key is securely provided to an IoT hub. As described above, in one embodiment, this involves reading a barcode associated with an IoT device to identify a public key in a public/private key pair assigned to the device. The barcode may be read directly by the IoT hub or captured by the mobile device via an application or browser. In alternative embodiments, a secure communication channel, such as a Near Field Communication (NFC) channel or a secure WiFi channel, may be established between the IoT device and the IoT hub to exchange the key. Regardless of how the key is sent, once received, it will be stored in the security key store of the IoT hub device. As described above, various secure execution technologies may be used on the IoT hub to store and protect keys such as secure enclaves, trusted execution technology (TXT), and/or Trustzone. Further, at 1703, the key is securely sent to the IoT service, which stores the key in its own secure key store. The communication with the IoT device may then be encrypted using the key. Again, the exchange may be implemented using a certificate/signature key. Within the center 110, it is particularly important to prevent modification/addition/removal of stored keys.
Fig. 18 illustrates a method of securely transmitting commands/data to IoT devices using public/private keys. The method may be implemented within the system architecture described above, but is not limited to any particular system architecture.
At 1801, the IoT service encrypts the data/command using the IoT device public key to create an IoT device data packet. It then encrypts the IoT device data packet using the IoT hub's public key to create an IoT hub data packet (e.g., create an IoT hub enclosure around the IoT device data packet). At 1802, an IoT service sends an IoT hub data packet to an IoT hub. At 1803, the IoT hub decrypts the IoT hub data packet using the IoT hub's private key to generate an IoT device data packet. Then, at 1804, it sends the IoT device data packet to the IoT device, which decrypts the IoT device data packet using the IoT device private key at 1805 to generate the data/command. At 1806, the IoT device processes the data/command.
In embodiments using symmetric keys, a symmetric key exchange may be negotiated between each device (e.g., between each device and the center and between the center and the service). Once the key exchange is complete, each sending device encrypts and/or signs each transmission using the symmetric key before sending the data to the receiving device.
Embodiments of the present invention may include various steps as described above. These steps may be embodied in machine-executable instructions, which may be used to cause a general-purpose processor or special-purpose processor to perform the steps. Alternatively, the steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
As described herein, instructions may refer to a particular hardware configuration, such as an Application Specific Integrated Circuit (ASIC), configured to perform certain operations or having predetermined functions or software instructions stored in a memory embodied in a non-transitory computer readable medium. Thus, the techniques illustrated in the figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., an end station, a network element, etc.). Such electronic devices store and communicate (internally and/or with other electronic devices on a network) code and data using a computer-machine-readable medium, such as non-transitory computer-machine-readable storage media (e.g., magnetic disks; optical disks; random access memories; read only memories; flash memory devices; phase change memories) and transitory computer-machine-readable communication media (e.g., electrical, optical, acoustical or other forms of propagated signals-such as carrier waves, infrared signals, digital signals, etc.). Further, such electronic devices typically include a set of one or more processors coupled to one or more other components, such as one or more storage devices (non-transitory machine-readable storage media), user input/output devices (e.g., a keyboard, a touchscreen, and/or a display), and network connections. The coupling of the processor book and other components is typically through one or more buses and bridges (also referred to as bus controllers). The storage devices and the signals carrying network traffic represent one or more machine-readable storage media and machine-readable communication media, respectively. Thus, the memory device of a given electronic device typically stores code and/or data for execution on a set of one or more processors of the electronic device. Of course, different combinations of software, firmware, and/or hardware may be used to implement one or more portions of embodiments of the invention.
Throughout the detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In some instances, well-known structures and functions have not been described in detail so as not to obscure the subject matter of the present invention. Accordingly, the scope and spirit of the invention should be determined from the appended claims.

Claims (22)

1. A system for implementing an internet of things remote control application, the system comprising:
a hardware Internet of things (IoT) hub located within a user's residence, the IoT hub including a network interface to couple the IoT hub to an IoT service over a Wide Area Network (WAN) and a local communication interface to couple the IoT hub to one or more IoT devices within the user's residence;
at least one of the one or more IoT devices communicatively coupled to the IoT hub over a wireless communication channel, the IoT device including an Infrared (IR) or Radio Frequency (RF) enhancer to control a designated electronic device within the user's residence via IR or RF communication with the electronic device, the IoT device further including at least one sensor to detect a current condition related to operation of the electronic device, the IoT device to send an indication of the current condition detected by the at least one sensor to the IoT hub over the wireless communication channel;
the IoT hub comprises:
an IR/RF interface for receiving a remote control code signal directly from a remote control device originally equipped with the electronic apparatus;
remote control code learning logic circuitry to retrieve a remote control code from a master control code database on the IoT service in response to identifying end user input information for the electronic device via a user device, or to learn the remote control code from the remote control code signal received directly from the remote control device;
a remote control code database for storing the remote control codes that can be used to control the electronic device; and
control logic circuitry to generate a remote control command using the remote control codes stored in the remote control code database, the remote control command selected by the control logic circuitry in response to the current conditions and input from the end user provided via the user device, the IoT hub to send the command to the IoT device over the wireless communication channel; and is
The IoT device responsively transmits the remote control command to the electronic device to control the electronic device.
2. The system of claim 1, wherein the electronic device comprises an air conditioner and/or a heater, the sensor comprises a temperature sensor, and the current condition comprises a temperature.
3. The system of claim 2, wherein the input from the end user provided by the user device comprises a desired temperature, wherein the control logic circuit generates the remote control command to turn the air conditioner and/or heater on or off to achieve the desired temperature.
4. The system of claim 1, wherein the electronic device comprises an audiovisual device, a light, a stove, a washing machine, and/or a dryer.
5. The system as in claim 1 wherein the remote control code learning logic circuitry is communicatively coupled to an IR/RF interface integrated on the lot hub, the remote control code learning logic circuitry to learn remote control codes directly from an original remote controller designed to operate with the electronic device by capturing the remote control codes from the original remote controller via the IR/RF interface.
6. The system as in claim 5 wherein the remote control code learning logic circuitry is to store the captured remote control code in the remote control code database on the lot hub.
7. The system as in claim 1 wherein the input from the end user is provided to the lot hub through the lot service.
8. The system of claim 1, wherein the wireless communication channel comprises a bluetooth low energy (BTLE) communication channel.
9. The system as in claim 1 wherein the lot hub is communicatively coupled to the lot service through a cellular network connection that couples the lot hub to the WAN.
10. The system of claim 1, further comprising:
a plurality of additional IoT devices communicatively coupled to the IoT hub, each of the IoT devices including an IR or RF enhancer to control a different type of electronic device via IR or RF communication with the electronic device, each IoT device further including at least one sensor to detect a current condition related to operation of the different electronic device, each IoT device to send an indication of the current condition to the IoT hub over the wireless communication channel.
11. A method for implementing an internet of things remote control application, the method comprising:
communicatively coupling an internet of things (IoT) hub located within a user's residence to an IoT service over a Wide Area Network (WAN);
communicatively coupling at least one IoT device to the IoT hub over a wireless communication channel, the IoT device including an Infrared (IR) or Radio Frequency (RF) enhancer to control a specified electronic device via IR or RF communication with an electronic device within the user's residence;
sensing a current condition using a sensor on the IoT device, the current condition relating to operation of the electronic device;
sending the current conditions from the IoT device to the IoT hub over the wireless communication channel;
analyze the current conditions in conjunction with user input to select a remote control command using a remote control code at the lot hub, wherein the lot hub includes remote control code learning logic circuitry to retrieve the remote control code from a master control code database on the lot service in response to identifying end user input information for the electronic device via a user device, or the remote control code learning logic circuitry to learn the remote control code from a remote control code signal received directly from a remote control device over an IR/RF interface of the lot hub, wherein the remote control device is originally provisioned with the electronic device; and
sending the remote control command from the lot hub to the lot device over the wireless communication channel, the lot device responsively sending the remote control command to the electronic device to control the electronic device.
12. The method of claim 11, wherein the electronic device comprises an air conditioner and/or a heater, the sensor comprises a temperature sensor, and the current condition comprises a temperature.
13. The method of claim 12, wherein the input from the end user provided by the user device comprises a desired temperature, wherein control logic circuitry generates the remote control command to turn the air conditioner and/or heater on or off to achieve the desired temperature.
14. The method of claim 11, wherein the electronic device comprises an audio-visual device, a light, a stove, a washing machine, and/or a dryer.
15. The method as in claim 11 wherein the remote control code learning logic circuitry is communicatively coupled to an IR/RF interface integrated on the lot hub, the remote control code learning logic circuitry to learn remote control codes directly from an original remote controller designed to operate with the electronic device by capturing the remote control codes from the original remote controller via the IR/RF interface.
16. The method as in claim 15 wherein the remote control code learning logic circuitry is to store the captured remote control code in a remote control code database on the lot hub.
17. The method as in claim 11 wherein the input from the end user is provided to the lot hub through the lot service.
18. The method of claim 11, wherein the wireless communication channel comprises a bluetooth low energy (BTLE) communication channel.
19. The method as in claim 11 wherein the lot hub is communicatively coupled to the lot service through a cellular network connection that couples the lot hub to the WAN.
20. The method of claim 11, further comprising:
communicatively coupling a plurality of additional IoT devices to the IoT hub, each of the IoT devices including an IR or RF enhancer to control a different type of electronic equipment via IR or RF communications with the electronic equipment, each IoT device further including at least one sensor to detect a current condition related to operation of the different electronic equipment, each IoT device to send an indication of the current condition to the IoT hub over the wireless communication channel.
21. A system for implementing an internet of things remote control application, the system comprising:
a hardware Internet of things (IoT) hub located within a user's residence, the IoT hub including a network interface to couple the IoT hub to an IoT service over a Wide Area Network (WAN) and a local communication interface to couple the IoT hub to one or more IoT devices within the user's residence;
at least one of the one or more IoT devices communicatively coupled to the IoT hub over a wireless communication channel, the IoT device including an Infrared (IR) or Radio Frequency (RF) enhancer to control a designated electronic device via IR or RF communication with the electronic device, the IoT device further including at least one sensor to detect a current condition related to operation of the electronic device, the IoT device to send an indication of the current condition detected by the at least one sensor to the IoT hub over the wireless communication channel;
the lot hub includes a remote control code database for storing remote control codes that can be used to control the electronic device, wherein the remote control codes are retrieved from a master control code database on the lot service in response to end user input information identifying the electronic device or learned from remote control code signals received directly from a remote control device through an IR/RF interface of the lot hub, wherein the remote control device is originally provisioned with the electronic device;
the lot hub further comprises control logic circuitry to generate a remote control command using the remote control code, the remote control command selected by the control logic circuitry in response to the current conditions and input from the end user provided via a user device, the lot hub to send the command to the lot device over the wireless communication channel;
the IoT device responsively transmits the remote control command to the electronic device to control the electronic device; and
a plurality of additional IoT devices communicatively coupled to the IoT hub, each of the IoT devices including an IR or RF enhancer to control a different type of electronic device via IR or RF communication with the electronic device, each IoT device further including at least one sensor to detect a current condition related to operation of the different electronic device, each IoT device to send an indication of the current condition to the IoT hub over the wireless communication channel.
22. A method for implementing an internet of things remote control application, the method comprising:
communicatively coupling an internet of things (IoT) hub located within a user's residence to an IoT service over a Wide Area Network (WAN);
communicatively coupling at least one IoT device to the IoT hub over a wireless communication channel, the IoT device including an Infrared (IR) or Radio Frequency (RF) enhancer to control a specified electronic device via IR or RF communication with an electronic device within the user's residence;
sensing a current condition using a sensor on the IoT device, the current condition relating to operation of the electronic device;
sending the current conditions from the IoT device to the IoT hub over the wireless communication channel;
analyzing the current conditions in conjunction with user input to select a remote control command using a remote control code at the lot hub, wherein the remote control code is retrieved from a master control code database on the lot service in response to end user input information identifying the electronic device or learned from a remote control code signal received directly from a remote control device through an IR/RF interface of the lot hub, wherein the remote control device was originally provisioned with the electronic device;
sending the remote control command from the lot hub to the lot device over the wireless communication channel;
the IoT device responsively transmits the remote control command to the electronic device to control the electronic device; and
communicatively coupling a plurality of additional IoT devices to the IoT hub, each of the IoT devices including an IR or RF enhancer to control a different type of electronic equipment via IR or RF communications with the electronic equipment, each IoT device further including at least one sensor to detect a current condition related to operation of the different electronic equipment, each IoT device to send an indication of the current condition to the IoT hub over the wireless communication channel.
CN201680010500.0A 2015-01-06 2016-01-04 System and method for implementing internet of things (IoT) remote control applications Active CN107251530B (en)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US14/590,719 US9729340B2 (en) 2015-01-06 2015-01-06 System and method for notifying a user of conditions associated with an internet-of-things (IoT) hub
US14/590,799 US9774507B2 (en) 2015-01-06 2015-01-06 System and method for collecting and utilizing user behavior data within an IoT system
US14/590,765 2015-01-06
US14/590,663 2015-01-06
US14/590,686 US9933768B2 (en) 2015-01-06 2015-01-06 System and method for implementing internet of things (IOT) remote control applications
US14/590,708 2015-01-06
US14/590,700 US10816944B2 (en) 2015-01-06 2015-01-06 System and method for using data collected from internet-of-things (IoT) sensors to disable IoT-enabled home devices
US14/590,708 US9860681B2 (en) 2015-01-06 2015-01-06 System and method for selecting a cell carrier to connect an IOT hub
US14/590,765 US20160197769A1 (en) 2015-01-06 2015-01-06 System and method for filtering events at an iot hub
US14/590,700 2015-01-06
US14/590,649 US20160198536A1 (en) 2015-01-06 2015-01-06 Internet-of-things (iot) hub apparatus and method
US14/590,663 US9774497B2 (en) 2015-01-06 2015-01-06 System and method for implementing internet of things (IOT) remote control applications
US14/590,799 2015-01-06
US14/590,649 2015-01-06
US14/590,686 2015-01-06
US14/590,719 2015-01-06
PCT/US2016/012021 WO2016111916A1 (en) 2015-01-06 2016-01-04 System and method for implementing internet of things (iot) remote control applications

Publications (2)

Publication Number Publication Date
CN107251530A CN107251530A (en) 2017-10-13
CN107251530B true CN107251530B (en) 2021-07-06

Family

ID=56356332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680010500.0A Active CN107251530B (en) 2015-01-06 2016-01-04 System and method for implementing internet of things (IoT) remote control applications

Country Status (3)

Country Link
KR (1) KR102524513B1 (en)
CN (1) CN107251530B (en)
WO (1) WO2016111916A1 (en)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10697811B2 (en) 2016-10-31 2020-06-30 Nokia Technologies Oy Method, apparatus and computer program product for providing sensor data collection and sensor configuration
KR101898589B1 (en) * 2017-01-02 2018-09-13 엘지전자 주식회사 Hub apparatus for network, Sub apparatus for motion and Comunication robot using the same
CN106899688A (en) * 2017-03-15 2017-06-27 中国联合网络通信集团有限公司 A kind of Internet of Things data exchange method, internet of things equipment and platform of internet of things
KR102339857B1 (en) * 2017-03-29 2021-12-16 삼성전자주식회사 Method for Managing and Controling the External IoT Device and the Electronic Device supporting the same
CN107938257A (en) * 2017-11-23 2018-04-20 广州市首试科技有限公司 A kind of washing machine with function of Bluetooth communication
US10587400B2 (en) * 2018-02-12 2020-03-10 Afero, Inc. System and method for securely configuring a new device with network credentials
JP7155605B2 (en) * 2018-05-22 2022-10-19 富士フイルムビジネスイノベーション株式会社 Information processing device and program
JP7106984B2 (en) * 2018-05-22 2022-07-27 富士フイルムビジネスイノベーション株式会社 Information processing device, information processing system and program
CN112313920B (en) * 2018-07-03 2023-09-08 亚萨合莱有限公司 Providing connectivity for multiple IOT devices
KR20200084294A (en) 2019-01-02 2020-07-10 (주)카네비컴 Operation server for searching code block using hot spot extraction and operation platform system including the same
CN109862104A (en) * 2019-02-27 2019-06-07 江西昊潮科技有限公司 A kind of Intelligent commercial clothes washing system and its application method based on NB-IoT
KR102389710B1 (en) * 2019-12-19 2022-04-22 주식회사 오성전자 Legacy home appliance control method using context awareness and system supporting it
KR102367186B1 (en) * 2020-01-17 2022-02-24 숭실대학교산학협력단 METHOD FOR CONTROLLING IoT APPARATUS USING WIRELESS REMOTE CONTROLLER OF LOW-POWER, IoT HUB and IoT SYSTEM
WO2021167141A1 (en) * 2020-02-21 2021-08-26 엘지전자 주식회사 Display device and method
CN114007198A (en) * 2020-07-13 2022-02-01 深圳市利维坦技术有限公司 System and method for context-aware self-configuring logistics hardware
KR102566016B1 (en) * 2020-08-21 2023-08-09 조윤호 Automatic device control system for lighting control and crime prevention
CN116456425A (en) * 2020-09-10 2023-07-18 华为技术有限公司 Network distribution method and equipment
CN112305962A (en) * 2020-10-21 2021-02-02 麒麟软件有限公司 Wireless device control method based on ARM platform supporting Trustzone
US11395239B2 (en) * 2020-12-11 2022-07-19 Nvidia Corporation Radio frequency power adaptation for handheld wireless devices
CN112905416B (en) * 2021-02-24 2023-08-15 河南永安电气消防检测有限公司 Fire-fighting facility detection method, device and medium based on Internet of things
WO2023055120A1 (en) * 2021-09-30 2023-04-06 Samsung Electronics Co., Ltd. Method and apparatus for controlling a remote device in an internet of things (iot) environment
KR102464535B1 (en) * 2021-11-11 2022-11-09 주식회사 디나텍 IoT Home Gateway with in-house broadcasting and voice analysis function and method using the same
FR3133963A1 (en) * 2022-03-23 2023-09-29 Orange methods relating to the use of control codes and the association of terminals, first terminal, second terminal and control code management device
KR20240042909A (en) * 2022-09-26 2024-04-02 삼성전자주식회사 Electronic device for controlling an external device and controlling method thereof
KR20240052386A (en) * 2022-10-14 2024-04-23 삼성전자주식회사 Electronic apparatus and controlling method thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009135312A1 (en) * 2008-05-08 2009-11-12 Unify4Life Corporation Remote control system and method
CN104063227A (en) * 2014-06-30 2014-09-24 合肥工业大学 Command learning method based on internet of things
CN203851157U (en) * 2014-05-30 2014-09-24 王诵捷 Interface device for access of traditional household electrical appliances to Internet
CN203910015U (en) * 2014-05-05 2014-10-29 邯郸美的制冷设备有限公司 Infrared sticker and infrared control system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6784805B2 (en) * 2000-03-15 2004-08-31 Intrigue Technologies Inc. State-based remote control system
US7162733B2 (en) * 2001-10-02 2007-01-09 General Instrument Corporation Method and apparatus for automatic set-up of electronic devices
US7129855B2 (en) * 2003-09-26 2006-10-31 Openpeak Inc. Device control system, method, and apparatus
US7136709B2 (en) * 2003-11-04 2006-11-14 Universal Electronics Inc. Home appliance control system and methods in a networked environment
US7579956B2 (en) * 2004-01-08 2009-08-25 Robertshaw Controls Company System and method for controlling ignition sources and ventilating systems during high carbon monoxide conditions
US20080250441A1 (en) * 2007-04-06 2008-10-09 Ajay Sharma Messaging for communications systems
FR2955997B1 (en) * 2010-02-02 2012-01-20 Pierre Thierry Dominique Gandolfo MODULAR, RECONFIGURABLE AND COGNITIVE MICROSYSTEM FOR MONITORING AND CONTROLLING REMOTE COMMUNICATING OBJECTS
US20140376919A1 (en) * 2011-03-24 2014-12-25 Robert P. Stratton Remote Control System and Method
KR101875620B1 (en) * 2012-04-10 2018-07-06 현대자동차 주식회사 Engine cooling system and electronic thermostat control system and method thereof
KR101377065B1 (en) * 2012-08-20 2014-03-24 (주)유타스 Home-automation system using mobile device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009135312A1 (en) * 2008-05-08 2009-11-12 Unify4Life Corporation Remote control system and method
CN203910015U (en) * 2014-05-05 2014-10-29 邯郸美的制冷设备有限公司 Infrared sticker and infrared control system
CN203851157U (en) * 2014-05-30 2014-09-24 王诵捷 Interface device for access of traditional household electrical appliances to Internet
CN104063227A (en) * 2014-06-30 2014-09-24 合肥工业大学 Command learning method based on internet of things

Also Published As

Publication number Publication date
KR102524513B1 (en) 2023-04-20
CN107251530A (en) 2017-10-13
WO2016111916A1 (en) 2016-07-14
KR20170102937A (en) 2017-09-12

Similar Documents

Publication Publication Date Title
CN107251530B (en) System and method for implementing internet of things (IoT) remote control applications
US9774497B2 (en) System and method for implementing internet of things (IOT) remote control applications
US9774507B2 (en) System and method for collecting and utilizing user behavior data within an IoT system
US10816944B2 (en) System and method for using data collected from internet-of-things (IoT) sensors to disable IoT-enabled home devices
US9729340B2 (en) System and method for notifying a user of conditions associated with an internet-of-things (IoT) hub
US9933768B2 (en) System and method for implementing internet of things (IOT) remote control applications
US9860681B2 (en) System and method for selecting a cell carrier to connect an IOT hub
CN107431876B (en) Apparatus and method for intermediary device data collection
US20160198536A1 (en) Internet-of-things (iot) hub apparatus and method
US10798523B2 (en) System and method for accurately sensing user location in an IoT system
US20160197769A1 (en) System and method for filtering events at an iot hub
US9704318B2 (en) System and method for accurately sensing user location in an IoT system
CN107431645B (en) System and method for automatic wireless network authentication
JP6926085B2 (en) Secure Things Internet of Things (IoT) Device Provisioning Systems and Methods
US20180048710A1 (en) Internet of things (iot) storage device, system and method
WO2018075427A1 (en) INTERNET OF THINGS (IoT) SYSTEM AND METHOD FOR SELECTING A SECONDARY COMMUNICATION CHANNEL
WO2016196554A1 (en) Internet of things (iot) automotive device, system, and method
US20160323156A1 (en) System and method for performing wireless spectrum analysis and configuring wireless networks using an internet of things (iot) system
US10004183B2 (en) System and method for an internet of things (IoT) moisture sensor
US20160349127A1 (en) System and method for using internet of things (iot) devices to capture and play back a massage
CN107430499B (en) System and method for accurately sensing user location in IoT system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant