# US 10,455,029 B2 · Internet of things (IOT) device discovery platform

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,455,029 B2
- Document ID: US10455029B2
- Status: Granted
- Kind: B2
- Application number: 15/858,190
- Filed: 2017-12-29
- Published: 2019-07-04
- Granted: 2019-10-22
- Earliest claimed: 2017-12-29
- Applicants: DISH Network L.L.C.
- Inventors: Jeffrey Jablonski
- Web page: https://patentgrep.com/patent/US10455029B2

## CPC

- G06Q 20/308: {using the Internet of Things}
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- G06F 40/247: Thesauruses; Synonyms
- G06F 40/268: Morphological analysis
- G06F 40/284: Lexical analysis, e.g. tokenisation or collocates
- G06F 40/58: Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
- G06Q 20/085: {involving remote charge determination or related payment systems}
- G06Q 20/321: {using wearable devices}
- H04L 41/22: comprising specially adapted graphical user interfaces [GUI]
- H04L 67/12: specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L 67/125: involving control of end-device applications over a network
- H04L 69/18: Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
- G06Q 20/02: involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
- G06Q 20/28: Pre-payment schemes, e.g. "pay before"
- G06Q 20/4014: {Identity check for transactions}
- H04L 67/52: specially adapted for the location of the user terminal
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques described herein include a communication and device discovery platform though which Internet of Things (IoT) devices may discover other IoT devices, ascertain device statuses, purposes, and the functions and operations supported by other IoT devices, and collaborate with other IoT devices to request and initiate particular functions and operations. Using the platform and corresponding functionality described herein, an IoT device may announce to another nearby IoT devices its general description, availability, required permissions, as well as a listing and description of functions it may perform. Other authorized IoT devices may make use of the broadcasted functions, using artificial intelligence, natural language processing, and additional techniques that enable independent and decentralized IoT devices to discover the purposes, supported functions and operations, and invoke the functionality of other IoT devices.

## Claims

### Claim 1

An Internet of Things (IoT) controller device, comprising:
a processing unit comprising one or more processors; and
memory comprising one or more computer-readable storage media coupled to the processing unit, the storage media storing therein computer executable instructions, which, when executed by the processing unit, causes the IoT controller device to:
receive, via a first user input component of the IoT controller device, a natural language input identifying a requested task to be performed using one or more devices separate from the IoT controller device;
receive, from each of a plurality of IoT thing devices, a communication including a device identifier and a natural language description of the IoT thing device;
select a first IoT thing device from the plurality of IoT thing devices to perform at least a portion of the requested task based on a comparison of the natural language input identifying the requested task to the natural language description received from the first IoT thing device;
receive, from the first IoT thing device, via the one or more network interfaces, a natural language listing of each of a plurality of operations supported by the first IoT thing device;
select a first operation from the plurality of operations supported by the first IoT thing device based on a comparison of the natural language input identifying the requested task to the natural language listing of the operations supported by the first IoT thing device;
receive, from the first IoT thing device, payment data and authentication data associated with performance of the first operation by the first IoT thing device, the payment data comprising a payment recipient identifier;
transmit an instruction to the first IoT thing device, via the one or more network interfaces, to initiate the first operation using the first IoT thing device; and
send, in association with transmitting the instruction, a prerequisite payment in accordance with the payment data and a prerequisite authentication in accordance with the authentication data.

### Claim 2 (depends on 1)

The Internet of Things (IoT) controller device of claim 1, wherein comparing the natural language input identifying the requested task to the natural language description received from the first IoT thing device comprises:
(a) performing at least one of a word match analysis and a synonym match analysis between the natural language input identifying the requested task, and the natural language description received from the first IoT thing device; and
(b) in response to the at least one of the word match analysis or the synonym match analysis being unsuccessful, determining whether the first IoT thing device is capable of performing the requested task, by performing at least one of:
(i) transmitting a request to the first IoT thing device for the natural language listing of the operations supported by the first IoT thing device, and determining based on the natural language listing of the operations whether the first IoT thing device is capable of performing the requested task;
(ii) transmitting a request to a cloud-based data repository identifying the first IoT thing device, and receiving a response indicating whether the first IoT thing device is capable of performing the requested task; or
(iii) displaying, via a user interface on the IoT controller device, the natural language description received from the first IoT thing device, and receiving a response via the user input component indicating whether the first IoT thing device is capable of performing the requested task.

### Claim 3 (depends on 1)

The Internet of Things (IoT) controller device of claim 1, the storage media storing therein further computer executable instructions, which, when executed by the processing unit, causes the IoT controller device to:
prior to transmitting the instruction to the first IoT thing device to initiate the first operation:
transmit a request to a cloud-based data repository identifying the first IoT thing device; and
receive a response from the cloud-based data repository including operation history data for the first IoT thing device.

### Claim 4 (depends on 1)

The Internet of Things (IoT) controller device of claim 1, the storage media storing therein further computer executable instructions, which, when executed by the processing unit, causes the IoT controller device to:
send the prerequisite payment via a third-party payment service, using the payment recipient identifier, in the amount of a price, wherein the payment data identifies the third-party payment service and the price; and
send the prerequisite authentication via an authentication method identified by the authentication data and associated with the initiation of the first operation by the IoT thing device.

### Claim 5 (depends on 4)

The Internet of Things (IoT) controller device of claim 4, wherein sending the prerequisite payment for the initiation of the first operation comprises:
comparing the price received from the first IoT thing device for initiation of the first operation, to a predetermined price threshold stored at the IoT controller device; and
in response to a determination that the received price is not greater than the predetermined price threshold, sending the prerequisite payment for the initiation of the first operation, without receiving an express user authorization specific to the payment from a user of the IoT controller device.

### Claim 6 (depends on 4)

The Internet of Things (IoT) controller device of claim 4, wherein sending the prerequisite payment for the initiation of the first operation comprises:
comparing the price received from the first IoT thing device for initiation of the first operation, to a predetermined price threshold stored at the IoT controller device; and
in response to a determination that the received price is greater than the predetermined price threshold, requesting authorization for the payment via a user interface on the IoT controller device, and receiving via the user interface express user authorization specific to the payment.

### Claim 7 (depends on 1)

The Internet of Things (IoT) controller device of claim 1, wherein selecting the first IoT thing device to perform at least a portion of the requested task comprises:
determining that two or more of the plurality of IoT thing devices, including the first IoT thing device, are capable of performing the requested task;
receiving, from each of the two or more IoT thing devices, payment data associated with the requested task; and
selecting the first IoT thing device to perform the requested task based on the payment data received from the two or more IoT thing devices.

### Claim 8 (depends on 1)

The Internet of Things (IoT) controller device of claim 1, the storage media storing therein further computer executable instructions, which, when executed by the processing unit, causes the IoT controller device to:
receive location coordinate data from each of the plurality of IoT thing devices in proximity to the IoT controller device, wherein the location coordinate data is transmitted from each particular IoT thing device in the communication including the device identifier and the natural language description of the particular IoT thing device.

### Claim 9 (depends on 1)

The Internet of Things (IoT) controller device of claim 1, the storage media storing therein further computer executable instructions, which, when executed by the processing unit, causes the IoT controller device to:
receive current status data from each of the plurality of IoT thing devices in proximity to the IoT controller device, wherein the current status data is transmitted from each particular IoT thing device in the communication including the device identifier and the natural language description of the particular IoT thing device,
wherein the selection of the first IoT thing device to perform at least a portion of the requested task is based on the current status data received from the first IoT thing device.

### Claim 10 (depends on 1)

The Internet of Things (IoT) controller device of claim 1, the storage media storing therein further computer executable instructions, which, when executed by the processing unit, causes the IoT controller device to:
in response to selecting the first IoT thing device to perform at least a portion of the requested task, transmit a request to the first IoT thing for the operations supported by the first IoT thing device; and
receive the natural language listing of the plurality of operations supported by the first IoT thing device, from the first IoT thing device via a second communication after the selection of the first IoT thing device to perform at least a portion of the requested task.

### Claim 11

A method of performing requested tasks by an IoT controller device, using one or more devices separate from the IoT controller device, the method comprising:
receiving, by an IoT controller device, a natural language input identifying a requested task to be performed using one or more devices separate from the IoT controller device;
receiving, by the IoT controller device from each of a plurality of IoT thing devices, a communication including a device identifier and a natural language description of the IoT thing device;
selecting, by the IoT controller device, a first IoT thing device from the plurality of IoT thing devices to perform at least a portion of the requested task based on a comparison of the natural language input identifying the requested task to the natural language description received from the first IoT thing device;
receiving, by the IoT controller device, from the first IoT thing device, a natural language listing of each of a plurality of operations supported by the first IoT thing device;
select, by the IoT controller device, a first operation from the plurality of operations supported by the first IoT thing device based on a comparison of the natural language input identifying the requested task to the natural language listing of the operations supported by the first IoT thing device;
receiving, by the IoT controller device, from the first IoT thing device, payment data and authentication data associated with performance of the first operation by the first IoT thing device, the payment data comprising a payment recipient identifier;
transmitting, by the IoT controller device, an instruction to the first IoT thing device to initiate the first operation using the first IoT thing device; and
sending, in association with the transmitting, a prerequisite payment in accordance with the payment data and a prerequisite authentication in accordance with the authentication data.

### Claim 12 (depends on 11)

The method of claim 11, wherein comparing the natural language input identifying the requested task to the natural language description received from the first IoT thing device comprises:
(a) performing at least one of a word match analysis and a synonym match analysis between the natural language input identifying the requested task, and the natural language description received from the first IoT thing device; and
(b) in response to the at least one of the word match analysis or the synonym match analysis being unsuccessful, determining whether the first IoT thing device is capable of performing the requested task, by performing at least one of:
(i) transmitting a request to the first IoT thing device for the natural language listing of the operations supported by the first IoT thing device, and determining based on the natural language listing of the operations whether the first IoT thing device is capable of performing the requested task;
(ii) transmitting a request to a cloud-based data repository identifying the first IoT thing device, and receiving a response indicating whether the first IoT thing device is capable of performing the requested task; or
(iii) displaying, via a user interface on the IoT controller device, the natural language description received from the first IoT thing device, and receiving a response via the user input component indicating whether the first IoT thing device is capable of performing the requested task.

### Claim 13 (depends on 11)

The method of claim 11, further comprising:
prior to transmitting the instruction to the first IoT thing device to initiate the first operation:
transmitting a request to a cloud-based data repository identifying the first IoT thing device; and
receiving a response from the cloud-based data repository including operation history data for the first IoT thing device.

### Claim 14 (depends on 11)

The method of claim 11, wherein:
the payment data identifies a third-party payment service and a price; and
sending the prerequisite payment is via the third-party payment service, using the payment recipient identifier, in the amount of the price.

### Claim 15 (depends on 14)

The method of claim 14, wherein sending the prerequisite payment for the initiation of the first operation comprises:
comparing the price received from the first IoT thing device for initiation of the first operation, to a predetermined price threshold stored at the IoT controller device; and
in response to a determination that the received price is not greater than the predetermined price threshold, sending the prerequisite payment for the initiation of the first operation, without receiving an express user authorization specific to the payment from a user of the IoT controller device.

### Claim 16 (depends on 14)

The method of claim 14, wherein sending the prerequisite payment for the initiation of the first operation comprises:
comparing the price received from the first IoT thing device for initiation of the first operation, to a predetermined price threshold stored at the IoT controller device; and
in response to a determination that the received price is greater than the predetermined price threshold, requesting authorization for the payment via a user interface on the IoT controller device, and receiving via the user interface express user authorization specific to the payment.

### Claim 17 (depends on 11)

The method of claim 11, wherein selecting the first IoT thing device to perform at least a portion of the requested task comprises:
determining that two or more of the plurality of IoT thing devices, including the first IoT thing device, are capable of performing the requested task;
receiving, from each of the two or more IoT thing devices, payment data associated with the requested task; and
selecting the first IoT thing device to perform the requested task based on the payment data received from the two or more IoT thing devices.

### Claim 18 (depends on 11)

The method of claim 11, further comprising:
receiving location coordinate data from each of the plurality of IoT thing devices in proximity to the IoT controller device, wherein the location coordinate data is transmitted from each particular IoT thing device in the communication including the device identifier and the natural language description of the particular IoT thing device.

### Claim 19 (depends on 11)

The method of claim 11, further comprising:
receiving current status data from each of the plurality of IoT thing devices in proximity to the IoT controller device, wherein the current status data is transmitted from each particular IoT thing device in the communication including the device identifier and the natural language description of the particular IoT thing device,
wherein the selection of the first IoT thing device to perform at least a portion of the requested task is based on the current status data received from the first IoT thing device.

### Claim 20 (depends on 11)

The method of claim 11, further comprising:
in response to selecting the first IoT thing device to perform at least a portion of the requested task, transmitting a request to the first IoT thing for the operations supported by the first IoT thing device; and
receiving the natural language listing of the plurality of operations supported by the first IoT thing device, from the first IoT thing device via a second communication after the selection of the first IoT thing device to perform at least a portion of the requested task.
