IP Library Granted Patent US 12,113,671
Granted Patent B2
US 12,113,671 · App. 17/722,144 · Granted Oct 8, 2024

Behavior driven digital twin for Internet of Things devices

Inventors: Garett Madole (Austin, TX); Brandon Valosek (Austin, TX); Anand Surada (Austin, TX)
Assignee: Yonomi, LLC
H04L41/082
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 12,113,671
App. No.
17/722,144
Granted
Oct 8, 2024
Kind
B2
Abstract

Systems, methods, and storage media for communicating with connected devices are disclosed. Exemplary implementations may: identify one or more traits for a connected device; receive an action request, wherein the action request corresponds to a first desired state of the connected device; receive a trait configuration for the one or more traits; calculate a second desired state for the connected device, wherein the second desired state is calculated based on one or more of the action request and trait configuration for the connected device; and at least one of transmit a first message to the connected device, including an indication of the first or the second desired state, or transmit a second message, including an indication of an estimated state, to the first computing device.

Claims (87)

1. A method for communicating with connected devices, the method comprising:

identifying one or more traits for a connected device;

receiving, from a first computing device, an action request, wherein the action request corresponds to a first desired state of the connected device;

receiving, via an internet or cellular data connection, a trait configuration for the one or more traits corresponding to the connected device;

calculating, at a controller, a second desired state for the connected device, wherein the second desired state is calculated based on the action request and the trait configuration for the connected device, and the second desired state differs from the first desired state;

calculating an expected state for the connected device, the expected state based upon one or more of the action request, a behavior model, and the trait configuration for the connected device;

transmitting a first message to the connected device, the first message including an indication of the second desired state;

receiving, from the connected device, a reported state;

determining at least one error or issue for the connected device based on identifying a discrepancy between the reported state and the expected state; and

transmitting a second message to the first computing device, the second message including an indication of an estimated state of the connected device and an indication of the error or the issue.

2. The method of claim 1 , further comprising:

refraining from transmitting to the connected device information pertaining to the action request based on the estimated state of the connected device.

3. The method of claim 1 , further comprising:

receiving one or more state snapshots for the one or more traits for the connected device, wherein each of the one or more state snapshots comprises one or more state fields.

4. The method of claim 3 , further comprising:

receiving one or more of an updated trait configuration, and an updated state snapshot for at least one of the one or more state snapshots, for the connected device, based on transmitting the request to the connected device; and

calculating a third desired state for the connected device.

5. The method of claim 1 , wherein each of the one or more traits is associated with one or more of a capability, a functionality, and a behavior of the connected device.

6. The method of claim 1 , further comprising:

calculating an expected state, the expected state based upon one or more of the action request, a behavior model, and the trait configuration for the connected device;

determining an error or issue for the connected device based on one of:

receiving a reported state from the connected device, wherein the reported state is different from the expected state; and

identifying an absence of an error response, an updated state, or a reported state from the connected device; and

transmitting a third message to the connected device, the third message including an indication of a third desired state for the connected device, and wherein the third message is transmitted based upon determining the error or the issue for the connected device.

7. The method of claim 1 , further comprising:

receiving, from the connected device, a reported state; and

refraining from transmitting information pertaining to the action request to the connected device based at least in part on identifying that the first desired state is the same as or approximately the same as the reported state.

8. The method of claim 1 , further comprising:

validating the action request, wherein the validating comprises assessing the action request with respect to the trait configuration for the connected device;

generating an action intent from the action request, wherein generating the action intent is based at least in part on validating the action request; and

wherein calculating the second desired state is further based on the action intent and a reported state of the connected device.

9. A method for communicating with connected devices, the method comprising:

identifying one or more traits for a connected device;

receiving, from a first computing device, an action request, wherein the action request corresponds to a first desired state of the connected device;

receiving, via an internet or cellular data connection, a trait configuration for the one or more traits corresponding to the connected device;

calculating, at a controller, a second desired state for the connected device, wherein the second desired state is calculated based on the action request and the trait configuration for the connected device, and the second desired state differs from the first desired state;

transmitting a first message to the connected device, the first message including an indication of the second desired state;

transmitting a second message to the first computing device, the second message including an indication of an estimated state of the connected device;

receiving a traits payload for the connected device, the traits payload comprising the trait configuration and a state snapshot;

parsing the traits payload, based at least in part on sourcing one or more data contracts, the one or more data contracts selected from a group consisting of configuration property definitions, state property definitions, and action definitions;

receiving additional trait data for the connected device, the additional trait data including information pertaining to one or more validation sources, trait constraints, and action validations; and

validating one or more of a pending state update and a pending property update for the connected device based on the parsed traits payload and the additional trait data.

10. A system configured for communicating with connected devices, the system comprising:

one or more hardware processors configured by machine-readable instructions to:

identify one or more traits for a connected device;

receive, from a first computing device, an action request, wherein the action request corresponds to a first desired state of the connected device;

receive, via an internet or cellular data connection, a trait configuration for the one or more traits corresponding to the connected device;

calculate a second desired state for the connected device, wherein the second desired state is calculated based on the action request and the trait configuration for the connected device, and the second desired state differs from the first desired state;

calculate an expected state for the connected device, the expected state based upon one or more of the action request, a behavior model, and the trait configuration for the connected device;

transmit a first message to the connected device, the first message including an indication of the second desired state;

receive, from the connected device, a reported state;

determine at least one error or issue for the connected device based on identifying a discrepancy between the reported state and the expected state; and

transmit a second message to the first computing device, the second message including an indication of an estimated state of the connected device and an indication of the error or the issue.

11. The system of claim 10 , wherein the one or more hardware processors are further configured by the machine-readable instructions to:

refrain from transmitting to the connected device, information pertaining to the action request based on the estimated state of the connected device.

12. The system of claim 10 , wherein the one or more hardware processors are further configured by the machine-readable instructions to:

receive one or more state snapshots for the one or more traits for the connected device, wherein each of the one or more state snapshots comprises one or more state fields.

13. The system of claim 12 , wherein the one or more hardware processors are further configured by the machine-readable instructions to:

receive one or more of an updated trait configuration, and an updated state snapshot for at least one of the one or more state snapshots, for the connected device, based on transmitting the first message to the connected device; and

calculate a third desired state for the connected device.

14. The system of claim 10 , wherein each of the one or more traits is associated with one or more of a capability, a functionality, and a behavior of the connected device.

15. The system of claim 10 , wherein the one or more hardware processors are configured by the machine-readable instructions to:

calculate an expected state, the expected state based upon one or more of the action request, a behavior model, and the trait configuration for the connected device; determine an error or issue for the connected device based on one of:

receiving a reported state from the connected device, wherein the reported state is different from the expected state; and

identifying an absence of an error response, an updated state, or a reported state from the connected device; and

transmit a third message to the connected device, the third message including an indication of a third desired state for the connected device, and wherein the third message is transmitted based upon determining the error or the issue for the connected device.

16. A non-transient computer-readable storage medium having instructions embodied thereon, the instructions being executable by one or more processors to perform a method for communicating with connected devices, the method comprising:

identifying one or more traits for a connected device;

receiving, from a first computing device, an action request, wherein the action request corresponds to a first desired state of the connected device;

receiving, via an internet or cellular data connection, a trait configuration for the one or more traits corresponding to the connected device;

calculating, at a controller, a second desired state for the connected device, wherein the second desired state is calculated based on the action request and the trait configuration for the connected device, and the second desired state differs from the first desired state;

calculating an expected state for the connected device, the expected state based upon one or more of the action request, a behavior model, and the trait configuration for the connected device;

transmitting a first message to the connected device, the first message including an indication of the second desired state;

receiving, from the connected device, a reported state;

determining at least one error or issue for the connected device based on identifying a discrepancy between the reported state and the expected state; and

transmitting a second message to the first computing device, the second message including an indication of an estimated state of the connected device and an indication of the error or the issue.

17. A non-transient computer-readable storage medium having instructions embodied thereon, the instructions being executable by one or more processors to perform a method for communicating with connected devices, the method comprising:

identifying one or more traits for a connected device;

receiving, from a first computing device, an action request, wherein the action request corresponds to a first desired state of the connected device;

receiving, via an internet or cellular data connection, a trait configuration for the one or more traits corresponding to the connected device;

calculating, at a controller, a second desired state for the connected device, wherein the second desired state is calculated based on the action request and the trait configuration for the connected device, and the second desired state differs from the first desired state;

transmitting a first message to the connected device, the first message including an indication of the second desired state;

transmitting a second message to the first computing device, the second message including an indication of an estimated state of the connected device;

receiving a traits payload for the connected device, the traits payload comprising the trait configuration and a state snapshot;

parsing the traits payload, based at least in part on sourcing one or more data contracts, the one or more data contracts selected from a group consisting of configuration property definitions, state property definitions, and action definitions;

receiving additional trait data for the connected device, the additional trait data including information pertaining to one or more validation sources, trait constraints, and action validations; and

validating one or more of a pending state update and a pending property update for the connected device based on the parsed traits payload and the additional trait data.

Assignments (2)
CHANGE OF NAME Recorded May 17, 2023
From: YONOMI, INC.
To: YONOMI, LLC
Reel/Frame 063693/0526 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2022
From: MADOLE, GARETT; VALOSEK, BRANDON; SURADA, ANAND
To: YONOMI, INC.
Reel/Frame 059869/0642 →
Continuity (2)
Provisional Application 63176175 · Apr 16, 2021
Related Publication 20230067162A1 · Mar 2, 2023