KR102636605B1 - 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록 - Google Patents

어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록 Download PDF

Info

Publication number
KR102636605B1
KR102636605B1 KR1020207037838A KR20207037838A KR102636605B1 KR 102636605 B1 KR102636605 B1 KR 102636605B1 KR 1020207037838 A KR1020207037838 A KR 1020207037838A KR 20207037838 A KR20207037838 A KR 20207037838A KR 102636605 B1 KR102636605 B1 KR 102636605B1
Authority
KR
South Korea
Prior art keywords
smart device
client device
smart
client
adapter
Prior art date
Application number
KR1020207037838A
Other languages
English (en)
Other versions
KR20210014692A (ko
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
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020247004411A priority Critical patent/KR20240024315A/ko
Publication of KR20210014692A publication Critical patent/KR20210014692A/ko
Application granted granted Critical
Publication of KR102636605B1 publication Critical patent/KR102636605B1/ko

Links

Classifications

    • 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/2807Exchanging configuration information on appliance services in a home automation 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
    • H04L12/282Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y30/00IoT infrastructure
    • G16Y30/10Security thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B17/00Monitoring; Testing
    • H04B17/30Monitoring; Testing of propagation channels
    • H04B17/309Measuring or estimating channel quality parameters
    • H04B17/318Received signal strength
    • 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/2834Switching of information between an external network and a home network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/08Testing, supervising or monitoring using real traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y10/00Economic sectors
    • G16Y10/80Homes; Buildings
    • 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
    • H04L2012/284Home automation networks characterised by the type of medium used
    • H04L2012/2841Wireless

Abstract

다양한 구현은, 어시스턴트 클라이언트 장치에서 로컬로, 대응하는 스마트 장치로 전송 시, 대응하는 스마트 장치에서 또는 대응하는 스마트 장치에 의해 직접 제어되는 대응하는 추가 스마트 장치에서 상태 변경을 수행하기 위해 대응하는 스마트 장치에 의해 직접 해석할 수 있는 구체적인 제어 명령을 생성하는 것과 관련된다. 다양한 구현은 추가적으로 또는 대안적으로 사용자의 계정에 대한 스마트 장치를 발견, 프로비저닝 및/또는 등록할 때 로컬 어시스턴트 클라이언트 장치를 이용하는 것과 관련된다.

Description

어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록
사람은 여기에서 "자동화(된) 어시스턴트"로 지칭되는 대화형 소프트웨어 응용 프로그램을 사용하여 인간 대 컴퓨터 상호 작용에 참여할 수 있다. 예를 들어, 사람(자동화 어시스턴트와 상호 작용할 때 "사용자"라고도 함)은 자동화 어시스턴트가 응답 출력을 생성 및 제공하고, 하나 이상의 스마트 장치를 제어하고 및/또는 하나 이상의 다른 기능을 수행하도록 할 수 있는 입력을 자동화 어시스턴트에게 제공할 수 있다. 사용자에 의해 제공되는 입력은 예를 들어 (예를 들어, 터치 스크린을 통한) 터치 입력, (예를 들어, 카메라를 통해 검출된) 제스처 및/또는 음성 자연어 입력(즉, 마이크로폰(들)을 통해 검출된 발화)일 수 있으며, 이는 일부 경우 텍스트(또는 다른 시맨틱 표현)로 변환된 다음 추가 처리될 수 있다.
대부분의 경우, 자동화 어시스턴트는 어시스턴트 클라이언트 장치에 의해 로컬로 실행되고 사용자가 직접 참여하는 자동화 어시스턴트 클라이언트뿐만 아니라 자동화 어시스턴트 클라이언트가 사용자의 입력에 응답할 수 있도록 보다 강력한 클라우드 리소스를 활용하는 클라우드 기반 상대방(들)을 포함한다. 예를 들어, 자동화 어시스턴트 클라이언트는 클라우드 기반 상대방(들)에게 사용자의 음성 발화(또는 그의 텍스트 변환)의 오디오 녹음 및 선택적으로 사용자의 신원을 나타내는 데이터(예: 자격 증명)를 제공할 수 있다. 클라우드 기반 상대방은 질의에 대한 다양한 처리를 수행하여 결과(들)를 자동화 어시스턴트 클라이언트로 반환할 수 있으며 그러면 해당 출력을 사용자에게 제공할 수 있다.
많은 사용자가 여러 클라이언트 장치를 사용하여 자동화 어시스턴트를 사용할 수 있다. 예를 들어 일부 사용자는 하나 이상의 스마트 폰, 하나 이상의 태블릿 컴퓨터, 하나 이상의 차량 컴퓨팅 시스템, 하나 이상의 웨어러블 컴퓨팅 장치, 하나 이상의 스마트 텔레비전, 하나 이상의 독립형 어시스턴트 중심 대화형 스피커, 하나 이상의 독립형 어시스턴트 중심 다른 클라이언트 장치 중에서 스피커가 있는 대화형 디스플레이와 같은 클라이언트 장치의 조정된 "에코시스템"을 소유 할 수 있다. 사용자는 이러한 클라이언트 장치 중 하나를 사용하여 자동화 어시스턴트와 인간 대 컴퓨터 대화에 참여할 수 있다(자동화 어시스턴트 클라이언트가 설치되어 있다고 가정). 일부 경우에 이러한 클라이언트 장치는 사용자의 기본 거주지, 제2 거주지, 작업장 및/또는 기타 구조(들) 주변에 흩어져 있을 수 있다. 예를 들어, 스마트 폰, 태블릿, 스마트 시계 등과 같은 모바일 클라이언트 장치는 사용자의 사람 및/또는 사용자가 마지막으로 배치한 위치에 있을 수 있다. 기존 데스크톱 컴퓨터, 스마트 TV 및 독립형 어시스턴트 중심 장치와 같은 다른 클라이언트 장치는 더 고정되어 있을 수 있지만 그럼에도 불구하고 사용자의 집이나 직장 내의 다양한 장소(예: 방)에 위치할 수 있다.
사용자(들)(예: 단일 사용자, 가족의 여러 사용자, 동료, 공동 거주자 등)가 자동화 어시스턴트 클라이언트와 연관된 복수의 스마트 장치 중 어느 하나를 제어하기 위한 클라이언트 장치의 조정된 에코시스템 중 어느 하나의 자동화 어시스턴트 클라이언트를 활용할 수 있도록 하는 기술이 존재한다. 예를 들어, 사용자는 클라이언트 장치의 자동화 어시스턴트 클라이언트에게 "거실 조명을 끄십시오"라는 음성 명령을 내어 대응하는 스마트 장치(예: 자동화 어시스턴트 클라이언트에 연결되고 "거실"조명으로 레이블이 지정된 조명)를 끌 수 있다.
클라이언트 장치에서 수신된 사용자 입력에 응답하여 스마트 장치를 제어함에 있어서, 많은 기존 기술은 사용자 입력에 대응하는데이터를 인터넷을 통해 원격 자동화 어시스턴트 서버(들)로 전송한다. 원격 자동화 어시스턴트 서버(들)는, 요청 기반으로 제어될 스마트 장치 결정하기 위해 데이터를 처리하고, 인터넷을 통해 스마트 장치와 관련된 별도의 당사자(예: 스마트 장치 제조업체)의 서버(들)에 요청을 전송한다. 별도의 당사자 서버는 요청을 수신하고, 그런 다음 인터넷을 통해 대응하는 명령(들)을 스마트 장치와 함께 제공되는 허브(예: BLE, Z-Wave, ZigBee 등의 경우)를 통해 스마트 장치로 전송하거나, (예: Wi-Fi 및 허브가 필요 없는 기타 스마트 장치의 경우) IP 연결을 통해 스마트 장치에 직접 전송한다. 그러나 이러한 기술은 높은 대기 시간, 낮은 신뢰성 및/또는 네트워크 리소스의 과도한 소비와 같은 단점을 제공한다. 예를 들어, 높은 대기 시간은 원격 지원 서버(들)에서 별도의 당사자 서버(들)로 요청을 전송한 결과 일 수 있으며, 이는 원격 지원 서버(들) 및 지리적으로 서로 인접하지 않은 별도의 당사자 서버(들)에 의해 종종 악화된다. 또한, 예를 들어 서버 중단, 네트워크 손실 등으로 인해 별도의 당사자 서버가 응답하지 못하기 때문에 안정성이 낮을 수 있다. 또한, 이러한 기술은 계산 및/또는 네트워크 리소스에 부담을 줄 수 있다.
스마트 장치의 제어를 위한 다른 접근법도 결점을 제시할 수 있다. 예를 들어, 일부 기술은 하나 이상의 표준 프로토콜만 사용하는 중앙 허브를 활용할 수 있다. 그러나 이러한 표준 프로토콜은 표준 프로토콜의 지정되지 않은 모서리에서 실패할 수 있으며, 표준 프로토콜을 완전히 준수하지 않는 스마트 장치의 경우 실패할 수 있으며, 표준 프로토콜을 준수하지 않는 스마트 장치의 경우 실패할 수 있으며, 스마트 장치 제조업체에 의한 스마트 장치의 보다 세밀한 제어를 억제할 수 있으며, 이에 따라, 스마트 장치의 차선 성능을 유도할 수 있다. 또한 스마트 장치의 펌웨어 업데이트로 인해 중앙 허브와의 통합이 중단될 수 있다. 더욱이, 중앙 허브의 고장 및/또는 중앙 허브의 배치로 인한 신호 품질이 좋지 않으면 중앙 허브가 다양한 스마트 장치를 로컬로 제어할 수 없게 될 수 있다.
본 명세서에서 설명된 다양한 구현은, 대응하는 스마트 장치로 전송될 때, 해당 스마트 장치에 의해 직접 해석되어 해당 스마트 장치 또는 해당 스마트 장치에 의해 직접 제어되는 대응하는 추가 스마트 장치에서 상태 변경을 수행할 수 있는 특정 제어 명령을, 어시스턴트 클라이언트 장치에서 로컬로 생성하는 것과 관련된다. 이러한 다양한 구현 중 일부에서, 어시스턴트 클라이언트 장치는 복수의 제 3 자(3P) 어댑터 및/또는 제 1 자(1P) 어댑터를 로컬로 저장한다. 여기에 사용된 제 3 자 또는 3P는 참조되는 자동화 어시스턴트를 제어하는 당사자와 구별되는 당사자를 참조한다. 여기에 사용된 제1자 또는 1P는 참조되는 자동화 어시스턴트를 제어하는 당사자를 참조한다.
각 어댑터는 대응하는 당사자에 의해 제공될 수 있으며, 어시스턴트 클라이언트 장치에 의해 실행되면, 당사자의 적어도 하나의 대응하는 스마트 장치에 로컬로 전송될 때, 대응하는 스마트 장치에서 또는 대응하는 스마트 장치에서 직접 제어하는 대응하는 추가 스마트 장치에서 상태 변경을 수행하기 위해 대응하는 스마트 장치에 의해 직접 해석되도록 각각 맞춤화된 구체적인 제어 명령을 생성하기 위해 일반 스마트 장치 제어 명령을 처리할 수 있다(예: 구체적인 제어 명령이 당사자의 허브/브리지로 전송된 다음 구체적인 제어 명령에 따라 하나 이상의 추가 스마트 장치를 제어하는 상황에서). 예를 들어, 3P 어댑터는 3P 제공 JavaScript (또는 기타 해석된 프로그래밍 언어)로 구현될 수 있으며 일반 스마트 장치 제어 명령을 3P의 프로토콜 스위트(protocol suite)를 준수하는 구체적인 제어 명령으로 변환할 수 있다. 여기에 사용된 일반 스마트 장치 제어 명령은 스마트 장치에서 변경될 스마트 장치 및 상태를 전달하는 명령을 참조할 수 있지만, 스마트 장치로 전송되는 경우 상태가 변경되지는 않는다. 일반 스마트 장치 제어 명령은 자동화 어시스턴트의 스키마를 따를 수 있다. 예를 들어 일반 스마트 장치 제어 명령은, 의도를 정의하는 것(예: 켜기/끄기, 어둡게, 증가, 감소), 스마트 장치를 정의하는 것(예: 스마트 장치의 고유 식별자), 스마트 장치에 대한 제 3자를 정의하는 것(예 : 제 3 자의 고유 식별자) 및/또는 의도에 대한 하나 이상의 추가 매개 변수(예 : 어둡게 할 정도, 증가/감소시킬 항목 등)가 포함된 구조화된 명령일 수 있다. 3P 어댑터는 자동화 어시스턴트 클라이언트 내의 컨테이너에서 실행될 수 있고, 설명된 대로 일반 스마트 장치 제어 명령을 처리할 수 있으며, 자동화 어시스턴트의 스키마를 사용하여 자동화 어시스턴트 클라이언트에 이벤트를 추가로 선택적으로 보고할 수 있다(즉, 3P 특정 이벤트 형식에서 자동화 어시스턴트 스키마로 변환).
각각의 어댑터는 어시스턴트 클라이언트 장치에서 이용 가능한 둘 이상의 통신 채널의 적어도 하나의 대응하는 통신 채널에 어시스턴트 클라이언트 장치에서 로컬로 할당될 수 있다. 예를 들어, 제1 3P 어댑터는 사용 가능한 통신 채널의 블루투스 무선 채널에 할당될 수 있으며, 결과적으로 블루투스 무선 채널은 제1 3P 어댑터에 의해 생성된 구체적인 제어 명령을 전송하는데 활용될 수 있다. 또한, 예를 들어 제2 3P 어댑터를 사용 가능한 통신 채널 중 Wi-Fi 무선 채널에 할당할 수 있으며, 결과적으로 Wi-Fi 무선 채널은 제2 3P 어댑터에서 생성된 구체적인 제어 명령을 전송하는데 활용될 수 있다. 또한, 예를 들어 세 번째 3P 어댑터를 사용 가능한 통신 채널 중 저속 무선 개인 영역 네트워크 무선 채널에 할당할 수 있으며, 결과적으로 대응하는 채널은 제2 3P 어댑터에서 생성된 구체적인 제어 명령을 전송하는데 사용될 수 있다. 또 다른 예로서, 네 번째 3P 어댑터는 블루투스 무선 채널과 Wi-Fi 무선 채널 모두에 할당될 수 있으며, 그 결과 구체적인 제어 명령이 채널 중 하나(또는 둘 다)를 통해 전송될 수 있다. 선택적으로, 주어진 3P 스마트 장치(양쪽 채널을 통해 제어 명령을 수신할 수 있음)에 대해 동일한 제어를 수행하기 위해, 동일한 구체적인 제어 명령이 두 채널을 통해 전송될 수 있다. 각 통신 채널은 다른 라디오(또는 다른 라디오 하위 집합)를 사용할 수 있지만, 주어진 라디오는 선택적으로 다수의 이용 가능한 프로토콜 스위트 중 어느 하나를 통해 전송하는데 이용될 수 있다는 점에 유의한다. 예를 들어, Wi-Fi 무선 채널은 TCP를 사용하거나 UDP를 사용하거나 그 변형(예: 애플리케이션 레이어와 같은 TCP 또는 UDP의 하나 이상의 레이어에서 변형)을 사용하여 데이터를 전송하는데 활용될 수 있다.
각 3P 어댑터가 클라이언트 장치의 대응하는 통신 채널에 할당되고, 대응하는 통신 채널이 3P 어댑터에 의해 생성된 구체적인 제어 명령을 전송하는데 사용되는 동안, 3P 어댑터가 대응하는 통신 채널에 직접 액세스하는 것을 선택적으로 방지할 수 있다. 오히려, 대응하는 통신 채널에 대한 액세스는 자동화 어시스턴트 클라이언트에 의해 제어될 수 있으며, 자동화 어시스턴트 클라이언트는 대응하는 통신 채널을 통해 구체적인 제어 명령을 전송하기 전에 구체적인 제어 명령에 대한 하나 이상의 검증을 선택적으로 수행할 수 있다. 예를 들어, 대응하는 통신 채널을 통한 구체적인 제어 명령의 전송은 자동화 어시스턴트 클라이언트에 의한 검증에 따라 달라질 수 있으며, 구체적인 제어 명령은 구체적인 제어 명령이 생성된 대응하는 일반 스마트 장치 제어 명령에서 식별된 스마트 장치(들)에만 지정된다. 이러한 검증은 일반 스마트 장치 제어 명령에 의해 지정되지 않은 스마트 장치의 의도적 또는 비 의도적 제어를 방지할 수 있다. 추가로 또는 대안으로, 이러한 검증은 블루투스 메시 네트워크에 메시지를 넘치게 하여 작동 불가능하게 만드는 것과 같은 다른 유형의 우발적이거나 악의적인 동작을 방지할 수 있다.
각 어댑터는, 일반 스마트 장치 제어 명령을 어댑터에 특정한 대응하는 제어 명령으로 변환하기 위해, 해석된 프로그래밍 언어를 활용할 수 있다. 3P 어댑터에 의해 생성된 구체적인 제어 명령은 3P 어댑터의 프로토콜 스위트를 준수하므로, 각 3P가 표준 프로토콜 스위트, 표준 프로토콜 스위트의 변형 및/또는 고유한 프로토콜 스위트를 활용할 수 있다. 예를 들어, 제1 3P 어댑터는 업계 표준으로 정의된 제1 프로토콜 스위트를 완전히 준수하는 하나 이상의 구체적인 제어 명령을 생성할 수 있다. 제2 3P 어댑터는 제1 프로토콜 스위트에 대한 하나 이상의 변형을 포함하는 하나 이상의 구체적인 제어 명령을 생성할 수 있다. 예를 들어, 프로토콜 스위트의 하나 이상의 레이어는 제2 3P에 의해 조정될 수 있으며, 이에 따라 업계 표준으로 정의된 제1 프로토콜 스위트의 대응하는 레이어(들)를 준수하지 않는다. 세 번째 3P 어댑터는 대응하는 3P에 고유한 하나 이상의 구체적인 제어 명령을 생성할 수 있으며, 업계 표준 프로토콜 스위트를 완전히 준수하지 않는다.
따라서, 여기에 설명된 3P 어댑터는 대응하는 3P에 의해 대응하는 프로토콜 스위트에 맞춰질 수 있다. 이를 통해 표준 프로토콜의 지정되지 않은 코너에 대한 경우, 표준 프로토콜을 완전히 준수하지 못하는 경우 및/또는 표준 프로토콜을 준수하지 않는 경우에도, 어시스턴트 클라이언트 장치가 대응하는 구체적인 제어 명령을 전송할 수 있다. 따라서, 어시스턴트 클라이언트 장치는 더 많은 스마트 장치의 로컬 제어를 지원할 수 있다. 또한, 이를 통해 3P는 대응하는 스마트 장치(들)를 제어할 수 있는 3P 어댑터를 구현할 수 있다. 여기서 제어는 표준 프로토콜만 사용할 수 있는 것보다 더 세밀하다. 이것은 대응하는 스마트 장치의 더 최적의 로컬 제어로 이어질 수 있다. 예를 들어, 이것은 사용 가능한 표준 프로토콜이 대신 사용된 것보다 사용자 요청에 더 잘 부합하는(예: 색상 또는 밝기 측면에서) 스마트 조명에서 출력되는 빛의 렌더링으로 이어질 수 있다. 또한, 3P 어댑터는 주기적으로, 주문형 및/또는 다른 간격으로 업데이트될 수 있으며, 이를 통해, 대응하는 3P가 대응하는 스마트 장치의 펌웨어 업데이트를 준수하는 3P 어댑터를 구현할 수 있으며, 중앙 허브에서 사용하는 펌웨어 업데이트 및 표준 프로토콜이 호환되지 않는 경우 발생할 수 있는 오류를 방지한다. 더 나아가, 다양한 스마트 장치의 로컬 제어는 조정된 에코시스템에서 복수의 어시스턴트 클라이언트 장치 중 하나를 통해 수행될 수 있으며, 따라서 여러 스마트 장치를 제어하기 위해 하나의 중앙 스마트 허브에만 의존할 때 연결 문제, 정전 문제 또는 기타 오류 문제를 완화할 수 있다.
일부 구현에서, 3P 어댑터(들)는 클라이언트 장치에 대해 등록되는 3P(들)의 스마트 장치(들)에 응답하여 원격 서버로부터 어시스턴트 클라이언트 장치로 다운로드된다. 예를 들어, 3P의 스마트 장치(들)는 복수의 어시스턴트 클라이언트 장치 각각과 연관된 사용자 계정에 대해 로컬 및/또는 비 로컬로 등록될 수 있으며, 이에 응답하여 (선택적으로 등록 절차 동안 및 선택적으로 전체 등록 전에) 3P용 3P 어댑터를 대응하는 클라이언트 장치에서 실행하기 위해 대응하는 어시스턴트 클라이언트 장치에서 3P 어댑터의 로컬 스토리지를 위해 대응하는 어시스턴트 클라이언트 장치로 푸시 할 수 있다. 3P 어댑터를 어시스턴트 클라이언트 장치에 로컬로 저장하면 클라이언트 장치에서 3P 어댑터를 빠르게 실행할 수 있다(그리고 여기에 설명된 선점 실행도 가능). 더욱이, 등록되는 대응하는 3P 스마트 장치에 응답하는 3P 어댑터를 다운로드함으로써(예: 선택적으로 등록 절차 동안), 클라이언트 장치는 사용 가능한 3P 어댑터의 하위 집합만 저장할 수 있으며(예: 계정에 등록된 스마트 장치에 대응하는하는 어댑터만), 이에 따라, 등록되지 않은 스마트 장치를 위한 하나 이상의(예를 들어, 임의의) 3P 어댑터를 로컬에 저장하지 않음으로써 어시스턴트 클라이언트 장치에서 사용할 수 있는 종종 제한된 로컬 저장 공간을 절약한다.
또한, 일부 구현에서 3P 어댑터는 사용자 계정과 연관된 복수의 어시스턴트 클라이언트 장치의 서브 세트(예를 들어, 오직 하나에만)에만 다운로드될 수 있다. 이들 구현 중 일부에서, 3P 어댑터는 대응하는 통신 채널에 대해, 대응하는 3P 스마트 장치(들)와 함께 가장 강한 신호 강도(들)를 갖는 어시스턴트 장치(들)로 다운로드된다. 예를 들어, 블루투스 통신 채널에 할당된 특정 3P 어댑터는, 주어진 어시스턴트 클라이언트 장치에서 그리고 주어진 어시스턴트 클라이언트 장치와 3P의 스마트 장치 사이에서, 하나 이상의 기준을 충족하는 블루투스 통신 채널에 대한 신호 강도에 기초하여, 사용자 계정과 연관된 주어진 어시스턴트 클라이언트 장치에서 다운로드될 수 있다. 예를 들어, 하나 이상의 기준은 신호 강도가 임계 값(예를 들어 사용자 계정과 관련된 모든 어시스턴트 클라이언트 장치 중에서 가장 큰 신호 강도)을 충족한다는 것을 포함할 수 있다. 그러한 경우에, 특정 3P 어댑터는 사용자 계정과 연관된 다른 어시스턴트 클라이언트 장치에 다운로드 되지 않고, 주어진 어시스턴트 클라이언트 장치에 선택적으로 다운로드될 수 있다. 이러한 방식 및 기타 방식에서, 사용자 계정과 연관된 서로 다른 어시스턴트 클라이언트 장치는 신호 강도 및/또는 기타 기준에 따라 3P 어댑터의 서로 다른 서브 세트를 다운로드 할 수 있다. 이것은 사용자 계정과 연관된 어시스턴트 클라이언트 장치가, 각각의 어시스턴트 클라이언트 장치에 각각의 3P 어댑터를 저장할 필요없이, 광범위한 3P 어댑터를 집합적으로 지원할 수 있게 한다. 이것은 어시스턴트 클라이언트 장치에서 사용할 수 있는 종종 제한된 로컬 저장 공간을 고려할 때 특히 유용할 수 있다. 예를 들어, 이러한 기술이 없으면 주어진 어시스턴트 클라이언트 장치에 사용자 계정에 필요한 모든 3P 어댑터를 저장하기에 충분한 로컬 스토리지가 없을 수 있다. 그러나 이러한 기술을 활용하면 필요한 3P 어댑터를 사용자 계정과 관련된 여러 어시스턴트 클라이언트 장치의 저장소에 지능적으로 배포할 수 있다. 일부 구현에서, 사용자 계정과 연관된 각각의 어시스턴트 클라이언트 장치(있는 경우) 신호 강도(들)를 나타내는 데이터는, 이들 장치에 의해, 원격 서버 또는 하나 이상의 어시스턴트 클라이언트 장치에 제공될 수 있다. 서버 및/또는 어시스턴트 클라이언트 장치(들)는, 어떤 어시스턴트 클라이언트 장치가 어떤 3P 어댑터를 수신해야 하는지를 결정하는데 있어서, 데이터 및 하나 이상의 기준(예를 들어, 위에서 설명된 기준)을 이용할 수 있다. 그런 다음 대응하는 3P 어댑터를 대응하는 클라이언트 장치로 푸시 하거나 대응하는 클라이언트 장치로 데이터를 전송하여, 대응하는 클라이언트 장치가 대응하는 3P 어댑터를 요청하거나 검색하도록 할 수 있다.
더욱이, 3P 어댑터(들)가 어시스턴트 클라이언트 장치로 다운로드 되는 일부 구현에서, 어시스턴트 클라이언트 장치는 로컬에 저장된 3P 어댑터 중 하나 이상 (예를 들어, 모두)을 선택적으로 선제적으로 실행할 수 있다. 여기에서 사용되는 3P 어댑터를 선제적으로 실행하는 것은, 대응하는 3P의 스마트 장치(들)로 향하고 실행중인 3P 어댑터를 사용하여 처리되는, 생성되는 일반 스마트 장치 제어 명령 이전에 3P 어댑터를 실행하는 것을 참조한다. 어시스턴트 클라이언트 장치에서 3P 어댑터를 선제적으로 실행하는 것은 어시스턴트 클라이언트 장치의 메모리 내 캐시에 3P 어댑터를 적어도 로딩하는 것을 포함할 수 있다. 3P 어댑터를 선제적으로 실행하면 3P 어댑터를 사용하여 구체적인 제어 명령을 생성할 때 (3P 어댑터를 선제적으로 실행하지 않는 것에 비해) 지연을 줄일 수 있으며, 결과적으로 구체적인 제어 명령을 전송하고 대응하는 상태 변경을 수행할 수 있다. 따라서, 스마트 장치에서 상태 변경은 지연을 줄임으로써 영향을 받을 수 있다.
일부 구현에서, 어시스턴트 클라이언트 장치에 로컬로 다운로드된 모든 3P 어댑터는 클라이언트 장치에 의해 선제적으로 실행된다. 일부 다른 구현에서, 이용 가능한 3P 어댑터의 서브 세트 만이 메모리 제약, 프로세서 제약 및/또는 다른 고려 사항의 관점에서 주어진 시간에 선제적으로 실행된다. 이러한 다른 구현 중 일부에서, 주어진 시간에 선제적으로 실행되는 서브 세트는 하나 이상의 동적 기준을 기반으로 할 수 있다. 하나 이상의 동적 기준은 클라이언트 장치에서 특정 3P 어댑터의 대응하는 최근 사용률; 통신 채널에 대한 클라이언트 장치와 특정 3P 어댑터에 대응하는 특정 스마트 장치 사이의 신호 강도; 하루 중 시간; 및/또는 요일을 포함할 수 있다. 예를 들어, 가장 최근에 사용된(즉, 구체적인 제어 명령을 생성하는데 사용된) N개의 3P 어댑터는 주어진 어시스턴트 클라이언트 장치에서 실행될 수 있다. 또한, 예를 들어, 특정 3P 어댑터는, 대응하는 시간 기간 동안 또는 그 근방에서 특정 3P 어댑터의 사용에 대한 하나 이상의 과거 발생을 기반으로, 하나 이상의 임시 기간(들)(예: 하루의 시간(들) 및/또는 한주의 요일(들))동안 주어진 어시스턴트 클라이언트 장치에서 실행될 수 있다. 또 다른 예로서, 주어진 어시스턴트 클라이언트 장치에서 그리고 어시스턴트 클라이언트 장치와 3P의 스마트 장치(들) 사이에서, 블루투스 통신 채널에 할당된 특정 3P 어댑터는 블루투스 통신 채널에 대한 신호 강도를 기반으로 주어진 어시스턴트 클라이언트 장치에서 선제적으로 실행되어 임계 값(예 : 고정 임계 값 또는 다른 어시스턴트 클라이언트 장치(들)에 관련된 임계 값)을 충족 할 수 있다. 본 명세서의 이전 및/또는 다른 설명으로부터, 주어진 시간에 에코시스템의 서로 다른 어시스턴트 클라이언트 장치는, 예를 들어 대응하는 장치에 특화된 하나 이상의 기준에 기반하여 하나 이상의 서로 다른 선점 실행 어댑터를 가질 수 있다는 것이 이해될 것이다. 예를 들어, 주어진 시간에 제 1 어시스턴트 클라이언트 장치는 어댑터 A, B, C 및 D를 선제적으로 실행할 수 있고, 제 2 어시스턴트 클라이언트 장치는 어댑터 C, D, E 및 F를 선제적으로 실행할 수 있다.
일부 구현에서, 일반 스마트 장치 제어 명령은 음성 입력, 터치 입력, 자동화 어시스턴트 루틴의 트리거링, 다른 비 어시스턴트 장치로부터의 신호 및/또는 다른 신호(들)에 응답하여 생성된다. 예를 들어, 주어진 어시스턴트 클라이언트 장치에서 식별된 일반 스마트 장치 제어 명령은, 주어진 어시스턴트 클라이언트 장치에서 수신된 음성 입력에 응답하여 생성될 수 있다. 예를 들어, 주어진 어시스턴트 클라이언트 장치는 음성 입력에 대응하는하는 오디오 데이터를 원격 어시스턴트 서버로 전송하고, 이에 응답하여 일반 스마트 장치 제어 명령을 수신할 수 있다(예를 들어, 원격 지원 서버는 음성 입력을 처리하여 일반 스마트 장치 제어 명령에 대응하는하는지 검증할 수 있다). 또한, 예를 들어, 주어진 어시스턴트 클라이언트 장치는, 일반 스마트 장치 제어 명령을 로컬로 생성하기 위해, (예를 들어, 로컬 음성-텍스트 변환 프로세서 및/또는 자연어 이해 엔진을 사용하여) 자체적으로 음성 입력을 처리할 수 있다. 다른 예로서, 주어진 어시스턴트 클라이언트 장치에서 식별된 일반 스마트 장치 제어 명령은 주어진 어시스턴트 클라이언트 장치에서 수신된 터치 입력에 응답하여 생성될 수 있다. 예를 들어, 주어진 어시스턴트 클라이언트 장치는 그 터치 감지 스크린상에서 스마트 장치(들)의 제어를 위한 상호작용하는 그래픽 인터페이스 요소를 렌더링할 수 있으며(예: 켜기/끄기 요소, 스마트 조명용 조광기 요소, 스마트 온도 조절기용 온도 조절 요소 등), 상호작용하는 그래픽 인터페이스 요소와의 상호 작용을 대응하는 일반 스마트 장치 제어 명령으로 직접 해석할 수 있다. 또 다른 예로서, 일반 스마트 장치 제어 명령은, 일반 스마트 장치 제어 명령을 포함하는 자동화 어시스턴트 루틴의 트리거링에 응답하여 (로컬 또는 원격으로) 생성될 수 있다. 자동화 어시스턴트 루틴은, 루틴(예: 스마트 장치 제어 동작(들)을 포함하여 복수의 개별 동작을 트리거하는 "좋은 아침"과 같은 단축 문구), 루틴을 위한 가상 또는 물리적 버튼과의 상호 작용, 특정 시간적 조건(들)의 발생 및/또는 다른 트리거링 조건(들)의 발생에 할당된 음성 입력 감지에 응답하여, 트리거될 수 있다.
일부 구현에서, 구체적인 제어 명령을 생성하고/하거나 구체적인 제어 명령을 대응하는 스마트 장치(들)로 전송하기 위해, 이용 가능한 클라이언트 장치의 에코시스템으로부터, 특정 어시스턴트 클라이언트 장치를 선택하기 위해 하나 이상의 기준이 이용된다. 이들 구현 중 일부에서, 특정 어시스턴트 클라이언트 장치는 특정 어시스턴트 클라이언트 장치와 대응하는 스마트 장치(들) 사이에 설정되는 신뢰성있는 통신 채널에 기초하여 선택된다. 이러한 구현의 일부 버전에서, 특정 어시스턴트 클라이언트 장치는 대응하는 스마트 장치(들)와 적어도 임계 신호 강도를 갖는 특정 어시스턴트 클라이언트 장치의 통신 채널에 기초하여 선택될 수 있다. 예를 들어, 임계 신호 강도는 고정된 신호 강도이거나, 에코시스템의 다른 어시스턴트 클라이언트 장치의 신호 강도와 관련된 신호 강도일 수 있다. 예를 들어, 특정 클라이언트 장치는, 특정 클라이언트 장치와 스마트 장치를 제어하기 위한 통신 채널을 통해 스마트 장치 사이에서, 에코시스템의 모든 장치 중에서 가장 큰 신호 강도를 기반으로 스마트 장치를 제어하도록 선택할 수 있다.
일례로서, 제 1 어시스턴트 클라이언트 장치에서 일반 스마트 장치 제어 명령이 초기에 식별될 수 있고, 일반 스마트 장치 제어 명령은 제어될 특정 스마트 장치를 지정할 수 있다. 제 1 어시스턴트 클라이언트 장치는 자신과 특정 스마트 장치 사이에 신뢰성있는 통신 채널이 설정되지 않았음을 결정할 수 있다. 예를 들어, 특정 스마트 장치는 블루투스 통신 채널을 통해 제어할 수 있으며, 제1 어시스턴트 클라이언트 장치는, 특정 스마트 장치가 블루투스 라디오를 통해 감지되지 않는 경우 또는 블루투스 라디오를 통해 제 1 어시스턴트 클라이언트 장치와 특정 스마트 장치 사이의 신호 강도가 임계 값을 충족하지 못하는 경우를 결정할 수 있다. 이에 응답하여, 제 1 어시스턴트 클라이언트 장치는 로컬 네트워크(예: Wi-Fi 또는 어시스턴트 클라이언트 장치들 간에 설정된 메시 네트워크)를 통해, 일반 스마트 장치 제어 명령을 스마트 장치에 대한 신뢰성있는 통신 채널이 설정된 제 2 어시스턴트 클라이언트 장치에 전송할 수 있다. 제 2 어시스턴트 클라이언트 장치는 대응하는 로컬 어댑터를 사용하여 일반 스마트 장치 제어 명령을 대응하는 특정 명령으로 변환하고, 대응하는 특정 명령을 특정 스마트 장치로 전송할 수 있다. 대안으로, 제 1 어시스턴트 클라이언트 장치는 대응하는 로컬 어댑터를 이용하여 대응하는 특정 명령을 생성할 수 있으며, 일반 스마트 장치 제어 명령을 전송하는 대신 대응하는 특정 명령을 제 2 어시스턴트 클라이언트 장치로 전송할 수 있다.
계속해서 예를 들면, 제 1 어시스턴트 클라이언트 장치는, 제 2 어시스턴트 클라이언트 디바이스를 스마트 장치에 대한 설정된 신뢰성있는 통신 채널을 갖는 장치로 해석하기 위해, 어시스턴트 클라이언트 장치에 로컬로 저장된 클라이언트 장치 대 스마트 장치 매핑에 선택적으로 의존할 수 있다. 클라이언트 장치 대 스마트 장치 매핑은 에코시스템의 클라이언트 장치를 정의할 수 있으며, 어시스턴트 클라이언트 장치 각각에 대해, 어시스턴트 클라이언트 장치가 대응하는하는 신뢰성있는 통신 채널을 갖는 대응하는 스마트 장치(들)를 정의할 수 있으며, 선택적으로 어시스턴트 클라이언트 장치와 스마트 장치(들) 사이의 신호 강도(들)를 정의할 수 있다. 매핑은 어시스턴트 클라이언트 장치에 의해 보고된 대응하는데이터 (예: 감지된 장치(들), 신호 강도(들))를 기반으로 생성될 수 있으며, 주기적 및/또는 비 주기적 간격으로 업데이트될 수 있다. 원격 자동화 어시스턴트 구성 요소(들)는 에코시스템의 어시스턴트 클라이언트 장치로부터 대응하는데이터를 선택적으로 수신하고, 매핑을 업데이트하고, 업데이트된 매핑을 로컬에 저장하고 매핑을 로컬에 사용하는 에코시스템의 어시스턴트 클라이언트 장치로 전송한다. 제 1 어시스턴트 클라이언트 장치는, 예를 들어 제 1 어시스턴트 클라이언트 장치에서 수신되는 대응하는 사용자 입력 및/또는 제 1 어시스턴트 클라이언트 장치에서 로컬로 생성되는 일반 스마트 장치 제어 명령에 기초하여, 일반 스마트 장치 제어 명령을 초기에 식별할 수 있다. 일반 스마트 장치 제어 명령이 원격 자동화 어시스턴트 구성 요소(들)에 의해 생성되는 일부 구현에서, 이러한 구성 요소는 클라이언트 장치 대 스마트 장치 매핑에 액세스 할 수 있고, 초기에 일반 스마트 장치 제어 명령을 제 2 어시스턴트 클라이언트 장치에 어드레싱하며, 이에 의해 제 1 어시스턴트 클라이언트 장치를 통해 라우팅되지 않고, 제 2 어시스턴트 클라이언트 장치에 직접 제공되도록 한다.
여기에 추가로 또는 대안적으로 설명된 다양한 구현은 사용자 계정에 대한 스마트 장치를 발견, 프로비저닝 및/또는 등록하는데 로컬 어시스턴트 클라이언트 장치를 이용하는 것과 관련된다. 일부 구현에서, 아직 등록되지 않은 스마트 장치는, 등록되지 않은 스마트 장치에 대해 하나 이상의 통신 채널(예: Wi-Fi, 블루투스 및/또는 기타)을 검색하기 위해, 어시스턴트 클라이언트 장치의, 에코시스템의 각 어시스턴트 클라이언트 장치를 유발함으로써 발견될 수 있다. 예를 들어, Wi-Fi의 경우, 각 어시스턴트 클라이언트 장치는, 대응하는 어댑터를 사용할 수 있는 특정 스마트 장치를 필터링하기 위해, 선택적으로 서비스 세트 식별자(SSID) 및/또는 기본 서비스 세트 식별자(BSSID)를 사용하여, 각각의 Wi-Fi 라디오를 스캔하여 등록되지 않은 장치(들)를 식별할 수 있다. 또 다른 예로서, 블루투스의 경우, 각 어시스턴트 클라이언트 장치는, 대응하는 어댑터를 사용할 수 있는 특정 스마트 장치를 필터링하기 위해 선택적으로 식별자를 활용하여, 페어링되지 않은 스마트 장치(들)를 식별하기 위해, 각각의 블루투스 라디오를 스캔 할 수 있다. 발견은 주기적 또는 비 주기적 간격으로 또는 사용자 요청(예: 음성 요청, 어시스턴트 용 스마트 폰 앱을 통해 시작된 요청 등)에 응답하여 발생할 수 있다.
일단 발견되면, 스마트 장치는 적어도 하나의 어시스턴트 클라이언트 장치(예: 블루투스의 경우)와 페어링 및/또는 어시스턴트 클라이언트 장치가 이미 연결된 보안 Wi-Fi 네트워크에 연결하기 위해 스마트 장치를 야기하여 프로비저닝할 수 있다. 프로비저닝 후, 스마트 장치가 전송한 데이터는, 자동화 어시스턴트의 스키마에 등록 데이터를 생성하기 위해, 어시스턴트 클라이언트 장치에서 수신되고, 어시스턴트 클라이언트 장치의 로컬 어댑터를 사용하여 처리된다. 예를 들어 스마트 장치에서 전송 한 데이터는 대응하는 3P의 프로토콜 스위트에 있을 수 있으며, 자동화 어시스턴트 등록을 위한 스키마로 3P 어댑터에 의해 해석될 수 있다. 등록 데이터는, 홈 그래프 또는 스마트 장치, 어시스턴트 클라이언트 장치, 그리고 스마트 장치 및 어시스턴트 클라이언트 장치의 다양한 속성(예: 이름(들), 위치(들) 등)을 정의하는 기타 구조에 스마트 장치를 추가하기 위해, 자동화 어시스턴트에 의해 활용될 수 있다. 선택적으로, 사용자 입력은 어시스턴트 클라이언트 장치 및/또는 다른 클라이언트 장치를 통해 수신될 수 있으며, 등록 데이터를 보완하는데 사용될 수 있다. 예를 들어, 사용자 입력은, 홈 그래프의 스마트 장치와 관련하여 이러한 별칭을 저장하기 위해, 스마트 장치에 대해 하나 이상의 사용자 제공 별칭을 포함할 수 있다.
일부 구현에서, 등록 데이터를 생성하는데 사용되는 로컬 어댑터는 스마트 장치의 당사자에 따라 다르며, 스마트 장치의 발견 및/또는 프로비저닝에 응답하여 어시스턴트 장치에서 선택적으로 다운로드된다. 일부 구현에서, 스마트 장치는 홈 그래프와 연관된 계정에 대응하는 에코시스템의 하나 이상의 어시스턴트 장치를 통해 검출된 생체 데이터에 기초하여 홈 그래프(또는 다른 구조)에 할당된다. 예를 들어, 스마트 장치는, 검색, 프로비저닝 및/또는 등록 중에 수신되며, 계정과 관련하여 저장된 음성 인증 데이터와 일치하는 음성 데이터를 기반으로, 홈 그래프(예: 하나 이상의 어시스턴트 클라이언트 장치의 다른 계정과 관련된 다른 홈 그래프 대신)에 할당될 수 있다. 예를 들어, 음성 데이터는 스캔 요청 및/또는 발견된 장치에 대한 별칭(들)을 제공할 때 사용자가 제공한 음성 입력에 기반할 수 있다. 얼굴, 지문 등과 같은 다른 생체 인식이 추가로 또는 대안으로 사용될 수 있다. 일부 구현에서, 등록된 스마트 장치는 명령을 로컬로 스마트 장치에 전송할 수 있는 어시스턴트 클라이언트 장치(들)와 연관될 수 있다(예를 들어, 홈 그래프에서). 예를 들어, 단거리 라디오(예: 블루투스 라디오)를 통해 스마트 장치와 통신하는 경우, (단거리 라디오를 통해 스마트 장치에 대응하는하는 연결을 위해) 적어도 대응하는 신호 강도를 갖는 어시스턴트 클라이언트 장치는, 선택적으로 대응하는 신호 강도의 지정과 함께 홈 그래프에서 지정할 수 있다. 이러한 지정은 구체적인 제어 명령을 생성 및/또는 스마트 장치로 전송하는데 이용되어야 하는 어시스턴트 클라이언트 장치(들)를 결정하는데 사용될 수 있다.
일부 구현에서, 등록된 스마트 장치는, 어시스턴트 클라이언트 장치(들)의 위치(들) 및 이러한 어시스턴트 클라이언트 장치(들)와 등록된 스마트 장치 사이의 신호 강도(들)를 기반으로 하는 위치와 자동으로(예를 들어, 사용자 입력없이 또는 검증적인 사용자 입력만으로) 연관될 수 있다(예: 홈 그래프에서). 예를 들어, 홈 그래프에서 "사무실"의 위치를 갖는 등록된 스마트 장치와 주어진 어시스턴트 클라이언트 장치 간의 신호 강도가 임계 값을 충족하거나 "가장 강한" 신호 강도인 경우 (모든 어시스턴트 클라이언트 중에서), 등록된 스마트 장치는 홈 그래프에서 "사무실"의 위치를 자동으로 할당 받을 수 있다. 또 다른 예로서, 등록된 스마트 장치가 어시스턴트 클라이언트 장치(들) 사이에서 홈 그래프에 "세탁실" 위치가 있는 다른 스마트 장치의 신호 강도와 일치하는 (예를 들어 임계 백분율 내에 있는)신호 강도를 갖는 경우, 등록된 스마트 장치는 홈 그래프에서 "세탁실"의 위치를 자동으로 할당 받을 수 있다. 예를 들어, 홈 그래프에 있는 기존 스마트 장치가 "세탁실"이라는 수동 라벨 위치, 장치와 제 1 어시스턴트 클라이언트 장치 사이의 제1 신호 강도, 그리고 제2 어시스턴트 클라이언트 장치 사이의 제2 신호 강도를 가지고 있다고 가정한다. 이러한 경우, 제1 신호 강도와 일치하는 (예: 5 %, 10 %, 15 % 또는 기타 임계 값 이내) 제1 어시스턴트 클라이언트 장치와 새로 등록된 스마트 장치 사이에 세 번째 신호 강도와, 제2 신호 강도와 일치하는 (예: 5 %의 10 %, 15 % 또는 기타 임계 값 내) 네 번째 신호 강도를 갖는 새로 등록된 스마트 장치는, 기존 스마트 장치와 동일한 '세탁실'위치가 있고 새로 등록된 스마트 장치에 홈 그래프에서 '세탁실'위치가 자동으로 할당된다고 가정할 수 있다. 추가적으로 또는 대안 적으로, 다양한 구현(들)에서 스마트 장치에 대한 신호 강도(들)는, 홈 그래프 (또는 다른 토폴로지 표현)에서 스마트 장치의 위치를 업데이트해야 하는지 여부를 결정하기 위해, 주기적으로(또는 다른 규칙적 또는 비정규 적 간격(들)으로) 분석될 수 있다. 예를 들어, 스마트 플러그를 "사무실"에서 "거실"로 이동하면 이러한 변경 사항을 자동으로 감지하고 업데이트 할 수 있다. 또한, 예를 들어, 배터리 전원을 사용하는 스마트 장치 또는 수동형 스마트 장치가 환경에서 쉽게 이동할 수 있는 경우, 위치 변경은 자동으로 감지되고 업데이트될 수 있다. 이러한 방식과 다른 방식으로, 스마트 장치의 위치는 자동으로 결정되고, 홈 그래프에 할당될 수 있다. 이를 통해 위치 별 음성 발화(예: "사무실에 있는 모든 장치 끄기")에 따라 스마트 장치를 제어할 수 있거나, 제어를 위해(예: "사무실" 부제목 또는 제어 그룹에 스마트 장치에 대한 제어 배치) 시각적 인터페이스의 적절한 위치에서 제어(들)를 렌더링할 수 있거나, 및/또는 특정 음성 발화(예: "배터리로 구동되는 스마트 장치 A가 어디에 있습니까")에 응답하여 스마트 장치의 위치가 포함되도록 할 수 있다.
일부 구현에서, 액세스 포인트를 브로드 캐스팅하고, 어시스턴트 클라이언트 장치에서 사용하는 보안 Wi-Fi 네트워크에 연결되지 않았기 때문에 스마트 장치가 아직 프로비저닝되지 않았으며, 보안 Wi-Fi 네트워크에 연결하기 위한 자격 증명이 없는 스마트 장치가 발견된다. 이러한 구현 중 일부에서, 클라이언트 장치의 에코시스템의 복수의 어시스턴트 클라이언트 장치 각각은, 각각의 Wi-Fi 라디오의 스캐닝을 통해 액세스 포인트의 가용성을 검출했다. 이러한 구현의 일부 버전에서, 스마트 장치의 액세스 포인트를 통해 스마트 장치에 연결하고, 보안 Wi-Fi 네트워크에 연결하기 위한 자격 증명을 연결을 통해 스마트 장치와 안전하게 공유하기 위해 단일 어시스턴트 클라이언트 장치가 선택된다. 자격 증명이 공유되면 스마트 장치가 보안 Wi-Fi 네트워크에 연결되고 Wi-Fi 네트워크를 통한 통신을 통해 등록할 수 있다. 단일 어시스턴트 클라이언트 장치가 선택되는 다양한 버전에서, 단일 어시스턴트 클라이언트 장치에 대한 인간 상호 작용 데이터에 적어도 부분적으로 기반하여 단일 어시스턴트 클라이언트 장치가 선택된다. 예를 들어 단일 어시스턴트 클라이언트 장치는, 사용자 인터페이스 입력이 임계 시간 내에 단일 어시스턴트 클라이언트 장치에서 수신되지 않았 음을 나타내는 인간 상호 작용 데이터에 기초하여 및/또는 단일 어시스턴트 클라이언트 장치가 액세스 포인트를 검출한 복수의 어시스턴트 클라이언트 장치 중 어느 다른 장치보다 덜 자주 사용된다는 것을 나타내는 인간 상호 작용 데이터에 기초하여, 선택될 수 있다. 이러한 방식과 다른 방식으로 단일 클라이언트 장치는, 단일 클라이언트 장치가 로컬 액세스 포인트에 연결할 때 보안 Wi-Fi 네트워크와의 연결을 끊기 때문에, 진행중인 및/또는 향후 어시스턴트 상호 작용에 대한 중단을 방지하기 위해 선택될 수 있으며, 단일 클라이언트 장치는 사용되지 않거나 (에코시스템의 다른 장치보다) 사용 가능성이 적다는 기준에 따라 선택된다.
상기 설명은 본 개시의 일부 구현의 개요로서 제공된다. 이러한 구현 및 다른 구현에 대한 추가 설명이 여기에서 더 자세히 설명된다.
또한, 일부 구현은 하나 이상의 컴퓨팅 장치의 하나 이상의 프로세서를 포함하며, 여기서 하나 이상의 프로세서는 관련 메모리에 저장된 명령을 실행하도록 작동 가능하며, 여기서 지시 사항은 여기에 설명된 방법의 성능을 유발하도록 구성된다. 일부 구현은 여기에 설명된 방법 중 하나 이상을 수행하기 위해 로컬로 저장된 명령을 실행하고 로컬로 저장된 데이터와 인터페이스하는 하나 이상의 프로세서를 가진 클라이언트 장치를 포함한다. 일부 구현은 또한 여기에 설명된 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령을 저장하는 하나 이상의 비 일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
전술 한 개념 및 본 명세서에서보다 상세히 설명된 추가 개념의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다는 것을 이해해야 한다. 예를 들어, 본 개시의 끝에 나타나는 청구된 주제의 모든 조합은 여기에 개시된 주제의 일부인 것으로 고려된다.
도 1은 본 명세서에 개시된 구현이 구현될 수 있는 예시적인 환경의 블록도이다.
도 2는 복수의 이질적인 당사자로부터의 복수의 스마트 장치를 포함하고 복수의 어시스턴트 장치를 포함하는 예시적인 환경을 도시하며, 이들 각각은 여기에 개시된 구현에 따라 하나 이상의 스마트 장치를 로컬로 제어할 수 있다.
도 3은 도 2의 클라이언트 장치 중 하나를 사용하여 2 개의 스마트 조명을 제어하는 예의 상태도를 도시한다.
도 4는 도 2의 제 1 클라이언트 장치로부터 도 2의 대체 클라이언트 장치로, 도 2의 다른 전구를 제어하기 위한 일반 스마트 장치 제어 명령을 라우팅하는 예의 상태도를 도시한다.
도 5는 본 명세서에 개시된 다양한 구현들에 따른, 로컬 어시스턴트 클라이언트 장치를 사용하여 스마트 장치를 제어하는 예시적인 방법을 예시하는 흐름도이다.
도 6은 본 명세서에 개시된 다양한 구현들에 따른, 로컬 어시스턴트 클라이언트 장치를 사용하여 스마트 장치를 제어하는 다른 예시적인 방법을 예시하는 흐름도이다.
도 7은 본 명세서에 개시된 다양한 구현에 따른, 로컬 어시스턴트 클라이언트 장치를 사용하여 스마트 장치를 등록하는 예시적인 방법을 예시하는 흐름도이다.
도 8은 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
스마트 홈 알람, 스마트 도어록, 스마트 카메라, 스마트 조명, 스마트 온도 조절기, 스마트 체중계, 스마트 침대, 스마트 관개 시스템, 스마트 차고 도어 오프너, 스마트 플러그, 스마트 장치, 스마트 베이비 모니터, 스마트 화재 경보기, 스마트 수분 감지기 등 스마트 네트워크 연결 장치(여기서는 스마트 장치 또는 사물 인터넷(IoT) 장치라고도 함)가 확산되고 있다. 종종, 다수의 스마트 장치가 집과 같은 구조의 경계 내에 위치하거나 사용자의 주 거주지 및 사용자의 어시스턴트 거주지 및/또는 직장 위치와 같은 여러 관련 구조 내에 위치한다.
또한, 자동화 어시스턴트의 논리적 인스턴스를 형성하기 위해 하나 이상의 원격 자동화 어시스턴트 구성 요소와 선택적으로 상호 작용할 수 있는 어시스턴트 클라이언트를 각각 포함하는 어시스턴트 클라이언트 장치의 확산이 있다. 어시스턴트 클라이언트 장치는 어시스턴트 기능에만 전념(예: 어시스턴트 클라이언트 및 관련 인터페이스만 포함하는 독립형 스피커 및/또는 독립형 오디오/비주얼 장치, 어시스턴트 기능에만 전념)할 수 있거나, 다른 기능(예: 어시스턴트 클라이언트를 여러 애플리케이션 중 하나로 포함하는 휴대폰 또는 태블릿)에 추가하여 어시스턴트 기능을 수행할 수 있다. 또한 일부 스마트 장치는 어시스턴트 클라이언트 장치가될 수도 있다. 예를 들어 일부 스마트 장치에는 어시스턴트 클라이언트, 어시스턴트 클라이언트의 어시스턴트 인터페이스를 위한 사용자 인터페이스 출력 및/또는 입력 장치로서 (적어도 부분적으로) 기능하는 적어도 스피커(들) 및/또는 마이크(들)가 포함될 수 있다.
스마트 장치를 자동화 어시스턴트의 대응하는 논리적 인스턴스(및 선택적으로 개별 어시스턴트 클라이언트 장치)와 연관시키기 위한 다양한 기술이 제안되었다. 예를 들어, 사용자, 사용자 그룹, 어시스턴트 클라이언트 장치 및/또는 어시스턴트 클라이언트 장치 그룹(예: 구조 내 모두)은, 자동화 어시스턴트를 통해 스마트 장치와의 상호 작용(예: 제어)을 가능하게 하기 위해, (예를 들어, 하나 이상의 데이터베이스에서) 복수의 서로 다른 스마트 장치와 연결될 수 있다. 예를 들어, 한 가정의 여러 어시스턴트 클라이언트 장치 각각은, 임의의 사용자(또는 제한된 사용자 그룹)가 어시스턴트 클라이언트 장치 중 하나와 인터페이스하여 여러 이질적인 스마트 장치 중 하나와 상호 작용할 수 있도록 하기 위해, 가정의 여러 이기종 스마트 장치 각각에 연결할 수 있다.
이러한 연결의 한 예는 사용자가 생성 및/또는 자동으로 생성될 수 있는 장치 토폴로지 표현(여기서는 "홈 그래프"라고도 함)일 수 있으며, 다양한 어시스턴트 클라이언트 장치, 다양한 스마트 장치, 각각에 대한 식별자(들) 및/또는 각각에 대한 속성(들)을 정의할 수 있다. 예를 들어, 장치의 식별자는, 장치가 있는 구조(예: 거실, 주방)의 방(및/또는 기타 영역)을 지정하거나, 및/또는 장치의 닉네임 및/또는 별칭(예: 소파 램프, 현관 문 잠금 장치, 침실 스피커, 주방 어시스턴트 등)을 지정할 수 있다. 이러한 방식으로, 장치의 식별자는 사용자가 각 장치와 연관시킬 가능성이 있는 각 장치의 이름, 별칭 및/또는 위치일 수 있다.
장치 토폴로지 표현은 각각의 장치와 연관된 하나 이상의 장치 속성을 추가로 지정할 수 있다. 어시스턴트 클라이언트 장치에 대한 장치 속성은 예를 들어 어시스턴트 클라이언트 장치에 의해 지원되는 하나 이상의 입력 및/또는 출력 양식과 연관될 수 있다. 예를 들어, 독립형 스피커 전용 어시스턴트 클라이언트 장치의 장치 속성은 가청 출력을 제공 할 수 있지만 시각적 출력을 제공 할 수 없음을 나타낼 수 있다. 예를 들어, 스마트 장치의 장치 속성은 제어될 수 있는 스마트 장치의 하나 이상의 상태를 식별 할 수 있고, 스마트 장치 용 펌웨어를 제조, 배포 및/또는 생성하는 당사자(예: 3P)를 식별할 수 있으며, 및/또는 1P 또는 3P 제공 고정 식별자와 같은 스마트 장치에 대한 고유 식별자를 식별할 수 있다. 본 명세서에 개시된 다양한 구현에 따르면, 장치 토폴로지 표현은 선택적으로 어떤 스마트 장치가 어떤 어시스턴트 클라이언트 장치에 의해 로컬로 제어될 수 있는지; 로컬로 제어 가능한 스마트 장치의 로컬 주소(또는 대응하는 스마트 장치를 직접 로컬로 제어 할 수 있는 허브의 로컬 주소); 어시스턴트 클라이언트 장치와 스마트 장치 간의 로컬 신호 강도 및/또는 기타 선호도 표시기를 추가로 지정할 수 있다. 또한, 본 명세서에 개시된 다양한 구현에 따르면, 장치 토폴로지 표현(또는 그 변형)은 로컬 제어 및/또는 로컬 등록 스마트 장치에서 활용하기 위해 복수의 어시스턴트 클라이언트 장치 각각에 로컬로 저장될 수 있다.
이제 도 1을 참조하면, 본 명세서에 개시된 기술이 구현될 수 있는 예시적인 환경이 예시된다. 예시적인 환경은 복수의 클라이언트 컴퓨팅 장치(1101-N)(본 명세서에서 간단히 "클라이언트 장치"라고도 함), 클라우드 기반 자동화 지원 구성 요소(120), 스마트 장치 시스템(140A-N), 스마트 장치(145A-N), 3P 어댑터 데이터베이스(150) 및 클라이언트 장치(1101-N)의 사용자에 대한 홈 그래프(152)를 포함한다. 클라이언트 장치(1101-N) 및 도 1의 스마트 장치(1451-N)는 (예를 들어, 홈 그래프(152) 및/또는 다른 장치 토폴로지를 통해) 적어도 선택적으로 서로 연관된 클라이언트 장치 및 스마트 장치를 나타낸다. 예를 들어, 스마트 장치(1451-N)는 모두 집(예를 들어, 집의 내부 및/또는 외부)에 있을 수 있고, 클라이언트 장치(1101-N)는 적어도 때때로 동일한 집에 있을 수 있으며, 스마트 장치는(1451-N) 및 클라이언트 장치(1101-N)는 여기에 설명된 것과 같은 하나 이상의 기술을 이용하여 서로 연결될 수 있다. 이러한 링크를 통해, 클라이언트 장치(1101-N)는 본 명세서에 설명된 구현에 따라 스마트 장치(1451-N)를 로컬로 제어하기 위해 이용될 수 있다.
클라이언트 장치(1101-N) 중 하나 이상(예를 들어, 모두)은 자동화 어시스턴트 클라이언트(1171-N)의 각각의 인스턴스를 실행할 수 있다. 그러나, 일부 구현에서 클라이언트 장치(1101-N) 중 하나 이상은 선택적으로 자동화 어시스턴트 클라이언트(1171-N)의 인스턴스가 결여될 수 있으며, 여전히 하나 이상의 스마트 장치(예를 들어, 어댑터 상호 작용 엔진, 어댑터(들), 라디오(들), 라우팅 엔진 및/또는 등록 엔진)를 로컬로 제어 및/또는 등록하기 위한 엔진(들) 및 하드웨어 구성 요소를 포함한다. 자동화 어시스턴트 클라이언트(1171-N)의 인스턴스는, 대응하는 클라이언트 장치(1101-N)의 운영 체제와 분리된 애플리케이션(예: 운영 체제의 "위에" 설치됨)이 되거나 또는 대안적으로 대응하는 클라이언트 장치(1101-N)의 운영 체제에 의해 직접 구현된 애플리케이션이될 수 있다. 아래에서 추가로 설명하는 바와 같이, 자동화 어시스턴트 클라이언트(1171-N)의 각 인스턴스는, 클라이언트 장치(1101-N) 중 어느 하나의 I/O 구성 요소(111)를 통해 사용자에 의해 제공되는 다양한 요청에 응답할 때, 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)와 선택적으로 상호 작용할 수 있다. 또한, 아래에서 설명되는 바와 같이, 클라이언트 장치(1101-N)의 다른 엔진(들)은 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)와 선택적으로 상호 작용할 수 있다.
하나 이상의 클라우드 기반 자동화 어시스턴트 구성 요소(120)는, 일반적으로 도 1의 1051로 표시된 하나 이상의 광역 네트워크(예를 들어, 인터넷)를 통해 클라이언트 장치(1101-N)에 통신적으로 결합되는 하나 이상의 컴퓨팅 시스템(총칭하여 "클라우드" 또는 "원격" 컴퓨팅 시스템이라고 함)에서 구현될 수 있다. 예를 들어, 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)는 고성능 서버의 하나 이상의 클러스터에 의해 구현될 수 있다. 클라이언트 장치(1101-N)는 광역 네트워크(1051)에 액세스하고/하거나 서로 로컬로 통신할 때 하나 이상의 근거리 통신망을 이용할 수 있다는 점에 유의한다. 이러한 근거리 통신망은 클라이언트 장치(1101-N) 사이의 Wi-Fi 네트워크 및/또는 메시 네트워크를 포함할 수 있다.
클라우드 기반 자동화 어시스턴트 구성 요소(120)는 또한 하나 이상의 광역 네트워크를 통해 스마트 장치 시스템(140A-N)과 통신 가능하게 결합될 수 있다. 클라우드 기반 자동화 어시스턴트 구성 요소(120)와 스마트 장치 시스템(140)의 통신 결합은 일반적으로 도 1의 1102로 표시된다. 또한, 스마트 장치 시스템(140)은 일반적으로 도 1의 1104에 의해 일반적으로 표시된 하나 이상의 광역 네트워크를 통해 하나 이상의 스마트 장치(145A-N)의 대응하는 그룹에 각각 통신 가능하게 결합될 수 있다. 스마트 장치(145A-N)는 광역 네트워크(1053)에 액세스 할 때 하나 이상의 근거리 통신망을 이용할 수 있다는 점에 유의한다.
각각의 스마트 장치 시스템(140A-N)은 1P 또는 3P 시스템일 수 있고, 각각은 하나 이상의 대응하는 스마트 장치(145A-N)와 통신적으로 결합될 수 있다. 예를 들어, 제 1 스마트 장치 시스템(140A-N)은 제 1 3P에 의해 제어될 수 있고, 제 1 스마트 장치(145A1)와 통신적으로 결합될 수 있고, 제 2 스마트 장치 시스템(140)은 제 2 3P에 의해 제어될 수 있고, 제 2 스마트 장치(145B1) 및 제 3 스마트 장치(145B2) 등과 통신적으로 결합될 수 있다.
스마트 장치 시스템(140)은, 각각의 스마트 장치(145A-N)를 제어하기 위해, 각각의 스마트 장치(145A-N)에 펌웨어 업데이트를 제공하기 위해, 각각의 스마트 장치(145A-N) 등의 상태를 검증하기 위해, 광역 네트워크(1053)를 통해 장치(145A-N)와 통신할 수 있다. 예를 들어, 스마트 장치 시스템(140) 중 하나는, 스마트 장치 시스템에 대하여, 스마트 장치를 제어할 수 있는 모바일 애플리케이션을 통해 수신되는 사용자 입력에 응답하여, 스마트 장치를 제어하기 위해 스마트 장치(145A-N) 중 하나와 통신할 수 있다.
또한, 예를 들어, 스마트 장치 시스템(140) 중 주어진 하나는 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)로부터의 요청에 응답하여 스마트 장치를 제어하기 위해 스마트 장치(145A-N) 중 하나와 통신할 수 있다. 예를 들어, 일부 기술에 따르면, 사용자는 클라이언트 장치(1101)의 하나 이상의 I/O 구성 요소(1111)를 통해 스마트 장치를 제어하기 위해, 예를 들어, I/O 구성 요소(1111)의 마이크를 통해 제공되는 "소파 조명 끄기"의 음성 입력 등의 요청을 제공할 수 있다. 요청(예를 들어, 음성 입력 또는 그 변환)은 클라이언트 장치(1101)의 자동화 어시스턴트 클라이언트(1171)에 의해 광역 네트워크(1051)를 통해 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)로 전송될 수 있다. 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)는 요청을 처리하여 요청을 기반으로 제어할 스마트 장치를 결정할 수 있으며, 광역 네트워크(1052)를 통해, 요청을 광역 네트워크(1053)를 통해 스마트 장치에 대응하는 명령(들)을 차례로 전송하는 스마트 장치 시스템(140A-N)각각에 전송한다. 그러나, 본 명세서에 설명된 바와 같이 이러한 기술은 높은 지연, 낮은 신뢰성 및/또는 네트워크 자원의 과도한 소비와 같은 단점을 제시한다.
본 명세서에 개시된 구현은 일부 스마트 장치 제어 요청 및/또는 일부 상황에 대해 이러한 기술을 여전히 활용할 수 있지만, 여기에 개시된 다양한 구현은 스마트 장치를 제어할 때, 클라우드 기반 자동화 구성 요소(들)(120)와 각각의 스마트 장치 시스템(들)(140) 간의 통신 및/또는 스마트 장치 시스템(들)(140)과 스마트 장치 사이의 통신(들)을 적어도 선택적으로 우회할 수 있다. 오히려, 이러한 다양한 구현은, 스마트 장치(들)에서 원하는 상태 변경을 수행하기 위해, 로컬로 (예를 들어, 로컬 영역 네트워크 또는 로컬 피어-투-피어 연결을 통해) 스마트 장치(들)로 전송되는 구체적인 제어 명령을 클라이언트 장치(1101-N) 중 하나에서 로컬로 생성한다. 이것은 높은 대기 시간, 낮은 신뢰성, 네트워크 리소스의 과도한 소비 및/또는 위에서 언급한 기술의 다른 단점을 완화할 수 있다.
일부 구현에서, 복수의 클라이언트 컴퓨팅 장치(1101-N) 및 스마트 장치(145A-N)는 여기에 설명된 기술의 성능을 용이하게 하기 위해 다양한 방식으로 서로 연관될 수 있다. 예를 들어, 일부 구현에서, 복수의 클라이언트 장치(1101-N) 및 스마트 장치(145A-N)는 하나 이상의 LAN을 통해 및/또는 하나 이상의 피어-투-피어 네트워크를 통해 통신 가능하게 결합되어 서로 연관될 수 있다. 예를 들어, 가정, 건물 등과 같은 특정 지역 또는 환경에 걸쳐 복수의 클라이언트 컴퓨팅 장치(1101-N)가 배치되는 경우 일 수 있다. 추가적으로 또는 대안 적으로, 일부 구현에서, 복수의 클라이언트 장치(1101-N) 및 스마트 장치(145A-N)는 한 명 이상의 사용자(예: 개인, 가족, 조직의 직원, 기타 사전 정의된 그룹 등)가 적어도 선택적으로 액세스할 수 있는 클라이언트 장치(1101-N) 및 스마트 장치(145A-N)의 조정된 에코시스템의 구성원이기 때문에 서로 연관될 수 있다. 이들 구현 중 일부에서, 클라이언트 장치(1101-N) 및 스마트 장치(1451-N)의 에코시스템은 홈 그래프(152) 및/또는 다른 장치 토폴로지에서 서로 수동 및/또는 자동으로 연관될 수 있다. 예를 들어, 클라이언트 장치(1101-N) 및 스마트 장치(1451-N) 중 하나 이상은 여기에 설명된 등록 기술을 통해 서로 연관될 수 있다.
하나 이상의 클라우드 기반 자동화 어시스턴트 구성 요소(120)와의 상호 작용을 통해 자동화 어시스턴트 클라이언트(1171-N)의 인스턴스는, 사용자의 관점에서 볼 때 사용자가 인간 대 컴퓨터 대화에 참여할 수 있는 자동화 어시스턴트의 논리적 인스턴스를 형성할 수 있다. 예를 들어, 사용자는 클라이언트 장치(1101) 및 자동화 어시스턴트 클라이언트(1171)를 사용하거나 클라이언트 장치(110N) 및 자동화 어시스턴트 클라이언트(117N)를 사용하여 자동화 어시스턴트의 동일한 논리적 인스턴스에 참여할 수 있다. 자동화 어시스턴트 클라이언트(1171 및 117N)의 특정 인스턴스는 다를 수 있거나/있고, 다른 I/O 구성 요소(1111 및 111N)를 통해 사용자 인터페이스 출력을 제공할 수 있거나/있고, 서로 다른 I/O 구성 요소(1111 및 111N)를 통해 서로 다른 사용자 인터페이스 입력을 수락하며(예를 들어, I/O 구성 요소(1111)는 터치 스크린을 포함할 수 있지만 I/O 구성 요소(111N)는 포함하지 않는다), 사용자는 여전히 자동화 어시스턴트의 동일한 논리적 인스턴스에 효과적으로 참여할 수 있다. 간결함과 단순함을 위해, 본 명세서에서 사용되는 "자동화 어시스턴트"라는 용어는 클라이언트 장치(110)에서 실행되는 자동화 어시스턴트 클라이언트(117) 및 선택적으로 하나 이상의 클라우드 기반 자동화 어시스턴트 구성 요소(120) (여러 자동화 어시스턴트 클라이언트(117) 사이에서 공유될 수 있음)를 지칭할 것이다. 조정된 에코시스템의 2 개의 클라이언트 장치(1101 및 110N)가 도 1에 도시되어 있는 반면, 많은 추가 클라이언트 장치가 에코시스템에 포함될 수 있음을 알 수 있다. 또한, 서로 다른 사용자(예: 계정(들)) 및/또는 환경과 관련된 클라이언트 장치의 개별 조정된 에코시스템도 제공될 것이며, 그리고 그러한 분리된 조정된 에코시스템은 또한 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)와 상호 작용(그러나 이러한 개별 에코시스템의 계정에 맞게 조정된 상호 작용)할 수 있다.
클라이언트 장치(1101-N)는 예를 들어 데스크톱 컴퓨팅 장치, 랩톱 컴퓨팅 장치, 태블릿 컴퓨팅 장치, 휴대폰 컴퓨팅 장치, 사용자 차량의 컴퓨팅 장치(예 : 차량용 통신 시스템, 차량용 엔터테인먼트 시스템, 차량용 내비게이션 시스템), 독립형 어시스턴트 중심 대화형 스피커, 스피커(들)가 있는 독립형 어시스턴트 중심 대화형 디스플레이, 다음과 같은 스마트 장치 스마트 텔레비전 및/또는 컴퓨팅 장치를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 장치를 갖는 사용자의 시계, 컴퓨팅 장치를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 장치) 중 하나 이상을 포함할 수 있다. 추가 및/또는 대체 클라이언트 컴퓨팅 장치가 제공될 수 있다.
전술한 바와 같이, 클라이언트 장치(1101-N) 중 하나 이상은 자동화 어시스턴트 클라이언트(1171-N)의 개별 인스턴스를 선택적으로 포함할 수 있다. 자동화 어시스턴트 클라이언트(1171-N)는, 예를 들어, I/O 구성 요소(1111-N)의 마이크를 통해 감지된 음성 입력, I/O 구성 요소(1111-N)의 터치 스크린 디스플레이를 통해 수신된 터치 입력, I/O 구성 요소(1111-N)의 카메라를 통해 감지된 이미지 등 각각의 I/O 구성 요소(1111-N)의 입력 장치(들)로부터 수신된 사용자 입력을 각각 처리할 수 있다. 또한, 각각의 자동화 어시스턴트 클라이언트(1171-N)는 스피커(들) 및/또는 I/O 구성 요소(1111-N)의 터치 스크린 디스플레이와 같은 각각의 I/O 구성 요소(1111-N)의 출력 장치(들)를 통해 선택적으로 다양한 출력을 렌더링할 수 있다.
다양한 구현에서, 자동화 어시스턴트 클라이언트(1171-N)의 하나 이상의 인스턴스는 입력을 처리할 때, 및/또는 입력에 기반하여 출력을 생성할 때, 및/또는 입력에 기초하여 스마트 장치 제어 명령을 생성할 때, 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)와 인터페이스 할 수 있다. 예를 들어, 자동화 어시스턴트 클라이언트(1171)는 클라이언트 장치(1101)에서 자동화 어시스턴트 클라이언트 (1171)의 호출 후에 수신된 음성 입력에 대응하는 오디오 데이터를 클라우드 기반 자동화 어시스턴트 구성 요소(120)로 전송할 수 있다. 클라이언트 장치(1101)에서 자동화 어시스턴트 클라이언트(1171)의 호출은, I/O 구성 요소(1111)의 카메라를 통해 감지된 제스처 및/또는 다른 호출 신호(들)에 응답하여, 호출 문구(예를 들어, "OK 어시스턴트"), 하드웨어 버튼의 상호 작용 또는 자동화 어시스턴트 클라이언트(1171)를 호출하는 그래픽 버튼의 상호 작용에 기초할 수 있다. 클라우드 기반 자동화 어시스턴트 구성 요소(120)는 음성-텍스트(STT) 프로세서(121)를 사용하여 오디오 데이터를 텍스트로 변환할 수 있고, 적절한 응답을 결정하기 위해 NLU 엔진(122)을 사용하여 텍스트에 대한 자연어 이해(NLU)를 수행할 수 있다. 예를 들어, 적절한 응답은 TTS(텍스트 음성 변환) 프로세서를 사용하여 생성된 음성으로 선택적으로 변환할 수 있는 텍스트 응답일 수 있으며, I/O 구성 요소(1111)의 스피커(들)를 통해 생성된 음성을 렌더링하기 위해 자동화 어시스턴트 클라이언트(1171)로 전송될 수 있다.
다른 예로서, 적절한 응답은, 의도를 정의하는 구조화된 명령(예: 켜기/끄기, 어둡게, 증가, 감소), 스마트 장치 정의(예: 스마트 장치의 고유 식별자), 스마트 장치에 대한 제 3 자 정의(예 : 예를 들어, 제 3 자에 대한 고유 식별자) 및/또는 의도에 대한 하나 이상의 추가 매개 변수(예 : 어둡게 할 정도, 증가/감소시킬 항목 등)와 같은, 일반(generic) 스마트 장치 제어 명령일 수 있다. 일반 스마트 장치 제어 명령은 일반 스마트 장치 제어 명령의 로컬 구현을 위해 어시스턴트 클라이언트(1171) 또는 다른 클라이언트 장치(110)의 다른 어시스턴트 클라이언트로 전송될 수 있다. 일부 구현 및/또는 일부 어시스턴트 클라이언트(1171-N)에 대해, 어시스턴트 클라이언트는, 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)와 인터페이스할 필요없이, 로컬 STT 프로세서, 로컬 NLU 엔진, 및/또는 수신된 입력을 로컬로 처리하기 위한 다른 구성 요소(들)를 포함할 수 있다. 예를 들어, 어시스턴트 클라이언트(1171)는 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)와 인터페이싱하지 않고 일반 스마트 장치 제어 명령을 로컬로 생성하기 위한 하나 이상의 로컬 구성 요소(들)를 포함할 수 있다.
클라이언트 장치(110) 중 하나 이상은 또한 선택적으로 각각의 어댑터 상호 작용 엔진(1141-N), 하나 이상의 개별적으로 로컬에 저장된 어댑터(113A-N), 및 하나 이상의 각각의 이용 가능한 라디오(112A-N)를 포함한다. 동일한 어댑터(113A-N) 및 이용 가능한 라디오(112A-N)는 선택적으로 클라이언트 장치(1101-N) 또는 어댑터(113A-N) 각각에 로컬로 제공될 수 있거나/있고, 라디오(112A-N)는 클라이언트 장치들(1101-N) 사이에서 선택적으로 변할 수 있다. 또한, 본 명세서에 설명된 바와 같이, 어댑터(113A-N) 중 하나 이상은 클라이언트 장치(1101-N)에서 선제적으로 실행될 수 있으며, 주어진 클라이언트 장치(1101-N)에 대해 주어진 시간에서 어떤 어댑터가 선제적으로 실행되는지는 클라이언트 장치의 과거 사용량, 시간적 기준 등과 같은 하나 이상의 기준을 기반으로 할 수 있다.
어댑터 상호 작용 엔진(1141-N) 및 로컬에 저장된 어댑터(113A-N)의 추가 설명이 이제 클라이언트 장치(1101)를 참조하여 제공된다. 일반 스마트 장치 제어 명령은 자동화 어시스턴트 클라이언트(1171)로부터 어댑터 상호 작용 엔진(1141)으로 전달될 수 있다. 도 1에 별도로 도시되어 있지만, 명확성을 위해, 다양한 구현에서 어댑터 상호 작용 엔진(1141), 어댑터(113A-N), 라우팅 엔진(1151) 및/또는 등록 엔진(1161)은 자동화 어시스턴트 클라이언트(1171)의 일부로서 논리적으로 통합될 수 있다는 점에 유의한다. 일반 스마트 장치 제어 명령은 음성 입력, 터치 입력, 자동화 어시스턴트 루틴의 트리거링, 다른 비 어시스턴트 장치의 신호 및/또는 기타 신호(들)에 응답하여 생성될 수 있다. 예를 들어, 일반 스마트 장치 제어 명령은 클라이언트 장치(1101)에서 수신된 음성 입력에 응답하여 생성될 수 있다. 예를 들어, 자동화 어시스턴트 클라이언트(1171)는 음성 입력에 대응하는 오디오 데이터를 원격 자동화 어시스턴트 구성 요소(들)(120)로 전송하고, 이에 응답하여 일반 스마트 장치 제어 명령을 수신할 수 있다. 또한, 예를 들어, 자동화 어시스턴트 클라이언트(1171)는, 일반 스마트 장치 제어 명령을 로컬로 생성하기 위해, 자체적으로 음성 입력을 처리할 수 있다. 다른 예로서, 자동화 어시스턴트 클라이언트(1171)는, I/O 구성 요소의 터치 감지 화면(1111)에서, 스마트 장치(들)의 제어를 위한 대화형 그래픽 인터페이스 요소를 렌더링할 수 있고, 상호작용하는 그래픽 인터페이스 요소와의 상호 작용을 대응하는 일반 스마트 장치 제어 명령으로 직접 해석할 수 있다. 일반 스마트 장치 제어 명령은, 의도를 정의하고, 제어할 스마트 장치(들)를 정의하며, 선택적으로 스마트 장치의 제 3 자를 정의하고, 선택적으로 스마트 장치에 대한 제 3 자 및/또는 의도에 대한 하나 또는 선택적으로 하나 이상의 추가 매개 변수를 정의하는 구조화된 명령일 수 있다.
어댑터 상호 작용 엔진(1141)은 일반 스마트 장치 제어 명령에 기초하여, 일반 스마트 장치 제어 명령에 대응하는 당사자에 의해 제공되는 어댑터에 기초하여 어댑터(113A-N) 중 대응하는 어댑터를 선택할 수 있다. 어댑터 상호 작용 엔진(1141)은, 대응하는 스마트 장치(들)에서 상태 변경(들)을 실행하기 위해 대응하는 스마트 장치(들)에 의해 직접 해석될 수 있거나, 대응하는 스마트 장치에 의해 직접 제어되는 상응하는 추가 스마트 장치(들)에서 직접 해석될 수 있는 구체적인 제어 명령을 생성하기 위해, 일반 스마트 장치 제어 명령을 처리하는 어댑터(113A-N) 중 선택된 어댑터에 일반 스마트 장치 제어 명령을 제공한다. 다양한 구현에서, 어댑터(113A-N) 각각은 어댑터에 대응하는 당사자에 의해 제공되는 JavaScript(또는 다른 해석된 프로그래밍 언어)에 의해 구현되며, 각 어댑터(113A-N)는 일반 스마트 장치 제어 명령을 당사자의 프로토콜 스위트에 부합하는 구체적인 제어 명령으로 변환할 수 있다. 어댑터(113A-N) 각각은 샌드 박스화될 수 있고, 클라이언트 장치(1101) 또는 자동화 어시스턴트 클라이언트(1171) 내의 컨테이너 내에서 실행할 수 있으며, 설명된 대로 일반 스마트 장치 제어 명령을 처리할 수 있고, 또한 선택적으로 자동화 어시스턴트의 스키마를 사용하여 자동화 어시스턴트 클라이언트(1171)에 이벤트를 보고 할 수 있다. 어댑터(113A-N)는 3P 어댑터 데이터베이스(150)로부터 어댑터(113A-N)를 선택할 수 있는 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)에 의해 클라이언트 장치(1101)로 전송될 수 있다. 3P 어댑터 데이터베이스(150)의 어댑터는 스마트 장치 시스템(140A-N)에 의해 업데이트될 수 있으며 (예를 들어, 펌웨어 업데이트를 준수하고/하거나 기능을 개선하기 위해) 클라이언트 장치(1101)로 푸시된 업데이트된 어댑터가 업데이트될 수 있다. 일부 구현에서, 선택적으로 특정 스마트 장치(들)에 대한 특정 일반 스마트 장치 제어 명령을 처리하기 위해 추가 어댑터(들)가 제공되고 활용될 수 있다. 예를 들어, 특정 일반 스마트 장치 제어 명령을 처리하는데 지정된 추가 어댑터를 사용할 수 있고, 여러 3P 프로토콜 스위트(예: 3P 프로토콜 스위트가 준수하거나 변형된 산업 표준 기본 프로토콜에 공통됨)에 공통적인 대응하는 구체적인 제어 명령 생성한다. 예를 들어, 일반 wake-on-lan(WOL) 명령은, 1P 프로토콜 산업 표준의 변형인 모든 프로토콜 스위트에 적용할 수 있는 특정 WOL 제어 명령을 생성하기 위해, 주어진 추가 어댑터를 사용하여 처리될 수 있다. 이러한 방식과 다른 방식으로, 추가 어댑터(들)는, 특정 일반 스마트 장치 제어 명령(예: 여러 3P의 스마트 장치의 경우)을 처리하기 위해, 사용될 수 있는 반면, 3P 특정 어댑터는, 특정 다른 일반 스마트 장치 제어 명령(들)을 처리하기 위해 사용될 수 있다.
생성된 구체적인 제어 명령은 어댑터 상호 작용 엔진(1141)에 제공된다. 어댑터 상호 작용 엔진(1141)은 구체적인 제어 명령(및 구체적인 제어 명령의 기반이 되는 일반 스마트 장치 제어 명령)에 의해 표시된 스마트 장치(들)의 상태 (들)의 변경을 실행하기 위해 구체적인 제어 명령을 로컬로 전송하기 위한 라디오(112A-N) 중 하나를 선택한다. 어댑터 상호 작용 엔진(1141)은 일반 스마트 장치 제어 명령에 대응하는 파티 및/또는 어댑터에 로컬로 할당되는 것에 기초하여 라디오를 선택할 수 있다. 어댑터 상호 작용 엔진(1141)은, (예: 주소가 지정된 스마트 장치가 추가 스마트 장치를 제어하는 허브인 경우) 주소가 지정된 스마트 장치 또는 주소가 지정된 스마트 장치에 연결된 스마트 장치에서 상태 변경을 수행하기 위해, 구체적인 제어 명령이 라디오(112A-N) 중 선택된 하나를 통해 전송되도록 하고, 스마트 장치(들)로 주소가 지정되도록 한다.
클라이언트 장치(110) 중 하나 이상은 선택적으로 각각의 라우팅 엔진(1151-N) 및/또는 각각의 등록 엔진(1161-N)을 더 포함한다. 각각의 라우팅 엔진(1151-N)은 하나 이상의 기준에 기초하여, 수신된 일반 스마트 장치 제어 명령을 클라이언트 장치(1101-N)의 에코시스템의 대체 클라이언트 장치로 라우팅하도록 선택적으로 결정할 수 있다. 예를 들어, 클라이언트 장치(1101)는, 예를 들어, 클라이언트 장치(1101)에서 로컬로 또는 원격 자동화 어시스턴트 구성 요소(120)에서 생성되는 스마트 장치 제어 명령(예를 들어, 클라이언트 장치(1101)에 표시된 대응하는 그래픽 요소와의 터치 상호 작용에 응답)에 기초하여, 초기에 스마트 장치 제어 명령을 식별할 수 있고, 클라이언트 장치(1101)에서 수신된 음성 또는 다른 입력에 기초하여 생성되는 것에 기초하여 클라이언트 장치(1101)에 초기에 제공될 수 있다.
일반 스마트 장치 제어 명령은 제어될 특정 스마트 장치를 지정할 수 있으며, 라우팅 엔진(1151)은 클라이언트 장치(1101)와 특정 스마트 장치 사이에 신뢰성있는 통신 채널이 설정되지 않았 음을 결정할 수 있다. 예를 들어, 특정 스마트 장치는 블루투스 통신 채널을 통해 제어되는 장치 일 수 있고, 라우팅 엔진(1151)은 특정 스마트 장치가 클라이언트 장치(1101)의 라디오(112A-N)의 블루투스 라디오 또는 신호를 통해 감지될 수 없음을 결정할 수 있으며, 블루투스 무선을 통해 클라이언트 장치(1101)와 특정 스마트 장치 간의 강도는 임계 값을 충족하지 못한다. 이러한 결정은, 예를 들어 블루투스 라디오를 통한 현재 판독 값 및/또는 클라이언트 장치(1101)가 특정 스마트 장치와 신뢰성있는 연결을 가지고 있지 않음을 나타내는 홈 그래프(1521)의 로컬 버전에 기초할 수 있다.
이에 응답하여, 라우팅 엔진(1151)은 로컬 네트워크(예를 들어, Wi-Fi 또는 어시스턴트 클라이언트 장치(1101-N) 사이에 설정된 메시 네트워크)를 통해 스마트 장치에 대한 신뢰성있는 통신 채널이 설정되어 있는 대체 클라이언트 장치(1102-N)로 일반 스마트 장치 제어 명령을 전송할 수 있다. 라우팅 엔진(1151)은, 예를 들어, 대체 클라이언트 장치가 스마트 장치와 신뢰성있는 연결을 가지고 있음을 나타낼 수 있는 홈 그래프(1521)의 로컬 버전을 이용하여 이러한 대체 클라이언트 장치를 결정할 수 있다. 예를 들어, 라우팅 엔진(1151)은 대체 클라이언트 장치가 모든 클라이언트 장치(1101-N) 중에서 스마트 장치에 대해 최고의 신호 강도를 갖는 것을 나타내는 홈 그래프(1521)의 로컬 버전에 기초하여 대체 클라이언트 장치를 선택할 수 있다. 홈 그래프(1521)의 로컬 버전은 클라이언트 장치(1101)에 로컬로 저장되고, 원격 자동화 어시스턴트 구성 요소(들)(120)에 의해 유지되는 홈 그래프(152)의 동일하거나 변형일 수 있다(예를 들어, 압축된 버전, 약간 덜 최신 버전). 대체 클라이언트 장치는, 일반 스마트 장치 제어 명령 수신에 응답하여, 일반 스마트 장치 제어 명령을 대응하는 특정 명령으로 변환하도록 대응하는 로컬 어댑터를 사용할 수 있고, 대응하는 특정 명령을 특정 스마트 장치에 전송할 수 있다. 대안으로, 어댑터 상호 작용 엔진(1141)은 어댑터(113A-N) 중 대응하는 로컬 명령을 사용하여 대응하는 특정 명령을 생성할 수 있으며, 일반 스마트 장치 제어 명령을 전송하는 대신 대응하는 특정 명령을 대체 클라이언트 장치에 전송할 수 있다.
각각의 등록 엔진(1161-N)은 사용자의 계정에 대한 스마트 장치를 로컬로 발견, 프로비저닝 및/또는 등록하는데 사용된다. 각각의 등록 엔진(1161-N)은, 스마트 장치를 발견, 프로비저닝 및/또는 등록할 때 각각의 로컬에 저장된 홈 그래프 (152A-N), 각각의 어댑터(113A-N)(예를 들어, 각각의 어댑터 상호 작용 엔진(1141-N)를 통해) 및 각각의 라디오(112A-N)와 인터페이스 할 수 있다. 또한, 각각의 등록 엔진(1161-N)은 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)의 클라우드 등록 엔진(127)과 인터페이스 할 수 있다.
일부 구현에서, 등록되지 않은 스마트 장치(들)에 대하여, 등록 엔진(1161-N) 각각이 하나 이상의 개별 통신 채널(예를 들어, Wi-Fi, 블루투스 및/또는 기타)을 스캔하게 함으로써, 아직 등록되지 않은 스마트 장치가 발견될 수 있다. 예를 들어, Wi-Fi의 경우, 등록 엔진(1161-N) 각각은, 대응하는 어댑터를 사용할 수 있는 특정 스마트 장치를 필터링하도록, 선택적으로 서비스 세트 식별자(SSID) 및/또는 기본 서비스 세트 식별자(BSSID) 사용하여, 등록되지 않은 장치(들)를 식별하기 위해 라디오(112A-N)의 개별 Wi-Fi 라디오를 통해 스캔이 수행되도록 할 수 있다. 다른 예로서, 블루투스의 경우, 각각의 등록 엔진(1161-N)은, 선택적으로 식별자를 활용하여 대응하는 어댑터를 사용할 수 있는 특정 스마트 장치를 필터링하도록, 페어링되지 않은 스마트 장치(들)를 식별하기 위해 각각의 블루투스 라디오를 통해 스캔이 수행되도록 할 수 있다. 발견은 주기적 또는 비 주기적 간격으로 또는 사용자 요청(예: 음성 요청, 어시스턴트 용 스마트 폰 앱을 통해 시작된 요청 등)에 응답하여 발생할 수 있다.
하나 이상의 등록 엔진(1161-N)이 스마트 장치를 발견하면, 스마트 장치를 발견 한 스마트 장치 중 하나의 라우팅 엔진은, 페어링(예: 블루투스의 경우) 및/또는 클라이언트 장치(1101-N)가 이미 연결된 보안 Wi-Fi 네트워크에 연결되도록 하여, 스마트 장치를 프로비저닝할 수 있다. 어떤 등록 엔진(1161-N)이 스마트 장치를 제공하는지는 클라이언트 장치(1101-N) 및/또는 클라이언트 장치(1101-N) 간의 직접 협상을 기반으로 결정될 수 있거나/있고, 등록 엔진(1-N)으로부터 표시를 수신할 수 있으며, 등록 엔진(1-N)이 스마트 장치를 발견한 클라우드 라우팅 엔진(125)에 의해 결정될 수 있다.
프로비저닝 후, 프로비저닝된 스마트 장치에 의해 제공되는 데이터는 클라이언트 장치(1101-N) 중 하나에서 수신될 수 있고, 자동화 어시스턴트의 스키마에 등록 데이터를 생성하도록, 어시스턴트 클라이언트 장치의 대응하는 로컬 어댑터(113A-N)를 사용하여 처리될 수 있다. 대응하는 로컬 어댑터는 이미 클라이언트 장치에서 로컬로 제공되거나, 스마트 장치의 프로비저닝에 응답하여 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)에 의해 클라이언트 장치로 선택적으로 푸시될 수 있다. 예를 들어, 클라우드 등록 엔진(127)은 프로비저닝된 스마트 장치에 대응하는 3P 어댑터를 검색하기 위해 3P 어댑터 데이터베이스(152)에 액세스할 수 있으며, 클라이언트 장치(1101-N)에서의 로컬 저장 및 활용을 위해 3P 어댑터를 하나 이상의(예를 들어, 모두) 클라이언트 장치(1101-N)에 푸시할 수 있다. 로컬 어댑터(113A-N)에 의해 생성된 등록 데이터는, 스마트 장치, 어시스턴트 클라이언트 장치 및 스마트 장치와 어시스턴트 클라이언트 장치의 다양한 속성(예: 이름, 위치 등)을 정의하는 홈 그래프 또는 기타 구조에 스마트 장치를 추가하도록, 자동화 어시스턴트에 의해 활용될 수 있다. 예를 들어, 등록 데이터는 등록 데이터를 홈 그래프(152)에 추가할 수 있는 클라우드 등록 엔진(127)으로 전송될 수 있고, 선택적으로 클라이언트 장치(1101-N) 각각의 홈 그래프(1521-N)의 업데이트된 로컬 버전을 푸시 할 수 있다. 클라우드 등록 엔진(127)은, 또한 선택적으로, 등록을 스마트 장치 시스템에 보고하여 스마트 장치 시스템이 스마트 장치 등록을 로컬로 연관시킬 수 있도록, 스마트 장치 시스템(140A-N) 중 대응하는 시스템과 인터페이스 할 수 있다.
일부 구현에서, 클라우드 등록 엔진(127)은 홈 그래프(152)와 관련된 계정에 대응하는 클라이언트 장치(1101-N) 중 하나 이상을 통해 검출된 생체 데이터에 기초하여 홈 그래프(152)에 스마트 장치를 등록한다. 예를 들어, 스마트 장치는 계정과 관련하여 저장된 음성 인증 데이터를 검색, 프로비저닝 및/또는 등록하는 동안 하나 이상의 클라이언트 장치(1101-N)를 통해 수신된 음성 데이터에 기초하여, (예를 들어, 하나 이상의 클라이언트 장치(1101-N)의 다른 계정과 연관된 다른 홈 그래프 대신) 홈 그래프(152)에 할당될 수 있다. 얼굴, 지문 등과 같은 다른 생체 인식이 추가로 또는 대안으로 사용될 수 있다. 일부 구현에서, 클라우드 등록 엔진(127)은 (예를 들어, 홈 그래프(152) 및 로컬 버전에서) 등록된 스마트 장치를 스마트 장치에 로컬로 명령을 전송할 수 있는 클라이언트 장치(들)(1101-N)와 연관시킬 수 있다. 예를 들어, 단거리 라디오(예 : 블루투스 라디오)를 통해 스마트 장치와 통신하는 경우, 적어도 대응하는 신호 강도를 갖는 클라이언트 장치(1101-N)는 (단거리 라디오를 통한 스마트 장치로의 대응 연결을 위해), 선택적으로 대응하는 신호 강도의 지정과 함께 홈 그래프(152)에서 지정될 수 있다. 이러한 지정은 라우팅 엔진(1151-N)에 의해 및/또는 클라우드 라우팅 엔진(125)에 의해, 구체적인 제어 명령을 생성 및/또는 스마트 장치로 전송하는데 이용되어야 하는 어시스턴트 클라이언트 장치를 결정하는데 사용될 수 있다.
일부 구현에서, 액세스 포인트를 브로드 캐스팅하는 스마트 장치가 발견되며, 그 스마트 장치는 클라이언트 장치(1101-N)에 의해 사용되는 보안 Wi-Fi 네트워크에 연결되지 않았고 보안 Wi-Fi 네트워크에 연결하기 위한 자격 증명이 없기 때문에 아직 프로비저닝되지 않았다. 이들 구현 중 일부에서, 복수의 클라이언트 장치(1101-N) 각각은 각각의 Wi-Fi 라디오의 스캐닝을 통해 액세스 포인트의 가용성을 검출했다. 이러한 구현의 일부 버전에서, 단일 어시스턴트 클라이언트 장치는, 스마트 장치의 액세스 포인트를 통해 스마트 장치에 연결하고, 보안 Wi-Fi 네트워크에 연결하기 위한 자격 증명을 연결을 통해 스마트 장치와 안전하게 공유하기 위해, 선택된다. 단일 클라이언트 장치는 클라이언트 장치의 등록 엔진(1161-N)의 협상을 통해 또는 클라우드 등록 엔진(127)에 의해 선택될 수 있다. 자격 증명이 공유되면, 스마트 장치는 보안 Wi-Fi 네트워크에 연결되고, Wi-Fi 네트워크를 통한 통신을 통해 등록될 수 있다. 단일 어시스턴트 클라이언트 장치가 선택되는 다양한 버전에서, 단일 어시스턴트 클라이언트 장치는 단일 어시스턴트 클라이언트 장치에 대한 인간 상호 작용 데이터에 적어도 부분적으로 기반하여 선택된다. 예를 들어, 단일 어시스턴트 클라이언트 장치는 임계 시간 내에 단일 어시스턴트 클라이언트 장치에서 사용자 인터페이스 입력이 수신되지 않았음을 나타내는 인간 상호 작용 데이터에 기초하고/하거나, 단일 어시스턴트 클라이언트 장치가 액세스 포인트가 검출된 복수의 어시스턴트 클라이언트 장치 중 임의의 다른 장치보다 덜 자주 사용된다는 것을 표시하는 인간 상호 작용 데이터에 기초하여, 선택될 수 있다. 이러한 방식과 다른 방식으로, 단일 클라이언트 장치는, 단일 클라이언트 장치가 로컬 액세스 포인트에 연결할 때 보안 Wi-Fi 네트워크와의 연결을 끊기 때문에 진행중인 및/또는 향후 어시스턴트 상호 작용에 대한 중단을 방지하도록 선택될 수 있으며, 단일 클라이언트 장치는 사용되지 않거나 (에코시스템의 다른 장치보다) 사용 가능성이 적다는 기준에 기초하여 선택된다.
일부 구현에서, 등록되지 않은 스마트 장치의 경우, 등록 엔진(1161-N) 각각이 하나 이상의 개별 통신 채널(예를 들어, Wi-Fi, 블루투스 및/또는 기타)을 스캔하게 함으로써, 아직 등록되지 않은 스마트 장치는 발견될 수 있다. 그러나, 이러한 구현 중 일부에서 스마트 장치는 로컬로 등록할 수 없거나 및/또는 로컬로 제어할 수 없다. 그럼에도 불구하고, 이러한 구현의 일부 버전에서 발견된 스마트 장치와 관련된 통지는 하나 이상의 어시스턴트 클라이언트 장치(들) 및/또는 다른 클라이언트 장치(들)에 제시될 수 있다. 통지는 비 로컬 방식으로(예를 들어, 클라우드를 통해) 등록을 용이하게 하기 위해 상호 작용할 수 있는 기타 상호 작용 콘텐츠 및/또는 링크(들)를 포함할 수 있다. 예를 들어, 상호 작용 콘텐츠가 선택되면, 상호 작용 콘텐츠는 단일 로그인 인터페이스 및/또는 스마트 장치 등록을 가능하게 하는 스마트 장치 특정 로그인 인터페이스의 렌더링을 초래할 수 있다.
전술한 바와 같이, 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)는 특정 동작의 수행에서 클라이언트 장치(110) 각각과 선택적으로 인터페이스 할 수 있다. 클라우드 기반 자동화 어시스턴트 구성 요소(120)는 클라우드의 리소스를 활용하여 오디오 데이터(대응하는 클라이언트 장치(110)에 의해 제공됨)를 텍스트 (다음에 NLU 모듈(122)에 제공될 수 있음)로 변환하도록 구성된 STT 모듈(121)을 포함할 수 있다. TTS 모듈(123)은 텍스트 데이터를 컴퓨터 생성 음성 출력으로 변환하기 위해 클라우드의 리소스를 활용하도록 구성될 수 있다. NLU 모듈(122)은 클라이언트 장치(1101-N)를 통해 사용자에 의해 생성된 자연어 입력을 처리하고, 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)의 하나 이상의 다른 구성 요소에 의해 사용하기 위해 주석이 달린 출력을 생성할 수 있다. 예를 들어, NLU 모듈(122)은 음성 입력으로부터 변환된 텍스트 또는 타이핑된 텍스트와 같은 클라이언트 장치(1101)의 하나 이상의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 생성되는 자연어 자유 형식 입력을 처리할 수 있다. 생성된 주석이 달린 출력은 자연어 입력의 하나 이상의 주석 및 선택적으로 자연어 입력의 용어 중 하나 이상 (예를 들어, 모두)을 포함한다.
일부 구현에서, NLU 모듈(122)은 자연어 입력에서 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, NLU 모듈(122)은 음성 태거의 일부 및/또는 엔티티 태거를 포함할 수 있다. 일부 구현에서, NLU 모듈(122)은 추가로 및/또는 대안적으로 하나 이상의 컨텍스트 신호에 기초하여 동일한 엔티티에 대한 참조를 그룹화하거나 "클러스터"하도록 구성된 상호 참조 해석기(도시되지 않음)를 포함할 수 있다. 일부 구현에서, NLU 모듈(122)의 하나 이상의 구성 요소는 NLU 모듈(122)의 하나 이상의 다른 구성 요소로부터의 주석에 의존할 수 있다.
클라우드 라우팅 엔진(125)은 주어진 일반 스마트 장치 제어 명령을 제공 할 클라이언트 장치(1101-N)의 특정 클라이언트 장치를 선택하기 위해 선택적으로 사용될 수 있다. 클라우드 라우팅 엔진(125)은 특정 클라이언트 장치를 선택할 때 홈 그래프(152)를 이용할 수 있다. 예를 들어, 클라우드 라우팅 엔진(125)은, 특정 클라이언트 장치가 일반 스마트 장치 제어 명령의 스마트 장치와 설정된 통신 채널이 있거나, 및/또는 일반 스마트 장치 제어 명령의 스마트 장치(들)와 최상의 (예를 들어, 가장 높은 신호 강도) 통신 채널을 가지고 있음을 나타내는 홈 그래프(152)에 기초하여 특정 클라이언트 장치를 선택하도록, 홈 그래프(152)를 활용할 수 있다. 그런 다음 클라우드 라우팅 엔진(125)은, 선택한 특정 클라이언트 장치에서 구체적인 제어 명령으로 로컬로 변환하고, 선택된 특정 클라이언트 장치에서 구체적인 제어 명령을 대응하는 스마트 장치(들)에 로컬로 전송하기 위해, 일반 스마트 장치 제어 명령이 대응하는 클라이언트 장치로 직접 전송되도록, (예를 들어, 홈 그래프에 저장된 주소를 사용하여) 선택된 특정 클라이언트 장치에 일반 스마트 장치 제어 명령을 지정할 수 있다. 클라우드 라우팅 엔진(125)은 일반 스마트 장치 제어 명령이 다른 클라이언트 장치에서 수신된 사용자 인터페이스 입력에 응답하여 생성되는 경우에도, 일반 스마트 장치 제어 명령을 특정 클라이언트 장치로 라우팅 할 수 있다.
본 명세서에 설명된 바와 같이, 일부 구현에서 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)(예를 들어, STT 모듈(121) 및 NLU 모듈(122))는 클라이언트 장치(110) 중 하나에서 캡처된 음성 입력에 대응하는 오디오 데이터를 처리 할 수 있으며, 이러한 음성 입력을 기반으로 일반 스마트 장치 제어 명령을 생성하며, 클라이언트 장치 중 하나에서 대응하는 스마트 장치에 대한 특정 명령의 로컬 생성을 위해 일반 명령을 클라이언트 장치(110) 중 하나에 반환한다. 다른 구현 또는 상황에서, 클라우드 기반 자동화 어시스턴트 구성 요소(들)는 일반 스마트 장치 제어 명령을 포함하는 자동화 어시스턴트 루틴의 트리거에 응답하는 것과 같이, 다른 신호에 응답하는 일반 스마트 장치 제어 명령(들)을 제공 할 수 있다.
도 1의 다양한 구성 요소에 대한 추가 설명은 이제 추가 도면을 참조하여 제공된다. 도 2는 복수의 방(250, 252, 254, 256, 258, 260 및 262)을 포함하는 집 평면도를 묘사한다. 복수의 클라이언트 장치(1101-3)는 적어도 일부 방에 걸쳐 배치된다. 클라이언트 장치(1101-3) 각각은 선택적으로 본 개시 내용의 선택된 양상들로 구성된 자동화 어시스턴트 클라이언트의 인스턴스를 구현할 수 있고, 선택적으로 마이크, 터치 스크린 등과 같은 하나 이상의 입력 장치 및/또는 스피커, 디스플레이 등과 같은 하나 이상의 출력 장치를 포함할 수 있다. 예를 들어, 독립형 상호 작용 스피커 및 디스플레이 장치(예를 들어, 디스플레이 스크린, 프로젝터 등)의 형태를 취하는 제 1 클라이언트 장치(1101)는, 이 예에서 주방인 방(250)에 배치된다. 상호 작용 독립형 스피커의 형태를 취하는 제 2 클라이언트 장치(1102)는, 이 예에서 침실 인 방(254)에 배치된다. 상호 작용 독립형 스피커의 형태를 취하는 세 번째 클라이언트 장치(1103)는 방(256)에 배치된다.
복수의 클라이언트 장치(1101-3)는 방(252)에 도시된 무선 라우터(101) 및/또는 로컬 메시 네트워크를 통해 서로 및/또는 다른 리소스(예 : 스마트 장치 및 인터넷)와 통신 가능하게 결합될 수 있다. 추가로, 예를 들어 가정에서 한 명 이상의 사람(예: 사용자(103))이 휴대하는, 다른 클라이언트 장치ㅡ특히 스마트 폰, 태블릿, 랩톱, 웨어러블 장치 등과 같은 모바일 장치ㅡ도 존재할 수 있으며, 동일한 LAN에 연결되거나 연결되지 않을 수도 있다. 도 2에 도시된 클라이언트 장치의 구성은, 하나의 예일뿐인 것으로 이해되어야 하며; 더 많거나 더 적은 및/또는 다른 클라이언트 장치가 집이 아닌 다른 방 및/또는 영역에 임의의 수에 걸쳐 배치될 수 있다.
추가로 도 2에 도시된 것은 복수의 스마트 장치이다. 스마트 장치는 제1 3P ("A"지정으로 표시됨)에 의해 제공되는 스마트 조명(145A1)을 포함한다. 스마트 조명(145A1)은 업계 표준의 변형 인 제1 3P의 프로토콜 스위트를 사용하여 블루투스 라디오를 통해 제어할 수 있다. 스마트 장치는 무선 라우터(101)에 결합된 허브(147B)를 통해 제어되는 스마트 조명(145B1 및 145B2) 및 스마트 초인종(145B3)을 더 포함한다. 스마트 조명(145B1 및 145B2), 스마트 초인종(145B3) 및 허브(147B)는 제2 3P("B"지정으로 표시됨)에 의해 제공된다. 스마트 조명(145B1 및 145B2), 스마트 초인종(145B3) 및 허브(147B)는 산업 표준 프로토콜을 사용하고, 허브(147B)는 Wi-Fi 라디오를 사용하고 무선 라우터 101에 대한 유선 연결을 통해 TCP/IP를 통해 주소를 지정할 수 있다. 스마트 장치는 세 번째 3P("C"지정으로 표시됨)에 의해 제공되는 스마트 세탁기(145C1)를 더 포함한다. 스마트 세탁기(145C1)는 세 번째 3P의 독점 프로토콜 스위트를 사용하는 저속 무선 개인 영역 네트워크 무선 채널을 통해 제어할 수 있다. 스마트 장치는 네 번째 3P ("D"지정으로 표시됨)에 의해 제공되는 스마트 온도 조절기(145D1)를 더 포함한다. 스마트 온도 조절기(145D1)는 UDP 프로토콜 스위트의 네 번째 3P 변형을 사용하여 Wi-Fi 라디오를 통해 제어할 수 있다. 도 2에 도시된 스마트 장치(145)의 구성은, 하나의 예일뿐으로 이해되어야 하며; 더 많거나 더 적은 및/또는 다른 스마트 장치가 집 이외의 다른 방 및/또는 영역에 걸쳐 배치될 수 있다.
도 2 및 도 2의 상기 설명은 이제 도 3 내지 도 7의 다양한 측면을 설명하는데 이용될 것이다. 도 3은, 도 2의 클라이언트 장치(1101)를 사용하여 스마트 조명 (145B1 및 145B2)을 제어하는 예의 예시적인 상태도(300)를 도시한다. 도 3에서, 클라이언트 장치(1101)의 어댑터 상호 작용 엔진(1141)은 352에서 일반 스마트 장치 제어 명령을 식별한다. 일반 스마트 장치 제어 명령은 클라이언트 장치(1101)에 의해 생성되거나 원격 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120)에 의해 및/또는 다른 클라이언트 장치에 의해 클라이언트 장치(1101)에 제공될 수 있다. 일반 스마트 장치 제어 명령은 스마트 조명(145B1 및 145B2)를 식별하고, 대응하는 색상이 "밝은 빨간색"으로 조정되어야 함을 나타내며, 선택적으로 제2 3P를 식별한다.
354에서, 어댑터 상호 작용 엔진(1141)은 제 2 3P에 대응하는 3P 어댑터(113B)를 선택한다. 어댑터 상호 작용 엔진(1141)은, 제 2 3P 및/또는 일반 스마트 장치 제어 명령에 지정된 스마트 조명(145B1 및 145B2)에 할당되는 3P 어댑터(113B)에 기초하여, 클라이언트 장치(1101)에 로컬로 저장된 복수의 이용 가능한 3P 어댑터로부터 3P 어댑터(113B)를 선택할 수 있다.
356에서, 상호 작용 엔진(1141)은 일반 스마트 장치 제어 명령을 3P 어댑터(113B)에 제공한다. 일부 구현에서, 3P 어댑터(113B)는, 클라이언트 장치(1101)와 관련된 계정에 대해 등록되는 제 2 3P의 스마트 조명(145B1 및 145B2) 및/또는 다른 스마트 장치(들)에 기초하여, 클라이언트 장치(1101)에서 로컬로 저장되고, 선택적으로 이미 실행 중이다. 일부 구현에서, 3P 어댑터(113B)는, 또한, 예를 들어, 클라이언트 장치(1101)에서 최근에 사용된 3P 어댑터(113B), 현재 날짜/시간과 유사한 날짜/시간에 과거에 사용된 것 및/또는 하나 이상의 다른 기준에 기초하여, 이미 클라이언트 장치(1101)에서 실행 중이다.
362에서, 3P 어댑터(113B)는 제공된 일반 명령에 기초하여 특정 명령을 생성하고, 364에서 3P 어댑터(113B)는 생성된 특정 명령을 어댑터 상호 작용 엔진(1141)에 반환한다. 제 2의 3P가 표준 프로토콜을 사용하더라도 생성된 특정 명령은, 예를 들어, 3P 어댑터(113B)는 제 2 3P에 특별히 맞춤화된 "밝은 적색"상태 변경 요청에 대한 특정 명령을 초래할 제 2 3P의 맞춤 로직을 통합할 수 있기 때문에, 표준 프로토콜을 사용하여 생성되는 명령과 다를 수 있다. 특정 명령은, 특정 명령을 직접 해석하여 조명의 색상 상태를 "밝은 빨간색"상태로 변경할 수 있는 스마트 조명(145B1 및 145B2)에 직접 특정 명령을 전달할 수 있는 스마트 허브(147e)로 어드레싱될 수 있다. 또는, 스마트 허브(147e)는 특정 명령을 해석하여 특정 명령에 따라 스마트 조명(145B1, 145B2)를 직접 제어할 수 있다.
358에서, 어댑터 상호 작용 엔진(1141)은 3P 어댑터(113B)에 대한 라디오(112B)를 선택하고, 372에서 선택된 라디오를 사용하여 그것이(3P 어뎁터가) 전송되도록 하는 특정 명령을 제공한다. 라디오(112B)는 (클라이언트 장치(1101)에서 로컬로) 3P 어댑터(113B)에 할당되는 것에 기초하여 클라이언트 장치(1101)에서 이용 가능한 복수의 라디오로부터 선택된다. 예를 들어, 라디오(112B)는 Wi-Fi 라디오일 수 있고, 특정 명령은 TCP/IP를 통해 스마트 허브(147B)로 전송될 수 있다.
위에서 언급한 바와 같이, 스마트 허브(147B)는 특정 명령을, 특정 명령을 직접 해석하여 조명의 색상 상태를 "밝은 빨간색"상태로 변경할 수 있는 스마트 조명(145B1 및 145B2)에 직접 전달할 수 있다. 대안적으로, 스마트 허브(147B)는, 특정 명령에 따라 스마트 조명(145B1 및 145B2)을 직접 제어하기 위해 특정 명령을 해석하고 추가로 해석된 명령을 전송할 수 있다. 그럼에도 불구하고 382에서 상태 변경이 구현된다. 선택적으로 384에서 스마트 허브(147B)는 응답을 라디오(112B)로 다시 전송하고, 응답은 (예를 들어, 자동화 어시스턴트의 스키마로) 응답을 해석하고 해석된 응답을 어댑터 상호 작용 엔진(1141)에 제공하는 3P 어댑터(113B)로 제공된다. 어댑터 상호 작용 엔진(1141)은, 식별된 일반적인 명령에 대한 응답으로서, 하나 이상의 추가 구성 요소에 대한 해석된 응답을 선택적으로 제공할 수 있다. 예를 들어 해석된 응답이 상태 변경이 성공했음을 나타내는 경우, 성공을 표시하기 위해 클라이언트 장치(1101)의 디스플레이를 업데이트하는 것이 제공될 수 있으며, 상태 변화를 반영하기 위해 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120), 상태 변경을 반영하기 위해 제 2 3P와 연관된 시스템(140) 및/또는 다른 구성 요소(들)에 홈 그래프(152)를 업데이트하는 것이 제공될 수 있다.
도 4는 도 2의 클라이언트 장치(1101)로부터 도 2의 클라이언트 장치(1102)로 도 2의 스마트 조명(145A1)를 제어하기 위한 일반 스마트 장치 제어 명령을 라우팅하는 예의 예시적인 상태도(400)를 도시한다. 도 4에서, 클라이언트 장치(1101)의 라우팅 엔진(1151)은 452에서 일반 스마트 장치 제어 명령을 식별한다. 일반 스마트 장치 제어 명령은 클라이언트 장치(1101)에 의해 생성될 수 있거나, 원격 클라우드 기반 자동화 어시스턴트 구성 요소(들)(120) 및/또는 다른 클라이언트 장치에 의해 클라이언트 장치(1101)에 제공될 수 있다. 예를 들어, 일반 스마트 장치 제어 명령은 클라이언트 장치(1101)의 터치 스크린을 통해 디스플레이 되며, 스마트 조명(145A1)의 조광 레벨을 조정할 수 있는 그래픽 인터페이스 요소와의 터치 상호 작용에 응답하여 클라이언트 장치(1101)에 의해 생성될 수 있다. 일반 스마트 장치 제어 명령은 스마트 조명(145A1)을 식별하고 "50 % 어둡게" 상태로 조정되어야 함을 표시하며, 선택적으로 제1의 3P를 식별한다.
454에서, 라우팅 엔진(1151)은 클라이언트 장치(1101)가 스마트 조명(145A1)와의 신뢰할 수 없는 통신 채널을 가지고 있다고 결정한다. 예를 들어, 위에서 언급한 바와 같이, 스마트 조명(145A1)은 블루투스 라디오를 통해 제어될 수 있다. 클라이언트 장치(1101)와 스마트 조명(145A1) 사이의 거리 및/또는 장애물로 인해, 클라이언트 장치(1101)의 블루투스 라디오는 스마트 조명(145A1)와 통신하지 못하거나, 통신을 할 수는 있지만, 신호 강도가 임계 값을 충족하지 못한다. 라우팅 엔진(1151)은 블루투스 라디오로부터의 현재 데이터에 기반하여, 또는 과거 이력 데이터(예를 들어, 스마트 장치에 대한 클라이언트 장치의 로컬 매핑에 저장됨)에 기반하여, 신뢰할 수 없는 통신 채널을 결정할 수 있다.
456에서, 라우팅 엔진(1151)은 스마트 조명(145A1)과 신뢰성있는 통신 채널을 갖는 어시스턴트 클라이언트 장치(1102)를 해석한다. 클라이언트 장치(1102)를 해석(resolve)할 때, 라우팅 엔진(1151)은, (예를 들어, 스마트 조명(145A1)에 근접한 결과) 클라이언트 장치(1102)가 스마트 조명(145A1)에 대한 설정된(established, 수립된) 신뢰성있는 통신 채널을 갖는 장치임을 결정하기 위해, 클라이언트 장치(1101)에 로컬로 저장된 클라이언트 장치 대 스마트 장치 매핑(client devices to smart devices mapping)에 선택적으로 의존할 수 있다. 클라이언트 장치 대 스마트 장치 매핑은 에코시스템의 클라이언트 장치를 정의할 수 있으며, 어시스턴트 클라이언트 장치 각각에 대해 어시스턴트 클라이언트 장치가 대응하는 신뢰성있는 통신 채널을 갖는 대응하는 스마트 장치를 정의할 수 있으며, 어시스턴트 클라이언트 장치와 스마트 장치(들) 사이의 신호 강도(들)를 선택적으로 정의할 수 있다. 이러한 매핑은 여기에 설명된 바와 같이 로컬로 저장된 홈 그래프에 선택적으로 포함될 수 있다.
458에서, 라우팅 엔진(1151)은, 로컬 네트워크를 사용하여, 일반 스마트 장치 제어 명령을 해석된 클라이언트 장치(1102)로 전송한다.
460에서, 클라이언트 장치(1102)의 어댑터 상호 작용 엔진(1142)은 제1의 3P에 대응하는 3P 어댑터(113A)를 선택한다. 어댑터 상호 작용 엔진(1142)은, 제1의 3P 및/또는 일반 스마트 장치 제어 명령에 지정된 스마트 조명(145A1)에 대응하는 3P 어댑터(113A)에 기초하여, 클라이언트 장치(1102)에 로컬로 저장된 복수의 이용 가능한 3P 어댑터로부터 3P 어댑터(113A)를 선택할 수 있다.
462에서, 상호 작용 엔진(1142)은 일반 스마트 장치 제어 명령을 3P 어댑터(113A)에 제공한다. 일부 구현에서, 3P 어댑터(113A)는, 클라이언트 장치(1102)와 연관된 계정에 대해 등록되는 스마트 조명(145A1)에 기초하여 클라이언트 장치(1102)에서 로컬로 저장되고 선택적으로 이미 실행된다. 일부 구현에서, 3P 어댑터(113A)는, 예를 들어 클라이언트 장치(1102)와 스마트 조명(145A1) 사이에 강한 신호 강도가 있다는 것, 3P 어댑터(113A)가 최근 클라이언트 장치(1101)에서 활용되고 있다는 것에 추가로 기초하고, 및/또는 하나 이상의 다른 기준에 기초하여, 이미 클라이언트 장치(1101)에서 실행 중이다.
472에서, 3P 어댑터(113A)는 제공된 일반 명령에 기초하여 특정 명령을 생성하고, 474에서, 3P 어댑터(113A)는 생성된 특정 명령을 어댑터 상호 작용 엔진(1142)에 반환한다. 제1의 3P는 업계 표준의 변형인 프로토콜 스위트를 사용하며, 결과적으로 생성된 특정 명령은 산업 표준을 따르지 않을 수 있다. 특정 명령은, 스마트 조명(145A1)의 디밍 레벨을 "50 %"로 변경하도록 하는 특정 명령을 직접 해석할 수 있는 스마트 조명(145A1)로 지정될 수 있다.
464에서, 어댑터 상호 작용 엔진(1142)은 3P 어댑터(113A)에 대한 라디오 (112A)를 선택하고, 482에서 선택된 라디오를 사용하여 그것이(3P 어뎁터(113A))가 전송되게 한다. 라디오(112A)는 (클라이언트 장치(1102)에서 로컬로) 3P 어댑터(113A)에 할당되는 것에 기초하여, 클라이언트 장치(1102)에서 이용 가능한 복수의 라디오로부터 선택된다. 예를 들어, 라디오(112A)는 블루투스 라디오일 수 있다.
492에서 스마트 조명(145A1)는 스마트 조명(145A1)의 디밍 레벨을 "50 %"로 변경시키는 특정 명령을 직접 해석한다. 선택적으로, 스마트 조명(145A1)는 응답을 라디오(112A)로 다시 전송하고, 응답은 (예를 들어, 자동화 어시스턴트의 스키마로) 응답을 해석하고 어댑터 상호 작용 엔진(1142)에 해석된 응답을 제공하는 3P 어댑터(113A)에 제공된다. 어댑터 상호 작용 엔진(1142)은 식별된 일반 명령에 대한 응답으로서, 하나 이상의 추가 구성 요소에 대한 해석된 응답을 선택적으로 제공할 수 있다.
이제 도 5 내지 도 7을 참조하면, 다양한 방법은 이들 도면의 흐름도의 동작을 참조하여 설명된다. 편의상 아래에서 설명하는 순서도의 동작은 동작을 수행하는 시스템을 참조하여 설명한다. 시스템은 하나 이상의 클라이언트 장치(예를 들어, 자동화 어시스턴트 클라이언트를 실행하는 클라이언트 장치)의 하나 이상의 구성 요소 및/또는 별도의 컴퓨팅 시스템(예를 들어, 원격 자동화 어시스턴트 서버(들))의 하나 이상의 구성 요소를 포함할 수 있다. 더욱이, 다른 시스템은 다른 순서도의 작업을 수행할 수 있다. 또한, 플로우 차트의 작업이 특정 순서로 표시되지만, 제한을 의미하지는 않는다. 하나 이상의 작업은 다시 정렬되거나 생략되거나 추가될 수 있다.
도 5는 본 명세서에 개시된 다양한 구현들에 따른, 로컬 어시스턴트 클라이언트 장치를 사용하여 스마트 장치를 제어하는 예시적인 방법(500)을 예시하는 흐름도이다. 도 5는 로컬 어시스턴트 클라이언트 장치의 하나 이상의 프로세서를 사용하여 구현될 수 있다.
블록 502에서, 시스템은 스마트 장치(들) 및 변경될 스마트 장치(들)의 상태(들)를 지정하는 일반 스마트 장치 제어 명령을 식별한다.
블록 504에서, 시스템은 신뢰성있는 통신 채널이 있는지 여부를 결정한다.
블록 504에서 시스템이 신뢰성있는 통신 채널이 없다고 결정하면, 시스템은 블록 506으로 진행한다.
블록 506에서, 시스템은 스마트 장치(들)에 대한 신뢰성있는 통신 채널을 가진 대체 로컬 어시스턴트 클라이언트 장치를 선택한다.
블록 508에서, 시스템은 스마트 장치(들)를 로컬로 제어하기 위해 선택된 대체 로컬 어시스턴트 클라이언트 장치에 일반 스마트 장치 제어 명령을 전송한다. 선택한 대체 로컬 어시스턴트 클라이언트 장치는, 일반 스마트 장치 제어 명령을 수신하면, 일반 스마트 장치 제어 명령에 대응하는하고, 스마트 장치의 상태를 변경하기 위해 스마트 장치에서 직접 해석될 수 있는 특정 명령을 생성하기 위해, 일반 스마트 장치 제어 명령을 로컬로 처리할 수 있다. 선택된 대체 로컬 어시스턴트 클라이언트 장치는 스마트 장치의 상태의 변경을 실행하기 위해 설정된 신뢰성있는 통신 채널을 통해 특정 명령을 추가로 전송할 수 있다.
블록 504의 반복에서 시스템이 신뢰성있는 통신 채널이 있다고 결정하면, 시스템은 블록 510으로 진행한다.
블록 510에서, 시스템은 일반 스마트 장치 제어 명령에 기초하여 복수의 이용 가능한 어댑터로부터 특정 어댑터를 선택한다.
블록 512에서, 시스템은 특정 명령을 생성하기 위해 선택된 어댑터를 사용하여 일반 스마트 장치 제어 명령을 처리한다.
블록 514에서, 시스템은 스마트 장치(들)의 상태(들)의 변경을 실행하기 위해 신뢰성있는 통신 채널을 통해 특정 명령을 전송한다.
도 6은 본 명세서에 개시된 다양한 구현들에 따른, 로컬 어시스턴트 클라이언트 장치를 사용하여 스마트 장치를 제어하는 다른 예시(600) 방법을 예시하는 흐름도이다. 도 6은 로컬 어시스턴트 클라이언트 장치의 하나 이상의 프로세서를 사용하여 구현될 수 있다.
블록 602에서, 시스템은 복수의 3P 어댑터 및 선택적으로 IP 어댑터와 같은 복수의 어댑터 각각을 선제적으로 실행한다.
블록 604에서, 시스템은 변경될 스마트 장치(들) 및 스마트 장치(들)의 상태(들)를 지정하는 일반 스마트 장치 제어 명령을 식별한다.
블록 606에서, 시스템은 일반 스마트 장치 제어 명령에 기초하여 복수의 실행 어댑터로부터 특정 어댑터를 선택한다.
블록 608에서, 시스템은 특정 명령을 생성하기 위해 선택된 어댑터를 사용하여 일반 스마트 장치 제어 명령을 처리한다.
블록 610에서, 시스템은 복수의 이용 가능한 통신 채널로부터 선택된 어댑터에 할당된 특정 통신 채널을 선택한다.
블록 612에서, 시스템은 상태(들)가 스마트 장치(들)에서 변경되게 하기 위해 선택된 특정 통신 채널을 사용하여 특정 명령을 전송한다.
도 7은 본 명세서에 개시된 다양한 구현에 따라, 로컬 어시스턴트 클라이언트 장치를 사용하여 스마트 장치를 등록하는 예시적인 방법(700)을 예시하는 흐름도이다. 도 7은 로컬 어시스턴트 클라이언트 장치의 하나 이상의 프로세서 및/또는 원격 자동화 어시스턴트 서버(들)의 하나 이상의 프로세서를 사용하여 구현될 수 있다.
블록 702에서, 시스템은 어시스턴트 클라이언트 장치의 에코시스템의 각 어시스턴트 클라이언트 장치가 프로비저닝되지 않은 스마트 장치(들)에 대한 통신 채널(들)을 스캔하도록 한다.
블록 704에서, 시스템은 새로운 프로비저닝되지 않은 스마트 장치가 스캐닝에 의해 검출되는지 여부를 결정한다.
블록 704의 반복에서 시스템이 새로운 프로비저닝되지 않은 스마트 장치가 없다고 결정하면, 시스템은 블록 706으로 진행하고 방법(700)이 종료된다.
블록 704의 반복에서 시스템이 적어도 하나의 새로운 프로비저닝되지 않은 스마트 장치가 있다고 결정하면, 시스템은 블록 708로 진행한다.
블록 708에서, 시스템은, 새로운 스마트 장치와 어시스턴트 클라이언트 장치(들)의 로컬 연결(들)을 설정하도록, 선택된 어시스턴트 장치가 통신 채널을 통해 새로운 스마트 장치와 인터페이스하게 한다. 블록 708은 서브 블록 709과 같은 하나 이상의 서브 블록을 선택적으로 포함할 수 있다.
서브 블록 709에서, 시스템은 어시스턴트 클라이언트 장치에 대한 인간 상호 작용 데이터에 기초하여 인터페이싱할 어시스턴트 클라이언트 장치를 선택할 수 있다. 예를 들어, 서브 블록 709에서 새로운 스마트 장치는, 도 1의 스마트 온도 조절기(145D1)일 수 있으며, 새로운 스마트 장치는, 액세스 포인트를 브로드 캐스팅할 수 있지만, 어시스턴트 클라이언트 장치에 의해 사용되는 보안 무선 라우터(101)에 아직 연결되지 않았으며, 보안 무선 라우터(101)에 연결하기 위한 자격 증명이 부족할 수 있다. 이러한 구현 중 일부에서, 클라이언트 장치의 에코시스템의 복수의 어시스턴트 클라이언트 장치 각각은 각각의 Wi-Fi 라디오의 스캐닝을 통해 액세스 포인트의 가용성을 검출했다. 예를 들어, 도 2의 3 개의 클라이언트 장치(1101-3) 모두는, 액세스 포인트의 가용성을 감지했을 수 있다. 이러한 구현의 일부 버전에서, 단일 어시스턴트 클라이언트 장치는, 스마트 장치의 액세스 포인트를 통해 스마트 장치에 연결하고, 보안 Wi-Fi 네트워크에 연결하기 위한 자격 증명을 연결을 통해 스마트 장치와 안전하게 공유하기 위해 선택된다. 자격 증명이 공유되면, 스마트 장치는 보안 Wi-Fi 네트워크에 연결되고, Wi-Fi 네트워크를 통한 통신을 통해 등록할 수 있다. 단일 어시스턴트 클라이언트 장치는, 단일 어시스턴트 클라이언트 장치에 대한 인간 상호 작용 데이터에 적어도 부분적으로 기초하여 선택될 수 있다. 예를 들어, 클라이언트 장치(1103)는, 사용자 인터페이스 입력이 임계 시간 내에 클라이언트 장치(1103)에서 수신되지 않았 음을 나타내는 인간 상호 작용 데이터에 기반하거나, 및/또는 클라이언트 장치(1103)가 클라이언트 장치(1101) 및 클라이언트 장치(1102)보다 덜 자주 사용된다는 것을 표시하는 인간 상호 작용 데이터에 기반하여, 선택될 수 있다.
블록 710에서, 시스템은, 새로운 스마트 장치에 대한 등록 데이터를 생성할 때, 선택된 또는 추가의 어시스턴트 클라이언트 장치가 새로운 스마트 장치(들)에 대해 어댑터를 사용하게 한다. 블록 710은 선택적으로 하나 이상의 서브 블록을 포함할 수 있다. 서브 블록 711에서, 시스템은 새로운 스마트 장치를 검출하는 어시스턴트 클라이언트 장치(들)에 응답하여 어시스턴트 클라이언트 장치(들)에 어댑터를 제공할 수 있다. 예를 들어, 새로운 스마트 장치(들)와 관련된 당사자를 위한 다른 스마트 장치(들)가 아직 어시스턴트 클라이언트 장치와 연결되지 않은 경우 어댑터는 어시스턴트 클라이언트 장치(들)에 아직 로컬로 저장되지 않을 수 있다. 이러한 상황에서, 대응하는 당사자의 어댑터는 어댑터 데이터베이스에서 검색될 수 있고, 어시스턴트 클라이언트 장치(들)에 제공될 수 있다.
블록 712에서, 시스템은 새로운 스마트 장치를 홈 그래프에 통합하기 위해 등록 데이터를 사용한다. 블록 712은 선택적으로 하나 이상의 서브 블록을 포함할 수 있다. 서브 블록 713에서, 시스템은 새로운 스마트 장치를 로컬로 제어할 수 있는 어시스턴트 클라이언트 장치(들)를 표시하는데이터, 및 선택적으로 새로운 스마트 장치를 로컬로 제어하기 위한 선호도를 표시하는데이터를 저장할 수 있다. 서브 블록(714)에서, 시스템은 홈 그래프와 연관된 계정에 대응하는 하나 이상의 어시스턴트 클라이언트 장치를 통해 검출된 생체 데이터에 기초하여, 홈 그래프를 선택적으로 선택할 수 있다.
블록 715에서, 시스템은, 등록 정보를 새로운 스마트 장치에 대한 제 3 자에게 선택적으로 전송할 수 있다.
도 8은 본 명세서에 설명된 기술의 하나 이상의 양상을 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 장치(810)의 블록도이다. 컴퓨팅 장치(810)는 일반적으로 버스 서브 시스템(812)을 통해 다수의 주변 장치와 통신하는 적어도 하나의 프로세서(814)를 포함한다. 이러한 주변 장치에는 예를 들어, 메모리 서브 시스템(825) 및 파일 스토리지 서브 시스템(826)을 포함하는 스토리지 서브 시스템(824), 사용자 인터페이스 출력 장치(820), 사용자 인터페이스 입력 장치(822), 및 네트워크 인터페이스 서브 시스템(816)이 포함될 수 있다. 입력 및 출력 장치는 컴퓨팅 장치(810)와 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브 시스템(816)은 외부 네트워크에 대한 인터페이스를 제공하고, 다른 컴퓨팅 장치의 대응하는 인터페이스 장치에 연결된다.
사용자 인터페이스 입력 장치(822)는 키보드, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿과 같은 포인팅 장치, 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템, 마이크 및/또는 기타 유형의 입력 장치와 같은 오디오 입력 장치를 포함할 수 있다. 일반적으로, "입력 장치"라는 용어의 사용은 컴퓨터 시스템(810) 또는 통신 네트워크에 정보를 입력하는 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 장치(820)는 디스플레이 서브 시스템, 프린터, 팩스 기계, 또는 오디오 출력 장치와 같은 비 시각적 디스플레이를 포함할 수 있다. 디스플레이 서브 시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 장치, 프로젝션 장치, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브 시스템은 또한 오디오 출력 장치를 통해 비 시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 장치"라는 용어의 사용은 모든 가능한 유형의 장치 및 컴퓨팅 장치(810)에서 사용자 또는 다른 기계 또는 컴퓨팅 장치로 정보를 출력하는 방법을 포함하도록 의도된다.
저장 서브 시스템(824)은 본 명세서에 설명된 모듈의 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구조를 저장한다. 예를 들어, 저장 서브 시스템(824)은 여기에 설명된 하나 이상의 방법의 선택된 양상을 수행하기 위한 로직을 포함할 수 있다.
이러한 소프트웨어 모듈은 일반적으로 프로세서(814)에 의해 단독으로 또는 다른 프로세서와 결합하여 실행된다. 저장 서브 시스템(824)에서 사용되는 메모리(825)는 프로그램 실행 동안 명령어 및 데이터를 저장하기 위한 메인 랜덤 액세스 메모리(RAM)(830) 및 고정 명령어가 저장되는 읽기 전용 메모리(ROM)(832)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브 시스템(824)은 프로그램 및 데이터 파일에 대한 영구 저장을 제공할 수 있으며, 하드 디스크 드라이브, 플로피 디스크 드라이브와 관련된 이동식 미디어, CD-ROM 드라이브, 광학 드라이브 또는 이동식 미디어 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈은 저장 서브 시스템(824)의 파일 저장 서브 시스템(824)에 의해 또는 프로세서(들)(814)에 의해 액세스 가능한 다른 기계에 저장될 수 있다.
버스 서브 시스템(812)은 컴퓨터 시스템(810)의 다양한 구성 요소 및 서브 시스템이 의도한대로 서로 통신할 수 있도록 하는 메커니즘을 제공한다. 버스 서브 시스템(812)이 단일 버스로 개략적으로 도시되어 있지만, 버스 서브 시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨팅 장치(810)는 워크 스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 장치를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 8에 도시된 컴퓨팅 장치(810)의 설명은, 일부 구현을 설명하기 위한 특정 예로서 만 의도된다. 컴퓨팅 장치(810)의 많은 다른 구성이 도 8에 도시된 컴퓨팅 장치보다 더 많거나 적은 구성 요소를 가질 수 있다.
여기에서 논의된 특정 구현이 사용자에 대한 개인 정보(예: 다른 전자 통신에서 추출된 사용자 데이터, 사용자의 소셜 네트워크에 대한 정보, 사용자의 위치, 사용자의 시간, 사용자의 생체 정보, 사용자의 활동 및 인구 통계 정보, 사용자 간의 관계 등)를 수집하거나 사용할 수 있는 상황에서, 사용자에게는 정보 수집 여부, 개인 정보 저장 여부, 개인 정보 사용 여부 및 사용자에 대한 정보 수집, 저장 및 사용 방법을 제어할 수 있는 하나 이상의 기회가 제공된다. 즉, 여기에 설명된 시스템 및 방법은 관련 사용자로부터 명시적인 승인을 받은 경우에만 사용자 개인 정보를 수집, 저장 및/또는 사용한다.
예를 들어, 사용자는 프로그램 또는 기능이 특정 사용자 또는 프로그램 또는 기능과 관련된 다른 사용자에 대한 사용자 정보를 수집하는지 여부를 제어 할 수 있다. 개인 정보를 수집할 각 사용자에게는 정보 수집 여부 및 정보의 어떤 부분이 수집되는지에 대한 허가 또는 승인을 제공하기 위해, 대응하는 사용자와 관련된 정보 수집을 제어 할 수 있는 하나 이상의 옵션이 제공된다. 예를 들어, 사용자는 통신 네트워크를 통해 이러한 제어 옵션을 하나 이상 제공받을 수 있다. 또한 특정 데이터는, 개인 식별 정보가 제거되도록, 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 일례로, 개인 식별 정보가 결정될 수 없도록 사용자의 신원을 처리할 수 있다. 다른 예로서, 사용자의 특정 위치를 결정할 수 없도록 사용자의 지리적 위치가 더 큰 지역으로 일반화될 수 있다.
일부 구현에서, 자동화 어시스턴트 클라이언트를 실행하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 일반 스마트 장치 제어 명령을 식별하는 단계를 포함한다. 일반 스마트 장치 제어 명령은 적어도 하나의 스마트 장치와 스마트 장치에서 변경될 적어도 하나의 상태를 지정한다. 상기 방법은 클라이언트 장치와 스마트 장치 사이에 신뢰성있는 통신 채널이 설정되었는지 결정하는 단계; 및 클라이언트 장치와 스마트 장치 간에 신뢰성있는 통신 채널이 설정되지 않는다는 결정에 응답하여: 스마트 장치에 대한 신뢰성있는 통신 채널이 설정된 추가 클라이언트 장치를 해석하기 위해, 클라이언트 장치에 로컬로 저장된 클라이언트 장치 대 스마트 장치 매핑을 액세스하는 단계; 및 로컬 네트워크를 통해 일반 스마트 장치 제어 명령을 추가 클라이언트 장치로 전송하는 단계를 추가로 포함한다. 일반 스마트 장치 제어 명령을 추가 클라이언트 장치로 전송하면 추가 클라이언트 장치는, 일반 스마트 장치 제어 명령에 대응하는하는 특정 명령을 생성하기 위해 일반 스마트 장치 제어 명령을 로컬로 처리하고, 스마트 장치의 상태를 변경하기 위해 스마트 장치에서 직접 해석할 수 있으며, 스마트 장치의 상태의 변경을 실행하기 위해 설정된 신뢰성있는 통신 채널을 통해 특정 명령을 전송하는 것을 수행한다.
기술의 이러한 및 다른 구현은 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 방법은 클라이언트 장치와 스마트 장치간에 신뢰성있는 통신 채널이 설정된다는 결정에 대한 응답으로: 클라이언트 장치에서 로컬로 실행 가능한 복수의 3P 어댑터로부터 특정 제 3 자(3P) 어댑터를 선택하고, 스마트 장치 제어 명령에 기초하여 선택하는 단계; 선택된 3P 어댑터를 사용하여 스마트 장치 제어 명령을 처리하여 일반 스마트 장치 제어 명령에 대응하고 스마트 장치에서 상태 변경을 수행하기 위해 스마트 장치에 의해 직접 해석 가능한 특정 명령을 생성하는 단계; 및 클라이언트 장치와 스마트 장치 사이에 설정된 신뢰성있는 통신 채널을 통해, 스마트 장치의 상태의 변경을 실행하기 위한 특정 명령을 전송하는 단계를 추가로 포함한다. 이러한 구현의 일부 버전에서, 방법은 일반 스마트 장치 제어 명령을 식별하기 전에: 클라이언트 장치 및 원격 서버에서 특정 3P 어댑터를 수신하는 단계를 더 포함하며, 여기서 특정 3P 어댑터를 수신하는 것은 스마트 장치 또는 클라이언트 장치에 등록되어 있는 3P의 추가 스마트 장치에 응답한다. 이러한 구현의 일부 추가 또는 대안 버전에서, 방법은 일반 스마트 장치 제어 명령을 식별하기 전에: 특정 명령을 생성하기 위해 선택된 3P 어댑터를 사용하여 스마트 장치 제어 명령을 처리 할 때 대기 시간을 줄이기 위해 클라이언트 장치에서 로컬로 특정 3P 어댑터를 선제적으로 실행하는 단계를 더 포함한다.
일부 구현에서, 신뢰성있는 통신 채널이 클라이언트 장치와 스마트 장치 사이에 설정되는지 여부를 결정하는 단계는, 클라이언트 장치와 스마트 장치 사이에 통신 채널이 설정되는지 여부를 결정하는 단계 및/또는 클라이언트 장치와 스마트 장치 사이에 설정된 통신 채널이 적어도 임계 신호 강도를 갖는지 여부를 결정하는 단계를 포함한다. 임의의 통신 채널이 설정되었는지 여부를 결정하고 통신 채널이 적어도 임계 신호 강도를 갖는지 여부를 결정하는 것은, 클라이언트 장치 대 스마트 장치 매핑을 기반으로 할 수 있고 및/또는 클라이언트 장치 대 스마트 장치 매핑의 가장 최근 업데이트 이후에 통신 채널을 통해 수신된 하나 이상의 신호를 기반으로 할 수 있다.
일부 구현에서, 설정된 신뢰성있는 통신 채널을 갖는 추가 클라이언트 장치를 스마트 장치에 해석하도록 클라이언트 장치에 로컬로 저장된 클라이언트 장치 대 스마트 장치 매핑에 액세스하는 단계는, 클라이언트 장치 대 스마트 장치 매핑에 기초하여, 추가 클라이언트 장치와 스마트 장치 간의 주어진 신호 강도가 클라이언트 장치 대 스마트 장치 매핑의 모든 클라이언트 장치 중에서 가장 크다고 결정하는 단계를 포함한다.
일부 구현에서, 스마트 장치에 대한 설정된 신뢰 할 수 있는 통신 채널은 블루투스 무선 채널이다.
일부 구현에서, 일반 스마트 장치 제어 명령은 클라이언트 장치에서 수신된 사용자 인터페이스 입력을 로컬로 처리함으로써 클라이언트 장치에서 로컬로 생성된다. 이들 구현 중 일부에서, 사용자 인터페이스 입력은 클라이언트 장치의 터치 스크린에서 스마트 장치에 대응하는 렌더링된 그래픽 사용자 인터페이스 요소와의 상호 작용이다.
일부 구현에서, 사용자 인터페이스 입력은 클라이언트 장치의 적어도 하나의 마이크를 통해 수신된 음성 입력이고, 사용자 인터페이스 입력을 로컬로 처리하는 것은 음성 입력을 텍스트로 변환하도록 음성-텍스트 변환 프로세서를 사용하는 것 및 일반 스마트 장치 제어 명령을 생성하도록 텍스트에 대한 자연어 이해를 수행하는 것을 포함한다.
일부 구현에서, 방법은 클라이언트 장치의 적어도 하나의 마이크로폰을 통해 음성 입력을 수신하는 단계 및 음성 입력을 원격 자동화 어시스턴트 시스템으로 스트리밍하는 단계를 더 포함한다. 이러한 구현의 일부 버전에서, 일반 스마트 장치 제어 명령을 식별하는 단계는, 음성 입력을 원격 자동화 어시스턴트 시스템으로 스트리밍하는 것에 응답하여 원격 자동화 어시스턴트 클라이언트로부터 일반 스마트 장치 제어 명령을 수신하는 단계를 포함한다.
일부 구현에서, 자동화 어시스턴트 클라이언트를 실행하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법이 제공되고, 클라이언트 장치에서 로컬로, 대응하는 3P에 의해 생성된 복수의 제 3 자(3P) 어댑터 각각을 선제적으로 실행하는 단계를 포함한다. 각각의 3P 어댑터는 대응하는 복수의 일반 스마트 장치 제어 명령 각각을, 3P의 적어도 하나의 대응하는 스마트 장치에 로컬로 전송될 때, 대응하는 스마트 장치에서 상태 변경을 수행하기 위해, 대응하는 스마트 장치에 의해 또는 대응하는 스마트 장치에 의해 직접 제어되는 대응하는 추가 스마트 장치에 의해, 직접 해석될 수 있도록 각각 맞춤화되는, 대응하는 특정 명령으로 변환한다. 복수의 3P 어댑터는 클라이언트 장치에 대해 이전에 등록된 3P의 스마트 장치에 응답하여 클라이언트 장치에서 로컬로 선택적으로 선제적으로 실행된다. 방법은 적어도 하나의 특정 스마트 장치 및 특정 스마트 장치에서 변경될 적어도 하나의 상태를 지정하는 특정 일반 스마트 장치 제어 명령을 식별하는 단계를 더 포함한다. 방법은, 복수의 3P 어댑터로부터 특정 스마트 장치 제어 명령에 기초하여 특정 3P 어댑터를 선택하는 단계; 스마트 장치 제어 명령에 대응하는 특정 명령 중 특정 명령을 생성하기 위해 선택된 특정 3P 어댑터를 사용하여 특정 스마트 장치 제어 명령을 처리하는 단계; 자동화 어시스턴트 클라이언트 장치에서 이용 가능한 복수의 통신 채널로부터 특정 3P 어댑터에 할당된 특정 통신 채널을 선택하는 단계; 및 선택된 특정 통신 채널을 사용하여, 특정 스마트 장치에서 적어도 하나의 상태가 변경되게 하는 특정 구체적인 명령을 전송하는 단계를 더 포함한다.
기술의 이러한 및 다른 구현은 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 클라이언트 장치에서 선제적으로 실행하는 복수의 3P 어댑터는 클라이언트 장치에 저장된 이용 가능한 3P 어댑터의 서브 세트이다. 이들 구현 중 일부에서, 방법은 클라이언트 장치에서 선제적으로 실행하기 위해 이용 가능한 3P 어댑터로부터 특정 3P 어댑터를 선택하는 단계를 더 포함한다. 상기 선택하는 단계는, 예를 들어, 클라이언트 장치에서 특정 3P 어댑터의 대응하는 최근 사용률; 클라이언트 장치와 특정 3P 어댑터에 대응하는 특정 스마트 장치 사이의 통신 채널에 대한 신호 강도; 하루 중 시간; 및/또는 요일과 같은, 하나 이상의 동적 기준을 기반으로 할 수 있다.
일부 구현에서, 방법은 선제적으로 실행하기 전에: 클라이언트 장치 및 원격 서버로부터 특정 3P 어댑터를 수신하는 단계를 더 포함하고, 선택적으로 특정 스마트 장치 또는 클라이언트 장치에 등록된 3P의 추가 스마트 장치에 응답하는 것을 추가로 포함한다.
일부 구현에서, 클라이언트 장치에서 선제적으로 실행되는 3P 어댑터의 추가 3P 어댑터는 특정 통신 채널과는 다른 추가 특정 통신 채널에 할당된다. 이들 구현 중 일부에서, 특정 통신 채널은 클라이언트 장치의 제 1 무선 채널이고, 추가의 특정 통신 채널은 클라이언트 장치의 제 2 무선 채널이다. 예를 들어, 제1 무선 채널은 블루투스 채널 일 수 있고 제2 무선 채널은 Wi-Fi 무선 채널 일 수 있다.
일부 구현에서, 3P 어댑터에 의해 생성된 특정 구체적인 명령은 3P 어댑터의 특정 프로토콜 스위트와 클라이언트 장치에서 선제적으로 실행되는 3P 어댑터의 추가 3P 어댑터를 준수하고, 특정 통신 프로토콜 스위트와는 다른 추가 통신 프로토콜 스위트를 준수하는 명령을 생성한다. 이러한 구현 중 일부에서, 추가 3P 어댑터와 3P 어댑터는 모두 특정 통신 채널에 할당된다. 이러한 구현의 일부 버전에서, 3P 어댑터의 특정 프로토콜 스위트는 업계에서 채택한 표준을 따르지 않으며, 선택적으로 3P 소유일 수 있다.
일부 구현에서, 특정 일반 스마트 장치 제어 명령은 추가 클라이언트 장치에서 수신된 사용자 인터페이스 입력에 응답하여 생성되고, 특정 일반 스마트 장치 제어 명령을 식별하는 단계는: 로컬 네트워크 통신을 통해 추가 클라이언트 장치로부터 특정 일반적인 스마트 장치 명령을 수신하는 단계를 포함한다. 이러한 구현들 중 일부에서, 방법은 특정 일반 스마트 장치 제어 명령을 식별하기 전에: 클라이언트 장치와 특정 스마트 장치 사이의 특정 통신 채널에 대한 신호 강도를 결정하는 단계; 및 신호 강도를 나타내는 데이터를 전송하는 단계를 더 포함한다. 특정 일반적인 스마트 장치 명령은 신호 강도를 나타내는 전송된 데이터에 기초하여 추가 클라이언트 장치로부터 수신될 수 있다.
일부 구현에서, 복수의 3P 어댑터에서 특정 스마트 장치 제어 명령을 기반으로, 특정 3P 어댑터를 선택하는 단계는, 3P 어댑터의 식별자를 추가로 지정하는 일반 스마트 장치 제어 명령 및/또는 클라이언트 장치에서 3P 어댑터에 할당되는 일반 스마트 장치 제어 명령에 의해 지정된 특정 스마트 장치에 근거하여 3P 어댑터를 선택하는 단계를 포함한다.
일부 구현에서, 방법은 일반 스마트 장치 제어 명령에 기초하여, 특정 스마트 장치에 대한 주소를 식별하는 단계; 및 특정 구체적인 명령이 특정 스마트 장치에 대한 주소에만 어드레싱되는지 검증하는 단계를 더 포함한다. 선택된 특정 통신 채널을 사용하여 특정 스마트 장치 제어 명령을 전송하는 단계는 검증에 따라 달라질 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법으로서, 인터넷 액세스를 제공하는 보안 Wi-Fi 네트워크에 연결된 어시스턴트 클라이언트 장치의 에코시스템의 각 어시스턴트 클라이언트 장치가, 보안 Wi-Fi 네트워크에 연결하기 위한 자격 증명이 없는 스마트 장치에 의해 브로드 캐스트되는 액세스 포인트의 가용성을 위해 하나 이상의 통신 채널을 스캔하도록 하는 단계를 포함한다. 방법은 스캐닝에 의해 생성된 데이터에 기초하여, 클라이언트 장치의 에코시스템의 복수의 어시스턴트 클라이언트 장치 각각이 액세스 포인트의 가용성을 검출했는지 결정하는 단계를 더 포함한다. 방법은 액세스 포인트의 가용성을 검출한 복수의 어시스턴트 클라이언트 장치로부터 단일 어시스턴트 클라이언트 장치를 선택하는 단계를 더 포함한다. 복수의 어시스턴트 클라이언트 장치로부터 단일 어시스턴트 클라이언트 장치를 선택하는 단계는, 선택적으로 단일 어시스턴트 클라이언트 장치에 대한 인간 상호 작용 데이터에 적어도 부분적으로 기초할 수 있다. 방법은 단일 어시스턴트 클라이언트 장치가 보안 Wi-Fi 네트워크와의 연결을 끊고, 연결을 끊은 후 액세스 포인트를 통해 스마트 장치에 연결하고, 보안 Wi-Fi 네트워크에 연결하기 위한 자격 증명을 연결을 통해 스마트 장치와 안전하게 공유하도록 하는 단계를 더 포함한다.
본 명세서에 개시된 기술의 이러한 및 다른 구현은 다음의 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 단일 어시스턴트 클라이언트 장치를 선택하는 단계는 단일 어시스턴트 클라이언트 장치에 대한 인간 상호 작용 데이터에 적어도 부분적으로 기초 할 수 있으며, 사용자 인터페이스 입력이 임계 시간 내에 단일 어시스턴트 클라이언트 장치에서 수신되지 않았음을 나타내는 인간 상호 작용 데이터에 기초하여 단일 어시스턴트 클라이언트 장치를 선택하는 단계; 이전에 수신된 사용자 인터페이스 입력에 응답하여 어시스턴트 클라이언트 장치에 의해 어떠한 가청 출력도 렌더링되지 않음을 나타내는 인간 상호 작용 데이터에 기초하여 단일 어시스턴트 클라이언트 장치를 선택하는 단계; 및/또는 인간 상호 작용 데이터에 기초하여 단일 어시스턴트 클라이언트 장치가 설정 액세스 포인트를 검출한 복수의 어시스턴트 클라이언트 장치 중 임의의 다른 장치보다 덜 자주 사용된다는 것을 나타내는 단일 어시스턴트 클라이언트 장치를 선택하는 단계를 더 포함할 수 있다.
일부 구현에서, 방법은 보안 Wi-Fi 네트워크를 통해 스마트 장치로부터 등록 데이터를 수신하는 단계; 및 어시스턴트 클라이언트 장치의 에코시스템과 관련된 저장된 홈 그래프에 스마트 장치를 할당하도록 등록 데이터를 사용하는 단계를 포함한다. 이들 구현 중 일부에서, 저장된 홈 그래프에 스마트 장치를 할당하도록 등록 데이터를 사용하는 단계는, 저장된 홈 그래프와 관련된 계정에 대응하며, 에코시스템의 하나 이상의 어시스턴트 클라이언트 장치를 통해 검출된, 생체 데이터를 결정하는 것에 기초하여 저장된 홈 그래프에 스마트 장치를 할당하는 단계를 포함한다. 예를 들어, 저장된 홈 그래프는 어시스턴트 클라이언트 장치의 에코시스템과 연관되고, 추가 계정과 연관되는 추가 홈 그래프 대신 생체 데이터에 기초하여 선택될 수 있다. 다양한 구현에서 생체 데이터는 에코시스템의 하나 이상의 어시스턴트 클라이언트 장치의 하나 이상의 마이크로폰을 통해 검출된 음성 데이터를 포함한다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 각각이 대응하는 근거리 라디오를 갖는 복수의 어시스턴트 클라이언트 장치들 각각으로부터, 근거리 라디오를 통해 스마트 장치로 대응하는 연결에 대한 대응 신호 강도를 수신하는 단계를 포함한다. 방법은 수신된 신호 강도에 기초하여, 복수의 어시스턴트 장치 중 주어진 어시스턴트 장치가 스마트 장치를 로컬로 제어하기 위해 선호되는 것으로 결정하는 단계를 더 포함한다. 방법은 적어도 하나의 스마트 장치 및 스마트 장치에서 변경될 적어도 하나의 상태를 지정하는 일반 스마트 장치 제어 명령을 식별하는 단계를 더 포함한다. 방법은 주어진 어시스턴트 장치가 스마트 장치를 로컬로 제어하기 위해 선호된다는 결정에 기초하여, 주어진 어시스턴트 장치가: 일반 스마트 장치 제어 명령을 로컬로 처리하여 일반 스마트 장치 제어 명령에 대응하고 스마트 장치에서 상태 변경을 수행하기 위해 스마트 장치에 의해 직접 해석 가능한 특정 명령을 생성하고, 그리고 근거리 라디오를 통해 특정 명령을 전송하여 스마트 장치에서 상태 변경을 수행하도록, 일반 스마트 장치 제어 명령을 주어진 어시스턴트 장치로 전송하는 단계를 더 포함할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 어시스턴트 클라이언트 장치의 에코시스템의 각 어시스턴트 클라이언트 장치가 임의의 프로비저닝되지 않은 스마트 장치에 대해 하나 이상의 통신 채널을 스캔하게 하는 단계를 포함한다. 방법은 스캐닝에 의해 생성된 데이터에 기초하여, 클라이언트 장치의 에코시스템의 적어도 주어진 어시스턴트 클라이언트 장치가 프로비저닝되지 않은 주어진 스마트 장치를 검출했는지를 결정하는 단계를 더 포함한다. 방법은 어시스턴트 클라이언트 장치와 연관된 자동화 어시스턴트에 대한 스키마에 있는 등록 정보를 생성하도록, 주어진 스마트 장치에 의해 3P 용 형식으로 제공된 등록 데이터를 처리하기 위해 주어진 어시스턴트 클라이언트 장치가 로컬에 저장된 제 3 자(3P) 어댑터를 이용하게 하는 단계를 더 포함한다. 방법은 어시스턴트 클라이언트 장치의 에코시스템과 관련된 계정과 관련하여 주어진 어시스턴트 클라이언트 장치를 등록하기 위해 등록 정보를 이용하는 단계를 더 포함한다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 각각이 대응하는 근거리 라디오를 갖는 복수의 어시스턴트 클라이언트 장치들 각각으로부터, 근거리 라디오를 통해 스마트 장치로 대응하는 연결에 대한 대응 신호 강도를 수신하는 단계를 포함한다. 방법은 수신된 신호 강도에 기초하여, 복수의 어시스턴트 장치 중 주어진 어시스턴트 장치가 스마트 장치를 로컬로 제어하기 위해 선호되는 것을 결정하는 단계를 더 포함한다. 방법은, 주어진 어시스턴트 장치가 로컬로 스마트 장치를 제어하기 위해 선호된다는 결정에 기초하여, 스마트 장치에 대응하는하는 특정 제 3 자(3P) 어댑터가 대응하는 어시스턴트 장치에 다운로드하고 로컬에 저장하게 하는 단계를 더 포함한다. 예를 들어 특정 3P 어댑터는, 일반 스마트 장치 제어 명령에 대응하는하고 스마트 장치의 상태를 변경하기 위해 스마트 장치에서 직접 해석할 수 있는 특정 명령을 생성하도록, 일반 스마트 장치 제어 명령을 로컬로 처리하도록 구성할 수 있다.
본 명세서에 개시된 기술의 이러한 및 다른 구현은 다음의 특징 중 하나 이상을 포함할 수 있다.
방법은, 주어진 어시스턴트 장치가 스마트 장치를 로컬로 제어하기 위해 선호된다는 결정에 기초하여, 특정 3P 어댑터가 주어진 어시스턴트 장치에서 선제적으로 실행되도록 하는 단계를 더 포함할 수 있다.
일부 구현에서, 특정 3P 어댑터는 주어진 어시스턴트 장치가 스마트 장치를 로컬로 제어하기 위해 선호된다는 결정에 기초하여 다른 스마트 장치를 제외하고 주어진 어시스턴트 장치에만 다운로드된다.

Claims (40)

  1. 자동화 어시스턴트 클라이언트를 실행하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
    적어도 하나의 스마트 장치 및 스마트 장치에서 변경될 적어도 하나의 상태를 지정하는 일반(generic) 스마트 장치 제어 명령을 식별하는 단계, 상기 일반 스마트 장치 제어 명령은 클라이언트 장치에서 수신된 사용자 인터페이스 입력에 응답하여 생성되고;
    적어도 임계 신호 강도를 갖는 신뢰성있는 통신 채널이 클라이언트 장치와 스마트 장치 사이에 설정되었는지 여부를 결정하는 단계;
    신뢰성있는 통신 채널이 클라이언트 장치와 스마트 장치 사이에 설정되지 않았다는 결정에 응답하여:
    스마트 장치에 대한 설정된 신뢰성있는 통신 채널을 가진 추가 클라이언트 장치를 확인(resolve)하기 위해, 클라이언트 장치에 로컬로 저장된 클라이언트 장치 대 스마트 장치 매핑에 액세스하는 단계; 및
    로컬 네트워크를 통해, 추가 클라이언트 장치가:
    일반 스마트 장치 제어 명령을 로컬로 처리하여 일반 스마트 장치 제어 명령에 대응하고 스마트 장치에서 상태 변경을 수행하기 위해 스마트 장치에 의해 직접 해석 가능한 특정 명령을 생성하고, 그리고
    설정된 신뢰성있는 통신 채널을 통해 특정 명령을 전송하여 스마트 장치에서 상태 변경을 수행하도록 일반 스마트 장치 제어 명령을 추가 클라이언트 장치로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    신뢰성있는 통신 채널이 클라이언트 장치와 스마트 장치 사이에 설정되었다는 결정에 응답하여:
    클라이언트 장치에서 로컬로 실행 가능한 복수의 제3자(3P) 어댑터로부터 특정 3P 어댑터를 선택하는 단계, 상기 선택하는 단계는 스마트 장치 제어 명령에 기초하고;
    일반 스마트 장치 제어 명령에 대응하고 스마트 장치에서 상태 변경을 수행하기 위해 스마트 장치에 의해 직접 해석 가능한 특정 명령을 생성하기 위해 상기 선택된 3P 어댑터를 사용하여 스마트 장치 제어 명령을 처리하는 단계; 및
    클라이언트 장치와 스마트 장치 사이에 설정된 신뢰성있는 통신 채널을 통해, 스마트 장치에서 상태 변경을 수행하도록 특정 명령을 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 일반 스마트 장치 제어 명령을 식별하기 전에,
    클라이언트 장치에서 원격 서버로부터 특정 3P 어댑터를 수신하는 단계를 더 포함하고,
    상기 특정 3P 어댑터를 수신하는 단계는 클라이언트 장치에 등록되는 스마트 장치 또는 3P의 추가 스마트 장치에 응답하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 일반 스마트 장치 제어 명령을 식별하기 전에,
    특정 명령을 생성하도록 상기 선택된 3P 어댑터를 사용하여 스마트 장치 제어 명령을 처리할 때 대기 시간을 줄이기 위해 상기 클라이언트 장치에서 로컬로 특정 3P 어댑터를 선제적으로 실행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 신뢰성있는 통신 채널이 클라이언트 장치와 스마트 장치 사이에 설정되었는지 여부를 결정하는 단계는,
    임의의 통신 채널이 클라이언트 장치와 스마트 장치 사이에 설정되었는지 여부를 결정하는 단계; 또는
    클라이언트 장치와 스마트 장치 사이에 설정된 통신 채널이 적어도 임계 신호 강도를 갖는지 여부를 결정하는 단계 중 하나 또는 둘 다를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 임의의 통신 채널이 설정되었는지 여부를 결정하는 단계 및 통신 채널이 적어도 임계 신호 강도를 갖는지 여부를 결정하는 단계는,
    각각 클라이언트 장치 대 스마트 장치 매핑에 기초하는 것을 특징으로 하는 방법.
  7. 제5항에 있어서,
    상기 임의의 통신 채널이 설정되었는지 여부를 결정하는 단계 및 통신 채널이 적어도 임계 신호 강도를 갖는지 여부를 결정하는 단계는,
    각각 클라이언트 장치 대 스마트 장치 매핑의 가장 최근 업데이트 이후에 통신 채널을 통해 수신된 하나 이상의 신호에 기초하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 스마트 장치에 대한 상기 신뢰성있는 통신 채널이 설정된 추가 클라이언트 장치를 확인하기 위해, 클라이언트 장치에 로컬로 저장된 클라이언트 장치 대 스마트 장치 매핑에 액세스하는 단계는,
    클라이언트 장치 대 스마트 장치 매핑에 기초하여, 추가 클라이언트 장치와 스마트 장치 사이의 주어진 신호 강도가 클라이언트 장치 대 스마트 장치 매핑의 모든 클라이언트 장치 중에서 가장 크다고 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 스마트 장치에 대한 상기 설정된 신뢰성있는 통신 채널은 블루투스 무선 채널인 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 일반 스마트 장치 제어 명령은,
    클라이언트 장치에서 수신된 사용자 인터페이스 입력을 로컬로 처리함으로써 클라이언트 장치에서 로컬로 생성되는 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 사용자 인터페이스 입력은,
    클라이언트 장치의 터치 스크린에서, 스마트 장치에 대응하는 렌더링된 그래픽 사용자 인터페이스 요소와의 상호 작용인 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    상기 사용자 인터페이스 입력은 클라이언트 장치의 적어도 하나의 마이크로폰을 통해 수신된 음성 입력이고, 그리고
    상기 사용자 인터페이스 입력을 로컬로 처리하는 단계는 음성 입력을 텍스트로 변환하도록 음성-텍스트 변환 프로세서를 사용하는 단계, 및 일반 스마트 장치 제어 명령을 생성하기 위해 텍스트에 대한 자연어 이해를 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    클라이언트 장치의 적어도 하나의 마이크로폰을 통해 음성 입력을 수신하는 단계; 및
    음성 입력을 원격 자동화 어시스턴트 시스템으로 스트리밍하는 단계를 더 포함하고,
    상기 일반 스마트 장치 제어 명령을 식별하는 단계는 음성 입력을 원격 자동화 어시스턴트 시스템으로 스트리밍하는 것에 응답하여 원격 자동화 어시스턴트 클라이언트로부터 일반 스마트 장치 제어 명령을 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
KR1020207037838A 2018-10-08 2019-10-08 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록 KR102636605B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247004411A KR20240024315A (ko) 2018-10-08 2019-10-08 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862742826P 2018-10-08 2018-10-08
US62/742,826 2018-10-08
PCT/US2019/055177 WO2020076816A1 (en) 2018-10-08 2019-10-08 Control and/or registration of smart devices, locally by an assistant client device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247004411A Division KR20240024315A (ko) 2018-10-08 2019-10-08 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록

Publications (2)

Publication Number Publication Date
KR20210014692A KR20210014692A (ko) 2021-02-09
KR102636605B1 true KR102636605B1 (ko) 2024-02-15

Family

ID=68318982

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020247004411A KR20240024315A (ko) 2018-10-08 2019-10-08 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록
KR1020207037838A KR102636605B1 (ko) 2018-10-08 2019-10-08 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020247004411A KR20240024315A (ko) 2018-10-08 2019-10-08 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록

Country Status (6)

Country Link
US (2) US11700141B2 (ko)
EP (1) EP3679690A1 (ko)
JP (2) JP7106686B2 (ko)
KR (2) KR20240024315A (ko)
CN (2) CN112335204B (ko)
WO (1) WO2020076816A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112335204B (zh) 2018-10-08 2022-06-03 谷歌有限责任公司 由助理客户端设备本地控制和/或注册智能设备
KR102581347B1 (ko) * 2019-10-15 2023-09-22 구글 엘엘씨 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어
KR20210079061A (ko) * 2019-12-19 2021-06-29 엘지전자 주식회사 정보 처리 방법 및 정보 처리 장치
US11700226B2 (en) 2020-08-03 2023-07-11 Google Llc Sending messages from smart speakers and smart displays via smartphones
EP4268481A1 (en) * 2020-12-22 2023-11-01 Cerence Operating Company Platform for integrating disparate ecosystems within a vehicle
US11885632B2 (en) * 2021-04-15 2024-01-30 Google Llc Conditional preparation for automated assistant input from a user in a vehicle
CN116935841A (zh) * 2022-03-31 2023-10-24 华为技术有限公司 语音控制的方法和电子设备
US20230418457A1 (en) * 2022-06-24 2023-12-28 Trent FARRER Central control hub for entertainment system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120331156A1 (en) * 2011-06-21 2012-12-27 Colpitts Cameron Wireless control system, methods and apparatus

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7987489B2 (en) * 2003-01-07 2011-07-26 Openpeak Inc. Legacy device bridge for residential or non-residential networks
WO2006015245A2 (en) 2004-07-29 2006-02-09 Modius, Inc. Universal configurable device gateway
US7584433B2 (en) * 2005-04-20 2009-09-01 Avp Ip Holding Co., Llc. Extendible and open camera connector system
WO2007105838A1 (en) * 2006-03-14 2007-09-20 Korea Institute Of Science And Technology A intelligent computing device agent system for automatic recognition of multi user computing environment and information sharing setup
US20080183307A1 (en) * 2007-01-26 2008-07-31 Autani Corporation Upgradeable Automation Devices, Systems, Architectures, and Methods
EP2031912B1 (en) 2007-07-27 2013-01-09 Research In Motion Limited Wireless communication systems
US10075334B1 (en) * 2012-04-11 2018-09-11 Google Llc Systems and methods for commissioning a smart hub device
CN103095941B (zh) * 2012-12-26 2016-08-31 鸿富锦精密工业(深圳)有限公司 智能适配器及应用该智能适配器的远程遥控系统
US20140304430A1 (en) * 2013-04-04 2014-10-09 Cooler Master Co., Ltd. Profile-configurable peripheral device and related system
US9454251B1 (en) * 2013-06-26 2016-09-27 Google Inc. Methods, systems, and media for controlling a remote device using a touch screen of a mobile device in a display inhibited state
CN104426750A (zh) 2013-09-11 2015-03-18 腾讯科技(深圳)有限公司 即时通信方法、设备及系统
KR102202660B1 (ko) * 2013-09-23 2021-01-13 삼성전자주식회사 스마트 홈 서비스를 위한 기기들을 제어하는 방법 및 장치
GB201317294D0 (en) 2013-09-30 2013-11-13 Microsoft Corp Device pairing
US10177933B2 (en) * 2014-02-05 2019-01-08 Apple Inc. Controller networks for an accessory management system
KR101706138B1 (ko) * 2014-02-05 2017-02-13 애플 인크. 제어기와 액세서리 사이의 통신을 위한 균일한 통신 프로토콜
KR102309027B1 (ko) * 2014-02-17 2021-10-06 삼성전자 주식회사 통합 표시 방법 및 휴대장치
US10097984B2 (en) * 2014-04-01 2018-10-09 Belkin International, Inc. IoT device environment detection, identification and caching
CN105100848B (zh) 2014-04-21 2020-05-22 索尼公司 智能设备、智能设备控制系统及其实现方法
US10170123B2 (en) * 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9713231B2 (en) * 2014-06-27 2017-07-18 Belkin International Inc. Light switch controlling light source via wireless transmission
JP6313140B2 (ja) 2014-06-30 2018-04-18 株式会社東芝 通信装置及びマルチホッピングネットワーク
US10111071B2 (en) * 2014-09-19 2018-10-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Bluetooth low energy automation mesh network
US9680646B2 (en) * 2015-02-05 2017-06-13 Apple Inc. Relay service for communication between controllers and accessories
FR3035560B1 (fr) * 2015-04-21 2021-03-05 Overkiz Procedes de configuration, de supervision et de commande d’au moins une installation domotique d’un batiment
GB201507594D0 (en) * 2015-05-01 2015-06-17 Intamac Systems Ltd Intamac 1
KR102401645B1 (ko) * 2015-05-22 2022-05-25 삼성전자주식회사 전자 장치 및 게이트웨이와 그 제어 방법
FR3037166B1 (fr) * 2015-06-04 2018-07-06 Overkiz Procedes de generation de module de code logiciel conditionnel et procede de controle d’au moins une installation domotique d’un batiment
US9800664B2 (en) 2015-06-23 2017-10-24 Harman International Industries, Incorporated Wireless connection management
JP6650475B2 (ja) * 2015-06-30 2020-02-19 ケー4コネクト インコーポレイテッド デバイス署名ペアリングを含むホームオートメーションシステム及び関連方法
CN105611045A (zh) * 2015-12-17 2016-05-25 小米科技有限责任公司 设备控制方法及装置
WO2017141219A1 (en) * 2016-02-18 2017-08-24 Tekoia Ltd. Architecture for remote control of iot (internet of things) devices
EP3226603A1 (en) * 2016-03-28 2017-10-04 Network Performance Research Group LLC Method and apparatus for directed adaptive control of access point-to-client interaction in wireless networks
US10270610B2 (en) * 2016-06-12 2019-04-23 Apple Inc. Selection of a coordinator device for an automated environment
CN106027542A (zh) * 2016-06-21 2016-10-12 杭州古北电子科技有限公司 一种使wifi模块能适配不同厂家设备通讯协议的方法
FR3061390B1 (fr) * 2016-12-28 2022-12-16 Overkiz Procede de configuration, de controle ou de supervision d’une installation domotique
US20200081856A1 (en) * 2017-01-12 2020-03-12 Mitsubishi Electric Corporation Interface device
US10812993B2 (en) * 2017-07-31 2020-10-20 Silicon Laboratories Inc. Systems and methods for configuring and providing mesh communication between wireless devices
US10713007B2 (en) * 2017-12-12 2020-07-14 Amazon Technologies, Inc. Architecture for a hub configured to control a second device while a connection to a remote system is unavailable
US11109425B2 (en) * 2018-08-24 2021-08-31 Ledvance Llc Bluetooth low energy backed smart lighting system
CN112335204B (zh) 2018-10-08 2022-06-03 谷歌有限责任公司 由助理客户端设备本地控制和/或注册智能设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120331156A1 (en) * 2011-06-21 2012-12-27 Colpitts Cameron Wireless control system, methods and apparatus

Also Published As

Publication number Publication date
EP3679690A1 (en) 2020-07-15
CN112335204B (zh) 2022-06-03
KR20240024315A (ko) 2024-02-23
CN112335204A (zh) 2021-02-05
CN114978792A (zh) 2022-08-30
WO2020076816A1 (en) 2020-04-16
US20230353412A1 (en) 2023-11-02
JP2021530762A (ja) 2021-11-11
US11700141B2 (en) 2023-07-11
JP7106686B2 (ja) 2022-07-26
KR20210014692A (ko) 2021-02-09
US20200412566A1 (en) 2020-12-31
JP2022153462A (ja) 2022-10-12

Similar Documents

Publication Publication Date Title
KR102636605B1 (ko) 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록
JP7198861B2 (ja) ホームオートメーションのためのインテリジェントアシスタント
KR102581347B1 (ko) 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어
KR102448387B1 (ko) 스마트 디바이스들의 효율적인 제어 및/또는 연결
KR20170030386A (ko) 음성 인식을 이용한 닉네임 관리 장치 및 방법
JP2018518746A (ja) コントローラベースのデバイスのグループに対する自動的なソフトウェア開発のための方法および装置
JP2022033744A (ja) IoTベースの通知の生成、およびクライアントデバイスの自動化アシスタントクライアントによるIoTベースの通知の自動レンダリングを引き起こすコマンドの提供
TWI684949B (zh) 用於參與及回應應用程式的邀約方法和裝置
KR20150086914A (ko) 서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right