IP Library Granted Patent US 10,348,798
Granted Patent B2
US 10,348,798 · App. 15/228,002 · Granted Jul 9, 2019

Rules engine for connected devices

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,348,798
App. No.
15/228,002
Granted
Jul 9, 2019
Kind
B2
Abstract

In one embodiment, a method includes receiving notifications of events associated with the connected devices, evaluating a plurality of event sequences that include two or more events occurring within a particular time period, and generating a plurality of rules based on the evaluated event sequences. The method further includes receiving a notification of a first event associated with a first connected device on the network, determining that a first rule of the plurality of rules is based on the first event, and sending one or more instructions to connected devices in accordance with the first rule.

Claims (51)

1. A method comprising:

by one or more computing devices, receiving, from one or more connected devices on a network, notifications of events associated with the one or more connected devices;

by the one or more computing devices, evaluating a plurality of event sequences, each event sequence comprises two or more events occurring within a particular time period;

by the one or more computing device, determining a score associated with each event sequence based on the particular time period associated with the event sequence, and a time difference between an event and the chronologically-first event in the event sequence, wherein the score for a particular event sequence is relatively high when the time difference between events of the particular event sequence is low as compared to time difference between events of other event sequences in the plurality;

by the one or more computing devices, generating one or more rules based on scores associated with one or more event sequences exceeding a threshold score;

by the one or more computing devices, receiving a notification of a first event associated with a first connected device on the network;

by the one or more computing devices, determining that a first rule of the one or more rules is based on the first event; and

by the one or more computing devices, sending one or more instructions to connected devices in accordance with the first rule.

2. The method of claim 1 , wherein:

the score associated with each event sequence is further based on Dmax−min(deltaN,Dmax);

Dmax refers to the particular time period; and

deltaN refers to an amount of time between an Nth event in the event sequence and the chronologically-first event in the event sequence.

3. The method of claim 2 , wherein the score for each event sequence is further based on Π(Dmax−min(deltaN,Dmax)).

4. The method of claim 3 , wherein the score is determined using the formula:

score=1−Π( D max−min(delta N,D max))/ D max.

5. The method of claim 2 , further comprising, for each event sequence:

by the one or more computing devices, determining that the event sequence is substantially similar to another event sequence; and

by the one or more computing devices, modifying the score associated with the event sequence.

6. The method of claim 1 , wherein generating the one or more rules is further based on one or more environmental conditions present during the evaluated event sequences.

7. The method of claim 6 , wherein the one or more environmental conditions comprises one or more of: a time of day, a day of week, an outside temperature, or an ambient temperature.

8. The method of claim 6 , wherein the first rule is further based on a first environmental condition.

9. The method of claim 6 , further comprising receiving a detected environmental condition associated with the first event, wherein determining that the first rule is based on the first event comprises determining that the first rule is further based on the detected environmental condition.

10. The method of claim 1 , wherein the particular time period is determined using historical data.

11. The method of claim 10 , wherein determining the particular time period using historical data comprises determining a maximum time difference for two events in an event sequence associated with a generated rule.

12. The method of claim 1 , wherein at least one event comprises a user input at a connected device of the one or more connected devices.

13. The method of claim 1 , further comprising generating an exception that is associated with at least one rule of the one or more rules.

14. The method of claim 1 , wherein generating the one or more rules is further based on a status of a connected device when the evaluated event sequences begin.

15. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive, from one or more connected devices on a network, notifications of events associated with the one or more connected devices;

evaluate a plurality of event sequences, each event sequence comprises two or more events occurring within a particular time period;

determine a score associated with each event sequence based on the particular time period associated with the event sequence, and a time difference between an event and the chronologically-first event in the event sequence, wherein the score for a particular event sequence is relatively high when the time difference between events of the particular event sequence is low as compared to time difference between events of other event sequences in the plurality;

generate one or more rules based on scores associated with one or more event sequences exceeding a threshold score;

receive a notification of a first event associated with a first connected device on the network;

determine that a first rule of the plurality of one or more rules is based on the first event; and

send one or more instructions to connected devices in accordance with the first rule.

16. The media of claim 15 , wherein:

the score associated with each event sequence is further based on Dmax−min(deltaN,Dmax);

Dmax refers to the particular time period; and

deltaN refers to an amount of time between an Nth event in the event sequence and the chronologically-first event in the event sequence.

17. The media of claim 16 , wherein the software is further operable when executed to:

determine that the event sequence is substantially similar to another event sequence; and

modify the score associated with the event sequence.

18. The media of claim 15 , wherein the software is further operable when executed to generate the one or more rules based on one or more environmental conditions present during the evaluated event sequences.

19. A system comprising: one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:

receive, from one or more connected devices on a network, notifications of events associated with the one or more connected devices;

evaluate a plurality of event sequences, each event sequence comprises two or more events occurring within a particular time period;

determine a score associated with each event sequence based on the particular time period associated with the event sequence, and a time difference between an event and the chronologically-first event in the event sequence, wherein the score for a particular event sequence is relatively high when the time difference between events of the particular event sequence is low as compared to time difference between events of other event sequences in the plurality;

generate one or more rules based on scores associated with one or more event sequences exceeding a threshold score;

receive a notification of a first event associated with a first connected device on the network;

determine that a first rule of the one or more rules is based on the first event; and

send one or more instructions to connected devices in accordance with the first rule.

Assignments (4)
CHANGE OF NAME Recorded Nov 19, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058214/0351 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2017
From: TIEN, DUNG NGUYEN
To: FACEBOOK, INC.
Reel/Frame 043719/0366 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2017
From: LAWRENCE, ZACHARY CHEE-PING
To: FACEBOOK, INC.
Reel/Frame 043631/0905 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2016
From: TAL, ERAN; REHWALD, MARTIN; PENOV, FRANCISLAV; YANG, SIYIN; KOWALEWSKI, DAMIAN; YAKOVLEV, GEORGIY; CHHABRA, ANUPMA; AHMAD, RIZWAN; ESCARENO, ANGELICA ESTEFANIA; BIGIO, AIDYMAR
To: FACEBOOK, INC.
Reel/Frame 040080/0936 →