IP Library Granted Patent US 10,404,832
Granted Patent B2
US 10,404,832 · App. 15/250,596 · Granted Sep 3, 2019

Management of gateway device using virtual gateway device

Inventors: Jigar Vora (San Mateo, CA); Vishwesh Pai (Milpitas, CA); Haoqing Geng (Sunnyvale, CA); Sudha Sundaresan (San Jose, CA); Joseph R. Eykholt (Los Altos, CA); Adrian Caceres (Los Gatos, CA); Yipei Wang (Sunnyvale, CA)
Assignee: Ayla Networks, Inc.
H04L67/34H04L12/66H04L41/0843H04L41/12H04L67/2809H04L67/2823H04W4/70H04W8/245H04B1/713H04W84/18
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 10,404,832
App. No.
15/250,596
Granted
Sep 3, 2019
Kind
B2
Abstract

A server determines a plurality of device templates that define a plurality of device attributes of a remote device connected to a gateway device. The server creates a virtual device from the plurality of device templates, wherein the virtual device is a virtual representation of the remote device. The server determines an attribute update for a first device attribute of the remote device. The server updates a second device attribute of the virtual device. The server generates an instruction for the gateway device to initiate the attribute update for the first device attribute. The server transmits the instruction to the gateway device, wherein the instruction causes the gateway device to generate a command for the remote device to perform the attribute update on the device attribute.

Claims (64)

1. A method comprising:

determining, by a server computing device, an attribute update for a first device attribute of a remote device controlled by a gateway device;

updating a second device attribute of a virtual device, wherein the virtual device is a virtual representation of the remote device;

generating, by the server computing device via a virtual gateway device that is a virtual representation of the gateway device, an instruction for the gateway device to initiate the attribute update for the first device attribute, wherein the virtual gateway device comprises information on at least one of a) types of devices that are manageable by the gateway device, b) device attributes of the types of devices, c) how to communicate with the types of devices, or d) a network of devices managed by the gateway device, and wherein the gateway device lacks the information on at least one of a) the types of devices that are manageable by the gateway device, b) the device attributes of the types of devices, c) how to communicate with the types of devices, or d) the network of devices managed by the gateway device; and

transmitting the instruction to the gateway device, wherein the instruction causes the gateway device to generate a command for the remote device to perform the attribute update on the device attribute.

2. The method of claim 1 , further comprising:

determining, based on the virtual device, a communication protocol used by the remote device, wherein the gateway device is to transmit the command to the remote device using the communication protocol.

3. The method of claim 2 , wherein the communication protocol is a wireless mesh network protocol, and wherein the instruction comprises a network address of the remote device, a cluster identifier of the remote device, and an attribute identifier of the remote device.

4. The method of claim 2 , wherein the communication protocol is a frequency-hopping spread spectrum (FHSS) wireless communication protocol that uses short-wavelength ultra-high frequency (UHF) radio waves in an industrial, scientific and medical (ISM) radio band from 2.4 to 2.485 GHz.

5. The method of claim 1 , wherein the command comprises a unique instruction identifier, the method further comprising:

receiving a response from the gateway device indicating a result of the attribute update, the response comprising the unique instruction identifier; and

updating the second device attribute of the virtual device responsive to receiving the response.

6. The method of claim 1 , further comprising:

receiving a message from the gateway device after the gateway device connects to the remote device, the message comprising a plurality of device attributes of the remote device;

determining a plurality of device templates that define the plurality of device attributes; and

creating the virtual device from the plurality of device templates, wherein the virtual device inherits the plurality of device attributes from the plurality of device templates.

7. The method of claim 6 , wherein the first device attribute was not supported when the gateway device was manufactured, the method further comprising:

receiving a new device template associated the first device attribute of the remote device prior to receiving the message, wherein the new device template is one of the plurality of device templates, and wherein the instruction causes the gateway device to generate the command for the remote device to perform the attribute update on the first device attribute without the gateway device having been updated to support the first device attribute.

8. The method of claim 1 , further comprising:

determining, at a first time, states of a plurality of device attributes of the remote device;

generating a snapshot of the remote device, the snapshot comprising the states of the plurality of device attributes at the first time;

determining, at a second time, a plurality of attribute updates that will cause the remote device to conform to the snapshot;

generating an additional instruction for the gateway device to initiate the plurality of attribute updates for the plurality of device attributes; and

transmitting the additional instruction to the gateway device, wherein the additional instruction causes the gateway device to generate a plurality of additional commands for the remote device to perform the plurality of attribute updates.

9. The method of claim 1 , wherein the gateway device manages a network comprising a plurality of remote devices that share a common communication protocol, and wherein the server computing device maintains a plurality of virtual devices, each of the plurality of virtual devices corresponding to one of the plurality of remote devices, the method further comprising:

generating a visual representation of the network based on states of the plurality of virtual devices.

10. A gateway device comprising:

a first network interface to connect to an internet protocol (IP) network;

a second interface to connect to one or more devices; and

a processor, connected with the first network interface and the second interface, the processor to:

discover a device, wherein discovering the device comprises receiving from the device information identifying a plurality of device attributes of the device;

pair to the device;

send the information and a result of the pairing to a server computing device via the first network interface, wherein the server computing device is to generate a virtual device based on a plurality of templates corresponding to the plurality of device attributes;

receive an instruction from a second virtual device via the first network interface, wherein the instruction is to initiate an attribute update for the device, wherein the second virtual device is a virtual representation of the gateway device, wherein the second virtual device comprises information on at least one of a) types of devices that are manageable by the gateway device, b) device attributes of the types of devices, c) how to communicate with the types of devices, or d) a network of devices managed by the gateway device, and wherein the gateway device lacks the information on at least one of a) the types of devices that are manageable by the gateway device, b) the device attributes of the types of devices, c) how to communicate with the types of devices, or d) the network of devices managed by the gateway device;

parse the instruction to determine data to cause the device to perform the attribute update;

generate a command for the device to perform the attribute update based on the data; and

transmit the command to the device via the second interface.

11. The gateway device of claim 10 , wherein the instruction comprises a unique instruction identifier, and wherein the processor is further to:

receive, from the device via the second interface, a response indicating a result of the attribute update; and

forward the response to the server computing device via the first network interface, wherein the gateway device does not understand the response and the forward of the response comprises the unique instruction identifier.

12. The gateway device of claim 10 , wherein the second interface uses a wireless mesh network protocol, and wherein the instruction comprises a network address of the device, a cluster identifier of the device, and an attribute identifier of the device.

13. The gateway device of claim 10 , wherein the second interface uses a frequency-hopping spread spectrum (FHSS) wireless communication protocol that uses short-wavelength ultra-high frequency (UHF) radio waves in an industrial, scientific and medical (ISM) radio band from 2.4 to 2.485 GFIz.

14. A non-transitory computer readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:

receiving, by the processing device, a message from a gateway device after the gateway device connects to a remote device, the message comprising a plurality of device attributes of the remote device;

determining, by the processing device, a plurality of device templates that define the plurality of device attributes;

creating, by the processing device, a virtual device from the plurality of device templates, wherein the virtual device is a virtual representation of the remote device and inherits the plurality of device attributes from the plurality of device templates;

determining, by the processing device, an attribute update for a first device attribute of the remote device;

updating a second device attribute of the virtual device;

generating, by the processing device via a virtual gateway device that is a virtual representation of the gateway device, an instruction for the gateway device to initiate the attribute update for the first device attribute, wherein the virtual gateway device comprises information on at least one of a) types of devices that are manageable by the gateway device, b) device attributes of the types of devices, c) how to communicate with the types of devices, or d) a network of devices managed by the gateway device, and wherein the gateway device lacks the information on at least one of a) the types of devices that are manageable by the gateway device, b) the device attributes of the types of devices, c) how to communicate with the types of devices, or d) the network of devices managed by the gateway device; and

transmitting the instruction to the gateway device, wherein the instruction causes the gateway device to generate a command for the remote device to perform the attribute update on the device attribute.

15. The non-transitory computer readable storage medium of claim 14 , the operations further comprising:

determining, based on the virtual device, a communication protocol used by the remote device, wherein the gateway device is to transmit the command to the remote device using the communication protocol.

16. The non-transitory computer readable storage medium of claim 14 , wherein the command comprises a unique instruction identifier, the operations further comprising:

receiving a response from the gateway device indicating a result of the attribute update, the response comprising the unique instruction identifier; and

updating the second device attribute of the virtual device responsive to receiving the response.

17. The non-transitory computer readable storage medium of claim 14 , the operations further comprising:

determining, at a first time, states of a plurality of device attributes of the remote device;

generating a snapshot of the remote device, the snapshot comprising the states of the plurality of device attributes at the first time;

generating, at a second time, an additional instruction for the gateway device to initiate a plurality of attribute updates for the plurality of device attributes, wherein the plurality of attribute updates cause the remote device to conform to the snapshot; and transmitting the additional instruction to the gateway device, wherein the additional instruction causes the gateway device to generate a plurality of additional commands for the remote device to perform the plurality of attribute updates.

18. The non-transitory computer readable storage medium of claim 14 , wherein the gateway device manages a network comprising a plurality of remote devices that share a common communication protocol, and wherein the processing device maintains a plurality of virtual devices, each of the plurality of virtual devices corresponding to one of the plurality of remote devices, the operations further comprising:

generating a visual representation of the network based on states of the plurality of virtual devices.

19. The non-transitory computer readable storage medium of claim 14 , wherein the device attribute was not supported when the gateway device was manufactured, the operations further comprising:

receiving a new device template associated the device attribute of the remote device prior to receiving the message, wherein the new device template is one of the plurality of device templates, and wherein the instruction causes the gateway device to generate the command for the remote device to perform the attribute update on the device attribute without the gateway device having been updated to support the device attribute.

20. The non-transitory computer readable storage medium of claim 14 , wherein the gateway device uses a wireless mesh network protocol to communicate with the remote device, and wherein the instruction comprises a network address of the remote device, a cluster identifier of the remote device, and an attribute identifier of the remote device.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Apr 1, 2020
From: RUN LIANG TAI (HONG KONG) INVESTMENT COMPANY LIMITED
To: AYLA NETWORKS, INC.
Reel/Frame 052282/0957 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT THE NAME OF THE ASSIGNOR AND THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 052213 FRAME: 0718. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 25, 2020
From: AYLA NETWORKS, INC.; AYLA NETWORKS HOLDING CORPORATION
To: PINNACLE VENTURES, L.L.C., AS AGENT
Reel/Frame 052230/0408 →
SECURITY INTEREST Recorded Mar 24, 2020
From: PINNACLE VENTURES, L.L.C., AS AGENT
To: AYLA NETWORKS HOLDING CORPORATION; AYLA NETWORKS, INC.
Reel/Frame 052213/0718 →
RELEASE OF SECURITY INTEREST Recorded Apr 10, 2019
From: EAST WEST BANK
To: AYLA NETWORKS, INC.
Reel/Frame 048849/0527 →
SECURITY INTEREST Recorded Apr 8, 2019
From: AYLA NETWORKS, INC.
To: RUN LIANG TAI (HONG KONG) INVESTMENT COMPANY LIMITED
Reel/Frame 048820/0035 →
SECURITY INTEREST Recorded Jul 26, 2017
From: AYLA NETWORKS, INC.
To: EAST WEST BANK
Reel/Frame 043106/0617 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2016
From: VORA, JIGAR; PAI, VISHWESH; GENG, HAOQING; SUNDARESAN, SUDHA; EYKHOLT, JOSEPH R.; CACERES, ADRIAN; WANG, YIPEI
To: AYLA NETWORKS, INC.
Reel/Frame 040202/0107 →
Continuity (2)
Provisional Application 62212503 · Aug 31, 2015
Related Publication 20170064042A1 · Mar 2, 2017