Building data platform with digital twin inferences

Information

  • Patent Grant
  • 11934966
  • Patent Number
    11,934,966
  • Date Filed
    Wednesday, November 17, 2021
    3 years ago
  • Date Issued
    Tuesday, March 19, 2024
    8 months ago
Abstract
A building system including one or more storage devices storing instructions thereon that, when executed by one or more processors, cause the one or more processors to receive an indication to execute an artificial intelligence (AI) agent of a digital twin, the digital twin including the AI agent and a graph data structure, the graph data structure including nodes representing entities of a building and edges between the nodes representing relationships between the entities of the building. The instructions cause the one or more processors to execute the AI agent based on data of the building to generate an inference that is a prediction of a future data value of a data point of the building for a future time and store at least one of the inference, or a link to the inference, in the graph data structure.
Description
BACKGROUND

This application relates generally to a building system of a building. This application relates more particularly to systems for managing and processing data of the building system.


A building may aggregate and store building data received from building equipment and/or other data sources. The building data can be stored in a database. The building can include a building system that operates control algorithms against the data of the database to control the building equipment. However, the development of the control algorithms may be time consuming and require a significant amount of software development. Furthermore, the control algorithms may lack flexibility to adapt to changing circumstances in the building.


SUMMARY

A building system including one or more storage devices storing instructions thereon that, when executed by one or more processors, cause the one or more processors to store a data structure of a digital twin of an entity of a building, the data structure storing information associated with at least one of the entity or entities of the building. The instructions cause the one or more processors to determine that a trigger rule of the digital twin is triggered by comparing at least some of the information of the data structure against one or more conditions of the trigger rule, determine an action of an action rule of the digital twin responsive to determining that the trigger rule is triggered by executing the action rule, and cause one or more devices to operate based on the action determined by the action rule.


In some embodiments, the instructions cause the one or more processors to provide the action to one or more other digital twins, determine that the action triggers one or more trigger rules of the one or more other digital twins, and determine one or more actions of one or more action rules of the one or more other digital twins by executing the one or more action rules responsive to the action triggering the one or more trigger rules.


In some embodiments, the data structure is a graph data structure including nodes and edges between the nodes, wherein the nodes represent the entity, the entities, and data points of the entity and the entities. In some embodiments, the edges represent relationships between the entity, the entities, and the data points of the entity and the entities.


In some embodiments, the instructions cause the one or more processors to cause the one or more devices to operate based on the action by sending a command to the one or more devices to perform the action or store the action in the data structure and retrieve the action from the data structure and send the command based on the action retrieved from the data structure to the one or more devices.


In some embodiments, the instructions cause the one or more processors to perform a learning algorithm to learn the trigger rule and the action rule.


In some embodiments, the instructions cause the one or more processors to perform a learning algorithm to learn one or more first parameters for the trigger rule and subsequently learn one or more second parameters for the action rule based at least in part on the one or more first parameters for the trigger rule.


In some embodiments, the instructions cause the one or more processors to learn one or more parameters of the trigger rule or the action rule by adjusting a value of the one or more parameters of the trigger rule or the action rule to different values and simulating one or more states resulting from the different values of the one or more parameters of the trigger rule or the action rule. In some embodiments, the instructions cause the one or more processors to determine one or more updated values for the one or more parameters of the trigger rule or the action rule based on the one or more states resulting from the different values of the one or more parameters of the trigger rule or the action rule.


In some embodiments, the instructions cause the one or more processors to determine the one or more updated value for the one or more parameters of the trigger rule or the action rule by determining a particular reward for the one or more states resulting from the different values of the one or more parameters of the trigger rule or the action rule, training a model that predicts a reward based on the particular reward for the one or more states and the different values of the one or more parameters of the trigger rule or the action rule, and performing an optimization that determines the one or more updated value for the one or more parameters of the trigger rule or the action rule based on the model and the reward.


In some embodiments, the instructions cause the one or more processors to generate the digital twin by identifying actions and data associated with the entity based on the data structure, identifying that the entities are related to the entity based on the data structure, identifying actions and data associated with the entities based on the data structure, and generating the trigger rule and the action rule based on the actions and the data associated with the entity and the actions and the data associated with the entities.


In some embodiments, the instructions cause the one or more processors to generate the trigger rule and the action rule based on the actions and the data associated with the entity and the actions and the data associated with the entities by determining trigger rules for the data of the entity and the data of the entities, determining action rules for the actions of the entity and the actions of the entities, simulating combinations of the trigger rules and action rules and determining rewards for the combinations, and selecting the trigger rule and the action rule from the combinations of the trigger rules and the action rules based on the rewards of the combinations.


In some embodiments, the instructions cause the one or more processors to generate the trigger rule and the action rule based on the actions and the data associated with the entity and the actions and the data associated with the entities by determining trigger rules for the data of the entity and the data of the entities, the trigger rules including the trigger rule, determining action rules for the actions of the entity and the actions of the entities, the action rules including the action rule, monitoring behavior of the building system of the building, determine a relationship between the trigger rule of the trigger rules and the action rule of the action rules indicated by the behavior of the building system, and selecting the trigger rule from the trigger rules and the action rule from the action rules based on the relationship.


Another implementation of the present disclosure is a method including storing, by a processing circuit, a data structure of a digital twin of an entity of a building, the data structure storing information associated with at least one of the entity or entities of the building, determining, by the processing circuit, that a trigger rule of the digital twin is triggered by comparing at least some of the information of the data structure against one or more conditions of the trigger rule, and determining, by the processing circuit, an action of an action rule of the digital twin responsive to determining that the trigger rule is triggered by executing the action rule. The method further includes causing, by the processing circuit, one or more devices to operate based on the action determined by the action rule.


In some embodiments, the method includes providing, by the processing circuit, the action to one or more other digital twins, determining, by the processing circuit, that the action triggers one or more trigger rules of the one or more other digital twins, and determining, by the processing circuit, one or more actions of one or more action rules of the one or more other digital twins by executing the one or more action rules responsive to the action triggering the one or more trigger rules.


In some embodiments, the data structure is a graph data structure including nodes and a edges between the nodes, wherein the nodes represent the entity, the entities, and data points of the entity and the entities. In some embodiments, the edges represent relationships between the entity, the entities, and the data points of the entity and the entities.


In some embodiments, causing, by the processing circuit, the one or more devices to operate based on the action includes sending a command to the one or more devices to perform the action or store the action in the data structure and retrieve the action from the data structure and send the command based on the action retrieved from the data structure to the one or more devices.


In some embodiments, the method includes performing, by the processing circuit, a learning algorithm to learn the trigger rule and the action rule.


In some embodiments, the method includes performing, by the processing circuit, a learning algorithm to learn one or more first parameters for the trigger rule and subsequently learn one or more second parameters for the action rule based at least in part on the one or more first parameters for the trigger rule.


In some embodiments, the method includes learning, by the processing circuit, one or more parameters of the trigger rule or the action rule by adjusting a value of the one or more parameters of the trigger rule or the action rule to different values, simulating one or more states resulting from the different values of the one or more parameters of the trigger rule or the action rule, and determining one or more updated values for the one or more parameters of the trigger rule or the action rule based on the one or more states resulting from the different values of the one or more parameters of the trigger rule or the action rule.


In some embodiments, the method includes generating, by the processing circuit, the digital twin by identifying actions and data associated with the entity based on the data structure, identifying that the entities are related to the entity based on the data structure, identifying actions and data associated with the entities based on the data structure, and generating the trigger rule and the action rule based on the actions and the data associated with the entity and the actions and the data associated with the entities.


A building system including one or more storage devices storing instructions thereon and one or more processors, wherein the one or more processors execute the instructions causing the one or more processors to store a data structure of a digital twin of an entity of a building, the data structure storing information associated with at least one of the entity or entities of the building. The instructions cause the one or more processors to determine that a trigger rule of the digital twin is triggered by comparing at least some of the information of the data structure against one or more conditions of the trigger rule, determine an action of an action rule of the digital twin responsive to determining that the trigger rule is triggered by executing the action rule, and cause one or more devices to operate based on the action determined by the action rule.


Another implementation of the present disclosure is a building system including one or more storage devices storing instructions thereon that, when executed by one or more processors, cause the one or more processors to receive an indication to execute an artificial intelligence (AI) agent of a digital twin, the digital twin including a graph data structure, the graph data structure including nodes representing entities of a building and edges between the nodes representing relationships between the entities of the building. The instructions cause the one or more processors to execute the AI agent based on data of the building to generate an inference of a future data value of a data point of the building for a future time and store at least one of the inference, or a link to the inference, in the graph data structure.


In some embodiments, wherein the instructions cause the one or more processors to store at least one of the inference, or the link to the inference, in a node of the graph data structure with an edge between an entity node of the nodes representing an entity associated with the inference and the node.


In some embodiments, the instructions cause the one or more processors to receive a measured data value of the data point at the future time from building equipment of the building, compare the measured data value for the data point to the future data value of the inference to determine an error, and train the AI agent with the error.


In some embodiments, the AI agent includes a machine learning model that predicts the inference based on the data of the building.


In some embodiments, the instructions cause the one or more processors to retrieve a model from a model storage database in response to receiving the indication to execute the artificial intelligence (AI) agent and cause a client to run and execute the model based on the data of the building to generate the inference and return the inference.


In some embodiments, the instructions cause the one or more processors to add the indication to execute the AI agent to a job request topic, wherein the AI agent reads the job request topic and the AI agent executes responsive to reading the indication from the job request topic and add the inference to a job response topic, wherein a system that generates the indication reads the inference from the job response topic.


In some embodiments, the AI agent includes a trigger rule and an action rule. In some embodiments, the instructions cause the one or more processors to determine that the trigger rule is triggered by comparing information of the graph data structure against one or more conditions of the trigger rule, determine an action of the action rule responsive to determining that the trigger rule is triggered by executing the action rule, and cause one or more devices to operate based on the action determined by the action rule.


In some embodiments, the instructions cause the one or more processors to generate the digital twin by identifying actions and data associated with an entity based on the graph data structure, wherein the digital twin is associated with the entity, identifying that the entities are related to the entity based on the graph data structure, identifying actions and data associated with the entities based on the graph data structure, and generating the trigger rule and the action rule based on the actions and the data associated with the entity and the actions and the data associated with the entities.


In some embodiments, the graph data structure including a nodes and the edges between the nodes, wherein the nodes represent an entity, entities, and data points of the entity and the entities. In some embodiments, the edges represent relationships between the entity, the entities, and the data points of the entity and the entities.


In some embodiments, the instructions cause the one or more processors to cause the one or more devices to operate based on the action by sending a command to the one or more devices to perform the action or store the action in the graph data structure and retrieve the action from the graph data structure and send the command based on the action retrieved from the graph data structure to the one or more devices.


In some embodiments, the instructions cause the one or more processors to perform a learning algorithm to learn the trigger rule and the action rule.


In some embodiments, the instructions cause the one or more processors to perform a learning algorithm to learn one or more first parameters for the trigger rule and subsequently learn one or more second parameters for the action rule based at least in part on the one or more first parameters for the trigger rule.


In some embodiments, the instructions cause the one or more processors to learn one or more parameters of the trigger rule or the action rule by adjusting a value of the one or more parameters of the trigger rule or the action rule to different values, simulating one or more states resulting from the different values of the one or more parameters of the trigger rule or the action rule, and determine one or more updated values for the one or more parameters of the trigger rule or the action rule based on the one or more states resulting from the different values of the one or more parameters of the trigger rule or the action rule.


Another implementation of the present disclosure is a method including receiving, by a processing circuit, an indication to execute an artificial intelligence (AI) agent of a digital twin, the digital twin including a graph data structure, the graph data structure including nodes representing entities of a building and edges between the nodes representing relationships between the entities of the building, executing, by the processing circuit, the AI agent based on data of the building to generate an inference of a future data value of a data point of the building for a future time, and storing, by the processing circuit, at least one of the inference, or a link to the inference, in the graph data structure.


In some embodiments, the method includes storing, by the processing circuit, at least one of the inference, or the link to the inference in the graph data structure includes storing the inference or the link in a node of the graph data structure with an edge between an entity node of the nodes representing an entity associated with the inference and the node.


In some embodiments, the AI agent includes a machine learning model that predicts the inference based on the data of the building. In some embodiments, the method further includes receiving, by the processing circuit, a measured data value of the data point at the future time from building equipment of the building, comparing, by the processing circuit, the measured data value for the data point to the future data value of the inference to determine an error, and training, by the processing circuit, the machine learning model with the error.


In some embodiments, the method includes retrieving, by the processing circuit, a model from a model storage database in response to receiving the indication to execute the artificial intelligence (AI) agent and causing, by the processing circuit, a client to run and execute the model based on the data of the building to generate the inference and return the inference.


In some embodiments, the method includes adding, by the processing circuit, the indication to execute the AI agent to a job request topic, wherein the AI agent reads the job request topic and the AI agent executes responsive to reading the indication from the job request topic and adding, by the processing circuit, the inference to a job response topic, wherein a system that generates the indication reads the inference from the job response topic.


In some embodiments, the AI agent includes a trigger rule and an action rule. In some embodiments, the method includes determining, by the processing circuit, that the trigger rule is triggered by comparing information of the graph data structure against one or more conditions of the trigger rule, determining, by the processing circuit, an action of the action rule responsive to determining that the trigger rule is triggered by executing the action rule, and causing, by the processing circuit, one or more devices to operate based on the action determined by the action rule.


Another implementation of the present disclosure is a building system including one or more storage devices storing instructions thereon and one or more processors that execute the instructions and cause the one or more processors to receive an indication to execute an artificial intelligence (AI) agent of a digital twin of a building, the digital twin of the building storing data of the building. The instructions cause the one or more processors to execute the AI agent based on data of the building to generate an inference of a future data value of a data point of the building for a future time and store at least one of the inference, or a link to the inference, in the graph data structure.





BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the detailed description taken in conjunction with the accompanying drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements.



FIG. 1 is a block diagram of a building data platform including an edge platform, a cloud platform, and a twin manager, according to an exemplary embodiment.



FIG. 2 is a graph projection of the twin manager of FIG. 1 including application programming interface (API) data, capability data, policy data, and services, according to an exemplary embodiment.



FIG. 3 is another graph projection of the twin manager of FIG. 1 including application programming interface (API) data, capability data, policy data, and services, according to an exemplary embodiment.



FIG. 4 is a graph projection of the twin manager of FIG. 1 including equipment and capability data for the equipment, according to an exemplary embodiment.



FIG. 5 is a block diagram of a system for managing a digital twin where an artificial intelligence agent can be executed to infer information for an entity of a graph, according to an exemplary embodiment.



FIG. 6 is a flow diagram of a process for executing an artificial intelligence agent to infer and/or predict information, according to an exemplary embodiment.



FIG. 7 is a diagram of a digital twin including a connector and a database, according to an exemplary embodiment.



FIG. 8 is a block diagram of a digital twin including triggers, connectors, actions, and a graph, according to an exemplary embodiment.



FIG. 9 is a block diagram of a people counter digital twin, an HVAC digital twin, and a facility manager digital twin that have triggers and actions that are interconnected, according to an exemplary embodiment.



FIG. 10 is a block diagram of an employee digital twin, a calendar digital twin, a meeting room digital twin, and a cafeteria digital twin that have triggers and actions that are interconnected, according to an exemplary embodiment.



FIG. 11 is a flow diagram an agent of a digital twin executing a trigger rule and an action rule, according to an exemplary embodiment.



FIG. 12 is a block diagram of a trigger rule of a thermostat digital twin where parameters of the trigger rule is trained, according to an exemplary embodiment.



FIG. 13 is a flow diagram of a process for identifying values for the parameters of the trigger rule of FIG. 12, according to an exemplary embodiment.



FIG. 14 is a minimization that can be performed to identify the values for the parameters of the trigger rule of FIGS. 12-13, according to an exemplary embodiment.



FIG. 15 is a block diagram of an action rule of a thermostat digital twin where parameters of the action rule is trained, according to an exemplary embodiment.



FIG. 16 is lists of states of a zone and of an air handler unit that can be used to train the parameters of the trigger rule and the action rule of the thermostat digital twins of FIGS. 12-15, according to an exemplary embodiment.



FIG. 17 is a block diagram of a trigger rule of a chemical reactor digital twin where parameters of the trigger rule are trained, according to an exemplary embodiment.



FIG. 18 is a flow diagram of a process for identifying values for the parameters of the trigger rule of FIG. 17, according to an exemplary embodiment.



FIG. 19 is a minimization that can be performed to identify the values for the parameters of the trigger rule of FIGS. 17-18, according to an exemplary embodiment.



FIG. 20 is a block diagram of an action rule of a chemical reactor digital twin where parameters of the action rule are trained, according to an exemplary embodiment.



FIG. 21 is lists of states of a reactor and a feed of a reactor that can be included in the trigger rule and the action rule of FIGS. 12-15, according to an exemplary embodiment.



FIG. 22 is a block diagram of triggers and actions that can be constructed and learned for a digital twin, according to an exemplary embodiment.



FIG. 23 is a flow diagram of a process for constructing triggers and actions for a digital twin, according to an exemplary embodiment.





DETAILED DESCRIPTION

Overview


Referring generally to the FIGURES, systems and methods for digital twins of a building are shown, according to various exemplary embodiments. A digital twin can be a virtual representing of a building and/or an entity of the building (e.g., space, piece of equipment, occupant, etc.). Furthermore, the digital twin can represent a service performed in a building, e.g., facility management, equipment maintenance, etc.


In some embodiments, the digital twin can include an information data store and a connector. The information data store can store the information describing the entity that the digital twin operates for (e.g., attributes of the entity, measurements associated with the entity, control points or commands of the entity, etc.). In some embodiments, the data store can be a graph including various nodes and edges. The connector can be a software component the provides telemetry from the entity (e.g., physical device) to the information store. Furthermore, the digital twin can include artificial intelligence (AI), e.g., an AI agent. The AI can be one or more machine learning algorithms and/or models that operate based on information of the information data store and outputs information.


In some embodiments, the AI agent for the digital twin can call an AI service to determine inferences about potential future events and/or predict future data values. In some embodiments, the inferences are potential future states. In some embodiments, the inferences predict a timeseries of a data point into the future. The inferences could be inferred indoor temperature for an hour, inferred future air quality from 15 minute air quality readings, etc. In some embodiments, the digital twin can store and inferred information in a graph data store as a node in the graph data store related to an entity that the digital twin represents. In some embodiments, the digital twin, or other digital twins, can operate against the inferred data, e.g., operate to construct and implement control algorithms for operating equipment of a building based on predicted future data points of the building.


Furthermore, the AI agent can include various triggers and/or actions, conditions that define when and how command and control occurs for an entity. The triggers and actions can be rule based conditional and operational statements that are associated with a specific digital twin, e.g., are stored and executed by an AI agent of the digital twin. In some embodiments, the building system can identify actions and/or triggers (or parameters for the actions and/or triggers) through machine learning algorithms. In some embodiments, the building system can evaluate the conditions/context of the graph and determine and/or modify the triggers and actions of a digital twin.


Referring now to FIG. 1, a building data platform 100 including an edge platform 102, a cloud platform 106, and a twin manager 108 are shown, according to an exemplary embodiment. The edge platform 102, the cloud platform 106, and the twin manager 108 can each be separate services deployed on the same or different computing systems. In some embodiments, the cloud platform 106 and the twin manager 108 are implemented in off premises computing systems, e.g., outside a building. The edge platform 102 can be implemented on-premises, e.g., within the building. However, any combination of on-premises and off-premises components of the building data platform 100 can be implemented.


The building data platform 100 includes applications 110. The applications 110 can be various applications that operate to manage the building subsystems 122. The applications 110 can be remote or on-premises applications (or a hybrid of both) that run on various computing systems. The applications 110 can include an alarm application 168 configured to manage alarms for the building subsystems 122. The applications 110 include an assurance application 170 that implements assurance services for the building subsystems 122. In some embodiments, the applications 110 include an energy application 172 configured to manage the energy usage of the building subsystems 122. The applications 110 include a security application 174 configured to manage security systems of the building.


In some embodiments, the applications 110 and/or the cloud platform 106 interacts with a user device 176. In some embodiments, a component or an entire application of the applications 110 runs on the user device 176. The user device 176 may be a laptop computer, a desktop computer, a smartphone, a tablet, and/or any other device with an input interface (e.g., touch screen, mouse, keyboard, etc.) and an output interface (e.g., a speaker, a display, etc.).


The applications 110, the twin manager 108, the cloud platform 106, and the edge platform 102 can be implemented on one or more computing systems, e.g., on processors and/or memory devices. For example, the edge platform 102 includes processor(s) 118 and memories 120, the cloud platform 106 includes processor(s) 124 and memories 126, the applications 110 include processor(s) 164 and memories 166, and the twin manager 108 includes processor(s) 148 and memories 150.


The processors can be a general purpose or specific purpose processors, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable processing components. The processors may be configured to execute computer code and/or instructions stored in the memories or received from other computer readable media (e.g., CDROM, network storage, a remote server, etc.).


The memories can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. The memories can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. The memories can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. The memories can be communicably connected to the processors and can include computer code for executing (e.g., by the processors) one or more processes described herein.


The edge platform 102 can be configured to provide connection to the building subsystems 122. The edge platform 102 can receive messages from the building subsystems 122 and/or deliver messages to the building subsystems 122. The edge platform 102 includes one or multiple gateways, e.g., the gateways 112-116. The gateways 112-116 can act as a gateway between the cloud platform 106 and the building subsystems 122. The gateways 112-116 can be the gateways described in U.S. Provisional Patent Application No. 62/951,897 filed Dec. 20, 2019, the entirety of which is incorporated by reference herein. In some embodiments, the applications 110 can be deployed on the edge platform 102. In this regard, lower latency in management of the building subsystems 122 can be realized.


The edge platform 102 can be connected to the cloud platform 106 via a network 104. The network 104 can communicatively couple the devices and systems of building data platform 100. In some embodiments, the network 104 is at least one of and/or a combination of a Wi-Fi network, a wired Ethernet network, a ZigBee network, a Bluetooth network, and/or any other wireless network. The network 104 may be a local area network or a wide area network (e.g., the Internet, a building WAN, etc.) and may use a variety of communications protocols (e.g., BACnet, IP, LON, etc.). The network 104 may include routers, modems, servers, cell towers, satellites, and/or network switches. The network 104 may be a combination of wired and wireless networks.


The cloud platform 106 can be configured to facilitate communication and routing of messages between the applications 110, the twin manager 108, the edge platform 102, and/or any other system. The cloud platform 106 can include a platform manager 128, a messaging manager 140, a command processor 136, and an enrichment manager 138. In some embodiments, the cloud platform 106 can facilitate messaging between the building data platform 100 via the network 104.


The messaging manager 140 can be configured to operate as a transport service that controls communication with the building subsystems 122 and/or any other system, e.g., managing commands to devices (C2D), commands to connectors (C2C) for external systems, commands from the device to the cloud (D2C), and/or notifications. The messaging manager 140 can receive different types of data from the applications 110, the twin manager 108, and/or the edge platform 102. The messaging manager 140 can receive change on value data 142, e.g., data that indicates that a value of a point has changed. The messaging manager 140 can receive timeseries data 144, e.g., a time correlated series of data entries each associated with a particular time stamp. Furthermore, the messaging manager 140 can receive command data 146. All of the messages handled by the cloud platform 106 can be handled as an event, e.g., the data 142-146 can each be packaged as an event with a data value occurring at a particular time (e.g., a temperature measurement made at a particular time).


The cloud platform 106 includes a command processor 136. The command processor 136 can be configured to receive commands to perform an action from the applications 110, the building subsystems 122, the user device 176, etc. The command processor 136 can manage the commands, determine whether the commanding system is authorized to perform the particular commands, and communicate the commands to the commanded system, e.g., the building subsystems 122 and/or the applications 110. The commands could be a command to change an operational setting that control environmental conditions of a building, a command to run analytics, etc.


The cloud platform 106 includes an enrichment manager 138. The enrichment manager 138 can be configured to enrich the events received by the messaging manager 140. The enrichment manager 138 can be configured to add contextual information to the events. The enrichment manager 138 can communicate with the twin manager 108 to retrieve the contextual information. In some embodiments, the contextual information is an indication of information related to the event. For example, if the event is a timeseries temperature measurement of a thermostat, contextual information such as the location of the thermostat (e.g., what room), the equipment controlled by the thermostat (e.g., what VAV), etc. can be added to the event. In this regard, when a consuming application, e.g., one of the applications 110 receives the event, the consuming application can operate based on the data of the event, the temperature measurement, and also the contextual information of the event.


The enrichment manager 138 can solve a problem that when a device produces a significant amount of information, the information may contain simple data without context. An example might include the data generated when a user scans a badge at a badge scanner of the building subsystems 122. This physical event can generate an output event including such information as “DeviceBadgeScannerID,” “BadgeID,” and/or “Date/Time.” However, if a system sends this data to a consuming application, e.g., Consumer A and a Consumer B, each customer may need to call the building data platform knowledge service to query information with queries such as, “What space, build, floor is that badge scanner in?” or “What user is associated with that badge?”


By performing enrichment on the data feed, a system can be able to perform inferences on the data. A result of the enrichment may be transformation of the message “DeviceBadgeScannerId, BadgeId, Date/Time,” to “Region, Building, Floor, Asset, DeviceId, BadgeId, UserName, EmployeeId, Date/Time Scanned.” This can be a significant optimization, as a system can reduce the number of calls by 1/n, where n is the number of consumers of this data feed.


By using this enrichment, a system can also have the ability to filter out undesired events. If there are 100 building in a campus that receive 100,000 events per building each hour, but only 1 building is actually commissioned, only 1/10 of the events are enriched. By looking at what events are enriched and what events are not enriched, a system can do traffic shaping of forwarding of these events to reduce the cost of forwarding events that no consuming application wants or reads.


An example of an event received by the enrichment manager 138 may be:

















{



“id”: “someguid”,



“eventType”: “Device_Heartbeat”,



“eventTime”: “2018-01-27T00:00:00+00:00”



“eventValue”: 1,



“deviceID”: “someguid”



}










An example of an enriched event generated by the enrichment manager 138 may be:

















{



“id”: “someguid”,



“eventType”: “Device_Heartbeat”,



“eventTime”: “2018-01-27T00:00:00+00:00”



“eventValue”: 1,



“devicelD”: “someguid”,



“buildingName”: “Building-48”,



“buildingID”: “SomeGuid”,



“panelID”: “SomeGuid”,



“panelName”: “Building-48-Panel-13”,



“cityID”: 371,



“cityName”: “Milwaukee”,



“stateID”: 48,



“stateName”: “Wisconsin (WI)”,



“countryID”: 1,



“countryName”: “United States”



}










By receiving enriched events, an application of the applications 110 can be able to populate and/or filter what events are associated with what areas. Furthermore, user interface generating applications can generate user interfaces that include the contextual information based on the enriched events.


The cloud platform 106 includes a platform manager 128. The platform manager 128 can be configured to manage the users and/or subscriptions of the cloud platform 106. For example, what subscribing building, user, and/or tenant utilizes the cloud platform 106. The platform manager 128 includes a provisioning service 130 configured to provision the cloud platform 106, the edge platform 102, and the twin manager 108. The platform manager 128 includes a subscription service 132 configured to manage a subscription of the building, user, and/or tenant while the entitlement service 134 can track entitlements of the buildings, users, and/or tenants.


The twin manager 108 can be configured to manage and maintain a digital twin. The digital twin can be a digital representation of the physical environment, e.g., a building. The twin manager 108 can include a change feed generator 152, a schema and ontology 154, a projection manager 156, a policy manager 158, an entity, relationship, and event database 160, and a graph projection database 162.


The graph projection manager 156 can be configured to construct graph projections and store the graph projections in the graph projection database 162. Examples of graph projections are shown in FIGS. 11-13. Entities, relationships, and events can be stored in the database 160. The graph projection manager 156 can retrieve entities, relationships, and/or events from the database 160 and construct a graph projection based on the retrieved entities, relationships and/or events. In some embodiments, the database 160 includes an entity-relationship collection for multiple subscriptions. Subscriptions can be subscriptions of a particular tenant as described in FIG. 24.


In some embodiment, the graph projection manager 156 generates a graph projection for a particular user, application, subscription, and/or system. In this regard, the graph projection can be generated based on policies for the particular user, application, and/or system in addition to an ontology specific for that user, application, and/or system. In this regard, an entity could request a graph projection and the graph projection manager 156 can be configured to generate the graph projection for the entity based on policies and an ontology specific to the entity. The policies can indicate what entities, relationships, and/or events the entity has access to. The ontology can indicate what types of relationships between entities the requesting entity expects to see, e.g., floors within a building, devices within a floor, etc. Another requesting entity may have an ontology to see devices within a building and applications for the devices within the graph.


The graph projections generated by the graph projection manager 156 and stored in the graph projection database 162 can be a knowledge graph and is an integration point. For example, the graph projections can represent floor plans and systems associated with each floor. Furthermore, the graph projections can include events, e.g., telemetry data of the building subsystems 122. The graph projections can show application services as nodes and API calls between the services as edges in the graph. The graph projections can illustrate the capabilities of spaces, users, and/or devices. The graph projections can include indications of the building subsystems 122, e.g., thermostats, cameras, VAVs, etc. The graph projection database 162 can store graph projections that keep up a current state of a building.


The graph projections of the graph projection database 162 can be digital twins of a building. Digital twins can be digital replicas of physical entities that enable an in-depth analysis of data of the physical entities and provide the potential to monitor systems to mitigate risks, manage issues, and utilize simulations to test future solutions. Digital twins can play an important role in helping technicians find the root cause of issues and solve problems faster, in supporting safety and security protocols, and in supporting building managers in more efficient use of energy and other facilities resources. Digital twins can be used to enable and unify security systems, employee experience, facilities management, sustainability, etc.


In some embodiments the enrichment manager 138 can use a graph projection of the graph projection database 162 to enrich events. In some embodiments, the enrichment manager 138 can identify nodes and relationships that are associated with, and are pertinent to, the device that generated the event. For example, the enrichment manager 138 could identify a thermostat generating a temperature measurement event within the graph. The enrichment manager 138 can identify relationships between the thermostat and spaces, e.g., a zone that the thermostat is located in. The enrichment manager 138 can add an indication of the zone to the event.


Furthermore, the command processor 136 can be configured to utilize the graph projections to command the building subsystems 122. The command processor 136 can identify a policy for a commanding entity within the graph projection to determine whether the commanding entity has the ability to make the command. For example, the command processor 136, before allowing a user to make a command, determine, based on the graph projection database 162, to determine that the user has a policy to be able to make the command.


In some embodiments, the policies can be conditional based policies. For example, the building data platform 100 can apply one or more conditional rules to determine whether a particular system has the ability to perform an action. In some embodiments, the rules analyze a behavioral based biometric. For example, a behavioral based biometric can indicate normal behavior and/or normal behavior rules for a system. In some embodiments, when the building data platform 100 determines, based on the one or more conditional rules, that an action requested by a system does not match a normal behavior, the building data platform 100 can deny the system the ability to perform the action and/or request approval from a higher level system.


For example, a behavior rule could indicate that a user has access to log into a system with a particular IP address between 8 A.M. through 5 P.M. However, if the user logs in to the system at 7 P.M., the building data platform 100 may contact an administrator to determine whether to give the user permission to log in.


The change feed generator 152 can be configured to generate a feed of events that indicate changes to the digital twin, e.g., to the graph. The change feed generator 152 can track changes to the entities, relationships, and/or events of the graph. For example, the change feed generator 152 can detect an addition, deletion, and/or modification of a node or edge of the graph, e.g., changing the entities, relationships, and/or events within the database 160. In response to detecting a change to the graph, the change feed generator 152 can generate an event summarizing the change. The event can indicate what nodes and/or edges have changed and how the nodes and edges have changed. The events can be posted to a topic by the change feed generator 152.


The change feed generator 152 can implement a change feed of a knowledge graph. The building data platform 100 can implement a subscription to changes in the knowledge graph. When the change feed generator 152 posts events in the change feed, subscribing systems or applications can receive the change feed event. By generating a record of all changes that have happened, a system can stage data in different ways, and then replay the data back in whatever order the system wishes. This can include running the changes sequentially one by one and/or by jumping from one major change to the next. For example, to generate a graph at a particular time, all change feed events up to the particular time can be used to construct the graph.


The change feed can track the changes in each node in the graph and the relationships related to them, in some embodiments. If a user wants to subscribe to these changes and the user has proper access, the user can simply submit a web API call to have sequential notifications of each change that happens in the graph. A user and/or system can replay the changes one by one to reinstitute the graph at any given time slice. Even though the messages are “thin” and only include notification of change and the reference “id/seq id,” the change feed can keep a copy of every state of each node and/or relationship so that a user and/or system can retrieve those past states at any time for each node. Furthermore, a consumer of the change feed could also create dynamic “views” allowing different “snapshots” in time of what the graph looks like from a particular context. While the twin manager 108 may contain the history and the current state of the graph based upon schema evaluation, a consumer can retain a copy of that data, and thereby create dynamic views using the change feed.


The schema and ontology 154 can define the message schema and graph ontology of the twin manager 108. The message schema can define what format messages received by the messaging manager 140 should have, e.g., what parameters, what formats, etc. The ontology can define graph projections, e.g., the ontology that a user wishes to view. For example, various systems, applications, and/or users can be associated with a graph ontology. Accordingly, when the graph projection manager 156 generates an graph projection for a user, system, or subscription, the graph projection manager 156 can generate a graph projection according to the ontology specific to the user. For example, the ontology can define what types of entities are related in what order in a graph, for example, for the ontology for a subscription of “Customer A,” the graph projection manager 156 can create relationships for a graph projection based on the rule:

    • Regioncustom characterBuildingcustom characterFloorcustom characterSpacecustom characterAsset


For the ontology of a subscription of “Customer B,” the graph projection manager 156 can create relationships based on the rule:

    • Buildingcustom characterFloorcustom characterAsset


The policy manager 158 can be configured to respond to requests from other applications and/or systems for policies. The policy manager 158 can consult a graph projection to determine what permissions different applications, users, and/or devices have. The graph projection can indicate various permissions that different types of entities have and the policy manager 158 can search the graph projection to identify the permissions of a particular entity. The policy manager 158 can facilitate fine grain access control with user permissions. The policy manager 158 can apply permissions across a graph, e.g., if “user can view all data associated with floor 1” then they see all subsystem data for that floor, e.g., surveillance cameras, HVAC devices, fire detection and response devices, etc.


The twin manager 108 includes a query manager 165 and a twin function manager 167. The query manger 164 can be configured to handle queries received from a requesting system, e.g., the user device 176, the applications 110, and/or any other system. The query manager 165 can receive queries that include query parameters and context. The query manager 165 can query the graph projection database 162 with the query parameters to retrieve a result. The query manager 165 can then cause an event processor, e.g., a twin function, to operate based on the result and the context. In some embodiments, the query manager 165 can select the twin function based on the context and/or perform operates based on the context. In some embodiments, the query manager 165 is configured to perform the operations described with reference to FIGS. 5-10.


The twin function manager 167 can be configured to manage the execution of twin functions. The twin function manager 167 can receive an indication of a context query that identifies a particular data element and/or pattern in the graph projection database 162. Responsive to the particular data element and/or pattern occurring in the graph projection database 162 (e.g., based on a new data event added to the graph projection database 162 and/or change to nodes or edges of the graph projection database 162, the twin function manager 167 can cause a particular twin function to execute. The twin function can execute based on an event, context, and/or rules. The event can be data that the twin function executes against. The context can be information that provides a contextual description of the data, e.g., what device the event is associated with, what control point should be updated based on the event, etc. The twin function manager 167 can be configured to perform the operations of the FIGS. 11-15.


Referring now to FIG. 2, a graph projection 200 of the twin manager 108 including application programming interface (API) data, capability data, policy data, and services is shown, according to an exemplary embodiment. The graph projection 200 includes nodes 202-240 and edges 250-272. The nodes 202-240 and the edges 250-272 are defined according to the key 201. The nodes 202-240 represent different types of entities, devices, locations, points, persons, policies, and software services (e.g., API services). The edges 250-272 represent relationships between the nodes 202-240, e.g., dependent calls, API calls, inferred relationships, and schema relationships (e.g., BRICK relationships).


The graph projection 200 includes a device hub 202 which may represent a software service that facilitates the communication of data and commands between the cloud platform 106 and a device of the building subsystems 122, e.g., door actuator 214. The device hub 202 is related to a connector 204, an external system 206, and a digital asset “Door Actuator” 208 by edge 250, edge 252, and edge 254.


The cloud platform 106 can be configured to identify the device hub 202, the connector 204, the external system 206 related to the door actuator 214 by searching the graph projection 200 and identifying the edges 250-254 and edge 258. The graph projection 200 includes a digital representation of the “Door Actuator,” node 208. The digital asset “Door Actuator” 208 includes a “DeviceNameSpace” represented by node 207 and related to the digital asset “Door Actuator” 208 by the “Property of Object” edge 256.


The “Door Actuator” 214 has points and timeseries. The “Door Actuator” 214 is related to “Point A” 216 by a “has_a” edge 260. The “Door Actuator” 214 is related to “Point B” 218 by a “has_A” edge 258. Furthermore, timeseries associated with the points A and B are represented by nodes “TS” 220 and “TS” 222. The timeseries are related to the points A and B by “has_a” edge 264 and “has_a” edge 262. The timeseries “TS” 220 has particular samples, sample 210 and 212 each related to “TS” 220 with edges 268 and 266 respectively. Each sample includes a time and a value. Each sample may be an event received from the door actuator that the cloud platform 106 ingests into the entity, relationship, and event database 160, e.g., ingests into the graph projection 200.


The graph projection 200 includes a building 234 representing a physical building. The building includes a floor represented by floor 232 related to the building 234 by the “has_a” edge from the building 234 to the floor 232. The floor has a space indicated by the edge “has_a” 270 between the floor 232 and the space 230. The space has particular capabilities, e.g., is a room that can be booked for a meeting, conference, private study time, etc. Furthermore, the booking can be canceled. The capabilities for the floor 232 are represented by capabilities 228 related to space 230 by edge 280. The capabilities 228 are related to two different commands, command “book room” 224 and command “cancel booking” 226 related to capabilities 228 by edge 284 and edge 282 respectively.


If the cloud platform 106 receives a command to book the space represented by the node, space 230, the cloud platform 106 can search the graph projection 200 for the capabilities for the 228 related to the space 230 to determine whether the cloud platform 106 can book the room.


In some embodiments, the cloud platform 106 could receive a request to book a room in a particular building, e.g., the building 234. The cloud platform 106 could search the graph projection 200 to identify spaces that have the capabilities to be booked, e.g., identify the space 230 based on the capabilities 228 related to the space 230. The cloud platform 106 can reply to the request with an indication of the space and allow the requesting entity to book the space 230.


The graph projection 200 includes a policy 236 for the floor 232. The policy 236 is related set for the floor 232 based on a “To Floor” edge 274 between the policy 236 and the floor 232. The policy 236 is related to different roles for the floor 232, read events 238 via edge 276 and send command 240 via edge 278. The policy 236 is set for the entity 203 based on has edge 251 between the entity 203 and the policy 236.


The twin manager 108 can identify policies for particular entities, e.g., users, software applications, systems, devices, etc. based on the policy 236. For example, if the cloud platform 106 receives a command to book the space 230. The cloud platform 106 can communicate with the twin manager 108 to verify that the entity requesting to book the space 230 has a policy to book the space. The twin manager 108 can identify the entity requesting to book the space as the entity 203 by searching the graph projection 200. Furthermore, the twin manager 108 can further identify the edge has 251 between the entity 203 and the policy 236 and the edge 1178 between the policy 236 and the command 240.


Furthermore, the twin manager 108 can identify that the entity 203 has the ability to command the space 230 based on the edge 1174 between the policy 236 and the edge 270 between the floor 232 and the space 230. In response to identifying the entity 203 has the ability to book the space 230, the twin manager 108 can provide an indication to the cloud platform 106.


Furthermore, if the entity makes a request to read events for the space 230, e.g., the sample 210 and the sample 212, the twin manager 108 can identify the edge has 251 between the entity 203 and the policy 236, the edge 1178 between the policy 236 and the read events 238, the edge 1174 between the policy 236 and the floor 232, the “has_a” edge 270 between the floor 232 and the space 230, the edge 268 between the space 230 and the door actuator 214, the edge 260 between the door actuator 214 and the point A 216, the “has_a” edge 264 between the point A 216 and the TS 220, and the edges 268 and 266 between the TS 220 and the samples 210 and 212 respectively.


Referring now to FIG. 3, a graph projection 300 of the twin manager 108 including application programming interface (API) data, capability data, policy data, and services is shown, according to an exemplary embodiment. The graph projection 300 includes the nodes and edges described in the graph projection 200 of FIG. 2. The graph projection 300 includes a connection broker 354 related to capabilities 228 by edge 398a. The connection broker 354 can be a node representing a software application configured to facilitate a connection with another software application. In some embodiments, the cloud platform 106 can identify the system that implements the capabilities 228 by identifying the edge 398a between the capabilities 228 and the connection broker 354.


The connection broker 354 is related to an agent that optimizes a space 356 via edge 398b. The agent represented by the node 356 can book and cancel bookings for the space represented by the node 230 based on the edge 398b between the connection broker 354 and the node 356 and the edge 398a between the capabilities 228 and the connection broker 354.


The connection broker 354 is related to a cluster 308 by edge 398c. Cluster 308 is related to connector B 302 via edge 398e and connector A 306 via edge 398d. The connector A 306 is related to an external subscription service 304. A connection broker 310 is related to cluster 308 via an edge 311 representing a rest call that the connection broker represented by node 310 can make to the cluster represented by cluster 308.


The connection broker 310 is related to a virtual meeting platform 312 by an edge 354. The node 312 represents an external system that represents a virtual meeting platform. The connection broker represented by node 310 can represent a software component that facilitates a connection between the cloud platform 106 and the virtual meeting platform represented by node 312. When the cloud platform 106 needs to communicate with the virtual meeting platform represented by the node 312, the cloud platform 106 can identify the edge 354 between the connection broker 310 and the virtual meeting platform 312 and select the connection broker represented by the node 310 to facilitate communication with the virtual meeting platform represented by the node 312.


A capabilities node 318 can be connected to the connection broker 310 via edge 360. The capabilities 318 can be capabilities of the virtual meeting platform represented by the node 312 and can be related to the node 312 through the edge 360 to the connection broker 310 and the edge 354 between the connection broker 310 and the node 312. The capabilities 318 can define capabilities of the virtual meeting platform represented by the node 312. The node 320 is related to capabilities 318 via edge 362. The capabilities may be an invite bob command represented by node 316 and an email bob command represented by node 314. The capabilities 318 can be linked to a node 320 representing a user, Bob. The cloud platform 106 can facilitate email commands to send emails to the user Bob via the email service represented by the node 304. The node 304 is related to the connect a node 306 via edge 398f Furthermore, the cloud platform 106 can facilitate sending an invite for a virtual meeting via the virtual meeting platform represented by the node 312 linked to the node 318 via the edge 358.


The node 320 for the user Bob can be associated with the policy 236 via the “has” edge 364. Furthermore, the node 320 can have a “check policy” edge 366 with a portal node 324. The device API node 328 has a check policy edge 370 to the policy node 236. The portal node 324 has an edge 368 to the policy node 236. The portal node 324 has an edge 323 to a node 326 representing a user input manager (UIM). The portal node 324 is related to the UIM node 326 via an edge 323. The UIM node 326 has an edge 323 to a device API node 328. The UIM node 326 is related to the door actuator node 214 via edge 372. The door actuator node 214 has an edge 374 to the device API node 328. The door actuator 214 has an edge 335 to the connector virtual object 334. The device hub 332 is related to the connector virtual object via edge 380. The device API node 328 can be an API for the door actuator 214. The connector virtual object 334 is related to the device API node 328 via the edge 331.


The device API node 328 is related to a transport connection broker 330 via an edge 329. The transport connection broker 330 is related to a device hub 332 via an edge 378. The device hub represented by node 332 can be a software component that hands the communication of data and commands for the door actuator 214. The cloud platform 106 can identify where to store data within the graph projection 300 received from the door actuator by identifying the nodes and edges between the points 216 and 218 and the device hub node 332. Similarly, the cloud platform 308 can identify commands for the door actuator that can be facilitated by the device hub represented by the node 332, e.g., by identifying edges between the device hub node 332 and an open door node 352 and an lock door node 350. The door actuator 114 has an edge “has mapped an asset” 280 between the node 214 and a capabilities node 348. The capabilities node 348 and the nodes 352 and 350 are linked by edges 396 and 394.


The device hub 332 is linked to a cluster 336 via an edge 384. The cluster 336 is linked to connector A 340 and connector B 338 by edges 386 and the edge 389. The connector A 340 and the connector B 338 is linked to an external system 344 via edges 388 and 390. The external system 344 is linked to a door actuator 342 via an edge 392.


Referring now to FIG. 4, a graph projection 400 of the twin manager 108 including equipment and capability data for the equipment is shown, according to an exemplary embodiment. The graph projection 400 includes nodes 402-456 and edges 360-498f. The cloud platform 106 can search the graph projection 400 to identify capabilities of different pieces of equipment.


A building node 404 represents a particular building that includes two floors. A floor 1 node 402 is linked to the building node 404 via edge 460 while a floor 2 node 406 is linked to the building node 404 via edge 462. The floor 2 includes a particular room 2023 represented by edge 464 between floor 2 node 406 and room 2023 node 408. Various pieces of equipment are included within the room 2023. A light represented by light node 416, a bedside lamp node 414, a bedside lamp node 412, and a hallway light node 410 are related to room 2023 node 408 via edge 466, edge 472, edge 470, and edge 468.


The light represented by light node 416 is related to a light connector 426 via edge 484. The light connector 426 is related to multiple commands for the light represented by the light node 416 via edges 484, 486, and 488. The commands may be a brightness setpoint 424, an on command 425, and a hue setpoint 428. The cloud platform 106 can receive a request to identify commands for the light represented by the light 416 and can identify the nodes 424-428 and provide an indication of the commands represented by the node 424-428 to the requesting entity. The requesting entity can then send commands for the commands represented by the nodes 424-428.


The bedside lamp node 414 is linked to a bedside lamp connector 481 via an edge 413. The connector 481 is related to commands for the bedside lamp represented by the bedside lamp node 414 via edges 492, 496, and 494. The command nodes are a brightness setpoint node 432, an on command node 434, and a color command 436. The hallway light 410 is related to a hallway light connector 446 via an edge 498d. The hallway light connector 446 is linked to multiple commands for the hallway light node 410 via edges 498g, 498f, and 498e. The commands are represented by an on command node 452, a hue setpoint node 450, and a light bulb activity node 448.


The graph projection 400 includes a name space node 422 related to a server A node 418 and a server B node 420 via edges 474 and 476. The name space node 422 is related to the bedside lamp connector 481, the bedside lamp connector 444, and the hallway light connector 446 via edges 482, 480, and 478. The bedside lamp connector 444 is related to commands, e.g., the color command node 440, the hue setpoint command 438, a brightness setpoint command 456, and an on command 454 via edges 498c, 498b, 498a, and 498.


Referring now to FIG. 5, a system 500 for managing a digital twin where an artificial intelligence agent can be executed to infer and/or predict information for an entity of a graph is shown, according to an exemplary embodiment. The system 500 can be components of the building data platform 100, e.g., components run on the processors and memories of the edge platform 102, the cloud platform 106, the twin manager 108, and/or the applications 110. The system 500 can, in some implementations, implement a digital twin with artificial intelligence.


A digital twin (or a shadow) may be a computing entity that describes a physical thing (e.g., a building, spaces of a building, devices of a building, people of the building, equipment of the building, etc.) through modeling the physical thing through a set of attributes that define the physical thing. A digital twin can refer to a digital replica of physical assets (a physical device twin) and can be extended to store processes, people, places, systems that can be used for various purposes. The digital twin can include both the ingestion of information and actions learned and executed through artificial intelligence agents.


In FIG. 5, the digital twin can be a graph 529 managed by the twin manager 108 and/or artificial intelligence agents 570. In some embodiments, the digital twin is the combination of the graph 529 with the artificial intelligence agents 570. In some embodiments, the digital twin enables the creation of a chronological time-series database of telemetry events for analytical purposes. In some embodiments, the graph 529 uses the BRICK schema.


The twin manager 108 stores the graph 529 which may be a graph data structure including various nodes and edges interrelating the nodes. The graph 529 may be the same as, or similar to, the graph projections described herein with reference to FIGS. 1-4. The graph 529 includes nodes 510-526 and edges 528-546. The graph 529 includes a building node 526 representing a building that has a floor indicated by the “has” edge 546 to the floor node 522. The floor node 522 is relate to a zone node 510 via a “has” edge 544 indicating that the floor represented by the node 522 has a zone represented by the zone 510.


The floor node 522 is related to the zone node 518 by the “has” edge 540 indicating that the floor represented by the floor node 522 has another zone represented by the zone node 518. The floor node 522 is related to another zone node 524 via a “has” edge 542 representing that the floor represented by the floor node 522 has a third zone represented by the zone node 524.


The graph 529 includes an AHU node 514 representing an AHU of the building represented by the building node 526. The AHU node 514 is related by a “supplies” edge 530 to the VAV node 512 to represent that the AHU represented by the AHU node 514 supplies air to the VAV represented by the VAV node 512. The AHU node 514 is related by a “supplies” edge 536 to the VAV node 520 to represent that the AHU represented by the AHU node 514 supplies air to the VAV represented by the VAV node 520. The AHU node 514 is related by a “supplies” edge 532 to the VAV node 516 to represent that the AHU represented by the AHU node 514 supplies air to the VAV represented by the VAV node 516.


The VAV node 516 is related to the zone node 518 via the “serves” edge 534 to represent that the VAV represented by the VAV node 516 serves (e.g., heats or cools) the zone represented by the zone node 518. The VAV node 520 is related to the zone node 524 via the “serves” edge 538 to represent that the VAV represented by the VAV node 520 serves (e.g., heats or cools) the zone represented by the zone node 524. The VAV node 512 is related to the zone node 510 via the “serves” edge 528 to represent that the VAV represented by the VAV node 512 serves (e.g., heats or cools) the zone represented by the zone node 510.


Furthermore, the graph 529 includes an edge 533 related to a timeseries node 564. The timeseries node 564 can be information stored within the graph 529 and/or can be information stored outside the graph 529 in a different database (e.g., a timeseries database). In some embodiments, the timeseries node 564 stores timeseries data (or any other type of data) for a data point of the VAV represented by the VAV node 516. The data of the timeseries node 564 can be aggregated and/or collected telemetry data of the timeseries node 564.


Furthermore, the graph 529 includes an edge 537 related to a timeseries node 566. The timeseries node 566 can be information stored within the graph 529 and/or can be information stored outside the graph 529 in a different database (e.g., a timeseries database). In some embodiments, the timeseries node 566 stores timeseries data (or any other type of data) for a data point of the VAV represented by the VAV node 516. The data of the timeseries node 564 can be inferred information, e.g., data inferred by one of the artificial intelligence agents 570 and written into the timeseries node 564 by the artificial intelligence agent 570. In some embodiments, the timeseries 546 and/or 566 are stored in the graph 529 but are stored as references to timeseries data stored in a timeseries database.


The twin manager 108 includes various software components. For example, the twin manager 108 includes a device management component 548 for managing devices of a building. The twin manager 108 includes a tenant management component 550 for managing various tenant subscriptions. The twin manager 108 includes an event routing component 552 for routing various events. The twin manager 108 includes an authentication and access component 554 for performing user and/or system authentication and grating the user and/or system access to various spaces, pieces of software, devices, etc. The twin manager 108 includes a commanding component 556 allowing a software application and/or user to send commands to physical devices. The twin manager 108 includes an entitlement component 558 that analyzes the entitlements of a user and/or system and grants the user and/or system abilities based on the entitlements. The twin manager 108 includes a telemetry component 560 that can receive telemetry data from physical systems and/or devices and ingest the telemetry data into the graph 529. Furthermore, the twin manager 108 includes an integrations component 562 allowing the twin manager 108 to integrate with other applications.


The twin manager 108 includes a gateway 506 and a twin connector 508. The gateway 506 can be configured to integrate with other systems and the twin connector 508 can be configured to allow the gateway 506 to integrate with the twin manager 108. The gateway 506 and/or the twin connector 508 can receive an entitlement request 502 and/or an inference request 504. The entitlement request 502 can be a request received from a system and/or a user requesting that an AI agent action be taken by the AI agent 570. The entitlement request 502 can be checked against entitlements for the system and/or user to verify that the action requested by the system and/or user is allowed for the user and/or system. The inference request 504 can be a request that the AI agent 570 generates an inference, e.g., a projection of information, a prediction of a future data measurement, an extrapolated data value, etc.


The cloud platform 106 is shown to receive an entitlement request 586. The request 586 can be received from a system, application, and/or user device (e.g., from the applications 110, the building subsystems 122, and/or the user device 176). The entitlement request 586 may be a manual or automated request. In some embodiments, the request 586 can be automated via an API request, e.g., when such an entitlement to an AI model is enabled for a particular tenant/end-customer of the data platform 100. In some embodiments, the request 586 may be a manual request by a person asking for an inference/future state of the building. The request 586 could be automatically made to keep the state updated on a particular cadence. In some embodiments, a request for a future state of one digital twin can cause a re-calculation of the future states of related digital twins automatically. For example, based on a request asking for the future occupancy of a room in a building in the coming week, a re-calculation of the future AHU operating value recommendations to reduce the spread of infectious diseases may be triggered. The results of these automatic triggers determining future states not directly requested by the request 586 can be collected and presented to the caller of the request 586 as causal future states.


The entitlement request 586 may be a request for the AI agent 570 to perform an action, e.g., an action that the requesting system and/or user has an entitlement for. The cloud platform 106 can receive the entitlement request 586 and check the entitlement request 586 against an entitlement database 584 storing a set of entitlements to verify that the requesting system has access to the user and/or system. The cloud platform 106, responsive to the entitlement request 586 being approved, can create a job for the AI agent 570 to perform. The created job can be added to a job request topic 580 of a set of topics 578.


The job request topic 580 can be fed to AI agents 570. For example, the topics 580 can be fanned out to various AI agents 570 based on the AI agent that each of the topics 580 pertains to (e.g., based on an identifier that identifies an agent and is included in each job of the topic 580). The AI agents 570 include a service client 572, a connector 574, and a model 576. The model 576 can be loaded into the AI agent 570 from a set of AI models stored in the AI model storage 568. The AI model storage 568 can store models for making energy load predictions for a building, weather forecasting models for predicting a weather forecast, action/decision models to take certain actions responsive to certain conditions being met, an occupancy model for predicting occupancy of a space and/or a building, etc. The models of the AI model storage 568 can be neural networks (e.g., convolutional neural networks, recurrent neural networks, deep learning networks, etc.), decision trees, support vector machines, and/or any other type of artificial intelligence, machine learning, and/or deep learning category. In some embodiments, the models are rule based triggers and actions that include various parameters for setting a condition and defining an action.


The AI agent 570 can include triggers 595 and actions 597. The triggers 595 can be conditional rules that, when met, cause one or more of the actions 597. The triggers 595 can be executed based on information stored in the graph 529 and/or data received from the building subsystems 122. The actions 597 can be executed to determine commands, actions, and/or outputs. The output of the actions 597 can be stored in the graph 529 and/or communicated to the building subsystems 122.


In some embodiments, the triggers 595 and/or the actions 597 are stored as nodes in the graph 529. The nodes for the triggers 595 and/or the actions 597 can be stored as capability nodes. Capability nodes may be nodes that describe operations that a digital twin can perform (e.g., is configured and/or capable of performing). Capabilities are described with reference to FIGS. 1-4. In some embodiments, the graph 529 stores a first node representing a particular digital twin, agent, artificial intelligence, machine learning entity, etc. The graph 529 can further store one or more second nodes related to the first node via one or more edges (or one or more nodes). The one or more second nodes may describe capabilities of the digital twin, agent, artificial intelligence, machine learning entity, etc. The capabilities may be triggers and/or actions (e.g., the triggers 595 and/or actions 597). The first node may be related to a particular component node (e.g., the VAV node 516) via another edge to represent that the digital twin, agent, artificial intelligence, machine learning entity, etc. makes inferences or other data determinations for the component (e.g., a VAV) represented by the particular component node (e.g., the VAV node 516).


The AI agent 570 can include a service client 572 that causes an instance of an AI agent to run. The instance can be hosted by the artificial intelligence service client 588. The client 588 can cause a client instance 592 to run and communicate with the AI agent 570 via a gateway 590. The client instance 592 can include a service application 594 that interfaces with a core algorithm 598 via a functional interface 596. The core algorithm 598 can run the model 576, e.g., train the model 576 and/or use the model 576 to make inferences and/or predictions.


In some embodiments, the core algorithm 598 can be configured to perform learning based on the graph 529. In some embodiments, the core algorithm 598 can read and/or analyze the nodes and relationships of the graph 529 to make decisions. In some embodiments, the core algorithm 598 can be configured to use telemetry data (e.g., the timeseries data 564) from the graph 529 to make inferences on and/or perform model learning. In some embodiments, the result of the inferences can be the timeseries 566. In some embodiments, the timeseries 564 is an input into the model 576 that predicts the timeseries 566.


In some embodiments, the core algorithm 598 can generate the timeseries 566 as an inference for a data point, e.g., a prediction of values for the data point at future times. The timeseries 564 may be actual data for the data point. In this regard, the core algorithm 598 can learn and train by comparing the inferred data values against the true data values. In this regard, the model 576 can be trained by the core algorithm 598 to improve the inferences made by the model 576.


Referring now to FIG. 6, a process 600 for executing an artificial intelligence agent to infer and/or predict information is shown, according to an exemplary embodiment. The process 600 can be performed by the system 500 and/or components of the system 500. The process 600 can be performed by the building data platform 100. Furthermore, the process 600 can be performed by any computing device described herein.


In step 602, the twin manager 108 receives information from a physical device and stores the information, or a link to the information, in the graph 529. For example, the telemetry component 560 can receive telemetry data from physical devices, e.g., the building subsystems 122. The telemetry can be measured data values, a log of historical equipment commands, etc. The telemetry component 560 can store the received information in the graph 529 by relating a node storing the information to a node representing the physical device. For example, the telemetry component 560 can store timeseries data as the timeseries 566 along by identifying that the physical device is a VAV represented by the VAV node 516 and that an edge 537 relates the VAV node 516 to the timeseries node 566.


In step 604, the twin manager 108 and/or the cloud platform 106 receives an indication to execute an artificial intelligence agent of an entity represented in the graph 529, the AI agent being associated with a model. In some embodiments, the indication is created by a user and provided via the user device 176. In some embodiments, the indication is created by an application, e.g., one of the applications 110. In some embodiments, the indication is a triggering event that triggers the agent and is received from the building subsystems 122 and/or another agent (e.g., an output of one agent fed into another agent).


In some embodiments, the AI agent is an agent for a specific entity represented in the graph 529. For example, the agent could be a VAV maintenance agent configured to identify whether a VAV (e.g., a VAV represented by the nodes 512, 530, and/or 516) should have maintenance performed at a specific time. Another agent could be a floor occupant prediction agent that is configure to predict the occupancy of a particular floor of a building, e.g., the floor represented by the floor node 522.


Responsive to receiving the indication, in step 606, the AI agent 570 causes a client instance 592 to run the model 576 based on the information received in step 602. In some embodiments, the information received in step 602 is provided directly to the AI agent 570. In some embodiments, the information is read from the graph 529 by the AI agent 570.


In step 608, the AI agent 570 stores the inferred and/or predicted information in the graph 529 (or stores the inferred and/or predicted information in a separate data structure with a link to the graph 529). In some embodiments, the AI agent 570 identifies that the node that represents the physical entity that the AI agent 570 inferred and/or predicted information for, e.g., the VAV represented by the VAV 516. The AI agent 570 can identify that the timeseries node 566 stores the inferred and/or predicted information by identifying the edge 537 between the VAV node 516 and the timeseries node 566.


In step 610, the AI agent 570 can retrieve the inferred or predicted information from the graph 529 responsive to receiving an indication to execute the model of the AI agent 570 of the inferred or predicted information, e.g., similar to the step 604. In step 612, the AI agent 570 can execute one or more actions based on the inferred and/or predicted information of the step 610 based the inferred and/or predicted information retrieved from the graph 529. In some embodiments, the AI agent 570 executes the model 576 based on the inferred and/or predicted information.


In step 614, the AI agent 570 can train the model 576 based on the inferred or predicted information read from the graph 529 and received actual values for the inferred or predicted information. In some embodiments, the AI agent 570 can train and update parameters of the model 576. For example, the timeseries 564 may represent actual values for a data point of the VAV represented by the VAV node 516. The timeseries 566 can be the inferred and/or predicted information. The AI agent 570 can compare the timeseries 564 and the timeseries 566 to determine an error in the inferences and/or predictions of the model 576. The error can be used by the model 576 to update and train the model 576.


Referring now to FIG. 7, a digital twin 700 including a connector and a database is shown, according to an exemplary embodiment. The digital twin 700 can be a software component stored and/or managed by the building data platform 100. The building data platform 100 includes connectors 702 and a database 704. The database 704 can store data attributes for a physical entity, e.g., a building, a VAV, etc. that describe the current state and/or operation of the physical entity. The connector 702 can be a software component that receives data from the physical device represented by the digital twin 700 and updates the attributes of the database 704. For example, the connector 702 can ingest device telemetry data into the database 704 to update the attributes of the digital twin 700.


Referring now to FIG. 8, a digital twin 800 including triggers 802, connectors 804, actions 806, and a graph 808 is shown, according to an exemplary embodiment. The digital twin 800 can be a digital replica of physical assets (e.g., a physical device twin, sensor twin, actuator twin, building device twin, etc.) and can be used to store processes, people, places, systems that can be used for various purposes. The digital twins can be created, managed, stored, and/or operated on by the building data platform 100.


In some cases, the devices can also be actuated on (told to perform an action). For example, a thermostat has sensors to measure temperature and humidity. A thermostat can also be asked to perform an action of setting the setpoint for a HVAC system. In this regard, the digital twin 800 can be configured so that information that the digital twin 800 can be made aware of can be stored by the digital twin 800 and there are also actions that the digital twin 800 can take.


The digital twin 800 can include a connector 804 that ingests device telemetry into the graph 808 and/or update the digital twin attributes stored in the graph 808. In some embodiments, the connectors 804 can ingest external data received from external data sources into the graph 808. The external data could be weather data, calendar data, etc. In some embodiments, the connectors 804 can send commands back to the devices, e.g., the actions determined by the actions 806.


The digital twin 800 includes triggers 802 which can set conditional logic for triggering the actions 706. The digital twin 800 can apply the attributes stored in the graph 808 against a rule of the triggers 802. When a particular condition of the rule of the triggers 802 involving that attribute is met, the actions 706 can execute. One example of a trigger could be a conditional question, “when the temperature of the zone managed by the thermostat reaches x degrees Fahrenheit.” When the question is met by the attributes store din the graph 808, a rule of the actions 706 can execute.


The digital twin 800 can, when executing the actions 806, update an attribute of the graph 808, e.g., a setpoint, an operating setting, etc. These attributes can be translated into commands that the building data platform 100 can send to physical devices that operate based on the setpoint, the operating setting, etc. An example of an action rule for the actions 806 could be the statement, “update the setpoint of the HVAC system for a zone to x Degrees Fahrenheit.”


In some embodiments, the triggers 802 and/or the actions 806 are predefined and/or manually defined through user input of the user device 176. In some cases, it may be difficult for a user to determine what the parameter values of the trigger rule should be (e.g., what values maximize a particular reward or minimize a particular penalty). Similarly, it may be difficult for a user to determine what the parameter values of the action rule should be (e.g., what values maximize the particular reward or minimize the particular penalty). Furthermore, even if the user is able to identify the ideal parameter values for the triggers 802 and the actions 806, the ideal values for the parameters may not be constant and may instead change over time. Therefore, it would be desirable if the values of the attributes for the triggers 802 and the actions 806 are tuned optimally and automatically by the building data platform 100 by observing the responses from other related digital twins.


Causal patterns between one or more digital twins having their triggering conditions satisfied and one or more digital twins (including the triggering digital twin) actuating by sending specific commands to their physical counterparts could be learned and defined by the building data platform 100. Automated learning can be used by the building data platform 100 during real operations, by running simulations using digital twins, or using predicted inference within the digital twin. There may not even be the need for all standard operating procedures in building systems to be defined upfront by a user since patterns of interaction between digital twins can be learned by the building data platform 100 to define and recommend those to building and facility owners.


Referring now to FIG. 9, a system 900 of digital twins including a people counter digital twin 902, an HVAC digital twin 904, and a facility manager digital twin 906 that are interconnected is shown, according to an exemplary embodiment. In FIG. 9, the people counter digital twin 902 includes triggers 908, connectors 910, actions, and/or the graph 926.


The system 900 further includes an HVAC digital twin 904 that includes triggers, connectors 916, actions 918, and/or the graph 928. The system further includes the facility manager 906 that includes triggers, connectors 922, actions 924, and/or the graph 930. In some embodiments, the graph 926, the graph 928, and the graph 930 are the same graph or different graphs. In some embodiments, the graphs 926-930 are the graph 529.


The people counter digital twin 902 can output a “low occupancy” attribute which can be stored in the graph 926 and/or provided to the HVAC digital twin 904 and/or the facility manager digital twin 906, in some embodiments. In some embodiments, if all of the digital twins use and/or have access to the same graph, if the people counter digital twin 902 stores the low occupancy indicator in the graph, the HVAC digital twin 904 and the facility manager digital twin 906 can read the attribute from the graph. In some embodiment, a rules engine 926 can store rules that link the twins 902, 904, and 906 together. The rules engine 926 can determine whether the triggers of the various digital twins are triggered, e.g., the trigger 908. Furthermore, the rules engine 926 can determine (based on one or more rules stored by the rules engine 926) that if the trigger 908 of the people counter digital twin 902 is triggered, the actions 918 of the HVAC digital twin 904 and the actions 924 of the facility manager digital twin 906 should be executed.


In some embodiments, the trigger 908 is the logical condition, “when there are less than twenty people in a particular area.” Responsive to an occupancy count of the particular area is less than twenty, which the people counter digital twin 902 can determine from models and/or information of the graph 926, a low occupancy indication can be generated.


Responsive to the trigger 908 being triggered, the rules engine 926 can cause the actions 918 to execute to switch an HVAC mode to an economy mode. The economy mode status for an HVAC system can be stored in the graph 928 and/or communicated to an HVAC controller to execute on. Responsive to the trigger 908 being triggered, the rules engine 926 can cause the actions 924 to execute to notify a facility manager of the low occupancy status, e.g., send a notification to a user device of the facility manager.


In some embodiments, the digital twins of the system 900 can be solution twins, e.g., the people counter twin 902, the HVAC digital twin 904, the facility manager twin 906, etc. The digital twin can be a solution twin because it represents a particular software solutions for the building. For example, in some embodiments, an occupancy sensor digital twin of a zone could be triggered with under-utilized criteria (e.g., the triggering of the people counter digital twin 902 shown in FIG. 9). The people counter digital twin 902 could be configured to identify what AHU is serving the zone that it has made an occupancy detection for based on the nodes and/or edges of the graph 926 relating a zone node for the zone and an AHU node for the AHU. In some embodiments, the AHU digital twin can evaluate the desired setting for the zone through running a simulation with one or more models. In some embodiments, an FM digital twin can evaluate space arrangement and/or purposing.


Referring now to FIG. 10, a system 1000 including an employee digital twin 1002, a calendar digital twin 1006, a meeting room digital twin 1004, and a cafeteria digital twin 1008 that are interconnected is shown, according to an exemplary embodiment. The system 1000 includes a solution digital twin for an employee, a meeting room, a cafeteria, and a calendar. In the system 1000, an employee digital twin 1002 and a calendar digital twin 1006 trigger and a rules engine 926 causes one or more associated digital twins, a meeting room digital twin 1004 and a cafeteria digital twin 1008 to execute responsive to the triggers. The calendar digital twin 1006 can include a connector 1016, the meeting room digital twin can include a connector 1022, and the cafeteria digital twin 1008 can include a connector 1028 for ingesting information into the graphs 1034-1038. In some embodiment, the rules engine 926 can store rules that link the twins 1002, 1006, 1004, and/or 1008 together. The rules engine 926 can determine whether the triggers of the various digital twins are triggered, e.g., the triggers 1010 and/or 1014. Furthermore, the rules engine 926 can determine (based on one or more rules stored by the rules engine 926) that if the triggers 1010 and 1014 are triggered, the actions 1024 and 1030 should be executed.


In FIG. 10, the employee digital twin 1002 includes a graph 1032, the calendar digital twin 1006 includes a graph 1036, the meeting room digital twin 1004 includes a graph 1034, and the cafeteria digital twin 1008 includes a graph 1038. The graphs 1032-1038 can be the same graphs and/or different graphs and can be the same as, or similar to, the graph 529.


The employee digital twin 1002 can generate an indication of whether a particular occupant is near a particular office via an action responsive to the trigger 1010 triggering when a particular occupant is a particular instance (e.g., 250 meters) from their office. The digital twin 1002 can identify the occupant, the occupant's office, and the location of the office through analyzing the nodes and/or edge of the graph 1032. The calendar digital twin 1006 determines, based on calendar data (e.g., calendar data stored in the graph 1036), whether it is a work day via the trigger 1014 (e.g., is a day Monday through Friday). Responsive to determining that it is a work day, the calendar digital twin 1006 generates an indication that it is a work day via actions of the calendar digital twin 1006.


The meeting room digital twin 1004 can receive the work day indication from the calendar digital twin 1006 and can receive the occupant near office indication from the employee digital twin 1002. The rules engine 926 can cause the meeting room digital twin 1004 to take actions to reserve a meeting room via the actions 1024 responsive to the triggers 1010 and 1014 being triggered. The rules engine 926 can cause the cafeteria digital twin 1008 to trigger the ordering of a coffee for the occupant via the action 1030 responsive to the triggers 1010 and 1014 being triggered.


Referring now to FIG. 11, a process 1100 of an agent executing a trigger rule and an action rule is shown, according to an exemplary embodiment. The process 1100 can be performed by the system 500 and/or components of the system 500. In some embodiments, the building data platform 100 can perform the process 1100. Furthermore, the process 1100 can be performed by any computing device described herein.


In step 1102, the building data platform can store an agent 570 in a data structure. The agent 570 can include a trigger rule indicating a condition for executing an action rule and an action rule indicating an action to be performed responsive to the condition being met. In some embodiments, the model 576 includes, or can be replaced with, the trigger rule and the action rule. The trigger rule and the action rule can be logical statements and/or conditions that include parameter values and/or create an output action. The parameter values can, in some embodiments, be identified through a learning process, e.g., as described through FIGS. 12-22.


In step 1104, the agent 570 can receive information from at least one of a physical device and/or from the graph 529. The information can be generated by a physical device, e.g., the building subsystems 122. The building data platform 100 can, in some embodiments, receive the information from the physical device, ingest the information into the graph 529, and the agent 570 can read the information from the graph 529. In some embodiments, the agent 570 can check the information of the graph 529 against a trigger rule at a set period.


In step 1106, the agent 570 determines whether the information received in the step 1104 causes the condition to be met. The agent 570 can apply the information to the trigger rule to determine whether the trigger rule is triggered, i.e., the condition of the trigger rule being met.


In step 1108, the agent 570 can perform the action responsive to the condition being met by the information determined in step 1106. The action may cause a physical device to be operated or information be sent to another agent including another trigger rule and another action rule. In some embodiments, the action can be performed by executing the action rule of the agent 570. The action rule can perform an action based on one or more parameter value of the action rule. In some embodiments, the action output of the action rule can be sent directly to the physical device, e.g., the building subsystems 122. In some embodiments, the action output can be stored into the graph 529. Another operating component of the building data platform 100, e.g., the command processor 136, can read the action from the graph 529 can communicate a corresponding command to the building subsystems 122.


In some embodiments, instead of a digital twin triggering its own action, a trigger of the digital twin can trigger an action of another digital twin. For example, a rules engine of the twin manager 108 (e.g., the rules engine 926 described in FIGS. 9-10) can link multiple triggers and actions of various digital twins together. For example, the rules engine 926 can store a logical rule with conditional requirements, e.g., triggers being tripped of one or more digital twins, Boolean logic and/or operations (e.g., AND, OR, XOR, NAND, NOT, XNOR, NOR, greater than, less than, equals, etc.), etc. The rule can indicate that when conditions of various triggers of various digital twins are satisfied, one or more actions of various digital twins should be executed.


Referring generally to FIGS. 12-23, systems and methods for using artificial intelligence to determine triggers and actions for an agent is shown. The triggers can trigger autonomously based on received data and cause an action to occur. In some embodiments, multiple digital twins can interact with each other by identifying interrelationships between each other via the graph 529, e.g., a VAV digital twin could interact with an AHU digital twin responsive to identifying that a VAV represented by the VAV digital twin is related to an AHU represented by the AHU digital twin via the graph 529. The digital twins can in some embodiments, simulate the impact of triggers and/or actions to validate and learn triggers and/or actions.


In some embodiments, the building data platform 100 can perform q-learning (Reinforcement Learning) to train and/or retrain the triggers and/or actions of the agents. In some embodiments, the data used to train and/or retrain the triggers and/or actions can be simulated data determined by another digital twin.


One digital twin may have trigger conditions such as, “when the outside temperature is x0,” “when the inside humidity is x %,” “when an AI-driven algorithm's threshold is reached,” and “when it is a certain day of the week.” In responsive to one or multiple triggers being met, the digital twin can perform actions (e.g., capabilities of a device either inherent and/or digital twin enhanced). The actions can include setting a setpoint to a value x0. The actions can be to run a fan for x minutes. The actions can be to start an AI-driven energy saving schedule. The actions can be to change a mode status to an away status. In some embodiments, the building data platform 100 can user other digital twins to simulate a reward for various values of the triggers and/or actions. The reward can be optimized to determine values for the parameters of the triggers and/or actions.


In some embodiments, allowing the digital twin to learn and adjust the parameters of the triggers and/or rules allows the digital twin to optimize responses to internal and/or external events in real-time. In some embodiments, the digital twin performs operations with the correlation of contextual relationships to provide spatial intelligence. In some embodiments, the digital twin allows for AI-based self-learning solutions to operate on top of the digital twin. The digital twin can capture comprehensive data that drives rich analytics for security, compliance, etc. In some embodiments, the digital twin can enable and perform simulations.


In some embodiments, the building data platform 100 can identify events and/or event patterns if the building data platform 100 identifies a pattern that suggests a trigger and/or action should be updated. For example, if the building data platform 100 identifies a pattern occurring in a building, the building data platform 100 can set triggers and/or actions in digital twins to allow the pattern to occur automatically. For example, if a user closes their blinds at 5:00 P.M. regularly on weekdays, this could indicate that the user desires the blinds to be closed at 5:00 P.M. each day. The building data platform 100 can set a blind control digital twin to trigger a blind closing action at 5:00 P.M. each day.


In some embodiments, an agent of a digital twin can predict an inference in the future indicating that some action should be performed in the future. The building data platform 100 can identify that the action should be performed in the future and can set up a flow so that a prediction of one digital twin can be fed into another digital twin that can perform the action.


Referring now to FIG. 12, a system 1200 of a trigger rule 1202 of a thermostat digital twin where parameters of the trigger rule 1202 are trained is shown, according to an exemplary embodiment. In some embodiments, the system 1200 can implement a model that rewards triggers and/or actions of the thermostat digital twin using a neural network that is trained from data aggregated from a related digital twin of the thermostat digital twin, an air handler unit digital twin.


The building data platform 100 can perturb parameters, ε1 and ε2 of the trigger rule 1202 of the thermostat digital twin. The trigger rule 1202 may be that if a number of occupants is greater than ε1 and a zone temperature is less than ε2° C. the rule is triggered and a corresponding action be performed. The corresponding action can be to increase a supply air temperature setpoint of an AHU to 22° C. The perturbation of the parameters can be increasing or decreasing the parameters in set amounts from existing values. The perturbation of the parameters can be selecting a space of values for the parameters and/or randomizing the parameters and/or parameter space.


With the perturbed values for ε1 and ε2, the AHU digital twin 1204 can simulate the state of the AHU via the AHU digital twin 1204 for various conditions of occupant number and zone temperature. The result of the various states of the AHU digital twin 1204. The simulation can be performed by the AI agent 570 via the model 576. The output of the model 576 can be the simulated states, e.g., timeseries 566.


The building data platform 100 can analyze the states produced by the AHU digital twin 1204 to determine energy and comfort results from the states of the AHU digital twin 1204. For example, an energy score can be generated for each state. For example, a power consumption level can be determined for each state. Similarly, a comfort violation score can be determined for each state. The comfort violation can indicate whether or not a temperature, humidity, or other condition of a physical space controlled by the AHU would be uncomfortable for a user (e.g., go below or above certain levels).


The building data platform 100 can generate accumulated training data. The accumulated training data can include the values of the parameters ε1 and ε2, the state of the AHU digital twin 1204 for each value of the parameters, and the energy score and comfort violation score for each state. In some embodiments, the triggers and/or actions that can be recommended for the thermostat digital twin can be determined by observing the responses of other digital twins on perturbed thresholds of existing triggers and/or actions.


The building data platform 100 can generate neural networks 1210 for predicting an energy score based on the parameters ε1 and ε2. Furthermore, the neural networks 1210 can indicate a comfort violation score for the parameters ε1 and ε2. The neural networks 1210 can be trained by the building data platform 100 based on the accumulated training data 1208.


Based on the trained neural network models 1210, the building data platform 100 can determine optimal values for the parameters ε1 and ε2. The building data platform 100 can search a space of potential values for ε1 and ε2 that consider predicted energy scores and/or comfort violation scores predicted by the trained neural network models 1210. The optimization can be the relation 1400 shown in FIG. 14. The optimization 1212 performed by the building data platform 100 can be a method of computing the optimal threshold of a trigger conditions using the neural network models 1210 of rewards (e.g., energy and comfort) and solving constrained optimization model. Similarly, the optimization 1212 performed by the building data platform 100 to determine the optimal threshold of action commands using the neural network models 1210 of rewards and solving constrained optimization.


In some embodiments, the optimal values for the parameters found by the building data platform 100 can be presented to a user for review and/or approval via a user interface, e.g., via the user device 176. In some embodiments, the recommendations produced by the building data platform 100 through the components 1202-1212 can be restricted by only looking at state/value changes of digital twins that are nearest neighbors in the graph 529, e.g., two nodes are directed related by one edge, e.g., a thermostat node for the thermostat digital twin is directed to an AHU node for the AHU digital twin 1204. In some embodiments, the building data platform 100 can use spatial correlation to assume contextual relationship between assets that can affect each other's attribute states/values.


Referring now to FIG. 13, a process 1300 for identifying values for the parameters of the trigger rule 1202 of FIG. 12 is shown, according to an exemplary embodiment. The process 1300 can be performed by the building data platform 100 and/or any component of the building data platform 100. The process 1300 can be performed by the system 500 and/or components of the system 500. Furthermore, the process 1300 can be performed by any computing device described herein.


In step 1302, the building data platform 100 can perturb a thermostat digital twin (e.g., the thermostat digital twin rule 1202) with various value for thresholds and/or other parameters, ε. The result of the perturbed parameters can result in various states, s. The states can be states predicted by the thermostat digital twin or another digital twin that operates based on the thresholds and/or parameters ε, e.g., the AHU digital twin 1204. The perturbations and simulated states can result in pairs (S, ε). The pairs can be used to determine feedback for energy and/or comfort, e.g., (E, C).


In step 1304, the building data platform 100 can building neural network models, e.g., the neural networks 1210 based on the data determined in step 1302. The neural networks 1210 can predict energy rewards as a function of the state and the parameters, e.g., E=f(s, ε). Furthermore, the neural networks 1210 can predict comfort rewards as a function of the state and the parameters, e.g., C=f(s, ε).


In step 1306, the building data platform 100 can determine a value for the parameter, ε that minimizes a relation, (α1·E+α2·C). The minimization is shown in relation 1400 of FIG. 14. The values of α1 and α2 can weigh the various rewards in the relation that is minimized, e.g., the energy reward and/or the comfort reward. In step 1308, the building data platform 100 can periodically repeat the steps 1302-1306. For example. For example, the building data platform 100 can repeat the steps at a defined time period. In some embodiments, the building data platform 100 can compute rewards for the actions of the thermostat digital twin. If the rewards indicate that the thermostat digital twin need retraining, the building data platform 100 can repeat the steps 1302-1308.


Referring now to FIG. 15, a system 1500 of components where an action rule 1502 of a thermostat digital twin is shown where parameters of the action rule 1502 are trained, according to an exemplary embodiment. The system 1500 can include similar and/or the same components of FIG. 14. The process 1300 of FIG. 13 can be applied to the action rule 1502 to train the parameters of the action rule 1502.


The thermostat digital twin rule 1502 can be an action rule that if a trigger is met (e.g., the trigger 1402), the action rule 1502 executes to command the AHU digital twin 1204. The trigger rule may be to execute the action rule if an occupant count is greater than ten and a zone temperature is less than twenty degrees Celsius. The action rule 1502 may be to increase an AHU supply air temperature setpoint to a value, e.g., ε. The value can, in some embodiments, be 22 degrees Celsius.


The building data platform 100 can predict states resulting from perturbed values of ε by executing the AHU digital twin 1204 to simulate the states. The building data platform 100 can collect rule feedback 1206 to construct accumulated training data 1208. Furthermore, the building data platform 100 can train neural network models 1210 based on the accumulated training data 1208 and find optimal values for the parameter ε based on the trained neural network models 1210


Referring now to FIG. 16, a list 1600 and a list 1602 of states of a zone and of an air handler unit that can be used to train the parameters of the trigger rule and the action rule of the thermostat digital twins of FIGS. 12-15 is shown, according to an exemplary embodiment. The list 1600 includes states for a zone. The states can be zone temperature, zone humidity, outdoor air temperature, outdoor air humidity, zone occupancy, etc. These states can be predicted and/or determined based on a digital twin for a space based on perturbed parameter values for a trigger rule, an action rule, weather forecasts, etc. In this regard, the rule feedback 1206, in some embodiments, can be generated based on the digital twin for the space and used to tune the values of the parameters for the trigger rule 1402 and/or the action rule 1502.


The list 1602 includes states for an AHU. The states can be supply air temperature, supply air flow rate, return air temperature, return air flow rate, outdoor air flow rate, etc. These states can be predicted and/or determined based on a digital twin for an AHU (e.g., the AHU digital twin 1204) based on perturbed parameter values for a trigger rule, an action rule, etc. In this regard, the rule feedback 1206 in some embodiments, can be generated based on the digital twin for the AHU and used to tune the values of the parameters for the trigger rule 1402 and/or the action rule 1502.


Referring now to FIG. 17, a system 1700 of a trigger rule of a chemical reactor digital twin where parameters of a trigger rule are trained is shown, according to an exemplary embodiment. A reactor feed digital twin which may model the feed of a chemical reactor can include various trigger rules and/or action rules, e.g., the trigger rule 1702. The trigger rule 1702 can be that if a chemical concentration of a first chemical A is less than ε1 (e.g., 10 g/l) and a chemical concentration of a second chemical B is less than ε2 (e.g., 20 g/l) then an action rule is triggered. The action rule may be increase a catalyst C feed amount to 300 g/s.


The building data platform 100 can perturb the values for the parameters ε1 and ε2 of the reactor feed digital twin trigger rule 1702 (e.g., pseudo-randomly, increasing and/or decreasing in a particular number of predefined increments, etc.). A chemical reactor digital twin 1704 can simulate a state of the chemical reactor for the various perturbed parameters ε1 and ε2. The building data platform 100 can determine a rule feedback 1706 for the state simulate by the chemical reactor digital twin 1704. The rule feedback 1706 can identify scores for production throughput (P) and chemical property (C).


The building data platform 100 can accumulate training data 1708. The accumulated training data 1708 can include the feedback 1706, the state simulated by the chemical reactor digital twin 1704, and/or the parameter values for ε1 and ε2. The building data platform 100 can train neural network models 1710 to predict production throughput and/or chemical property for the various parameter and/or state pairs, e.g., the state resulting from the parameters of the trigger rule 1702. The building data platform 100 can use the trained neural network models 1710 to identify optimal values for ε1 and ε2. In element 1712, the building data platform 100 can identify values for ε1 and ε2 that minimize the relation 1900 shown in FIG. 19. In some embodiment, the optimization can optimize production throughput and/or chemical property.


Referring now to FIG. 18, a process 1800 for identifying values for the parameters of the trigger rule of FIG. 17 is shown, according to an exemplary embodiment. The process 1800 can be performed by the building data platform 100 and/or any component of the building data platform 100. The process 1900 can be performed by the system 500 and/or components of the system 500. Furthermore, the process 1900 can be performed by any computing device described herein. The steps 1802-1808 can be the same as or similar to the steps 1302-1308. However, the steps 1802-1808 can be executed for a reactor digital twin and the reward for training the neural networks and be production throughput and chemical property.


In step 1802, the building data platform 100 can perturb a reactor digital twin 1704 with various values of a threshold ε of a trigger rule 1702 with various values which cause the reactor digital twin to determine resulting states for the various values of the threshold, ε. The states and the values for the threshold ε can create state threshold pairs. The pairs can be used to determine feedback, e.g., production throughput and chemical property.


In step 1804, after some accumulation of feedback data, the building data platform 100 can build neural network models 1710 based on the pairs that predict production throughput and chemical property based on the values for the threshold ε. In step 1806, the building data platform 100 can determine a value for the threshold ε that maximizes a reward and/or minimizes a penalty. The building data platform 100 can minimize the relation 1900 of FIG. 19. In step 1808, the building data platform 100 can periodically retrain the values for the threshold ε for the trigger rule 1702.


Referring now to FIG. 20, a system 2000 including an action rule 2002 of a chemical reactor digital twin where parameters of the action rule 2002 are trained is shown, according to an exemplary embodiment. The reactor feed twin rule 2002 can be an action rule to increase a catalyst C feed amount to ε1 g/s in response to an trigger rule being triggered, e.g., the trigger rule 1702. The building data platform 100 can perturb the values of the parameter ε1 and the reactor digital twin 1704 can predict states resulting from the perturbed parameter. The building data platform 100 can determine rule feedback 1706 and generate accumulated training data 1708 based on the rule feedback 1706. The building data platform 100 can train the neural network models 1710. Based on the neural network models 1710, the building data platform 100 can find optimal values for the parameter ε1.


Referring now to FIG. 21, a list 2100 and a list 2102 of states of a feed of a reactor and a reactor that can be included in the trigger rule and the action rule of FIGS. 12-15 are shown, according to an exemplary embodiment. The list 2100 includes states for a feed of a chemical reactor. The states can be reactants feed amount, catalysts feed amount, feed stream temperature, etc. These states can be predicted and/or determined based on a digital twin for a space based on perturbed parameter values for a trigger rule, an action rule, etc. In this regard, the rule feedback 1706 in some embodiments, can be generated based on the digital twin for the space and used to tune the values of the parameters for the trigger rule 1702 and/or the action rule 2002.


The list 2102 includes states for a chemical reactor. The states can be product concentration, cooling coil temperature, product temperature, etc. These states can be predicted and/or determined based on a digital twin for a chemical reactor (e.g., the reactor digital twin 1704) based on perturbed parameter values for a trigger rule, an action rule, etc. In this regard, the rule feedback 1706 in some embodiments, can be generated based on the digital twin for the chemical reactor and used to tune the values of the parameters for the trigger rule 1702 and/or the action rule 2002.


Referring now to FIG. 22, a system 2200 where triggers and actions that can be constructed and learned for a digital twin is shown, according to an exemplary embodiment. Considering a building where a room in the building has a thermostat, the building data platform 100 can construct triggers and/or actions of an agent of a digital twin or the room. The triggers and/or actions can be determined with an energy reduction reward function 2204 by a learning service 2206. The energy reduction reward function 2204 can produce triggers and/or actions that have values that minimize energy usage.


In some embodiments, the building data platform 100 can search the graph 529 to identify information related to the space, e.g., related pieces of equipment, spaces, people, etc. For example, the building data platform 100 can identify which entities of the graph 529 are related and operate to affect each other. The building data platform 100 can identify which actions each entity can perform and/or what measurements each entity can make, e.g., by identifying related data nodes for each entity. The identified entities, measurements, and/or commands can be combined into the rule 2202 by the building data platform 100.


In some embodiments, the learning service 2206, which may be a component of the building data platform 100, can run a learning process with the rule 2202 and/or one or more reward functions (e.g., comfort reward function, carbon footprint reduction reward function, the energy reduction reward function 2204, etc.). The learning service 2206 can learn the rule 2208 from the rule 2202 and/or the energy reduction reward function 2204.


The learning service 2206 can run an optimization to determine combinations between measurements and actions triggered based on the measurements. The learning service 2206 can determine values for each measurement and/or action. Furthermore, the learning service 2206 can identify the relational operations for causing a trigger, e.g., equals to, greater than, less than, not equal to, etc. Furthermore, the learning service 2206 can identify action operations, e.g., increase by a particular amount, decrease by a particular amount, set an output equal to a value, run a particular algorithm, etc.


Referring now to FIG. 23, a process 2300 for constructing triggers and actions for a digital twin is shown, according to an exemplary embodiment. In some embodiments, the process 2300 can be performed by the building data platform 100. In some embodiments, the process 2300 can be performed by the learning service 2206.


In step 2302, the building data platform 100 can determine actions that a particular entity can take and data that the entity can measure by analyzing a graph 529. The entity can be a thermostat, an air handler unit, a zone of a building, a person, a VAV unit, and/or any other entity. For example, if the entity is a thermostat the building data platform 100 could identify room temperature measurements for a thermostat and/or a cooling stage command, a heating stage command, a fan command, etc. that the thermostat can perform. Responsive to identifying data that the entity can measure, the building data platform 100 can generate a trigger condition based on the data type, e.g., when the temperature is equal to, less than, greater than, and/or not equal to some parameter value, trigger an action.


In step 2304, the building data platform 100 identifies, based on the graph 529, entities related to the entity and actions that the entities can take and data that the entities can measure. For example, if the entity is for a thermostat for a zone, the building data platform 100, could identify a shade control system for controlling a shade of the zone, an air handler unit that serves the zone, a VAV that serves the zone, etc. For example, the building data platform 100 can identify, based on the building graph 529, that a binds node is associated with a zone node that the thermostat node is related to. The building data platform 100 can identify a list of actions that the entities can perform, e.g., setting blind position from 0% (fully open) to 100% (fully closed).


In some 2306, the building data platform 100 can simulate various combinations of triggers that tare based on the data that the entity and/or entities can measure and actions that are based on the actions that the entity and/or entities can make. The building data platform 100 can simulate various combinations, trigger operations, action operations, and/or parameters.


In step 2308, the building data platform 100 can identify a combination of triggers and actions that maximizes a reward. The building data platform 100 can search the simulated combinations of triggers and/or actions to identify a trigger and/or action that maximizes a reward and/or minimizes a reward. In some embodiments, the building data platform 100 uses a policy gradient and value function instead of brute force to try out combinations of the triggers and/or actions in the steps 2306-2308.


In some embodiments, the building data platform 100 can identify the operations for the triggers and/or actions. For example, the operation could be comparing a measurement to a threshold, determining whether a measurement is less than a threshold, determining whether a measurement is greater than the threshold, determining whether the measurement is not equal to the threshold, etc.


In step 2310, the building data platform 100 can generate a digital twin for the entity. The entity can include (or reference) the graph 529 and include an agent that operates the triggers and/or actions. The triggers and/or actions can operate based on the graph 529 and/or based on data received building equipment, e.g., the building subsystems 122.


In step 2312, the building data platform 100 can run a building system of a building and monitor the behavior of the entity and entities of the building. In some embodiments, the building system can be the building subsystems 122. In step 2314, the building data platform 100 can identify relationships between the measurements and actions of the entity and/or the entities based on the monitored behavior. The building data platform 100 can discover existing relationships by identifying how the measurements are currently affecting actions based on the monitored behavior. In step 2316, the building data platform 100 can optimize the identified relationships between the measurements and the actions by maximizing a reward or minimizing a penalty.


Configuration of Exemplary Embodiments

The construction and arrangement of the systems and methods as shown in the various exemplary embodiments are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements may be reversed or otherwise varied and the nature or number of discrete elements or positions may be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes, and omissions may be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosure.


The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such connection is properly termed a machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.


Although the figures show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps.


In various implementations, the steps and operations described herein may be performed on one processor or in a combination of two or more processors. For example, in some implementations, the various operations could be performed in a central server or set of central servers configured to receive data from one or more devices (e.g., edge computing devices/controllers) and perform the operations. In some implementations, the operations may be performed by one or more local controllers or computing devices (e.g., edge devices), such as controllers dedicated to and/or located within a particular building or portion of a building. In some implementations, the operations may be performed by a combination of one or more central or offsite computing devices/servers and one or more local controllers/computing devices. All such implementations are contemplated within the scope of the present disclosure. Further, unless otherwise indicated, when the present disclosure refers to one or more computer-readable storage media and/or one or more controllers, such computer-readable storage media and/or one or more controllers may be implemented as one or more central servers, one or more local controllers or computing devices (e.g., edge devices), any combination thereof, or any other combination of storage media and/or controllers regardless of the location of such devices.

Claims
  • 1. A building system comprising one or more storage devices storing instructions thereon that, when executed by one or more processors, cause the one or more processors to: receive an indication to execute an artificial intelligence (AI) agent of a digital twin, the AI agent including a trigger rule and an action rule, the digital twin including a graph data structure, the graph data structure including a plurality of nodes representing entities of a building and a plurality of edges between the plurality of nodes representing relationships between the entities of the building;determine that the trigger rule is triggered by comparing information of the graph data structure against one or more conditions of the trigger rule;determine an action of the action rule responsive to determining that the trigger rule is triggered by executing the action rule;cause one or more devices to operate based on the action determined by the action rule;receive a first timeseries of collected values for a data point of the building;execute the AI agent based on the first timeseries to generate a second timeseries comprising inferences of future data values of the data point of the building for a plurality of future times;store the first timeseries and the second timeseries, or a link to the first timeseries and the second timeseries, in one or more nodes of the plurality of nodes of the graph data structure related, via one or more edges of the plurality of edges, to a node of the plurality of nodes representing the data point;update the first timeseries with new collected values for the data point of the building; andre-train the AI agent of the digital twin by: retrieving the first timeseries and the second timeseries from the one or more nodes;comparing the first timeseries with the second; andupdating the AI agent responsive to the comparison of the first timeseries and the second timeseries.
  • 2. The building system of claim 1, wherein the instructions cause the one or more processors to: receive a measured data value of the data point at a future time from building equipment of the building;compare the measured data value for the data point to a future data value of the inferences of the future data values to determine an error; andtrain the AI agent with the error.
  • 3. The building system of claim 1, wherein the AI agent includes a machine learning model that predicts the inferences based on the first timeseries.
  • 4. The building system of claim 1, wherein the instructions cause the one or more processors to: retrieve a model from a model storage database in response to receiving the indication to execute the artificial intelligence (AI) agent; andcause a client to run and execute the model based on the first timeseries to generate the inferences and return the inferences.
  • 5. The building system of claim 1, wherein the instructions cause the one or more processors to: add the indication to execute the AI agent to a job request topic, wherein the AI agent reads the job request topic and the AI agent executes responsive to reading the indication from the job request topic; andadd the inferences to a job response topic, wherein a system that generates the indication reads the inferences from the job response topic.
  • 6. The building system of claim 1, wherein the instructions cause the one or more processors to generate the digital twin by: identifying actions and data associated with an entity based on the graph data structure, wherein the digital twin is associated with the entity;identifying that the entities are related to the entity based on the graph data structure;identifying actions and data associated with the entities based on the graph data structure; andgenerating the trigger rule and the action rule based on the actions and the data associated with the entity and the actions and the data associated with the entities.
  • 7. The building system of claim 1, wherein the plurality of nodes represent an entity, the entities, and data points of the entity and the entities; wherein the plurality of edges represent relationships between the entity, the entities, and the data points of the entity and the entities.
  • 8. The building system of claim 1, wherein the instructions cause the one or more processors to cause the one or more devices to operate based on the action by: sending a command to the one or more devices to perform the action; orstore the action in the graph data structure and retrieve the action from the graph data structure and send the command based on the action retrieved from the graph data structure to the one or more devices.
  • 9. The building system of claim 1, wherein the instructions cause the one or more processors to perform a learning algorithm to learn the trigger rule and the action rule.
  • 10. The building system of claim 1, wherein the instructions cause the one or more processors to perform a learning algorithm to learn one or more first parameters for the trigger rule and subsequently learn one or more second parameters for the action rule based at least in part on the one or more first parameters for the trigger rule.
  • 11. The building system of claim 1, wherein the instructions cause the one or more processors to learn one or more parameters of the trigger rule or the action rule by: adjusting a value of the one or more parameters of the trigger rule or the action rule to a plurality of different values;simulating one or more states resulting from the plurality of different values of the one or more parameters of the trigger rule or the action rule; anddetermine one or more updated values for the one or more parameters of the trigger rule or the action rule based on the one or more states resulting from the plurality of different values of the one or more parameters of the trigger rule or the action rule.
  • 12. The building system of claim 1, wherein a first node of the one or more nodes stores the first timeseries and is related by a first edge of the one or more edges to the node of the plurality of nodes representing the data point; and a second node of the one or more nodes stores the second timeseries and is related by a second edge of the one or more edges to the node representing the data point.
  • 13. The building system of claim 1, wherein the instructions cause the one or more processors to: receive the new collected values for the data point of the building at the plurality of future times and update the first timeseries stored in the one or more nodes; andtrain the AI agent of the digital twin based on the new collected values.
  • 14. A method comprising: receiving, by a processing circuit, an indication to execute an artificial intelligence (AI) agent of a digital twin, the AI agent including a trigger rule and an action rule, the digital twin including a graph data structure, the graph data structure including a plurality of nodes representing entities of a building and a plurality of edges between the plurality of nodes representing relationships between the entities of the building;determining, by the processing circuit, that the trigger rule is triggered by comparing information of the graph data structure against one or more conditions of the trigger rule;determining, by the processing circuit, an action of the action rule responsive to determining that the trigger rule is triggered by executing the action rule;causing, by the processing circuit, one or more devices to operate based on the action determined by the action rule;receiving, by the processing circuit, a first timeseries of collected values for a data point of the building;executing, by the processing circuit, the AI agent based on the first timeseries to generate a second timeseries comprising inferences of future data values of the data point of the building for a plurality of future times;storing, by the processing circuit, the first timeseries and the second timeseries, or a link to the first timeseries and the second timeseries, in one or more nodes of the plurality of nodes of the graph data structure related, via one or more edges of the plurality of edges, to a node of the plurality of nodes representing the data point;updating, by the processing circuit, the first timeseries with new collected values for the data point of the building; andre-training, by the processing circuit, the AI agent of the digital twin by: retrieving, by the processing circuit, the first timeseries and the second timeseries from the one or more nodes;comparing, by the processing circuit, the first timeseries with the second timeseries; andupdating, by the processing circuit, the AI agent responsive to the comparison of the first timeseries and the second timeseries.
  • 15. The method of claim 14, wherein the AI agent includes a machine learning model that predicts the inferences based on the first timeseries; wherein the method further includes: receiving, by the processing circuit, a measured data value of the data point at a future time from building equipment of the building;comparing, by the processing circuit, the measured data value for the data point to a future data value of the inferences of the future data values to determine an error; andtraining, by the processing circuit, the machine learning model with the error.
  • 16. The method of claim 14, further comprising: retrieving, by the processing circuit, a model from a model storage database in response to receiving the indication to execute the artificial intelligence (AI) agent; andcausing, by the processing circuit, a client to run and execute the model based on the first timeseries to generate the inferences and return the inferences.
  • 17. The method of claim 14, further comprising: adding, by the processing circuit, the indication to execute the AI agent to a job request topic, wherein the AI agent reads the job request topic and the AI agent executes responsive to reading the indication from the job request topic; andadding, by the processing circuit, the inferences to a job response topic, wherein a system that generates the indication reads the inferences from the job response topic.
  • 18. A building system comprising: one or more storage devices storing instructions thereon; andone or more processors that execute the instructions and cause the one or more processors to: receive an indication to execute an artificial intelligence (AI) agent of a digital twin, the AI agent including a trigger rule and an action rule, the digital twin including a graph data structure, the graph data structure including a plurality of nodes representing entities of a building and a plurality of edges between the plurality of nodes representing relationships between the entities of the building;determine that the trigger rule is triggered by comparing information of the graph data structure against one or more conditions of the trigger rule;determine an action of the action rule responsive to determining that the trigger rule is triggered by executing the action rule;cause one or more devices to operate based on the action determined by the action rule;receive a first timeseries of collected values for a data point of the building;execute the AI agent based on the first timeseries to generate a second timeseries comprising inferences of future data values of the data point of the building for a plurality of future times;store the first timeseries and the second timeseries, or a link to the first timeseries and the second timeseries, in one or more nodes of the plurality of nodes of the graph data structure related, via one or more edges of the plurality of edges, to a node of the plurality of nodes representing the data point;update the first timeseries with new collected values for the data point of the building; andre-train the AI agent of the digital twin by: retrieving the first timeseries and the second timeseries from the one or more nodes;comparing the first timeseries with the second timeseries; andupdating the AI agent responsive to the comparison of the first timeseries and the second timeseries.
  • 19. The building system of claim 18, wherein the AI agent includes a machine learning model that predicts the inferences based on the first timeseries.
  • 20. The building system of claim 18, wherein the instructions cause the one or more processors to: retrieve a model from a model storage database in response to receiving the indication to execute the AI agent; andcause a client to run and execute the model based on the first timeseries to generate the inferences and return the inferences.
US Referenced Citations (463)
Number Name Date Kind
5301109 Landauer et al. Apr 1994 A
5446677 Jensen et al. Aug 1995 A
5581478 Cruse et al. Dec 1996 A
5812962 Kovac Sep 1998 A
5960381 Singers et al. Sep 1999 A
5973662 Singers et al. Oct 1999 A
6014612 Larson et al. Jan 2000 A
6031547 Kennedy Feb 2000 A
6134511 Subbarao Oct 2000 A
6157943 Meyer Dec 2000 A
6285966 Brown et al. Sep 2001 B1
6363422 Hunter et al. Mar 2002 B1
6385510 Hoog et al. May 2002 B1
6389331 Jensen et al. May 2002 B1
6401027 Xu et al. Jun 2002 B1
6437691 Sandelman et al. Aug 2002 B1
6477518 Li et al. Nov 2002 B1
6487457 Hull et al. Nov 2002 B1
6493755 Hansen et al. Dec 2002 B1
6577323 Jamieson et al. Jun 2003 B1
6626366 Kayahara et al. Sep 2003 B2
6646660 Patty Nov 2003 B1
6704016 Oliver et al. Mar 2004 B1
6732540 Sugihara et al. May 2004 B2
6764019 Kayahara et al. Jul 2004 B1
6782385 Natsumeda et al. Aug 2004 B2
6813532 Eryurek et al. Nov 2004 B2
6816811 Seem Nov 2004 B2
6823680 Jayanth Nov 2004 B2
6826454 Sulfstede Nov 2004 B2
6865511 Frerichs et al. Mar 2005 B2
6925338 Eryurek et al. Aug 2005 B2
6986138 Sakaguchi et al. Jan 2006 B1
7031880 Seem et al. Apr 2006 B1
7401057 Eder Jul 2008 B2
7552467 Lindsay Jun 2009 B2
7627544 Chkodrov et al. Dec 2009 B2
7818249 Lovejoy et al. Oct 2010 B2
7889051 Billig et al. Feb 2011 B1
7996488 Casabella et al. Aug 2011 B1
8078330 Brickfield et al. Dec 2011 B2
8104044 Scofield et al. Jan 2012 B1
8229470 Ranjan et al. Jul 2012 B1
8401991 Wu et al. Mar 2013 B2
8495745 Schrecker et al. Jul 2013 B1
8516016 Park et al. Aug 2013 B2
8532808 Drees et al. Sep 2013 B2
8532839 Drees et al. Sep 2013 B2
8600556 Nesler et al. Dec 2013 B2
8635182 Mackay Jan 2014 B2
8682921 Park et al. Mar 2014 B2
8731724 Drees et al. May 2014 B2
8737334 Ahn et al. May 2014 B2
8738334 Jiang et al. May 2014 B2
8751487 Byrne et al. Jun 2014 B2
8788097 Drees et al. Jul 2014 B2
8805995 Oliver Aug 2014 B1
8843238 Wenzel et al. Sep 2014 B2
8874071 Sherman et al. Oct 2014 B2
8941465 Pineau et al. Jan 2015 B2
8990127 Taylor Mar 2015 B2
9070113 Shafiee et al. Jun 2015 B2
9116978 Park et al. Aug 2015 B2
9185095 Moritz et al. Nov 2015 B1
9189527 Park et al. Nov 2015 B2
9196009 Drees et al. Nov 2015 B2
9229966 Aymeloglu et al. Jan 2016 B2
9286582 Drees et al. Mar 2016 B2
9311807 Schultz et al. Apr 2016 B2
9344751 Ream et al. May 2016 B1
9354968 Wenzel et al. May 2016 B2
9507686 Horn et al. Nov 2016 B2
9524594 Ouyang et al. Dec 2016 B2
9558196 Johnston et al. Jan 2017 B2
9652813 Gifford et al. May 2017 B2
9753455 Drees Sep 2017 B2
9811249 Chen et al. Nov 2017 B2
9817383 Sinha et al. Nov 2017 B1
9838844 Emeis et al. Dec 2017 B2
9886478 Mukherjee Feb 2018 B2
9948359 Horton Apr 2018 B2
10055114 Shah et al. Aug 2018 B2
10055206 Park et al. Aug 2018 B2
10116461 Fairweather et al. Oct 2018 B2
10169454 Ait-Mokhtar et al. Jan 2019 B2
10171297 Stewart et al. Jan 2019 B2
10171586 Shaashua et al. Jan 2019 B2
10187258 Nagesh et al. Jan 2019 B2
10514963 Shrivastava et al. Dec 2019 B2
10515098 Park et al. Dec 2019 B2
10521968 Locke et al. Dec 2019 B2
10534326 Sridharan et al. Jan 2020 B2
10536295 Fairweather et al. Jan 2020 B2
10564993 Deutsch et al. Feb 2020 B2
10705492 Harvey Jul 2020 B2
10708078 Harvey Jul 2020 B2
10739029 Sinha et al. Aug 2020 B2
10747183 Sinha et al. Aug 2020 B2
10760815 Janakiraman et al. Sep 2020 B2
10762475 Song et al. Sep 2020 B2
10824120 Ahmed Nov 2020 B2
10845771 Harvey Nov 2020 B2
10854194 Park et al. Dec 2020 B2
10862928 Badawy et al. Dec 2020 B1
10901373 Locke et al. Jan 2021 B2
10921760 Harvey Feb 2021 B2
10921972 Park et al. Feb 2021 B2
10969133 Harvey Apr 2021 B2
10986121 Stockdale et al. Apr 2021 B2
11016998 Park et al. May 2021 B2
11024292 Park et al. Jun 2021 B2
11038709 Park et al. Jun 2021 B2
11041650 Li et al. Jun 2021 B2
11054796 Holaso Jul 2021 B2
11070390 Park et al. Jul 2021 B2
11073976 Park et al. Jul 2021 B2
11085663 Ellis Aug 2021 B2
11108587 Park et al. Aug 2021 B2
11113295 Park et al. Sep 2021 B2
11120012 Park et al. Sep 2021 B2
11131473 Risbeck Sep 2021 B2
11210591 Alanqar Dec 2021 B2
11215375 Alanqar Jan 2022 B2
11229138 Harvey et al. Jan 2022 B1
11243503 Przybylski Feb 2022 B2
11274849 Bell Mar 2022 B2
11276125 Pancholi Mar 2022 B2
11314726 Park et al. Apr 2022 B2
11314788 Park et al. Apr 2022 B2
11556105 Cooley et al. Jan 2023 B2
11561522 Cooley et al. Jan 2023 B2
11561523 Cooley et al. Jan 2023 B2
11573551 Cooley et al. Feb 2023 B2
11586167 Cooley et al. Feb 2023 B2
20020010562 Schleiss et al. Jan 2002 A1
20020016639 Smith et al. Feb 2002 A1
20020059229 Natsumeda et al. May 2002 A1
20020123864 Eryurek et al. Sep 2002 A1
20020147506 Eryurek et al. Oct 2002 A1
20020177909 Fu et al. Nov 2002 A1
20030005486 Ridolfo et al. Jan 2003 A1
20030014130 Grumelart Jan 2003 A1
20030073432 Meade, II Apr 2003 A1
20030158704 Triginai et al. Aug 2003 A1
20030171851 Brickfield et al. Sep 2003 A1
20030200059 Ignatowski et al. Oct 2003 A1
20040068390 Saunders Apr 2004 A1
20040128314 Katibah et al. Jul 2004 A1
20040133314 Ehlers et al. Jul 2004 A1
20040199360 Friman et al. Oct 2004 A1
20050055308 Meyer et al. Mar 2005 A1
20050108262 Fawcett et al. May 2005 A1
20050154494 Ahmed Jul 2005 A1
20050278703 Lo et al. Dec 2005 A1
20050283337 Sayal Dec 2005 A1
20060095521 Patinkin May 2006 A1
20060140207 Eschbach et al. Jun 2006 A1
20060184479 Levine Aug 2006 A1
20060200476 Gottumukkala et al. Sep 2006 A1
20060265751 Cosquer et al. Nov 2006 A1
20060271589 Horowitz et al. Nov 2006 A1
20070028179 Levin et al. Feb 2007 A1
20070203693 Estes Aug 2007 A1
20070261062 Bansal et al. Nov 2007 A1
20070273497 Kuroda et al. Nov 2007 A1
20070273610 Baillot Nov 2007 A1
20080034425 Overcash et al. Feb 2008 A1
20080094230 Mock et al. Apr 2008 A1
20080097816 Freire et al. Apr 2008 A1
20080186160 Kim et al. Aug 2008 A1
20080249756 Chaisuparasmikul Oct 2008 A1
20080252723 Park Oct 2008 A1
20080281472 Podgorny et al. Nov 2008 A1
20090195349 Frader-Thompson et al. Aug 2009 A1
20090271169 Minto Oct 2009 A1
20100045439 Tak et al. Feb 2010 A1
20100058248 Park Mar 2010 A1
20100131533 Ortiz May 2010 A1
20100274366 Fata et al. Oct 2010 A1
20100281387 Holland et al. Nov 2010 A1
20100286937 Hedley et al. Nov 2010 A1
20100324962 Nesler et al. Dec 2010 A1
20110015802 Imes Jan 2011 A1
20110047418 Drees et al. Feb 2011 A1
20110061015 Drees et al. Mar 2011 A1
20110071685 Huneycutt et al. Mar 2011 A1
20110077950 Hughston Mar 2011 A1
20110087650 Mackay et al. Apr 2011 A1
20110087988 Ray et al. Apr 2011 A1
20110088000 Mackay Apr 2011 A1
20110125737 Pothering et al. May 2011 A1
20110137853 Mackay Jun 2011 A1
20110153603 Adiba et al. Jun 2011 A1
20110154363 Karmarkar Jun 2011 A1
20110157357 Weisensale et al. Jun 2011 A1
20110178977 Drees Jul 2011 A1
20110191343 Heaton et al. Aug 2011 A1
20110205022 Cavallaro et al. Aug 2011 A1
20110218777 Chen et al. Sep 2011 A1
20120011126 Park et al. Jan 2012 A1
20120011141 Park et al. Jan 2012 A1
20120022698 Mackay Jan 2012 A1
20120062577 Nixon Mar 2012 A1
20120064923 Imes et al. Mar 2012 A1
20120083930 Ilic et al. Apr 2012 A1
20120100825 Sherman et al. Apr 2012 A1
20120101637 Imes et al. Apr 2012 A1
20120135759 Imes et al. May 2012 A1
20120136485 Weber et al. May 2012 A1
20120158633 Eder Jun 2012 A1
20120259583 Noboa et al. Oct 2012 A1
20120272228 Marndi et al. Oct 2012 A1
20120278051 Jiang et al. Nov 2012 A1
20130007063 Kalra et al. Jan 2013 A1
20130038430 Blower et al. Feb 2013 A1
20130038707 Cunningham et al. Feb 2013 A1
20130060820 Bulusu et al. Mar 2013 A1
20130086497 Ambuhl et al. Apr 2013 A1
20130097706 Titonis et al. Apr 2013 A1
20130103221 Raman et al. Apr 2013 A1
20130167035 Imes et al. Jun 2013 A1
20130170710 Kuoch et al. Jul 2013 A1
20130204836 Choi et al. Aug 2013 A1
20130246916 Reimann et al. Sep 2013 A1
20130247205 Schrecker et al. Sep 2013 A1
20130262035 Mills Oct 2013 A1
20130275174 Bennett et al. Oct 2013 A1
20130275908 Reichard Oct 2013 A1
20130297050 Reichard et al. Nov 2013 A1
20130298244 Kumar et al. Nov 2013 A1
20130331995 Rosen Dec 2013 A1
20130338970 Reghetti Dec 2013 A1
20140032506 Hoey et al. Jan 2014 A1
20140059483 Mairs et al. Feb 2014 A1
20140081652 Klindworth Mar 2014 A1
20140107993 Cheng Apr 2014 A1
20140135952 Maehara May 2014 A1
20140152651 Chen et al. Jun 2014 A1
20140172184 Schmidt et al. Jun 2014 A1
20140189861 Gupta et al. Jul 2014 A1
20140207282 Angle et al. Jul 2014 A1
20140258052 Khuti et al. Sep 2014 A1
20140269614 Maguire et al. Sep 2014 A1
20140277765 Karimi et al. Sep 2014 A1
20140278461 Artz Sep 2014 A1
20140327555 Sager et al. Nov 2014 A1
20150019174 Kiff et al. Jan 2015 A1
20150042240 Aggarwal et al. Feb 2015 A1
20150105917 Sasaki et al. Apr 2015 A1
20150145468 Ma et al. May 2015 A1
20150156031 Fadell et al. Jun 2015 A1
20150168931 Jin Jun 2015 A1
20150172300 Cochenour Jun 2015 A1
20150178421 Borrelli et al. Jun 2015 A1
20150185261 Frader-Thompson et al. Jul 2015 A1
20150186777 Lecue et al. Jul 2015 A1
20150202962 Habashima et al. Jul 2015 A1
20150204563 Imes et al. Jul 2015 A1
20150235267 Steube et al. Aug 2015 A1
20150241895 Lu et al. Aug 2015 A1
20150244730 Vu et al. Aug 2015 A1
20150244732 Golshan et al. Aug 2015 A1
20150261863 Dey et al. Sep 2015 A1
20150263900 Polyakov et al. Sep 2015 A1
20150286969 Warner et al. Oct 2015 A1
20150295796 Hsiao et al. Oct 2015 A1
20150304193 Ishii et al. Oct 2015 A1
20150316918 Schleiss et al. Nov 2015 A1
20150324422 Elder Nov 2015 A1
20150341212 Hsiao et al. Nov 2015 A1
20150348417 Ignaczak et al. Dec 2015 A1
20150379080 Jochimski Dec 2015 A1
20160011753 McFarland et al. Jan 2016 A1
20160033946 Zhu et al. Feb 2016 A1
20160035246 Curtis Feb 2016 A1
20160065601 Gong et al. Mar 2016 A1
20160070736 Swan et al. Mar 2016 A1
20160078229 Gong et al. Mar 2016 A1
20160090839 Stolarczyk Mar 2016 A1
20160119434 Dong et al. Apr 2016 A1
20160127712 Alfredsson et al. May 2016 A1
20160139752 Shim et al. May 2016 A1
20160163186 Davidson et al. Jun 2016 A1
20160170390 Xie et al. Jun 2016 A1
20160171862 Das et al. Jun 2016 A1
20160173816 Huenerfauth et al. Jun 2016 A1
20160179315 Sarao et al. Jun 2016 A1
20160179342 Sarao et al. Jun 2016 A1
20160179990 Sarao et al. Jun 2016 A1
20160195856 Spero Jul 2016 A1
20160212165 Singla et al. Jul 2016 A1
20160239660 Azvine et al. Aug 2016 A1
20160239756 Aggour et al. Aug 2016 A1
20160247129 Song et al. Aug 2016 A1
20160260063 Harris et al. Sep 2016 A1
20160313751 Risbeck et al. Oct 2016 A1
20160313752 Przybylski Oct 2016 A1
20160313902 Hill et al. Oct 2016 A1
20160350364 Anicic et al. Dec 2016 A1
20160357521 Zhang et al. Dec 2016 A1
20160357828 Tobin et al. Dec 2016 A1
20160358432 Branscomb et al. Dec 2016 A1
20160363336 Roth et al. Dec 2016 A1
20160370258 Perez Dec 2016 A1
20160378306 Kresl et al. Dec 2016 A1
20160379326 Chan-Gove et al. Dec 2016 A1
20170006135 Siebel Jan 2017 A1
20170011318 Vigano et al. Jan 2017 A1
20170017221 Lamparter et al. Jan 2017 A1
20170039255 Raj et al. Feb 2017 A1
20170052536 Warner et al. Feb 2017 A1
20170053441 Nadumane et al. Feb 2017 A1
20170063894 Muddu et al. Mar 2017 A1
20170068409 Nair Mar 2017 A1
20170070775 Taxier et al. Mar 2017 A1
20170075984 Deshpande et al. Mar 2017 A1
20170084168 Janchookiat Mar 2017 A1
20170090437 Veeramani et al. Mar 2017 A1
20170093700 Gilley et al. Mar 2017 A1
20170098086 Hoernecke et al. Apr 2017 A1
20170103327 Penilla et al. Apr 2017 A1
20170103403 Chu et al. Apr 2017 A1
20170123389 Baez et al. May 2017 A1
20170134415 Muddu et al. May 2017 A1
20170177715 Chang et al. Jun 2017 A1
20170180147 Brandman et al. Jun 2017 A1
20170188216 Koskas et al. Jun 2017 A1
20170212482 Boettcher et al. Jul 2017 A1
20170212668 Shah et al. Jul 2017 A1
20170220641 Chi et al. Aug 2017 A1
20170230930 Frey Aug 2017 A1
20170235817 Deodhar et al. Aug 2017 A1
20170251182 Siminoff et al. Aug 2017 A1
20170270124 Nagano et al. Sep 2017 A1
20170277769 Pasupathy et al. Sep 2017 A1
20170278003 Liu Sep 2017 A1
20170294132 Colmenares Oct 2017 A1
20170315522 Kwon et al. Nov 2017 A1
20170315697 Jacobson et al. Nov 2017 A1
20170322534 Sinha et al. Nov 2017 A1
20170323389 Vavrasek Nov 2017 A1
20170329289 Kohn et al. Nov 2017 A1
20170336770 Macmillan Nov 2017 A1
20170345287 Fuller et al. Nov 2017 A1
20170351957 Lecue et al. Dec 2017 A1
20170357225 Asp et al. Dec 2017 A1
20170357490 Park et al. Dec 2017 A1
20170357908 Cabadi et al. Dec 2017 A1
20180012159 Kozloski et al. Jan 2018 A1
20180013579 Fairweather et al. Jan 2018 A1
20180024520 Sinha et al. Jan 2018 A1
20180039238 Gärtner et al. Feb 2018 A1
20180048485 Pelton et al. Feb 2018 A1
20180069932 Tiwari et al. Mar 2018 A1
20180114140 Chen et al. Apr 2018 A1
20180137288 Polyakov May 2018 A1
20180157930 Rutschman et al. Jun 2018 A1
20180162400 Abdar Jun 2018 A1
20180176241 Manadhata et al. Jun 2018 A1
20180198627 Mullins Jul 2018 A1
20180203961 Aisu et al. Jul 2018 A1
20180239982 Rutschman et al. Aug 2018 A1
20180275625 Park et al. Sep 2018 A1
20180276962 Butler et al. Sep 2018 A1
20180292797 Lamparter et al. Oct 2018 A1
20180313561 Sinha et al. Nov 2018 A1
20180329763 George et al. Nov 2018 A1
20180336785 Ghannam et al. Nov 2018 A1
20180356775 Harvey Dec 2018 A1
20180359111 Harvey Dec 2018 A1
20180364654 Locke et al. Dec 2018 A1
20190005025 Malabarba Jan 2019 A1
20190005200 Zimmerman et al. Jan 2019 A1
20190013023 Pourmohammad et al. Jan 2019 A1
20190017719 Sinha et al. Jan 2019 A1
20190025771 Park et al. Jan 2019 A1
20190026359 Park et al. Jan 2019 A1
20190037135 Hedge Jan 2019 A1
20190042988 Brown et al. Feb 2019 A1
20190088106 Grundstrom Mar 2019 A1
20190094824 Xie et al. Mar 2019 A1
20190096217 Pourmohammad et al. Mar 2019 A1
20190098113 Park et al. Mar 2019 A1
20190102840 Perl et al. Apr 2019 A1
20190121801 Jethwa et al. Apr 2019 A1
20190138512 Pourmohammad et al. May 2019 A1
20190138662 Deutsch et al. May 2019 A1
20190139315 Locke et al. May 2019 A1
20190147883 Mellenthin et al. May 2019 A1
20190158309 Park et al. May 2019 A1
20190163152 Worrall et al. May 2019 A1
20190268178 Fairweather et al. Aug 2019 A1
20190294975 Sachs Sep 2019 A1
20190310979 Masuzaki et al. Oct 2019 A1
20190347353 Lawlor et al. Nov 2019 A1
20190361411 Park et al. Nov 2019 A1
20190361412 Park et al. Nov 2019 A1
20190377306 Harvey Dec 2019 A1
20200076196 Lee Mar 2020 A1
20200092127 Park Mar 2020 A1
20200118053 Chapin Apr 2020 A1
20200133213 Park Apr 2020 A1
20200142365 Sharma et al. May 2020 A1
20200159182 Goyal May 2020 A1
20200226156 Borra et al. Jul 2020 A1
20200285203 Thakur et al. Sep 2020 A1
20200285464 Brebner Sep 2020 A1
20200313924 Park Oct 2020 A1
20200336328 Harvey Oct 2020 A1
20200348632 Harvey Nov 2020 A1
20200370771 Alanqar Nov 2020 A1
20200387576 Brett et al. Dec 2020 A1
20200393157 Turney et al. Dec 2020 A1
20200394351 Roemerman et al. Dec 2020 A1
20200396208 Brett et al. Dec 2020 A1
20210010351 Sun Jan 2021 A1
20210025612 Sinha et al. Jan 2021 A1
20210042299 Migliori Feb 2021 A1
20210043221 Yelchuru et al. Feb 2021 A1
20210104317 Warner et al. Apr 2021 A1
20210157312 Cella et al. May 2021 A1
20210173969 Abbey et al. Jun 2021 A1
20210191826 Duraisingh et al. Jun 2021 A1
20210208546 Locke et al. Jul 2021 A1
20210240147 Papadopoulos Aug 2021 A1
20210248289 Fasano Aug 2021 A1
20210258371 Sundaresan Aug 2021 A1
20210325070 Endel et al. Oct 2021 A1
20210342961 Winter et al. Nov 2021 A1
20210344695 Palani Nov 2021 A1
20210381711 Harvey et al. Dec 2021 A1
20210381712 Harvey et al. Dec 2021 A1
20210382445 Harvey et al. Dec 2021 A1
20210383041 Harvey et al. Dec 2021 A1
20210383042 Harvey et al. Dec 2021 A1
20210383200 Harvey et al. Dec 2021 A1
20210383219 Harvey et al. Dec 2021 A1
20210383235 Harvey et al. Dec 2021 A1
20210383236 Harvey et al. Dec 2021 A1
20220004445 George et al. Jan 2022 A1
20220066402 Harvey et al. Mar 2022 A1
20220066405 Harvey Mar 2022 A1
20220066432 Harvey et al. Mar 2022 A1
20220066434 Harvey et al. Mar 2022 A1
20220066528 Harvey et al. Mar 2022 A1
20220066722 Harvey et al. Mar 2022 A1
20220066754 Harvey et al. Mar 2022 A1
20220066761 Harvey et al. Mar 2022 A1
20220067226 Harvey et al. Mar 2022 A1
20220067227 Harvey et al. Mar 2022 A1
20220067230 Harvey et al. Mar 2022 A1
20220069863 Harvey et al. Mar 2022 A1
20220070293 Harvey et al. Mar 2022 A1
20220121965 Chatterji et al. Apr 2022 A1
20220138684 Harvey May 2022 A1
20220147000 Cooley et al. May 2022 A1
20220150124 Cooley et al. May 2022 A1
20220171907 Chang et al. Jun 2022 A1
20220215264 Harvey et al. Jul 2022 A1
20230010757 Preciado Jan 2023 A1
20230071312 Preciado et al. Mar 2023 A1
20230076011 Preciado et al. Mar 2023 A1
20230083703 Meiners Mar 2023 A1
Foreign Referenced Citations (52)
Number Date Country
2019226217 Nov 2020 AU
2019226264 Nov 2020 AU
2019351573 May 2021 AU
101415011 Apr 2009 CN
102136099 Jul 2011 CN
102136100 Jul 2011 CN
102650876 Aug 2012 CN
104040583 Sep 2014 CN
104603832 May 2015 CN
104919484 Sep 2015 CN
106204392 Dec 2016 CN
106406806 Feb 2017 CN
106960269 Jul 2017 CN
107147639 Sep 2017 CN
107598928 Jan 2018 CN
2 528 033 Nov 2012 EP
3 268 821 Jan 2018 EP
3 324 306 May 2018 EP
4 226 263 Aug 2023 EP
H10-049552 Feb 1998 JP
2003-162573 Jun 2003 JP
2007-018322 Jan 2007 JP
4073946 Apr 2008 JP
2008-107930 May 2008 JP
2013-152618 Aug 2013 JP
2014-044457 Mar 2014 JP
20160102923 Aug 2016 KR
WO-2009020158 Feb 2009 WO
WO-2011100255 Aug 2011 WO
WO-2013050333 Apr 2013 WO
WO-2015106702 Jul 2015 WO
WO-2015145648 Oct 2015 WO
WO-2017035536 Mar 2017 WO
WO-2017192422 Nov 2017 WO
WO-2017192770 Nov 2017 WO
WO-2017194244 Nov 2017 WO
WO-2017205330 Nov 2017 WO
WO-2017213918 Dec 2017 WO
WO-2018132112 Jul 2018 WO
WO-2018204384 Nov 2018 WO
WO-2018232147 Dec 2018 WO
WO-2019018304 Jan 2019 WO
WO-2020061621 Apr 2020 WO
WO-2021163287 Aug 2021 WO
WO-2022042925 Mar 2022 WO
WO-2022103812 May 2022 WO
WO-2022103813 May 2022 WO
WO-2022103820 May 2022 WO
WO-2022103822 May 2022 WO
WO-2022103824 May 2022 WO
WO-2022103829 May 2022 WO
WO-2022103831 May 2022 WO
Non-Patent Literature Citations (94)
Entry
U.S. Appl. No. 17/529,118, filed Nov. 17, 2021, Johnson Controls Tyco IP Holdings LLP.
Barricelli et al., “Human Digital Twin for Fitness Management,” IEEE Access, Feb. 2020, vol. 8 (pp. 26637- 26664).
Clark et al., “Rule Induction with CN2: Some Recent Improvements,” Machine Learning—EWSL '91, Porto, Portugal, Mar. 6-8, 1991 (pp. 151-163).
Kernighan, et al., “The C Programming Language,” Prentice-Hall, Inc., Englewood Cliffs, NJ, 1978 (pp. 47-48 and 51-63).
U.S. Appl. No. 17/566,029, Passivelogic, Inc.
U.S. Appl. No. 17/567,275, Passivelogic, Inc.
U.S. Appl. No. 17/722,115, Passivelogic, Inc.
Balaji et al., “Brick: Metadata schema for portable smart building applications,” Applied Energy, 2018 (20 pages).
Balaji et al., “Brick: Metadata schema for portable smart building applications,” Applied Energy, Sep. 15, 2018, 3 pages, (Abstract).
Balaji et al., “Demo Abstract: Portable Queries Using the Brick Schema for Building Applications,” BuildSys '16, Palo Alto, CA, USA, Nov. 16-17, 2016 (2 pages).
Balaji, B. et al., “Brick: Towards a Unified Metadata Schema for Buildings.” BuildSys '16, Palo Alto, CA, USA, Nov. 16-17, 2016 (10 pages).
Bhattacharya et al., “Short Paper: Analyzing Metadata Schemas for Buildings—The Good, the Bad and the Ugly,” BuildSys '15, Seoul, South Korea, Nov. 4-5, 2015 (4 pages).
Bhattacharya, A., “Enabling Scalable Smart-Building Analytics,” Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2016-201, Dec. 15, 2016 (121 pages).
Brick, “Brick Schema: Building Blocks for Smart Buildings,” URL: chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.memoori.com/wp-content/uploads/2016/06/Brick_Schema_Whitepaper.pdf, Mar. 2019 (17 pages).
Brick, “Brick: Towards a Unified Metadata Schema for Buildings,” URL: chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://brickschema.org/papers/Brick_BuildSys_Presentation.pdf, Presented at BuildSys '16, Nov. 2016 (46 pages).
Brick, “Metadata Schema for Buildings,” URL: https://brickschema.org/docs/Brick-Leaflet.pdf, retrieved from internet Dec. 24, 2019 (3 pages).
Chinese Office Action on CN Appl. No. 201780003995.9 dated Apr. 8, 2021 (21 pages with English language translation).
Chinese Office action on CN Appl. No. 201780043400.2 dated Apr. 25, 2021 (15 pages with English language translation).
Curry, E. et al., “Linking building data in the cloud: Integrating cross-domain building data using linked data.” Advanced Engineering Informatics, 2013, 27 (pp. 206-219).
Digital Platform Litigation Documents Part 1, includes cover letter, dismissal of case DDE-1-21-cv-01796, IPR2023-00022 (documents filed Jan. 26, 2023-Oct. 7, 2022), and IPR2023-00085 (documents filed Jan. 26, 2023-Oct. 20, 2022) (748 pages total).
Digital Platform Litigation Documents Part 10, includes DDE-1-21-cv-01796 (documents filed Nov. 1, 2022-Dec. 22, 2021 (1795 pages total).
Digital Platform Litigation Documents Part 2, includes IPR2023-00085 (documents filed Oct. 20, 2022) (172 pages total).
Digital Platform Litigation Documents Part 3, includes IPR2023-00085 (documents filed Oct. 20, 2022) and IPR2023-00170 (documents filed Nov. 28, 2022-Nov. 7, 2022) (397 pages total).
Digital Platform Litigation Documents Part 4, includes IPR2023-00170 (documents filed Nov. 7, 2022) and IPR2023-00217 (documents filed Jan. 18, 2023-Nov. 15, 2022) (434 pages total).
Digital Platform Litigation Documents Part 5, includes IPR2023-00217 (documents filed Nov. 15, 2022) and IPR2023-00257 (documents filed Jan. 25, 2023-Nov. 23, 2022) (316 pages total).
Digital Platform Litigation Documents Part 6, includes IPR2023-00257 (documents filed Nov. 23, 2022) and IPR 2023-00346 (documents filed Jan. 3, 2023-Dec. 13, 2022) (295 pages total).
Digital Platform Litigation Documents Part 7, includes IPR 2023-00346 (documents filed Dec. 13, 2022) and IPR2023-00347 (documents filed Jan. 3, 2023-Dec. 13, 2022) (217 pages total).
Digital Platform Litigation Documents Part 8, includes IPR2023-00347 (documents filed Dec. 13, 2022), EDTX-2-22-cv-00243 (documents filed Sep. 20, 2022-Jun. 29, 2022), and DDE-1-21-cv-01796 (documents filed Feb. 3, 2023-Jan. 10, 2023 (480 pages total).
Digital Platform Litigation Documents Part 9, includes DDE-1-21-cv-01796 (documents filed Jan. 10, 2023-Nov. 1, 2022 (203 pages total).
Ding et al., “MB2C Model-Based Deep Reinforcement Learning for Multi-zone Building Control,” BuildSys '20, Virtual Event, Japan, Nov. 18-20, 2020 (10 pages).
El Kaed, C. et al., “Building management insights driven by a multi-system semantic representation approach,” 2016 IEEE 3rd World Forum on Internet of Things (WF-IoT), Dec. 12-14, 2016, (pp. 520-525).
Ellis, C. et al., “Creating a room connectivity graph of a building from per-room sensor units.” BuildSys '12, Toronto, ON, Canada, Nov. 6, 2012 (7 pages).
Extended European Search Report on EP Application No. 18196948.6 dated Apr. 10, 2019 (9 pages).
Fierro et al., “Beyond a House of Sticks: Formalizing Metadata Tags with Brick,” BuildSys '19, New York, NY, USA, Nov. 13-14, 2019 (10 pages).
Fierro et al., “Dataset: An Open Dataset and Collection Tool for BMS Point Labels,” DATA'19, New York, NY, USA, Nov. 10, 2019 (3 pages).
Fierro et al., “Design and Analysis of a Query Processor for Brick,” ACM Transactions on Sensor Networks, Jan. 2018, vol. 1, No. 1, art. 1 (25 pages).
Fierro et al., “Design and Analysis of a Query Processor for Brick,” BuildSys '17, Delft, Netherlands, Nov. 8-9, 2017 (10 pages).
Fierro et al., “Mortar: An Open Testbed for Portable Building Analytics,” BuildSys '18, Shenzhen, China, Nov. 7-8, 2018 (10 pages).
Fierro et al., “Why Brick is a Game Changer for Smart Buildings,” URL: https://brickschema.org/papers/Brick_Memoori_Webinar_Presentation.pdf, Memoori Webinar, 2019 (67 pages).
Fierro, “Writing Portable Building Analytics with the Brick Metadata Schema,” UC Berkeley, ACM E-Energy, 2019 (39 pages).
Fierro, G., “Design of an Effective Ontology and Query Processor Enabling Portable Building Applications,” Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2019-106, Jue. 27, 2019 (118 pages).
File History for U.S. Appl. No. 12/776,159, filed May 7, 2010 (722 pages).
Final Conference Program, ACM BuildSys 2016, Stanford, CA, USA, Nov. 15-17, 2016 (7 pages).
Gao et al., “A large-scale evaluation of automated metadata inference approaches on sensors from air handling units,” Advanced Engineering Informatics, 2018, 37 (pp. 14-30).
Harvey, T., “Quantum Part 3: The Tools of Autonomy, How PassiveLogic's Quantum Creator and Autonomy Studio software works,” URL: https://www.automatedbuildings.com/news/jan22/articles/passive/211224010000passive.html, Jan. 2022 (7 pages).
Harvey, T., “Quantum: The Digital Twin Standard for Buildings,” URL: https://www.automatedbuildings.com/news/feb21/articles/passivelogic/210127124501 passivelogic.html, Feb. 2021 (6 pages).
Hu, S. et al., “Building performance optimisation: A hybrid architecture for the integration of contextual information and time-series data,” Automation in Construction, 2016, 70 (pp. 51-61).
International Search Report and Written Opinion for PCT Appl. Ser. No. PCT/US2017/013831 dated Mar. 31, 2017 (14 pages).
International Search Report and Written Opinion for PCT Appl. Ser. No. PCT/US2017/035524 dated Jul. 24, 2017 (14 pages).
International Search Report and Written Opinion on PCT/US2017/052060, dated Oct. 5, 2017, 11 pages.
International Search Report and Written Opinion on PCT/US2017/052633, dated Oct. 23, 2017, 9 pages.
International Search Report and Written Opinion on PCT/US2017/052829, dated Nov. 27, 2017, 24 pages.
International Search Report and Written Opinion on PCT/US2018/024068, dated Jun. 15, 2018, 22 pages.
International Search Report and Written Opinion on PCT/US2018/052971, dated Mar. 1, 2019, 19 pages.
International Search Report and Written Opinion on PCT/US2018/052974, dated Dec. 19, 2018, 13 pages.
International Search Report and Written Opinion on PCT/US2018/052975, dated Jan. 2, 2019, 13 pages.
International Search Report and Written Opinion on PCT/US2018/052994, dated Jan. 7, 2019, 15 pages.
International Search Report and Written Opinion on PCT/US2019/015481, dated May 17, 2019, 78 pages.
International Search Report and Written Opinion on PCT/US2020/058381, dated Jan. 27, 2021, 30 pages.
Invitation to Pay Additional Fees and, Where Applicable, Protest Fee on PCT Appl. No. PCT/US2022/050079, dated Feb. 6, 2023 (17 pages).
Japanese Office Action on JP Appl. No. 2018-534963 dated May 11, 2021 (16 pages with English language translation).
Koh et al., “Plaster: An Integration, Benchmark, and Development Framework for Metadata Normalization Methods,” BuildSys '18, Shenzhen, China, Nov. 7-8, 2018 (10 pages).
Koh et al., “Scrabble: Transferrable Semi-Automated Semantic Metadata Normalization using Intermediate Representation,” BuildSys '18, Shenzhen, China, Nov. 7-8, 2018 (10 pages).
Koh et al., “Who can Access What, and When?” BuildSys '19, New York, NY, USA, Nov. 13-14, 2019 (4 pages).
Li et al., “Event Stream Processing with Out-of-Order Data Arrival,” International Conferences on Distributed Computing Systems, 2007, (8 pages).
Molinaro, R. et al., “Embedding data analytics and CFD into the digital twin concept,” Computers and Fluids, Jan. 15, 2021, vol. 214 (pp. 1-13).
Mostafa, F. et al., “An effective architecture of digital twin system to support human decision making and AI-driven autonomy,” Concurrency and Computation: Practice and Experience, 2020, vol. 33 (pp. 1-15).
Nissin Electric Co., Ltd., “Smart power supply system (SPSS),” Outline of the scale verification plan, Nissin Electric Technical Report, Japan, Apr. 23, 2014, vol. 59, No. 1 (23 pages).
Passivelogic, “Explorer: Digital Twin Standard for Autonomous Systems. Made interactive.” URL: https://passivelogic.com/software/quantum-explorer/, retrieved from internet Jan. 4, 2023 (13 pages).
Passivelogic, “Quantum: The Digital Twin Standard for Autonomous Systems, A physics-based ontology for next-generation control and AI.” URL: https://passivelogic.com/software/quantum-standard/, retrieved from internet Jan. 4, 2023 (20 pages).
Quantum Alliance, “Quantum Explorer Walkthrough,” 2022, (7 pages) (screenshots from video).
Results of the Partial International Search for PCT/US2018/052971, dated Jan. 3, 2019, 3 pages.
Sinha, Sudhi and Al Huraimel, Khaled, “Reimagining Businesses with AI” John Wiley & Sons, Inc., Hoboken, NJ, USA, 2021 (156 pages).
Sinha, Sudhi R. and PARK, Youngchoon, “Building an Effective IoT Ecosystem for Your Business,” Johnson Controls International, Springer International Publishing, 2017 (286 pages).
Sinha, Sudhi, “Making Big Data Work for Your Business: A guide to effective Big Data analytics,” Impackt Publishing LTD., Birmingham, UK, Oct. 2014 (170 pages).
The Virtual Nuclear Tourist, “Calvert Cliffs Nuclear Power Plant,” URL: http://www.nucleartourist.com/us/calvert.htm, Jan. 11, 2006 (2 pages).
University of California at Berkeley, EECS Department, “Enabling Scalable Smart-Building Analytics,” URL: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-201.html, retrieved from internet Feb. 15, 2022 (7 pages).
Van Hoof, Bert, “Announcing Azure Digital Twins: Create digital replicas of spaces and infrastructure using cloud, AI and IoT,” URL: https://azure.microsoft.com/en-us/blog/announcing-azure-digital-twins-create-digital-replicas-of-spaces-and-infrastructure-using-cloud-ai-and-iot/, Sep. 24, 2018 (11 pages).
W3c, “SPARQL: Query Language for RDF,” located on the Wayback Machine, URL: https://web.archive.org/web/20I61230061728/http://www.w3.org/TR/rdf-sparql-query/), retrieved from internet Nov. 15, 2022 (89 pages).
Wei et al., “Development and Implementation of Software Gateways of Fire Fighting Subsystem Running on EBI,” Control, Automation and Systems Engineering, IITA International Conference on, IEEE, Jul. 2009 (pp. 9-12).
White et al., “Reduce building maintenance costs with AWS IoT TwinMaker Knowledge Graph,” The Internet of Things on AWS—Official Blog, URL: https://aws.amazon.com/blogs/iot/reduce-building-maintenance-costs-with-aws-iot-twinmaker-knowledge-graph/, Nov. 18, 2022 (10 pages).
Yao et al., “State of the art review on model predictive control (MPC) in Heating Ventilation and Air-conditioning (HVAC) field,” Building and Environment, 2021, 200 (18 pages).
Zhou, Q. et al., “Knowledge-infused and Consistent Complex Event Processing over Real-time and Persistent Streams,” Further Generation Computer Systems, 2017, 76 (pp. 391-406).
Gomez-Berbis et al., “SEDIT: Semantic Digital Twin Based on Industrial IoT Data Management and Knowledge Graphs”, Communications in Computer and Information Science, CCIS, vol. 1124, Springer Nature Switzerland AG, 2019 (pp. 178-188).
International Search Report and Written Opinion on PCT Appl. No. PCT/US2022/034101 dated Oct. 10, 2022 (21 pages).
Wang et al., “Linking energy-cyber-physical systems with occupancy prediction and interpretation through WiFi probe-based ensemble classification,” Applied Energy, 2019, 236 (pp. 55-69).
Wikipedia, “Digital Twin,” URL: https://en.wikipedia.org/wiki/Neural_network, Retrieved from Internet Feb. 15, 2022 (7 pages).
Wikipedia, “Neural Network”, URL: https://en.wikipedia.org/wiki/Neural_network, Retrieved from Internet Feb. 18, 2022 (7 pages).
Sinha, Sudhi and Al Huraimel, Khaled, “Reimagining Businesses with AI” John Wiley & Sons, Inc., Hoboken, NJ, USA, first ed. published 2020 (156 pages).
Cronrath et al., “Enhancing Digital Twins through Reinforcement Learning,” 2019 IEEE 15th International Conference on Automation Science and Engineering (CASE), 2019 (6 pages).
Ding et al., “MB2C Mode1-Based Deep Reinforcement Learning for Multi-zone Building Control,” BuildSys '20, Virtual Event, Japan, Nov. 18-20, 2020 (pp. 50-59).
Gilles, P., “Graph Models for Systems-of-Systems Digital Twins,” Orange Innovation, IT & Services, Meylan, FR, Jun. 2021 (8 pages).
International Search Report and Written Opinion on PCT No. PCT/US2022/050079 dated Mar. 28, 2023 (21 pages).
Kaur et al., “The Convergence of Digital Twin, IoT, and Machine Learning: Transforming Data into Action,” Digital Twin Technologies and Smart Cities, Part of the Internet of Things: Technology, Communications and Computing (ITTCC) book series, first online: Jul. 23, 2019, Springer Link (pp. 3-17).
Related Publications (1)
Number Date Country
20230153648 A1 May 2023 US