KR20170102937A - System and method for implementing Internet (IoT) remote control applications - Google Patents

System and method for implementing Internet (IoT) remote control applications Download PDF

Info

Publication number
KR20170102937A
KR20170102937A KR1020177021721A KR20177021721A KR20170102937A KR 20170102937 A KR20170102937 A KR 20170102937A KR 1020177021721 A KR1020177021721 A KR 1020177021721A KR 20177021721 A KR20177021721 A KR 20177021721A KR 20170102937 A KR20170102937 A KR 20170102937A
Authority
KR
South Korea
Prior art keywords
iot
hub
user
iot hub
service
Prior art date
Application number
KR1020177021721A
Other languages
Korean (ko)
Other versions
KR102524513B1 (en
Inventor
조 브릿
저스틴 리
신 마츠무라
호우만 포루드
스코트 짐머만
필립 마일스
션 자윅키
다이수케 쿠타미
Original Assignee
어페로, 인크.
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,663 external-priority patent/US9774497B2/en
Priority claimed from US14/590,799 external-priority patent/US9774507B2/en
Priority claimed from US14/590,719 external-priority patent/US9729340B2/en
Priority claimed from US14/590,765 external-priority patent/US20160197769A1/en
Priority claimed from US14/590,708 external-priority patent/US9860681B2/en
Priority claimed from US14/590,649 external-priority patent/US20160198536A1/en
Priority claimed from US14/590,686 external-priority patent/US9933768B2/en
Priority claimed from US14/590,700 external-priority patent/US10816944B2/en
Application filed by 어페로, 인크. filed Critical 어페로, 인크.
Publication of KR20170102937A publication Critical patent/KR20170102937A/en
Application granted granted Critical
Publication of KR102524513B1 publication Critical patent/KR102524513B1/en

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
    • H04L67/2828
    • 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
    • H04W4/005
    • 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

사물 인터넷(IoT) 허브는 IoT 허브를 광역 네트워크(WAN)를 통해 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함하고, 적어도 하나의 IoT 디바이스가 무선 통신 채널을 통해 IoT 허브에 통신 가능하게 결합된다. IoT 디바이스는 지정된 전자 장비를 전자 장비와의 적외선(IR) 또는 라디오 주파수(RF) 통신을 통해 제어하는 IR 또는 RF 블라스터를 포함한다. IoT 디바이스는 전자 장비의 동작과 관련된 현재 조건들을 검출하는 적어도 하나의 센서를 포함하고, 현재 조건들은 무선 통신 채널을 통해 IoT 허브로 전송된다. IoT 허브는 전자 장비를 제어하는 데 사용 가능한 원격 제어 코드를 저장하는 원격 제어 코드 데이터베이스를 포함한다. IoT 허브는 현재 조건 및 사용자 디바이스를 통해 제공되는 최종 사용자로부터의 입력에 응답하여 원격 제어 코드를 사용하여 원격 제어 커맨드를 생성하는 제어 로직을 포함한다.The Internet (IoT) hub includes a network interface for coupling the IoT hub to the IoT service over a wide area network (WAN), and at least one IoT device is communicatively coupled to the IoT hub via a wireless communication channel. IoT devices include IR or RF blasters that control specified electronic equipment through infrared (IR) or radio frequency (RF) communications with electronic equipment. The IoT device includes at least one sensor for detecting current conditions associated with the operation of the electronic equipment, and the current conditions are transmitted to the IoT hub via the wireless communication channel. The IoT hub includes a remote control code database that stores remote control codes that can be used to control electronic equipment. The IoT hub includes control logic for generating remote control commands using remote control codes in response to current conditions and input from an end user provided via the user device.

Description

사물 인터넷(IoT) 원격 제어 애플리케이션을 구현하기 위한 시스템 및 방법System and method for implementing Internet (IoT) remote control applications

본 발명은 일반적으로 컴퓨터 시스템의 분야에 관한 것이다. 더 구체적으로, 본 발명은 IoT 원격 제어 애플리케이션을 구현하기 위한 시스템 및 방법에 관한 것이다.The present invention relates generally to the field of computer systems. More particularly, the present invention relates to a system and method for implementing an IoT remote control application.

"사물 인터넷"은 인터넷 기반구조 내의 고유하게 식별 가능한 임베딩된 디바이스들의 상호접속을 지칭한다. 궁극적으로, IoT는, 사실상 임의의 타입의 물리적인 물건이 그 자체 또는 그의 주변에 대한 정보를 제공할 수 있고 그리고/또는 인터넷을 통하여 클라이언트 디바이스를 통해 원격으로 제어될 수 있는 새로운 광범위한 타입의 애플리케이션을 생성할 것으로 예상된다."Object Internet" refers to the interconnection of uniquely identifiable embedded devices within the Internet infrastructure. Ultimately, IoT is a new broad type of application that can provide virtually any type of physical object itself or information about its surroundings and / or can be remotely controlled via a client device via the Internet It is expected to generate.

IoT 개발 및 채택은 접속성, 전력, 및 표준화의 결여에 관련된 이슈로 인해 느렸다. 예를 들어, IoT 개발 및 채택에 대한 하나의 장애물은 개발자가 새로운 IoT 디바이스 및 서비스를 설계 및 제공하도록 허용하기 위한 어떠한 표준 플랫폼도 존재하지 않는다는 것이다. IoT 시장에 진입하기 위해, 개발자는 원하는 IoT 구현을 지원하는 데 요구되는 네트워크 프로토콜 및 기반구조, 하드웨어, 소프트웨어 및 서비스를 포함하여 처음부터 끝까지 전체 IoT 플랫폼을 설계해야 한다. 결과적으로, IoT 디바이스의 각각의 제공자는 IoT 디바이스를 설계하고 접속하기 위한 독점적인 기법을 사용하여, 다수의 타입의 IoT 디바이스의 채택을 최종 사용자에게 부담이 되게 한다. IoT 채택에 대한 다른 장애물은 IoT 디바이스들을 접속하고 전력공급하는 것과 연관된 어려움이다. 예를 들어, 냉장고, 차고 도어 오프너, 환경 센서, 집 보안 센서/제어기 등과 같은 기기를 접속시키는 것은, 각각의 접속된 IoT 디바이스에 전력공급하기 위한 전기 소스를 요구하고, 그러한 전기 소스는 종종 편리하게 위치되어 있지 않다(예컨대, AC 아울렛(outlet)은 일반적으로 냉장고 내에서 발견되지 않음).IoT development and adoption was slow due to issues related to lack of connectivity, power, and standardization. For example, one obstacle to IoT development and adoption is that there is no standard platform for allowing developers to design and deliver new IoT devices and services. To enter the IoT market, developers must design the entire IoT platform from start to finish, including the network protocols and infrastructure, hardware, software and services required to support the desired IoT implementation. As a result, each provider of IoT devices uses proprietary techniques for designing and connecting IoT devices, making the adoption of multiple types of IoT devices burden the end user. Another hurdle to adopting IOT is the difficulty associated with connecting and powering IoT devices. For example, connecting a device such as a refrigerator, a garage door opener, an environmental sensor, a house security sensor / controller, etc. requires an electrical source to power each connected IoT device, (E.g., an AC outlet is not normally found in the refrigerator).

아래의 도면들과 관련된 아래의 상세한 설명으로부터 본 발명의 더 양호한 이해가 얻어질 수 있다.
도 1a 및 도 1b는 IoT 시스템 아키텍처의 상이한 실시예들을 예시한다.
도 2는 본 발명의 일 실시예에 따른 IoT 디바이스를 예시한다.
도 3은 본 발명의 일 실시예에 따른 IoT 허브를 예시한다.
도 4a 및 도 4b는 IoT 디바이스들로부터 데이터를 제어 및 수집하고 통지를 생성하기 위한 본 발명의 실시예들을 예시한다.
도 5는 IoT 디바이스들로부터 데이터를 수집하고 IoT 허브 및/또는 IoT 서비스로부터 통지를 생성하기 위한 본 발명의 실시예들을 예시한다.
도 6은 허브 접속성의 손실을 검출하고 사용자에게 통지하기 위한 본 발명의 실시예들을 예시한다.
도 7a 내지 도 7c는 LED 발광체(light) 및 USB 포트를 갖는 미니어처 IoT 허브 디바이스의 상이한 실시예들을 예시한다.
도 8은 IoT 디바이스로 전자 및 다른 장비를 제어하는 방법을 예시한다.
도 9는 상이한 셀 캐리어들 중에서 선택하는 IoT 허브의 일 실시예를 예시한다.
도 10은 상이한 셀 캐리어들 중에서 선택하는 방법의 일 실시예를 예시한다.
도 11은 IoT 디바이스들로부터 이벤트들을 필터링하는 IoT 허브의 일 실시예를 예시한다.
도 12는 IoT 시스템 내의 사용자 거동과 관련된 데이터를 수집하는 IoT 허브의 일 실시예를 예시한다.
도 13은 보안 아키텍처의 일 실시예의 고레벨 도면을 예시한다.
도 14는 IoT 디바이스 상에 키를 저장하기 위해 가입자 식별 모듈(SIM)이 사용되는 아키텍처의 일 실시예를 예시한다.
도 15a는 IoT 디바이스가 바코드 또는 QR 코드를 사용하여 등록되는 일 실시예를 예시한다.
도 15b는 바코드 또는 QR 코드를 사용하여 페어링이 수행되는 일 실시예를 예시한다.
도 16은 IoT 허브를 사용하여 SIM을 프로그래밍하는 방법의 일 실시예를 예시한다.
도 17은 IoT 디바이스를 IoT 허브 및 IoT 서비스에 등록하는 방법의 일 실시예를 예시한다.
도 18은 IoT 디바이스로 전송될 데이터를 암호화하는 방법의 일 실시예를 예시한다.
BRIEF DESCRIPTION OF THE DRAWINGS A better understanding of the present invention can be obtained from the following detailed description taken in conjunction with the following drawings.
Figures 1a and 1b illustrate different embodiments of the IoT system architecture.
2 illustrates an IoT device according to an embodiment of the present invention.
3 illustrates an IoT hub according to an embodiment of the present invention.
Figures 4A and 4B illustrate embodiments of the present invention for controlling and collecting data from IoT devices and generating notifications.
Figure 5 illustrates embodiments of the present invention for collecting data from IoT devices and generating notifications from an IoT hub and / or IoT service.
Figure 6 illustrates embodiments of the present invention for detecting loss of hub connectivity and notifying a user.
Figures 7A-7C illustrate different embodiments of a miniature IOT hub device having LED light and a USB port.
Figure 8 illustrates a method for controlling electronics and other equipment with an IoT device.
Figure 9 illustrates one embodiment of an IoT hub that selects among different cell carriers.
Figure 10 illustrates one embodiment of a method of selecting from different cell carriers.
Figure 11 illustrates one embodiment of an IoT hub for filtering events from IoT devices.
Figure 12 illustrates one embodiment of an IoT hub that collects data related to user behavior within the IoT system.
Figure 13 illustrates a high-level view of one embodiment of a security architecture.
Figure 14 illustrates one embodiment of an architecture in which a subscriber identity module (SIM) is used to store a key on an IoT device.
15A illustrates an embodiment in which the IoT device is registered using a bar code or QR code.
15B illustrates an embodiment in which pairing is performed using a bar code or QR code.
Figure 16 illustrates one embodiment of a method of programming a SIM using an IoT hub.
17 illustrates an embodiment of a method of registering an IoT device with an IoT hub and an IoT service.
18 illustrates an embodiment of a method of encrypting data to be transmitted to an IoT device.

아래의 설명에서, 설명의 목적으로, 아래에 설명되는 본 발명의 실시예의 완전한 이해를 제공하기 위해 다수의 특정 상세들이 기재된다. 그러나, 본 발명의 실시예는 이러한 특정 상세들 중 일부 없이도 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우에서, 잘 알려진 구조 및 디바이스는 본 발명의 실시예의 기본 원리를 불명확하게 하는 것을 피하기 위해 블록도 형태로 도시된다.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. However, it will be apparent to those skilled in the art that the embodiments of the present 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 an embodiment of the invention.

본 발명의 일 실시예는 새로운 IoT 디바이스 및 애플리케이션을 설계 및 구축하기 위해 개발자에 의해 이용될 수 있는 사물 인터넷(IoT) 플랫폼을 포함한다. 특히, 일 실시예는 IoT 디바이스들이 그것을 통해 인터넷에 결합되는 미리 정의된 네트워킹 프로토콜 스택 및 IoT 허브를 포함한 IoT 디바이스들을 위한 기반 하드웨어/소프트웨어 플랫폼을 포함한다. 부가적으로, 일 실시예는 IoT 허브들 및 접속된 IoT 디바이스들이 그것을 통해 아래에 설명되는 바와 같이 액세스 및 관리될 수 있는 IoT 서비스를 포함한다. 부가적으로, IoT 플랫폼의 일 실시예는 IoT 서비스, 허브 및 접속된 디바이스들에 액세스하고 그들을 구성하기 위한 (예를 들어, 클라이언트 디바이스 상에서 실행되는) IoT 앱 또는 웹 애플리케이션을 포함한다. 기존의 온라인 소매상 및 다른 웹사이트 운영자는 고유 IoT 기능을 기존의 사용자 기반에 쉽게 제공하기 위해 본 명세서에 설명된 IoT 플랫폼을 레버리징할 수 있다.One embodiment of the present invention includes a Internet of Things (IoT) platform that can be used by developers to design and build new IoT devices and applications. In particular, one embodiment includes a predefined networking protocol stack through which IoT devices are coupled to the Internet and a base hardware / software platform for IoT devices including IoT hubs. Additionally, one embodiment includes an IoT service in which IoT hubs and connected IoT devices can be accessed and managed as described below through it. Additionally, one embodiment of the IoT platform includes an IoT service or a web application for accessing and configuring IoT services, hubs, and connected devices (e.g., running on a client device). Existing online retailers and other web site operators can leverage the IoT platform described herein to easily provide native IoT functionality to an existing user base.

도 1a는 본 발명의 실시예가 구현될 수 있는 아키텍처 플랫폼의 개요를 예시한다. 특히, 예시된 실시예는 그 자체가 인터넷(220)을 통해 IoT 서비스(120)에 통신 가능하게 결합된 중앙 IoT 허브(110)에 로컬 통신 채널(130)을 통해 통신 가능하게 결합된 복수의 IoT 디바이스(101 내지 105)를 포함한다. IoT 디바이스(101 내지 105) 각각은 로컬 통신 채널들(130) 각각을 인에이블하기 위해 (예를 들어, 아래에 설명되는 페어링 기법을 사용하여) IoT 허브(110)에 초기에 페어링될 수 있다. 일 실시예에서, IoT 서비스(120)는 각각의 사용자의 IoT 디바이스로부터 수집된 사용자 계정 정보 및 데이터를 유지하기 위한 최종 사용자 데이터베이스(122)를 포함한다. 예를 들어, IoT 디바이스가 센서(예를 들어, 온도 센서, 가속도계, 열 센서, 모션 검출기 등)를 포함하면, 데이터베이스(122)는 IoT 디바이스(101 내지 105)에 의해 수집된 데이터를 저장하도록 계속 업데이트될 수 있다. 이어서, 데이터베이스(122)에 저장된 데이터는 사용자의 디바이스(135) 상에 설치된 IoT 앱 또는 브라우저를 통해(또는 데스크톱 또는 다른 클라이언트 컴퓨터 시스템을 통해) 최종 사용자에 의해 그리고 (예를 들어, IoT 서비스(120)에 가입한 웹사이트(130)와 같은) 웹 클라이언트에 의해 액세스 가능하게 될 수 있다.Figure 1A illustrates an overview of an architectural platform in which embodiments of the present invention may be implemented. In particular, the illustrated embodiment includes a plurality of IoTs 120 communicatively coupled to a central IoT hub 110 communicatively coupled to the IoT service 120 via the local communication channel 130, Devices 101-105. Each of the IoT devices 101-105 may be initially paired to the IoT hub 110 to enable each of the local communication channels 130 (e.g., using the pairing scheme described below). In one embodiment, IoT service 120 includes an end user database 122 for maintaining user account information and data collected from each user's IoT device. For example, if the IoT device includes sensors (e.g., temperature sensors, accelerometers, thermal sensors, motion detectors, etc.), the database 122 continues to store the data collected by the IoT devices 101-105 Can be updated. The data stored in the database 122 may then be accessed by the end user (e.g., via the IOT service 120 (e.g., via a desktop or other client computer system) via an IoT app or browser installed on the user's device 135 (E. G., A web site 130 subscribed to a web site).

IoT 디바이스(101 내지 105)에는 그들 및 그들의 주변에 대한 정보를 수집하고 수집된 정보를 IoT 허브(110)를 통해 IoT 서비스(120), 사용자 디바이스(135) 및/또는 외부 웹사이트(130)에 제공하기 위한 다양한 타입들의 센서가 탑재될 수 있다. IoT 디바이스(101 내지 105) 중 일부는 IoT 허브(110)를 통해 전송된 제어 커맨드에 응답하여 지정된 기능을 수행할 수 있다. IoT 디바이스(101 내지 105)에 의해 수집된 정보 및 제어 커맨드의 다양한 특정 예가 아래에서 제공된다. 아래에 설명된 일 실시예에서, IoT 디바이스(101)는, 사용자 선택을 기록하고 사용자 선택을 IoT 서비스(120) 및/또는 웹사이트에 전송하도록 설계된 사용자 입력 디바이스이다.The IoT devices 101 to 105 collect information about themselves and their surroundings and send the collected information to the IoT service 120, the user device 135 and / or the external website 130 via the IoT hub 110 Various types of sensors may be provided for providing. Some of the IoT devices 101-105 may perform designated functions in response to control commands transmitted via the IoT hub 110. [ Various specific examples of information and control commands collected by IoT devices 101-105 are provided below. In one embodiment described below, IoT device 101 is a user input device designed to record user selections and to send user selections to IoT service 120 and / or a website.

일 실시예에서, IoT 허브(110)는 4G(예를 들어, 모바일 WiMAX, LTE) 또는 5G 셀룰러 데이터 서비스와 같은 셀룰러 서비스(115)를 통해 인터넷(220)에 대한 접속을 설정하기 위한 셀룰러 라디오를 포함한다. 대안적으로 또는 부가적으로, IoT 허브(110)는 (예를 들어, 인터넷 서비스를 최종 사용자에게 제공하는 인터넷 서비스 제공자를 통해) IoT 허브(110)를 인터넷에 결합시키는 WiFi 액세스 포인트 또는 라우터(116)를 통해 WiFi 접속을 설정하기 위한 WiFi 라디오를 포함할 수 있다. 물론, 본 발명의 기본 원리는 임의의 특정 타입의 통신 채널 또는 프로토콜로 제한되지 않는다는 것에 유의하여야 한다.In one embodiment, the IoT hub 110 may include a cellular radio for establishing a connection to the Internet 220 via a cellular service 115, such as 4G (e.g., Mobile WiMAX, LTE) or 5G cellular data service . Alternatively or additionally, the IoT hub 110 may be coupled to a WiFi access point or router 116 (e.g., via an Internet service provider that provides Internet service to end users) that couples the IoT hub 110 to the Internet Gt; WiFi < / RTI > Of course, it should be noted that the underlying principles of the present invention are not limited to any particular type of communication channel or protocol.

일 실시예에서, IoT 디바이스(101 내지 105)는 배터리 전력으로 장기간(예를 들어, 수년) 동안 동작할 수 있는 초 저전력 디바이스이다. 전력을 보전하기 위해, 로컬 통신 채널(130)은 블루투스 저에너지(LE)와 같은 저전력 무선 통신 기술을 사용하여 구현될 수 있다. 이러한 실시예에서, IoT 디바이스(101 내지 105) 각각 및 IoT 허브(110)에는 블루투스 LE 라디오 및 프로토콜 스택이 탑재된다.In one embodiment, IoT devices 101-105 are ultra low power devices that can operate for extended periods of time (e. G., Several years) with battery power. 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 the IoT devices 101 to 105 and the IOT hub 110 is equipped with a Bluetooth LE radio and a protocol stack.

언급된 바와 같이, 일 실시예에서, IoT 플랫폼은 사용자가 접속된 IoT 디바이스(101 내지 105), IoT 허브(110), 및/또는 IoT 서비스(120)에 액세스하고 그들을 구성하도록 허용하기 위해 사용자 디바이스(135) 상에서 실행되는 IoT 앱 또는 웹 애플리케이션을 포함한다. 일 실시예에서, 앱 또는 웹 애플리케이션은 IoT 기능을 그의 사용자 기반에 제공하도록 웹사이트(130)의 운영자에 의해 설계될 수 있다. 예시된 바와 같이, 웹사이트는 각각의 사용자에 관련된 계정 기록을 포함하는 사용자 데이터베이스(131)를 유지할 수 있다.As mentioned, in one embodiment, the IoT platform is configured to allow the user to access and configure the IoT devices 101-105, the IoT hub 110, and / or the IoT service 120, Lt; RTI ID = 0.0 > 135 < / RTI > In one embodiment, the app or web application may be designed by an operator of the website 130 to provide IoT functionality to its user base. As illustrated, the web site may maintain a user database 131 containing account records associated with each user.

도 1b는 복수의 IoT 허브(110, 111, 190)에 대한 추가의 접속 옵션들 예시한다. 이러한 실시예에서, 단일 사용자는 단일 사용자 구내(premises)(180)(예를 들어, 사용자의 집 또는 사업체)에 현장 설치된 다수의 허브(110, 111)를 가질 수 있다. 이것은 예를 들어 IoT 디바이스(101 내지 105) 모두를 접속시키기 위해 필요한 무선 범위를 확장시키기 위해 행해질 수 있다. 표시된 바와 같이, 사용자가 다수의 허브(110, 111)를 갖는 경우, 그것들은 로컬 통신 채널(예를 들어, Wifi, 이더넷, 전력 라인 네트워킹 등)을 통해 접속될 수 있다. 일 실시예에서, 허브(110, 111) 각각은 (도 1b에 명시적으로 도시되지 않은) 셀룰러(115) 또는 WiFi(116) 접속을 통해 IoT 서비스(120)에 대한 직접 접속을 설정할 수 있다. 대안적으로 또는 부가적으로, IoT 허브(110)와 같은 IoT 허브들 중 하나는 (IoT 허브(110)와 IoT 허브(111)를 연결하는 점선에 의해 표시된 바와 같이) IoT 허브(111)와 같은, 사용자 구내(180) 상의 다른 IoT 허브들 모두에 접속 및/또는 로컬 서비스를 제공하는 "마스터" 허브로서 동작할 수 있다. 예를 들어, 마스터 IoT 허브(110)는 IoT 서비스(120)에 대한 직접 접속을 설정하기 위한 유일한 IoT 허브일 수 있다. 일 실시예에서, "마스터" IoT 허브(110)에만 IoT 서비스(120)에 대한 접속을 설정하기 위한 셀룰러 통신 인터페이스가 탑재된다. 그렇기 때문에, IoT 서비스(120)와 다른 IoT 허브(111) 사이의 모든 통신은 마스터 IoT 허브(110)를 통해 흐를 것이다. 이러한 역할에서, 마스터 IoT 허브(110)는 다른 IoT 허브(111)와 (예를 들어, 가능한 경우 로컬식으로 일부 데이터 요청들을 서비스하는) IoT 서비스(120) 사이에서 교환되는 데이터에 대해 필터링 동작을 수행하기 위한 부가적인 프로그램 코드를 제공받을 수 있다.Figure IB illustrates additional connection options for a plurality of IoT hubs (110, 111, 190). In this embodiment, a single user may have multiple hubs 110, 111 installed on-site in a single user premises 180 (e.g., a user's home or business). This can be done, for example, to extend the radio range needed to connect all of the IoT devices 101-105. As indicated, when a user has multiple hubs 110 and 111, they may be connected via a local communication channel (e.g., Wifi, Ethernet, power line networking, etc.). In one embodiment, each of the hubs 110 and 111 may establish a direct connection to the IoT service 120 via a cellular 115 or WiFi 116 connection (not explicitly shown in FIG. 1B). Alternatively, or additionally, one of the IoT hubs, such as the IoT hub 110, may be coupled to the IoT hub 111 (as indicated by the dashed line connecting the IoT hub 110 and the IoT hub 111) Master hub " that provides connectivity and / or local services to all of the other < RTI ID = 0.0 > IoT hubs on user premises 180. < / RTI > For example, the master IoT hub 110 may be the only IoT hub for establishing a direct connection to the IoT service 120. In one embodiment, only a "master" IoT hub 110 is equipped with a cellular communication interface for establishing a connection to the IoT service 120. Therefore, all communication between the IoT service 120 and the other IoT hub 111 will flow through the master IoT hub 110. In this role, the master IoT hub 110 performs a filtering operation on data exchanged between the other IoT hub 111 and the IoT service 120 (e.g., where possible, servicing some data requests locally) Additional program codes may be provided for execution.

IoT 허브(110, 111)가 어떻게 접속되는지에 관계없이, 일 실시예에서, IoT 서비스(120)는 앱이 설치된 사용자 디바이스(135)를 통해 액세스 가능한 단일의 포괄적인 사용자 인터페이스 (및/또는 브라우저-기반 인터페이스)하에서 허브를 사용자와 논리적으로 연관시키고 부착된 IoT 디바이스(101 내지 105) 모두를 결합시킬 것이다.Regardless of how the IoT hub 110, 111 is connected, the IoT service 120, in one embodiment, is a single, comprehensive user interface (and / or browser- Based interface), the hub will logically associate with the user and combine both attached IoT devices 101-105.

이러한 실시예에서, 마스터 IoT 허브(110) 및 하나 이상의 슬레이브 IoT 허브(111)는 WiFi 네트워크(116), 이더넷 네트워크, 및/또는 사용 전력-라인 통신(PLC) 네트워킹일 수 있는 로컬 네트워크를 통해 접속될 수 있다(예를 들어, 여기서 네트워크의 전부 또는 일부가 사용자의 전력 라인을 통해 구동됨). 부가적으로, IoT 허브(110, 111)에 대해, IoT 디바이스(101 내지 105) 각각은, 몇몇 예를 들자면, WiFi, 이더넷, PLC 또는 블루투스 LE와 같은 임의의 타입의 로컬 네트워크 채널을 사용하여 IoT 허브(110, 111)와 상호접속될 수 있다.In this embodiment, the master IoT hub 110 and the one or more slave IoT hubs 111 are connected via a local network, which may be a WiFi network 116, an Ethernet network, and / or a power-line communications (PLC) (E. G., Where all or part of the network is driven through the user ' s power line). Additionally, for the IoT hubs 110 and 111, each of the IoT devices 101-105 may communicate with the IoT devices 101-105 using any type of local network channel, such as WiFi, Ethernet, PLC or Bluetooth LE, And may be interconnected with the hubs 110 and 111.

도 1b는 또한 제 2 사용자 구내(181)에 설치된 IoT 허브(190)를 도시한다. 사실상 제한되지 않는 수의 그러한 IoT 허브(190)가 전세계의 사용자 구내에서 IoT 디바이스(191, 192)로부터 데이터를 수집하도록 설치 및 구성될 수 있다. 일 실시예에서, 2개의 사용자 구내(180, 181)가 동일한 사용자에 대해 구성될 수 있다. 예를 들어, 하나의 사용자 구내(180)는 사용자의 주된 집일 수 있고, 다른 사용자 구내(181)는 사용자의 별장일 수 있다. 그러한 경우에, IoT 서비스(120)는 앱이 설치된 사용자 디바이스(135)를 통해 액세스 가능한 단일의 포괄적인 사용자 인터페이스 (및/또는 브라우저-기반 인터페이스)하에서 IoT 허브(110, 111, 190)를 사용자와 논리적으로 연관시키고 부착된 IoT 디바이스(101 내지 105, 191, 192) 모두를 결합시킬 것이다.Figure lb also shows the IoT hub 190 installed in the second user premises 181. [ An essentially unlimited number of such IoT hubs 190 may be installed and configured to collect data from IoT devices 191, 192 in user premises worldwide. In one embodiment, two user premises 180, 181 may be configured for the same user. For example, one user premises 180 may be the user's primary home, while the other user premises 181 may be the user's home. In such a case, the IoT service 120 may provide the IoT hub 110 (110, 111, 190) with a single user interface (and / or browser-based interface) Will logically associate and combine all of the attached IoT devices (101-105, 191, 192).

도 2에 예시된 바와 같이, IoT 디바이스(101)의 예시적인 실시예는 프로그램 코드 및 데이터(201 내지 203)를 저장하기 위한 메모리(210) 및 프로그램 코드를 실행하고 데이터를 처리하기 위한 저전력 마이크로제어기(200)를 포함한다. 메모리(210)는 동적 랜덤 액세스 메모리(DRAM)와 같은 휘발성 메모리일 수 있거나, 플래시 메모리와 같은 비-휘발성 메모리일 수 있다. 일 실시예에서, 비-휘발성 메모리는 영속적인 저장을 위해 사용될 수 있고, 휘발성 메모리는 런타임 시에 프로그램 코드 및 데이터의 실행을 위해 사용될 수 있다. 또한, 메모리(210)는 저전력 마이크로제어기(200) 내에 통합될 수 있거나, 버스 또는 통신 패브릭(fabric)을 통해 저전력 마이크로제어기(200)에 결합될 수 있다. 본 발명의 기본 원리는 메모리(210)의 임의의 특정 구현으로 제한되지 않는다.2, an exemplary embodiment of IoT device 101 includes a memory 210 for storing program code and data 201-203, and a low power microcontroller < RTI ID = 0.0 > (200). 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. The memory 210 may also be integrated into the low power microcontroller 200 or coupled to the low power microcontroller 200 via a bus or a communication fabric. The underlying principles of the present invention are not limited to any particular implementation of memory 210.

예시된 바와 같이, 프로그램 코드는 IoT 디바이스(201)에 의해 수행될 기능들의 애플리케이션-특정 세트를 정의하는 애플리케이션 프로그램 코드(203), 및 IoT 디바이스(101)의 애플리케이션 개발자에 의해 이용될 수 있는 미리 정의된 빌딩 블록(building block)들의 세트를 포함하는 라이브러리 코드(202)를 포함할 수 있다. 일 실시예에서, 라이브러리 코드(202)는 각각의 IoT 디바이스(101)와 IoT 허브(110) 사이의 통신을 인에이블하기 위한 통신 프로토콜 스택(201)과 같은, IoT 디바이스를 구현하는 데 요구되는 기본 기능들의 세트를 포함한다. 언급된 바와 같이, 일 실시예에서, 통신 프로토콜 스택(201)은 블루투스 LE 프로토콜 스택을 포함한다. 이러한 실시예에서, 블루투스 LE 라디오 및 안테나(207)는 저전력 마이크로제어기(200) 내에 통합될 수 있다. 그러나, 본 발명의 기본 원리는 임의의 특정 통신 프로토콜로 제한되지 않는다.As illustrated, the program code includes application program code 203 that defines an application-specific set of functions to be performed by IoT device 201, and a predefined definition that can be used by the application developer of IoT device 101 And a library code 202 comprising a set of building blocks. In one embodiment, the library code 202 is stored in a storage medium such as a storage medium, such as a communication protocol stack 201 for enabling communication between each IoT device 101 and the IoT hub 110, And a set of functions. As noted, in one embodiment, the communication protocol stack 201 includes a Bluetooth LE protocol stack. In this embodiment, the Bluetooth LE radio and antenna 207 may be integrated into the low power microcontroller 200. However, the underlying principles of the present invention are not limited to any particular communication protocol.

도 2에 도시된 특정 실시예는 또한 사용자 입력을 수신하고 사용자 입력을 저전력 마이크로제어기에 제공하기 위한 복수의 입력 디바이스 또는 센서(210)를 포함하며, 저전력 마이크로제어기는 애플리케이션 코드(203) 및 라이브러리 코드(202)에 따라 사용자 입력을 처리한다. 일 실시예에서, 입력 디바이스들 각각은 최종 사용자에게 피드백을 제공하기 위한 LED(209)를 포함한다.2 also includes a plurality of input devices or sensors 210 for receiving user inputs and providing user inputs to a low power microcontroller, which low power microcontroller includes application code 203 and library code Lt; RTI ID = 0.0 > 202 < / RTI > In one embodiment, each of the input devices includes an LED 209 for providing feedback to the end user.

부가적으로, 예시된 실시예는 저전력 마이크로제어기에 전력을 공급하기 위한 배터리(208)를 포함한다. 일 실시예에서, 비-충전 가능 코인 셀 배터리가 사용된다. 그러나, 대안적인 실시예에서, 통합된 재충전 가능 배터리가 사용될 수 있다(예를 들어, IoT 디바이스를 AC 전력 공급부(도시되지 않음)에 접속시킴으로써 충전 가능함).Additionally, the illustrated embodiment includes a battery 208 for powering the low power microcontroller. In one embodiment, a non-rechargeable coin cell battery is used. However, in an alternative embodiment, an integrated rechargeable battery may be used (e.g., by charging the IoT device to an AC power supply (not shown)).

오디오를 생성하기 위한 스피커(205)가 또한 제공된다. 일 실시예에서, 저전력 마이크로제어기(299)는 스피커(205)에서 오디오를 생성하기 위해 (예를 들어, MPEG-4/어드밴스드 오디오 코딩(AAC) 스트림과 같은) 압축된 오디오 스트림을 디코딩하기 위한 오디오 디코딩 로직을 포함한다. 대안적으로, 저전력 마이크로제어기(200) 및/또는 애플리케이션 코드/데이터(203)는 사용자가 입력 디바이스(210)를 통해 선택을 입력할 때 언어 피드백을 최종 사용자에게 제공하기 위한 오디오의 디지털 샘플링된 단편(snippet)을 포함할 수 있다.A speaker 205 for generating audio is also provided. In one embodiment, the low power microcontroller 299 includes audio for decoding a compressed audio stream (e.g., an MPEG-4 / Advanced Audio Coding (AAC) stream) Decoding logic. Alternatively, the low power microcontroller 200 and / or the application code / data 203 may comprise a digital sampled piece of audio to provide language feedback to the end user as the user enters a selection through the input device 210 a snippet may be included.

일 실시예에서, 하나 이상의 다른/대안적인 I/O 디바이스 또는 센서(250)가, IoT 디바이스(101)가 그것을 위해 설계되는 특정 애플리케이션에 기초하여 IoT 디바이스(101) 상에 포함될 수 있다. 예를 들어, 온도, 압력, 습도 등을 측정하기 위해 환경 센서가 포함될 수 있다. IoT 디바이스가 보안 디바이스로서 사용되는 경우 보안 센서 및/또는 도어록 오프너가 포함될 수 있다. 물론, 이들 예는 단지 예시의 목적으로 제공된다. 본 발명의 기본 원리는 IoT 디바이스의 임의의 특정 타입으로 제한되지 않는다. 사실, 라이브러리 코드(202)가 탑재된 저전력 마이크로제어기(200)의 고도로 프로그래밍 가능한 속성을 고려해 볼 때, 애플리케이션 개발자는 사실상 임의의 타입의 IoT 애플리케이션을 위한 저전력 마이크로제어기와 인터페이싱하기 위해 새로운 애플리케이션 코드(203) 및 새로운 I/O 디바이스(250)를 쉽게 개발할 수 있다.In one embodiment, one or more other / alternative I / O devices or sensors 250 may be included on the IoT device 101 based on the particular application for which the IoT device 101 is designed for. For example, an environmental sensor may be included to measure temperature, pressure, humidity, and the like. A security sensor and / or a door lock opener may be included when the IoT device is used as a secure device. Of course, these examples are provided for illustrative purposes only. The underlying principles of the present invention are not limited to any particular type of IoT device. In fact, in view of the highly programmable nature of the low power microcontroller 200 with the library code 202 installed, the application developer can use the new application code 203 to interface with a low power microcontroller for virtually any type of IoT application ) And a new I / O device 250 can be easily developed.

일 실시예에서, 저전력 마이크로제어기(200)는 또한 통신을 암호화하고/하거나 서명을 생성하기 위한 암호화 키를 저장하기 위한 보안 키 저장소를 포함한다. 대안적으로, 키는 가입자 식별 모듈(SIM)에서 보안될 수 있다.In one embodiment, the low power microcontroller 200 also includes a security key store for storing encryption keys for encrypting communications and / or generating signatures. Alternatively, the key may be secured in the subscriber identity module (SIM).

일 실시예에서, IoT 디바이스가 사실상 어떠한 전력도 소비하고 있지 않은 초 저전력 상태로부터 그 IoT 디바이스를 웨이크하기 위해 웨이크업 수신기(207)가 포함된다. 일 실시예에서, 웨이크업 수신기(207)는 도 3에 도시된 바와 같이 IoT 허브(110) 상에 구성된 웨이크업 송신기(307)로부터 수신된 웨이크업 신호에 응답하여 IoT 디바이스(101)로 하여금 이러한 저전력 상태를 빠져나가게 하도록 구성된다. 특히, 일 실시예에서, 송신기(307) 및 수신기(207)는 테슬라 코일과 같은 전기 공진 변압기 회로를 함께 형성한다. 동작 시에, 허브(110)가 매우 낮은 전력 상태로부터 IoT 디바이스(101)를 웨이크할 필요가 있을 때 에너지가 라디오 주파수 신호를 통해 송신기(307)로부터 수신기(207)로 송신된다. 에너지 전달 때문에, IoT 디바이스(101)는 그것이 그것의 저전력 상태에 있을 때 사실상 어떠한 전력도 소비하지 않도록 구성될 수 있는데, 왜냐하면 (디바이스가 네트워크 신호를 통해 어웨이크되도록 허용하는 네트워크 프로토콜에서 그러한 바와 같이) 그것이 허브로부터의 신호를 계속 "청취"할 필요가 없기 때문이다. 오히려, IoT 디바이스(101)의 마이크로제어기(200)는 송신기(307)로부터 수신기(207)로 전기적으로 송신된 에너지를 사용함으로써 사실상 전력 차단된 후에 웨이크 업하도록 구성될 수 있다.In one embodiment, a wake-up receiver 207 is included to wake up the IoT device from an ultra-low power state where the IoT device is not actually consuming any power. In one embodiment, the wake-up receiver 207 responds to the wake-up signal received from the wake-up transmitter 307 configured on the IoT hub 110, as shown in Fig. 3, And is configured to exit the low power state. In particular, in one embodiment, the transmitter 307 and the receiver 207 together form an electrically resonant transformer circuit such as a Tesla coil. In operation, energy is transmitted from the transmitter 307 to the receiver 207 via a radio frequency signal when the hub 110 needs to wake the IoT device 101 from a very low power state. Because of the energy transfer, the IoT device 101 can be configured to not actually consume any power when it is in its low power state, since (such as in a network protocol that allows the device to be awake through a network signal) Because it does not have to "hear" the signal from the hub. Rather, the microcontroller 200 of the IoT device 101 may be configured to wake up after virtually power-off by using energy electrically transmitted from the transmitter 307 to the receiver 207. [

도 3에 예시된 바와 같이, IoT 허브(110)는 또한 프로그램 코드 및 데이터(305)를 저장하기 위한 메모리(317), 및 프로그램 코드를 실행하고 데이터를 처리하기 위한 마이크로제어기와 같은 하드웨어 로직(301)을 포함한다. 광역 네트워크(WAN) 인터페이스(302) 및 안테나(310)가 IoT 허브(110)를 셀룰러 서비스(115)에 결합시킨다. 대안적으로, 위에서 언급된 바와 같이, IoT 허브(110)는 또한 근거리 네트워크 통신 채널을 설정하기 위한 WiFi 인터페이스(및 WiFi 안테나) 또는 이더넷 인터페이스와 같은 로컬 네트워크 인터페이스(도시되지 않음)를 포함할 수 있다. 일 실시예에서, 하드웨어 로직(301)은 또한 통신을 암호화하고 서명을 생성/검증하기 위한 암호화 키를 저장하기 위한 보안 키 저장소를 포함한다. 대안적으로, 키는 가입자 식별 모듈(SIM)에서 보안될 수 있다.3, the IoT hub 110 also includes a memory 317 for storing the program code and data 305, and hardware logic 301 (such as a microcontroller for executing the program code and processing data) ). A wide area network (WAN) interface 302 and an antenna 310 couple the IoT hub 110 to the cellular service 115. Alternatively, as noted above, IoT hub 110 may also include a local network interface (not shown), such as a WiFi interface (and a WiFi antenna) or an Ethernet interface, for establishing a local area network communication channel . In one embodiment, hardware logic 301 also includes a secure key store for storing encryption keys for encrypting communications and generating / verifying signatures. Alternatively, the key may be secured in the subscriber identity module (SIM).

로컬 통신 인터페이스(303) 및 안테나(311)가 IoT 디바이스(101 내지 105) 각각과 로컬 통신 채널을 설정한다. 위에서 언급된 바와 같이, 일 실시예에서, 로컬 통신 인터페이스(303)/안테나(311)는 블루투스 LE 표준을 구현한다. 그러나, 본 발명의 기본 원리는 IoT 디바이스(101 내지 105)와 로컬 통신 채널을 설정하기 위한 임의의 특정 프로토콜로 제한되지 않는다. 도 3에서 별개의 유닛으로서 예시되지만, WAN 인터페이스(302) 및/또는 로컬 통신 인터페이스(303)는 하드웨어 로직(301)과 동일한 칩 내에 임베딩될 수 있다.The local communication interface 303 and the antenna 311 establish a local communication channel with each of the IoT devices 101 to 105. As mentioned above, in one embodiment, the local communication interface 303 / antenna 311 implements the Bluetooth LE standard. However, the basic principles of the present invention are not limited to any particular protocol for establishing a local communication channel with IoT devices 101-105. 3, the WAN interface 302 and / or the local communication interface 303 may be embedded within the same chip as the hardware logic 301. [

일 실시예에서, 프로그램 코드 및 데이터는 로컬 통신 인터페이스(303) 및 WAN 인터페이스(302)를 통해 통신하기 위한 별개의 스택을 포함할 수 있는 통신 프로토콜 스택(308)을 포함한다. 부가적으로, IoT 허브가 새로운 IoT 디바이스와 페어링하도록 허용하기 위해 디바이스 페어링 프로그램 코드 및 데이터(306)가 메모리에 저장될 수 있다. 일 실시예에서, 각각의 새로운 IoT 디바이스(101 내지 105)는 페어링 프로세스 동안 IoT 허브(110)에 통신되는 고유 코드를 할당받는다. 예를 들어, 고유 코드는 IoT 디바이스 상의 바코드에 임베딩될 수 있으며, 바코드 판독기(106)에 의해 판독될 수 있거나 로컬 통신 채널(130)을 통해 통신될 수 있다. 대안적인 실시예에서, 고유 ID 코드는 예를 들어 라디오 주파수 ID(RFID) 또는 근거리장 통신(NFC)을 통해 IoT 디바이스로부터 전송될 수 있으며, IoT 허브는 IoT 디바이스(101)가 IoT 허브(110)의 수 인치 안에서 이동될 때 코드를 검출하기 위한 적합한 수신기를 갖는다.In one embodiment, the program code and data includes a communication protocol stack 308 that may include a separate stack for communicating via the local communication interface 303 and the WAN interface 302. [ Additionally, the 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-105 is assigned a unique code communicated to the IoT hub 110 during the pairing process. For example, the unique code may be embedded in a bar code on the IoT device, read by the bar code reader 106, or communicated over the local communication channel 130. [ In an alternative embodiment, the unique ID code may be transmitted from the IoT device via radio frequency identification (RFID) or near field communication (NFC), for example, and the IoT hub may be configured such that the IoT device 101 communicates with the IoT hub 110, Lt; RTI ID = 0.0 > inches. ≪ / RTI >

일 실시예에서, 일단 고유 ID가 통신되면, IoT 허브(110)는 로컬 데이터베이스(도시되지 않음)에 질의하고/하거나, 코드가 수용 가능한지를 검증하기 위해 해시(hash)를 수행하고/하거나, ID 코드를 확인하기 위해 IoT 서비스(120), 사용자 디바이스(135) 및/또는 웹사이트(130)와 통신함으로써 고유 ID를 검증할 수 있다. 일단 확인되면, 일 실시예에서, IoT 허브(110)는 IoT 디바이스(101)를 페어링하고, (언급된 바와 같이, 비-휘발성 메모리를 포함할 수 있는) 메모리(317)에 페어링 데이터를 저장한다. 일단 페어링이 완료되면, IoT 허브(110)는 본 명세서에 설명된 다양한 IoT 기능을 수행하기 위해 IoT 디바이스(101)와 접속할 수 있다.In one embodiment, once the unique ID is communicated, the IoT hub 110 queries the local database (not shown) and / or performs a hash to verify that the code is acceptable and / The unique ID can be verified by communicating with the IoT service 120, the user device 135 and / or the website 130 to verify the code. Once identified, in one embodiment, IoT hub 110 pairs the IoT device 101 and stores the pairing data in memory 317 (which may include non-volatile memory, as noted) . Once the pairing is complete, the IoT hub 110 may contact the IoT device 101 to perform the various IoT functions described herein.

일 실시예에서, IoT 서비스(120)를 구동하는 조직은 개발자가 새로운 IoT 서비스를 용이하게 설계하도록 허용하기 위해 IoT 허브(110) 및 기본적인 하드웨어/소프트웨어 플랫폼을 제공할 수 있다. 특히, IoT 허브(110)에 더하여, 개발자는 허브(110) 내에서 실행되는 프로그램 코드 및 데이터(305)를 업데이트하기 위한 소프트웨어 개발 키트(SDK)를 제공받을 수 있다. 부가적으로, IoT 디바이스(101)에 대해, SDK는 다양한 상이한 타입의 애플리케이션(101)의 설계를 용이하게 하기 위하여 기반 IoT 하드웨어(예를 들어, 도 2에 도시된 저전력 마이크로제어기(200) 및 다른 컴포넌트)에 대해 설계된 광범위한 세트의 라이브러리 코드(202)를 포함할 수 있다. 일 실시예에서, SDK는 개발자가 단지 IoT 디바이스에 대한 입력 및 출력만을 지정할 필요가 있는 그래픽 설계 인터페이스를 포함한다. IoT 디바이스(101)가 허브(110) 및 서비스(120)에 접속하도록 허용하는 통신 스택(201)을 포함한 모든 네트워킹 코드가 이미 개발자를 위해 제 위치에 있다. 부가적으로, 일 실시예에서, SDK는 또한 모바일 디바이스(예를 들어, 아이폰 및 안드로이드 디바이스)를 위한 앱의 설계를 용이하게 하기 위한 라이브러리 코드 기반을 포함한다. 또한, 일 실시예에서, SDK는 또한 IoT 서비스(120) 또는 웹사이트(130) 내에 존재하는 애플리케이션 및 API의 설계를 용이하게 하기 위한 라이브러리 코드 베이스를 포함한다.In one embodiment, the organization that drives the IoT service 120 may provide an IoT hub 110 and a basic hardware / software platform to allow the developer to easily design a new IoT service. In particular, in addition to the IoT hub 110, a developer may be provided with a software development kit (SDK) for updating the program code and data 305 executed in the hub 110. Additionally, for the IoT device 101, the SDK may be configured to support the base IoT hardware (e. G., The low power microcontroller 200 shown in FIG. 2 and another Component) designed for a particular application. In one embodiment, the SDK includes a graphical design interface in which the developer only needs to specify input and output to the IoT device. All of the networking code, including the communication stack 201, which allows the IoT device 101 to connect to the hub 110 and the service 120 is already in place for the developer. Additionally, in one embodiment, the SDK also includes a library code base for facilitating the design of the app for mobile devices (e.g., iPhone and Android devices). In addition, in one embodiment, the SDK also includes a library code base to facilitate the design of applications and APIs that reside within IoT service 120 or web site 130. [

일 실시예에서, IoT 허브(110)는 IoT 디바이스(101 내지 105)와 IoT 서비스(120) 사이의 데이터의 연속적인 양방향 스트림을 관리한다. IoT 디바이스(101 내지 105)로의/로부터의 업데이트가 실시간으로 요구되는(예를 들어, 사용자가 보안 디바이스 또는 환경 측정의 현재 상태를 볼 필요가 있는) 상황에서, IoT 허브는 정기 업데이트를 사용자 디바이스(135) 및/또는 외부 웹사이트들(130)에 제공하기 위한 개방형 TCP 소켓을 유지할 수 있다. 업데이트를 제공하는 데 사용되는 특정 네트워킹 프로토콜은 기본 애플리케이션의 필요에 기초하여 미조정될 수 있다. 예를 들어, 연속적인 양방향 스트림을 갖는 것이 타당하지 않을 수 있는 일부 경우에, 간단한 요청/응답 프로토콜이 필요할 경우 정보를 수집하는 데 사용될 수 있다.In one embodiment, the IoT hub 110 manages a continuous bi-directional stream of data between the IoT devices 101-105 and the IoT service 120. [ In situations where updates to / from the IoT devices 101-105 are required in real time (e.g., where the user needs to view the current state of the secure device or environment measurements), the IoT hub sends periodic updates to the user device 135 < / RTI > and / or to external web sites 130. < RTI ID = 0.0 > The particular networking protocol used to provide the update may be fine-tuned based on the needs of the underlying application. For example, in some cases where it may not be feasible to have a continuous bidirectional stream, a simple request / response protocol can be used to gather information when needed.

일 실시예에서, IoT 허브(110) 및 IoT 디바이스(101 내지 105) 둘 모두는 네트워크를 통해 자동적으로 업그레이드 가능하다. 특히, 새로운 업데이트가 IoT 허브(110)에게 이용 가능한 경우, 그것은 IoT 서비스(120)로부터 업데이트를 자동적으로 다운로드 및 설치할 수 있다. 그것은 먼저 업데이트된 코드를 로컬 메모리에 복사하고, 구동하고, 구형 프로그램 코드를 교체하기 전에 업데이트를 검증할 수 있다. 유사하게, 업데이트가 IoT 디바이스(101 내지 105) 각각에게 이용 가능한 경우, 업데이트는 초기에 IoT 허브(110)에 의해 다운로드되고 IoT 디바이스(101 내지 105) 각각에 푸시 아웃될 수 있다. 그 후, 각각의 IoT 디바이스(101 내지 105)는 IoT 허브에 대해 위에서 설명된 것과 유사한 방식으로 업데이트를 적용하고 업데이트의 결과를 IoT 허브(110)에 다시 보고할 수 있다. 업데이트가 성공적이면, IoT 허브(110)는 그것의 메모리로부터 업데이트를 삭제하고 (예를 들어, 그것이 각각의 IoT 디바이스에 대한 새로운 업데이트를 계속 체크할 수 있도록) 각각의 IoT 디바이스 상에 설치된 코드의 최신 버전을 기록할 수 있다.In one embodiment, both the IoT hub 110 and the IoT devices 101-105 are automatically upgradeable over the network. In particular, if a new update is available to the IoT hub 110, it can automatically download and install updates from the IoT service 120. It can first copy the updated code to local memory, run it, and verify the update before replacing the old program code. Similarly, if an update is available for each of the IoT devices 101-105, the update may be initially downloaded by the IoT hub 110 and pushed out to each of the 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 result of the update back to the IoT hub 110. [ If the update is successful, the IoT hub 110 deletes the updates from its memory (e.g., so that it can keep checking for new updates for each IoT device) and updates the latest You can record the version.

일 실시예에서, IoT 허브(110)는 A/C 전력을 통해 전력공급된다. 특히, IoT 허브(110)는 A/C 전력 코드를 통해 공급된 A/C 전압을 더 낮은 DC 전압으로 변압시키기 위한 변압기를 갖는 전력 유닛(390)을 포함할 수 있다.In one embodiment, IoT hub 110 is powered through A / C power. In particular, IoT hub 110 may include a power unit 390 having a transformer for transforming the A / C voltage supplied via the A / C power cord to a lower DC voltage.

도 4a는 IoT 시스템을 사용하여 범용 원격 제어 동작을 수행하기 위한 본 발명의 일 실시예를 예시한다. 특히, 이 실시예에서, IoT 디바이스들(101 내지 103)의 세트에는 (몇개만 예로 들자면) 에어컨/히터(430), 조명 시스템(431) 및 시청각 장비(432)를 포함한 다양한 상이한 타입의 전자 장비를 제어하기 위해 원격 제어 코드를 전송하기 위한 적외선(IR) 및/또는 라디오 주파수(RF) 블라스터들(401 내지 403)이 각각 탑재된다. 도 4a에 도시된 실시예에서, IoT 디바이스들(101 내지 103)에는 또한 후술되는 바와 같이 그들이 제어하는 디바이스들의 동작을 검출하기 위한 센서들(404 내지 406)이 각각 탑재된다.4A illustrates an embodiment of the present invention for performing a universal remote control operation using an IoT system. In particular, in this embodiment, the set of IoT devices 101-103 includes a variety of different types of electronic equipment (including but not limited to air conditioning / heater 430, lighting system 431 and audiovisual equipment 432) Infrared (IR) and / or radio frequency (RF) blasters 401 to 403 for transmitting a remote control code to control the radio frequency (RF) In the embodiment shown in Fig. 4A, IoT devices 101-103 are also each equipped with sensors 404-406 for detecting the operation of the devices they control as described below.

예를 들어, IoT 디바이스(101) 내의 센서(404)는 현재의 온도/습도를 감지하고, 그에 응답하여 현재의 원하는 온도에 기초하여 에어컨/히터(430)를 제어하기 위한 온도 및/또는 습도 센서일 수 있다. 이 실시예에서, 에어컨/히터(430)는 원격 제어 디바이스(전형적으로 그 자체가 온도 센서를 내장하고 있는 리모트 컨트롤)를 통해 제어되도록 설계된 것이다. 일 실시예에서, 사용자는 사용자 디바이스(135) 상에 설치된 앱 또는 브라우저를 통해 IoT 허브(110)에 원하는 온도를 제공한다. IoT 허브(110) 상에서 실행되는 제어 로직(412)은 센서(404)로부터 현재 온도/습도 데이터를 수신하고, 그에 응답하여 원하는 온도/습도에 따라 IR/RF 블라스터(401)를 제어하기 위해 IoT 디바이스(101)에 커맨드를 전송한다. 예를 들어, 온도가 원하는 온도보다 낮으면, 제어 로직(412)은 IR/RF 블라스터(401)를 통해 에어컨/히터에 커맨드를 전송하여 (예를 들어, 에어컨을 턴오프하거나 히터를 턴온함으로써) 온도를 높일 수 있다. 커맨드는 IoT 허브(110) 상의 데이터베이스(413) 내에 저장된 필요한 원격 제어 코드를 포함할 수 있다. 대안적으로 또는 추가적으로, IoT 서비스(421)는 지정된 사용자 선호 및 저장된 제어 코드(422)에 기초하여 전자 장비(430 내지 432)를 제어하기 위한 제어 로직(421)을 구현할 수 있다.For example, the sensor 404 in the IoT device 101 senses the current temperature / humidity and, in response thereto, a temperature and / or humidity sensor for controlling the air conditioner / heater 430 based on the current desired temperature Lt; / RTI > In this embodiment, the air conditioner / heater 430 is designed to be controlled via a remote control device (typically a remote control, which itself incorporates a temperature sensor). In one embodiment, the user provides the desired temperature to the IoT hub 110 via an app or browser installed on the user device 135. [ The control logic 412 running on the IoT hub 110 receives the current temperature / humidity data from the sensor 404 and responds to it to control the IR / RF blaster 401 in accordance with the desired temperature / (101). For example, if the temperature is below a desired temperature, the control logic 412 sends a command to the air conditioner / heater via the IR / RF blaster 401 (e.g., by turning off the air conditioner or turning on the heater) The temperature can be increased. The command may include the necessary remote control code stored in the database 413 on the IoT hub 110. Alternatively or additionally, IoT service 421 may implement control logic 421 for controlling electronic equipment 430 to 432 based on a designated user preference and stored control code 422.

예시된 예의 IoT 디바이스(102)는 조명(431)을 제어하는 데 사용된다. 특히, IoT 디바이스(102) 내의 센서(405)는 조명 설비(431)(또는 다른 조명 장치)에 의해 생성되는 광의 현재 밝기를 검출하도록 구성된 광센서 또는 광검출기일 수 있다. 사용자는 사용자 디바이스(135)를 통해 IoT 허브(110)에 원하는 조명 레벨(온 또는 오프의 지시를 포함함)을 지정할 수 있다. 이에 응답하여, 제어 로직(412)은 IR/RF 블라스터(402)에 커맨드를 전송하여, 발광체(431)의 현재 밝기 레벨을 제어할 것이다(예를 들어, 현재 밝기가 너무 낮으면 조명을 높이거나 현재 밝기가 너무 높으면 조명을 낮추거나; 단순히 발광체를 턴온 또는 턴오프함).The illustrated example IoT device 102 is used to control the illumination 431. In particular, the sensor 405 in the IoT device 102 may be an optical sensor or photodetector configured to detect the current brightness of the light generated by the lighting fixture 431 (or other lighting device). The user may specify the desired illumination level (including an indication of on or off) to the IoT hub 110 via the user device 135. [ In response, the control logic 412 will send a command to the IR / RF blaster 402 to control the current brightness level of the illuminant 431 (e.g., if the current brightness is too low, If the current brightness is too high, lower the light; or simply turn the illuminant on or off).

예시된 예의 IoT 디바이스(103)는 시청각 장비(432)(예를 들어, 텔레비전, A/V 수신기, 케이블/위성 수신기, 애플(Apple)TV™ 등)를 제어하도록 구성된다. IoT 디바이스(103) 내의 센서(406)는 현재의 주위 볼륨 레벨을 검출하기 위한 오디오 센서(예를 들어, 마이크로폰 및 관련 로직) 및/또는 텔레비전에 의해 생성된 광에 기초하여 (예를 들어, 지정된 스펙트럼 내의 광을 측정함으로써) 텔레비전이 온 또는 오프 상태인지를 검출하기 위한 광센서일 수 있다. 대안적으로, 센서(406)는 검출된 온도에 기초하여 오디오 장비가 온 또는 오프 상태인지를 검출하기 위해 시청각 장비에 접속된 온도 센서를 포함할 수 있다. 다시 한번, 사용자 디바이스(135)를 통한 사용자 입력에 응답하여, 제어 로직(412)은 IoT 디바이스(103)의 IR 블라스터(403)를 통해 시청각 장비에 커맨드를 전송할 수 있다.The illustrated example IoT device 103 is configured to control the audiovisual equipment 432 (e.g., a television, an A / V receiver, a cable / satellite receiver, an Apple TV ™, etc.). The sensor 406 in the IoT device 103 may be configured to detect a current ambient volume level based on an audio sensor (e.g., a microphone and associated logic) and / or light generated by a television (e.g., (E.g., by measuring light in the spectrum) to detect whether the television is on or off. Alternatively, the sensor 406 may include a temperature sensor connected to the audiovisual equipment to detect whether the audio equipment is on or off based on the detected temperature. Once again, in response to user input via the user device 135, the control logic 412 may send commands to the audiovisual equipment through the IR blaster 403 of the IoT device 103.

전술한 내용은 단지 본 발명의 일 실시예의 예시적인 예에 불과하다는 점에 유의해야 한다. 본 발명의 기본 원리는 IoT 디바이스에 의해 제어될 임의의 특정 타입의 센서 또는 장비로 제한되지 않는다.It should be noted that the foregoing is merely illustrative of one embodiment of the present invention. The basic principles of the present invention are not limited to any particular type of sensor or device to be controlled by the IoT device.

IoT 디바이스들(101 내지 103)이 블루투스 LE 접속을 통해 IoT 허브(110)에 결합되는 실시예에서, 센서 데이터 및 커맨드는 블루투스 LE 채널을 통해 전송된다. 그러나, 본 발명의 기본 원리는 블루투스 LE 또는 임의의 다른 통신 표준으로 제한되지 않는다.In embodiments in which the IoT devices 101-103 are coupled to the IoT hub 110 via a Bluetooth LE connection, the sensor data and commands are transmitted over the Bluetooth LE channel. However, the underlying principles of the present invention are not limited to Bluetooth LE or any other communication standard.

일 실시예에서, 각각의 전자 장비를 제어하는 데 필요한 제어 코드는 IoT 허브(110) 상의 데이터베이스(413) 및/또는 IoT 서비스(120) 상의 데이터베이스(422)에 저장된다. 도 4b에 예시된 바와 같이, 제어 코드는 IoT 서비스(120) 상에서 유지되는 상이한 장비들에 대한 제어 코드들(422)의 마스터 데이터베이스로부터 IoT 허브(110)에 제공될 수 있다. 최종 사용자는 사용자 디바이스(135) 상에서 실행되는 앱 또는 브라우저를 통해 제어될 전자(또는 다른) 장비의 타입을 지정할 수 있으며, 그에 응답하여 IoT 허브 상의 원격 제어 코드 학습 모듈(491)은 IoT 서비스(120) 상의 원격 제어 코드 데이터베이스(492)에서 (예를 들어, 고유 ID를 갖는 각각의 전자 장비를 식별하는) 필요한 IR/RF 코드를 검색할 수 있다.In one embodiment, the control codes necessary to control each electronic device are stored in the database 413 on the IoT hub 110 and / or the database 422 on the IoT service 120. As illustrated in FIG. 4B, control codes may be provided to the IoT hub 110 from the master database of control codes 422 for the different devices that are maintained on the IoT service 120. The end user may specify the type of electronic (or other) equipment to be controlled via an app or browser running on the user device 135, and in response, the remote control code learning module 491 on the IoT hub receives the IoT service 120 (E.g., identifying each electronic device with a unique ID) in a remote control code database 492 on the remote control code database 492. [

또한, 일 실시예에서, IoT 허브(110)에는 원격 제어 코드 학습 모듈(491)이 전자 장비와 함께 제공된 원래의 리모트 컨트롤(495)로부터 직접 새로운 원격 제어 코드를 "학습"하는 것을 가능하게 하는 IR/RF 인터페이스(490)가 탑재된다. 예를 들어, 에어컨(430)과 함께 제공된 원래의 리모트 컨트롤에 대한 제어 코드가 원격 제어 데이터베이스에 포함되어 있지 않으면, 사용자는 사용자 디바이스(135) 상의 앱/브라우저를 통해 IoT 허브(110)와 상호 작용하여, 원래의 리모트 컨트롤에 의해 생성된 다양한 제어 코드(예를 들어, 온도 증가, 온도 감소 등)를 IoT 허브(110)에게 교시할 수 있다. 원격 제어 코드가 학습되면, 이들은 IoT 허브(110) 상의 제어 코드 데이터베이스(413)에 저장되고/되거나, IoT 서비스(120)로 되돌려 보내져서 중앙 원격 제어 코드 데이터베이스(492)에 포함될 수 있다(그리고 후속하여 동일한 에어컨 유닛(430)을 갖는 다른 사용자에 의해 사용됨).In addition, in one embodiment, the IoT hub 110 is also provided with a remote control code learning module 491, which allows the IR control module 491 to "learn" a new remote control code directly from the original remote control 495, / RF interface 490 is mounted. For example, if the control code for the original remote control provided with the air conditioner 430 is not included in the remote control database, then the user interacts with the IoT hub 110 via the app / browser on the user device 135 (For example, temperature increase, temperature decrease, etc.) generated by the original remote control to the IoT hub 110. [0054] Once the remote control codes are learned, they can be stored in the control code database 413 on the IoT hub 110 and / or sent back to the IoT service 120 and included in the central remote control code database 492 And is used by other users having the same air conditioning unit 430).

일 실시예에서, IoT 디바이스들(101 내지 103) 각각은 극히 작은 폼 팩터를 가지며, 양면 테이프, 작은 못, 자석 부착 등을 사용하여 그들 각자의 전자 장비(430 내지 432) 상에 또는 그 부근에 부착될 수 있다. 에어컨(430)과 같은 장비의 제어를 위해, 센서(404)가 집 안의 주위 온도를 정확하게 측정할 수 있도록 IoT 디바이스(101)를 충분히 멀리 배치하는 것이 바람직할 것이다(예를 들어, 에어컨 상에 직접 IoT 디바이스를 배치하는 것은 에어컨이 작동 중일 때 너무 낮거나 히터가 작동 중일 때 너무 높을 온도 측정치를 초래할 것임). 대조적으로, 조명을 제어하는 데 사용되는 IoT 디바이스(102)는 센서(405)가 현재 조명 레벨을 검출하기 위해 조명 설비(431) 상에 또는 그 부근에 배치될 수 있다.In one embodiment, each of the IoT devices 101-103 has an extremely small form factor and is mounted on or near their respective electronic equipment 430-432 using double-sided tape, small nails, . For control of equipment, such as the air conditioner 430, it may be desirable to place the IoT device 101 far enough away so that the sensor 404 can accurately measure the ambient temperature in the house (e.g., Placing the IoT device will result in a temperature reading that is either too low when the air conditioner is active or too high when the heater is operating). In contrast, the IoT device 102 used to control the illumination can be placed on or near the lighting fixture 431 for the sensor 405 to detect the current illumination level.

설명된 바와 같은 일반적인 제어 기능을 제공하는 것 외에도, IoT 허브(110) 및/또는 IoT 서비스(120)의 일 실시예는 각각의 전자 장비의 현재 상태와 관련된 통지를 최종 사용자에게 전송한다. 텍스트 메시지 및/또는 앱 특유 통지일 수 있는 통지는 이어서 사용자의 모바일 디바이스(135)의 디스플레이 상에 표시될 수 있다. 예를 들어, 사용자의 에어컨이 장기간 동안 켜져 있었지만 온도가 변하지 않은 경우, IoT 허브(110) 및/또는 IoT 서비스(120)는 에어컨이 적절히 기능하고 있지 않다는 통지를 사용자에게 전송할 수 있다. 사용자가 집에 있지 않고(이는 모션 센서를 통해 또는 사용자의 현재 검출된 위치에 기초하여 검출될 수 있음), 센서(406)가 시청각 장비(430)가 켜져 있다는 것을 지시하거나, 센서(405)가 발광체가 켜져 있다는 것을 지시하는 경우, 사용자가 시청각 장비(432) 및/또는 발광체(431)를 턴오프하기를 원하는지를 묻는 통지가 사용자에게 전송될 수 있다. 임의의 장비 타입에 대해 동일한 타입의 통지가 전송될 수 있다.In addition to providing general control functions as described, one embodiment of IoT hub 110 and / or IoT service 120 sends a notification to the end user associated with the current status of each electronic device. 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 is on for a long period of time but the temperature has not changed, the IoT hub 110 and / or IoT service 120 may send a notification to the user that the air conditioner is not functioning properly. If the sensor 406 indicates that the audiovisual equipment 430 is on, or if the sensor 405 detects that the audiovisual equipment 430 is on, or if the user is not at home (which may be detected via a motion sensor or based on the user's current detected location) A notification may be sent to the user asking if the user wishes to turn off the audiovisual equipment 432 and / or the illuminant 431. The same type of notification can be sent for any type of equipment.

사용자가 통지를 수신하면, 그/그녀는 사용자 디바이스(135) 상의 앱 또는 브라우저를 통해 전자 장비(430 내지 432)를 원격 제어할 수 있다. 일 실시예에서, 사용자 디바이스(135)는 터치 스크린 디바이스이고, 앱 또는 브라우저는 장비(430 내지 432)를 제어하기 위해 사용자가 선택할 수 있는 버튼을 갖는 리모트 컨트롤의 이미지를 표시한다. 통지를 수신하면, 사용자는 그래픽 리모트 컨트롤을 열고 다양한 상이한 장비를 턴오프하거나 조정할 수 있다. IoT 서비스(120)를 통해 접속되는 경우, 사용자의 선택은 IoT 서비스(120)로부터 IoT 허브(110)로 전달될 수 있으며, 이어서 IoT 허브(110)는 제어 로직(412)을 통해 장비를 제어할 것이다. 대안적으로, 사용자 입력은 사용자 디바이스(135)로부터 IoT 허브(110)로 직접 전송될 수 있다.When the user receives the notification, he / she can remotely control the electronic equipment 430 to 432 via an app or browser on the user device 135. In one embodiment, the user device 135 is a touch screen device and the app or browser displays an image of the remote control with buttons that the user can select to control the equipment 430-432. Upon receiving the notification, the user can open the graphic remote control and turn off or adjust a variety of different equipment. When connected through the IoT service 120, the user's choice may be transferred from the IoT service 120 to the IoT hub 110, which in turn controls the equipment through the control logic 412 will be. Alternatively, the user input may be transmitted directly from the user device 135 to the IoT hub 110.

일 실시예에서, 사용자는 전자 장비(430 내지 432)에 대한 다양한 자동 제어 기능을 수행하도록 IoT 허브(110) 상의 제어 로직(412)을 프로그래밍할 수 있다. 전술한 바와 같이 원하는 온도, 밝기 레벨 및 볼륨 레벨을 유지하는 것 이외에, 제어 로직(412)은 소정 조건이 검출되면 전자 장비를 자동으로 턴오프할 수 있다. 예를 들어, 제어 로직(412)이 사용자가 집에 없고 에어컨이 기능하고 있지 않다는 것을 검출하면, 그것은 자동으로 에어컨을 턴오프할 수 있다. 유사하게, 사용자가 집에 없고, 센서(406)가 시청각 장비(430)가 켜져 있음을 나타내거나 센서(405)가 발광체가 켜져 있음을 나타내면, 제어 로직(412)은 IR/RF 블라스터(403, 402)를 통해 커맨드를 자동 전송하여, 시청각 장비 및 발광체를 각각 턴오프할 수 있다.In one embodiment, the user may program the control logic 412 on the IoT hub 110 to perform various automatic control functions on the electronic equipment 430-432. In addition to maintaining the desired temperature, brightness level, and volume level as described above, the control logic 412 may automatically turn off the electronic equipment once a predetermined condition is detected. For example, if the control logic 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 the sensor 406 indicates that the audiovisual equipment 430 is on, or if the sensor 405 indicates that the illuminant is on, the control logic 412 controls the IR / RF blasters 403, 402 to turn off the audiovisual equipment and the illuminant, respectively.

도 5는 전자 장비(530, 531)를 모니터링하기 위한 센서(503, 504)가 탑재된 IoT 디바이스(104, 105)의 추가 실시예를 예시한다. 특히, 이 실시예의 IoT 디바이스(104)는 스토브가 켜진 채로 있을 때를 검출하기 위해 스토브(530) 상에 또는 그 부근에 배치될 수 있는 온도 센서(503)를 포함한다. 일 실시예에서, IoT 디바이스(104)는 온도 센서(503)에 의해 측정된 현재 온도를 IoT 허브(110) 및/또는 IoT 서비스(120)에 전송한다. 스토브가 임계 기간을 초과하여 켜져 있는 것으로 (예를 들어, 이 기간 동안 측정된 온도에 기초하여) 결정되면, 제어 로직(512)은 사용자에게 스토브(530)가 켜져 있음을 알리는 통지를 최종 사용자의 디바이스(135)에 전송할 수 있다. 일 실시예에서, 최종 사용자의 디바이스(135) 상의 앱 또는 브라우저 기반 코드는 통지를 표시하고, 스토브(530)를 제어하는(예를 들어, 스토브를 턴오프하기 위한 커맨드를 전송하는) 능력을 사용자에게 제공한다.5 illustrates a further embodiment of an IoT device 104, 105 on which sensors 503, 504 for monitoring electronic equipment 530, 531 are mounted. In particular, the IoT device 104 of this embodiment includes a temperature sensor 503 that may be disposed on or near the stove 530 to detect when the stove remains on. In one embodiment, the IoT device 104 transmits the current temperature measured by the temperature sensor 503 to the IoT hub 110 and / or the IoT service 120. If the stove is determined to be on (e.g., based on the measured temperature during this period) beyond the critical period, the control logic 512 informs the user that the stove 530 is on, Device 135 as shown in FIG. In one embodiment, the app or browser based code on the end user's device 135 displays the notification and the ability to control the stove 530 (e.g., to send a command to turn off the stove) Lt; / RTI >

또한, 일 실시예에서, IoT 디바이스(104)는, 사용자로부터 지시를 수신하는 것에 응답하여 또는 (제어 로직(512)이 사용자에 의해 그렇게 하도록 프로그래밍된 경우) 자동으로, 스토브를 턴오프하기 위한 제어 모듈(501)을 포함할 수 있다. 일 실시예에서, 제어 로직(501)은 스토브(530)에 대한 전기 또는 가스를 차단하는 스위치를 포함한다. 그러나, 다른 실시예에서, 제어 로직(501)은 스토브 자체 내에 통합될 수 있다.Further, in one embodiment, the IoT device 104 may be controlled in response to receiving an instruction from a user or automatically (if the control logic 512 is programmed to do so by the user) Module 501 as shown in FIG. In one embodiment, the control logic 501 includes a switch for shutting off electricity or gas to the stove 530. However, in other embodiments, the control logic 501 may be integrated within the stove itself.

도 5는 또한 세탁기 및/또는 건조기와 같은 소정 타입의 전자 장비의 모션을 검출하기 위한 모션 센서(504)를 갖는 IoT 디바이스(105)를 예시한다. 사용될 수 있는 다른 센서는 주위 볼륨 레벨을 검출하기 위한 오디오 센서(예를 들어, 마이크로폰 및 로직)이다. 전술한 다른 실시예에서와 같이, 이 실시예는 소정의 지정된 조건이 충족되면(예를 들어, 모션이 장기간 동안 검출되어, 세탁기/건조기가 턴오프되지 않았음을 나타내는 경우) 최종 사용자에게 통지를 전송할 수 있다. 도 5에 도시되지 않지만, IoT 디바이스(105)에는 자동으로 그리고/또는 사용자 입력에 응답하여 (예를 들어, 전기/가스를 스위치 오프함으로써) 세탁기/건조기(531)를 턴오프하는 제어 모듈이 또한 탑재될 수 있다.Figure 5 also illustrates an IoT device 105 having a motion sensor 504 for detecting motion of certain types of electronic equipment, such as a washer and / or dryer. Other sensors that may be used are audio sensors (e. G., Microphone and logic) for detecting ambient volume levels. As with the other embodiments described above, this embodiment provides a notification to the end user when certain specified conditions are met (e.g., motion is detected for a long period of time and the washer / dryer is not turned off) Lt; / RTI > Although not shown in FIG. 5, the IoT device 105 is also provided with a control module that turns off the washer / dryer 531 automatically and / or in response to user input (e.g., by switching off the electricity / gas) Lt; / RTI >

일 실시예에서, 제어 로직 및 스위치를 갖는 제1 IoT 디바이스는 사용자의 집 안의 모든 전력을 턴오프하도록 구성될 수 있고, 제어 로직 및 스위치를 갖는 제2 IoT 디바이스는 사용자의 집 안의 모든 가스를 턴오프하도록 구성될 수 있다. 이어서, 센서를 갖는 IoT 디바이스가 사용자의 집에 있는 전자 또는 가스 구동 장비 상에 또는 그 부근에 배치될 수 있다. 사용자가 특정 장비(예를 들어, 스토브(530))가 켜진 채로 있다는 통지를 받으면, 사용자는 손상을 방지하기 위해 집 안의 모든 전기 또는 가스를 턴오프하기 위한 커맨드를 전송할 수 있다. 대안적으로, IoT 허브(110) 및/또는 IoT 서비스(120) 내의 제어 로직(512)은 그러한 상황에서 전기 또는 가스를 자동으로 턴오프하도록 구성될 수 있다.In one embodiment, the first IoT device with the control logic and the switch can be configured to turn off all power in the user's home, and the second IoT device with the control logic and the switch will turn on all the gas in the user's home Off. The IoT device with the sensor can then be placed on or near the electronic or gas driven equipment in the user's home. When the user is notified that a particular piece of equipment (e.g., stove 530) is left on, the user may send a command to turn off all the electricity or gas in the house to prevent damage. Alternatively, control logic 512 within IoT hub 110 and / or IoT service 120 may be configured to automatically turn off electricity or gas in such situations.

일 실시예에서, IoT 허브(110) 및 IoT 서비스(120)는 주기적인 간격으로 통신한다. IoT 서비스(120)가 (예를 들어, 지정된 지속 기간 동안 IoT 허브로부터 요청 또는 응답을 수신하지 못함으로써) IoT 허브(110)에 대한 접속이 손실된 것을 검출하면, (예를 들어, 텍스트 메시지 또는 앱 특유 통지를 전송함으로써) 이러한 정보를 최종 사용자의 디바이스(135)로 통신할 것이다. 이 특징은 IoT 허브(110)와 IoT 서비스(120) 사이의 접속이 디스에이블되었음을 나타내는 도 6에 그래픽으로 예시되어 있다. IoT 서비스(120) 상의 접속 모니터링 및 통지 로직(600)은 접속이 디스에이블되었음을 검출하고, 이에 응답하여 사용자에게 접속 상태를 알리는 통지를 (예를 들어, 셀룰러 통신 채널, WiFi, 또는 디바이스(135)에 의해 사용되는 임의의 다른 통신 채널을 통해) 최종 사용자의 디바이스(135)로 전송한다. 특히, 일 실시예에서, 접속 모니터링 로직은 IoT 서비스와 IoT 허브 사이의 제1 통신 채널이 동작하지 못하게 되었을 때를 검출하고, 통지 로직은 접속 모니터링 로직이 제1 통신 채널이 동작하지 못하게 된 것을 검출하는 것에 응답하여 사용자의 데이터 처리 디바이스(135)에 통지를 전송한다.In one embodiment, IoT hub 110 and IoT service 120 communicate at periodic intervals. If the IoT service 120 detects that a connection to the IoT hub 110 has been lost (e.g., by not receiving a request or response from the IoT hub for a specified duration), then (e.g., (By sending an app-specific notification) to the end-user's device 135. This feature is graphically illustrated in FIG. 6, which shows that the connection between the IoT hub 110 and the IoT service 120 is disabled. The connection monitoring and notification logic 600 on the IoT service 120 detects that the connection has been disabled and responds in response to a notification (e.g., a cellular communication channel, a WiFi, or a device 135) To the end user's device 135 (via any other communication channel used by the end user). In particular, in one embodiment, the connection monitoring logic detects when the first communication channel between the IoT service and the IoT hub becomes inoperable and the notification logic detects that the connection monitoring logic has failed to operate the first communication channel And sends a notification to the user's data processing device 135 in response.

이어서, 사용자는 접속 문제의 원인을 결정하기 위한 단계를 수행할 수 있다. IoT 허브가 셀룰러 네트워크 또는 WiFi를 통해 접속되는 실시예에서, 사용자는 단지 IoT 허브 디바이스(110)를 재부팅하는 것만이 필요할 수 있다. 일 실시예에서, 접속 모니터링 및 통지 로직(600)이 지정된 기간 동안 IoT 허브로부터 통신을 수신하지 않은 경우, 그것은 허브의 상태를 결정하기 위한 시도로 허브(110)를 핑(ping)할 수 있다. 몇 번의 실패한 시도 후에(즉, 허브로부터의 응답이 없음), 그것은 통지를 최종 사용자의 디바이스(135)에 전송할 수 있다.The user can then perform steps to determine the cause of the connection problem. In embodiments where the IoT hub is connected via a cellular network or WiFi, the user may only need to reboot the IoT hub device 110 only. In one embodiment, if the connection monitoring and notification logic 600 does not receive communications from the IoT hub for a specified period of time, it may ping the hub 110 in an attempt to determine the state of the hub. After several failed attempts (i.e., no response from the hub), it may send a notification to the end user's device 135.

IoT 허브가 셀룰러 네트워크 및 사용자의 집 안의 광대역 접속 둘 모두를 통해 접속되는 실시예에서, 이 메커니즘은 어느 하나의 접속의 실패를 검출하는 데 사용될 수 있고, 나머지 양호한 중복 접속을 이용하여 IoT 허브(110)와의 통신을 유지할 수 있다.In an embodiment in which the IoT hub is connected via both a cellular network and a broadband connection in the user's home, this mechanism can be used to detect failure of any one connection and the IoT hub 110 Can be maintained.

IoT 허브(110)의 일 실시예는 극히 작은 폼 팩터(예를 들어, 휴대폰 충전기의 크기)로 구현된다. 예를 들어, IoT 허브(110)는 1.5 인치(또는 미만)의 큐브로서 패키징될 수 있다. 1 내지 2 인치(또는 미만) 사이의 깊이와 1 내지 3 인치 사이의 높이/길이 또는 2 인치 이하의 변을 갖는 임의의 큐브와 같은 다양한 대안적인 크기가 또한 고려된다.One embodiment of the IoT hub 110 is implemented in an extremely small form factor (e.g., the size of a mobile phone charger). For example, the IoT hub 110 may be packaged as a 1.5 inch (or less) cube. Various alternative sizes are also contemplated, such as a depth between 1 and 2 inches (or less) and a height / length between 1 and 3 inches, or any cube with sides less than 2 inches.

도 7a 내지 도 7c는 IoT 허브가 A/C 입력 인터페이스(702)를 통해 A/C 아울렛 안에 직접 플러깅되도록 설계된 소형 패키지 내에 통합된 하나의 특정 실시예를 예시한다. 이러한 방식으로, IoT 허브(110)는 전력 아울렛이 존재하는 사용자의 집 안 어디에나 이상적인 수용을 위해 전략적으로 배치될 수 있다. 일 실시예에서, IoT 허브(110)는 고전압 A/C 입력을 저전압 D/C 신호로 변환하기 위한 변압기를 포함한다. 작은 폼 팩터를 갖지만, 일 실시예에서, IoT 허브(110)는 IoT 서비스(120) 및 복수의 IoT 디바이스(101 내지 105)와 접속하기 위해 본 명세서에 설명된 모든 특징을 포함한다. 예를 들어, 도 7a 내지 도 7c에 명시적으로 도시되지 않지만, 일 실시예에서, IoT 허브(110)는 IoT 디바이스 및 IoT 서비스와 통신하기 위한 다수의 통신 인터페이스(예를 들어, 안테나 및 소프트웨어)를 포함할 수 있다. 일 실시예에서, IoT 허브(110)는 A/C 전력 라인을 통해 IoT 디바이스들(101 내지 105)과 통신을 설정하기 위한 전력 라인 통신(PLC) 또는 유사한 네트워크 인터페이스를 포함한다.Figures 7A-7C illustrate one particular embodiment of the integrated IoT hub integrated into a small package designed to be plugged directly into an A / C outlet via an A / C input interface 702. [ In this manner, the IoT hub 110 can be strategically placed for ideal acceptance anywhere in the home of a user with a power outlet. In one embodiment, IoT hub 110 includes a transformer for converting a high voltage A / C input to a low voltage D / C signal. The IoT hub 110 includes all the features described herein for connecting to the IoT service 120 and a plurality of IoT devices 101-105. For example, although not explicitly shown in FIGS. 7A-7C, in one embodiment, the IOT hub 110 includes a plurality of communication interfaces (e.g., antenna and software) for communicating with the IoT device and the IoT service, . ≪ / RTI > In one embodiment, IoT hub 110 includes a power line communication (PLC) or similar network interface for establishing communications with IoT devices 101-105 over the A / C power line.

또한, 도 7a 내지 도 7c에 도시된 IoT 허브의 실시예에는, 허브(110)의 현재 상태를 사용자에게 알리는 것에 더하여, 야간 조명을 위해 사용될 수 있는 발광 다이오드(LED)가 탑재된다. 따라서, 사용자는 IoT 허브를 복도, 욕실 또는 어린이 방에 배치하고, 허브를 이중 목적의 야간 조명/IoT 허브 디바이스로서 사용할 수 있다.In addition, in addition to informing the user of the current state of the hub 110, the embodiment of the IoT hub shown in Figs. 7A to 7C is equipped with a light emitting diode (LED) that can be used for night illumination. Thus, the user can place the IoT hub in a hallway, a bathroom or a children's room, and use the hub as a dual purpose nighttime lighting / IoT hub device.

일 실시예에서, 사용자는 사용자의 디바이스(135) 상의 앱 또는 브라우저 상의 프로그래밍 인터페이스를 통해 야간 조명 특징을 프로그래밍할 수 있다. 예를 들어, 사용자는 저녁의 특정 시간에 켜지고 아침의 특정 시간에 꺼지도록 야간 조명을 프로그래밍할 수 있다. 또한, 일 실시예에서, 상이한, 독립적으로 제어되는 컬러 LED가 IoT 허브에 통합된다. 사용자는 낮과 저녁의 상이한 시간에 IoT 허브에서 조명될 컬러를 프로그래밍할 수 있다.In one embodiment, a user may program a nighttime lighting feature via an application on the user's device 135 or through a programming interface on the browser. For example, a user can program a night light to turn on at certain times of the evening and off at certain times of the morning. Also, in one embodiment, different, independently controlled color LEDs are integrated into the IoT hub. The user can program the color to be illuminated at the IoT hub at different times of the day and evening.

프로그래밍되면, LED(701)는 IoT 허브의 통합 저전력 uC(200)에 의해 턴온/턴오프될 수 있다. 일 실시예에서, IoT 허브는 주위 밝기가 지정된 임계치 아래로 떨어지는 것에 응답하여 야간 조명이 턴온되게 하기 위한 통합 광검출기를 갖는다. 또한, 일 실시예에서, IoT 허브는 (예를 들어, 사용자의 모바일 디바이스(135)와 같은) 다른 디바이스들을 충전하기 위해 사용될 하나 이상의 통합 USB 포트(710)를 갖는다. 물론, 본 발명의 기본 원리는 USB 충전기가 통합된 IoT 허브(110)로 제한되지 않는다.Once programmed, the LED 701 may be turned on / off by the integrated low power uC 200 of the IoT hub. In one embodiment, the IoT hub has an integrated photodetector for turning on night illumination 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 to be used to charge other devices (e.g., user's mobile device 135). Of course, the basic principle of the present invention is not limited to the IoT hub 110 in which the USB charger is integrated.

본 발명의 일 실시예에 따른 방법이 도 8에 예시된다. 801에서, IoT 디바이스들이 제어될 장비 상에 또는 그 부근에 배치/구성된다. 언급된 바와 같이, 일 실시예에서, IoT 디바이스에는 사용자가 다양한 타입의 장비에 IoT 디바이스를 쉽게 부착할 수 있도록 허용하는 양면 테이프가 탑재된다. 대안적으로 또는 추가적으로, 각각의 IoT 디바이스는 IoT 디바이스를 벽 또는 다른 표면에 부착하기 위해 작은 못 또는 나사가 삽입될 수 있는 하나 이상의 장착 구멍을 포함할 수 있다. 또한, 몇몇 IoT 디바이스는 IoT 디바이스가 금속 표면에 부착되도록 허용하는 자석 재료를 포함할 수 있다.A method according to one embodiment of the present invention is illustrated in FIG. At 801, IoT devices are placed / configured on or near the equipment to be controlled. As noted, in one embodiment, the IoT device is equipped with a double-sided tape that allows the user to easily attach the IoT device to various types of equipment. Alternatively or additionally, each IoT device may include one or more mounting holes through which small nails or screws may be inserted to attach the IoT device to a wall or other surface. In addition, some IoT devices may include a magnet material that allows the IoT device to be attached to a metal surface.

IoT 디바이스들이 제자리에 부착되면, 802에서 이들은 사용자 디바이스(135) 및 IoT 허브(110)를 통해 프로그래밍될 수 있다. 예를 들어, 사용자는 (직접 또는 IoT 서비스(120)를 통해) 사용자 디바이스(135) 상에 설치된 앱 또는 브라우저로 IoT 허브(110)에 접속할 수 있다. 앱 또는 브라우저-실행 가능 코드는 사용자가 각각의 IoT 디바이스를 식별하고 프로그래밍하도록 허용하는 사용자 인터페이스를 포함할 수 있다. 예를 들어, IoT 디바이스가 선택되면, 사용자는 선택할 상이한 장비 타입들(예를 들어, 원격 제어 가능한 에어컨/히터, A/V 장비 등의 상이한 모델들)의 리스트를 제공받을 수 있다. 올바른 장비가 선택되면, 원격 제어 코드는 전술한 바와 같이 IoT 허브 상에 저장되고 IoT 디바이스 상의 IR/RF 블라스터로 전송되어 803에서 장비를 제어한다. 또한, 전술한 바와 같이, 다양한 자동 제어 기능이 IoT 허브에 의해 구현될 수 있다.Once IoT devices are attached in place, they may be programmed via user device 135 and IoT hub 110 at 802. For example, a user may connect to the IoT hub 110 with an app or browser installed on the user device 135 (either directly or via the IoT service 120). The app or browser-executable code may include a user interface that allows the user to identify and program each IoT device. For example, if an IoT device is selected, the user may be provided with a list of different equipment types to choose from (e.g., different models of remote controllable air conditioner / heater, A / V equipment, etc.). Once the correct equipment is selected, the remote control code is stored on the IoT hub and transmitted to the IR / RF blaster on the IoT device as described above to control the equipment at 803. In addition, as described above, various automatic control functions can be implemented by the IoT hub.

본 발명의 일 실시예에서, IoT 서비스(120)는 상이한 지리적 영역들에 있는 IoT 허브들(110)에 대한 접속성을 제공하기 위해 다수의 셀 캐리어(901)와 합의할 수 있다. 예를 들어, 미국에서, IoT 서비스(120)는 IoT 허브 접속성을 제공하기 위해 버라이즌(Verizon) 및 에이티앤티(AT&T)와 합의를 가질 수 있다. 결과적으로, IoT 허브(110)는 2개 이상의 지원되는 셀 캐리어에 의해 서비스되는 위치에 있을 수 있다.In one embodiment of the present invention, IoT service 120 may agree with a plurality of cell carriers 901 to provide connectivity to IoT hubs 110 in different geographic areas. For example, in the United States, IoT service 120 may have agreements with Verizon and AT & T to provide IoT hub connectivity. As a result, the IoT hub 110 may be in a position serviced by two or more supported cell carriers.

도 9에 예시된 바와 같이, 본 발명의 일 실시예에서, IoT 허브(901)는 둘 이상의 이용 가능한 셀 캐리어(915, 916) 중에서 선택하기 위한 셀룰러 캐리어 선택 로직(901)을 포함한다. 일 실시예에서, 셀 캐리어 선택 로직은 둘 이상의 셀 캐리어(915, 916) 중에서 선택을 하기 위한 규칙들(918)의 세트로 프로그래밍된다. 특정 셀 캐리어가 선택되면, 셀 캐리어 선택 로직(901)은 IoT 허브(110)의 라디오/네트워크 스택(902)에 그 셀 캐리어와 접속하도록 지시한다.As illustrated in FIG. 9, in one embodiment of the present invention, IoT hub 901 includes cellular carrier selection logic 901 for selecting between two or more available cell carriers 915, 916. In one embodiment, the cell carrier selection logic is programmed with a set of rules 918 for selection among two or more cell carriers 915, 916. When a particular cell carrier is selected, the cell carrier selection logic 901 instructs the radio / network stack 902 of the IoT hub 110 to connect with that cell carrier.

다양한 상이한 타입의 선택 규칙(918)이 구현될 수 있다. 예로서, IoT 서비스(120)가 제2 셀 캐리어(916)에 비해 제1 셀 캐리어(915)와 더 유리한 합의(예를 들어, 더 낮은 합의 레이트/비용(912))를 갖는다면, 하나의 규칙은 단지 모든 다른 변수가 동일하거나 지정된 임계치 안에 있는 것으로 가정하여 (예를 들어, 제2 셀 캐리어의 신호 강도가 충분하다고 가정하여) 제1 셀 캐리어(915)와 접속하는 것일 수 있다.A variety of different types of selection rules 918 may be implemented. For example, if IoT service 120 has a more favorable agreement (e.g., a lower aggregate rate / cost 912) with first cell carrier 915 over second cell carrier 916, The rule may be to connect with the first cell carrier 915 only assuming that all other variables are within the same or a specified threshold (e.g., assuming that the signal strength of the second cell carrier is sufficient).

일 실시예에서, 셀 캐리어 선택 로직(901)에 의해 구현되는 선택 규칙(918)은 예를 들어 IoT 허브(110)에서 측정된 각각의 셀 캐리어(915, 916)의 현재 또는 과거의 신호 강도(911)를 포함한 셀 캐리어 접속성 및 비용과 관련된 다른 변수를 고려할 수 있다. 예를 들어, 상기에 언급된 바와 같이 IoT 서비스(120)가 제1 셀 캐리어(915)와 더 유리한 합의를 가질지라도, 셀 캐리어 선택 로직(901)은 제1 캐리어에 대한 신호 강도가 지정된 임계치 아래인 경우에 제2 셀 캐리어(916)에 여전히 접속할 수 있다.In one embodiment, the selection rule 918 implemented by the cell carrier selection logic 901 may include, for example, the current or past signal strength (e.g., the current or previous signal strength) of each cell carrier 915,916 measured at the IoT hub 110 Lt; RTI ID = 0.0 > 911). ≪ / RTI > For example, although the IoT service 120 may have a more favorable agreement with the first cell carrier 915, as described above, the cell carrier selection logic 901 may determine that the signal strength for the first carrier is below a specified threshold Lt; RTI ID = 0.0 > 916 < / RTI >

유사하게, 셀 캐리어 선택 로직(901)은 결정을 내릴 때 셀 캐리어(915, 916) 각각의 신뢰성/성능 데이터(913)를 평가할 수 있다. 예를 들어, 제1 셀 캐리어(915)가 특정 영역에서 신뢰성이 없는 것으로 알려지고/지거나, 제2 셀 캐리어(916)보다 상당히 더 낮은 성능(예를 들어, 감소된 데이터 레이트)을 제공하는 경우, 셀 캐리어 선택 로직(901)은 (제1 셀 캐리어와의 더 유리한 합의에도 불구하고) 제2 셀 캐리어를 선택할 수 있다. 일 실시예에서, 신뢰성/성능 데이터(913) 및 셀 서비스 신호 강도 데이터(911)가 IoT 허브(110)에 의해 시간에 걸쳐 수집될 수 있다. 예를 들어, IoT 허브(110)는 각각의 셀 캐리어(915, 916)와 관련하여 신호 강도, 접속 상태, 대역폭 및 다른 접속 변수를 계속 모니터링할 수 있고, 이 기록된 데이터에 (적어도 부분적으로) 기초하여 접속 결정을 행할 수 있다.Similarly, the cell carrier selection logic 901 may evaluate the reliability / performance data 913 of each of the cell carriers 915, 916 when making decisions. For example, if the first cell carrier 915 is known to be unreliable in a particular region and / or provides significantly lower performance (e.g., a reduced data rate) than the second cell carrier 916 , The cell carrier selection logic 901 may select the second cell carrier (despite a more favorable agreement with the first cell carrier). In one embodiment, reliability / performance data 913 and cell service signal strength data 911 may be collected over time by IoT hub 110. For example, the IoT hub 110 may continuously monitor signal strength, connection status, bandwidth, and other connection variables with respect to each cell carrier 915, 916, and (at least partially) It is possible to make a connection determination based on this.

일 실시예에서, IoT 서비스(120)는 그가 합의한 기존 셀 캐리어(915, 916) 및/또는 새로운 셀 캐리어와 관련된 새로운/업데이트된 선택 규칙(918)을 포함하는 업데이트를 IoT 허브에 제공할 수 있다. 예를 들어, IoT 서비스(120)와 제2 셀 캐리어(916) 간의 합의가 업데이트되어, 제2 셀 캐리어(916)를 통해 접속하는 비용이 더 낮아지면, 이 데이터를 포함하는 새로운 선택 규칙(918) 및/또는 새로운 셀 서비스 레이트(912)가 IoT 서비스(120)로부터 IoT 허브(110)로 전송될 수 있다. 이어서, 셀 캐리어 선택 로직(901)은 셀 캐리어 선택 결정을 행할 때 이러한 새로운 규칙/레이트를 고려할 수 있다(예를 들어, 제2 셀 캐리어(916)와의 접속이 더 비용 효과적인 경우에 이를 선호하는 경향이 있음).In one embodiment, IoT service 120 may provide an update to the IoT hub that includes the agreed upon existing cell carriers 915, 916 and / or new / updated selection rules 918 associated with the new cell carrier . For example, if the agreement between the IoT service 120 and the second cell carrier 916 is updated to lower the cost of accessing via the second cell carrier 916, a new selection rule 918 And / or a new cell service rate 912 may be transmitted from the IoT service 120 to the IoT hub 110. The cell carrier selection logic 901 may then take this new rule / rate into consideration when making cell carrier selection decisions (e.g., preferring this if the connection with the second cell carrier 916 is more cost effective In this case).

일 실시예에서, IoT 허브(110)는 모든 이용 가능한 셀 캐리어(915, 916)와 접속하도록 IoT 서비스(120)에 의해 사전에 프로비저닝될 수 있다(즉, 셀 캐리어(915, 916)와 접속하는 데 필요한 가입자 식별 모듈(SIM)(903) 또는 다른 인증 데이터를 제공받음). 일 실시예에서, 단일 SIM(903)(또는 다른 인증 디바이스)이 다수의 셀 캐리어(915, 916)에 대해 프로비저닝될 수 있다. 따라서, (예를 들어, 선택 규칙(918) 및 다른 변수에 기초하여) 제1 셀 캐리어(915)를 선택한 후에, IoT 허브(110)는 제1 셀 캐리어(915)가 이용 가능하지 않은 경우 여전히 제2 셀 캐리어(916)로 폴백할 수 있다. 유사하게, IoT 허브(110)는 현재 조건의 변화(예를 들어, 제1 셀 캐리어(915)에 대한 신호 강도의 감소 및/또는 제2 셀 캐리어(916)에 대한 비용의 감소) 및/또는 IoT 서비스(120)로부터 전송된 새로운 선택 규칙들(918)에 응답하여 제1 셀 캐리어(915)로부터 제2 셀 캐리어(916)로 스위칭할 수 있다.In one embodiment, IoT hub 110 may be pre-provisioned by IoT service 120 to connect with all available cell carriers 915,916 (i.e., connect with cell carriers 915,916) A subscriber identity module (SIM) 903 or other authentication data required to do so. In an embodiment, a single SIM 903 (or other authentication device) may be provisioned for multiple cell carriers 915, 916. Thus, after selecting the first cell carrier 915 (e.g., based on the selection rule 918 and other variables), the IoT hub 110 may still be able to determine if the first cell carrier 915 is still available And fall back to the second cell carrier 916. Similarly, the IoT hub 110 may be configured to provide a change in current conditions (e.g., a decrease in signal strength for the first cell carrier 915 and / or a decrease in cost for the second cell carrier 916) and / And may switch from the first cell carrier 915 to the second cell carrier 916 in response to the new selection rules 918 sent from the IoT service 120. [

IoT 허브(110)가 다수의 캐리어(915, 916)에 대해 프로비저닝되면, 그것은 파라미터 변화에 따라 그들 사이에서 하루 종일 동적으로 스위칭할 수 있다. 예를 들어, 각각의 셀룰러 캐리어(915, 916)와 관련된 비용은 하루 종일 변할 수 있다(예를 들어, 제1 캐리어(915)는 러시아워(rush hour)와 같은 과중 사용 기간 동안 더 비쌀 수 있고, 제2 캐리어(916)는 저녁에 더 비쌀 수 있다). 유사하게, 하나의 캐리어의 셀 타워는 낮 또는 저녁의 소정 시간 동안 과부하가 걸려 접속성이 감소할 수 있다. 본 명세서에 설명된 기술을 사용하여, 셀 캐리어 선택 로직(901)은 이러한 조건들을 계속적으로 평가하고, 조건들이 변함에 따라 캐리어들 사이에서 동적으로 스위칭할 수 있다.When the IoT hub 110 is provisioned for multiple carriers 915 and 916, it can dynamically switch between them all day, in accordance with parameter changes. For example, the cost associated with each cellular carrier 915, 916 may vary throughout the day (e.g., the first carrier 915 may be more expensive during a heavy use period, such as a rush hour, The second carrier 916 may be more expensive in the evening). Similarly, the cell towers of one carrier may be overloaded during the day or evening for a certain amount of time to reduce connectivity. Using the techniques described herein, the cell carrier selection logic 901 can continuously evaluate these conditions and dynamically switch between the carriers as the conditions change.

본 발명의 일 실시예에 따른 방법이 도 10에 예시된다. 방법은 도 9에 도시된 아키텍처의 상황 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.A method according to one embodiment of the present invention is illustrated in FIG. The method may be implemented within the context of the architecture shown in FIG. 9, but is not limited to any particular system architecture.

1001에서, IoT 허브는 다수의 셀 캐리어에 대해 프로비저닝되고, 상이한 셀 캐리어에 대한 접속과 관련된 규칙으로 프로그래밍된다. 예를 들어, 하나의 규칙은 IoT 허브가 제2 서비스 제공자를 통해 제1 서비스 제공자에 접속하게 할 수 있다(모든 다른 변수는 동일하거나 정의된 임계치 내에 있음). 1002에서, 셀 캐리어 접속성, 비용 및/또는 다른 적절한 변수와 관련된 데이터가 수집된다. 예를 들어, 상기에 논의된 바와 같이, 각각의 셀 캐리어의 신호 강도는 접속 결정을 행하는 데 사용될 수 있다.At 1001, an IoT hub is provisioned for multiple cell carriers and programmed with rules associated with connections to different cell carriers. For example, one rule may allow the IoT hub to connect to the first service provider through a second service provider (all other variables are within the same or defined threshold). At 1002, data related to cell carrier connectivity, cost, and / or other appropriate variables are collected. For example, as discussed above, the signal strength of each cell carrier may be used to make a connection decision.

1003에서, 규칙은 수집된 데이터를 사용하여 실행되어 IoT 허브를 접속할 주요 셀 캐리어를 결정한다. 예를 들어, 모든 다른 변수가 동일한 경우(또는 지정된 임계치 내에 있는 경우), IoT 허브는 초기에 저가의 셀 캐리어와 접속할 수 있다. 언급된 바와 같이, 초기 주요 셀 캐리어는 조건의 변화 및/또는 IoT 서비스로부터 전송된 새로운/업데이트된 규칙에 응답하여 후속적으로 변경될 수 있다. 1004에서, IoT 허브는 주요 셀 캐리어와 접속하며, 잠재적으로는 보조 셀 캐리어를 폴백 접속으로서 사용한다. 이어서, 1005에서 IoT 허브는 지정된 기간(예를 들어, 한 시간, 하루, 일주일 등) 동안 대기할 수 있으며, 이 기간 동안 IoT 허브는 접속성, 비용 등과 관련된 추가 데이터를 수집할 수 있다. 지연 후에, 프로세스는 반복되고, 규칙/데이터가 크게 변경된 경우, IoT 허브는 1004에서 새로운 주요 셀 캐리어와 접속할 수 있다.At 1003, the rule is executed using the collected data to determine the primary cell carrier to which to connect the IoT hub. For example, if all of the other variables are equal (or within a specified threshold), the IoT hub may initially connect with a low cost cell carrier. As mentioned, the initial primary cell carriers may be subsequently changed in response to changes in conditions and / or new / updated rules sent from the IoT service. At 1004, the IoT hub connects with the primary cell carrier and potentially uses the secondary cell carrier as the fallback connection. Then, at 1005, the IoT hub may wait for a specified period of time (e.g., an hour, a day, a week, etc.) during which time the IoT hub may collect additional data related to connectivity, cost, and so on. After the delay, the process is repeated, and if the rule / data has changed significantly, the IoT hub can contact the new major cell carrier at 1004.

도 11에 예시된 바와 같이, 일 실시예에서, 다양한 상이한 타입의 이벤트(1101, 1102 내지 N)가 IoT 디바이스에 의해 생성되어 IoT 허브(110)에 전송될 수 있다. 제한이 아닌 예로서, 이벤트(1101, 1102 내지 N)는 몇개만 예로 들자면 예를 들어 보안 코드 또는 다른 필요한 인증 없이 사용자의 집에서 문 또는 창이 열리는 것, 온도가 지정된 임계치에 도달하는 것(예를 들어, 이는 스토브 버너가 켜진 채로 있거나 잠재적인 화재를 지시함), 사용자 및 사용자의 가족이 집에 없을 때 모션 검출기가 트리거링되는 것, 연기 감지기가 트리거링되는 것, 스프링클러가 지정된 기간보다 오래 작동했다는 것을 스프링클러 시스템 상의 센서가 지시하는 것, 및 냉장고 센서 또는 팬트리 센서가 사용자에게 특정 음식 품목이 부족함을 지시하는 것과 같은 보안 이벤트를 포함할 수 있다.As illustrated in Figure 11, in one embodiment, various different types of events 1101, 1102 through N may be generated by the IoT device and transmitted to the IoT hub 110. By way of example, and not limitation, events 1101,1102-N may include, by way of example only, opening doors or windows at the user's home, for example without a security code or other necessary authentication, For example, the stove burner remains on or indicates a potential fire), the motion detector is triggered when the user and the user's family are not at home, the smoke detector is triggered, the sprinkler has been operating for longer than the specified period A sensor on the sprinkler system, and a security event such as a refrigerator sensor or fan tree sensor indicating to the user that a particular food item is scarce.

일 실시예에서, IoT 서비스(120) 및/또는 하나 이상의 외부 서비스(1120 내지 1122)는 다양한 IoT 디바이스들에 의해 생성된 이벤트들(1101, 1102 내지 N)을 수신하기 위해 API를 통해 IoT 허브(110)와 인터페이싱할 수 있고, (예를 들어, 사용자의 모바일 디바이스를 통해) 사용자(1115)에게 통지를 보내는 것을 포함한 이벤트에 응답하여 다양한 액션을 취할 수 있다. 예를 들어, 외부 식료품 서비스가 사용자의 냉장고 또는 팬트리에 있는 상이한 음식 품목들의 레벨과 관련된 이벤트를 수신하고 사용자의 온라인 식료품 리스트를 자동으로 업데이트하거나 주문을 스케줄링할 수 있다. 외부 보안 서비스가 사용자의 집에서 보안과 관련된 이벤트를 수신하고 경보에 응답하여 사용자에게 통지하려고 시도할 수 있다. 다른 서비스가 온도 센서가 특정 임계치를 넘어 상승하면 소방서에 통지하고/하거나 사용자에게 통지를 전송할 수 있다. 이들 특정 예는 단지 예시의 목적으로 제공된다는 점에 유의한다. 본 발명의 기본 원리는 임의의 특정 타입의 이벤트 또는 이벤트 응답으로 제한되지 않는다.In one embodiment, the IoT service 120 and / or the one or more external services 1120 through 1122 are connected to the IoT hub (via the API) to receive events 1101, 1102 through N generated by the various IoT devices 110 and may take a variety of actions in response to an event including sending a notification to the user 1115 (e.g., via a user's mobile device). For example, an external grocery service can receive events related to the level of different food items in the user's refrigerator or panning tree, automatically update the user's online grocery list, or schedule an order. The external security service may receive security-related events at the user's home and attempt to notify the user in response to the alert. When another service rises above a certain threshold the temperature sensor can notify the fire department and / or send a notification to the user. It should be noted that these specific examples are provided for illustrative purposes only. The underlying principles of the present invention are not limited to any particular type of event or event response.

일부 경우에, IoT 디바이스에 의해 생성된 이벤트는 무해할 수 있고, IoT 서비스(120) 및/또는 외부 서비스(1120 내지 1122)로 전송될 필요가 없을 수 있다. 예를 들어, 사용자의 IoT 자동 온도 조절 디바이스는 사용자의 집의 현재 온도를 주기적으로 보고할 수 있으며, 다른 IoT 디바이스는 허용 가능한 임계치 내의 측정치만을 나타내는 이벤트를 주기적으로 보고할 수 있다. 결과적으로, 셀룰러 캐리어의 네트워크를 통해(또는 사용자의 인터넷 접속을 통해) 전송되는 이벤트의 수를 줄이기 위해, IoT 허브(110)의 일 실시예는 소정 타입의 이벤트를 IoT 서비스(120) 및/또는 외부 서비스(1120 내지 1122)에 전송하지 않는 이벤트 필터(1110)를 포함한다. 일 실시예에서, 각각의 이벤트(1101, 1102 내지 N)에는 이벤트 타입을 나타내는 식별 코드가 할당된다. IoT 서비스(120) 및/또는 최종 사용자(1115)에 의해 제공되는 (예를 들어, 앱/브라우저를 통해 구성되는) 필터링 규칙들(1111)의 세트에 기초하여, 소정 이벤트 타입들이 이벤트 필터에 의해 필터링(예를 들어, 폐기 또는 단지 비전송)되는 반면, 다른 이벤트 타입들은 IoT 허브(110)에 저장되고 IoT 서비스(120) 및/또는 다른 외부 서비스(1120 내지 1122)로 전송된다.In some cases, the events generated by the IoT device may be harmless and may not need to be transmitted to the IoT service 120 and / or to the external services 1120-1122. For example, a user's IoT thermostat device can periodically report the current temperature of the user's home, and other IoT devices can periodically report an event that only shows measurements within an acceptable threshold. As a result, to reduce the number of events that are transmitted over the network of cellular carriers (or through a user's Internet connection), one embodiment of the IoT hub 110 may provide for certain types of events to the IoT service 120 and / And an event filter 1110 that does not transmit to external services 1120-1122. In one embodiment, each event 1101, 1102 through N is assigned an identification code indicating an event type. Based on the set of filtering rules 1111 (e.g., configured via an app / browser) provided by the IoT service 120 and / or the end user 1115, While other event types are stored in the IoT hub 110 and sent to the IoT service 120 and / or other external services 1120-1122.

언급된 바와 같이, 외부 서비스(1120 내지 1122) 및/또는 IoT 서비스(120)는 인터넷(220)을 통해 사용자의 디바이스로 통지를 전송함으로써 소정 타입의 이벤트를 최종 사용자에게 통지하도록 구성될 수 있다. 예를 들어, 온도 센서가 지정된 임계치를 초과하면, IoT 서비스(120)는 사용자에게 잠재적인 문제점에 대해 알리는 통지를 최종 사용자의 디바이스에 전송할 수 있다. 또한, 일부 경우에, IoT 허브(110)는 (IoT 서비스(120) 및/또는 외부 서비스들(1120 내지 1122)에 직접 이벤트를 전송하는 것에 더하여) 최종 사용자에게 직접 통지를 전송할 수 있다.As noted, external services 1120 through 1122 and / or IoT service 120 may be configured to notify an end user of certain types of events by sending notifications to the user's device over the Internet 220. [ For example, if the temperature sensor exceeds a specified threshold, the IoT service 120 may send a notification to the end user's device informing the user of a potential problem. In addition, in some cases, the IoT hub 110 may send a direct notification to the end user (in addition to sending events directly to the IoT service 120 and / or external services 1120 through 1122).

일 실시예에서, 외부 서비스들(1120 내지 1122) 및 IoT 서비스(120)는 IoT 허브(110)에 의해 노출된 애플리케이션 프로그래밍 인터페이스(API)를 이용한다. 예를 들어, 특정 서비스는 특정 이벤트 세트를 수신하기 위해 API를 통해 등록할 수 있다. IoT 서비스(120)는 각각의 외부 서비스(1120 내지 1122)가 어떤 API(및 이에 따라 어떤 이벤트)를 수신하도록 구성되는지를 알기 때문에, 그것은 필터 규칙 업데이트(1111)를 동적으로 전송하여 이벤트 필터(1110)로 하여금 그 자신 및 다양한 외부 서비스들(1120 내지 1122)에 의해 가입된 그 이벤트들만을 전송하게 할 수 있다. 구성에 따라, IoT 허브(110)는 (외부 서비스로 전송되지 않은 그 이벤트들을 포함한) 모든 이벤트의 로그를 유지할 수 있거나, 전송되지 않은 이벤트를 단순히 폐기할 수 있다.In one embodiment, external services 1120 through 1122 and IoT service 120 utilize an application programming interface (API) exposed by IoT hub 110. For example, a particular service may register via the API to receive a specific set of events. Because IoT service 120 knows which API (and which event accordingly) each external service 1120-1122 is configured to receive, it dynamically transfers filter rule update 1111 to event filter 1110 ) To send only those events subscribed by itself and various external services 1120-1122. Depending on the configuration, the IoT hub 110 may keep a log of all events (including those events that have not been sent to the external service), or may simply discard the events that have not been sent.

일 실시예에서, IoT 서비스(120)는 (IoT 허브(110) 상의 이벤트 필터(1110)에 더하여 또는 그 대신에) 본 명세서에서 설명되는 바와 같은 필터링 규칙들의 세트에 따라 이벤트들을 필터링하기 위한 이벤트 필터를 포함한다. 이 실시예에서, 외부 서비스들(1120 내지 1122) 각각은 IoT 서비스(120)에 의해 노출된 API를 통해 소정 타입의 이벤트들을 수신하기 위해 가입할 수 있다. 이벤트들은 IoT 허브(110)로부터 생성되고(아마도 로컬 이벤트 필터(1110)로 필터링됨), IoT 서비스(120)로 전송되고(잠재적으로 IoT 서비스 필터에 의해 필터링됨), 외부 서비스(1120 내지 1122) 및/또는 최종 사용자의 디바이스로 전송된다. IoT 서비스 필터는 본 명세서에 설명된 IoT 허브 필터와 유사한 방식으로 구성될 수 있다(즉, 필터링 규칙들의 세트에 따라 소정 타입의 이벤트/통지만을 전송함).In one embodiment, IoT service 120 includes an event filter (not shown) for filtering events according to a set of filtering rules as described herein (in addition to or instead of event filter 1110 on IoT hub 110) . In this embodiment, each of the external services 1120 through 1122 may subscribe to receive certain types of events via the API exposed by the IoT service 120. [ Events are generated from the IoT hub 110 (possibly filtered by the local event filter 1110), sent to the IoT service 120 (potentially filtered by the IoT service filter), transmitted to the external services 1120-1122, And / or to the end user's device. The IoT service filter may be configured in a manner similar to the IoT hub filter described herein (i.e., it only sends certain types of events / notifications according to a set of filtering rules).

전술한 바와 같이 IoT 허브(110) 및/또는 IoT 서비스(120) 상에서 이벤트를 필터링하는 기술이 유리한데, 왜냐하면 그것이 셀 캐리어의 네트워크 및/또는 사용자/서비스의 인터넷 접속을 통한 상당한 양의 불필요한 트래픽을 감소시키기 때문이다. 이들 실시예는 많은 수의 IoT 디바이스로 완전히 구현되는 (그리고 이에 따라 많은 수의 이벤트를 생성하는) 집들에 특히 유리할 수 있다.The technique of filtering events on the IoT hub 110 and / or the IoT service 120 as described above is advantageous because it allows a significant amount of unnecessary traffic through the network of cellular carriers and / . These embodiments may be particularly advantageous for houses that are fully implemented with a large number of IoT devices (and thus generate a large number of events).

본 발명의 일 실시예는 다양한 IoT 디바이스와의 각각의 사용자의 상호 작용과 관련된 사용자 거동 데이터를 수집하고, 이에 응답하여 각각의 사용자의 관심에 고유하게 맞춤화된 타겟 콘텐츠 업데이트를 제공한다. 도 12는 2명의 사용자(1201, 1202)가 IoT 허브(110) 상의 IoT 디바이스 제어 로직(412)을 통해 집 안의 IoT 디바이스(101, 102)를 제어하는 예시적인 실시예를 예시한다. 간략함을 위해 단지 2개의 IoT 디바이스(101, 102) 및 2명의 사용자(1201, 1202)가 도시되지만, IoT 허브(110)를 통해 통신 가능하게 결합된 더 많은 IoT 디바이스 및/또는 사용자가 존재할 수 있다. 언급된 바와 같이, 사용자(1201, 1201)는 각각의 사용자의 데이터 처리 디바이스(예를 들어, 스마트폰, 개인용 컴퓨터 등) 상에 설치된 앱 또는 브라우저를 통해 IoT 디바이스(101, 102)와 상호 작용할 수 있다. 언급된 바와 같이, 앱은 IoT 서비스(120) 및/또는 IoT 허브(110)와 인터페이싱하여, 사용자가 다양한 IoT 디바이스(101, 102)로부터 제공된 데이터를 검토하고 IoT 디바이스(101, 102)를 제어할 수 있게 하도록 특별히 설계될 수 있다.One embodiment of the present invention collects user behavior data related to the interaction of each user with the various IoT devices and provides targeted content updates tailored to each user's interest in response. 12 illustrates an exemplary embodiment in which two users 1201 and 1202 control the IoT devices 101 and 102 in the house via the IoT device control logic 412 on the IoT hub 110. [ Although only two IoT devices 101 and 102 and two users 1201 and 1202 are shown for brevity, there may be more IoT devices and / or users communicatively coupled through the IoT hub 110 have. As mentioned, the users 1201 and 1201 can interact with the IoT devices 101 and 102 through an app or browser installed on each user's data processing device (e.g., a smartphone, personal computer, etc.) have. As mentioned, the app interfaces with the IoT service 120 and / or the IoT hub 110 to allow the user to review data provided from the various IoT devices 101 and 102 and control the IoT devices 101 and 102 And the like.

일 실시예에서, IoT 허브(110) 상에서 실행되는 사용자 거동 데이터 수집 로직(1200)은 각각의 사용자에 의해 제어되는 IoT 디바이스뿐만 아니라 각각의 사용자에 의해 관찰되는 정보(예를 들어, 다양한 IoT 디바이스들(101, 102)에 의해 제공되는 정보)를 모니터링 및 수집한다. 예를 들어, 2명의 사용자(1201, 1202) 중 하나는 정원사일 수 있고, 정원에서 소비된 물의 양과 관련된 데이터(IoT 디바이스 상의 센서를 통해 수집됨)를 주기적으로 검토할 수 있다. 이 사용자는 또한 예를 들어 IoT 디바이스 제어(412)를 프로그래밍하여 IoT 디바이스를 제어하여 스프링클러 시스템을 자동으로 턴온 및 턴오프함으로써 IoT 디바이스를 통해 스프링클러 시스템을 제어할 수 있다. 다른 사용자는 정원 관리에 관여하는 것이 아니라 집에서 세탁 및/또는 요리를 할 수 있다.In one embodiment, the user behavior data collection logic 1200 running on the IoT hub 110 may include information that is observed by each user as well as IoT devices controlled by each user (e.g., various IoT devices (E.g., information provided by the devices 101, 102). For example, one of the two users 1201 and 1202 can be a gardener and periodically review data (collected via sensors on the IOT device) associated with the amount of water consumed in the garden. The user can also control the sprinkler system via the IoT device, for example by programming the IoT device control 412 to control the IoT device to automatically turn on and off the sprinkler system. Other users can do laundry and / or cooking at home, rather than being involved in garden management.

이들 활동 각각에 관련된 정보는 사용자 거동 데이터 수집 로직(1200)을 통해 수집되어 각각의 사용자에 대한 사용자 프로파일을 생성할 수 있다. 예를 들어, 일 실시예에서, 거동 데이터는 IoT 허브(110)로부터 IoT 서비스(120)로 전송되며, 이곳에서 각각의 사용자의 선호를 결정하기 위해 분석된다. 이어서, 이들 선호에 따라 타겟 콘텐츠가 각각의 개별 사용자(1201, 1202)에게 전송될 수 있다. 예를 들어, 정원을 관리하는 사용자는 정원 관리 용품 판매와 관련된 정보를 수신할 수 있고, 요리하는 사용자는 주방 용품 및/또는 조리법과 관련된 정보를 수신할 수 있다. 일 실시예에서, IoT 서비스(120)의 소유자/운영자는 온라인 광고 회사와 합의하여 사용자의 데이터 처리 디바이스들 각각으로 전송할 타겟 정보를 생성할 수 있다. 일 실시예에서, IoT 서비스(120)는 사용자 거동 데이터를 하나 이상의 외부 서비스(1120 내지 1122)에 전송하고, 이어서 외부 서비스는 최종 사용자의 데이터 처리 디바이스에 대한 타겟 통지 및 콘텐츠를 생성한다.The information associated with each of these activities may be collected via the user behavior data collection logic 1200 to generate a user profile for each user. For example, in one embodiment, behavior data is transmitted from IoT hub 110 to IoT service 120, where it is analyzed to determine the preference of each user. Targeted content may then be sent to each individual user 1201, 1202 in accordance with these preferences. For example, a user who manages a garden may receive information related to sales of garden care articles, and a user who is cooking may receive information related to kitchen utensils and / or recipes. In one embodiment, the owner / operator of the IoT service 120 may, in agreement with an online advertising company, generate target information to be transmitted to each of the user's data processing devices. In one embodiment, IoT service 120 sends user behavior data to one or more external services 1120-1122, which in turn generates a target notification and content for the end user's data processing device.

일 실시예에서, 사용자 거동 데이터는 또한 IoT 서비스(120) 또는 외부 서비스(1120 내지 1122) 중 하나로부터 직접 수집된다. 예를 들어, IoT 시스템의 환경 밖에서의 사용자의 구매 및 다른 활동은 IoT 서비스(120) 및/또는 외부 서비스(1120 내지 1122)에서 기록될 수 있고, 타겟 통지/콘텐츠를 결정하기 위해 분석의 일부로서 사용될 수 있다.In one embodiment, user behavior data is also collected directly from either IoT service 120 or external services 1120-1122. For example, user purchases and other activities outside the environment of the IoT system may be recorded in the IoT service 120 and / or external services 1120 through 1122 and may be recorded as part of the analysis to determine the target notification / content Can be used.

이러한 타입의 정밀 타겟팅은 이전에는 수행되지 않았는데, 이는 본 명세서에서 설명된 IoT 시스템을 통해 캡처된 특정 실세계 거동이 이전에는 이용 가능하지 않았기 때문이다. 예를 들어, 현재의 타겟 광고는 사용자의 브라우징 이력 및/또는 구매 이력에 기초하지만, (예를 들어, 정원 관리, 요리, 집 유지 보수와 같은) 사용자의 실세계 활동과 관련된 데이터는 이용 가능하지 않다. 그러한 데이터는 특정 제품 및/또는 서비스와 관련된 사용자의 실제 활동을 기초하기 때문에 본 명세서에 설명된 바와 같이 최종 사용자에게 타겟 정보를 제공할 때 특히 유리할 수 있다.Precision targeting of this type has not previously been performed because the specific real-world behavior captured through the IoT system described herein has not previously been available. For example, current targeted advertisements are based on a user's browsing history and / or purchase history, but data related to the user's real-world activity (e.g., grooming, cooking, house maintenance, etc.) are not available . Such data may be particularly advantageous when providing targeted information to an end user as described herein because it is based on the actual activity of the user in connection with a particular product and / or service.

일 실시예에서, 각각의 IoT 디바이스(101)의 저전력 마이크로제어기(200) 및 IoT 허브(110)의 저전력 로직/마이크로제어기(301)는 후술되는 실시예에 의해 사용되는 암호화 키를 저장하기 위한 보안 키 저장소를 포함한다(예를 들어, 도 13 내지 도 15 및 관련 텍스트 참조). 대안적으로, 키는 아래에서 논의되는 바와 같이 가입자 식별 모듈(SIM)에서 보안될 수 있다.In one embodiment, the low-power microcontroller 200 of each IoT device 101 and the low-power logic / microcontroller 301 of the IoT hub 110 provide a security for storing encryption keys used by the embodiments described below. Key stores (see, e.g., Figures 13-15 and related text). Alternatively, the key may be secured in the subscriber identity module (SIM) as discussed below.

도 13은 IoT 서비스(120), IoT 허브(110) 및 IoT 디바이스(101, 102) 간의 통신을 암호화하기 위해 공개 키 기반구조(PKI) 기술 및/또는 대칭 키 교환/암호화 기술을 사용하는 고레벨 아키텍처를 예시한다.Figure 13 illustrates a high level architecture using a public key infrastructure (PKI) technology and / or a symmetric key exchange / encryption technique to encrypt communication between the IoT service 120, the IoT hub 110 and the IoT devices 101, .

공개/비공개 키 쌍을 사용하는 실시예가 먼저 설명될 것이고, 이어서 대칭 키 교환/암호화 기술을 사용하는 실시예가 설명될 것이다. 특히, PKI를 사용하는 실시예에서는, 고유 공개/비공개 키 쌍이 각각의 IoT 디바이스(101, 102), 각각의 IoT 허브(110) 및 IoT 서비스(120)와 관련된다. 일 실시예에서, 새로운 IoT 허브(110)가 설정될 때, 그것의 공개 키가 IoT 서비스(120)에 제공되고, 새로운 IoT 디바이스(101)가 설정될 때, 그것의 공개 키가 IoT 허브(110) 및 IoT 서비스(120) 둘 모두에 제공된다. 디바이스들 사이에서 공개 키를 안전하게 교환하기 위한 다양한 기술이 아래에서 설명된다. 일 실시예에서, 임의의 수신 디바이스가 서명을 확인함으로써 공개 키의 유효성을 검증할 수 있도록 모든 수신 디바이스에 알려진(즉, 인증서 형태의) 마스터 키에 의해 모든 공개 키가 서명된다. 따라서, 단지 원시 공개 키만을 교환하기보다는 이러한 인증서가 교환될 것이다.An embodiment using a public / private key pair will be described first, and then an embodiment using a symmetric key exchange / encryption technique will be described. In particular, in an embodiment using a PKI, a unique public / private key pair is associated with each IoT device 101, 102, each IoT hub 110, and IoT service 120. In one embodiment, when the new IoT hub 110 is set up, its public key is provided to the IoT service 120, and when the new IoT device 101 is set up, its public key is sent to the IoT hub 110 ) And the IoT service 120 are both provided. Various techniques for securely exchanging public keys between devices are described below. In one embodiment, all public keys are signed by a master key (i.e., in the form of a certificate) known to all receiving devices so that any receiving device can validate the public key by verifying the signature. Thus, rather than exchanging only the raw public key, these certificates will be exchanged.

예시된 바와 같이, 일 실시예에서, 각각의 IoT 디바이스(101, 102)는 각각의 디바이스의 비공개 키를 보안 저장하기 위한 보안 키 저장소(1301, 1303)를 각각 포함한다. 이어서, 보안 로직(1302, 1304)은 안전하게 저장된 비공개 키를 사용하여 본 명세서에 설명된 암호화/해독 동작을 수행한다. 유사하게, IoT 허브(110)는 IoT 허브 비공개 키 및 IoT 디바이스(101, 102) 및 IoT 서비스(120)의 공개 키를 저장하기 위한 보안 저장소(1311)뿐만 아니라, 키를 사용하여 암호화/해독 동작을 수행하기 위한 보안 로직(1312)을 포함한다. 마지막으로, IoT 서비스(120)는 그 자신의 비공개 키, 다양한 IoT 디바이스 및 IoT 허브의 공개 키를 보안 저장하기 위한 보안 저장소(1321), 및 키를 사용하여 IoT 허브 및 디바이스와의 통신을 암호화/해독하기 위한 보안 로직(1313)을 포함할 수 있다. 일 실시예에서, IoT 허브(110)가 IoT 디바이스로부터 공개 키 인증서를 수신할 때, IoT 허브는 (예를 들어, 전술한 바와 같이 마스터 키를 사용하여 서명을 확인함으로써) 그것을 검증할 수 있고, 이어서 그것 내부로부터 공개 키를 추출하여 그 공개 키를 그것의 보안 키 저장소(1311)에 저장할 수 있다.As illustrated, in one embodiment, each IoT device 101, 102 includes a secure key store 1301, 1303 for secure storage of the private key of each device. Security logic 1302,1304 then performs the encryption / decryption operations described herein using securely stored private keys. Similarly, the IoT hub 110 includes a secure storage 1311 for storing the public key of the IoT hub private key and the IoT devices 101, 102 and the IoT service 120, as well as the encryption / And security logic 1312 for performing security functions. Finally, the IoT service 120 includes a secure store 1321 for securely storing its own private key, various IoT devices, and the public key of the IoT hub, and keys for encrypting / And may include security logic 1313 for decrypting. In one embodiment, when the IoT hub 110 receives a public key certificate from the IoT device, the IoT hub may verify it (e.g., by verifying the signature using the master key, as described above) And then extracts the public key from within it and stores the public key in its secure key store 1311.

예로서, 일 실시예에서, IoT 서비스(120)가 커맨드 또는 데이터(예를 들어, 도어를 열기 위한 커맨드, 센서를 판독하기 위한 요청, IoT 디바이스에 의해 처리/표시될 데이터 등)를 IoT 디바이스(101)로 전송할 필요가 있을 때, 보안 로직(1313)은 IoT 디바이스(101)의 공개 키를 사용하여 데이터/커맨드를 암호화하여 암호화된 IoT 디바이스 패킷을 생성한다. 일 실시예에서, 보안 로직은 이어서 IoT 허브(110)의 공개 키를 사용하여 IoT 디바이스 패킷을 암호화하여 IoT 허브 패킷을 생성하고 IoT 허브 패킷을 IoT 허브(110)로 전송한다. 일 실시예에서, 서비스(120)는 암호화된 메시지를 그것의 비공개 키 또는 상기에 언급된 마스터 키로 서명하여, 디바이스(101)는 그것이 신뢰 소스로부터 변경되지 않은 메시지를 수신하고 있는지를 검증할 수 있다. 이어서, 디바이스(101)는 비공개 키 및/또는 마스터 키에 대응하는 공개 키를 사용하여 서명을 확인할 수 있다. 전술한 바와 같이, 공개/비공개 키 암호화 대신에 대칭 키 교환/암호화 기술이 사용될 수 있다. 이들 실시예에서, 하나의 키를 비공개적으로 저장하고 대응하는 공개 키를 다른 디바이스에 제공하기보다는, 디바이스들은 각각 암호화에 사용되고 서명을 확인하는 데 사용되는 동일한 대칭 키의 사본을 제공받을 수 있다. 대칭 키 알고리즘의 일례는 진보된 암호화 표준(AES)이지만, 본 발명의 기본 원리는 임의의 타입의 특정 대칭 키로 제한되지 않는다.For example, in one embodiment, the IoT service 120 may communicate commands or data (e.g., a command to open a door, a request to read a sensor, data to be processed / displayed by the IoT device, etc.) 101, the security logic 1313 encrypts the data / command using the public key of the IoT device 101 to generate an encrypted IoT device packet. In one embodiment, the security logic then encrypts the IoT device packet using the public key of the IoT hub 110 to generate an IoT hub packet and sends the IoT hub packet to the IoT hub 110. [ In one embodiment, the service 120 signs the encrypted message with its private key or the master key referred to above, so that the device 101 can verify that it is receiving unchanged messages from the trust source . The device 101 can then verify the signature using the private key and / or the public key corresponding to the master key. As described above, a symmetric key exchange / encryption technique may be used instead of public / private key encryption. In these embodiments, rather than privately storing one key and providing the corresponding public key to the other device, each of the devices may be provided with a copy of the same symmetric key, each of which is used for encryption and used to verify the signature. While an example of a symmetric key algorithm is the Advanced Encryption Standard (AES), the underlying principles of the present invention are not limited to any particular type of symmetric key.

대칭 키 구현을 사용하여, 각각의 디바이스(101)는 IoT 허브(110)와 대칭 키를 교환하기 위해 보안 키 교환 프로토콜에 들어간다. 동적 대칭 키 프로비저닝 프로토콜(DSKPP)과 같은 보안 키 프로비저닝 프로토콜이 보안 통신 채널을 통해 키를 교환하는 데 사용될 수 있다(예를 들어, RFC(Request for Comments) 6063 참조). 그러나, 본 발명의 기본 원리는 임의의 특정 키 프로비저닝 프로토콜로 제한되지 않는다.Using a symmetric key implementation, each device 101 enters a secure key exchange protocol to exchange symmetric keys with the IoT hub 110. A secure key provisioning protocol, such as the Dynamic Symmetric Key Provisioning Protocol (DSKPP), can be used to exchange keys over secure communication channels (see, for example, Request for Comments (RFC) 6063). However, the underlying principles of the present invention are not limited to any particular key provisioning protocol.

일단 대칭 키가 교환되면, 대칭 키는 통신을 암호화하기 위해 각각의 디바이스(101) 및 IoT 허브(110)에 의해 사용될 수 있다. 유사하게, IoT 허브(110) 및 IoT 서비스(120)는 보안 대칭 키 교환을 수행 한 다음, 교환된 대칭 키를 사용하여 통신을 암호화할 수 있다. 일 실시예에서, 새로운 대칭 키가 디바이스(101)와 허브(110) 사이에서 그리고 허브(110)와 IoT 서비스(120) 사이에서 주기적으로 교환된다. 일 실시예에서, 새로운 대칭 키가 디바이스(101), 허브(110) 및 서비스(120) 사이에서 각각의 새로운 통신 세션을 이용하여 교환된다(예를 들어, 새로운 키가 생성되고 각각의 통신 세션 동안 안전하게 교환된다). 일 실시예에서, IoT 허브 내의 보안 모듈(1312)이 신뢰되는 경우, 서비스(120)는 허브 보안 모듈(1312)과 세션 키를 협상할 수 있고, 이어서 보안 모듈(1312)은 각각의 디바이스(120)와 세션 키를 협상할 것이다. 이어서, 서비스(120)로부터의 메시지가 디바이스(101)로의 전송을 위해 재암호화되기 전에 허브 보안 모듈(1312)에서 해독 및 검증될 것이다.Once the symmetric key is exchanged, the symmetric key may be used by each device 101 and the IoT hub 110 to encrypt communications. Similarly, IoT hub 110 and IoT service 120 may perform a secure symmetric key exchange and then encrypt the communication using the exchanged symmetric key. In one embodiment, a new symmetric key is periodically exchanged between the device 101 and the hub 110 and between the hub 110 and the IoT service 120. In one embodiment, a new symmetric key is exchanged between each new communication session between the device 101, the hub 110 and the service 120 (e.g., It is safely exchanged). In one embodiment, if the security module 1312 in the IoT hub is trusted, the service 120 may negotiate the session key with the hub security module 1312, and then the security module 1312 may communicate with each device 120 ) And the session key. The message from the service 120 will then be decrypted and verified in the hub security module 1312 before being re-encrypted for transmission to the device 101.

일 실시예에서, 허브 보안 모듈(1312) 상의 타협(compromise)을 방지하기 위해, 설치 시에 1회(영구) 설치 키가 디바이스(101)와 서비스(120) 사이에서 협상될 수 있다. 메시지를 디바이스(101)로 전송할 때, 서비스(120)는 먼저 이 디바이스 설치 키로 암호화/MAC하고, 이어서 허브의 세션 키로 암호화/MAC할 수 있다. 이어서, 허브(110)는 암호화된 디바이스 블롭(device blob)을 검증 및 추출하여, 이를 디바이스로 전송할 것이다.In one embodiment, a one-time (permanent) installation key may be negotiated between the device 101 and the service 120 at installation time to prevent compromise on the hub security module 1312. When sending a message to the device 101, the service 120 may first encrypt / MAC with the device setup key and then encrypt / MAC with the session key of the hub. The hub 110 then verifies and extracts the encrypted device blob and sends it to the device.

본 발명의 일 실시예에서, 재생 공격을 방지하기 위해 카운터 메커니즘이 구현된다. 예를 들어, 디바이스(101)로부터 허브(110)로의(또는 그 반대로의) 각각의 연속적인 통신이 계속 증가하는 카운터 값을 할당받을 수 있다. 허브(110) 및 디바이스(101) 둘 모두는 이 값을 추적하고 이 값이 디바이스들 간의 각각의 연속적인 통신에서 정확한지를 검증할 것이다. 동일한 기술이 허브(110)와 서비스(120) 사이에서 구현될 수 있다. 이러한 방식으로 카운터를 사용하는 것은 (카운터 값이 부정확할 것이기 때문에) 각각의 디바이스들 간의 통신을 스푸핑(spoofing)하는 것을 더 어렵게 할 것이다. 그러나, 이것 없이도, 서비스와 디바이스 간의 공유 설치 키가 모든 디바이스에 대한 네트워크(허브) 전반적 공격을 방지할 것이다.In one embodiment of the invention, a counter mechanism is implemented to prevent replay attacks. For example, each successive communication from the device 101 to the hub 110 (or vice versa) may be assigned an ever increasing counter value. Both hub 110 and device 101 will track this value and verify that this value is correct in each successive communication between the devices. The same technology may be implemented between the hub 110 and the service 120. Using a counter in this manner would make it more difficult to spoof communication between each of the devices (because the counter value would be incorrect). Without this, however, a shared installation key between the service and the device will prevent a network (hub) overall attack on all devices.

일 실시예에서, 공개/비공개 키 암호화를 사용할 때, IoT 허브(110)는 그것의 비공개 키를 사용하여 IoT 허브 패킷을 해독하고 암호화된 IoT 디바이스 패킷을 생성하여, 이것을 관련 IoT 디바이스(101)로 전송한다. 이어서, IoT 디바이스(101)는 그것의 비공개 키를 사용하여 IoT 디바이스 패킷을 해독하여, IoT 서비스(120)로부터 시작되는 커맨드/데이터를 생성한다. 이어서, IoT 디바이스는 데이터를 처리하고/하거나 커맨드를 실행할 수 있다. 대칭 암호화를 사용하여, 각각의 디바이스는 공유 대칭 키를 사용하여 암호화하고 해독할 것이다. 어느 경우에나, 각각의 송신 디바이스는 또한 메시지를 그것의 비공개 키로 서명할 수 있어서, 수신 디바이스는 그것의 진정성을 검증할 수 있다.In one embodiment, when using public / private key encryption, the IoT hub 110 decrypts the IoT Hub packet using its private key, generates an encrypted IoT device packet and sends it to the associated IoT device 101 send. The IoT device 101 then decrypts the IoT device packet using its private key and generates the command / data starting from the IoT service 120. [ The IoT device can then process data and / or execute commands. Using symmetric encryption, each device will encrypt and decrypt using a shared symmetric key. In either case, each transmitting device can also sign the message with its private key, so that the receiving device can verify its authenticity.

IoT 디바이스(101)로부터 IoT 허브(110)로의 그리고 IoT 서비스(120)로의 통신을 암호화하기 위해 상이한 키 세트가 사용될 수 있다. 예를 들어, 공개/비공개 키 배열을 사용하여, 일 실시예에서, IoT 디바이스(101) 상의 보안 로직(1302)은 IoT 허브(110)의 공개 키를 사용하여, IoT 허브(110)로 전송되는 데이터 패킷을 암호화한다. 이어서, IoT 허브(110) 상의 보안 로직(1312)은 IoT 허브의 비공개 키를 사용하여 데이터 패킷을 해독할 수 있다. 유사하게, IoT 디바이스(101) 상의 보안 로직(1302) 및/또는 IoT 허브(110) 상의 보안 로직(1312)은 IoT 서비스(120)의 공개 키를 사용하여 IoT 서비스(120)로 전송되는 데이터 패킷을 암호화할 수 있다(데이터 패킷은 이어서 IoT 서비스(120) 상의 보안 로직(1313)에 의해 서비스의 비공개 키를 사용하여 해독될 수 있다). 대칭 키를 사용하는 경우, 디바이스(101) 및 허브(110)는 하나의 대칭 키를 공유할 수 있는 반면, 허브 및 서비스(120)는 상이한 대칭 키를 공유할 수 있다.A different set of keys may be used to encrypt communication from the IoT device 101 to the IoT hub 110 and to the IoT service 120. For example, using a public / private key arrangement, in one embodiment, the security logic 1302 on the IoT device 101 is transmitted to the IoT hub 110 using the public key of the IoT hub 110 Encrypt the data packet. The security logic 1312 on the IoT hub 110 may then decrypt the data packet using the private key of the IoT hub. Similarly, the security logic 1302 on the IoT device 101 and / or the security logic 1312 on the IoT hub 110 may use the public key of the IoT service 120 to transmit data packets < RTI ID = 0.0 > (The data packet may then be decrypted using the private key of the service by the security logic 1313 on the IoT service 120). When using a symmetric key, the device 101 and the hub 110 may share a single symmetric key, while the hub and service 120 may share a different symmetric key.

소정의 특정 상세가 위의 설명에서 기재되지만, 본 발명의 기본 원리는 다양한 상이한 암호화 기술을 사용하여 구현될 수 있다는 점에 유의해야 한다. 예를 들어, 상기에 논의된 일부 실시예는 비대칭 공개/비공개 키 쌍을 사용하지만, 대안적인 실시예는 다양한 IoT 디바이스(101, 102), IoT 허브(110) 및 IoT 서비스(120) 사이에서 안전하게 교환되는 대칭 키를 사용할 수 있다. 더욱이, 일부 실시예에서, 데이터/커맨드 그 자체가 암호화되는 것이 아니라, 키가 데이터/커맨드(또는 다른 데이터 구조)에 대한 서명을 생성하는 데 사용된다. 이어서, 수신자는 그것의 키를 사용하여 서명을 확인할 수 있다.While certain specific details are set forth in the foregoing description, it is to be understood 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 be used to securely secure between various IoT devices 101, 102, IoT hub 110 and IoT service 120 A symmetric key to be exchanged can be used. Moreover, in some embodiments, the data / command itself is not encrypted, but the key is used to generate a signature for the data / command (or other data structure). The recipient can then verify the signature using its key.

도 14에 예시된 바와 같이, 일 실시예에서, 각각의 IoT 디바이스(101) 상의 보안 키 저장소는 프로그래밍 가능 가입자 식별 모듈(SIM)(1401)을 사용하여 구현된다. 이 실시예에서, IoT 디바이스(101)는 처음에, IoT 디바이스(101) 상의 SIM 인터페이스(1400) 내에 안착되는 프로그래밍되지 않은 SIM 카드(1401)와 함께 최종 사용자에게 제공될 수 있다. 하나 이상의 암호화 키의 세트를 갖도록 SIM을 프로그래밍하기 위해, 사용자는 SIM 인터페이스(500)로부터 프로그래밍 가능 SIM 카드(1401)를 취하여, 그것을 IoT 허브(110) 상의 SIM 프로그래밍 인터페이스(1402) 안에 삽입한다. 이어서, IoT 허브 상의 프로그래밍 로직(1425)은 SIM 카드(1401)를 안전하게 프로그래밍하여, IoT 디바이스(101)를 IoT 허브(110) 및 IoT 서비스(120)에 대해 등록/페어링한다. 일 실시예에서, 공개/비공개 키 쌍이 프로그래밍 로직(1425)에 의해 무작위로 생성될 수 있고, 이어서 그 쌍의 공개 키는 IoT 허브의 보안 저장 디바이스(411)에 저장될 수 있는 반면, 비공개 키는 프로그래밍 가능 SIM(1401) 내에 저장될 수 있다. 게다가, 프로그래밍 로직(1425)은 IoT 허브(110), IoT 서비스(120) 및/또는 임의의 다른 IoT 디바이스(101)의 공개 키를 (IoT 디바이스(101) 상의 보안 로직(1302)에 의해 발신 데이터를 암호화하는 데 사용되도록) SIM 카드(1401) 상에 저장할 수 있다. 일단 SIM(1401)이 프로그래밍되면, 새로운 IoT 디바이스(101)는 SIM을 보안 식별자로서 사용하여(예를 들어, SIM을 사용하여 디바이스를 등록하기 위한 기존 기술을 사용하여) IoT 서비스(120)로 프로비저닝될 수 있다. 프로비저닝 후에, IoT 허브(110) 및 IoT 서비스(120) 둘 모두는 IoT 디바이스(101)와의 통신을 암호화할 때 사용될 IoT 디바이스의 공개 키의 사본을 안전하게 저장할 것이다.As illustrated in FIG. 14, in one embodiment, a secure key store 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 with an unprogrammed SIM card 1401 seated in the SIM interface 1400 on the IoT device 101. The user takes the programmable SIM card 1401 from the SIM interface 500 and inserts it into the SIM programming interface 1402 on the IoT hub 110 to program the SIM to have the set of one or more encryption keys. The programming logic 1425 on the IoT hub then securely programs the SIM card 1401 to register and pair the IoT device 101 with 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 1425, and then the pair's public key may be stored in the secure storage device 411 of the IoT hub, while the private key May be stored in the programmable SIM 1401. In addition, the programming logic 1425 can be configured to communicate the public key of the IoT hub 110, the IoT service 120 and / or any other IoT device 101 (with the security logic 1302 on the IoT device 101) May be stored on the SIM card 1401 to be used for encrypting the SIM card 1401. Once the SIM 1401 is programmed, the new IoT device 101 uses the SIM as a security identifier (e.g., using existing technology to register the device using a SIM) to provision to the IoT service 120 . After provisioning, both the IoT hub 110 and the IoT service 120 will securely store a copy of the public key of the IoT device to be used when encrypting communications with the IoT device 101.

도 14와 관련하여 전술한 기술은 새로운 IoT 디바이스를 최종 사용자에게 제공할 때 엄청난 유연성을 제공한다. 사용자가 (현재 행해지고 있는 바와 같이) 판매/구매 시에 각각의 SIM을 특정 서비스 제공자에 직접 등록할 것을 요구하기보다는, SIM은 IoT 허브(110)를 통해 최종 사용자에 의해 직접 프로그래밍될 수 있고 프로그래밍의 결과는 IoT 서비스(120)로 안전하게 통신될 수 있다. 결과적으로, 새로운 IoT 디바이스(101)는 온라인 또는 로컬 소매상으로부터 최종 사용자에게 판매될 수 있고, 나중에 IoT 서비스(120)로 안전하게 프로비저닝될 수 있다.The techniques described above in connection with FIG. 14 provide tremendous flexibility when providing new IoT devices to end users. Rather than 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 via the IoT hub 110, The results can be communicated securely to the IoT service 120. As a result, the new IoT device 101 can be sold to an end user from an online or local retail store, and can later be safely provisioned to the IoT service 120.

등록 및 암호화 기술이 SIM(가입자 식별 모듈)의 특정 상황에서 전술되지만, 본 발명의 기본 원리는 "SIM" 디바이스로 제한되지 않는다. 오히려, 본 발명의 기본 원리는 암호화 키 세트를 저장하기 위한 보안 저장소를 갖는 임의의 타입의 디바이스를 사용하여 구현될 수 있다. 또한, 위의 실시예가 이동 가능한 SIM 디바이스를 포함하지만, 일 실시예에서, SIM 디바이스는 이동 가능한 것이 아니라, IoT 디바이스 그 자체가 IoT 허브(110) 상의 프로그래밍 인터페이스(1402) 내에 삽입될 수 있다.Although registration and encryption techniques are described in the specific context of a SIM (Subscriber Identity Module), the basic principles of the invention are not limited to a "SIM" device. Rather, the underlying principles of the present invention may be implemented using any type of device having a secure repository for storing a set of encryption keys. In addition, although the above embodiment includes a mobile SIM device, in one embodiment, the SIM device is not mobile, but the IoT device itself may be inserted into the programming interface 1402 on the IoT hub 110. [

일 실시예에서, 사용자가 SIM(또는 다른 디바이스)을 프로그래밍할 것을 요구하기보다는, SIM은 최종 사용자에게 배포되기 전에 IoT 디바이스(101) 내에 미리 프로그래밍된다. 이 실시예에서, 사용자가 IoT 디바이스(101)를 설정할 때, 본 명세서에서 설명되는 다양한 기술은 IoT 허브(110)/IoT 서비스(120)와 새로운 IoT 디바이스(101) 사이에서 암호화 키를 안전하게 교환하는 데 사용될 수 있다.In one embodiment, rather than requiring the user to program the SIM (or other device), the SIM is pre-programmed in the IoT device 101 before being distributed to the end user. In this embodiment, when the user configures the IoT device 101, various techniques described herein may safely exchange the encryption key between the IoT hub 110 / IoT service 120 and the new IoT device 101 Can be used.

예를 들어, 도 15a에 예시된 바와 같이, 각각의 IoT 디바이스(101) 또는 SIM(401)은 IoT 디바이스(101) 및/또는 SIM(1401)을 고유하게 식별하는 바코드 또는 QR 코드(1501)와 함께 패키징될 수 있다. 일 실시예에서, 바코드 또는 QR 코드(1501)는 IoT 디바이스(101) 또는 SIM(1401)에 대한 공개 키의 인코딩된 표현을 포함한다. 대안적으로, 바코드 또는 QR 코드(1501)는 IoT 허브(110) 및/또는 IoT 서비스(120)에 의해 공개 키를 식별하거나 생성하는 데 사용될 수 있다(예를 들어, 보안 저장소에 이미 저장된 공개 키에 대한 포인터로서 사용될 수 있다). 바코드 또는 QR 코드(1501)는 (도 15a에 도시된 바와 같이) 별도의 카드 상에 인쇄될 수 있거나 IoT 디바이스 그 자체 상에 직접 인쇄될 수 있다. 바코드가 인쇄되는 곳에 관계없이, 일 실시예에서, IoT 허브(110)에는 바코드를 판독하고 결과적인 데이터를 IoT 허브(110) 상의 보안 로직(1312) 및/또는 IoT 서비스(120) 상의 보안 로직(1313)에 제공하기 위한 바코드 판독기(206)가 탑재된다. 이어서, IoT 허브(110) 상의 보안 로직(1312)은 IoT 디바이스에 대한 공개 키를 그것의 보안 키 저장소(1311) 내에 저장할 수 있고, IoT 서비스(120) 상의 보안 로직(1313)은 공개 키를 (후속 암호화된 통신에 사용되도록) 그것의 보안 저장소(1321) 내에 저장할 수 있다.For example, as illustrated in FIG. 15A, each IoT device 101 or SIM 401 may include a barcode or QR code 1501 that uniquely identifies the IoT device 101 and / or the SIM 1401, Can be packaged together. In one embodiment, the bar code or QR code 1501 includes an encoded representation of the public key for the IOT device 101 or the SIM 1401. Alternatively, the bar code 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., a public key already stored in the secure store) Can be used as a pointer to < / RTI > The bar code or QR code 1501 can be printed on a separate card (as shown in Figure 15A) or printed directly on the IOT device itself. Regardless of where the bar code is printed, in one embodiment, the IoT hub 110 reads the bar code and sends the resulting data to the security logic 1312 on the IoT hub 110 and / or the security logic 1312 on the IoT service 120 1313 are mounted. The security logic 1312 on the IoT hub 110 may then store the public key for the IoT device in its secure key store 1311 and the security logic 1313 on the IoT service 120 May be stored in its secure store 1321 (to be used for subsequent encrypted communications).

일 실시예에서, 바코드 또는 QR 코드(1501)에 포함되는 데이터는 또한 IoT 서비스 제공자에 의해 설계된 IoT 앱 또는 브라우저 기반 애플릿이 설치된 (예를 들어, 아이폰 또는 안드로이드 디바이스와 같은) 사용자 디바이스(135)를 통해 캡처될 수 있다. 일단 캡처되면, 바코드 데이터는 (예를 들어, 보안 소켓 계층(SSL) 접속과 같은) 보안 접속을 통해 IoT 서비스(120)로 안전하게 통신될 수 있다. 바코드 데이터는 또한 보안 로컬 접속을 통해(예를 들어, 로컬 WiFi 또는 블루투스 LE 접속을 통해) 클라이언트 디바이스(135)로부터 IoT 허브(110)로 제공될 수 있다.In one embodiment, the data contained in the bar code or QR code 1501 may also include a user device 135 (e.g., an iPhone or Android device) with an IoT app designed by an IoT service provider or a browser based applet installed ≪ / RTI > Once captured, the barcode data may be securely communicated to the IoT service 120 over a secure connection (e.g., a secure socket layer (SSL) connection). Barcode data may also be provided from the client device 135 to the IoT hub 110 via a secure local connection (e.g., via a local WiFi or Bluetooth LE connection).

IoT 디바이스(101) 상의 보안 로직(1302) 및 IoT 허브(110) 상의 보안 로직(1312)은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 예를 들어, 일 실시예에서, 보안 로직(1302, 1312)은 IoT 디바이스(101)와 IoT 허브(110) 사이에 로컬 통신 채널(130)을 설정하는 데 사용되는 칩(예를 들어, 로컬 채널(130)이 블루투스 LE인 경우에 블루투스 LE 칩) 내에 구현된다. 보안 로직(1302, 1312)의 특정 위치에 관계없이, 일 실시예에서, 보안 로직(1302, 1312)은 소정 타입의 프로그램 코드를 실행하기 위한 보안 실행 환경을 설정하도록 설계된다. 이것은 예를 들어 트러스트존(TrustZone) 기술(일부 ARM 프로세서 상에서 이용 가능함) 및/또는 신뢰 실행 기술(Trusted Execution Technology)(인텔(Intel)에 의해 설계됨)을 사용하여 구현될 수 있다. 물론, 본 발명의 기본 원리는 임의의 특정 타입의 보안 실행 기술로 제한되지 않는다.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 may be implemented on a chip (e. G., A local channel < RTI ID = 0.0 > (Bluetooth LE chip when the Bluetooth LE 130 is a Bluetooth LE). Regardless of the particular location of the security logic 1302, 1312, in one embodiment, security logic 1302, 1312 is designed to set up a secure execution environment for executing certain types of program code. This may be implemented using, for example, 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 security implementation technology.

일 실시예에서, 바코드 또는 QR 코드(1501)는 각각의 IoT 디바이스(101)를 IoT 허브(110)와 페어링하는 데 사용될 수 있다. 예를 들어, 블루투스 LE 디바이스를 페어링하기 위해 현재 사용되는 표준 무선 페어링 프로세스를 사용하기보다는, 바코드 또는 QR 코드(1501) 내에 임베딩되는 페어링 코드가 IoT 허브를 대응하는 IoT 디바이스와 페어링하기 위해 IoT 허브(110)에 제공될 수 있다.In one embodiment, a bar code or QR code 1501 may be used to pair each IoT device 101 with the IoT hub 110. [ For example, rather than using the standard wireless pairing process currently used to pair a Bluetooth LE device, the pairing code embedded within the bar code or QR code 1501 is used by the IoT hub to pair the IoT hub with the corresponding IoT device 110).

도 15b는 IoT 허브(110) 상의 바코드 판독기(206)가 IoT 디바이스(101)와 관련된 바코드/QR 코드(1501)를 캡처하는 일 실시예를 예시한다. 언급된 바와 같이, 바코드/QR 코드(1501)는 IoT 디바이스(101) 상에 직접 인쇄될 수 있거나, IoT 디바이스(101)가 제공된 별개의 카드 상에 인쇄될 수 있다. 어느 경우에나, 바코드 판독기(206)는 바코드/QR 코드(1501)로부터 페어링 코드를 판독하고 로컬 통신 모듈(1580)에 페어링 코드를 제공한다. 일 실시예에서, 로컬 통신 모듈(1580)은 블루투스 LE 칩 및 관련 소프트웨어이지만, 본 발명의 기본 원리는 임의의 특정 프로토콜 표준으로 제한되지 않는다. 일단 페어링 코드가 수신되면, 그것은 페어링 데이터(1585)를 포함하는 보안 저장소에 저장되고, IoT 디바이스(101) 및 IoT 허브(110)는 자동적으로 페어링된다. IoT 허브가 이러한 방식으로 새로운 IoT 디바이스와 페어링될 때마다, 그러한 페어링을 위한 페어링 데이터는 보안 저장소(1585) 내에 저장된다. 일 실시예에서, 일단 IoT 허브(110)의 로컬 통신 모듈(1580)이 페어링 코드를 수신하면, 그것은 IoT 디바이스(101)와의 로컬 무선 채널을 통한 통신을 암호화하기 위한 키로서 코드를 사용할 수 있다.15B illustrates an embodiment in which the bar code reader 206 on the IOT hub 110 captures the bar code / QR code 1501 associated with the IoT device 101. [ As mentioned, the bar code / 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 bar code reader 206 reads the pairing code from the bar code / 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, but the underlying principles of the invention are not limited to any particular protocol standard. Once the pairing code is received, it is stored in a secure store containing the pairing data 1585, and the IoT device 101 and the IoT hub 110 are automatically paired. Whenever the IoT hub is paired with a new IoT device in this manner, the pairing data for such pairing is stored in secure repository 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 for encrypting communications over the local wireless channel with the IoT device 101. [

유사하게, IoT 디바이스(101) 측에서, 로컬 통신 모듈(1590)은 로컬 보안 저장 디바이스(1595) 내에 IoT 허브와의 페어링을 지시하는 페어링 데이터를 저장한다. 페어링 데이터(1595)는 바코드/QR 코드(1501)에서 식별된 미리 프로그래밍된 페어링 코드를 포함할 수 있다. 페어링 데이터(1595)는 또한 보안 로컬 통신 채널을 설정하는 데 필요한, IoT 허브(110) 상의 로컬 통신 모듈(1580)로부터 수신된 페어링 데이터(예를 들어, IoT 허브(110)와의 통신을 암호화하기 위한 추가 키)를 포함할 수 있다.Similarly, on the IoT device 101 side, the local communication module 1590 stores the pairing data indicating the pairing with the IoT hub in the local secure storage device 1595. The pairing data 1595 may include a pre-programmed pairing code identified in the bar code / QR code 1501. [ The pairing data 1595 also includes pairing data 1560 that is required to establish a secure local communication channel and which is used to encrypt communication with the local communication module 1580 on the IoT hub 110 Additional keys).

따라서, 바코드/QR 코드(1501)는 페어링 코드가 무선으로 전송되지 않기 때문에 현재 무선 페어링 프로토콜보다 훨씬 더 안전한 방식으로 로컬 페어링을 수행하는 데 사용될 수 있다. 또한, 일 실시예에서, 페어링에 사용되는 동일한 바코드/QR 코드(1501)는 IoT 디바이스(101)로부터 IoT 허브(110)로의 그리고 IoT 허브(110)로부터 IoT 서비스(120)로의 보안 접속을 구축하기 위한 암호화 키를 식별하는 데 사용될 수 있다.Thus, the bar code / QR code 1501 can be used to perform local pairing in a way that is much more secure than the current wireless pairing protocol because the pairing code is not transmitted wirelessly. Also, in one embodiment, the same bar code / QR code 1501 used for pairing may be used to establish a secure connection from the IoT device 101 to the IoT hub 110 and from the IoT hub 110 to the IoT service 120 Lt; / RTI > may be used to identify the encryption key for the user.

본 발명의 일 실시예에 따른 SIM 카드를 프로그래밍하는 방법이 도 16에 예시되어 있다. 방법은 전술한 시스템 아키텍처 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.A method of programming a SIM card according to an embodiment of the present invention is illustrated in FIG. The methodology may be implemented within the system architecture described above, but is not limited to any particular system architecture.

1601에서 사용자는 블랭크(blank) SIM 카드를 갖는 새로운 IoT 디바이스를 수신하고, 1602에서 사용자는 블랭크 SIM 카드를 IoT 허브 안에 삽입한다. 1603에서, 사용자는 하나 이상의 암호화 키의 세트를 갖도록 블랭크 SIM 카드를 프로그래밍한다. 예를 들어, 전술한 바와 같이, 일 실시예에서, IoT 허브는 공개/비공개 키 쌍을 무작위로 생성하고, SIM 카드 상에 비공개 키를 저장하고 그것의 로컬 보안 저장소에 공개 키를 저장할 수 있다. 또한, 1604에서, 적어도 공개 키가 IoT 서비스로 전송되어, 그것은 IoT 디바이스를 식별하고 IoT 디바이스와의 암호화된 통신을 설정하는 데 사용될 수 있다. 전술한 바와 같이, 일 실시예에서, "SIM" 카드 이외의 프로그래밍 가능 디바이스가 도 16에 도시된 방법에서 SIM 카드와 동일한 기능을 수행하는 데 사용될 수 있다.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 the blank SIM card to have 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, store the private key on the SIM card and store the public key in its local secure store. Also at 1604, at least the public key is transmitted to the IoT service, which can be used to identify the IoT device and establish encrypted communication with the IoT device. As described above, in one embodiment, a programmable device other than the "SIM" card may be used to perform the same function as the SIM card in the method shown in FIG.

새로운 IoT 디바이스를 네트워크 안에 통합하는 방법이 도 17에 예시되어 있다. 방법은 전술한 시스템 아키텍처 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.A method of incorporating a new IoT device into a network is illustrated in FIG. The methodology may be implemented within the system architecture described above, but is not limited to any particular system architecture.

1701에서, 사용자는 암호화 키가 미리 할당된 새로운 IoT 디바이스를 수신한다. 1702에서, 키는 IoT 허브에 안전하게 제공된다. 전술한 바와 같이, 일 실시예에서, 이것은 디바이스에 할당된 공개/비공개 키 쌍의 공개 키를 식별하기 위해 IoT 디바이스와 관련된 바코드를 판독하는 것을 포함한다. 바코드는 IoT 허브에 의해 직접 판독되거나 모바일 디바이스를 통해 앱 또는 브라우저를 통해 캡처될 수 있다. 대안적인 실시예에서, 근거리장 통신(NFC) 채널 또는 보안 WiFi 채널과 같은 보안 통신 채널이 IoT 디바이스와 IoT 허브 사이에 설정되어 키를 교환할 수 있다. 키가 전송되는 방식에 상관없이, 일단 수신되면, 그것은 IoT 허브 디바이스의 보안 키 저장소에 저장된다. 전술한 바와 같이, 보안 엔클레이브(Secure Enclave), 신뢰 실행 기술(TXT) 및/또는 트러스트존과 같은 다양한 보안 실행 기술이 키를 저장하고 보호하기 위해 IoT 허브 상에서 사용될 수 있다. 또한, 1703에서, 키는 IoT 서비스로 안전하게 전송되며, IoT 서비스는 그 자신의 보안 키 저장소에 키를 저장한다. 이어서, IoT 서비스는 키를 사용하여 IoT 디바이스와의 통신을 암호화할 수 있다. 다시 한번, 교환은 인증서/서명된 키를 사용하여 구현될 수 있다. 허브(110) 내에서, 저장된 키의 변경/추가/제거를 방지하는 것이 특히 중요하다.At 1701, the user receives a new IoT device pre-assigned with an encryption key. At 1702, the key is securely provided to the IoT hub. As discussed above, in one embodiment, this involves reading the barcode associated with the IoT device to identify the public key of the public / private key pair assigned to the device. Barcodes can be read directly by the IoT hub or captured via an app or browser via a mobile device. In an alternative embodiment, 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 keys. Regardless of how the key is transmitted, once received, it is stored in the secure key store of the IoT hub device. As described above, various security enforcement techniques, such as Secure Enclave, Trusted Execution Technology (TXT), and / or Trust Zone, may be used on the IoT hub to store and protect keys. Also, at 1703, the key is securely transmitted to the IoT service, which stores the key in its own secure key store. The IoT service can then use the key to encrypt communication with the IoT device. Once again, the exchange may be implemented using a certificate / signed key. Within hub 110, it is particularly important to prevent modification / addition / removal of stored keys.

공개/비공개 키를 사용하여 커맨드/데이터를 IoT 디바이스로 안전하게 통신하는 방법이 도 18에 예시되어 있다. 방법은 전술한 시스템 아키텍처 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.A method of securely communicating commands / data to an IoT device using a public / private key is illustrated in FIG. The methodology may be implemented within the system architecture described above, but is not limited to any particular system architecture.

1801에서, IoT 서비스는 IoT 디바이스 공개 키를 사용하여 데이터/커맨드를 암호화하여 IoT 디바이스 패킷을 생성한다. 이어서 그것은 IoT 허브의 공개 키를 사용하여 IoT 디바이스 패킷을 암호화하여 IoT 허브 패킷을 생성한다(예를 들어, IoT 디바이스 패킷 주위에 IoT 허브 래퍼(wrapper)를 생성함). 1802에서, IoT 서비스는 IoT 허브 패킷을 IoT 허브로 전송한다. 1803에서, IoT 허브는 IoT 허브의 비공개 키를 사용하여 IoT 허브 패킷을 해독하여 IoT 디바이스 패킷을 생성한다. 1804에서, 그것은 이어서 IoT 디바이스 패킷을 IoT 디바이스로 전송하고, IoT 디바이스는 1805에서 IoT 디바이스 비공개 키를 사용하여 IoT 디바이스 패킷을 해독하여 데이터/커맨드를 생성한다. 1806에서, IoT 디바이스는 데이터/커맨드를 처리한다.At 1801, the IoT service encrypts the data / command using the IoT device public key to generate the IoT device packet. It then encrypts the IoT device packet using the public key of the IoT hub to create an IoT hub packet (e.g., creating an IoT hub wrapper around the IoT device packet). At 1802, the IoT service sends the IoT hub packet to the IoT hub. At 1803, the IoT hub decrypts the IoT hub packet using the private key of the IoT hub to generate the IoT device packet. At 1804, it then sends the IoT device packet to the IoT device, which at 1805 decrypts the IoT device packet using the IoT device private key to generate the data / command. At 1806, the IoT device processes the data / command.

대칭 키를 사용하는 실시예에서, 대칭 키 교환은 각각의 디바이스들 사이에서(예를 들어, 각각의 디바이스와 허브 사이에서 그리고 허브와 서비스 사이에서) 협상될 수 있다. 일단 키 교환이 완료되면, 각각의 송신 디바이스는 데이터를 수신 디바이스로 송신하기 전에 대칭 키를 사용하여 각각의 송신을 암호화 및/또는 서명한다.In embodiments using a symmetric key, the symmetric key exchange may be negotiated between each of the devices (e.g., between each device and the hub and between the hub and the service). Once the key exchange is complete, each transmitting device encrypts and / or signs each transmission using a symmetric key before transmitting the data to the receiving device.

본 발명의 실시예는 위에서 설명된 다양한 단계를 포함할 수 있다. 단계는 범용 또는 특수-목적 프로세서로 하여금 그 단계를 수행하게 하기 위해 사용될 수 있는 기계-실행 가능 명령어들로 구현될 수 있다. 대안적으로, 이들 단계는 단계를 수행하기 위한 하드와이어드 로직(hardwired logic)을 포함하는 특정 하드웨어 컴포넌트들에 의해, 또는 프로그래밍된 컴퓨터 컴포넌트와 맞춤형 하드웨어 컴포넌트의 임의의 조합에 의해 수행될 수 있다.Embodiments of the present invention may include the various steps described above. Steps may be implemented with machine-executable instructions that may be used to cause a general purpose or special-purpose processor to perform the steps. Alternatively, these steps may be performed by specific hardware components including hardwired logic for performing the steps, or by any combination of programmed computer components and customized hardware components.

본 명세서에 설명된 바와 같이, 명령어는, 소정의 동작을 수행하도록 구성되거나, 비일시적인 컴퓨터 판독 가능 매체에 수록되는 메모리에 저장된 소프트웨어 명령어 또는 미리 결정된 기능을 갖는 주문형 집적 회로(ASIC)와 같은 하드웨어의 특정한 구성을 지칭할 수 있다. 따라서, 도면에 도시된 기법은 하나 이상의 전자 디바이스(예를 들어, 최종 스테이션, 네트워크 요소 등) 상에 저장되고 그것 상에서 실행되는 코드 및 데이터를 사용하여 구현될 수 있다. 그러한 전자 디바이스는 비일시적 컴퓨터 기계 판독 가능 저장 매체(예를 들어, 자기 디스크, 광 디스크, 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리 디바이스, 상변화 메모리) 및 일시적 컴퓨터 기계 판독 가능 통신 매체(예를 들어, 전기, 광학, 음향 또는 다른 형태의 전파 신호 - 예를 들어, 반송파, 적외선 신호, 디지털 신호 등)와 같은 컴퓨터 기계 판독 가능 매체를 사용하여 코드 및 데이터를 저장하고 (내부적으로 그리고/또는 네트워크를 통해 다른 전자 디바이스와) 통신한다. 부가적으로, 그러한 전자 디바이스는 전형적으로 하나 이상의 저장 디바이스(비일시적 기계 판독 가능 저장 매체), 사용자 입력/출력 디바이스(예를 들어, 키보드, 터치스크린, 및/또는 디스플레이), 및 네트워크 접속부와 같은 하나 이상의 다른 컴포넌트에 결합된 하나 이상의 프로세서의 세트를 포함한다. 프로세서의 세트와 다른 컴포넌트의 결합은 전형적으로 하나 이상의 버스 및 브리지(또한 버스 제어기로 지칭됨)를 통해 이루어진다. 저장 디바이스 및 네트워크 트래픽을 반송하는 신호는 각각 하나 이상의 기계 판독 가능 저장 매체 및 기계 판독 가능 통신 매체를 대표한다. 따라서, 주어진 전자 디바이스의 저장 디바이스는 전형적으로 그 전자 디바이스의 하나 이상의 프로세서의 세트 상에서의 실행을 위한 코드 및/또는 데이터를 저장한다. 물론, 본 발명의 실시예의 하나 이상의 부분이 소프트웨어, 펌웨어, 및/또는 하드웨어의 상이한 조합을 사용하여 구현될 수 있다.As described herein, an instruction may be implemented in hardware such as an application specific integrated circuit (ASIC) having software instructions or predetermined functionality stored in a memory configured to perform a predetermined operation or contained in a non-volatile computer readable medium Can refer to a specific configuration. Thus, the techniques shown in the figures may be implemented using code and data stored on and executed on one or more electronic devices (e.g., end stations, network elements, etc.). Such electronic devices include non-volatile computer-readable storage media (e.g., magnetic disks, optical disks, random access memories, read only memories, flash memory devices, phase change memories) For example, a computer-readable medium, such as an electrical, optical, acoustical or other form of propagated signal (e.g., carrier wave, infrared signal, digital signal, etc.) To other electronic devices). Additionally, such electronic devices typically include one or more storage devices (non-volatile machine readable storage media), user input / output devices (e.g., keyboard, touch screen, and / or display) And a set of one or more processors coupled to one or more other components. The combination of a set of processors and other components typically takes place via one or more buses and bridges (also referred to as bus controllers). The storage device and the signal carrying the network traffic each represent one or more machine-readable storage media and machine-readable communication media. Thus, a storage 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, one or more portions of an embodiment of the invention may be implemented using different combinations of software, firmware, and / or hardware.

이러한 상세한 설명 전반에 걸쳐, 설명의 목적으로, 본 발명의 완전한 이해를 제공하기 위해 다수의 특정 상세가 기술되었다. 그러나, 본 발명은 이러한 특정 상세들 중 일부 없이도 실시될 수 있다는 것이 당업자에게 명백할 것이다. 소정의 경우에, 잘 알려진 구조 및 기능은 본 발명의 주제를 불명확하게 하는 것을 피하기 위해 정성 들여 상세히 설명되지 않았다. 따라서, 본 발명의 범주 및 사상은 후속하는 청구범위의 관점에서 판단되어야 한다.Throughout this Detailed Description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to those 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 in order to avoid obscuring the subject matter of the present invention. Accordingly, the scope and spirit of the present invention should be determined in light of the following claims.

Claims (163)

시스템으로서,
사물 인터넷(IoT) 허브 - 상기 IoT 허브는 광역 네트워크(WAN)를 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 -; 및
무선 통신 채널을 통해 상기 IoT 허브에 통신 가능하게 결합된 적어도 하나의 IoT 디바이스 - 상기 IoT 디바이스는 지정된 전자 장비를 상기 전자 장비와의 적외선(IR) 또는 라디오 주파수(RF) 통신을 통해 제어하는 IR 또는 RF 블라스터를 포함하고, 상기 IoT 디바이스는 상기 전자 장비의 동작과 관련된 현재 조건들을 검출하는 적어도 하나의 센서를 추가로 포함하며, 상기 IoT 디바이스는 상기 무선 통신 채널을 통해 상기 현재 조건들의 지시를 상기 IoT 허브로 전송함 -
를 포함하며,
상기 IoT 허브는 상기 전자 장비를 제어하는 데 사용 가능한 원격 제어 코드들을 저장하는 원격 제어 코드 데이터베이스를 포함하고, 상기 IoT 허브는 상기 원격 제어 코드들을 사용하여 원격 제어 커맨드들을 생성하는 제어 로직을 추가로 포함하며, 상기 원격 제어 커맨드들은 상기 현재 조건들 및 사용자 디바이스를 통해 제공되는 최종 사용자로부터의 입력에 응답하여 상기 제어 로직에 의해 선택되고, 상기 IoT 허브는 상기 무선 통신 채널을 통해 상기 커맨드들을 상기 IoT 디바이스로 전송하며,
상기 IoT 디바이스는 이에 응답하여 상기 원격 제어 커맨드들을 상기 전자 장비로 전송하여 상기 전자 장비를 제어하는, 시스템.
As a system,
An Internet (IoT) hub, said IoT hub comprising a network interface for coupling said IoT hub to an IoT service via a wide area network (WAN); And
At least one IoT device communicatively coupled to the IoT hub via a wireless communication channel, the IoT device comprising: an IR (infrared) or radio frequency (RF) communication device for controlling designated electronic equipment with infrared Further comprising an RF blaster, wherein the IoT device further comprises at least one sensor for detecting current conditions associated with operation of the electronic equipment, wherein the IoT device transmits an indication of the current conditions via the wireless communication channel to the IoT Sent to hub -
/ RTI >
The IoT hub further comprises a remote control code database storing remote control codes usable for controlling the electronic equipment, the IoT hub further comprising control logic for generating remote control commands using the remote control codes Wherein the remote control commands are selected by the control logic responsive to the current conditions and an input from an end user provided via the user device and the IoT hub sends the commands via the wireless communication channel to the IoT device Lt; / RTI >
And wherein the IoT device transmits the remote control commands to the electronic equipment in response thereto to control the electronic equipment.
제1항에 있어서, 상기 전자 장비는 에어컨 및/또는 히터를 포함하고, 상기 센서는 온도 센서를 포함하며, 상기 현재 조건들은 온도를 포함하는, 시스템.The system of claim 1, wherein the electronic equipment includes an air conditioner and / or a heater, the sensor includes a temperature sensor, and the current conditions include temperature. 제2항에 있어서, 상기 사용자 디바이스에 의해 제공되는 상기 최종 사용자로부터의 상기 입력은 원하는 온도를 포함하고, 상기 제어 로직은 상기 원격 제어 커맨드들을 생성하여 상기 에어컨 및/또는 히터를 턴온 또는 턴오프하여 상기 원하는 온도를 달성하는, 시스템.3. The method of claim 2, wherein the input from the end user provided by the user device comprises a desired temperature and the control logic generates the remote control commands to turn the air conditioner and / or the heater on or off To achieve said desired temperature. 제1항에 있어서, 상기 전자 장비는 시청각 장비, 발광체(light), 스토브, 세탁기 및/또는 건조기를 포함하는, 시스템.The system of claim 1, wherein the electronic equipment comprises audiovisual equipment, a light, a stove, a washer, and / or a dryer. 제1항에 있어서, 상기 IoT 허브는 상기 사용자가 상기 전자 장비를 식별하는 정보를 입력하는 것에 응답하여 상기 IoT 서비스 상의 마스터 제어 코드 데이터베이스에서 원격 제어 코드들을 검색하는 원격 제어 코드 학습 로직을 포함하는, 시스템.2. The method of claim 1, wherein the IoT hub comprises remote control code learning logic to retrieve remote control codes from a master control code database on the IoT service in response to the user entering information identifying the electronic equipment. system. 제5항에 있어서, 상기 원격 제어 코드 학습 로직은 상기 IoT 허브 상에 통합된 IR/RF 인터페이스에 통신 가능하게 결합되고, 상기 원격 제어 코드 학습 로직은 상기 전자 장비와 함께 동작하도록 설계된 원래의 리모트 컨트롤들로부터 상기 IR/RF 인터페이스를 통해 원격 제어 코드들을 캡처함으로써 상기 원래의 리모트 컨트롤들로부터 직접 상기 원격 제어 코드들을 학습하는, 시스템.6. The method of claim 5, wherein the remote control code learning logic is communicatively coupled to an IR / RF interface integrated on the IoT hub, and the remote control code learning logic comprises an original remote control The remote control codes are learned directly from the original remote controls by capturing remote control codes via the IR / RF interface from the remote control. 제6항에 있어서, 상기 원격 제어 코드 학습 로직은 상기 캡처된 원격 제어 코드들을 상기 IoT 허브 상의 상기 원격 제어 코드 데이터베이스에 저장하는, 시스템.7. The system of claim 6, wherein the remote control code learning logic stores the captured remote control codes in the remote control code database on the IoT hub. 제1항에 있어서, 상기 사용자로부터의 상기 입력은 상기 IoT 서비스를 통해 상기 IoT 허브에 제공되는, 시스템.2. The system of claim 1, wherein the input from the user is provided to the IoT hub via the IoT service. 제1항에 있어서, 상기 무선 통신 채널은 블루투스 저에너지(BTLE) 통신 채널을 포함하는, 시스템.The system of claim 1, wherein the wireless communication channel comprises a Bluetooth low energy (BTLE) communication channel. 제1항에 있어서, 상기 IoT 허브는 상기 IoT 허브를 상기 WAN에 결합하는 셀룰러 네트워크 접속을 통해 상기 IoT 서비스에 통신 가능하게 결합되는, 시스템.2. The system of claim 1, wherein the IoT hub is communicatively coupled to the IoT service via a cellular network connection that couples the IoT hub to the WAN. 제1항에 있어서,
상기 IoT 허브에 통신 가능하게 결합된 복수의 추가의 IoT 디바이스들을 추가로 포함하며, 상기 IoT 디바이스들 각각은 상기 전자 장비와의 IR 또는 RF 통신을 통해 상이한 타입들의 전자 장비를 제어하는 IR 또는 RF 블라스터를 포함하고, 각각의 IoT 디바이스는 상기 상이한 전자 장비의 동작과 관련된 현재 조건들을 검출하는 적어도 하나의 센서를 추가로 포함하고, 각각의 IoT 디바이스는 상기 무선 통신 채널을 통해 상기 현재 조건들의 지시를 상기 IoT 허브로 전송하는, 시스템.
The method according to claim 1,
Further comprising a plurality of additional IoT devices communicatively coupled to the IoT hub, wherein each of the IoT devices is an IR or RF blaster that controls different types of electronic equipment through IR or RF communications with the electronic equipment Wherein each IoT device further comprises at least one sensor for detecting current conditions associated with the operation of the different electronic equipment, wherein each IoT device transmits an indication of the current conditions via the wireless communication channel IoT is a system that transmits to the hub.
방법으로서,
사물 인터넷(IoT) 허브를 광역 네트워크(WAN)를 통해 IoT 서비스에 통신 가능하게 결합하는 단계;
적어도 하나의 IoT 디바이스를 무선 통신 채널을 통해 상기 IoT 허브에 통신 가능하게 결합하는 단계 - 상기 IoT 디바이스는 지정된 전자 장비를 상기 전자 장비와의 적외선(IR) 또는 라디오 주파수(RF) 통신을 통해 제어하는 IR 또는 RF 블라스터를 포함함 -;
상기 IoT 디바이스 상의 센서로 현재 조건들을 감지하는 단계 - 상기 현재 조건들은 상기 전자 장비의 동작과 관련됨 -;
상기 현재 조건들을 상기 무선 통신 채널을 통해 상기 IoT 디바이스로부터 상기 IoT 허브로 전송하는 단계;
사용자 입력과 연계하여 상기 현재 조건들을 분석하여, 상기 IoT 허브에서 상기 원격 제어 코드들을 사용하여 원격 제어 커맨드들을 선택하는 단계; 및
상기 원격 제어 커맨드들을 상기 무선 통신 채널을 통해 상기 IoT 허브로부터 상기 IoT 디바이스로 전송하는 단계 - 상기 IoT 디바이스는 이에 응답하여 상기 원격 제어 커맨드들을 상기 전자 장비로 전송하여 상기 전자 장비를 제어함 -
를 포함하는, 방법.
As a method,
Communicatively coupling an Internet (IoT) hub to an IoT service via a wide area network (WAN);
Communicatively coupling at least one IoT device to the IoT hub via a wireless communication channel, wherein the IoT device controls designated electronic equipment via infrared (IR) or radio frequency (RF) communication with the electronic equipment An IR or RF blaster;
Sensing current conditions with a sensor on the IoT device, the current conditions being related to operation of the electronic equipment;
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 remote control commands using the remote control codes at the IoT hub; And
Sending the remote control commands over the wireless communication channel from the IoT hub to the IoT device, the IoT device being responsive to controlling the electronic equipment by sending the remote control commands to the electronic equipment,
/ RTI >
제12항에 있어서, 상기 전자 장비는 에어컨 및/또는 히터를 포함하고, 상기 센서는 온도 센서를 포함하며, 상기 현재 조건들은 온도를 포함하는, 방법.13. The method of claim 12, wherein the electronic equipment includes an air conditioner and / or a heater, the sensor includes a temperature sensor, and the current conditions include temperature. 제13항에 있어서, 상기 사용자 디바이스에 의해 제공되는 상기 최종 사용자로부터의 상기 입력은 원하는 온도를 포함하고, 상기 제어 로직은 상기 원격 제어 커맨드들을 생성하여 상기 에어컨 및/또는 히터를 턴온 또는 턴오프하여 상기 원하는 온도를 달성하는, 방법.14. The method of claim 13, wherein the input from the end user provided by the user device comprises a desired temperature and the control logic generates the remote control commands to turn the air conditioner and / or the heater on or off To achieve said desired temperature. 제12항에 있어서, 상기 전자 장비는 시청각 장비, 발광체, 스토브, 세탁기 및/또는 건조기를 포함하는, 방법.13. The method of claim 12, wherein the electronic equipment comprises audiovisual equipment, an illuminator, a stove, a washer and / or a dryer. 제12항에 있어서, 상기 IoT 허브는 상기 사용자가 상기 전자 장비를 식별하는 정보를 입력하는 것에 응답하여 상기 IoT 서비스 상의 마스터 제어 코드 데이터베이스에서 원격 제어 코드들을 검색하는 원격 제어 코드 학습 로직을 포함하는, 방법.13. The method of claim 12, wherein the IoT hub comprises remote control code learning logic to retrieve remote control codes from a master control code database on the IoT service in response to the user entering information identifying the electronic equipment. Way. 제16항에 있어서, 상기 원격 제어 코드 학습 로직은 상기 IoT 허브 상에 통합된 IR/RF 인터페이스에 통신 가능하게 결합되고, 상기 원격 제어 코드 학습 로직은 상기 전자 장비와 함께 동작하도록 설계된 원래의 리모트 컨트롤들로부터 상기 IR/RF 인터페이스를 통해 원격 제어 코드들을 캡처함으로써 상기 원래의 리모트 컨트롤들로부터 직접 상기 원격 제어 코드들을 학습하는, 방법.17. The system of claim 16, wherein the remote control code learning logic is communicatively coupled to an integrated IR / RF interface on the IoT hub, the remote control code learning logic comprising an original remote control Wherein the remote control codes are learned directly from the original remote controls by capturing remote control codes via the IR / RF interface from the remote control. 제17항에 있어서, 상기 원격 제어 코드 학습 로직은 상기 캡처된 원격 제어 코드들을 상기 IoT 허브 상의 상기 원격 제어 코드 데이터베이스에 저장하는, 방법.18. The method of claim 17, wherein the remote control code learning logic stores the captured remote control codes in the remote control code database on the IoT hub. 제12항에 있어서, 상기 사용자로부터의 상기 입력은 상기 IoT 서비스를 통해 상기 IoT 허브에 제공되는, 방법.13. The method of claim 12, wherein the input from the user is provided to the IoT hub via the IoT service. 제12항에 있어서, 상기 무선 통신 채널은 블루투스 저에너지(BTLE) 통신 채널을 포함하는, 방법.13. The method of claim 12, wherein the wireless communication channel comprises a Bluetooth low energy (BTLE) communication channel. 제12항에 있어서, 상기 IoT 허브는 상기 IoT 허브를 상기 WAN에 결합하는 셀룰러 네트워크 접속을 통해 상기 IoT 서비스에 통신 가능하게 결합되는, 방법.13. The method of claim 12, wherein the IoT hub is communicatively coupled to the IoT service via a cellular network connection coupling the IoT hub to the WAN. 제12항에 있어서,
복수의 추가의 IoT 디바이스들을 상기 IoT 허브에 통신 가능하게 결합하는 단계를 추가로 포함하며, 상기 IoT 디바이스들 각각은 상기 전자 장비와의 IR 또는 RF 통신을 통해 상이한 타입들의 전자 장비를 제어하는 IR 또는 RF 블라스터를 포함하고, 각각의 IoT 디바이스는 상기 상이한 전자 장비의 동작과 관련된 현재 조건들을 검출하는 적어도 하나의 센서를 추가로 포함하고, 각각의 IoT 디바이스는 상기 무선 통신 채널을 통해 상기 현재 조건들의 지시를 상기 IoT 허브로 전송하는, 방법.
13. The method of claim 12,
Further comprising communicatively coupling a plurality of additional IoT devices to the IoT hub, wherein each of the IoT devices is an IR or < RTI ID = 0.0 > IR < / RTI > Wherein each IoT device further comprises at least one sensor for detecting current conditions associated with the operation of the different electronic equipment, wherein each IoT device is operable to transmit, via the wireless communication channel, To the IoT hub.
시스템으로서,
사물 인터넷(IoT) 허브 - 상기 IoT 허브는 광역 네트워크(WAN)를 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 -; 및
무선 통신 채널을 통해 상기 IoT 허브에 통신 가능하게 결합된 적어도 하나의 IoT 디바이스 - 상기 IoT 디바이스는 환경 제어 장비를 상기 환경 제어 장비와의 적외선(IR) 또는 라디오 주파수(RF) 통신을 통해 제어하는 IR 또는 RF 블라스터를 포함하고, 상기 IoT 디바이스는 상기 환경 제어 장비에 의해 제어될 수 있는 현재 환경 조건들을 측정하는 적어도 하나의 센서를 추가로 포함하고, 상기 IoT 디바이스는 상기 무선 통신 채널을 통해 상기 현재 조건들의 지시를 상기 IoT 허브로 전송함 -
를 포함하며,
상기 IoT 허브는 상기 환경 제어 장비를 제어하는 데 사용 가능한 원격 제어 코드들을 저장하는 원격 제어 코드 데이터베이스를 포함하고, 상기 IoT 허브는 상기 원격 제어 코드들을 사용하여 원격 제어 커맨드들을 생성하는 제어 로직을 추가로 포함하고, 상기 원격 제어 커맨드들은 상기 센서에 의해 측정되는 상기 현재 환경 조건들 및 원하는 환경 조건을 지시하는, 사용자 디바이스를 통해 제공되는 최종 사용자로부터의 입력에 응답하여 상기 제어 로직에 의해 선택되고, 상기 IoT 허브는 상기 무선 통신 채널을 통해 상기 커맨드들을 상기 IoT 디바이스로 전송하며,
상기 IoT 디바이스는 이에 응답하여 상기 원격 제어 커맨드들을 상기 환경 제어 장비로 전송하여 상기 환경 제어 장비를 제어하려고 시도하고,
상기 IoT 허브는 상기 센서에 의해 측정되는 상기 현재 환경 조건들을 계속 또는 주기적으로 모니터링하도록 구성되고, 상기 원하는 환경 조건이 지정된 기간 후에 달성되지 않으면, 상기 환경 제어 장비가 적절히 기능하고 있지 않을 수 있다는 것을 지시하는 통지를 상기 IoT 허브로부터 생성하는, 시스템.
As a system,
An Internet (IoT) hub, said IoT hub comprising a network interface for coupling said IoT hub to an IoT service via a wide area network (WAN); And
At least one IoT device communicatively coupled to the IoT hub via a wireless communication channel, the IoT device comprising: an IR (IoT) device for controlling environmental control equipment through infrared (IR) or radio frequency (RF) Or an RF blaster, wherein the IoT device further comprises at least one sensor for measuring current environmental conditions that can be controlled by the environmental control equipment, wherein the IoT device is operable, Lt; RTI ID = 0.0 > IoT < / RTI &
/ RTI >
Wherein the IoT hub includes a remote control code database for storing remote control codes usable for controlling the environment control equipment and the IoT hub further comprises control logic for generating remote control commands using the remote control codes Wherein the remote control commands are selected by the control logic in response to an input from an end user provided through a user device indicating the current environmental conditions and the desired environmental conditions measured by the sensor, The IoT hub transmits the commands to the IoT device via the wireless communication channel,
Wherein the IoT device is responsive to attempting to control the environmental control equipment by sending the remote control commands to the environmental control equipment,
Wherein the IoT hub is configured to continuously or periodically monitor the current environmental conditions measured by the sensor, and if the desired environmental condition is not achieved after the specified period of time, indicating that the environmental control equipment may not be functioning properly From the IoT hub.
제23항에 있어서, 상기 환경 제어 장비는 에어컨 및/또는 히터를 포함하고, 상기 센서는 온도 센서를 포함하며, 상기 현재 환경 조건들은 제1 온도를 포함하고, 상기 원하는 환경 조건은 상기 제1 온도와는 상이한 제2 온도를 포함하는, 시스템.24. The system of claim 23, wherein the environmental control equipment comprises an air conditioner and / or a heater, wherein the sensor comprises a temperature sensor, the current environmental conditions include a first temperature, And a second temperature that is different from the second temperature. 제24항에 있어서, 상기 통지는 상기 IoT 허브로부터 상기 사용자의 데이터 처리 디바이스로 전송되는, 시스템.25. The system of claim 24, wherein the notification is sent from the IoT hub to the user's data processing device. 제25항에 있어서, 상기 원하는 환경 조건이 상기 지정된 기간 후에 달성되지 않으면, 상기 IoT 허브는 하나 이상의 원격 제어 커맨드들을 전송하여 상기 환경 제어 장비를 턴오프하도록 추가로 구성되는, 시스템.26. The system of claim 25, wherein the IoT hub is further configured to transmit one or more remote control commands to turn off the environmental control equipment if the desired environmental condition is not achieved after the designated time period. 제23항에 있어서, 상기 IoT 허브는 상기 사용자가 상기 환경 제어 장비를 식별하는 정보를 입력하는 것에 응답하여 상기 IoT 서비스 상의 마스터 제어 코드 데이터베이스에서 원격 제어 코드들을 검색하는 원격 제어 코드 학습 로직을 포함하는, 시스템.24. The system of claim 23, wherein the IoT hub comprises remote control code learning logic for retrieving remote control codes from a master control code database on the IoT service in response to the user entering information identifying the environmental control equipment , system. 제24항에 있어서, 상기 원격 제어 코드 학습 로직은 상기 IoT 허브 상에 통합된 IR/RF 인터페이스에 통신 가능하게 결합되고, 상기 원격 제어 코드 학습 로직은 상기 원격 제어 장비와 함께 동작하도록 설계된 원래의 리모트 컨트롤들로부터 상기 IR/RF 인터페이스를 통해 원격 제어 코드들을 캡처함으로써 상기 원래의 리모트 컨트롤들로부터 직접 상기 원격 제어 코드들을 학습하는, 시스템.25. The system of claim 24, wherein the remote control code learning logic is communicatively coupled to an integrated IR / RF interface on the IoT hub, the remote control code learning logic comprising an original remote designed to operate with the remote control equipment And learning the remote control codes directly from the original remote controls by capturing remote control codes from the controls via the IR / RF interface. 제28항에 있어서, 상기 원격 제어 코드 학습 로직은 상기 캡처된 원격 제어 코드들을 상기 IoT 허브 상의 상기 원격 제어 코드 데이터베이스에 저장하는, 시스템.29. The system of claim 28, wherein the remote control code learning logic stores the captured remote control codes in the remote control code database on the IoT hub. 제23항에 있어서, 상기 사용자로부터의 상기 입력은 상기 IoT 서비스를 통해 상기 IoT 허브에 제공되는, 시스템.24. The system of claim 23, wherein the input from the user is provided to the IoT hub via the IoT service. 제23항에 있어서, 상기 무선 통신 채널은 블루투스 저에너지(BTLE) 통신 채널을 포함하는, 시스템.24. The system of claim 23, wherein the wireless communication channel comprises a Bluetooth low energy (BTLE) communication channel. 제23항에 있어서, 상기 IoT 허브는 상기 IoT 허브를 상기 WAN에 결합하는 셀룰러 네트워크 접속을 통해 상기 IoT 서비스에 통신 가능하게 결합되는, 시스템.24. The system of claim 23, wherein the IoT hub is communicatively coupled to the IoT service via a cellular network connection that couples the IoT hub to the WAN. 제23항에 있어서,
상기 IoT 허브에 통신 가능하게 결합된 복수의 추가의 IoT 디바이스들을 추가로 포함하며, 상기 IoT 디바이스들 각각은 상기 환경 제어 장비와의 IR 또는 RF 통신을 통해 상이한 타입들의 환경 제어 장비를 제어하는 IR 또는 RF 블라스터를 포함하고, 각각의 IoT 디바이스는 상기 상이한 환경 제어 장비의 동작과 관련된 현재 조건들을 검출하는 적어도 하나의 센서를 추가로 포함하고, 각각의 IoT 디바이스는 상기 무선 통신 채널을 통해 상기 현재 조건들의 지시를 상기 IoT 허브로 전송하는, 시스템.
24. The method of claim 23,
Further comprising a plurality of additional IoT devices communicatively coupled to the IoT hub, each of the IoT devices further comprising: an IR or RF controller for controlling different types of environmental control equipment through IR or RF communication with the environmental control equipment; Wherein each IoT device further comprises at least one sensor for detecting current conditions associated with the operation of the different environmental control equipment, wherein each IoT device is operable to transmit, via the wireless communication channel, And sends an indication to the IoT hub.
방법으로서,
사물 인터넷(IoT) 허브를 광역 네트워크(WAN)를 통해 IoT 서비스에 통신 가능하게 결합하는 단계;
적어도 하나의 IoT 디바이스를 무선 통신 채널을 통해 상기 IoT 허브에 통신 가능하게 결합하는 단계 - 상기 IoT 디바이스는 환경 제어 장비를 상기 환경 제어 장비와의 적외선(IR) 또는 라디오 주파수(RF) 통신을 통해 제어하는 IR 또는 RF 블라스터를 포함하고, 상기 IoT 디바이스는 상기 환경 제어 장비에 의해 제어될 수 있는 현재 환경 조건들을 측정하는 적어도 하나의 센서를 추가로 포함하고, 상기 IoT 디바이스는 상기 무선 통신 채널을 통해 상기 현재 조건들의 지시를 상기 IoT 허브로 전송함 -;
상기 환경 제어 장비를 제어하는 데 사용 가능한 원격 제어 코드들을 상기 IoT 허브의 원격 제어 데이터베이스에 저장하는 단계;
상기 원격 제어 코드들을 사용하여 원격 제어 커맨드들을 생성하는 단계 - 상기 원격 제어 커맨드들은 상기 센서에 의해 측정되는 상기 현재 환경 조건들 및 원하는 환경 조건을 지시하는, 사용자 디바이스를 통해 제공되는 최종 사용자로부터의 입력에 응답하여 제어 로직에 의해 선택됨 -;
커맨드들을 상기 무선 통신 채널을 통해 상기 IoT 허브로부터 상기 IoT 디바이스로 전송하는 단계; 및
이에 응답하여 상기 원격 제어 커맨드들을 상기 IoT 디바이스로부터 상기 환경 제어 장비로 전송하여 상기 환경 제어 장비를 제어하려고 시도하는 단계
를 포함하며,
상기 IoT 허브는 상기 센서에 의해 측정되는 상기 현재 환경 조건들을 계속 또는 주기적으로 모니터링하도록 구성되고, 상기 원하는 환경 조건이 지정된 기간 후에 달성되지 않으면, 상기 환경 제어 장비가 적절히 기능하고 있지 않을 수 있다는 것을 지시하는 통지를 생성하는, 방법.
As a method,
Communicatively coupling an Internet (IoT) hub to an IoT service via a wide area network (WAN);
Communicatively coupling at least one IoT device to the IoT hub via a wireless communication channel, wherein the IoT device is configured to control the environmental control equipment via infrared (IR) or radio frequency (RF) communication with the environmental control equipment Wherein the IoT device further comprises at least one sensor for measuring current environmental conditions that can be controlled by the environmental control equipment, Sending an indication of current conditions to the IoT hub;
Storing remote control codes usable for controlling the environmental control equipment in a remote control database of the IoT hub;
Generating remote control commands using the remote control codes, wherein the remote control commands are indicative of the current environmental conditions and the desired environmental conditions as measured by the sensor; an input from an end user provided through the user device Selected by the control logic in response to the control logic;
Sending commands from the IoT hub to the IoT device over the wireless communication channel; And
Transmitting the remote control commands from the IoT device to the environment control equipment in response thereto to attempt to control the environmental control equipment
/ RTI >
Wherein the IoT hub is configured to continuously or periodically monitor the current environmental conditions measured by the sensor, and if the desired environmental condition is not achieved after the specified period of time, indicating that the environmental control equipment may not be functioning properly To generate a notification.
제34항에 있어서, 상기 환경 제어 장비는 에어컨 및/또는 히터를 포함하고, 상기 센서는 온도 센서를 포함하며, 상기 현재 환경 조건들은 제1 온도를 포함하고, 상기 원하는 환경 조건은 상기 제1 온도와는 상이한 제2 온도를 포함하는, 방법.35. The method of claim 34, wherein the environmental control equipment comprises an air conditioner and / or a heater, the sensor includes a temperature sensor, the current environmental conditions include a first temperature, And a second temperature that is different from the second temperature. 제35항에 있어서, 상기 통지는 상기 IoT 허브로부터 상기 사용자의 데이터 처리 디바이스로 전송되는, 방법.36. The method of claim 35, wherein the notification is sent from the IoT hub to the user's data processing device. 제36항에 있어서, 상기 원하는 환경 조건이 상기 지정된 기간 후에 달성되지 않으면, 상기 IoT 허브는 하나 이상의 원격 제어 커맨드들을 전송하여 상기 환경 제어 장비를 턴오프하도록 추가로 구성되는, 방법.37. The method of claim 36, wherein the IoT hub is further configured to transmit one or more remote control commands to turn off the environmental control equipment if the desired environmental condition is not achieved after the designated time period. 제34항에 있어서, 상기 IoT 허브는 상기 사용자가 상기 환경 제어 장비를 식별하는 정보를 입력하는 것에 응답하여 상기 IoT 서비스 상의 마스터 제어 코드 데이터베이스에서 원격 제어 코드들을 검색하는 원격 제어 코드 학습 로직을 포함하는, 방법.35. The system of claim 34 wherein the IoT hub comprises remote control code learning logic to retrieve remote control codes from a master control code database on the IoT service in response to the user entering information identifying the environment control equipment , Way. 제38항에 있어서, 상기 원격 제어 코드 학습 로직은 상기 IoT 허브 상에 통합된 IR/RF 인터페이스에 통신 가능하게 결합되고, 상기 원격 제어 코드 학습 로직은 상기 원격 제어 장비와 함께 동작하도록 설계된 원래의 리모트 컨트롤들로부터 상기 IR/RF 인터페이스를 통해 원격 제어 코드들을 캡처함으로써 상기 원래의 리모트 컨트롤들로부터 직접 상기 원격 제어 코드들을 학습하는, 방법.39. The system of claim 38, wherein the remote control code learning logic is communicatively coupled to an integrated IR / RF interface on the IoT hub, the remote control code learning logic comprising an original remote designed to operate with the remote control equipment And learning the remote control codes directly from the original remote controls by capturing remote control codes from the controls via the IR / RF interface. 제39항에 있어서, 상기 원격 제어 코드 학습 로직은 상기 캡처된 원격 제어 코드들을 상기 IoT 허브 상의 상기 원격 제어 코드 데이터베이스에 저장하는, 방법.40. The method of claim 39, wherein the remote control code learning logic stores the captured remote control codes in the remote control code database on the IoT hub. 제34항에 있어서, 상기 사용자로부터의 상기 입력은 상기 IoT 서비스를 통해 상기 IoT 허브에 제공되는, 방법.35. The method of claim 34, wherein the input from the user is provided to the IoT hub via the IoT service. 제12항에 있어서, 상기 무선 통신 채널은 블루투스 저에너지(BTLE) 통신 채널을 포함하는, 방법.13. The method of claim 12, wherein the wireless communication channel comprises a Bluetooth low energy (BTLE) communication channel. 제12항에 있어서, 상기 IoT 허브는 상기 IoT 허브를 상기 WAN에 결합하는 셀룰러 네트워크 접속을 통해 상기 IoT 서비스에 통신 가능하게 결합되는, 방법.13. The method of claim 12, wherein the IoT hub is communicatively coupled to the IoT service via a cellular network connection coupling the IoT hub to the WAN. 제12항에 있어서,
상기 IoT 허브에 통신 가능하게 결합된 복수의 추가의 IoT 디바이스들을 추가로 포함하며, 상기 IoT 디바이스들 각각은 상기 환경 제어 장비와의 IR 또는 RF 통신을 통해 상이한 타입들의 환경 제어 장비를 제어하는 IR 또는 RF 블라스터를 포함하고, 각각의 IoT 디바이스는 상기 상이한 환경 제어 장비의 동작과 관련된 현재 조건들을 검출하는 적어도 하나의 센서를 추가로 포함하고, 각각의 IoT 디바이스는 상기 무선 통신 채널을 통해 상기 현재 조건들의 지시를 상기 IoT 허브로 전송하는, 방법.
13. The method of claim 12,
Further comprising a plurality of additional IoT devices communicatively coupled to the IoT hub, each of the IoT devices further comprising: an IR or RF controller for controlling different types of environmental control equipment through IR or RF communication with the environmental control equipment; Wherein each IoT device further comprises at least one sensor for detecting current conditions associated with the operation of the different environmental control equipment, wherein each IoT device is operable to transmit, via the wireless communication channel, And sending an indication to the IoT hub.
시스템으로서,
사물 인터넷(IoT) 허브 - 상기 IoT 허브는 광역 네트워크(WAN)를 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 -; 및
무선 통신 채널을 통해 상기 IoT 허브에 통신 가능하게 결합된 IoT 디바이스
를 포함하며,
상기 IoT 디바이스는 사용자의 집 안의 로컬 디바이스에 의해 영향을 받는 로컬 조건을 측정하는 센서를 포함하고, 상기 로컬 디바이스는 우연히 온 상태로 남겨질 경우 잠재적으로 위험하며, 상기 IoT 디바이스는 상기 로컬 조건의 하나 이상의 측정치들을 상기 무선 통신 채널을 통해 상기 IoT 허브로 통신하고,
상기 IoT 허브 상의 제어 로직은 상기 센서로부터 상기 로컬 조건의 상기 하나 이상의 측정치들을 수신하고, 상기 하나 이상의 측정치들을 평가하여 상기 로컬 디바이스가 우연히 온 상태로 남겨졌는지를 결정하고, 상기 제어 로직은 상기 로컬 디바이스가 우연히 온 상태로 남겨졌다는 결정에 응답하여 상기 로컬 디바이스를 턴오프하는 신호를 생성하는, 시스템.
As a system,
An Internet (IoT) hub, said IoT hub comprising a network interface for coupling said IoT hub to an IoT service via a wide area network (WAN); And
An IoT device communicatively coupled to the IoT hub via a wireless communication channel
/ RTI >
Wherein the IoT device includes a sensor that measures a local condition that is affected by a local device in the user's home, the local device is potentially at risk if left in an on state, Communicate measurements to the IoT hub over the wireless communication channel,
Wherein the control logic on the IoT hub receives the one or more measurements of the local condition from the sensor and evaluates the one or more measurements to determine whether the local device has been left on by chance, The local device is turned off in response to a determination that the local device has been left in an on state.
제45항에 있어서, 상기 로컬 조건은 온도를 포함하고, 상기 제어 로직은 상기 온도가 지정된 양의 시간보다 길게 제1 지정 임계치를 초과하는 경우 상기 로컬 디바이스가 우연히 온 상태로 남겨진 것으로 결정하는, 시스템.46. The system of claim 45, wherein the local condition comprises a temperature and the control logic determines that the local device has been left on by chance if the temperature exceeds a first specified threshold for a period longer than a specified amount of time. . 제46항에 있어서, 상기 로컬 디바이스는 스토브를 포함하는, 시스템.47. The system of claim 46, wherein the local device comprises a stove. 제47항에 있어서, 상기 제어 로직은 상기 신호를 상기 IoT 디바이스로 전송하여 상기 IoT 디바이스가 상기 스토브를 턴오프하게 하는, 시스템.48. The system of claim 47, wherein the control logic sends the signal to the IoT device to cause the IoT device to turn off the stove. 제48항에 있어서, 상기 IoT 디바이스는 상기 스토브에 제공되는 전기 또는 가스의 소스를 차단함으로써 상기 스토브를 턴오프하는, 시스템.49. The system of claim 48, wherein the IoT device turns off the stove by blocking a source of electricity or gas provided to the stove. 제48항에 있어서, 상기 IoT 디바이스는 신호를 상기 스토브로 무선으로 전송함으로써 상기 스토브를 턴오프하는, 시스템.49. The system of claim 48, wherein the IoT device turns off the stove by wirelessly transmitting a signal to the stove. 제46항에 있어서, 상기 제어 로직은 시간의 양에 관계없이 상기 온도가 언젠가 제2 지정 임계치 위로 상승하는 경우 상기 로컬 디바이스가 우연히 온 상태로 남겨진 것으로 결정하는, 시스템.47. The system of claim 46, wherein the control logic determines that the local device is left in an on state by chance if the temperature ever rises above a second specified threshold regardless of the amount of time. 제50항에 있어서, 상기 무선 신호들은 상기 IoT 디바이스 상의 블라스터로부터 생성되는 적외선(IR) 또는 라디오 주파수(RF) 신호들을 포함하는, 시스템.51. The system of claim 50, wherein the radio signals comprise infrared (IR) or radio frequency (RF) signals generated from a blaster on the IoT device. 제46항에 있어서, 상기 로컬 디바이스는 전기 또는 가스 히터를 포함하는, 시스템.47. The system of claim 46, wherein the local device comprises an electric or gas heater. 제45항에 있어서, 상기 IoT 허브는 상기 로컬 디바이스가 우연히 온 상태로 남겨졌다는 것을 상기 IoT 서비스에 통지하도록 구성되며, 상기 IoT 서비스는 상기 로컬 디바이스가 우연히 온 상태로 남겨졌다는 것을 상기 사용자에게 통지하는 통지를 상기 사용자의 데이터 처리 디바이스로 전송하는, 시스템.46. The system of claim 45, wherein the IoT hub is configured to notify the IoT service that the local device has been left on by chance, the IoT service notifying the user that the local device has been left on by chance And sends a notification to the data processing device of the user. 제54항에 있어서, 상기 데이터 처리 디바이스는 상기 통지를 표시하고 상기 로컬 디바이스를 제어하는 능력을 상기 사용자에게 제공하는 앱 또는 브라우저 실행 가능 코드를 포함하는, 시스템.55. The system of claim 54, wherein the data processing device comprises an app or browser executable code that provides the user with the ability to display the notification and to control the local device. 방법으로서,
사물 인터넷(IoT) 허브를 제공하는 단계 - 상기 IoT 허브는 광역 네트워크(WAN)를 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 -;
무선 통신 채널을 통해 상기 IoT 허브에 통신 가능하게 결합된 IoT 디바이스를 제공하는 단계 - 상기 IoT 디바이스는 사용자의 집 안의 로컬 디바이스에 의해 영향을 받는 로컬 조건을 측정하는 센서를 포함하고, 상기 로컬 디바이스는 우연히 온 상태로 남겨질 경우 잠재적으로 위험하며, 상기 IoT 디바이스는 상기 로컬 조건의 하나 이상의 측정치들을 상기 무선 통신 채널을 통해 상기 IoT 허브로 통신함 -; 및
상기 IoT 허브 상의 제어 로직에 의해, 상기 센서로부터 상기 로컬 조건의 상기 하나 이상의 측정치들을 수신하고, 상기 하나 이상의 측정치들을 평가하여 상기 로컬 디바이스가 우연히 온 상태로 남겨졌는지를 결정하는 단계 - 상기 제어 로직은 상기 로컬 디바이스가 우연히 온 상태로 남겨졌다는 결정에 응답하여 상기 로컬 디바이스를 턴오프하는 신호를 생성함 -
를 포함하는, 방법.
As a method,
Providing an Internet (IoT) hub, the IoT hub including a network interface for coupling the IoT hub to the IoT service via a wide area network (WAN);
Providing an IoT device communicatively coupled to the IoT hub via a wireless communication channel, the IoT device comprising a sensor measuring a local condition affected by a local device in the user's home, Wherein the IoT device communicates one or more measurements of the local condition to the IoT hub over the wireless communication channel if the IoT device is accidentally left on; And
Receiving the one or more measurements of the local condition from the sensor by the control logic on the IoT hub and evaluating the one or more measurements to determine if the local device has been left on by chance, Generating a signal to turn off said local device in response to determining that said local device has been left on by chance;
/ RTI >
제56항에 있어서, 상기 로컬 조건은 온도를 포함하고, 상기 제어 로직은 상기 온도가 지정된 양의 시간보다 길게 제1 지정 임계치를 초과하는 경우 상기 로컬 디바이스가 우연히 온 상태로 남겨진 것으로 결정하는, 방법.58. The method of claim 56, wherein the local condition comprises a temperature, and wherein the control logic determines that the local device has been left on by chance if the temperature exceeds a first specified threshold for longer than a specified amount of time. . 제57항에 있어서, 상기 로컬 디바이스는 스토브를 포함하는, 방법.58. The method of claim 57, wherein the local device comprises a stove. 제58항에 있어서, 상기 제어 로직은 상기 신호를 상기 IoT 디바이스로 전송하여 상기 IoT 디바이스가 상기 스토브를 턴오프하게 하는, 방법.59. The method of claim 58, wherein the control logic sends the signal to the IoT device to cause the IoT device to turn off the stove. 제59항에 있어서, 상기 IoT 디바이스는 상기 스토브에 제공되는 전기 또는 가스의 소스를 차단함으로써 상기 스토브를 턴오프하는, 방법.60. The method of claim 59, wherein the IoT device turns off the stove by blocking a source of electricity or gas provided to the stove. 제59항에 있어서, 상기 IoT 디바이스는 신호를 상기 스토브로 무선으로 전송함으로써 상기 스토브를 턴오프하는, 방법.60. The method of claim 59, wherein the IoT device turns off the stove by wirelessly transmitting a signal to the stove. 제57항에 있어서, 상기 제어 로직은 시간의 양에 관계없이 상기 온도가 언젠가 제2 지정 임계치 위로 상승하는 경우 상기 로컬 디바이스가 우연히 온 상태로 남겨진 것으로 결정하는, 방법.58. The method of claim 57, wherein the control logic determines that the local device is left on by chance if the temperature ever rises above a second specified threshold regardless of the amount of time. 제61항에 있어서, 상기 무선 신호들은 상기 IoT 디바이스 상의 블라스터로부터 생성되는 적외선(IR) 또는 라디오 주파수(RF) 신호들을 포함하는, 방법.62. The method of claim 61, wherein the wireless signals comprise infrared (IR) or radio frequency (RF) signals generated from a blaster on the IoT device. 제57항에 있어서, 상기 로컬 디바이스는 전기 또는 가스 히터를 포함하는, 방법.58. The method of claim 57, wherein the local device comprises an electric or gas heater. 제56항에 있어서, 상기 IoT 허브는 상기 로컬 디바이스가 우연히 온 상태로 남겨졌다는 것을 상기 IoT 서비스에 통지하도록 구성되며, 상기 IoT 서비스는 상기 로컬 디바이스가 우연히 온 상태로 남겨졌다는 것을 상기 사용자에게 통지하는 통지를 상기 사용자의 데이터 처리 디바이스로 전송하는, 방법.57. The system of claim 56, wherein the IoT hub is configured to notify the IoT service that the local device has been left on by chance, and the IoT service notifies the user that the local device has been left on by chance And send a notification to the data processing device of the user. 제54항에 있어서, 상기 데이터 처리 디바이스는 상기 통지를 표시하고 상기 로컬 디바이스를 제어하는 능력을 상기 사용자에게 제공하는 앱 또는 브라우저 실행 가능 코드를 포함하는, 방법.55. The method of claim 54, wherein the data processing device includes an app or browser executable code that provides the user with the ability to display the notification and to control the local device. IoT 시스템으로서,
사물 인터넷(IoT) 허브 - 상기 IoT 허브는 제1 통신 채널을 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 -;
제2 통신 채널을 통해 상기 IoT 허브에 통신 가능하게 결합된 적어도 하나의 IoT 디바이스;
상기 IoT 서비스와 상기 IoT 허브 사이의 상기 제1 통신 채널이 동작하지 못하게 되었을 때를 검출하는 접속 모니터링 로직; 및
상기 제1 통신 채널이 동작하지 못하게 되었음을 상기 접속 모니터링 로직이 검출하는 것에 응답하여 통지를 상기 IoT 시스템의 사용자의 데이터 처리 디바이스로 전송하는 통지 로직
을 포함하는, 시스템.
As an IoT system,
An Internet (IoT) hub, said IoT hub comprising a network interface for coupling said IoT hub to an IoT service via a first communication channel;
At least one IoT device communicatively coupled to the IoT hub via a second communication channel;
Connection monitoring logic for detecting when the first communication channel between the IoT service and the IoT hub becomes inoperable; And
A notification logic for sending a notification to a data processing device of a user of the IoT system in response to the connection monitoring logic detecting that the first communication channel has failed;
. ≪ / RTI >
제67항에 있어서, 상기 접속 모니터링 로직 및 상기 통지 로직은 상기 IoT 서비스 상에 구현되는, 시스템.68. The system of claim 67, wherein the connection monitoring logic and the notification logic are implemented on the IoT service. 제68항에 있어서, 상기 접속 모니터링 로직은 요청을 상기 IoT 허브로 주기적으로 전송하도록 구성되고, 상기 IoT 허브가 응답을 전송하지 못한 후에 상기 제1 통신 채널이 동작하지 못하게 된 것으로 결정하는, 시스템.69. The system of claim 68, wherein the connection monitoring logic is configured to periodically send a request to the IoT hub, and determine that the first communication channel fails after the IoT hub fails to transmit a response. 제69항에 있어서, 상기 접속 모니터링 로직은 상기 IoT 허브가 지정된 수의 요청들 후에 응답을 전송하지 못한 후에 상기 제1 통신 채널이 동작하지 못하게 된 것으로 결정하는, 시스템.70. The system of claim 69, wherein the connection monitoring logic determines that the first communication channel fails after the IoT hub fails to transmit a response after a specified number of requests. 제67항에 있어서, 상기 제1 통신 채널은 셀룰러 네트워크 접속을 포함하고, 상기 IoT 허브는 또한 집 인터넷 접속을 통해 상기 IoT 서비스에 통신 가능하게 결합되고, 상기 접속 모니터링 로직은 어느 하나의 접속에 대한 실패를 검출하도록 구성되고, 상기 통지 로직은 이에 응답하여 실패한 접속을 상기 사용자에게 통지하도록 구성되는, 시스템.68. The method of claim 67 wherein the first communication channel comprises a cellular network connection and the IoT hub is also communicatively coupled to the IoT service via a home Internet connection, Wherein the notification logic is configured to notify the user of a failed connection in response thereto. 제71항에 있어서, 상기 IoT 서비스는 상기 셀룰러 네트워크 접속이 동작하지 못하는 것으로 결정된 경우 상기 집 인터넷 접속을 통해 상기 IoT 허브와 계속 통신하도록 구성되고, 상기 집 인터넷 접속이 동작하지 못하게 된 경우 상기 셀룰러 접속을 통해 상기 IoT 허브와 통신하도록 구성되는, 시스템.72. The method of claim 71, wherein the IoT service is configured to continue to communicate with the IoT hub through the home Internet connection if the cellular network connection is determined not to work, RTI ID = 0.0 > IoT < / RTI > 제72항에 있어서, 상기 통지 로직은 인터넷을 통해 상기 통지를 상기 사용자의 데이터 처리 디바이스로 전송하고, 상기 데이터 처리 디바이스는 상기 통지를 수신하고 상기 사용자에 대한 시각적 통지를 생성하도록 상기 데이터 처리 디바이스 상에서 실행되는 앱 또는 브라우저 기반 프로그램 코드를 가지며, 상기 시각적 통지는 상기 제1 통신 채널의 현재 상태의 지시를 포함하는, 시스템.73. The method of claim 72, wherein the notification logic sends the notification to the user ' s data processing device over the Internet, the data processing device receives the notification and generates a visual notification for the user on the data processing device Wherein the visual notification includes an indication of the current state of the first communication channel. 방법으로서,
사물 인터넷(IoT) 허브를 제공하는 단계 - 상기 IoT 허브는 제1 통신 채널을 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 -;
제2 통신 채널을 통해 상기 IoT 허브에 통신 가능하게 결합된 적어도 하나의 IoT 디바이스를 제공하는 단계;
상기 IoT 서비스와 상기 IoT 허브 사이의 상기 제1 통신 채널이 동작하지 못하게 되었을 때를 검출하는 단계; 및
상기 제1 통신 채널이 동작하지 못하게 되었음을 상기 접속 모니터링 로직이 검출하는 것에 응답하여 통지를 사용자의 데이터 처리 디바이스로 전송하는 단계
를 포함하는, 방법.
As a method,
Providing an Internet (IoT) hub, the IoT hub including a network interface for coupling the IoT hub to the IoT service via a first communication channel;
Providing at least one IoT device communicatively coupled to the IoT hub via a second communication channel;
Detecting when the first communication channel between the IoT service and the IoT hub becomes inoperable; And
Sending a notification to the user's data processing device in response to the connection monitoring logic detecting that the first communication channel has failed;
/ RTI >
제74항에 있어서, 상기 검출하는 동작 및 전송하는 동작은 상기 IoT 서비스 상에서 수행되는, 방법.76. The method of claim 74, wherein the detecting and transmitting operations are performed on the IoT service. 제75항에 있어서, 상기 검출하는 단계는 요청을 상기 IoT 서비스로부터 상기 IoT 허브로 주기적으로 전송하고 상기 IoT 허브가 응답을 전송하지 못한 후에 상기 제1 통신 채널이 동작하지 못하게 된 것으로 결정하는 단계를 포함하는, 방법.76. The method of claim 75 wherein detecting comprises periodically transmitting a request from the IoT service to the IoT hub and determining that the first communication channel fails after the IoT hub fails to transmit a response / RTI > 제76항에 있어서, 상기 IoT 서비스로부터 전송된 지정된 수의 요청들 후에 상기 IoT 허브가 응답을 상기 IoT 서비스로 전송하지 못한 후에 상기 제1 통신 채널이 동작하지 못하게 되었다는 결정이 행해지는, 방법.80. The method of claim 76, wherein a determination is made that after the specified number of requests sent from the IoT service, the first communication channel fails to operate after the IoT hub fails to send a response to the IoT service. 제74항에 있어서, 상기 제1 통신 채널은 셀룰러 네트워크 접속을 포함하고, 상기 IoT 허브는 또한 집 인터넷 접속을 통해 상기 IoT 서비스에 통신 가능하게 결합되고, 어느 하나의 접속에 대해 실패가 존재하고, 상기 통지 로직은 이에 응답하여 실패한 접속을 상기 사용자에게 통지하는, 방법.75. The method of claim 74, wherein the first communication channel comprises a cellular network connection, the IoT hub is also communicatively coupled to the IoT service via a home Internet connection, a failure exists for either connection, The notification logic notifying the user of the failed connection in response. 제78항에 있어서, 상기 IoT 서비스는 상기 셀룰러 네트워크 접속이 동작하지 못하는 것으로 결정된 경우 상기 집 인터넷 접속을 통해 상기 IoT 허브와 계속 통신하도록 구성되고, 상기 집 인터넷 접속이 동작하지 못하게 된 경우 상기 셀룰러 접속을 통해 상기 IoT 허브와 통신하도록 구성되는, 방법.79. The system of claim 78, wherein the IoT service is configured to continue to communicate with the IoT hub through the home Internet connection if the cellular network connection is determined not to work, RTI ID = 0.0 > IoT < / RTI > 제74항에 있어서, 상기 통지는 인터넷을 통해 상기 사용자의 데이터 처리 디바이스로 전송되고, 상기 데이터 처리 디바이스는 상기 통지를 수신하고 상기 사용자에 대한 시각적 통지를 생성하도록 상기 데이터 처리 디바이스 상에서 실행되는 앱 또는 브라우저 기반 프로그램 코드를 가지며, 상기 시각적 통지는 상기 제1 통신 채널의 현재 상태의 지시를 포함하는, 방법.75. The method of claim 74, wherein the notification is sent over the Internet to the user's data processing device, the data processing device is an app running on the data processing device to receive the notification and generate a visual notification for the user, Browser-based program code, the visual notification comprising an indication of the current state of the first communication channel. 미니어처 사물 인터넷(IoT) 허브로서,
콤팩트 폼 팩터를 갖는 하우징;
상기 하우징 내에 통합되어 상기 IoT 허브를 제1 통신 채널을 통해 IoT 서비스에 결합하는 제1 네트워크 인터페이스;
상기 하우징 내에 통합되어 상기 IoT 허브를 제2 통신 채널을 통해 적어도 하나의 IoT 디바이스에 결합하는 제2 네트워크 인터페이스 - 상기 제2 통신 채널은 로컬 무선 통신 채널임 -;
상기 미니어처 IoT 허브를 교류(A/C) 전력 아울렛에 결합하는 A/C 입력 인터페이스;
상기 하우징 내에 통합되어 상기 A/C 입력 인터페이스로부터의 A/C 전력을 저전압 D/C 신호로 변환하는 변압기; 및
상기 저전압 D/C 신호에 의해 전력공급되는 적어도 하나의 발광 다이오드(LED) - 상기 LED는 상기 IoT 허브의 현재 상태를 사용자에게 통지하며, 사용자 프로그래밍 가능 야간 조명으로서 추가로 구성 가능함 -
를 포함하는, IoT 허브.
As a Miniature Object Internet (IoT) hub,
A housing having a compact form factor;
A first network interface integrated within the housing to couple the IoT hub to the IoT service over a first communication channel;
A second network interface integrated in the housing to couple the IoT hub to at least one IoT device via a second communication channel, the second communication channel being a local wireless communication channel;
An A / C input interface for coupling the miniature IoT hub to an alternating current (A / C) power outlet;
A transformer incorporated within the housing to convert A / C power from the A / C input interface to a low voltage D / C signal; And
At least one light emitting diode (LED) powered by the low voltage D / C signal, the LED notifying a user of the current status of the IoT hub and further configurable as a user programmable night light,
Lt; / RTI > hub.
제81항에 있어서, 상기 하우징은 1.5 인치 이하의 큐브를 포함하는, IoT 허브.83. The IoT hub of claim 81, wherein the housing comprises a cube of 1.5 inches or less. 제81항에 있어서, 상기 하우징은 1 내지 2 인치 또는 그 미만의 깊이 및 1 내지 3 인치의 높이를 포함하는, IoT 허브.83. The IoT hub of claim 81, wherein the housing comprises a depth of 1 to 2 inches or less and a height of 1 to 3 inches. 제81항에 있어서, 상기 A/C 입력 인터페이스에 결합되어 상기 A/C 전력 아울렛을 통해 제3 통신 채널을 설정하는 제3 네트워크 인터페이스를 추가로 포함하는, IoT 허브.83. The IoT hub of claim 81, further comprising a third network interface coupled to the A / C input interface to establish a third communication channel via the A / C power outlet. 제81항에 있어서, 상기 사용자로 하여금 상기 LED가 언제 턴온 및 턴오프될지를 프로그래밍하는 것을 가능하게 하기 위해 사용자의 데이터 처리 디바이스 상에서 실행 가능한 프로그램 코드를 추가로 포함하는, IoT 허브.83. The IoT hub of claim 81, further comprising program code executable on a user's data processing device to enable the user to program when the LED is turned on and off. 제85항에 있어서, 상기 프로그램 코드는 제1 지정 시간에 상기 LED를 턴온하고 제2 지정 시간에 상기 LED를 턴오프하는 옵션을 상기 사용자에게 제공하는, IoT 허브.93. The IoT hub of claim 85, wherein the program code provides the user with the option of turning the LED on at a first designation time and turning off the LED at a second designation time. 제86항에 있어서,
상기 프로그램 코드를 통해 프로그래밍 가능하고, 상기 LED로 하여금 각각 상기 제1 및 제2 지정 시간에 턴온 및 턴오프되게 하도록 구성된 저전력 마이크로제어기를 추가로 포함하는, IoT 허브.
88. The method of claim 86,
Further comprising a low power microcontroller programmable via the program code and configured to cause the LEDs to be turned on and off at the first and second designated times, respectively.
제87항에 있어서,
상기 IoT 허브 상에 통합되어 주위 가시광을 검출하는 광검출기를 추가로 포함하며, 상기 광검출기는 상기 저전력 마이크로제어기에 통신 가능하게 결합되고, 상기 저전력 마이크로제어기는 상기 광검출기가 지정 임계치 이하의 주위 가시광을 측정하는 것에 응답하여 상기 LED를 턴온하도록 구성되는, IoT 허브.
88. The method of claim 87,
Further comprising a photodetector integrated on the IoT hub to detect ambient visible light, the photodetector being communicatively coupled to the low power microcontroller, wherein the low power microcontroller is operable to allow the photodetector to detect ambient visible light And to turn on the LED in response to measuring the IoT hub.
제88항에 있어서, 상기 저전력 마이크로제어기는 상기 광검출기가 지정 임계치 초과의 주위 가시광을 측정하는 것에 응답하여 상기 LED를 턴오프하도록 추가로 구성되는, IoT 허브.90. The IoT hub of claim 88, wherein the low power microcontroller is further configured to turn off the LED responsive to the photodetector measuring ambient visible light above a specified threshold. 제81항에 있어서,
다른 전자 디바이스들을 충전하는 데 사용할 수 있는 전압 및 전류를 제공하는 하나 이상의 USB(universal serial bus) 포트들을 추가로 포함하는, IoT 허브.
83. The method of claim 81,
An IoT hub further comprising one or more universal serial bus (USB) ports providing voltage and current that can be used to charge other electronic devices.
방법으로서,
콤팩트 폼 팩터를 갖는 하우징을 포함하는 미니어처 사물 인터넷(IoT) 허브를 제공하는 단계;
상기 IoT 허브를 제1 통신 채널을 통해 IoT 서비스에 통신 가능하게 결합하는 단계;
상기 IoT 허브를 제2 통신 채널을 통해 적어도 하나의 IoT 디바이스에 통신 가능하게 결합하는 단계 - 상기 제2 통신 채널은 로컬 무선 통신 채널임 -;
상기 미니어처 IoT 허브를 교류(A/C) 전력 아울렛에 전기적으로 결합하여, 통합 A/C 입력 인터페이스를 통해 A/C 전력을 수신하는 단계;
상기 A/C 입력 인터페이스로부터의 A/C 전력을 저전압 D/C 신호로 변환하는 단계;
상기 저전압 D/C 신호로 적어도 하나의 발광 다이오드(LED)에 전력공급하는 단계; 및
상기 LED로 상기 IoT 허브의 현재 상태를 사용자에게 통지하고, 프로그래밍 가능 야간 조명이 되도록 상기 LED를 프로그래밍하기 위해 프로그램 코드를 추가로 실행하는 단계
를 포함하는, 방법.
As a method,
Providing a Miniature Object Internet (IoT) hub comprising a housing having a compact form factor;
Communicatively coupling the IoT hub to the IoT service over a first communication channel;
Communicatively coupling the IoT hub to at least one IoT device via a second communication channel, the second communication channel being a local wireless communication channel;
Electrically coupling the miniature IoT hub to an AC (A / C) power outlet to receive A / C power through an integrated A / C input interface;
Converting the A / C power from the A / C input interface to a low voltage D / C signal;
Powering at least one light emitting diode (LED) with the low voltage D / C signal; And
Further notifying the user of the current status of the IoT hub with the LED and further executing the program code to program the LED to be a programmable night illumination
/ RTI >
제91항에 있어서, 상기 하우징은 1.5 인치 이하의 큐브를 포함하는, 방법.92. The method of claim 91, wherein the housing comprises a cube of 1.5 inches or less. 제91항에 있어서, 상기 하우징은 1 내지 2 인치 또는 그 미만의 깊이 및 1 내지 3 인치의 높이를 포함하는, 방법.92. The method of claim 91, wherein the housing comprises a depth of 1 to 2 inches or less and a height of 1 to 3 inches. 제91항에 있어서, 제3 네트워크 인터페이스를 상기 A/C 입력 인터페이스에 통신 가능하게 결합하여 상기 A/C 전력 아울렛을 통해 제3 통신 채널을 설정하는 단계를 추가로 포함하는, 방법.92. The method of claim 91, further comprising communicatively coupling a third network interface to the A / C input interface to establish a third communication channel over the A / C power outlet. 제91항에 있어서, 상기 사용자로 하여금 상기 LED가 언제 턴온 및 턴오프될지를 프로그래밍하는 것을 가능하게 하기 위해 사용자의 데이터 처리 디바이스 상에서 프로그램 코드를 실행하는 단계를 추가로 포함하는, 방법.92. The method of claim 91, further comprising: executing the program code on a user's data processing device to enable the user to program when the LED is turned on and off. 제95항에 있어서, 상기 프로그램 코드는 제1 지정 시간에 상기 LED를 턴온하고 제2 지정 시간에 상기 LED를 턴오프하는 옵션을 상기 사용자에게 제공하는, 방법.95. The method of claim 95 wherein the program code provides the user with the option of turning the LED on at a first designated time and turning off the LED at a second designated time. 제96항에 있어서,
상기 프로그램 코드를 통해 그리고 상기 LED로 하여금 각각 상기 제1 및 제2 지정 시간에 턴온 및 턴오프되게 하기 위해 상기 IoT 허브 내의 저전력 마이크로제어기를 프로그래밍하는 단계를 추가로 포함하는, 방법.
96. The method of claim 96,
Further comprising programming the low power microcontroller in the IoT hub through the program code and to cause the LEDs to be turned on and off at the first and second designated times, respectively.
제97항에 있어서,
상기 IoT 허브 상에 통합된 광검출기를 통해 주위 가시광을 검출하는 단계를 추가로 포함하며, 상기 광검출기는 상기 저전력 마이크로제어기에 통신 가능하게 결합되고, 상기 저전력 마이크로제어기는 상기 광검출기가 지정 임계치 이하의 주위 가시광을 측정하는 것에 응답하여 상기 LED를 턴온하도록 구성되는, 방법.
98. The method of claim 97,
Further comprising detecting ambient visible light through an integrated photodetector on the IoT hub, wherein the photodetector is communicatively coupled to the low power microcontroller, wherein the low power microcontroller is configured such that the photodetector is below a predetermined threshold Is configured to turn on the LED in response to measuring the ambient visible light.
제98항에 있어서, 상기 저전력 마이크로제어기는 상기 광검출기가 지정 임계치 초과의 주위 가시광을 측정하는 것에 응답하여 상기 LED를 턴오프하도록 추가로 구성되는, 방법.98. The method of claim 98, wherein the low power microcontroller is further configured to turn off the LED in response to the ambient light being measured beyond a predetermined threshold. 제91항에 있어서, 다른 전자 디바이스들을 충전하는 데 사용할 수 있는 전압 및 전류를 제공하기 위해 상기 IoT 허브 상에 하나 이상의 USB(universal serial bus) 포트들을 제공하는 단계를 추가로 포함하는, 방법.92. The method of claim 91, further comprising providing one or more universal serial bus (USB) ports on the IoT hub to provide voltage and current that can be used to charge other electronic devices. 시스템으로서,
사물 인터넷(IoT) 허브 - 상기 IoT 허브는 셀룰러(셀) 캐리어를 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함하고, 상기 IoT 허브는 상기 IoT 허브를 로컬 통신 채널들을 통해 복수의 IoT 디바이스들에 통신 가능하게 결합하기 위한 로컬 통신 인터페이스를 추가로 포함함 -; 및
상기 IoT 허브를 상기 IoT 서비스에 접속하기 위한 2개 이상의 셀 캐리어들 중에서 선택하기 위해 규칙들의 세트를 구현하기 위한 상기 IoT 허브 상의 셀 캐리어 선택 로직 - 상기 규칙들은 상기 2개 이상의 셀 캐리어들 각각에 대한 접속과 관련된 비용, 및 상기 IoT 허브와 상기 2개 이상의 셀 캐리어들 각각 사이의 셀 접속들과 관련된 접속성 데이터에 적어도 부분적으로 기초함 -
을 포함하는, 시스템.
As a system,
An Internet (IoT) hub, said IoT hub comprising a network interface for coupling said IoT hub to a IoT service via a cellular carrier, said IoT hub communicating said IoT hub via a plurality of IoT Further comprising a local communication interface for communicatively coupling to the devices; And
Cell carrier selection logic on the IoT hub for implementing a set of rules to select from among two or more cell carriers for connecting the IoT hub to the IoT service, the rules being for each of the two or more cell carriers The cost associated with the connection and the connectivity data associated with the cell connections between the IoT hub and each of the two or more cell carriers,
. ≪ / RTI >
제101항에 있어서, 제1 셀 캐리어의 선택 시에, 상기 셀 캐리어 선택 로직은 상기 네트워크 인터페이스로 하여금 상기 IoT 허브를 상기 제1 셀 캐리어에 접속하게 하는, 시스템.102. The system of claim 101, wherein upon selection of a first cell carrier, the cell carrier selection logic causes the network interface to connect the IoT hub to the first cell carrier. 제101항에 있어서, 상기 접속성 데이터는 상기 IoT 허브와 상기 셀 캐리어들 각각 사이의 신호 강도를 포함하는, 시스템.102. The system of claim 101, wherein the connectivity data comprises signal strength between the IoT hub and each of the cell carriers. 제103항에 있어서, 상기 접속성 데이터는 상기 IoT 허브와 상기 셀 캐리어들 각각 사이의 접속들과 관련된 신뢰성 및/또는 성능 데이터를 추가로 포함하는, 시스템.104. The system of claim 103, wherein the connectivity data further comprises reliability and / or performance data associated with connections between the IoT hub and each of the cell carriers. 제103항에 있어서, 상기 규칙들은, 상기 접속성 데이터가 최저 비용 셀 캐리어와 관련된 상기 신호 강도 및/또는 다른 접속성 변수들이 지정 임계치들을 초과한다는 것을 지시하는 한, 상기 셀 캐리어 선택 로직이 상기 최저 비용 셀 캐리어와 접속해야 한다고 지정하는, 시스템.104. The method of claim 103, wherein the rules are adapted to determine whether the cell carrier selection logic is in the lowest state as long as the connectivity data indicates that the signal strength and / or other connectivity variables associated with the lowest cost cell carrier exceed specified thresholds. A cost cell carrier. 제101항에 있어서, 상기 IoT 허브는 상기 2개 이상의 셀 캐리어들 각각에 접속할 수 있는 능력으로 사전에 프로비저닝되는, 시스템.102. The system of claim 101, wherein the IoT hub is pre-provisioned with the ability to connect to each of the two or more cell carriers. 제101항에 있어서, 상기 규칙들의 세트는 상기 IoT 서비스로부터 상기 IoT 허브 상에서 주기적으로 업데이트되는, 시스템.102. The system of claim 101, wherein the set of rules is periodically updated on the IoT hub from the IoT service. 제101항에 있어서, 상기 로컬 통신 채널들은 블루투스 저에너지(LE) 통신 채널들을 포함하는, 시스템.102. The system of claim 101, wherein the local communication channels comprise Bluetooth low energy (LE) communication channels. 제108항에 있어서, 상기 IoT 디바이스들 중 하나 이상은 상이한 타입들의 전자 장비를 상기 전자 장비와의 IR 또는 RF 통신을 통해 제어하는 IR 또는 RF 블라스터를 포함하고, 각각의 IoT 디바이스는 상기 상이한 전자 장비의 동작과 관련된 현재 조건들을 검출하는 적어도 하나의 센서를 추가로 포함하고, 각각의 IoT 디바이스는 상기 무선 통신 채널을 통해 상기 현재 조건들의 지시를 상기 IoT 허브로 전송하는, 시스템.108. The apparatus of claim 108, wherein at least one of the IoT devices comprises an IR or RF blaster controlling IR or RF communications with different types of electronic equipment with the electronic equipment, each IoT device comprising: Wherein each IoT device sends an indication of the current conditions to the IoT hub via the wireless communication channel. 방법으로서,
셀 캐리어 비용 및/또는 접속성과 관련된 규칙들을 포함하는, 셀 캐리어들과의 접속과 관련된 규칙들로 IoT 허브를 프로그래밍하는 단계;
셀 캐리어 비용 및/또는 접속성과 관련된 데이터를 수집하는 단계;
상기 수집된 데이터를 사용하여 상기 규칙들을 실행하여 상기 IoT 허브를 접속할 주요 셀 캐리어를 결정하는 단계; 및
상기 IoT 허브를 상기 주요 셀 캐리어에 접속하는 단계
를 포함하는, 방법.
As a method,
Programming the IoT hub with rules associated with connections with cell carriers, including rules related to cell carrier cost and / or connectivity;
Collecting data related to cell carrier cost and / or connectivity;
Executing the rules using the collected data to determine a primary cell carrier to which to connect the IoT hub; And
Connecting the IoT hub to the primary cell carrier
/ RTI >
제110항에 있어서, 제1 셀 캐리어의 선택 시에, 상기 셀 캐리어 선택 로직은 상기 네트워크 인터페이스로 하여금 상기 IoT 허브를 상기 제1 셀 캐리어에 접속하게 하는, 방법.112. The method of claim 110, wherein upon selection of a first cell carrier, the cell carrier selection logic causes the network interface to connect the IoT hub to the first cell carrier. 제110항에 있어서, 상기 접속성 데이터는 상기 IoT 허브와 상기 셀 캐리어들 각각 사이의 신호 강도를 포함하는, 방법.112. The method of claim 110, wherein the connectivity data comprises signal strength between the IoT hub and each of the cell carriers. 제112항에 있어서, 상기 접속성 데이터는 상기 IoT 허브와 상기 셀 캐리어들 각각 사이의 접속들과 관련된 신뢰성 및/또는 성능 데이터를 추가로 포함하는, 방법.114. The method of claim 112, wherein the connectivity data further comprises reliability and / or performance data associated with connections between the IoT hub and each of the cell carriers. 제112항에 있어서, 상기 규칙들은, 상기 접속성 데이터가 최저 비용 셀 캐리어와 관련된 상기 신호 강도 및/또는 다른 접속성 변수들이 지정 임계치들을 초과한다는 것을 지시하는 한, 상기 셀 캐리어 선택 로직이 상기 최저 비용 셀 캐리어와 접속해야 한다고 지정하는, 방법.113. The method of claim 112, wherein the rules are based on at least one of the cell carrier selection logic and the cell carrier selection logic as long as the connectivity data indicates that the signal strength and / or other connectivity variables associated with the lowest cost cell carrier exceed specified thresholds. Cost cell carrier. 제110항에 있어서, 상기 IoT 허브는 상기 2개 이상의 셀 캐리어들 각각에 접속할 수 있는 능력으로 사전에 프로비저닝되는, 방법.112. The method of claim 110, wherein the IoT hub is pre-provisioned with the ability to connect to each of the two or more cell carriers. 제110항에 있어서, 상기 규칙들의 세트는 상기 IoT 서비스로부터 상기 IoT 허브 상에서 주기적으로 업데이트되는, 방법.112. The method of claim 110, wherein the set of rules is periodically updated on the IoT hub from the IoT service. 제110항에 있어서, 상기 로컬 통신 채널들은 블루투스 저에너지(LE) 통신 채널들을 포함하는, 방법.112. The method of claim 110, wherein the local communication channels comprise Bluetooth low energy (LE) communication channels. 제117항에 있어서, 상기 IoT 디바이스들 중 하나 이상은 상이한 타입들의 전자 장비를 상기 전자 장비와의 IR 또는 RF 통신을 통해 제어하는 IR 또는 RF 블라스터를 포함하고, 각각의 IoT 디바이스는 상기 상이한 전자 장비의 동작과 관련된 현재 조건들을 검출하는 적어도 하나의 센서를 추가로 포함하고, 각각의 IoT 디바이스는 상기 무선 통신 채널을 통해 상기 현재 조건들의 지시를 상기 IoT 허브로 전송하는, 방법.117. The system of claim 117, wherein one or more of the IoT devices comprises an IR or RF blaster that controls different types of electronic equipment via IR or RF communication with the electronic equipment, each IoT device comprising: Wherein each IoT device transmits an indication of the current conditions to the IoT hub via the wireless communication channel. 시스템으로서,
사물 인터넷(IoT) 허브 - 상기 IoT 허브는 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함하고, 상기 IoT 허브는 상기 IoT 허브를 로컬 통신 채널들을 통해 복수의 IoT 디바이스들에 통신 가능하게 결합하기 위한 로컬 통신 인터페이스를 추가로 포함함 - 를 포함하며,
상기 IoT 허브는 상기 IoT 디바이스들 각각으로부터 상이한 이벤트 타입들의 복수의 상이한 이벤트들을 수신하고, 상기 IoT 허브는
각각의 이벤트를 평가하고, 이에 응답하여 상기 IoT 허브 상에 프로그래밍된 이벤트 필터링 규칙들의 세트에 따라 상기 네트워크 인터페이스를 통해 상기 이벤트를 하나 이상의 외부 서비스들로 전송할지를 결정하는 이벤트 필터를 추가로 포함하고, 상기 이벤트 필터링 규칙들은 상기 IoT 서비스에 의해 제공되고, 상이한 이벤트 타입들이 상기 IoT 허브에 의해 어떻게 처리될지를 지정하는, 시스템.
As a system,
An Internet (IoT) hub, said IoT hub comprising a network interface for coupling said IoT hub to an IoT service, said IoT hub communicatively coupling said IoT hub to a plurality of IoT devices via local communication channels Further comprising a local communication interface for communicating,
Wherein the IoT hub receives a plurality of different events of different event types from each of the IoT devices,
Further comprising an event filter for evaluating each event and responsively responsive to the set of event filtering rules programmed on the IoT hub to determine whether to transmit the event via the network interface to one or more external services, Wherein the event filtering rules are provided by the IoT service and specify how different event types are to be handled by the IoT hub.
제119항에 있어서, 상기 이벤트 필터링 규칙들은 상기 IoT 허브의 사용자에 의해 적어도 부분적으로 지정되는, 시스템.120. The system of claim 119, wherein the event filtering rules are at least partially specified by a user of the IoT hub. 제119항에 있어서, 상기 하나 이상의 외부 서비스들은 상기 IoT 허브에 의해 노출된 애플리케이션 프로그래밍 인터페이스(API)를 통해 상기 IoT 허브와 인터페이싱하며, 상기 하나 이상의 외부 서비스들은 상기 API를 통해 특정 타입들의 이벤트들의 통지들을 수신하도록 등록하는, 시스템.119. The method of claim 119, wherein the one or more external services interfaces with the IoT hub via an application programming interface (API) exposed by the IoT hub, the one or more external services The system comprising: 제121항에 있어서, 상기 IoT 서비스는 상기 하나 이상의 외부 서비스들이 등록한 상기 이벤트들을 검출하도록 구성되고, 상기 IoT 서비스는 이에 응답하여 상기 이벤트 필터링 규칙들을 업데이트하고 상기 이벤트 필터에 상기 업데이트된 이벤트 필터링 규칙들을 제공하는, 시스템.121. The apparatus of claim 121, wherein the IoT service is configured to detect the events registered by the one or more external services, and wherein the IoT service updates the event filtering rules in response to the updated event filtering rules Providing the system. 제122항에 있어서, 상기 이벤트 필터에 의해 전송될 상기 이벤트들 중 적어도 하나는 통지가 상기 외부 서비스뿐만 아니라 상기 최종 사용자의 데이터 처리 디바이스로 전송될 이벤트를 포함하는, 시스템.124. The system of claim 122, wherein at least one of the events to be sent by the event filter includes an event in which notification is sent to the external service as well as to the end user's data processing device. 제119항에 있어서, 상기 복수의 IoT 디바이스들은 지정 임계치들 초과 및 미만의 검출 값들을 갖는 이벤트들을 포함하는 상이한 타입들의 이벤트들을 생성하도록 구성되는, 시스템.120. The system of claim 119, wherein the plurality of IoT devices are configured to generate different types of events including events having detected values that are greater than and less than predetermined thresholds. 제124항에 있어서, 상기 이벤트 필터는 상기 지정 임계치들 초과의 값들을 갖는 이벤트들을 상기 IoT 서비스 및/또는 상기 하나 이상의 외부 서비스들로 전송하고, 상기 이벤트 필터는 상기 지정 임계치들 미만의 값들을 갖는 이벤트들을 전송하지 않는, 시스템.123. The apparatus of claim 124, wherein the event filter transmits events with values that exceed the specified thresholds to the IoT service and / or the one or more external services, and wherein the event filter has values less than the specified thresholds The system does not transmit events. 제127항에 있어서, 상기 이벤트들 중 적어도 일부는 보안 관련 이벤트들을 포함하는, 시스템.127. The system of claim 127, wherein at least some of the events include security related events. 제119항에 있어서, 상기 IoT 서비스는 상기 IoT 허브로부터 전송된 각각의 이벤트를 평가하고 이에 응답하여 상기 IoT 서비스 상에 프로그래밍된 이벤트 필터링 규칙들의 세트에 따라 상기 이벤트를 하나 이상의 외부 서비스들 및/또는 사용자 디바이스들로 전송할지를 결정하는 이벤트 필터를 포함하는, 시스템.120. The method of claim 119, wherein the IoT service evaluates each event sent from the IoT hub and responsively responsive to the set of event filtering rules programmed on the IoT service, And an event filter for determining whether to transmit to the user devices. 제127항에 있어서, 상기 외부 서비스들 각각은 상기 IoT 서비스에 의해 노출된 API를 통해 이벤트들을 수신하기 위해 가입하는, 시스템.127. The system of claim 127, wherein each of the external services subscribe to receive events via an API exposed by the IoT service. 방법으로서,
네트워크 인터페이스를 통해 사물 인터넷(IoT) 허브를 IoT 서비스에 통신 가능하게 결합하는 단계;
로컬 통신 채널들을 통해 상기 IoT 허브를 복수의 IoT 디바이스들에 통신 가능하게 결합하는 단계;
상기 IoT 허브에서 상기 IoT 디바이스들 각각으로부터 상이한 이벤트 타입들의 복수의 상이한 이벤트들을 수신하는 단계; 및
상기 IoT 허브 상의 이벤트 필터에 의해 각각의 이벤트를 평가하고, 이에 응답하여 상기 IoT 허브 상에 프로그래밍된 이벤트 필터링 규칙들의 세트에 따라 상기 네트워크 인터페이스를 통해 상기 이벤트를 하나 이상의 외부 서비스들로 전송할지를 결정하는 단계 - 상기 이벤트 필터링 규칙들은 상기 IoT 서비스에 의해 제공되고, 상이한 이벤트 타입들이 상기 IoT 허브에 의해 어떻게 처리될지를 지정함 -
를 포함하는, 방법.
As a method,
Communicatively coupling the Internet of Things (IoT) hub to the IoT service via a network interface;
Communicatively coupling the IoT hub to a plurality of IoT devices via local communication channels;
Receiving a plurality of different events of different event types from each of the IoT devices at the IoT hub; And
Evaluating each event by an event filter on the IoT hub and responsively determining whether to transmit the event via the network interface to one or more external services according to a set of event filtering rules programmed on the IoT hub Wherein the event filtering rules are provided by the IoT service and specify how different event types are to be handled by the IoT hub,
/ RTI >
제129항에 있어서, 상기 이벤트 필터링 규칙들은 상기 IoT 허브의 사용자에 의해 적어도 부분적으로 지정되는, 방법.129. The method of claim 129, wherein the event filtering rules are at least partially specified by a user of the IoT hub. 제129항에 있어서, 상기 하나 이상의 외부 서비스들은 상기 IoT 허브에 의해 노출된 애플리케이션 프로그래밍 인터페이스(API)를 통해 상기 IoT 허브와 인터페이싱하며, 상기 하나 이상의 외부 서비스들은 상기 API를 통해 특정 타입들의 이벤트들의 통지들을 수신하도록 등록하는, 방법.129. The system of claim 129, wherein the one or more external services interfaces with the IoT hub via an application programming interface (API) exposed by the IoT hub, the one or more external services are notified of certain types of events Gt; 제131항에 있어서, 상기 IoT 서비스는 상기 하나 이상의 외부 서비스들이 등록한 상기 이벤트들을 검출하도록 구성되고, 상기 IoT 서비스는 이에 응답하여 상기 이벤트 필터링 규칙들을 업데이트하고 상기 이벤트 필터에 상기 업데이트된 이벤트 필터링 규칙들을 제공하는, 방법.133. The apparatus of claim 131, wherein the IoT service is configured to detect the events registered by the one or more external services, the IoT service updating the event filtering rules in response to the updated event filtering rules Providing. 제132항에 있어서, 상기 이벤트 필터에 의해 전송될 상기 이벤트들 중 적어도 하나는 통지가 상기 외부 서비스뿐만 아니라 상기 최종 사용자의 데이터 처리 디바이스로 전송될 이벤트를 포함하는, 방법.132. The method of claim 132, wherein at least one of the events to be sent by the event filter includes an event that a notification is sent to the end user's data processing device as well as to the external service. 제131항에 있어서, 상기 복수의 IoT 디바이스들은 지정 임계치들 초과 및 미만의 검출 값들을 갖는 이벤트들을 포함하는 상이한 타입들의 이벤트들을 생성하도록 구성되는, 방법.133. The method of claim 131, wherein the plurality of IoT devices are configured to generate different types of events including events having detected values that are greater than and less than predetermined thresholds. 제134항에 있어서, 상기 이벤트 필터는 상기 지정 임계치들 초과의 값들을 갖는 이벤트들을 상기 IoT 서비스 및/또는 상기 하나 이상의 외부 서비스들로 전송하고, 상기 이벤트 필터는 상기 지정 임계치들 미만의 값들을 갖는 이벤트들을 전송하지 않는, 방법.134. The apparatus of claim 134, wherein the event filter transmits events with values that exceed the specified thresholds to the IoT service and / or the one or more external services, and wherein the event filter has values less than the specified thresholds ≪ / RTI > 제135항에 있어서, 상기 이벤트들 중 적어도 일부는 보안 관련 이벤트들을 포함하는, 방법.136. The method of claim 135, wherein at least some of the events include security related events. 시스템으로서,
사물 인터넷(IoT) 허브 - 상기 IoT 허브는 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함하고, 상기 IoT 허브는 상기 IoT 허브를 로컬 통신 채널들을 통해 복수의 IoT 디바이스들에 통신 가능하게 결합하기 위한 로컬 통신 인터페이스를 추가로 포함함 - 를 포함하며,
상기 IoT 허브는 상기 IoT 디바이스들 각각으로부터 상이한 이벤트 타입들의 복수의 상이한 이벤트들을 수신하고 상기 이벤트들을 IoT 서비스로 전송하며,
상기 IoT 서비스는 각각의 이벤트를 평가하고 이에 응답하여 상기 IoT 서비스 상에 프로그래밍된 이벤트 필터링 규칙들의 세트에 따라 상기 이벤트를 하나 이상의 외부 서비스들 및/또는 사용자 디바이스들로 전송할지를 결정하는 이벤트 필터를 포함하고, 상기 이벤트 필터링 규칙들은 상이한 이벤트 타입들이 상기 IoT 서비스에 의해 어떻게 처리될지를 지정하는, 시스템.
As a system,
An Internet (IoT) hub, said IoT hub comprising a network interface for coupling said IoT hub to an IoT service, said IoT hub communicatively coupling said IoT hub to a plurality of IoT devices via local communication channels Further comprising a local communication interface for communicating,
The IoT hub receives a plurality of different events of different event types from each of the IoT devices and transmits the events to the IoT service,
The IoT service includes an event filter that evaluates each event and responsively determines whether to send the event to one or more external services and / or user devices according to a set of event filtering rules programmed on the IoT service And wherein the event filtering rules specify how different event types are to be handled by the IoT service.
제137항에 있어서, 상기 이벤트 필터링 규칙들은 상기 IoT 허브의 사용자에 의해 적어도 부분적으로 지정되는, 시스템.143. The system of claim 137, wherein the event filtering rules are at least partially specified by a user of the IoT hub. 제137항에 있어서, 상기 하나 이상의 외부 서비스들은 상기 IoT 서비스에 의해 노출된 애플리케이션 프로그래밍 인터페이스(API)를 통해 상기 IoT 서비스와 인터페이싱하며, 상기 하나 이상의 외부 서비스들은 상기 API를 통해 특정 타입들의 이벤트들의 통지들을 수신하도록 등록하는, 시스템.143. The method of claim 137, wherein the one or more external services interfaces with the IoT service via an application programming interface (API) exposed by the IoT service, wherein the one or more external services provide notification of certain types of events The system comprising: 제139항에 있어서, 상기 IoT 서비스는 상기 하나 이상의 외부 서비스들이 등록한 상기 이벤트들을 검출하도록 구성되고, 상기 IoT 서비스는 이에 응답하여 상기 이벤트 필터링 규칙들을 업데이트하고 상기 이벤트 필터에 상기 업데이트된 이벤트 필터링 규칙들을 제공하는, 시스템.144. The method of claim 139, wherein the IoT service is configured to detect the events registered by the one or more external services, the IoT service updating the event filtering rules in response thereto and sending the updated event filtering rules Providing the system. 제140항에 있어서, 상기 이벤트 필터에 의해 전송될 상기 이벤트들 중 적어도 하나는 통지가 상기 외부 서비스뿐만 아니라 상기 최종 사용자의 데이터 처리 디바이스로 전송될 이벤트를 포함하는, 시스템.143. The system of claim 140, wherein at least one of the events to be sent by the event filter includes an event that a notification is sent to the end user's data processing device as well as to the external service. 제119항에 있어서, 상기 복수의 IoT 디바이스들은 지정 임계치들 초과 및 미만의 검출 값들을 갖는 이벤트들을 포함하는 상이한 타입들의 이벤트들을 생성하도록 구성되는, 시스템.120. The system of claim 119, wherein the plurality of IoT devices are configured to generate different types of events including events having detected values that are greater than and less than predetermined thresholds. 제142항에 있어서, 상기 이벤트 필터는 상기 지정 임계치들 초과의 값들을 갖는 이벤트들을 상기 외부 서비스들로 전송하고, 상기 이벤트 필터는 상기 지정 임계치들 미만의 값들을 갖는 이벤트들을 전송하지 않는, 시스템.143. The system of claim 142, wherein the event filter transmits events with values that exceed the specified thresholds to the external services, and wherein the event filter does not send events with values less than the specified thresholds. IoT 시스템으로서,
사물 인터넷(IoT) 허브 - 상기 IoT 허브는 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함하고, 상기 IoT 허브는 상기 IoT 허브를 로컬 통신 채널들을 통해 복수의 IoT 디바이스들에 통신 가능하게 결합하기 위한 로컬 통신 인터페이스를 추가로 포함하며,
상기 IoT 허브는 상기 IoT 디바이스들 각각으로부터 데이터를 수집하고 복수의 상이한 사용자들로부터의 사용자 입력에 응답하여 상기 IoT 디바이스들을 제어하는 로직을 포함함 -;
상기 IoT 시스템 내의 사용자 거동 데이터를 수집하는 사용자 거동 데이터 수집 로직 - 상기 사용자 거동 데이터 수집 로직은 상기 IoT 디바이스들 각각으로부터 각각의 사용자에 의해 액세스된 데이터 및 각각의 사용자에 의해 제어된 상기 IoT 디바이스들을 모니터링 및 기록함 -;
상기 사용자 거동 데이터를 분석하여 각각의 사용자에 대한 프로파일을 결정하는 사용자 프로파일 생성 로직; 및
각각의 결정된 프로파일에 따라 각각의 사용자에게 전송될 타겟 콘텐츠를 생성하는 타겟 콘텐츠 생성 로직
을 포함하는, 시스템.
As an IoT system,
An Internet (IoT) hub, said IoT hub comprising a network interface for coupling said IoT hub to an IoT service, said IoT hub communicatively coupling said IoT hub to a plurality of IoT devices via local communication channels Further comprising a local communication interface
The IoT hub including logic for collecting data from each of the IoT devices and controlling the IoT devices in response to user input from a plurality of different users;
User behavior data collection logic for collecting user behavior data in the IoT system, wherein the user behavior data collection logic is configured to monitor data accessed by each user from each of the IoT devices and the IoT devices controlled by each user And recording;
User profile creation logic for analyzing the user behavior data to determine a profile for each user; And
A target content generation logic for generating target content to be transmitted to each user in accordance with each determined profile,
. ≪ / RTI >
제144항에 있어서, 상기 사용자 거동 데이터 수집 로직은 상기 IoT 허브 상에서 실행되고, 상기 사용자 거동 데이터는 상기 IoT 서비스로 전송되는, 시스템.144. The system of claim 144, wherein the user behavior data collection logic is run on the IoT hub and the user behavior data is sent to the IoT service. 제145항에 있어서, 상기 사용자 프로파일 생성 로직은 상기 IoT 서비스 또는 외부 서비스 상에서 실행되어 각각의 사용자에 대한 상기 프로파일을 생성하는, 시스템.145. The system of claim 145, wherein the user profile creation logic is run on the IoT service or external service to generate the profile for each user. 제146항에 있어서, 상기 타겟 콘텐츠 생성 로직은 상기 IoT 서비스 또는 외부 서비스 상에서 실행되어 각각의 사용자에게 전송될 상기 타겟 콘텐츠를 생성하는, 시스템.146. The system of claim 146, wherein the target content creation logic is run on the IoT service or an external service to generate the target content to be sent to each user. 제144항에 있어서, 상기 프로파일은 상기 IoT 시스템 내의 각각의 사용자에 의해 액세스된 데이터 및 상기 IoT 시스템 내의 각각의 사용자에 의해 제어된 IoT 디바이스들에 따라 각각의 사용자에 대해 생성되는, 시스템.144. The system of claim 144, wherein the profile is generated for each user according to data accessed by each user in the IoT system and IoT devices controlled by each user in the IoT system. 제144항에 있어서, 사용자의 데이터 처리 디바이스 상에서 실행되는 앱 또는 브라우저 실행 가능 코드를 추가로 포함하며, 상기 앱 또는 브라우저 실행 가능 코드는 상기 사용자가 상기 IoT 디바이스들을 제어하고 상기 IoT 시스템 내의 상기 IoT 디바이스들에 의해 수집된 데이터에 액세스하는 것을 가능하게 하는, 시스템.144. The computer-readable medium of claim 144, further comprising an app or browser executable code running on a user's data processing device, wherein the user controls the IoT devices and the IoT device To access data collected by the system. 제149항에 있어서, 상기 앱 또는 브라우저 실행 가능 코드는 상기 사용자의 프로파일에 기초하여 생성된 상기 타겟 콘텐츠를 수신하고 상기 타겟 콘텐츠를 상기 사용자에게 표시하도록 추가로 구성되는, 시스템.153. The system of claim 149, wherein the app or browser executable code is further configured to receive the targeted content generated based on the profile of the user and to display the targeted content to the user. 제150항에 있어서, 상기 타겟 콘텐츠는 상기 사용자가 상기 타겟 콘텐츠와 관련된 추가의 정보에 액세스할 수 있게 하는 하나 이상의 네트워크 링크들을 포함하는, 시스템.153. The system of claim 150, wherein the target content comprises one or more network links that enable the user to access additional information associated with the target content. 제144항에 있어서, 상기 IoT 서비스는 각각의 사용자에 대한 상기 프로파일을 생성하기 위해 상기 사용자 프로파일 생성 로직을 실행하는 하나 이상의 외부 서비스들로 상기 사용자 거동 데이터를 송신하며, 타겟 콘텐츠 생성 로직은 각각의 사용자 프로파일에 기초하여 타겟 콘텐츠를 생성하는, 시스템.144. The method of claim 144, wherein the IoT service sends the user behavior data to one or more external services executing the user profile creation logic to create the profile for each user, And generate the target content based on the user profile. 제152항에 있어서, 상기 외부 서비스들 중 하나 이상은 상기 타겟 콘텐츠를 사용자에 의해 조작되는 데이터 처리 디바이스로 전송하는, 시스템.153. The system of claim 152, wherein at least one of the external services sends the targeted content to a data processing device that is operated by a user. IoT 시스템 내에서 실행되는 방법으로서,
네트워크 인터페이스를 포함하는 사물 인터넷(IoT) 허브를 IoT 서비스에 통신 가능하게 결합하는 단계;
로컬 통신 채널들을 통해 로컬 통신 인터페이스를 통해서 상기 IoT 허브를 복수의 IoT 디바이스들에 통신 가능하게 결합하는 단계;
상기 IoT 디바이스들 각각으로부터 데이터를 수집하고, 복수의 상이한 사용자들로부터의 사용자 입력에 응답하여 상기 IoT 디바이스들 각각을 제어하는 단계;
상기 IoT 디바이스들 각각으로부터 각각의 사용자에 의해 액세스된 상기 데이터 및 각각의 사용자에 의해 제어된 상기 IoT 디바이스들을 모니터링 및 기록함으로써 상기 IoT 시스템 내의 사용자 거동 데이터를 수집하는 단계;
상기 사용자 거동 데이터를 분석하여 각각의 사용자에 대한 프로파일을 결정하는 단계; 및
각각의 결정된 프로파일에 따라 각각의 사용자에게 전송될 타겟 콘텐츠를 생성하는 단계
를 포함하는, 방법.
A method implemented in an IoT system,
Communicatively coupling an Internet (IoT) hub comprising a network interface to an IoT service;
Communicatively coupling the IoT hub to a plurality of IoT devices via a local communication interface over local communication channels;
Collecting data from each of the IoT devices and controlling each of the IoT devices in response to user input from a plurality of different users;
Collecting user behavior data in the IoT system by monitoring and recording the data accessed by each user from each of the IoT devices and the IoT devices controlled by each user;
Analyzing the user behavior data to determine a profile for each user; And
Generating target content to be transmitted to each user according to each determined profile
/ RTI >
제154항에 있어서, 상기 사용자 거동 데이터를 수집하는 동작은 상기 사용자 거동 데이터를 상기 IoT 서비스로 전송하는 상기 IoT 허브에 의해 수행되는, 방법.156. The method of claim 154, wherein the act of collecting user behavior data is performed by the IoT hub transmitting the user behavior data to the IoT service. 제155항에 있어서, 상기 사용자 거동 데이터를 분석하여 각각의 사용자에 대한 프로파일을 생성하는 동작은 상기 IoT 서비스에 의해 또는 외부 서비스 상에서 수행되는, 방법.The method of claim 155, wherein analyzing the user behavior data and generating a profile for each user is performed by the IoT service or on an external service. 제156항에 있어서, 상기 타겟 콘텐츠를 생성하는 동작은 상기 IoT 서비스에 의해 또는 외부 서비스 상에서 수행되는, 방법.156. The method of claim 156, wherein the act of generating the target content is performed by the IoT service or on an external service. 제154항에 있어서, 상기 프로파일은 상기 IoT 시스템 내의 각각의 사용자에 의해 액세스된 데이터 및 상기 IoT 시스템 내의 각각의 사용자에 의해 제어된 IoT 디바이스들에 따라 각각의 사용자에 대해 생성되는, 방법.156. The method of claim 154, wherein the profile is generated for each user according to data accessed by each user in the IoT system and IoT devices controlled by each user in the IoT system. 제154항에 있어서, 사용자의 데이터 처리 디바이스 상에서 실행되는 앱 또는 브라우저 실행 가능 코드를 제공하는 단계를 추가로 포함하며, 상기 앱 또는 브라우저 실행 가능 코드는 상기 사용자가 상기 IoT 디바이스들을 제어하고 상기 IoT 시스템 내의 상기 IoT 디바이스들에 의해 수집된 데이터에 액세스하는 것을 가능하게 하는, 방법.154. The method of claim 154, further comprising providing an app or browser executable code that runs on a user's data processing device, wherein the app or browser executable code is configured to allow the user to control the IoT devices, Lt; RTI ID = 0.0 > IoT < / RTI > 제159항에 있어서, 상기 앱 또는 브라우저 실행 가능 코드는 상기 사용자의 프로파일에 기초하여 생성된 상기 타겟 콘텐츠를 수신하고 상기 타겟 콘텐츠를 상기 사용자에게 표시하도록 추가로 구성되는, 방법.159. The method of claim 159, wherein the app or browser executable code is further configured to receive the targeted content generated based on the profile of the user and to display the targeted content to the user. 제160항에 있어서, 상기 타겟 콘텐츠는 상기 사용자가 상기 타겟 콘텐츠와 관련된 추가의 정보에 액세스할 수 있게 하는 하나 이상의 네트워크 링크들을 포함하는, 방법.154. The method of claim 160, wherein the target content comprises one or more network links that enable the user to access additional information associated with the target content. 제154항에 있어서, 상기 IoT 서비스는 각각의 사용자에 대한 상기 프로파일을 생성하기 위해 상기 사용자 프로파일 생성 로직을 실행하는 하나 이상의 외부 서비스들로 상기 사용자 거동 데이터를 송신하며, 타겟 콘텐츠 생성 로직은 각각의 사용자 프로파일에 기초하여 타겟 콘텐츠를 생성하는, 방법.156. The method of claim 154, wherein the IoT service sends the user behavior data to one or more external services executing the user profile creation logic to generate the profile for each user, And generate the target content based on the user profile. 제162항에 있어서, 상기 외부 서비스들 중 하나 이상은 상기 타겟 콘텐츠를 사용자에 의해 조작되는 데이터 처리 디바이스로 전송하는, 방법.169. The method of claim 162, wherein at least one of the external services sends the targeted content to a data processing device that is operated by a user.
KR1020177021721A 2015-01-06 2016-01-04 Systems and methods for implementing Internet of Things (IoT) remote control applications KR102524513B1 (en)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US14/590,700 2015-01-06
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,708 2015-01-06
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,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,649 2015-01-06
US14/590,663 2015-01-06
US14/590,765 US20160197769A1 (en) 2015-01-06 2015-01-06 System and method for filtering events at an iot hub
US14/590,765 2015-01-06
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,649 US20160198536A1 (en) 2015-01-06 2015-01-06 Internet-of-things (iot) hub apparatus and method
US14/590,719 2015-01-06
US14/590,686 2015-01-06
US14/590,799 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,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
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
KR20170102937A true KR20170102937A (en) 2017-09-12
KR102524513B1 KR102524513B1 (en) 2023-04-20

Family

ID=56356332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177021721A KR102524513B1 (en) 2015-01-06 2016-01-04 Systems and methods 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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20210078708A (en) * 2019-12-19 2021-06-29 주식회사 오성전자 Legacy home appliance control method using context awareness and system supporting it
KR20210092982A (en) * 2020-01-17 2021-07-27 숭실대학교산학협력단 METHOD FOR CONTROLLING IoT APPARATUS USING WIRELESS REMOTE CONTROLLER OF LOW-POWER, IoT HUB and IoT SYSTEM
KR20220023620A (en) * 2020-08-21 2022-03-02 조윤호 Automatic device control system for lighting control and crime prevention
KR102464535B1 (en) * 2021-11-11 2022-11-09 주식회사 디나텍 IoT Home Gateway with in-house broadcasting and voice analysis function and method using the same
WO2024071648A1 (en) * 2022-09-26 2024-04-04 삼성전자주식회사 Electronic device for controlling external device, and control method therefor

Families Citing this family (20)

* 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 广州市首试科技有限公司 Washing machine with Bluetooth communication function
US10587400B2 (en) 2018-02-12 2020-03-10 Afero, Inc. System and method for securely configuring a new device with network credentials
JP7106984B2 (en) * 2018-05-22 2022-07-27 富士フイルムビジネスイノベーション株式会社 Information processing device, information processing system and program
JP7155605B2 (en) * 2018-05-22 2022-10-19 富士フイルムビジネスイノベーション株式会社 Information processing device and program
CN112313920B (en) * 2018-07-03 2023-09-08 亚萨合莱有限公司 Providing connectivity for multiple IOT devices
CN109862104A (en) * 2019-02-27 2019-06-07 江西昊潮科技有限公司 A kind of Intelligent commercial clothes washing system and its application method based on NB-IoT
KR20220129021A (en) * 2020-02-21 2022-09-22 엘지전자 주식회사 Display device and method
KR102412308B1 (en) * 2020-02-26 2022-06-24 엘지전자 주식회사 Artificial intelligence apparatus and method for providing device control function based on inter-device pairing
CN114007198A (en) * 2020-07-13 2022-02-01 深圳市利维坦技术有限公司 System and method for context-aware self-configuring logistics hardware
CN114172925B (en) * 2020-09-10 2023-03-24 华为技术有限公司 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
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
KR20240052386A (en) * 2022-10-14 2024-04-23 삼성전자주식회사 Electronic apparatus and controlling method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060095768A (en) * 2003-09-26 2006-09-01 오픈픽 인크. Device control system, method, and apparatus
KR20140024563A (en) * 2012-08-20 2014-03-03 (주)유타스 Home-automation system using mobile device

Family Cites Families (12)

* 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
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
WO2009135312A1 (en) * 2008-05-08 2009-11-12 Unify4Life Corporation Remote control system and method
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
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
CN104063227B (en) * 2014-06-30 2017-04-05 合肥工业大学 A kind of instruction learning method based on Internet of Things

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060095768A (en) * 2003-09-26 2006-09-01 오픈픽 인크. Device control system, method, and apparatus
KR20140024563A (en) * 2012-08-20 2014-03-03 (주)유타스 Home-automation system using mobile device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20210078708A (en) * 2019-12-19 2021-06-29 주식회사 오성전자 Legacy home appliance control method using context awareness and system supporting it
KR20210092982A (en) * 2020-01-17 2021-07-27 숭실대학교산학협력단 METHOD FOR CONTROLLING IoT APPARATUS USING WIRELESS REMOTE CONTROLLER OF LOW-POWER, IoT HUB and IoT SYSTEM
KR20220023620A (en) * 2020-08-21 2022-03-02 조윤호 Automatic device control system for lighting control and crime prevention
KR102464535B1 (en) * 2021-11-11 2022-11-09 주식회사 디나텍 IoT Home Gateway with in-house broadcasting and voice analysis function and method using the same
WO2024071648A1 (en) * 2022-09-26 2024-04-04 삼성전자주식회사 Electronic device for controlling external device, and control method therefor

Also Published As

Publication number Publication date
WO2016111916A1 (en) 2016-07-14
CN107251530A (en) 2017-10-13
CN107251530B (en) 2021-07-06
KR102524513B1 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
KR102524513B1 (en) Systems and methods 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
US9774497B2 (en) System and method for implementing internet of things (IOT) remote control applications
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
US20160198536A1 (en) Internet-of-things (iot) hub apparatus and method
KR102441429B1 (en) Apparatus and method for intermediary device data collection
US20160197769A1 (en) System and method for filtering events at an iot hub
US10798523B2 (en) System and method for accurately sensing user location in an IoT system
JP6926085B2 (en) Secure Things Internet of Things (IoT) Device Provisioning Systems and Methods
US10171462B2 (en) System and method for secure internet of things (IOT) device provisioning
US9704318B2 (en) System and method for accurately sensing user location in an IoT system
US10260765B2 (en) Smart register apparatus and method
US20200053595A1 (en) System and method for flow control in an internet of things (iot) system
US20180048710A1 (en) Internet of things (iot) storage device, system and method
KR20170132820A (en) System and method for automatic wireless network authentication
JP6800881B2 (en) Systems and methods for accurately detecting the user's position in the IoT system
WO2016196552A1 (en) System and method for an internet of things (iot) moisture sensor

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant