IP Library Granted Patent US 9,491,571
Granted Patent B2
US 9,491,571 · App. 14/722,003 · Granted Nov 8, 2016

Methods and apparatus for using smart environment devices via application program interfaces

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,491,571
App. No.
14/722,003
Granted
Nov 8, 2016
Kind
B2
Abstract

Systems and Methods disclosed herein relate to providing a message to an application programming interface (API). The message includes a request for data from a data model, a submission of data to the data model, or both; and a host selection between: a representational state transfer (REST) host and a subscription-based application programming interface (API) host, wherein the REST host receives REST-based messages and the subscription-based API host receives messages in accordance with a standard of the subscription-based API host; wherein the request for data, the submission of data, or both are configured to create, delete, modify, or any combination thereof data related to a smart-device environment structure, a thermostat, a hazard detector, or any combination thereof stored in a data model accessible by the API.

Claims (61)

1. A system, comprising:

a processor configured to:

provide a message to an application programming interface (API), wherein the message comprises:

a request for data from a data model, a submission of data to the data model, or both; and

a host and protocol selection indication, the host and protocol selection indication providing an indication between:

a representational state transfer (REST) host, and

a subscription-based application programming interface (API) host,

wherein the REST host receives REST-based messages and the subscription-based API host receives messages in accordance with a standard of the subscription-based API host; and

receive a response message from the API via:

the REST host, when the host and protocol selection comprises the REST host; or

the subscription-based API host, when the host and protocol selection comprises the subscription-based host;

wherein the data model comprises information related to one or more smart-devices, one or more smart-device environment structures comprising the smart-devices, or both.

2. The system of claim 1 , comprising the data model, wherein the data model comprises a single JavaScript Object Notation (JSON) document describing the smart-device environment structure, the smart-devices, or any combination thereof.

3. The system of claim 1 , comprising an API server that hosts the API, wherein a processor of the API server is configured to: provide the request for data, the submission of data, or both to a device service that maintains the data model.

4. The system of claim 3 , comprising the device service, wherein the device service maintains the data model in hierarchical structure comprising a first element related to the smart-device environment structure at a first level, a second element related to the one or more smart-devices, and a third element comprising a reference to the one or more smart-devices at a second level subordinate to the first level.

5. The system of claim 3 , wherein the device service is configured to maintain the data model using a subscription-based approach.

6. The system of claim 1 , comprising an electronic device configured to subscribe to updates to the data model.

7. The system of claim 6 , wherein the electronic device is configured to:

establish a session with a device service that maintains the data model;

sleep after a period of session inactivity; and

wake to receive data based upon a subscription associated with the message.

8. The system of claim 7 , wherein the one or more smart-devices comprise a thermostat, hazard detector, or any combination thereof.

9. The system of claim 1 , wherein the processor is configured to provide one or more data changes to a device service that maintains the data model, wherein the data changes are stored in the data model.

10. The system of claim 9 , wherein the processor is configured to:

establish a session with the device service; and

upon the one or more data changes occurring at the electronic device, providing the one or more data changes to the device service.

11. The system of claim 10 , comprising the device service, wherein the device service is configured to:

receive the one or more data changes; and

provide the received one or more data changes to subscribers of a subscription affected by the one or more data changes.

12. A tangible, non-transitory, machine-readable medium, comprising instructions to:

provide a message to an application programming interface (API), wherein the message comprises:

a request for data from a data model, a submission of data to the data model, or both; and

a host selection indication, the host and protocol selection indication providing an indication between:

a representational state transfer (REST) host, and

a subscription-based application programming interface (API) host,

wherein the REST host receives REST-based messages and the subscription-based API host receives messages in accordance with a standard of the subscription-based API host; and

receive a response message from the API via:

the REST host, when the host and protocol selection comprises the REST host; or

the subscription-based API host, when the host and protocol selection comprises the subscription-based host;

wherein the request for data, the submission of data, or both are configured to create, delete, modify, or any combination thereof data related to a smart-device environment structure, a thermostat, a hazard detector, or any combination thereof stored in a data model accessible by the API.

13. The tangible, non-transitory, machine-readable medium of claim 12 , wherein the host selection comprises a selection of the REST host.

14. The tangible, non-transitory, machine-readable medium of claim 12 , wherein the host selection comprises a selection of the subscription-based API host.

15. The tangible, non-transitory, machine-readable medium of claim 14 , wherein the instructions are created using one or more client libraries provided to a client developer.

16. The tangible, non-transitory, machine-readable medium of claim 12 , wherein the message comprises the submission of data to the data model and the submission of data is configured to affect a control of the operation of the smart-device environment structure, the thermostat, the hazard detector, or any combination thereof.

17. A computer-implemented method, comprising:

providing a message to an application programming interface (API), wherein the message comprises:

a request for data from a data model, a submission of data to the data model, or both;

a host and protocol selection indication, the host and protocol selection indication providing an indication between:

a representational state transfer (REST) host; and

a subscription-based application programming interface (API) host,

wherein the REST host receives REST-based messages and the subscription-based API host receives messages in accordance with a standard of the subscription-based API host; and

receiving a response message from the API via:

the REST host, when the host and protocol selection comprises the REST host; or

the subscription-based API host, when the host and protocol selection comprises the subscription-based host;

wherein the data model comprises information related to one or more smart-devices, one or more smart-device environment structures comprising the smart-devices, or both.

18. The computer-implemented method of claim 17 , wherein the one or more smart-devices comprise: a thermostat, a hazard detector, or any combination thereof; and

wherein the data comprises one or more device operation status parameters received from the thermostat, the hazard detector, or any combination thereof.

19. The computer-implemented method of claim 17 , wherein the data model comprises a single JavaScript Object Notation (JSON) document describing the one or more smart-device structures, the one or more smart-devices, or both.

20. The computer-implemented method of claim 17 , comprising:

determining that the request should be delayed; and

holding the request until an appropriate time for implementation of the request.

Assignments (3)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2016
From: MCBRIDE, MARK ANDREW
To: GOOGLE INC.
Reel/Frame 037866/0033 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: KARP, IGOR; STESIN, LEV; PI-SUNYER, CARLES; DUBMAN, ALEXANDER
To: GOOGLE INC.
Reel/Frame 036492/0069 →