# US 2025/0085671 A1 · Building control system with brokering architecture

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2025/0085671 A1
- Document ID: US20250085671A1
- Status: Published application
- Kind: A1
- Application number: 18/882,664
- Filed: 2024-09-11
- Published: 2025-03-13
- Earliest claimed: 2023-09-12
- Assignees: Tyco Fire & Security GmbH
- Applicants: Tyco Fire & Security GmbH
- Inventors: Andrew J. Przybylski; Jon T. Mueller; John H. Burroughs; Daniel Brandt; Peter J. Hazelberg
- Web page: https://patentgrep.com/patent/US20250085671A1

## CPC

- G06F 11/2023: {Failover techniques}
- G05B 13/021: {in which a variable is automatically adjusted to optimise the performance}
- G05B 15/02: electric
- G05B 23/0216: {Human interface functionality, e.g. monitoring system providing help to the user in the selection of tests or in its configuration}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 8/61: Installation
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- G06F 11/2038: {with a single idle spare processing component}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 16/2322: {using timestamps}
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- H03M 7/6011: {Encoder aspects}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 2201/805: Real-time
- H03M 7/3073: {Time}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

A distributed control system is provided by a brokering architecture. Message brokers running within multiple compute environments coordinate communication and data storage for control applications. Control applications run in one compute environment send the results to the message broker which may store the data for future calculations and/or send the data to a remote data base. Control applications may be state-less and store all information in the message brokers. Data from one environment may be sent over a message bus to other environments to be used as inputs to calculations. The distributed control system is used to provide responsive control to various building equipment.

## Claims

### Claim 1

A system for controlling and monitoring a building, the system comprising:
one or more input-output modules configured to send and receive messages over a network; and
one or more memory devices having instructions stored thereon that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
operating a first isolated compute environment to perform a first set of additional operations comprising:
receiving a first message comprising a current value of a variable of the building from the one or more input-output modules;
storing the current value of the variable; and
sending a second message in response to a request for the current value of the variable; and
operating a second isolated compute environment to perform a second set of additional operations comprising:
sending the request for the current value of the variable; and
performing a control calculation to determine a result based on the current value of the variable.

### Claim 2 (depends on 1)

The system of claim 1, wherein the second set of additional operations further comprise sending a third message comprising the result to the one or more input-output modules to affect a condition of the building.

### Claim 3 (depends on 1)

The system of claim 1, wherein storing the current value of the variable comprises:
storing the current value of the variable within the first isolated compute environment;
determining if the current value is different than a previous value of the variable; and
sending a message to store the current value in long-term storage in response to a determination that the current value is different than the previous value.

### Claim 4 (depends on 1)

The system of claim 1, wherein the request for the current value includes a request for a previous result calculated by the control calculation.

### Claim 5 (depends on 1)

The system of claim 1, wherein:
the first isolated compute environment is configured to run on the one or more input-output modules and the second isolated compute environment is configured to run on a first node within a computer cluster; or
the second isolated compute environment is configured to run on the one or more input-output modules and the first isolated compute environment is configured to run on a second node within the computer cluster.

### Claim 6 (depends on 1)

The system of claim 1, wherein the first isolated compute environment stores historical values of the variable in a timeseries, wherein the first set of additional operations further comprise:
performing a quantization step on the current value;
performing an encoding step, the encoding step comprising taking a difference of time adjacent values of the timeseries to form an encoded timeseries; and
performing a bit-packing compression step on the encoded timeseries.

### Claim 7 (depends on 1)

The system of claim 1, wherein the first isolated compute environment and the second isolated compute environment share a dictionary to compress at least one of the first message or the second message.

### Claim 8 (depends on 7)

The system of claim 7, the operations further comprising:
collecting a sampling of messages received by either the first isolated compute environment or the second isolated compute environment;
performing a statistical analysis on the sampling of messages; and
updating the dictionary based on the statistical analysis of the sampling.

### Claim 9 (depends on 1)

The system of claim 1, wherein at least one input-output module of the one or more input-output modules comprises:
a circuit board comprising a header electrically connected to a set of pins of an integrated circuit, the set of pins related to a feature of the at least one input-output module,
wherein the circuit board is configured to connect, via the header, to one or more of a plurality of interchangeable modules comprising additional circuit components to provide at least one instance of the feature of the integrated circuit.

### Claim 10

A system for controlling and monitoring a building, the system comprising:
one or more input-output modules configured to send and receive messages over a network; and
one or more memory devices having instructions stored thereon that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving a first message comprising a current value of a variable of the building;
receiving a second message comprising a previous result of a control calculation;
performing the control calculation to determine a result based on the current value of the variable and the previous result;
sending a third message comprising the result to a storage device logically isolated from the one or more memory devices; and
sending a fourth message comprising the result to at least one input-output module of the one or more input-output modules to affect the building,
wherein the result saved in the storage device logically isolated from the one or more memory devices is used in a subsequent control calculation.

### Claim 11 (depends on 10)

The system of claim 10, wherein the operations further comprise:
storing the current value of the variable;
determining if the current value is different than a previous value of the variable; and
sending a message to store the current value in long-term storage in response to a determination that the current value is different than the previous value.

### Claim 12 (depends on 10)

The system of claim 10, wherein the one or more input-output modules comprise the one or more memory devices and the one or more processors.

### Claim 13 (depends on 10)

The system of claim 10, wherein historical values of the variable are stored in a timeseries, wherein the operations further comprise:
performing a quantization step on the current value;
performing an encoding step, the encoding step comprising taking a difference of time adjacent values of the timeseries to form an encoded timeseries; and
performing a bit-packing compression step on the encoded timeseries.

### Claim 14 (depends on 10)

The system of claim 10, wherein at least one of the first message, the second message, the third message, or the fourth message are compressed using a dictionary.

### Claim 15 (depends on 10)

The system of claim 10, wherein the at least one input-output module of the one or more input-output modules comprises:
a circuit board comprising a header electrically connected to a set of pins of an integrated circuit, the set of pins related to a feature of the at least one input-output module,
wherein the circuit board is configured to connect, via the header, to one or more of a plurality of interchangeable modules comprising additional circuit components to provide at least one instance of the feature of the integrated circuit.

### Claim 16

A method for controlling and monitoring a building, the method comprising:
creating a plurality of isolated compute environments;
receiving a first message comprising a current value of a variable of the building;
storing, in a first isolated compute environment of the plurality of isolated compute environments, the current value of the variable;
performing, in a second isolated compute environment of the plurality of isolated compute environments, a control calculation to determine a result based on the current value of the variable;
using the result to perform an automated action that affects the building, and
sending the result from the second isolated compute environment to the first isolated compute environment causing storage of the result by the first isolated compute environment,
wherein the result stored the first isolated compute environment is used in a subsequent control calculation.

### Claim 17 (depends on 16)

The method of claim 16, wherein performing the control calculation comprises requesting a previous result from the first isolated compute environment.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
updating a dictionary by:
collecting a sampling of messages received by the plurality of isolated compute environments;
performing a statistical analysis on the sampling of messages; and
updating the dictionary based on the statistical analysis of the sampling; and
compressing the first message using the dictionary.

### Claim 19 (depends on 17)

The method of claim 17, further comprising storing historical values of the variable in a timeseries;
performing a quantization step on historical values;
performing an encoding step, the encoding step comprising taking a difference of time adjacent values of the timeseries to form an encoded timeseries; and
performing a bit-packing compression step on the encoded timeseries.

### Claim 20 (depends on 17)

The method of claim 17, wherein the first isolated compute environment is configured to run on one or more input-output modules and the second isolated compute environment is configured to run on a first node within a computer cluster; or
the second isolated compute environment is configured to run on the one or more input-output modules and the first isolated compute environment is configured to run on a second node within the computer cluster.
