IP Library Granted Patent US 12669790
Granted Patent B2
US 12669790 · App. 18/747,298 · Granted Jun 30, 2026

Building management system with nested stream generation

Inventors: Youngchoon Park (Brookfield, WI); Sudhi R. Sinha (Milwaukee, WI); Vaidhyanathan Venkiteswaran (Brookfield, WI); Erik S. Paulson (Madison, WI); Vijaya S. Chennupati (Brookfield, WI)
Assignee: JOHNSON CONTROLS TECHNOLOGY COMPANY
G05B19/042G05B15/02G05B23/0264G06F16/2474G06F16/258G06F16/9024G05B2219/24024G05B2219/25011G05B2219/2614
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 12669790
App. No.
18/747,298
Filed
Jun 18, 2024
Granted
Jun 30, 2026
Kind
B2
Art Unit
2154
USPC
700/275
Abstract

A building management system (BMS) includes building equipment configured to provide samples of one or more data points in the building management system and a timeseries service. The timeseries service is configured to identify a first timeseries processing workflow that uses an input timeseries as an input and defines processing operations to be applied to the samples of the input timeseries, perform the processing operations defined by the first timeseries processing workflow to generate a first derived timeseries comprising a first set of derived timeseries samples, identify a second timeseries processing workflow that uses the first derived timeseries as an input and defines processing operations to be applied to the samples of the first derived timeseries, and perform the processing operations defined by the second timeseries processing workflow to generate a second derived timeseries comprising a second set of derived timeseries samples.

Claims (80)

1 . A building system, comprising:

a directed acyclic graph (DAG) database storing a plurality of DAGs defining processing workflows; and

one or more non-transitory computer-readable media having instructions stored thereon that, when executed by one or more processors, cause the one or more processors to:

receive a time correlated data stream from a data source;

identify a DAG of the DAG database that uses the time correlated data stream as an input to derive a data rollup comprising a plurality of aggregated values formed from aggregating values of the time correlated data stream in predefined intervals, identifying the DAG including determining that the DAG of the plurality of DAGs stored in the DAG database uses the time correlated data stream as the input, wherein the DAG defines one or more processing operations of a processing workflow to be applied to the time correlated data stream;

determining a frequency at which the data rollup is queried to be displayed on a user device;

determining that the frequency is greater than a threshold;

responsive to determining that the frequency is greater than the threshold, generate, the data rollup based on the DAG and the time correlated data stream without waiting to receive a query to display graphic data on the user device including the data rollup; and

generate the graphic data to display the data rollup on the user device without aggregating the time correlated data stream in response to receiving the query to display the graphic data on the user device.

2 . The building system of claim 1 , wherein the instructions cause the one or more processors to:

identify a second DAG of the DAG database that uses the data rollup as an input to derive a second data rollup by determining whether any of the plurality of DAGs stored in the DAG database use the data rollup as an input, wherein the second DAG defines one or more processing operations of a second processing workflow to be applied to the data rollup; and

generate the second data rollup based on the second DAG and the data rollup.

3 . The building system of claim 1 , wherein the data rollup is a timeseries.

4 . The building system of claim 1 , wherein the instructions cause the one or more processors to:

store the data rollup in a database.

5 . The building system of claim 1 , wherein the instructions cause the one or more processors to:

collect, from building equipment, samples of one or more data points of the building equipment;

generate the time correlated data stream to include the samples; and

generate the data rollup according to the DAG by:

performing the one or more processing operations defined by the DAG on at least some of the samples to generate a set of derived samples; and

storing the set of derived samples in the time correlated data stream.

6 . The building system of claim 1 , wherein the instructions cause the one or more processors to:

generate the data rollup according to the processing workflow based on data received from building equipment, wherein the building equipment include at least one of a sensor, heating, ventilation, and air conditioning (HVAC) equipment, lighting equipment, access control equipment, or security equipment.

7 . The building system of claim 1 , wherein the instructions cause the one or more processors to:

identify one or more other timeseries to be used as inputs to the DAG; and

generate an enriched event comprising the DAG, the time correlated data stream, and the one or more other timeseries.

8 . The building system of claim 1 , wherein the instructions cause the one or more processors to generate the data rollup by:

transforming one or more samples of an input time correlated data streams into one or more samples of a first set of derived samples by applying the one or more samples of the input time correlated data streams as an input to the processing workflow of the DAG; and

assembling the first set of derived samples to form the data rollup.

9 . The building system of claim 1 , wherein the DAG defines a first timeseries processing workflow and one or more first processing operations of the DAG are timeseries processing operations;

wherein a second DAG of the plurality of DAGS defines a second timeseries processing workflow and the one or more processing operations of the second DAG are timeseries processing operations.

10 . The building system of claim 1 , wherein the instructions cause the one or more processors to:

identify a second DAG of the plurality of DAGS that uses the data rollup as an input, wherein the second DAG defines the one or more processing operations to be applied to samples of the data rollup; and

generate a second data rollup by performing the one or more processing operations defined by the second DAG, the second data rollup comprising a second set of derived samples.

11 . The building system of claim 1 , wherein the instructions cause the one or more processors to generate a second data rollup by:

transforming one or more samples of a first set of derived samples of the data rollup into one or more samples of a second set of derived samples by applying the one or more samples of the first set of derived samples as an input to a second DAG of the plurality of DAGS; and

assembling the second set of derived samples to form the second data rollup.

12 . A method, comprising:

storing, by one or more processing circuits, a plurality of directed acyclic graphs (DAGs) in a DAG database, the plurality of DAGs defining processing workflows;

receiving, by the one or more processing circuits, a time correlated data stream from a data source;

identifying, by the one or more processing circuits, a DAG of the DAG database that uses the time correlated data stream as an input to derive a data rollup comprising a plurality of aggregated values formed from aggregating values of the time correlated data stream in predefined intervals, identifying the DAG including determining that the DAG of the plurality of DAGs stored in the DAG database uses the time correlated data stream as an input, wherein the DAG defines one or more processing operations of a processing workflow to be applied to the time correlated data stream;

determining a frequency at which the data rollup is queried to be displayed on a user device;

determining that the frequency is greater than a threshold;

responsive to determining that the frequency is greater than the threshold, generating, by the one or more processing circuits, the data rollup based on the DAG and the time correlated data stream without waiting to receive a query to display graphic data on the user device including the data rollup; and

generating, by the one or more processing circuits, the graphic data to display the data rollup on the user device without aggregating the time correlated data stream in response to receiving the query to display the graphic data on the user device.

13 . The method of claim 12 , comprising:

identifying, by the one or more processing circuits, a second DAG of the DAG database that uses the data rollup as an input to derive a second data rollup by determining whether any of the plurality of DAGs stored in the DAG database use the data rollup as an input, wherein the second DAG defines one or more processing operations of a second processing workflow to be applied to the data rollup; and

generating, by the one or more processing circuits, the second data rollup based on the second DAG and the data rollup.

14 . The method of claim 12 , comprising:

collecting, by the one or more processing circuits, from building equipment, samples of one or more data points of the building equipment;

generating, by the one or more processing circuits, the time correlated data stream to include the samples; and

generating, by the one or more processing circuits, the data rollup according to the DAG by:

performing the one or more processing operations defined by the DAG on at least some of the samples to generate a set of derived samples; and

storing the set of derived samples in the time correlated data stream.

15 . The method of claim 12 , comprising:

generating, by the one or more processing circuits, the data rollup according to the processing workflow based on data received from building equipment, wherein the building equipment include at least one of a sensor, heating, ventilation, and air conditioning (HVAC) equipment, lighting equipment, access control equipment, or security equipment.

16 . The method of claim 12 , comprising:

identifying, by the one or more processing circuits, one or more other timeseries to be used as inputs to the DAG; and

generating, by the one or more processing circuits, an enriched processing workflow comprising the DAG, an input time correlated data streams, and the one or more other timeseries.

17 . The method of claim 12 , comprising:

generating, by the one or more processing circuits, the data rollup by:

transforming one or more samples of an input time correlated data streams into one or more samples of a first set of derived samples by applying the one or more samples of the input time correlated data streams as an input to the processing workflow of the DAG; and

assembling the first set of derived samples to form the data rollup.

18 . One or more non-transitory storage media storing instructions thereon, that, when executed by one or more processors, cause the one or more processors to perform operations, comprising:

storing a plurality of directed acyclic graphs (DAGs) in a DAG database, the plurality of DAGs defining processing workflows;

receiving a time correlated data stream from a data source;

identifying a DAG of the DAG database that uses the time correlated data stream as an input to derive a data rollup comprising a plurality of aggregated values formed from aggregating values of the time correlated data stream in predefined intervals, identifying the DAG including determining that the DAG of the plurality of DAGs stored in the DAG database uses the time correlated data stream as an input, wherein the DAG defines one or more processing operations of a processing workflow to be applied to the time correlated data stream;

determining a frequency at which the data rollup is queried to be displayed on a user device;

determining that the frequency is greater than a threshold;

responsive to determining that the frequency is greater than the threshold, generating, the data rollup based on the DAG and the time correlated data stream without waiting to receive a query to display graphic data on the user device including the data rollup; and

generating the graphic data to display the data rollup on the user device without aggregating the time correlated data stream in response to receiving the query to display the graphic data on the user device.

19 . The one or more non-transitory storage media of claim 18 , the operations comprising:

collecting, from building equipment, samples of one or more data points of the building equipment;

generating the time correlated data stream to include the samples; and

generating the data rollup according to the DAG by:

performing the one or more processing operations defined by the DAG on at least some of the samples to generate a set of derived samples; and

storing the set of derived samples in the time correlated data stream.

20 . The one or more non-transitory storage media of claim 18 , the operations comprising:

identifying one or more other timeseries to be used as inputs to the DAG; and

generating an enriched processing workflow comprising the DAG, an input time correlated data streams, and the one or more other timeseries.