DE112018004336T5 - Building management system with intelligent entities, time series, generation of a nested stream, cloud control and ID management and security services - Google Patents

Building management system with intelligent entities, time series, generation of a nested stream, cloud control and ID management and security services Download PDF

Info

Publication number
DE112018004336T5
DE112018004336T5 DE112018004336.3T DE112018004336T DE112018004336T5 DE 112018004336 T5 DE112018004336 T5 DE 112018004336T5 DE 112018004336 T DE112018004336 T DE 112018004336T DE 112018004336 T5 DE112018004336 T5 DE 112018004336T5
Authority
DE
Germany
Prior art keywords
time series
data
entity
samples
entities
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018004336.3T
Other languages
German (de)
Inventor
Youngchoon Park
Sudhi R. Sinha
Vaidhyanathan Venkiteswaran
Erik S. Paulson
Vijaya S. Chennupati
Peter Ainsworth
Anne Gallagher
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Johnson Controls Technology Co
Original Assignee
Johnson Controls Technology Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Johnson Controls Technology Co filed Critical Johnson Controls Technology Co
Publication of DE112018004336T5 publication Critical patent/DE112018004336T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2642Domotique, domestic, home control, automation, smart house

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Ein oder mehrere nichtflüchtige computerlesbare Speichermedien enthalten Programmanweisungen, die bei Ausführung einen oder mehrere Prozessoren zu Folgendem veranlassen: Empfangen erster Rohdaten einschließlich eines oder mehrerer Datenpunkte, die durch ein erstes Objekt mehrerer einem oder mehreren Gebäuden zugeordneten Objekten erzeugt werden; Erzeugen einer ersten Eingabezeitreihe gemäß dem einen oder den mehreren Datenpunkten; Zugreifen auf eine Datenbank aus miteinander verbundenen intelligenten Entitäten, wobei die intelligenten Entitäten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten beinhalten, die von gespeicherte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den intelligenten Entitäten angeben; Identifizieren einer ersten Objektentität, die das erste Objekt repräsentiert, aus einer ersten Kennung in der ersten Eingabezeitreihe; Identifizieren einer ersten Datenentität aus einem ersten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität angibt; und Speichern der ersten Eingabezeitreihe in der ersten Datenentität.One or more non-volatile computer readable storage media contain program instructions that, when executed, cause one or more processors to: receive first raw data, including one or more data points, generated by a first object of several objects associated with one or more buildings; Generating a first input time series according to the one or more data points; Access a database of interconnected intelligent entities, the intelligent entities including object entities each representing the plurality of objects and data entities representing data stored, the intelligent entities being connected by relational objects, the relationships between the intelligent entities specify; Identifying a first object entity representing the first object from a first identifier in the first input time series; Identifying a first data entity from a first relational object that indicates a relationship between the first object entity and the first data entity; and storing the first input time series in the first data entity.

Description

QUERVERWEIS AUF VERWANDTE ANMELDUNGENCROSS REFERENCE TO RELATED APPLICATIONS

Diese Anmeldung beansprucht den Nutzen und die Priorität der vorläufigen US-Patentanmeldung Nr. 62/564,247 , eingereicht am 27. September 2017, der vorläufigen US-Patentanmeldung Nr. 62/611,974 , eingereicht am 29. Dezember 2017, der vorläufigen US-Patentanmeldung Nr. 62/611,984 , eingereicht am 29. Dezember 2017, der vorläufigen US-Patentanmeldung Nr. 62/612,228 , eingereicht am 29 Dezember 2017, der vorläufigen US-Patentanmeldung Nr. 62/612,167 , eingereicht am 29- Dezember 2017 und der vorläufigen US-Patentanmeldung Nr. 62/580,867 , eingereicht am 2. November 2017. Die gesamte Offenbarung jeder dieser Patentanmeldungen ist hiermit durch Bezugnahme aufgenommen.This application claims the utility and priority of the preliminary U.S. Patent Application No. 62 / 564,247 , filed on September 27, 2017, the provisional U.S. Patent Application No. 62 / 611,974 , filed on December 29, 2017, the provisional U.S. Patent Application No. 62 / 611,984 , filed on December 29, 2017, the provisional U.S. Patent Application No. 62 / 612,228 , filed on December 29, 2017, the provisional U.S. Patent Application No. 62 / 612,167 , submitted on December 29- 2017 and the preliminary U.S. Patent Application No. 62 / 580,867 , filed on November 2, 2017. The entire disclosure of each of these patent applications is hereby incorporated by reference.

HINTERGRUNDBACKGROUND

Die vorliegende Offenbarung betrifft allgemein das Gebiet einer Gebäudeverwaltungsplattform, die kommunikativ mit einem oder mehreren Gebäudeverwaltungssystemen in einer intelligenten Gebäudeumgebung verbunden ist. Ein Gebäudeverwaltungssystem (BMS) ist allgemein ein System aus Vorrichtungen, die zum Steuern, Überwachen und Verwalten von Ausrüstung in einem Gebäude oder Gebäudebereich oder um dieses/diesen herum konfiguriert sind. Ein BMS kann zum Beispiel ein HVAC-System, ein Sicherheitssystem, ein Beleuchtungssystem, ein Feueralarmsystem oder ein beliebiges anderes System, das zum Verwalten von Gebäudefunktionen oder -Vorrichtungen in der Lage ist, oder eine beliebige Kombination davon beinhalten.The present disclosure relates generally to the field of a building management platform that is communicatively connected to one or more building management systems in an intelligent building environment. A building management system (BMS) is generally a system of devices configured to control, monitor, and manage equipment in or around a building or building area. For example, a BMS may include an HVAC system, a security system, a lighting system, a fire alarm system, or any other system capable of managing building functions or devices, or any combination thereof.

Ein BMS kann Daten von Objekten sammeln, die einem Gebäude zugeordnet sind, z. B. anderen BMSs, Gebäudesubsystemen, Vorrichtungen, Sensoren und anderen Arten von Gebäudeausrüstung. Gebäudeverwaltungsplattformen werden verwendet, um die Objekte zu registrieren und zu verwalten, von den Objekten erzeugte Daten zu sammeln und zu analysieren und Empfehlungen oder Ergebnisse basierend auf den gesammelten Daten bereitzustellen. Mit zunehmender Anzahl von Gebäuden, die auf eine intelligente Gebäudeumgebung umsteigen, hat die Menge an produzierten und gesammelten Daten exponentiell zugenommen. Dementsprechend ist eine wirksame Analyse einer Vielzahl von gesammelten Daten erwünscht.A BMS can collect data from objects that are assigned to a building, e.g. B. other BMSs, building subsystems, devices, sensors and other types of building equipment. Building management platforms are used to register and manage the objects, collect and analyze data generated by the objects, and provide recommendations or results based on the data collected. With the increasing number of buildings moving to an intelligent building environment, the amount of data produced and collected has increased exponentially. Accordingly, an effective analysis of a variety of data collected is desired.

KURZDARSTELLUNGSUMMARY

Intelligente EntitätSmart entity

Gemäß einem Aspekt eines Ausführungsbeispiel beinhaltet ein Gebäudeverwaltung-Cloud-Rechensystem zum Verwalten von Daten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind, wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, die mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden sind, Folgendes: einen oder mehrere Prozessoren; und ein oder mehrere computerlesbare Speichermedien, die kommunikativ mit dem einen oder den mehreren Prozessoren gekoppelt sind und die darauf gespeicherte Anweisungen aufweisen, die bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erzeugen einer Datenbank aus miteinander verbundenen intelligenten Entitäten, wobei die intelligenten Entitäten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten beinhalten, die von den Objekten erzeugte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben; Empfangen von Daten von einem ersten Objekt der mehreren Objekten; Bestimmen eines zweiten Objekts aus einem relationalen Objekt für das erste Objekt basierend auf den empfangenen Daten; und Modifizieren einer Datenentität, die mit einer Objektentität des zweiten Objekts innerhalb der Datenbank der intelligenten Entitäten verbunden ist, basierend auf den empfangenen Daten für das erste Objekt.According to one aspect of an exemplary embodiment, a building management cloud computing system for managing data relating to a plurality of objects which are assigned to one or more buildings, the plurality of objects each representing an area, a person, a building subsystem and / or a device, connected to one or more electronic communication networks, the following: one or more processors; and one or more computer readable storage media communicatively coupled to the one or more processors and having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to: create a database of each other connected intelligent entities, the intelligent entities including object entities each representing the plurality of objects and data entities representing data generated by the objects, the intelligent entities connected by relational objects indicating the relationships between the object entities and the data entities; Receiving data from a first object of the plurality of objects; Determining a second object from a relational object for the first object based on the received data; and modifying a data entity associated with an object entity of the second object within the intelligent entity database based on the received data for the first object.

Bei einem Ausführungsbeispiel kann das erste Objekt ein Sensor sein und kann das zweite Objekt ein Bereich innerhalb des Gebäudes sein, in dem sich der Sensor befindet.In one embodiment, the first object can be a sensor and the second object can be an area within the building in which the sensor is located.

Bei einem Ausführungsbeispiel kann der Sensor ein Temperatursensor sein und kann die Datenentität, die mit der den Bereich repräsentierenden Objektentität verbunden ist, zum Speichern eines Umgebungstemperaturwertes des Bereichs basierend auf den vom Temperatursensor empfangenen Daten konfiguriert sein.In one embodiment, the sensor may be a temperature sensor and the data entity associated with the object entity representing the area may be configured to store an ambient temperature value of the area based on the data received from the temperature sensor.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Erzeugen einer Schattenentität veranlassen, um historische Werte der Datenentität zu speichern, die mit der Objektentität verbunden ist, die den Bereich repräsentiert. In one embodiment, the instructions may further cause the one or more processors to create a shadow entity to store historical values of the data entity associated with the object entity representing the area.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Berechnen eines durchschnittlichen Umgebungstemperaturwertes aus den in der Schattenentität gespeicherten historischen Werten veranlassen.In one embodiment, the instructions may further cause the one or more processors to calculate an average ambient temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Berechnen eines abnormalen Umgebungstemperaturwertes aus den in der Schattenentität gespeicherten historischen Werten veranlassen.In one embodiment, the instructions may further cause the one or more processors to calculate an abnormal ambient temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel kann jede der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern eines Datenpunkts, der der Objektentität zugeordnet ist, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut enthalten, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert.In one embodiment, each of the object entities may include a static attribute for identifying the object entity, a dynamic attribute for storing a data point associated with the object entity that changes over time, and a behavior attribute that provides an expected response from the object entity in response defined on an input.

Bei einem Ausführungsbeispiel kann die Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, zum Speichern des dynamischen Attributs der Objektentität konfiguriert sein.In one embodiment, the data entity associated with the object entity of the second object may be configured to store the dynamic attribute of the object entity.

Bei einem Ausführungsbeispiel kann ein relationales Objekt die Verbindung zwischen der Datenentität und der Objektentität des zweiten Objekts semantisch definieren.In one embodiment, a relational object can semantically define the connection between the data entity and the object entity of the second object.

Bei einem Ausführungsbeispiel kann das Modifizieren der Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, Folgendes beinhalten: Identifizieren eines dynamischen Attributs in den Daten, die der Objektentität des zweiten Objekts zugeordnet sind; Bestimmen eines relationalen Objekts, das die Datenentität mit der Objektentität des zweiten Objekts verbindet; und Speichern eines Werts der Daten, die dem dynamischen Attribut in der Datenentität entsprechen.In one embodiment, modifying the data entity associated with the object entity of the second object may include: identifying a dynamic attribute in the data associated with the object entity of the second object; Determining a relational object that connects the data entity to the object entity of the second object; and storing a value of the data corresponding to the dynamic attribute in the data entity.

Bei einem Ausführungsbeispiel kann das erste Objekt eine Zugangssteuervorrichtung sein und kann das zweite Objekt eine Person sein, die dem Gebäudes zugeordnet ist, in dem sich die Zugangssteuervorrichtung befindet.In one embodiment, the first object may be an access control device and the second object may be a person associated with the building in which the access control device is located.

Bei einem Ausführungsbeispiel kann die Datenentität, die mit der die Person repräsentierenden Objektentität verbunden ist, zum Speichern eines Standortattributs der Person basierend auf den von der Zugangssteuervorrichtung empfangenen Daten konfiguriert sein.In one embodiment, the data entity associated with the object entity representing the person may be configured to store a location attribute of the person based on the data received from the access control device.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Erzeugen einer Schattenentität, um historische Werte der von der Zugangssteuervorrichtung empfangenen Daten zu speichern, und Berechnen einer durchschnittlichen Ankunftszeit der Person aus den in der Schattenentität gespeicherten historischen Werten veranlassen.In one embodiment, the instructions may further cause the one or more processors to generate a shadow entity to store historical values of the data received from the access control device and calculate an average time of arrival of the person from the historical values stored in the shadow entity.

Gemäß einem Aspekt eines Ausführungsbeispiel beinhaltet ein Verfahren zum Verwalten von Daten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind, wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, die mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden sind, Folgendes: Erzeugen, durch einen oder mehrere Prozessoren, einer Datenbank aus miteinander verbundenen intelligenten Entitäten, wobei die intelligenten Entitäten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten beinhalten, die von den Objekten erzeugte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben; Empfangen, durch den einen oder die mehreren Prozessoren, von Daten von einem ersten Objekt der mehreren Objekte; Bestimmen, durch den einen oder die mehreren Prozessoren, eines zweiten Objekts aus einem relationalen Objekt für das erste Objekt basierend auf den empfangenen Daten; und Modifizieren, durch den einen oder die mehreren Prozessoren, einer Datenentität, die mit einer Objektentität des zweiten Objekts innerhalb der Datenbank der intelligenten Entitäten verbunden ist, basierend auf den empfangenen Daten für das erste Objekt.According to one aspect of an exemplary embodiment, a method for managing data relating to a plurality of objects which are assigned to one or more buildings, the plurality of objects each representing an area, a person, a building subsystem and / or a device which is associated with an or connected to multiple electronic communication networks, the following: creating, by one or more processors, a database of interconnected intelligent entities, the intelligent entities including object entities each representing the multiple objects and data entities representing data generated by the objects, wherein the intelligent entities are linked by relational objects that indicate relationships between the object entities and the data entities; Receiving, by the one or more processors, data from a first object of the plurality of objects; Determining, by the one or more processors, a second object from a relational object for the first object based on the received data; and modifying, by the one or more processors, a data entity associated with an object entity of the second object within the intelligent entity database based on the received data for the first object.

Bei einem Ausführungsbeispiel kann das erste Objekt ein Sensor sein und kann das zweite Objekt ein Bereich innerhalb des Gebäudes sein, in dem sich der Sensor befindet.In one embodiment, the first object can be a sensor and the second object can be an area within the building in which the sensor is located.

Bei einem Ausführungsbeispiel kann der Sensor ein Temperatursensor sein und kann die Datenentität, die mit der den Bereich repräsentierenden Objektentität verbunden ist, zum Speichern eines Umgebungstemperaturwertes des Bereichs basierend auf den vom Temperatursensor empfangenen Daten konfiguriert sein. In one embodiment, the sensor may be a temperature sensor and the data entity associated with the object entity representing the area may be configured to store an ambient temperature value of the area based on the data received from the temperature sensor.

Bei einem Ausführungsbeispiel kann das Verfahren ferner Erzeugen, durch den einen oder die mehreren Prozessoren, einer Schattenentität beinhalten, um historische Werte der Datenentität zu speichern, die mit der Objektentität verbunden ist, die den Bereich repräsentiert.In one embodiment, the method may further generate, by the one or more processors, a shadow entity to store historical values of the data entity associated with the object entity representing the area.

Bei einem Ausführungsbeispiel kann das Verfahren ferner Berechnen, durch den einen oder die mehreren Prozessoren, eines durchschnittlichen Umgebungstemperaturwertes aus den in der Schattenentität gespeicherten historischen Werten beinhalten.In one embodiment, the method may further calculate, by the one or more processors, an average ambient temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel kann das Verfahren ferner Berechnen, durch den einen oder die mehreren Prozessoren, eines abnormalen Umgebungstemperaturwertes aus den in der Schattenentität gespeicherten historischen Werten beinhalten.In one embodiment, the method may further calculate, by the one or more processors, an abnormal ambient temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel kann jede der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern eines Datenpunkts, der der Objektentität zugeordnet ist, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut enthalten, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert.In one embodiment, each of the object entities may include a static attribute for identifying the object entity, a dynamic attribute for storing a data point associated with the object entity that changes over time, and a behavior attribute that provides an expected response from the object entity in response defined on an input.

Bei einem Ausführungsbeispiel kann die Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, zum Speichern des dynamischen Attributs der Objektentität konfiguriert sein.In one embodiment, the data entity associated with the object entity of the second object may be configured to store the dynamic attribute of the object entity.

Bei einem Ausführungsbeispiel kann ein relationales Objekt die Verbindung zwischen der Datenentität und der Objektentität des zweiten Objekts semantisch definieren.In one embodiment, a relational object can semantically define the connection between the data entity and the object entity of the second object.

Bei einem Ausführungsbeispiel kann das Modifizieren der Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, Folgendes beinhalten: Identifizieren, durch den einen oder die mehreren Prozessoren, eines dynamischen Attributs in den Daten, die der Objektentität des zweiten Objekts zugeordnet sind; Bestimmen, durch den einen oder die mehreren Prozessoren, eines relationalen Objekts, das die Datenentität mit der Objektentität des zweiten Objekts verbindet; und Speichern, durch den einen oder die mehreren Prozessoren, eines Werts der Daten, die dem dynamischen Attribut in der Datenentität entsprechen.In one embodiment, modifying the data entity associated with the object entity of the second object may include: identifying, by the one or more processors, a dynamic attribute in the data associated with the object entity of the second object; Determining, by the one or more processors, a relational object that connects the data entity to the object entity of the second object; and storing, by the one or more processors, a value of the data corresponding to the dynamic attribute in the data entity.

Bei einem Ausführungsbeispiel kann das erste Objekt eine Zugangssteuervorrichtung sein und kann das zweite Objekt eine Person sein, die dem Gebäudes zugeordnet ist, in dem sich die Zugangssteuervorrichtung befindet.In one embodiment, the first object may be an access control device and the second object may be a person associated with the building in which the access control device is located.

Bei einem Ausführungsbeispiel kann die Datenentität, die mit der die Person repräsentierenden Objektentität verbunden ist, zum Speichern eines Standortattributs der Person basierend auf den von der Zugangssteuervorrichtung empfangenen Daten konfiguriert sein.In one embodiment, the data entity associated with the object entity representing the person may be configured to store a location attribute of the person based on the data received from the access control device.

Bei einem Ausführungsbeispiel kann das Verfahren ferner Folgendes beinhalten: Erzeugen, durch den einen oder die mehreren Prozessoren, einer Schattenentität, um historische Werte der von der Zugangssteuervorrichtung empfangenen Daten zu speichern, und Berechnen, durch den einen oder die mehreren Prozessoren, einer durchschnittlichen Ankunftszeit der Person aus den in der Schattenentität gespeicherten historischen Werten.In one embodiment, the method may further include: generating, by the one or more processors, a shadow entity to store historical values of the data received from the access control device, and calculating, by the one or more processors, an average arrival time of the Person from the historical values stored in the shadow entity.

Gemäß einem Aspekt eines Ausführungsbeispiels ist ein nichtflüchtiges computerlesbares Medium bereitgestellt, das Programmanweisungen enthält, um einen Computer zum Durchführen des Verfahren aus Folgendem zu veranlassen: Erzeugen einer Datenbank aus miteinander verbundenen intelligenten Entitäten, wobei die intelligenten Entitäten Objektentitäten, die jeweils mehrere Objekten repräsentieren, die einem oder mehreren Gebäuden zugeordnet sind, und wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, und Datenentitäten beinhalten, die von den Objekten erzeugte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten anzeigen; Empfangen von Daten von einem ersten Objekt der mehreren Objekten; Bestimmen eines zweiten Objekts aus einem relationalen Objekt für das erste Objekt basierend auf den empfangenen Daten; und Modifizieren einer Datenentität, die mit einer Objektentität des zweiten Objekts innerhalb der Datenbank der intelligenten Entitäten verbunden ist, basierend auf den empfangenen Daten für das erste Objekt.In one aspect of an embodiment, a non-transitory computer-readable medium is provided that contains program instructions to cause a computer to perform the method of: creating a database of interconnected intelligent entities, the intelligent entities each representing multiple objects are assigned to one or more buildings, and wherein the plurality of objects each represent an area, a person, a building subsystem and / or a device, and contain data entities which represent data generated by the objects, the intelligent entities being connected to one another by relational objects that display relationships between the object entities and the data entities; Receiving data from a first object of the plurality of objects; Determining a second object from a relational object for the first object based on the received data; and modifying a data entity associated with an object entity of the second object within the intelligent entity database based on the received data for the first object.

Bei einem Ausführungsbeispiel kann das erste Objekt ein Sensor sein und kann das zweite Objekt ein Bereich innerhalb des Gebäudes sein, in dem sich der Sensor befindet. In one embodiment, the first object can be a sensor and the second object can be an area within the building in which the sensor is located.

Bei einem Ausführungsbeispiel kann der Sensor ein Temperatursensor sein und kann die Datenentität, die mit der den Bereich repräsentierenden Objektentität verbunden ist, zum Speichern eines Umgebungstemperaturwertes des Bereichs basierend auf den vom Temperatursensor empfangenen Daten konfiguriert sein.In one embodiment, the sensor may be a temperature sensor and the data entity associated with the object entity representing the area may be configured to store an ambient temperature value of the area based on the data received from the temperature sensor.

Bei einem Ausführungsbeispiel können die Programmanweisungen ferner den einen oder die mehreren Prozessoren zum Durchführen von Operationen veranlassen, die Erzeugen einer Schattenentität beinhalten, um historische Werte der Datenentität zu speichern, die mit der Objektentität verbunden ist, die den Bereich repräsentiert.In one embodiment, the program instructions may further cause the one or more processors to perform operations that include creating a shadow entity to store historical values of the data entity associated with the object entity that represents the region.

Bei einem Ausführungsbeispiel können die Programmanweisungen ferner den einen oder die mehreren Prozessoren zum Durchführen von Operationen veranlassen, die Berechnen eines durchschnittlichen Umgebungstemperaturwertes aus den in der Schattenentität gespeicherten historischen Werten beinhalten.In one embodiment, the program instructions may further cause the one or more processors to perform operations that include computing an average ambient temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel können die Programmanweisungen ferner den einen oder die mehreren Prozessoren zum Durchführen von Operationen veranlassen, die Berechnen eines abnormalen Umgebungstemperaturwertes aus den in der Schattenentität gespeicherten historischen Werten beinhalten.In one embodiment, the program instructions may further cause the one or more processors to perform operations that include computing an abnormal ambient temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel kann jede der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern eines Datenpunkts, der der Objektentität zugeordnet ist, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut enthalten, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert.In one embodiment, each of the object entities may include a static attribute for identifying the object entity, a dynamic attribute for storing a data point associated with the object entity that changes over time, and a behavior attribute that provides an expected response from the object entity in response defined on an input.

Bei einem Ausführungsbeispiel kann die Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, zum Speichern des dynamischen Attributs der Objektentität konfiguriert sein.In one embodiment, the data entity associated with the object entity of the second object may be configured to store the dynamic attribute of the object entity.

Bei einem Ausführungsbeispiel kann ein relationales Objekt die Verbindung zwischen der Datenentität und der Objektentität des zweiten Objekts semantisch definieren.In one embodiment, a relational object can semantically define the connection between the data entity and the object entity of the second object.

Bei einem Ausführungsbeispiel kann das Modifizieren der Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, Folgendes beinhalten: Identifizieren eines dynamischen Attributs in den Daten, die der Objektentität des zweiten Objekts zugeordnet sind; Bestimmen eines relationalen Objekts, das die Datenentität mit der Objektentität des zweiten Objekts verbindet; und Speichern eines Werts der Daten, die dem dynamischen Attribut in der Datenentität entsprechen.In one embodiment, modifying the data entity associated with the object entity of the second object may include: identifying a dynamic attribute in the data associated with the object entity of the second object; Determining a relational object that connects the data entity to the object entity of the second object; and storing a value of the data corresponding to the dynamic attribute in the data entity.

Bei einem Ausführungsbeispiel kann das erste Objekt eine Zugangssteuervorrichtung sein und kann das zweite Objekt eine Person sein, die dem Gebäudes zugeordnet ist, in dem sich die Zugangssteuervorrichtung befindet.In one embodiment, the first object may be an access control device and the second object may be a person associated with the building in which the access control device is located.

Bei einem Ausführungsbeispiel kann die Datenentität, die mit der die Person repräsentierenden Objektentität verbunden ist, zum Speichern eines Standortattributs der Person basierend auf den von der Zugangssteuervorrichtung empfangenen Daten konfiguriert sein.In one embodiment, the data entity associated with the object entity representing the person may be configured to store a location attribute of the person based on the data received from the access control device.

Bei einem Ausführungsbeispiel können die Programmanweisungen ferner den einen oder die mehreren Prozessoren zum Durchführen von Operationen veranlassen, die Erzeugen einer Schattenentität, um historische Werte der von der Zugangssteuervorrichtung empfangenen Daten zu speichern, und Berechnen einer durchschnittlichen Ankunftszeit der Person aus den in der Schattenentität gespeicherten historischen Werten beinhalten.In one embodiment, the program instructions may further cause the one or more processors to perform operations, creating a shadow entity to store historical values of the data received from the access control device, and computing an average time of arrival of the person from the historical ones stored in the shadow entity Include values.

Eine andere Implementierung der vorliegenden Offenbarung ist ein Gebäudeverwaltung-Cloud-Rechensystem zum Verwalten von Daten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind, wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, die mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden sind. Das System beinhaltet einen oder mehrere Prozessoren und ein oder mehrere computerlesbare Speichermedien, die kommunikativ mit dem einen oder den mehreren Prozessoren mit darauf gespeicherten Anweisungen gekoppelt sind, die bei Ausführung durch den einen oder die mehreren Prozessoren bewirken, dass der eine oder die mehreren Prozessoren eine Datenbank aus miteinander verbundene intelligente Entitäten erzeugen. Die intelligenten Entitäten beinhalten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten, die von den Objekten erzeugte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Die Anweisungen veranlassen den einen oder die mehreren Prozessoren zu Folgendem: Empfangen neuer Daten von einem ersten Objekt der mehreren Objekten; Bestimmen, ob die Datenbank eine erste Objektentität beinhaltet, die das erste Objekt repräsentiert; als Reaktion auf eine Bestimmung, dass die Datenbank die erste Objektentität beinhaltet, Bestimmen, ob die Datenbank eine erste Datenentität beinhaltet, die von dem ersten Objekt empfangene Daten repräsentiert; und als Reaktion auf eine Bestimmung, dass die Datenbank die erste Datenentität beinhaltet, Bestimmen eines Attributes der ersten Datenentität unter Verwendung der von dem ersten Objekt empfangenen neuen Daten.Another implementation of the present disclosure is a building management cloud computing system for managing data related to multiple objects associated with one or more buildings, the multiple objects each representing an area, person, building subsystem, and / or device connected to one or more electronic communication networks. The system includes one or more processors and one or more computer readable storage media communicatively coupled to the one or more processors with instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to have one Create a database of interconnected intelligent entities. The intelligent entities include object entities, each the multiple Represent objects, and data entities representing data generated by the objects, the intelligent entities being connected by relational objects that indicate the relationships between the object entities and the data entities. The instructions cause the one or more processors to: receive new data from a first object of the plurality of objects; Determining whether the database includes a first object entity that represents the first object; in response to a determination that the database includes the first object entity, determining whether the database includes a first data entity that represents data received from the first object; and in response to a determination that the database includes the first data entity, determining an attribute of the first data entity using the new data received from the first object.

Bei einem Ausführungsbeispiel veranlassen die Anweisungen den einen oder die mehreren Prozessoren als Reaktion auf eine Bestimmung, dass die Datenbank die erste Datenentität nicht enthält, ferner zum Erzeugen der ersten Datenentität, Erzeugen eines ersten relationalen Objekts, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität definiert, und Erzeugen eines Attributs der ersten Datenentität und Erzeugen eines Wertes für das Attribut der ersten Datenentität unter Verwendung der neuen Daten, die von dem ersten Objekt empfangen wurden.In one embodiment, the instructions, in response to a determination that the database does not contain the first data entity, further cause the one or more processors to create the first data entity, create a first relational object that has a relationship between the first object entity and the first Data entity defined, and generating an attribute of the first data entity and generating a value for the attribute of the first data entity using the new data received from the first object.

Bei einem Ausführungsbeispiel veranlassen die Anweisungen den einen oder die mehreren Prozessoren als Reaktion auf eine Bestimmung, dass die Datenbank die erste Objektentität nicht enthält, ferner zum Erzeugen der ersten Objektentität, Erzeugen der ersten Datenentität, Erzeugen eines ersten relationalen Objekts, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität definiert, und Erzeugen eines Attribut der ersten Datenentität und Erzeugen eines Wertes für das Attribut der ersten Datenentität unter Verwendung der neuen Daten, die vom ersten Objekt empfangen wurden.In one embodiment, the instructions, in response to a determination that the database does not contain the first object entity, further cause the one or more processors to create the first object entity, create the first data entity, create a first relational object that has a relationship between the first object entity and the first data entity, and generating an attribute of the first data entity and generating a value for the attribute of the first data entity using the new data received from the first object.

Bei einem Ausführungsbeispiel beinhaltet das Bestimmen, ob die Datenbank die erste Objektentität enthält, Lesen eines oder mehrerer statischer Attribute der Objektentitäten und Bestimmen, ob irgendeines der statischen Attribute das erste Objekt identifiziert.In one embodiment, determining whether the database contains the first object entity includes reading one or more static attributes of the object entities and determining whether any of the static attributes identify the first object.

Bei einem Ausführungsbeispiel beinhaltet das Bestimmen, ob die Datenbank die erste Datenentität enthält, Lesen eines relationalen Attributs der ersten Objektentität und Bestimmen, ob das relationale Attribut die erste Datenentität identifiziert.In one embodiment, determining whether the database contains the first data entity includes reading a relational attribute of the first object entity and determining whether the relational attribute identifies the first data entity.

Bei einem Ausführungsbeispiel beinhaltet das Bestimmen, ob die Datenbank die erste Datenentität enthält, Identifizieren eines ersten relationalen Objekts, das eine Beziehung zwischen der ersten Datenentität und einer oder mehreren der Datenentitäten definiert, und Bestimmen, ob das erste relationale Objekt die erste Datenentität identifiziert.In one embodiment, determining whether the database contains the first data entity includes identifying a first relational object that defines a relationship between the first data entity and one or more of the data entities, and determining whether the first relational object identifies the first data entity.

Bei einem Ausführungsbeispiel beinhaltet die erste Datenentität ein statisches Attribut, das die erste Datenentität identifiziert, und ein dynamisches Attribut, das einen oder mehrere dynamische Werte der ersten Datenentität umfasst. Das Aktualisieren des Attributs der ersten Datenentität kann Aktualisieren des einen oder der mehreren dynamischen Werte des dynamischen Attributs unter Verwendung der neuen Daten beinhalten, die von dem ersten Objekt empfangen wurden.In one embodiment, the first data entity includes a static attribute that identifies the first data entity and a dynamic attribute that includes one or more dynamic values of the first data entity. Updating the attribute of the first data entity may include updating the one or more dynamic values of the dynamic attribute using the new data received from the first object.

Bei einem Ausführungsbeispiel beinhalten eine oder mehrere der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern eines Datenpunkts, der der Objektentität zugeordnet ist, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert.In one embodiment, one or more of the object entities include a static attribute for identifying the object entity, a dynamic attribute for storing a data point associated with the object entity that changes over time, and a behavioral attribute that is an expected response of the object entity as Response to an input defined.

Bei einem Ausführungsbeispiel kann das erste Objekt ein Temperatursensor sein, der sich in dem Gebäude befindet.In one embodiment, the first object can be a temperature sensor located in the building.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Erzeugen einer Schattenentität veranlassen, um historische Werte der ersten Datenentität unter Verwendung historischer Daten, die von dem Temperatursensor empfangen werden, zu speichern.In one embodiment, the instructions may further cause the one or more processors to create a shadow entity to store historical values of the first data entity using historical data received from the temperature sensor.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Berechnen eines durchschnittlichen Temperaturwertes aus den in der Schattenentität gespeicherten historischen Werten veranlassen. In one embodiment, the instructions may further cause the one or more processors to calculate an average temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Berechnen eines abnormalen Temperaturwertes aus den in der Schattenentität gespeicherten historischen Werten veranlassen.In one embodiment, the instructions may further cause the one or more processors to calculate an abnormal temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel kann das erste Objekt eine in dem Gebäude befindliche Zugangssteuervorrichtung sein und kann die erste Datenentität in Zusammenhang mit einem Zugangsschlüsselkartenobjekt befinden, das sich auf ein Personenobjekt bezieht.In one embodiment, the first object may be an access control device located in the building, and the first data entity may be associated with an access key card object related to a person object.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Aktualisieren eines Standortattributs des Personenobjekts gemäß den neuen Daten veranlassen, die von der Zugangssteuervorrichtung empfangen werden.In one embodiment, the instructions may further cause the one or more processors to update a location attribute of the person object according to the new data received from the access control device.

Eine andere Implementierung der vorliegenden Offenbarung ist ein Verfahren zum Verwalten von Daten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind, wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, die mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden sind. Das Verfahren beinhaltet Erzeugen einer Datenbank aus miteinander verbundenen intelligenten Entitäten. Die intelligenten Entitäten beinhalten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten, die von den Objekten erzeugte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Das Verfahren beinhaltet Folgendes: Empfangen neuer Daten von einem ersten Objekt der mehreren Objekten; Bestimmen, ob die Datenbank eine erste Objektentität beinhaltet, die das erste Objekt repräsentiert; als Reaktion auf eine Bestimmung, dass die Datenbank die erste Objektentität beinhaltet, Bestimmen, ob die Datenbank eine erste Datenentität beinhaltet, die von dem ersten Objekt empfangene Daten repräsentiert; und als Reaktion auf eine Bestimmung, dass die Datenbank die erste Datenentität beinhaltet, Bestimmen eines Attributes der ersten Datenentität unter Verwendung der von dem ersten Objekt empfangenen neuen Daten.Another implementation of the present disclosure is a method of managing data related to multiple objects associated with one or more buildings, the multiple objects each representing an area, person, building subsystem, and / or device associated with one or several electronic communication networks are connected. The method involves creating a database of interconnected intelligent entities. The intelligent entities include object entities each representing the plurality of objects and data entities representing data generated by the objects, the intelligent entities being connected by relational objects that indicate the relationships between the object entities and the data entities. The method includes: receiving new data from a first object of the plurality of objects; Determining whether the database includes a first object entity that represents the first object; in response to a determination that the database includes the first object entity, determining whether the database includes a first data entity that represents data received from the first object; and in response to a determination that the database includes the first data entity, determining an attribute of the first data entity using the new data received from the first object.

Bei einem Ausführungsbeispiel umfasst das Verfahren als Reaktion auf eine Bestimmung, dass die Datenbank die erste Datenentität nicht enthält, Erzeugen der ersten Datenentität, Erzeugen eines ersten relationalen Objekts, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität definiert, und Erzeugen eines Attributs der ersten Datenentität und Erzeugen eines Wertes für das Attribut der ersten Datenentität unter Verwendung der neuen Daten, die von dem ersten Objekt empfangen wurden.In one embodiment, in response to a determination that the database does not contain the first data entity, the method includes creating the first data entity, creating a first relational object that defines a relationship between the first object entity and the first data entity, and generating an attribute of the first data entity and generating a value for the attribute of the first data entity using the new data received from the first object.

Bei einem Ausführungsbeispiel umfasst das Verfahren als Reaktion auf eine Bestimmung, dass die Datenbank die erste Objektentität nicht enthält, Erzeugen der ersten Objektentität, Erzeugen der ersten Datenentität, Erzeugen eines ersten relationalen Objekts, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität definiert, und Erzeugen eines Attribut der ersten Datenentität und Erzeugen eines Wertes für das Attribut der ersten Datenentität unter Verwendung der neuen Daten, die vom ersten Objekt empfangen wurden.In one embodiment, in response to a determination that the database does not contain the first object entity, the method includes creating the first object entity, creating the first data entity, creating a first relational object that defines a relationship between the first object entity and the first data entity, and generating an attribute of the first data entity and generating a value for the attribute of the first data entity using the new data received from the first object.

Bei einem Ausführungsbeispiel beinhaltet das Bestimmen, ob die Datenbank die erste Objektentität enthält, Lesen eines oder mehrerer statischer Attribute der Objektentitäten und Bestimmen, ob irgendeines der statischen Attribute das erste Objekt identifiziert.In one embodiment, determining whether the database contains the first object entity includes reading one or more static attributes of the object entities and determining whether any of the static attributes identify the first object.

Bei einem Ausführungsbeispiel beinhaltet das Bestimmen, ob die Datenbank die erste Datenentität enthält, Lesen eines relationalen Attributs der ersten Objektentität und Bestimmen, ob das relationale Attribut die erste Datenentität identifiziert.In one embodiment, determining whether the database contains the first data entity includes reading a relational attribute of the first object entity and determining whether the relational attribute identifies the first data entity.

Bei einem Ausführungsbeispiel beinhaltet das Bestimmen, ob die Datenbank die erste Datenentität enthält, Identifizieren eines ersten relationalen Objekts, das eine Beziehung zwischen der ersten Datenentität und einer oder mehreren der Datenentitäten definiert, und Bestimmen, ob das erste relationale Objekt die erste Datenentität identifiziert.In one embodiment, determining whether the database contains the first data entity includes identifying a first relational object that defines a relationship between the first data entity and one or more of the data entities, and determining whether the first relational object identifies the first data entity.

Bei einem Ausführungsbeispiel beinhaltet die erste Datenentität ein statisches Attribut, das die erste Datenentität identifiziert, und ein dynamisches Attribut, das einen oder mehrere dynamische Werte der ersten Datenentität umfasst. Das Aktualisieren des Attributs der ersten Datenentität kann Aktualisieren des einen oder der mehreren dynamischen Werte des dynamischen Attributs unter Verwendung der neuen Daten beinhalten, die von dem ersten Objekt empfangen wurden.In one embodiment, the first data entity includes a static attribute that identifies the first data entity and a dynamic attribute that includes one or more dynamic values of the first data entity. Updating the attribute of the first data entity may include updating the one or more dynamic values of the dynamic attribute using the new data received from the first object.

Bei einem Ausführungsbeispiel beinhalten eine oder mehrere der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern eines Datenpunkts, der der Objektentität zugeordnet ist, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert. In one embodiment, one or more of the object entities include a static attribute for identifying the object entity, a dynamic attribute for storing a data point associated with the object entity that changes over time, and a behavioral attribute that is an expected response of the object entity as Response to an input defined.

Bei einem Ausführungsbeispiel kann das erste Objekt ein Temperatursensor sein, der sich in dem Gebäude befindet.In one embodiment, the first object can be a temperature sensor located in the building.

Bei einem Ausführungsbeispiel kann das Verfahren ferner Erzeugen einer Schattenentität umfassen, um historische Werte der ersten Datenentität unter Verwendung historischer Daten, die von dem Temperatursensor empfangen werden, zu speichern.In one embodiment, the method may further include generating a shadow entity to store historical values of the first data entity using historical data received from the temperature sensor.

Bei einem Ausführungsbeispiel kann das Verfahren ferner Berechnen eines durchschnittlichen Temperaturwertes aus den in der Schattenentität gespeicherten historischen Werten beinhalten.In one embodiment, the method may further include computing an average temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel kann das Verfahren ferner Berechnen eines abnormalen Temperaturwertes aus den in der Schattenentität gespeicherten historischen Werten beinhalten.In one embodiment, the method may further include computing an abnormal temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel kann das erste Objekt eine in dem Gebäude befindliche Zugangssteuervorrichtung sein und kann die erste Datenentität in Zusammenhang mit einem Zugangsschlüsselkartenobjekt befinden, das sich auf ein Personenobjekt bezieht.In one embodiment, the first object may be an access control device located in the building, and the first data entity may be associated with an access key card object related to a person object.

Bei einem Ausführungsbeispiel kann das Verfahren ferner Aktualisieren eines Standortattributs des Personenobjekts gemäß den neuen Daten beinhalten, die von der Zugangssteuervorrichtung empfangen werden.In one embodiment, the method may further include updating a location attribute of the person object according to the new data received from the access control device.

Eine andere Implementierung der vorliegenden Offenbarung ist ein oder mehrere nichtflüchtige computerlesbare Medien, die Programmanweisungen enthalten, die, wenn sie durch einen oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zum Durchführen von Operationen veranlassen, die Erzeugen einer Datenbank aus miteinander verbundenen intelligenter Entitäten beinhalten. Die intelligenten Entitäten beinhalten Objektentitäten, die jeweils mehrere Objekten repräsentieren, die einem oder mehreren Gebäuden zugeordnet sind, und wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, und Datenentitäten beinhalten, die von den Objekten erzeugte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten anzeigen. Die Operationen beinhalten Folgendes: Empfangen neuer Daten von einem ersten Objekt der mehreren Objekten; Bestimmen, ob die Datenbank eine erste Objektentität beinhaltet, die das erste Objekt repräsentiert; als Reaktion auf eine Bestimmung, dass die Datenbank die erste Objektentität beinhaltet, Bestimmen, ob die Datenbank eine erste Datenentität beinhaltet, die von dem ersten Objekt empfangene Daten repräsentiert; und als Reaktion auf eine Bestimmung, dass die Datenbank die erste Datenentität beinhaltet, Bestimmen eines Attributes der ersten Datenentität unter Verwendung der von dem ersten Objekt empfangenen neuen Daten.Another implementation of the present disclosure is one or more non-volatile computer-readable media that contain program instructions that, when executed by one or more processors, cause the one or more processors to perform operations that create a database of interconnected smarter Include entities. The intelligent entities include object entities, each representing multiple objects associated with one or more buildings, the multiple objects each representing an area, a person, a building subsystem, and / or a device, and data entities created by the objects Represent data with the intelligent entities connected by relational objects that indicate relationships between the object entities and the data entities. The operations include: receiving new data from a first object of the plurality of objects; Determining whether the database includes a first object entity that represents the first object; in response to a determination that the database includes the first object entity, determining whether the database includes a first data entity that represents data received from the first object; and in response to a determination that the database includes the first data entity, determining an attribute of the first data entity using the new data received from the first object.

Bei einem Ausführungsbeispiel veranlassen die Anweisungen den einen oder die mehreren Prozessoren als Reaktion auf eine Bestimmung, dass die Datenbank die erste Datenentität nicht enthält, ferner zum Erzeugen der ersten Datenentität, Erzeugen eines ersten relationalen Objekts, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität definiert, und Erzeugen eines Attributs der ersten Datenentität und Erzeugen eines Wertes für das Attribut der ersten Datenentität unter Verwendung der neuen Daten, die von dem ersten Objekt empfangen wurden.In one embodiment, the instructions, in response to a determination that the database does not contain the first data entity, further cause the one or more processors to create the first data entity, create a first relational object that has a relationship between the first object entity and the first Data entity defined, and generating an attribute of the first data entity and generating a value for the attribute of the first data entity using the new data received from the first object.

Bei einem Ausführungsbeispiel veranlassen die Anweisungen den einen oder die mehreren Prozessoren als Reaktion auf eine Bestimmung, dass die Datenbank die erste Objektentität nicht enthält, ferner zum Erzeugen der ersten Objektentität, Erzeugen der ersten Datenentität, Erzeugen eines ersten relationalen Objekts, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität definiert, und Erzeugen eines Attribut der ersten Datenentität und Erzeugen eines Wertes für das Attribut der ersten Datenentität unter Verwendung der neuen Daten, die vom ersten Objekt empfangen wurden.In one embodiment, the instructions, in response to a determination that the database does not contain the first object entity, further cause the one or more processors to create the first object entity, create the first data entity, create a first relational object that has a relationship between the first object entity and the first data entity, and generating an attribute of the first data entity and generating a value for the attribute of the first data entity using the new data received from the first object.

Bei einem Ausführungsbeispiel beinhaltet das Bestimmen, ob die Datenbank die erste Objektentität enthält, Lesen eines oder mehrerer statischer Attribute der Objektentitäten und Bestimmen, ob irgendeines der statischen Attribute das erste Objekt identifiziert. In one embodiment, determining whether the database contains the first object entity includes reading one or more static attributes of the object entities and determining whether any of the static attributes identify the first object.

Bei einem Ausführungsbeispiel beinhaltet das Bestimmen, ob die Datenbank die erste Datenentität enthält, Lesen eines relationalen Attributs der ersten Objektentität und Bestimmen, ob das relationale Attribut die erste Datenentität identifiziert.In one embodiment, determining whether the database contains the first data entity includes reading a relational attribute of the first object entity and determining whether the relational attribute identifies the first data entity.

Bei einem Ausführungsbeispiel beinhaltet das Bestimmen, ob die Datenbank die erste Datenentität enthält, Identifizieren eines ersten relationalen Objekts, das eine Beziehung zwischen der ersten Datenentität und einer oder mehreren der Datenentitäten definiert, und Bestimmen, ob das erste relationale Objekt die erste Datenentität identifiziert.In one embodiment, determining whether the database contains the first data entity includes identifying a first relational object that defines a relationship between the first data entity and one or more of the data entities, and determining whether the first relational object identifies the first data entity.

Bei einem Ausführungsbeispiel beinhaltet die erste Datenentität ein statisches Attribut, das die erste Datenentität identifiziert, und ein dynamisches Attribut, das einen oder mehrere dynamische Werte der ersten Datenentität umfasst. Das Aktualisieren des Attributs der ersten Datenentität kann Aktualisieren des einen oder der mehreren dynamischen Werte des dynamischen Attributs unter Verwendung der neuen Daten beinhalten, die von dem ersten Objekt empfangen wurden.In one embodiment, the first data entity includes a static attribute that identifies the first data entity and a dynamic attribute that includes one or more dynamic values of the first data entity. Updating the attribute of the first data entity may include updating the one or more dynamic values of the dynamic attribute using the new data received from the first object.

Bei einem Ausführungsbeispiel beinhalten eine oder mehrere der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern eines Datenpunkts, der der Objektentität zugeordnet ist, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert.In one embodiment, one or more of the object entities include a static attribute for identifying the object entity, a dynamic attribute for storing a data point associated with the object entity that changes over time, and a behavioral attribute that is an expected response of the object entity as Response to an input defined.

Bei einem Ausführungsbeispiel kann das erste Objekt ein Temperatursensor sein, der sich in dem Gebäude befindet.In one embodiment, the first object can be a temperature sensor located in the building.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Erzeugen einer Schattenentität veranlassen, um historische Werte der ersten Datenentität unter Verwendung historischer Daten, die von dem Temperatursensor empfangen werden, zu speichern.In one embodiment, the instructions may further cause the one or more processors to create a shadow entity to store historical values of the first data entity using historical data received from the temperature sensor.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Berechnen eines durchschnittlichen Temperaturwertes aus den in der Schattenentität gespeicherten historischen Werten veranlassen.In one embodiment, the instructions may further cause the one or more processors to calculate an average temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Berechnen eines abnormalen Temperaturwertes aus den in der Schattenentität gespeicherten historischen Werten veranlassen.In one embodiment, the instructions may further cause the one or more processors to calculate an abnormal temperature value from the historical values stored in the shadow entity.

Bei einem Ausführungsbeispiel kann das erste Objekt eine in dem Gebäude befindliche Zugangssteuervorrichtung sein und kann die erste Datenentität in Zusammenhang mit einem Zugangsschlüsselkartenobjekt befinden, das sich auf ein Personenobjekt bezieht.In one embodiment, the first object may be an access control device located in the building, and the first data entity may be associated with an access key card object related to a person object.

Bei einem Ausführungsbeispiel können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Aktualisieren eines Standortattributs des Personenobjekts gemäß den neuen Daten veranlassen, die von der Zugangssteuervorrichtung empfangen werden.In one embodiment, the instructions may further cause the one or more processors to update a location attribute of the person object according to the new data received from the access control device.

Intelligente Entität mit ZeitreihenSmart entity with time series

Eine Implementierung der vorliegenden Offenbarung ist ein Gebäudeverwaltung-Cloud-Rechensystem zum Verwalten von Zeitreihendaten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind. Die mehreren Objekte repräsentiert jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung. Die mehreren Objekte sind mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden. Das System beinhaltet einen oder mehrere Prozessoren und ein oder mehrere computerlesbare Speichermedien. Der eine oder die mehreren Prozessoren sind kommunikativ mit einer Datenbank aus miteinander verbundenen intelligenten Entitäten verbunden, wobei die intelligenten Entitäten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten beinhalten, die gespeicherte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Das eine oder die mehreren computerlesbaren Speichermedien sind kommunikativ mit dem einen oder den mehreren Prozessoren verbunden und weisen darauf gespeicherte Anweisungen auf. Bei Ausführung durch den einen oder die mehreren Prozessoren veranlassen die Anweisungen den einen oder die mehreren Prozessoren zum Empfangen erster Rohdaten von einem ersten Objekt der mehreren Objekte. Die ersten Rohdaten enthalten einen oder mehrere erste Datenpunkte, die vom ersten Objekt erzeugt werden. Die Anweisungen veranlassen, wenn sie ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem: Erzeugen einer ersten Eingabezeitreihe gemäß dem einen oder den mehreren Datenpunkten, Identifizieren einer ersten Objektentität, die das erste Objekt repräsentiert, aus einer ersten Kennung in der ersten Eingabezeitreihe, Identifizieren einer ersten Datenentität aus einem ersten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität angibt, und Speichern der ersten Eingabezeitreihe in der ersten Datenentität.An implementation of the present disclosure is a building management cloud computing system for managing time series data related to multiple objects associated with one or more buildings. The multiple objects each represent an area, a person, a building subsystem and / or a device. The multiple objects are connected to one or more electronic communication networks. The system includes one or more processors and one or more computer readable storage media. The one or more processors are communicatively connected to a database of interconnected intelligent entities, the intelligent entities including object entities each representing the multiple objects and data entities representing stored data, the intelligent entities being interconnected by relational objects that specify relationships between the object entities and the data entities. The one or more computer-readable storage media are communicatively connected to the one or more processors and have instructions stored thereon. When executed by the one or more processors, the instructions cause the one or more processors to receive first raw data from a first object of the plurality of objects. The first raw data contain one or more first data points that are generated by the first object. Get the instructions done when executed the one or more processors do the following: generate a first input time series according to the one or more data points, identify a first object entity representing the first object from a first identifier in the first input time series, identify a first data entity from a first relational object indicating a relationship between the first object entity and the first data entity and storing the first input time series in the first data entity.

Bei manchen Ausführungsformen können die relationalen Objekte die Beziehungen zwischen den Objektentitäten und den Datenentitäten semantisch definieren.In some embodiments, the relational objects can semantically define the relationships between the object entities and the data entities.

Bei manchen Ausführungsbeispielen können eine oder mehrere der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern von Daten, die der Objektentität zugeordnet sind, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut beinhalten, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert.In some embodiments, one or more of the object entities may include a static attribute to identify the object entity, a dynamic attribute to store data associated with the object entity that changes over time, and a behavior attribute that is an expected response from the object entity defined in response to an input.

Bei manchen Ausführungsformen kann die erste Eingabezeitreihe dem dynamischen Attribut der ersten Objektentität entsprechen.In some embodiments, the first input time series may correspond to the dynamic attribute of the first object entity.

Bei manchen Ausführungsformen kann wenigstens einer der ersten Datenpunkte in der ersten Eingabezeitreihe in dem dynamischen Attribut der ersten Objektentität gespeichert sein.In some embodiments, at least one of the first data points in the first input time series may be stored in the dynamic attribute of the first object entity.

Bei manchen Ausführungsformen kann die Eingabezeitreihe die erste Kennung, einen Zeitstempel, der eine Erzeugungszeit des einen oder der mehreren ersten Datenpunkte angeben, und einen Wert des einen oder der mehreren ersten Datenpunkte enthalten.In some embodiments, the input time series may include the first identifier, a timestamp that indicates a generation time of the one or more first data points, and a value of the one or more first data points.

Bei manchen Ausführungsformen können die Anweisungen den einen oder die mehreren Prozessoren ferner zu Folgendem veranlassen: Identifizieren einer zweiten Datenentität. die ein zweites Objekt repräsentiert, aus einem zweiten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der zweiten Objektentität angibt, und Identifizieren einer zweiten Datenentität aus einem dritten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der zweiten Datenentität angibt. Die zweite Datenentität kann eine zweite Eingabezeitreihe speichern, die einem oder mehreren zweiten Datenpunkten entspricht, die dem zweiten Objekt zugeordnet sind.In some embodiments, the instructions may further cause the one or more processors to: identify a second data entity. representing a second object from a second relational object indicating a relationship between the first object entity and the second object entity, and identifying a second data entity from a third relational object indicating a relationship between the second object entity and the second data entity. The second data entity can store a second input time series that corresponds to one or more second data points associated with the second object.

Bei manchen Ausführungsformen können die Anweisungen den einen oder die mehreren Prozessoren ferner zu Folgendem veranlassen: Identifizieren eines oder mehrerer Verarbeitungsworkflows, die eine oder mehrere Verarbeitungsoperationen definieren, um abgeleitete Zeitreihen unter Verwendung der ersten und zweiten Eingabezeitreihen zu erzeugen, Ausführen des einen oder der mehreren Verarbeitungsarbeitsflüsse, um die abgeleitete Zeitreihe zu erzeugen, Identifizieren einer dritten Datenentität aus einem vierten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der dritten Datenentität angibt, und Speichern der abgeleiteten Eingabezeitreihe in der dritten Datenentität.In some embodiments, the instructions may further cause the one or more processors to: identify one or more processing workflows that define one or more processing operations to generate derived time series using the first and second input time series, execute the one or more processing workflows to generate the derived time series, identifying a third data entity from a fourth relational object indicating a relationship between the second object entity and the third data entity, and storing the derived input time series in the third data entity.

Bei manchen Ausführungsformen kann das erste Objekt eine Zugangssteuervorrichtung sein und kann das zweite Objekt eine einer Person zugeordnete Zugangsschlüsselkarte sein.In some embodiments, the first object may be an access control device and the second object may be an access key card associated with a person.

Bei manchen Ausführungsformen kann die abgeleitete Zeitreihe einen oder mehrere virtuelle Datenpunkte enthalten, die gemäß der ersten und zweiten Eingabezeitreihe berechnet wurden.In some embodiments, the derived time series may include one or more virtual data points calculated according to the first and second input time series.

Bei manchen Ausführungsformen können der eine oder die mehreren virtuellen Datenpunkte ein oder mehrere Standortattribute der Person enthalten.In some embodiments, the one or more virtual data points may include one or more location attributes of the person.

Bei manchen Ausführungsformen kann das erste Objekt ein Temperatursensor sein und kann das zweite Objekt kann eine variable Luftvolumeneinheit (VAV: Variable Air Volume) sein.In some embodiments, the first object may be a temperature sensor and the second object may be a variable air volume unit (VAV).

Bei manchen Ausführungsformen kann die abgeleitete Zeitreihe ein abnormales Temperaturattribut enthalten, das einem Bereich entspricht, in dem sich der Temperatursensor befindet und für deren Versorgung die VAV konfiguriert ist.In some embodiments, the derived time series may include an abnormal temperature attribute that corresponds to an area in which the temperature sensor is located and for which the VAV is configured to be supplied.

Bei manchen Ausführungsformen kann das erste und/oder zweite Objekt ein Temperatursensor sein.In some embodiments, the first and / or second object can be a temperature sensor.

Bei manchen Ausführungsformen können die Anweisungen ferner den einen oder die mehreren Prozessoren zum periodischen Empfangen von Temperaturmessungen von dem Temperatursensor und Aktualisieren wenigstens der abgeleiteten Zeitreihe in der dritten Datenentität jedes Mal, wenn eine neue Temperaturmessung von dem Temperatursensor empfangen wird, veranlassen.In some embodiments, the instructions may further include the one or more processors to periodically receive temperature measurements from the temperature sensor and Have at least the derived time series update in the third data entity every time a new temperature measurement is received by the temperature sensor.

Bei manchen Ausführungsformen kann die abgeleitete Zeitreihe eine durchschnittliche Umgebungstemperatur eines Bereichs enthalten, in dem sich der Temperatursensor befindet.In some embodiments, the derived time series may include an average ambient temperature of an area in which the temperature sensor is located.

Bei manchen Ausführungsformen können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Erzeugen einer Schattenentität veranlassen, um historische Werte der ersten Rohdaten zu speichern.In some embodiments, the instructions may further cause the one or more processors to create a shadow entity to store historical values of the first raw data.

Bei manchen Ausführungsformen können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Berechnen eines virtuellen Datenpunktes aus den historischen Werten und Erzeugen einer vierten Datenentität zum Speichern des virtuellen Datenpunkts veranlassen.In some embodiments, the instructions may further cause the one or more processors to compute a virtual data point from the historical values and generate a fourth data entity to store the virtual data point.

Eine andere Implementierung der vorliegenden Offenbarung ist ein Verfahren zum Verwalten von Zeitreihendaten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind. Die mehreren Objekte repräsentiert jeweils einen Bereich, eine Person, ein Gebäudesystem und/oder eine Vorrichtung. Die mehreren Objekte sind mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden. Das Verfahren beinhaltet Empfangen erster Rohdaten von einem ersten Objekt der mehreren Objekten. Die ersten Rohdaten enthalten einen oder mehrere erste Datenpunkte, die vom ersten Objekt erzeugt werden. Das Verfahren beinhaltet Erzeugen einer ersten Eingabezeitreihe gemäß dem einen oder den mehreren Datenpunkten und Zugreifen auf eine Datenbank aus miteinander verbundenen intelligenten Entitäten. Die intelligenten Entitäten beinhalten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten, die gespeicherte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Das Verfahren beinhaltet Folgendes: Identifizieren einer ersten Objektentität, die das erste Objekt repräsentiert, aus einer ersten Kennung in der ersten Eingabezeitreihe, Identifizieren einer ersten Datenentität aus einem ersten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität angibt, und Speichern der ersten Eingabezeitreihe in der ersten Datenentität.Another implementation of the present disclosure is a method for managing time series data related to multiple objects associated with one or more buildings. The multiple objects each represent an area, a person, a building system and / or a device. The multiple objects are connected to one or more electronic communication networks. The method includes receiving first raw data from a first object of the plurality of objects. The first raw data contain one or more first data points that are generated by the first object. The method includes generating a first input time series according to the one or more data points and accessing a database of interconnected intelligent entities. The intelligent entities include object entities each representing the plurality of objects and data entities representing stored data, the intelligent entities being connected by relational objects that indicate relationships between the object entities and the data entities. The method includes: identifying a first object entity that represents the first object from a first identifier in the first input time series, identifying a first data entity from a first relational object that indicates a relationship between the first object entity and the first data entity, and storing the first input time series in the first data entity.

Bei manchen Ausführungsformen können die relationalen Objekte die Beziehungen zwischen den Objektentitäten und den Datenentitäten semantisch definieren.In some embodiments, the relational objects can semantically define the relationships between the object entities and the data entities.

Bei manchen Ausführungsbeispielen können eine oder mehrere der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern von Daten, die der Objektentität zugeordnet sind, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut beinhalten, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert.In some embodiments, one or more of the object entities may include a static attribute to identify the object entity, a dynamic attribute to store data associated with the object entity that changes over time, and a behavior attribute that is an expected response from the object entity defined in response to an input.

Bei manchen Ausführungsformen kann die erste Eingabezeitreihe dem dynamischen Attribut der ersten Objektentität entsprechen.In some embodiments, the first input time series may correspond to the dynamic attribute of the first object entity.

Bei manchen Ausführungsformen kann wenigstens einer der ersten Datenpunkte in der ersten Eingabezeitreihe in dem dynamischen Attribut der ersten Objektentität gespeichert sein.In some embodiments, at least one of the first data points in the first input time series may be stored in the dynamic attribute of the first object entity.

Bei manchen Ausführungsformen kann die Eingabezeitreihe die erste Kennung, einen Zeitstempel, der eine Erzeugungszeit des einen oder der mehreren ersten Datenpunkte angeben, und einen Wert des einen oder der mehreren ersten Datenpunkte enthalten.In some embodiments, the input time series may include the first identifier, a timestamp that indicates a generation time of the one or more first data points, and a value of the one or more first data points.

Bei manchen Ausführungsformen kann das Verfahren ferner Folgendes beinhalten: Identifizieren einer zweiten Datenentität. die ein zweites Objekt repräsentiert, aus einem zweiten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der zweiten Objektentität angibt, und Identifizieren einer zweiten Datenentität aus einem dritten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der zweiten Datenentität angibt. Die zweite Datenentität kann eine zweite Eingabezeitreihe speichern, die einem oder mehreren zweiten Datenpunkten entspricht, die dem zweiten Objekt zugeordnet sind.In some embodiments, the method may further include: identifying a second data entity. representing a second object from a second relational object indicating a relationship between the first object entity and the second object entity, and identifying a second data entity from a third relational object indicating a relationship between the second object entity and the second data entity. The second data entity can store a second input time series that corresponds to one or more second data points associated with the second object.

Bei manchen Ausführungsformen kann das Verfahren ferner Folgendes beinhalten: Identifizieren eines oder mehrerer Verarbeitungsworkflows, die eine oder mehrere Verarbeitungsoperationen definieren, um abgeleitete Zeitreihen unter Verwendung der ersten und zweiten Eingabezeitreihen zu erzeugen, Ausführen des einen oder der mehreren Verarbeitungsarbeitsflüsse, um die abgeleitete Zeitreihe zu erzeugen, Identifizieren einer dritten Datenentität aus einem vierten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der dritten Datenentität angibt, und Speichern der abgeleiteten Eingabezeitreihe in der dritten Datenentität.In some embodiments, the method may further include: identifying one or more processing workflows that define one or more processing operations to generate derived time series using the first and second input time series, executing the one or more processing workflows to generate the derived time series , Identify a third data entity from a fourth relational object that has a relationship between the second Object entity and the third data entity, and storing the derived input time series in the third data entity.

Bei manchen Ausführungsformen kann das erste Objekt eine Zugangssteuervorrichtung sein und kann das zweite Objekt eine einer Person zugeordnete Zugangsschlüsselkarte sein.In some embodiments, the first object may be an access control device and the second object may be an access key card associated with a person.

Bei manchen Ausführungsformen kann die abgeleitete Zeitreihe einen oder mehrere virtuelle Datenpunkte enthalten, die gemäß der ersten und zweiten Eingabezeitreihe berechnet wurden.In some embodiments, the derived time series may include one or more virtual data points calculated according to the first and second input time series.

Bei manchen Ausführungsformen können der eine oder die mehreren virtuellen Datenpunkte ein oder mehrere Standortattribute der Person enthalten.In some embodiments, the one or more virtual data points may include one or more location attributes of the person.

Bei manchen Ausführungsformen kann das erste Objekt ein Temperatursensor sein und kann das zweite Objekt kann eine variable Luftvolumeneinheit (VAV: Variable Air Volume) sein.In some embodiments, the first object may be a temperature sensor and the second object may be a variable air volume unit (VAV).

Bei manchen Ausführungsformen kann die abgeleitete Zeitreihe ein abnormales Temperaturattribut enthalten, das einem Bereich entspricht, in dem sich der Temperatursensor befindet und für deren Versorgung die VAV konfiguriert ist.In some embodiments, the derived time series may include an abnormal temperature attribute that corresponds to an area in which the temperature sensor is located and for which the VAV is configured to be supplied.

Bei manchen Ausführungsformen kann das erste und/oder zweite Objekt ein Temperatursensor sein.In some embodiments, the first and / or second object can be a temperature sensor.

Bei manchen Ausführungsformen kann das Verfahren ferner periodisches Empfangen von Temperaturmessungen von dem Temperatursensor und Aktualisieren wenigstens der abgeleiteten Zeitreihe in der dritten Datenentität jedes Mal, wenn eine neue Temperaturmessung von dem Temperatursensor empfangen wird, beinhalten.In some embodiments, the method may further include periodically receiving temperature measurements from the temperature sensor and updating at least the derived time series in the third data entity each time a new temperature measurement is received from the temperature sensor.

Bei manchen Ausführungsformen kann die abgeleitete Zeitreihe eine durchschnittliche Umgebungstemperatur eines Bereichs enthalten, in dem sich der Temperatursensor befindet.In some embodiments, the derived time series may include an average ambient temperature of an area in which the temperature sensor is located.

Bei manchen Ausführungsformen kann das Verfahren ferner Erzeugen einer Schattenentität beinhalten, um historische Werte der ersten Rohdaten zu speichern.In some embodiments, the method may further include creating a shadow entity to store historical values of the first raw data.

Bei manchen Ausführungsformen kann das Verfahren ferner Berechnen eines virtuellen Datenpunktes aus den historischen Werten und Erzeugen einer vierten Datenentität zum Speichern des virtuellen Datenpunkts beinhalten.In some embodiments, the method may further include computing a virtual data point from the historical values and generating a fourth data entity to store the virtual data point.

Eine andere Implementierung der vorliegenden Offenbarung ist ein oder mehrere nichtflüchtige computerlesbare Medien, die Programmanweisungen enthalten. Bei Ausführung durch einen oder mehrere Prozessoren veranlassen die Anweisungen den einen oder die mehreren Prozessoren zum Durchführen von Operationen, die Empfangen erster Rohdaten von einem ersten Objekt der mehreren Objekte beinhalten, die dem einen oder den mehreren Gebäuden zugeordnet sind. Die mehreren Objekte repräsentiert jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung. Die ersten Rohdaten enthalten einen oder mehrere erste Datenpunkte, die vom ersten Objekt erzeugt werden. Das Verfahren beinhaltet Erzeugen einer ersten Eingabezeitreihe gemäß dem einen oder den mehreren Datenpunkten und Zugreifen auf eine Datenbank aus miteinander verbundenen intelligenten Entitäten. Die intelligenten Entitäten beinhalten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten, die gespeicherte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Das Verfahren beinhaltet Folgendes: Identifizieren einer ersten Objektentität, die das erste Objekt repräsentiert, aus einer ersten Kennung in der ersten Eingabezeitreihe, Identifizieren einer ersten Datenentität aus einem ersten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität angibt, und Speichern der ersten Eingabezeitreihe in der ersten Datenentität.Another implementation of the present disclosure is one or more non-volatile computer readable media that contain program instructions. When executed by one or more processors, the instructions cause the one or more processors to perform operations that include receiving first raw data from a first object of the plurality of objects associated with the one or more buildings. The multiple objects each represent an area, a person, a building subsystem and / or a device. The first raw data contain one or more first data points that are generated by the first object. The method includes generating a first input time series according to the one or more data points and accessing a database of interconnected intelligent entities. The intelligent entities include object entities each representing the multiple objects and data entities representing stored data, the intelligent entities being connected by relational objects that indicate relationships between the object entities and the data entities. The method includes: identifying a first object entity representing the first object from a first identifier in the first input time series, identifying a first data entity from a first relational object indicating a relationship between the first object entity and the first data entity, and storing the first input time series in the first data entity.

Bei manchen Ausführungsformen können die relationalen Objekte die Beziehungen zwischen den Objektentitäten und den Datenentitäten semantisch definieren.In some embodiments, the relational objects can semantically define the relationships between the object entities and the data entities.

Bei manchen Ausführungsbeispielen können eine oder mehrere der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern von Daten, die der Objektentität zugeordnet sind, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut beinhalten, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert.In some embodiments, one or more of the object entities may include a static attribute to identify the object entity, a dynamic attribute to store data associated with the object entity that changes over time, and a behavior attribute that is an expected response from the object entity defined in response to an input.

Bei manchen Ausführungsformen kann die erste Eingabezeitreihe dem dynamischen Attribut der ersten Objektentität entsprechen. In some embodiments, the first input time series may correspond to the dynamic attribute of the first object entity.

Bei manchen Ausführungsformen kann wenigstens einer der ersten Datenpunkte in der ersten Eingabezeitreihe in dem dynamischen Attribut der ersten Objektentität gespeichert sein.In some embodiments, at least one of the first data points in the first input time series may be stored in the dynamic attribute of the first object entity.

Bei manchen Ausführungsformen kann die Eingabezeitreihe die erste Kennung, einen Zeitstempel, der eine Erzeugungszeit des einen oder der mehreren ersten Datenpunkte angeben, und einen Wert des einen oder der mehreren ersten Datenpunkte enthalten.In some embodiments, the input time series may include the first identifier, a timestamp that indicates a generation time of the one or more first data points, and a value of the one or more first data points.

Bei manchen Ausführungsformen können die Anweisungen den einen oder die mehreren Prozessoren ferner zu Folgendem veranlassen: Identifizieren einer zweiten Datenentität. die ein zweites Objekt repräsentiert, aus einem zweiten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der zweiten Objektentität angibt, und Identifizieren einer zweiten Datenentität aus einem dritten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der zweiten Datenentität angibt. Die zweite Datenentität kann eine zweite Eingabezeitreihe speichern, die einem oder mehreren zweiten Datenpunkten entspricht, die dem zweiten Objekt zugeordnet sind.In some embodiments, the instructions may further cause the one or more processors to: identify a second data entity. representing a second object from a second relational object indicating a relationship between the first object entity and the second object entity, and identifying a second data entity from a third relational object indicating a relationship between the second object entity and the second data entity. The second data entity can store a second input time series that corresponds to one or more second data points associated with the second object.

Bei manchen Ausführungsformen können die Programmanweisungen den einen oder die mehreren Prozessoren ferner zu Folgendem veranlassen: Identifizieren eines oder mehrerer Verarbeitungsworkflows, die eine oder mehrere Verarbeitungsoperationen definieren, um abgeleitete Zeitreihen unter Verwendung der ersten und zweiten Eingabezeitreihen zu erzeugen, Ausführen des einen oder der mehreren Verarbeitungsarbeitsflüsse, um die abgeleitete Zeitreihe zu erzeugen, Identifizieren einer dritten Datenentität aus einem vierten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der dritten Datenentität angibt, und Speichern der abgeleiteten Eingabezeitreihe in der dritten Datenentität.In some embodiments, the program instructions may further cause the one or more processors to: identify one or more processing workflows that define one or more processing operations to generate derived time series using the first and second input time series, execute the one or more processing workflows to generate the derived time series, identifying a third data entity from a fourth relational object indicating a relationship between the second object entity and the third data entity, and storing the derived input time series in the third data entity.

Bei manchen Ausführungsformen kann das erste Objekt eine Zugangssteuervorrichtung sein und kann das zweite Objekt eine einer Person zugeordnete Zugangsschlüsselkarte sein.In some embodiments, the first object may be an access control device and the second object may be an access key card associated with a person.

Bei manchen Ausführungsformen kann die abgeleitete Zeitreihe einen oder mehrere virtuelle Datenpunkte enthalten, die gemäß der ersten und zweiten Eingabezeitreihe berechnet wurden.In some embodiments, the derived time series may include one or more virtual data points calculated according to the first and second input time series.

Bei manchen Ausführungsformen können der eine oder die mehreren virtuellen Datenpunkte ein oder mehrere Standortattribute der Person enthalten.In some embodiments, the one or more virtual data points may include one or more location attributes of the person.

Bei manchen Ausführungsformen kann das erste Objekt ein Temperatursensor sein und kann das zweite Objekt kann eine variable Luftvolumeneinheit (VAV: Variable Air Volume) sein.In some embodiments, the first object may be a temperature sensor and the second object may be a variable air volume unit (VAV).

Bei manchen Ausführungsformen kann die abgeleitete Zeitreihe ein abnormales Temperaturattribut enthalten, das einem Bereich entspricht, in dem sich der Temperatursensor befindet und für deren Versorgung die VAV konfiguriert ist.In some embodiments, the derived time series may include an abnormal temperature attribute that corresponds to an area in which the temperature sensor is located and for which the VAV is configured to be supplied.

Bei manchen Ausführungsformen kann das erste und/oder zweite Objekt ein Temperatursensor sein.In some embodiments, the first and / or second object can be a temperature sensor.

Bei manchen Ausführungsformen können die Anweisungen den einen oder die mehreren Prozessoren zum periodischen Empfangen von Temperaturmessungen von dem Temperatursensor und Aktualisieren wenigstens der abgeleiteten Zeitreihe in der dritten Datenentität jedes Mal, wenn eine neue Temperaturmessung von dem Temperatursensor empfangen wird, veranlassen.In some embodiments, the instructions may cause the one or more processors to periodically receive temperature measurements from the temperature sensor and update at least the derived time series in the third data entity each time a new temperature measurement is received from the temperature sensor.

Bei manchen Ausführungsformen kann die abgeleitete Zeitreihe eine durchschnittliche Umgebungstemperatur eines Bereichs enthalten, in dem sich der Temperatursensor befindet.In some embodiments, the derived time series may include an average ambient temperature of an area in which the temperature sensor is located.

Bei manchen Ausführungsformen können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Erzeugen einer Schattenentität veranlassen, um historische Werte der ersten Rohdaten zu speichern.In some embodiments, the instructions may further cause the one or more processors to create a shadow entity to store historical values of the first raw data.

Bei manchen Ausführungsformen können die Anweisungen ferner den einen oder die mehreren Prozessoren zum Berechnen eines virtuellen Datenpunktes aus den historischen Werten und Erzeugen einer vierten Datenentität zum Speichern des virtuellen Datenpunkts veranlassen.In some embodiments, the instructions may further cause the one or more processors to compute a virtual data point from the historical values and generate a fourth data entity to store the virtual data point.

Erzeugung eines verschachtelten Streams Creation of a nested stream

Eine Implementierung der vorliegenden Offenbarung ist ein Gebäudeverwaltungssystem (BMS). Das BMS beinhaltet Gebäudeausrüstung, einen Datenkollektor, einen Zeitreihendienst und eine Zeitreihenspeicherungsschnittstelle. Die Gebäudeausrüstung ist zum Bereitstellen von Abtastwerten von einem oder mehreren Datenpunkten im Gebäudeverwaltungssystem konfiguriert. Der Datenkollektor ist zum Sammeln der Abtastwerte von der Gebäudeausrüstung und Erzeugen einer oder mehrerer Eingabezeitreihen einschließlich mehrerer Abtastwerte konfiguriert. Der Zeitreihendienst ist zu Folgendem konfiguriert: Identifizieren eines ersten Zeitreihenverarbeitungsarbeitsflusses, der die Eingabezeitreihen als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der Eingabezeitreihen angewendet werden sollen, Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den ersten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine erste abgeleitete Zeitreihe zu erzeugen, die einen ersten Satz abgeleiteter Zeitreihenabtastwerte beinhaltet, Identifizieren eines zweiten Zeitreihenverarbeitungsarbeitsflusses, der die erste abgeleitete Zeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der ersten abgeleiteten Zeitreihe angewendet werden sollen, und Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den zweiten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine zweite abgeleitete Zeitreihe zu erzeugen, die einen zweiten Satz abgeleiteter Zeitreihenabtastwerte beinhaltet. Die Zeitreihenspeicherungsschnittstelle ist zum Speichern der Eingabezeitreihen und der ersten und zweiten abgeleitete Zeitreihe in einer Zeitreihendatenbank konfiguriert.An implementation of the present disclosure is a building management system (BMS). The BMS includes building equipment, a data collector, a time series service and a time series storage interface. The building equipment is configured to provide samples of one or more data points in the building management system. The data collector is configured to collect the samples from the building equipment and generate one or more input time series including multiple samples. The time series service is configured to: identify a first time series processing workflow that uses the input time series as an input and defines one or more processing operations to be applied to the samples of the input time series, performing the one or more processing operations defined by the first time series processing workflow to generate a first derived time series that includes a first set of derived time series samples, identifying a second time series processing workflow that uses the first derived time series as an input and defines one or more processing operations to be applied to the samples of the first derived time series , and perform the one or more processing operations defined by the second time series processing workflow by a second generate a time series that includes a second set of derived time series samples. The time series storage interface is configured to store the input time series and the first and second derived time series in a time series database.

Bei manchen Ausführungsformen beinhaltet die Gebäudeausrüstung Sensoren, HVAC-Ausrüstung, Beleuchtungsausrüstung, Zugangssteuerausrüstung und/oder Sicherheitsausrüstung.In some embodiments, building equipment includes sensors, HVAC equipment, lighting equipment, access control equipment, and / or security equipment.

Bei manchen Ausführungsformen beinhaltet das Erzeugen der ersten abgeleiteten Zeitreihe Transformieren eines oder mehrerer Abtastwerte der Eingabezeitreihen in einen oder mehrere Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Eingabezeitreihen als eine Eingabe auf den ersten Zeitreihenverarbeitungsarbeitsfluss und Zusammenstellen des ersten Satzes abgeleiteter Zeitreihenabtastwerte, um die erste abgeleitete Zeitreihe zu bilden.In some embodiments, generating the first derived time series includes transforming one or more samples of the input time series into one or more samples of the first set of derived time series samples by applying the one or more samples of the input time series as an input to the first time series processing workflow and assembling the first set of derived ones Time series samples to form the first derived time series.

Bei manchen Ausführungsformen beinhaltet das Erzeugen der zweiten abgeleiteten Zeitreihe Transformieren eines oder mehrerer Abtastwerte des ersten Satzes von abgeleiteten Zeitreihenabtastwerten in einen oder mehrere Abtastwerte des zweiten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte als eine Eingabe auf den zweiten Zeitreihenverarbeitungsarbeitsfluss und Zusammenstellen des zweiten Satzes abgeleiteter Zeitreihenabtastwerte, um die zweite abgeleitete Zeitreihe zu bilden.In some embodiments, generating the second derived time series includes transforming one or more samples of the first set of derived time series samples into one or more samples of the second set of derived time series samples by applying the one or more samples of the first set of derived time series samples as an input to the second Time series processing workflow and assembling the second set of derived time series samples to form the second derived time series.

Bei manchen Ausführungsformen ist der Zeitreihendienst zum Identifizieren einer oder mehrerer anderer Zeitreihen, die als Eingaben für den ersten Zeitreihenverarbeitungsarbeitsfluss verwendet werden sollen, und Erzeugen eines angereicherten Zeitreihenverarbeitungsarbeitsflusses, der den ersten Zeitreihenverarbeitungsarbeitsfluss, die Eingabezeitreihen und die eine oder die mehreren andere Zeitreihen umfasst, konfiguriert.In some embodiments, the time series service is configured to identify one or more other time series to be used as inputs to the first time series processing workflow and generate an enriched time series processing workflow that includes the first time series processing workflow, the input time series, and the one or more other time series.

Bei manchen Ausführungsformen enthält das BMS die Zeitreihendatenbank. Die Zeitreihendatenbank kann mehrere Zeitreihen speichern. Bei manchen Ausführungsformen beinhaltet der Zeitreihendienst einen Zeitreihenidentifikator, der zum Identifizieren der Eingabezeitreihen oder der ersten abgeleiteten Zeitreihe aus den mehreren Zeitreihen konfiguriert sein, die in der Zeitreihendatenbank gespeichert sind.In some embodiments, the BMS contains the time series database. The time series database can store several time series. In some embodiments, the time series service includes a time series identifier configured to identify the input time series or the first derived time series from the plurality of time series stored in the time series database.

Bei manchen Ausführungsformen enthält das BMS eine DAG-Datenbank (DAG: Directed Acyclic Graph - gerichteter azyklischer Graph), die mehrere DAGs speichert, wobei jeder der DAGs einen Zeitreihenverarbeitungsarbeitsfluss definiert. Bei manchen Ausführungsformen enthält der Zeitreihendienst einen DAG-Identifikator, der zum Bestimmen konfiguriert ist, ob irgendeiner der in der DAG-Datenbank gespeicherten DAGs die Eingabezeitreihen oder die erste abgeleitete Zeitreihe als eine Eingabe verwendet.In some embodiments, the BMS includes a Directed Acyclic Graph (DAG) database that stores multiple DAGs, each of the DAGs defining a time series processing workflow. In some embodiments, the time series service includes a DAG identifier configured to determine whether any of the DAGs stored in the DAG database uses the input time series or the first derived time series as an input.

Bei manchen Ausführungsformen ist der Zeitreihendienst beim Erzeugen einer abgeleiteten Zeitreihe zu Folgendem konfiguriert: (a) Bestimmen, ob die abgeleitete Zeitreihe als eine Eingabe für irgendeinen mehrerer gespeicherter Zeitreihenverarbeitungsarbeitsflüsse verwendet werden, und (b) als Reaktion auf eine Bestimmung, dass die abgeleitete Zeitreihen als eine Eingabe für wenigstens einen der gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet werden, Durchführen einer oder mehrerer Verarbeitungsoperationen, die durch die Zeitreihenverarbeitungsarbeitsflüsse definiert sind, die die abgeleitete Zeitreihe als eine Eingabe verwenden, um eine andere abgeleitete Zeitreihe zu erzeugen. In some embodiments, the time series service in generating a derived time series is configured to: (a) determine whether the derived time series is used as an input to any of a number of stored time series processing workflows, and (b) in response to a determination that the derived time series is as an input is used for at least one of the stored time series processing workflows, performing one or more processing operations defined by the time series processing workflows that use the derived time series as an input to generate another derived time series.

Bei manchen Ausführungsformen ist der Zeitreihendienst zum iterativen Wiederholen der Schritte (a) und (b), bis die in Schritt (b) erzeugte abgeleitete Zeitreihe nicht als eine Eingabe für irgendeinen der mehreren gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet wird, konfiguriert.In some embodiments, the time series service is configured to iteratively repeat steps (a) and (b) until the derived time series generated in step (b) is not used as an input to any of the plurality of stored time series processing workflows.

Bei manchen Ausführungsformen beinhaltet die Zeitreihendatenbank eine lokale Zeitreihendatenbank innerhalb des Gebäudeverwaltungssystems und/oder eine gehostete Zeitreihendatenbank an relativ zum Gebäudeverwaltungssystem einem entfernten Standort.In some embodiments, the time series database includes a local time series database within the building management system and / or a hosted time series database at a remote location relative to the building management system.

Bei manchen Ausführungsformen ist die Eingabezeitreihe eine Zeitreihe von Messungen, die von einem Sensor erhalten werden, und ist die erste abgeleitete Zeitreihe und/oder die zweite abgeleitete Zeitreihe eine Abnormales-Ereignis-Zeitreihe, die angibt, ob jede der Messungen normal oder abnormal ist.In some embodiments, the input time series is a time series of measurements obtained from a sensor, and the first derived time series and / or the second derived time series is an abnormal event time series indicating whether each of the measurements is normal or abnormal.

Bei manchen Ausführungsformen ist die Eingabezeitreihe eine Zeitreihe von Gebäudezugangsereignissen, die von einer physischen Zugangssteuervorrichtung erhalten werden, die einem Gebäudebereich zugeordnet ist, und ist die erste abgeleitete Zeitreihe und/oder die zweite abgeleitete Zeitreihe eine Abnormales-Ereignis-Zeitreihe, die angibt, ob jedes Zugangsereignisse normal oder abnormal ist.In some embodiments, the input time series is a time series of building access events obtained from a physical access control device associated with a building area, and the first derived time series and / or the second derived time series is an abnormal event time series indicating whether each Access events is normal or abnormal.

Eine andere Implementierung der vorliegenden Offenbarung ist ein Gebäudeverwaltungssystem (BMS) zum Verwalten von Zeitreihendaten, die durch Gebäudeausrüstung bereitgestellt werden. Das BMS enthält ein oder mehrere computerlesbare Speicherungsmedien mit darauf gespeicherten Anweisungen. Wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, veranlassen die Anweisungen den einen oder die mehreren Prozessoren zu Folgendem: Sammeln von Abtastwerten der Zeitreihendaten von der Gebäudeausrüstung und Erzeugen einer oder mehrerer Eingabezeitreihen, die mehrere der Abtastwerte beinhalten, Identifizieren eines ersten Zeitreihenverarbeitungsarbeitsflusses, der die Eingabezeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der Eingabezeitreihe angewendet werden sollen, Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den ersten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine erste abgeleitete Zeitreihe zu erzeugen, die einen ersten Satz abgeleiteter Zeitreihenabtastwerte beinhaltet, Identifizieren eines zweiten Zeitreihenverarbeitungsarbeitsflusses, der die erste abgeleitete Zeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der ersten abgeleiteten Zeitreihe angewendet werden sollen, Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den zweiten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine zweite abgeleitete Zeitreihe zu erzeugen, die einen zweiten Satz abgeleiteter Zeitreihenabtastwerte beinhaltet, und Speichern der Eingabezeitreihen und der ersten und zweiten abgeleitete Zeitreihe in einer Zeitreihendatenbank.Another implementation of the present disclosure is a building management system (BMS) for managing time series data provided by building equipment. The BMS contains one or more computer readable storage media with instructions stored thereon. When executed by one or more processors, the instructions cause the one or more processors to do the following: collect samples of the time series data from the building equipment and generate one or more input time series including multiple of the samples, identify a first time series processing workflow that does the Using input time series as an input and defining one or more processing operations to be applied to the samples of the input time series, performing the one or more processing operations defined by the first time series processing workflow to produce a first derived time series that is a first set derived time series samples includes identifying a second time series processing workflow that uses the first derived time series as an input and defines one or more processing operations that are to be applied to the samples of the first derived time series, performing the one or more processing operations defined by the second time series processing workflow to produce a second derived time series that includes a second set of derived time series samples, and storing the input time series and the first and second derived time series in a time series database.

Bei manchen Ausführungsformen beinhaltet die Gebäudeausrüstung Sensoren, HVAC-Ausrüstung, Beleuchtungsausrüstung, Zugangssteuerausrüstung und/oder Sicherheitsausrüstung.In some embodiments, building equipment includes sensors, HVAC equipment, lighting equipment, access control equipment, and / or security equipment.

Bei manchen Ausführungsformen beinhaltet das Erzeugen der ersten abgeleiteten Zeitreihe Transformieren eines oder mehrerer Abtastwerte der Eingabezeitreihen in einen oder mehrere Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Eingabezeitreihen als eine Eingabe auf den ersten Zeitreihenverarbeitungsarbeitsfluss und Zusammenstellen des ersten Satzes abgeleiteter Zeitreihenabtastwerte, um die erste abgeleitete Zeitreihe zu bilden.In some embodiments, generating the first derived time series includes transforming one or more samples of the input time series into one or more samples of the first set of derived time series samples by applying the one or more samples of the input time series as an input to the first time series processing workflow and assembling the first set of derived ones Time series samples to form the first derived time series.

Bei manchen Ausführungsformen beinhaltet das Erzeugen der zweiten abgeleiteten Zeitreihe Transformieren eines oder mehrerer Abtastwerte des ersten Satzes von abgeleiteten Zeitreihenabtastwerten in einen oder mehrere Abtastwerte des zweiten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte als eine Eingabe auf den zweiten Zeitreihenverarbeitungsarbeitsfluss und Zusammenstellen des zweiten Satzes abgeleiteter Zeitreihenabtastwerte, um die zweite abgeleitete Zeitreihe zu bilden.In some embodiments, generating the second derived time series includes transforming one or more samples of the first set of derived time series samples into one or more samples of the second set of derived time series samples by applying the one or more samples of the first set of derived time series samples as an input to the second Time series processing workflow and assembling the second set of derived time series samples to form the second derived time series.

Bei manchen Ausführungsformen veranlassen die Anweisungen den einen oder die mehreren Prozessoren zum Identifizieren einer oder mehrerer anderer Zeitreihen, die als Eingaben für den ersten Zeitreihenverarbeitungsarbeitsfluss verwendet werden sollen, und Erzeugen eines angereicherten Zeitreihenverarbeitungsarbeitsflusses, der den ersten Zeitreihenverarbeitungsarbeitsfluss, die Eingabezeitreihen und die eine oder die mehreren andere Zeitreihen umfasst.In some embodiments, the instructions cause one or the plurality of processors for identifying one or more other time series to be used as inputs to the first time series processing workflow and generating an enriched time series processing workflow that includes the first time series processing workflow, the input time series, and the one or more other time series.

Bei manchen Ausführungsformen enthält das BMS die Zeitreihendatenbank. Die Zeitreihendatenbank kann mehrere Zeitreihen speichern. Bei manchen Ausführungsformen veranlassen die Anweisungen den einen oder die mehreren Prozessoren zum Identifizieren der Eingabezeitreihen oder der ersten abgeleiteten Zeitreihe aus den mehreren Zeitreihen, die in der Zeitreihendatenbank gespeichert sind.In some embodiments, the BMS contains the time series database. The time series database can store several time series. In some embodiments, the instructions cause the one or more processors to identify the input time series or the first derived time series from the plurality of time series stored in the time series database.

Bei manchen Ausführungsformen enthält das BMS eine DAG-Datenbank (DAG: Directed Acyclic Graph - gerichteter azyklischer Graph), die mehrere DAGs speichert, wobei jeder der DAGs einen Zeitreihenverarbeitungsarbeitsfluss definiert. Bei manchen Ausführungsformen veranlassen die Anweisungen den einen oder die mehreren Prozessoren zum Bestimmen, ob irgendeiner der in der DAG-Datenbank gespeicherten DAGs die Eingabezeitreihen oder die erste abgeleitete Zeitreihe als eine Eingabe verwendet.In some embodiments, the BMS includes a Directed Acyclic Graph (DAG) database that stores multiple DAGs, each of the DAGs defining a time series processing workflow. In some embodiments, the instructions cause the one or more processors to determine whether any of the DAGs stored in the DAG database use the input time series or the first derived time series as an input.

Bei manchen Ausführungsformen veranlassen die Anweisungen den einen oder die mehreren Prozessoren beim Erzeugen einer abgeleiteten Zeitreihe zu Folgendem: (a) Bestimmen, ob die abgeleitete Zeitreihe als eine Eingabe für irgendeinen mehrerer gespeicherter Zeitreihenverarbeitungsarbeitsflüsse verwendet werden, und (b) als Reaktion auf eine Bestimmung, dass die abgeleitete Zeitreihen als eine Eingabe für wenigstens einen der gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet werden, Durchführen einer oder mehrerer Verarbeitungsoperationen, die durch die Zeitreihenverarbeitungsarbeitsflüsse definiert sind, die die abgeleitete Zeitreihe als eine Eingabe verwenden, um eine andere abgeleitete Zeitreihe zu erzeugen.In some embodiments, the instructions cause the one or more processors when generating a derived time series to: (a) determine whether the derived time series is used as an input to any of a number of stored time series processing workflows, and (b) in response to a determination, that the derived time series be used as an input to at least one of the stored time series processing workflows, performing one or more processing operations defined by the time series processing workflows that use the derived time series as an input to generate another derived time series.

Bei manchen Ausführungsformen veranlassen die Anweisungen den einen oder die mehreren Prozessoren zum iterativen Wiederholen der Schritte (a) und (b), bis die in Schritt (b) erzeugte abgeleitete Zeitreihe nicht als eine Eingabe für irgendeinen der mehreren gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet wird.In some embodiments, the instructions cause the one or more processors to iteratively repeat steps (a) and (b) until the derived time series generated in step (b) is not used as an input to any of the plurality of stored time series processing workflows.

Bei manchen Ausführungsformen beinhaltet die Zeitreihendatenbank eine lokale Zeitreihendatenbank innerhalb des Gebäudeverwaltungssystems und/oder eine gehostete Zeitreihendatenbank an relativ zum Gebäudeverwaltungssystem einem entfernten Standort.In some embodiments, the time series database includes a local time series database within the building management system and / or a hosted time series database at a remote location relative to the building management system.

Bei manchen Ausführungsformen ist die Eingabezeitreihe eine Zeitreihe von Messungen, die von einem Sensor erhalten werden, und ist die erste abgeleitete Zeitreihe und/oder die zweite abgeleitete Zeitreihe eine Abnormales-Ereignis-Zeitreihe, die angibt, ob jede der Messungen normal oder abnormal ist.In some embodiments, the input time series is a time series of measurements obtained from a sensor, and the first derived time series and / or the second derived time series is an abnormal event time series indicating whether each of the measurements is normal or abnormal.

Bei manchen Ausführungsformen ist die Eingabezeitreihe eine Zeitreihe von Gebäudezugangsereignissen, die von einer physischen Zugangssteuervorrichtung erhalten werden, die einem Gebäudebereich zugeordnet ist, und ist die erste abgeleitete Zeitreihe und/oder die zweite abgeleitete Zeitreihe eine Abnormales-Ereignis-Zeitreihe, die angibt, ob jedes Zugangsereignisse normal oder abnormal ist.In some embodiments, the input time series is a time series of building access events obtained from a physical access control device associated with a building area, and the first derived time series and / or the second derived time series is an abnormal event time series indicating whether each Access events is normal or abnormal.

Eine andere Implementierung der vorliegenden Offenbarung ist ein Verfahren zum Verwalten von Zeitreihendaten, die durch Gebäudeausrüstung bereitgestellt werden. Das Verfahren beinhaltet Folgendes: Sammeln von Abtastwerten der Zeitreihendaten von der Gebäudeausrüstung und Erzeugen einer oder mehrerer Eingabezeitreihen, die mehrere der Abtastwerte umfassen, Identifizieren eines ersten Zeitreihenverarbeitungsarbeitsflusses, der die Eingabezeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der Eingabezeitreihe angewendet werden sollen, Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den ersten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine erste abgeleitete Zeitreihe zu erzeugen, die einen ersten Satz abgeleiteter Zeitreihenabtastwerte umfasst, Identifizieren eines zweiten Zeitreihenverarbeitungsarbeitsflusses, der die erste abgeleitete Zeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der ersten abgeleiteten Zeitreihe angewendet werden sollen, Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den zweiten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine zweite abgeleitete Zeitreihe zu erzeugen, die einen zweiten Satz abgeleiteter Zeitreihenabtastwerte umfasst, und Speichern der Eingabezeitreihen und der ersten und zweiten abgeleitete Zeitreihe in einer Zeitreihendatenbank.Another implementation of the present disclosure is a method for managing time series data provided by building equipment. The method includes: collecting samples of the time series data from the building equipment and generating one or more input time series comprising multiple of the samples, identifying a first time series processing workflow that uses the input time series as an input and defining one or more processing operations that are based on the samples of the Input time series to be applied, performing the one or more processing operations defined by the first time series processing workflow to generate a first derived time series comprising a first set of derived time series samples, identifying a second time series processing workflow that takes the first derived time series as an input used and defining one or more processing operations to be applied to the samples of the first derived time series, performing the one or the plurality of processing operations defined by the second time series processing workflow to generate a second derived time series comprising a second set of derived time series samples and storing the input time series and the first and second derived time series in a time series database.

Bei manchen Ausführungsformen beinhaltet die Gebäudeausrüstung Sensoren, HVAC-Ausrüstung, Beleuchtungsausrüstung, Zugangssteuerausrüstung und/oder Sicherheitsausrüstung.In some embodiments, building equipment includes sensors, HVAC equipment, lighting equipment, access control equipment, and / or security equipment.

Bei manchen Ausführungsformen beinhaltet das Erzeugen der ersten abgeleiteten Zeitreihe Transformieren eines oder mehrerer Abtastwerte der Eingabezeitreihen in einen oder mehrere Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Eingabezeitreihen als eine Eingabe auf den ersten Zeitreihenverarbeitungsarbeitsfluss und Zusammenstellen des ersten Satzes abgeleiteter Zeitreihenabtastwerte, um die erste abgeleitete Zeitreihe zu bilden. In some embodiments, generating the first derived time series includes transforming one or more samples of the input time series into one or more samples of the first set of derived time series samples by applying the one or more samples of the input time series as an input to the first time series processing workflow and assembling the first set of derived ones Time series samples to form the first derived time series.

Bei manchen Ausführungsformen beinhaltet das Erzeugen der zweiten abgeleiteten Zeitreihe Transformieren eines oder mehrerer Abtastwerte des ersten Satzes von abgeleiteten Zeitreihenabtastwerten in einen oder mehrere Abtastwerte des zweiten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte als eine Eingabe auf den zweiten Zeitreihenverarbeitungsarbeitsfluss und Zusammenstellen des zweiten Satzes abgeleiteter Zeitreihenabtastwerte, um die zweite abgeleitete Zeitreihe zu bilden.In some embodiments, generating the second derived time series includes transforming one or more samples of the first set of derived time series samples into one or more samples of the second set of derived time series samples by applying the one or more samples of the first set of derived time series samples as an input to the second Time series processing workflow and assembling the second set of derived time series samples to form the second derived time series.

Bei manchen Ausführungsformen beinhaltet das Verfahren Identifizieren einer oder mehrerer anderer Zeitreihen, die als Eingaben für den ersten Zeitreihenverarbeitungsarbeitsfluss verwendet werden sollen, und Erzeugen eines angereicherten Zeitreihenverarbeitungsarbeitsflusses, der den ersten Zeitreihenverarbeitungsarbeitsfluss, die Eingabezeitreihen und die eine oder die mehreren andere Zeitreihen umfasst.In some embodiments, the method includes identifying one or more other time series to be used as inputs to the first time series processing workflow and generating an enriched time series processing workflow that includes the first time series processing workflow, the input time series, and the one or more other time series.

Bei manchen Ausführungsformen speichert die Zeitreihendatenbank mehrere Zeitreihen. Das Verfahren kann Identifizieren der Eingabezeitreihen oder der ersten abgeleiteten Zeitreihe aus den mehreren Zeitreihen beinhalten, die in der Zeitreihendatenbank gespeichert sind.In some embodiments, the time series database stores multiple time series. The method may include identifying the input time series or the first derived time series from the plurality of time series stored in the time series database.

Bei manchen Ausführungsformen enthält das Verfahren Speichern mehrerer gerichteter azyklischer Graphen in einer DAG-Datenbank, wobei jeder der DAGs einen Zeitreihenverarbeitungsarbeitsfluss definiert. Das Verfahren kann Bestimmen beinhalten, ob irgendeiner der in der DAG-Datenbank gespeicherten DAGs die Eingabezeitreihen oder die erste abgeleitete Zeitreihe als eine Eingabe verwendet.In some embodiments, the method includes storing multiple directed acyclic graphs in a DAG database, each of the DAGs defining a time series processing workflow. The method may include determining whether any of the DAGs stored in the DAG database uses the input time series or the first derived time series as an input.

Bei manchen Ausführungsformen beinhaltet das Verfahren beim Erzeugen einer abgeleiteten Zeitreihe Folgendes: (a) Bestimmen, ob die abgeleitete Zeitreihe als eine Eingabe für irgendeinen mehrerer gespeicherter Zeitreihenverarbeitungsarbeitsflüsse verwendet werden, und (b) als Reaktion auf eine Bestimmung, dass die abgeleitete Zeitreihen als eine Eingabe für wenigstens einen der gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet werden, Durchführen einer oder mehrerer Verarbeitungsoperationen, die durch die Zeitreihenverarbeitungsarbeitsflüsse definiert sind, die die abgeleitete Zeitreihe als eine Eingabe verwenden, um eine andere abgeleitete Zeitreihe zu erzeugen.In some embodiments, the method of generating a derived time series includes: (a) determining whether the derived time series is used as an input for any of a number of stored time series processing workflows, and (b) in response to a determination that the derived time series is used as an input for at least one of the stored time series processing workflows, performing one or more processing operations defined by the time series processing workflows that use the derived time series as an input to generate another derived time series.

Bei manchen Ausführungsformen beinhaltet das Verfahren iteratives Wiederholen der Schritte (a) und (b), bis die in Schritt (b) erzeugte abgeleitete Zeitreihe nicht als eine Eingabe für irgendeinen der mehreren gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet wird.In some embodiments, the method includes iteratively repeating steps (a) and (b) until the derived time series generated in step (b) is not used as an input to any of the plurality of stored time series processing workflows.

Bei manchen Ausführungsformen umfasst die Zeitreihendatenbank eine lokale Zeitreihendatenbank innerhalb des Gebäudeverwaltungssystems und/oder eine gehostete Zeitreihendatenbank an relativ zum Gebäudeverwaltungssystem einem entfernten Standort.In some embodiments, the time series database includes a local time series database within the building management system and / or a hosted time series database at a remote location relative to the building management system.

Bei manchen Ausführungsformen ist die Eingabezeitreihe eine Zeitreihe von Messungen, die von einem Sensor erhalten werden, und ist die erste abgeleitete Zeitreihe und/oder die zweite abgeleitete Zeitreihe eine Abnormales-Ereignis-Zeitreihe, die angibt, ob jede der Messungen normal oder abnormal ist.In some embodiments, the input time series is a time series of measurements obtained from a sensor, and the first derived time series and / or the second derived time series is an abnormal event time series indicating whether each of the measurements is normal or abnormal.

Bei manchen Ausführungsformen ist die Eingabezeitreihe eine Zeitreihe von Gebäudezugriffsereignissen, die von einer physischen Zugangssteuervorrichtung erhalten werden, die einem Gebäudebereich zugeordnet ist, und ist die erste abgeleitete Zeitreihe und/oder die zweite abgeleitete Zeitreihe eine Abnormales-Ereignis-Zeitreihe, die angibt, ob jedes Zugriffsereignisse normal oder abnormal ist.In some embodiments, the input time series is a time series of building access events obtained from a physical access control device associated with a building area, and the first derived time series and / or the second derived time series is an abnormal event time series indicating whether each Access event is normal or abnormal.

Cloud-basierte RückkopplungssteuerungCloud-based feedback control

Eine Implementierung der vorliegenden Offenbarung ist eine Gebäudeverwaltungsplattform, die Ausrüstung eines Gebäudeverwaltungssystems überwacht und steuert. Die Gebäudeverwaltungsplattform beinhaltet einen Datenkollektor und einen Zeitreihendienst. Der Datenkollektor ist zum Sammeln von Rückkopplungsabtastwerten, die durch einen oder mehrere Sensoren eines Gebäudeverwaltungssystems bereitgestellt werden, und Erzeugen einer oder mehrerer Rückkopplungszeitreihen einschließlich mehrerer der Rückkopplungsabtastwerte konfiguriert. Der Zeitreihendienst ist zu Folgendem konfiguriert: Identifizieren eines ersten Rückkopplungssteuerarbeitsflusses, der die Rückkopplungszeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Rückkopplungsabtastwerte der Rückkopplungszeitreihe angewendet werden sollen, Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, um eine Steuersignalzeitreihe zu erzeugen, die einen Satz Steuersignalabtastwerten beinhaltet, und Liefern eines Steuersignals, das die Steuersignalabtastwerte und/oder die Steuersignalzeitreihen beinhaltet, als eine Ausgabe an eine steuerbare Gebäudeausrüstung des Gebäudeverwaltungssystems, die unter Verwendung des Steuersignals als eine Eingabe arbeitet.An implementation of the present disclosure is a building management platform that monitors and controls equipment of a building management system. The building management platform includes a data collector and a time series service. The data collector is configured to collect feedback samples provided by one or more sensors of a building management system and to generate one or more feedback time series including several of the feedback samples. The time series service is configured to: identify a first feedback control workflow that uses the feedback time series as an input and defines one or more processing operations to be applied to the feedback time series feedback samples, performing the one or more processing operations defined by the feedback control workflow to generate a control signal time series that includes a set of control signal samples and provide a control signal that corresponds to the Control signal samples and / or the control signal time series includes, as an output to controllable building equipment of the building management system that operates using the control signal as an input.

Bei manchen Ausführungsformen beinhalten die Sensoren einen Temperatursensor, einen Feuchtigkeitssensor, einen Beleuchtungssensor, einen Luftqualitätssensor und/oder einen Anwesenheitssensor, die zum Erfassen eines Umgebungszustands innerhalb eines Gebäudebereichs konfiguriert sind. Bei manchen Ausführungsformen beinhalten die Sensoren einen Temperatursensor, einen Durchflussratensensor, einen Enthalpiesensor und/oder einen Spannungssensor, die zum Erfassen eines Betriebszustands oder eines Zustands einer Zentralanlagenausrüstung innerhalb einer Zentralanlage konfiguriert sind. Bei manchen Ausführungsformen beinhalten die Datenquellen Internet-der-Dinge-(IoT)-Vorrichtungen. Bei manchen Ausführungsformen beinhaltet die steuerbare Gebäudeausrüstung eine HVAC-Ausrüstung, Sicherheitsausrüstung, Beleuchtungsausrüstung oder Zugangssteuerausrüstung, die innerhalb eines Gebäudes installiert ist.In some embodiments, the sensors include a temperature sensor, a humidity sensor, an illumination sensor, an air quality sensor, and / or a presence sensor configured to detect an environmental condition within a building area. In some embodiments, the sensors include a temperature sensor, a flow rate sensor, an enthalpy sensor, and / or a voltage sensor configured to detect an operating condition or condition of central plant equipment within a central plant. In some embodiments, the data sources include Internet of Things (IoT) devices. In some embodiments, the controllable building equipment includes HVAC equipment, security equipment, lighting equipment, or access control equipment installed within a building.

Bei manchen Ausführungsformen beinhaltet das Erzeugen der Steuersignalzeitreihe Transformieren eines oder mehrerer Abtastwerte der Rückkopplungszeitreihen in einen oder mehrere Abtastwerte der Steuersignalabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Rückkopplungszeitreihe als eine Eingabe auf den Rückkopplungssteuerarbeitsfluss und Zusammenstellen der Steuerabtastwerte, um die Steuersignalzeitreihe zu bilden.In some embodiments, generating the control signal time series includes transforming one or more samples of the feedback time series into one or more samples of the control signal samples by applying the one or more samples of the feedback time series as an input to the feedback control workflow and assembling the control samples to form the control signal time series.

Bei manchen Ausführungsformen ist der Zeitreihendienst zum Identifizieren einer oder mehrerer anderer Zeitreihen, die als Eingaben für den Rückkopplungssteuerarbeitsfluss erforderlich sind, und Erzeugen eines angereicherten Rückkopplungssteuerarbeitsflusses, der den Rückkopplungssteuerarbeitsfluss, die Rückkopplungszeitreihen und die eine oder die mehreren andere Zeitreihen umfasst, konfiguriert. Bei manchen Ausführungsformen beinhalten die eine oder mehreren anderen Zeitreihen mehrere Sollwertzeitreihen, die mehrere Sollwertabtastwerte beinhalten, wobei jeder der Sollwertabtastwerte einen Sollwert definiert, der einem der Rückkopplungsabtastwerte entspricht.In some embodiments, the time series service is configured to identify one or more other time series required as inputs to the feedback control workflow and generate an enriched feedback control workflow that includes the feedback control workflow, the feedback time series, and the one or more other time series. In some embodiments, the one or more other time series include multiple setpoint time series that include multiple setpoint samples, each of the setpoint samples defining a setpoint that corresponds to one of the feedback samples.

Bei manchen Ausführungsformen beinhaltet die Gebäudeverwaltungsplattform eine Zeitreihendatenbank, die mehrere Zeitreihen speichert. Der Zeitreihendienst kann einen Zeitreihenidentifikator beinhalten, der zum Identifizieren der Rückkopplungszeitreihen aus den mehreren Zeitreihen konfiguriert ist, die in der Zeitreihendatenbank gespeichert sind.In some embodiments, the building management platform includes a time series database that stores multiple time series. The time series service may include a time series identifier configured to identify the feedback time series from the plurality of time series stored in the time series database.

Bei manchen Ausführungsformen beinhaltet die Gebäudeverwaltungsplattform eine DAG(gerichteter azyklischer Graph)-Datenbank, in der mehrere Rückkopplung-DAGs gespeichert sind. Jede der DAGs kann einen Rückkopplungssteuerarbeitsfluss definieren. Bei manchen Ausführungsformen enthält der Zeitreihendienst einen DAG-Identifikator, der zum Bestimmen konfiguriert ist, ob irgendeiner der in der DAG-Datenbank gespeicherten Rückkopplungssteuer-DAGs die Rückkopplungszeitreihe als eine Eingabe verwendet.In some embodiments, the building management platform includes a directional acyclic graph (DAG) database in which multiple feedback DAGs are stored. Each of the DAGs can define a feedback control workflow. In some embodiments, the time series service includes a DAG identifier configured to determine whether any of the feedback control DAGs stored in the DAG database use the feedback time series as an input.

Bei manchen Ausführungsformen ist der Zeitreihendienst über mehrere Systeme oder Vorrichtungen verteilt.In some embodiments, time series service is distributed across multiple systems or devices.

Bei manchen Ausführungsformen beinhaltet der Rückkopplungssteuerarbeitsfluss einen Zustandsbasierte-Steuerung-Arbeitsfluss, einen ESC-Arbeitsfluss (ESC: Extremum Seeking Control - nach Extremen suchende Steuerung), einen Proportional-Integral(PI)-Steuerung-Arbeitsfluss, einen Proportional-Integral-Ableitend(PID)-Steuerung-Arbeitsfluss und/oder ein MPC-Arbeitsfluss (MCP: Model Predictive Control - Modellvorhersagesteuerung), die den Zeitreihendienst zum Transformieren der Rückkopplungszeitreihe unter Verwendung einer Rückkopplungssteuertechnik in die Steuersignalzeitreihen veranlassen.In some embodiments, the feedback control workflow includes a state-based control workflow, an extremum seeking control (ESC) workflow, a proportional-integral (PI) control workflow, a proportional-integral-derivative (PID ) Control workflow and / or an MPC (Model Predictive Control) workflow that causes the time series service to transform the feedback time series into the control signal time series using a feedback control technique.

Bei manchen Ausführungsformen beinhaltet der Rückkopplungssteuerungsarbeitsfluss einen Proportional-Integral-Ableitend(PID)-Steuerungsarbeitsfluss, der den Zeitreihendienst zum Erzeugen einer Fehlerzeitreihen veranlasst, die mehrere Fehlerabtastwerte enthält. Jeder der Fehlerabtastwerte kann einen Unterschied zwischen einem oder den Rückkopplungsabtastwerten und einem entsprechenden Sollwert anzeigen. Der PID-Steuerung-Arbeitsfluss kann dem Zeitreihendienst zum Erzeugen der Steuersignalzeitreihen durch Anwenden eines Satzes von PID-Steueroperationen auf die Fehlerzeitreihe veranlassen.In some embodiments, the feedback control workflow includes a proportional integral derivative (PID) control workflow that causes the time series service to generate an error time series that includes multiple error samples. Each of the error samples can indicate a difference between one or more of the feedback samples and a corresponding target value. The PID control workflow can cause the time series service to generate the control signal time series by applying a set of PID control operations to the error time series.

Bei manchen Ausführungsformen beinhaltet das Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihen das Erzeugen einer integrierten Fehlerzeitreihe basierend auf mehreren Fehlerabtastwerten und Erzeugen einer Ableitungsfehlerzeitreihe basierend auf einer Änderung eines Wertes zwischen aufeinanderfolgenden Abtastwerten der Fehlerzeitreihe. In some embodiments, applying the set of PID control operations to the error time series includes generating an integrated error time series based on multiple error samples and generating a derivative error time series based on a change in value between successive samples of the error time series.

Bei manchen Ausführungsformen beinhaltet das Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihe Folgendes: Berechnen einer Proportionalverstärkungskomponente durch Multiplizieren der Fehlerzeitreihe mit einem Proportionalverstärkungsparameter, Berechnen einer Integralverstärkungskomponente durch Multiplizieren der integrierten Fehlerzeitreihe mit einem Integralverstärkungsparameter, Berechnen einer Ableitungsverstärkungskomponente durch Multiplizieren der Ableitungsfehlerzeitreihe mit einem Ableitungsverstärkungsparameter, und Kombinieren der Proportionalverstärkungskomponente, der Integralverstärkungskomponente und der Ableitungsverstärkungskomponente, um die Steuersignalzeitreihen zu erzeugen.In some embodiments, applying the set of PID control operations to the error time series includes: calculating a proportional gain component by multiplying the error time series by a proportional gain parameter, calculating an integral gain component by multiplying the integrated error time series by an integral gain parameter, calculating a derivative gain parameter by a derivative gain parameter by multiplying the derivative time series , and combining the proportional gain component, the integral gain component and the derivative gain component to generate the control signal time series.

Eine andere Implementierung der vorliegenden Offenbarung ist eine Gebäudeverwaltungsplattform zum Überwachen und Steuern von Ausrüstung eines Gebäudeverwaltungssystems. Die Gebäudeverwaltungsplattform beinhaltet ein oder mehrere computerlesbare Speicherungsmedien mit darauf gespeicherten Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Sammeln von Rückkopplungsabtastwerten, die von einem oder mehreren Sensoren des Gebäudeverwaltungssystems bereitgestellt werden, und Erzeugen einer oder mehrerer Rückkopplungszeitreihen, die mehrere der Rückkopplungsabtastwerte beinhalten, Identifizieren eines ersten Rückkopplungssteuerarbeitsflusses, der die Rückkopplungszeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Rückkopplungsabtastwerte der Rückkopplungszeitreihe angewendet werden sollen, Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, um eine Steuersignalzeitreihe zu erzeugen, die einen Satz Steuersignalabtastwerten beinhaltet, und Liefern eines Steuersignals, das die Steuersignalabtastwerte und/oder die Steuersignalzeitreihen beinhaltet, als eine Ausgabe an eine steuerbare Gebäudeausrüstung des Gebäudeverwaltungssystems, die unter Verwendung des Steuersignals als eine Eingabe arbeitet.Another implementation of the present disclosure is a building management platform for monitoring and controlling equipment of a building management system. The building management platform includes one or more computer-readable storage media with instructions stored thereon that, when executed by one or more processors, cause the one or more processors to: collect feedback samples provided by one or more sensors of the building management system and generate one or more a plurality of feedback time series that include more of the feedback samples, identifying a first feedback control workflow that uses the feedback time series as an input and defines one or more processing operations to be applied to the feedback samples of the feedback time series, performing the one or more processing operations performed by the feedback control work to generate a control signal time series that includes a set of control signal samples, i nd providing a control signal, including the control signal samples and / or the control signal time series, as an output to controllable building equipment of the building management system that operates using the control signal as an input.

Bei manchen Ausführungsformen beinhalten die Sensoren einen Temperatursensor, einen Feuchtigkeitssensor, einen Beleuchtungssensor, einen Luftqualitätssensor und/oder einen Anwesenheitssensor, die zum Erfassen eines Umgebungszustands innerhalb eines Gebäudebereichs konfiguriert sind. Bei manchen Ausführungsformen beinhalten die Sensoren einen Temperatursensor, einen Durchflussratensensor, einen Enthalpiesensor und/oder einen Spannungssensor, die zum Erfassen eines Betriebszustands oder eines Zustands einer Zentralanlagenausrüstung innerhalb einer Zentralanlage konfiguriert sind. Bei manchen Ausführungsformen beinhalten die Datenquellen Internet-der-Dinge-(IoT)-Vorrichtungen. Bei manchen Ausführungsformen beinhaltet die steuerbare Gebäudeausrüstung eine HVAC-Ausrüstung, Sicherheitsausrüstung, Beleuchtungsausrüstung oder Zugangssteuerausrüstung, die innerhalb eines Gebäudes installiert ist.In some embodiments, the sensors include a temperature sensor, a humidity sensor, an illumination sensor, an air quality sensor, and / or a presence sensor configured to detect an environmental condition within a building area. In some embodiments, the sensors include a temperature sensor, a flow rate sensor, an enthalpy sensor, and / or a voltage sensor configured to detect an operating condition or condition of central plant equipment within a central plant. In some embodiments, the data sources include Internet of Things (IoT) devices. In some embodiments, the controllable building equipment includes HVAC equipment, security equipment, lighting equipment, or access control equipment installed within a building.

Bei manchen Ausführungsformen beinhaltet das Erzeugen der Steuersignalzeitreihe Transformieren eines oder mehrerer Abtastwerte der Rückkopplungszeitreihen in einen oder mehrere Abtastwerte der Steuersignalabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Rückkopplungszeitreihe als eine Eingabe auf den Rückkopplungssteuerarbeitsfluss und Zusammenstellen der Steuerabtastwerte, um die Steuersignalzeitreihe zu bilden.In some embodiments, generating the control signal time series includes transforming one or more samples of the feedback time series into one or more samples of the control signal samples by applying the one or more samples of the feedback time series as an input to the feedback control workflow and assembling the control samples to form the control signal time series.

Bei manchen Ausführungsformen veranlassen die Anweisungen den einen oder die mehreren Prozessoren zum Identifizieren einer oder mehrerer anderer Zeitreihen, die als Eingaben für den Rückkopplungssteuerarbeitsfluss erforderlich sind, und Erzeugen eines angereicherten Rückkopplungssteuerarbeitsflusses, der den Rückkopplungssteuerarbeitsfluss, die Rückkopplungszeitreihen und die eine oder die mehreren andere Zeitreihen umfasst. Bei manchen Ausführungsformen beinhalten die eine oder mehreren anderen Zeitreihen mehrere Sollwertzeitreihen, die mehrere Sollwertabtastwerte beinhalten, wobei jeder der Sollwertabtastwerte einen Sollwert definiert, der einem der Rückkopplungsabtastwerte entspricht.In some embodiments, the instructions cause the one or more processors to identify one or more other time series required as inputs to the feedback control workflow and generate an enriched feedback control workflow that includes the feedback control workflow, the feedback time series, and the one or more other time series . In some embodiments, the one or more other time series include multiple setpoint time series that include multiple setpoint samples, each of the setpoint samples defining a setpoint that corresponds to one of the feedback samples.

Bei manchen Ausführungsformen beinhaltet die Gebäudeverwaltungsplattform eine Zeitreihendatenbank, die mehrere Zeitreihen speichert. Bei manchen Ausführungsformen veranlassen die Anweisungen den einen oder die mehreren Prozessoren zum Identifizieren der Rückkopplungszeitreihe aus den mehreren Zeitreihen, die in der Zeitreihendatenbank gespeichert sind.In some embodiments, the building management platform includes a time series database that stores multiple time series. In some embodiments, the instructions cause the one or more processors to identify the feedback time series from the plurality of time series stored in the time series database.

Bei manchen Ausführungsformen beinhaltet die Gebäudeverwaltungsplattform eine DAG-Datenbank (DAG - gerichteter azyklischer Graph), die mehrere DAGs speichert, wobei jeder der DAGs einen Rückkopplungssteuerarbeitsfluss definiert. Bei manchen Ausführungsformen veranlassen die Anweisungen den einen oder die mehreren Prozessoren zum Bestimmen, ob irgendeiner der in der DAG-Datenbank gespeicherten Rückkopplungssteuer-DAGs die Rückkopplungszeitreihe als eine Eingabe verwendet.In some embodiments, the building management platform includes a directed acyclic graph (DAG) database that stores multiple DAGs, each of the DAGs defining a feedback control workflow. In some embodiments, the instructions cause the one or more processors to determine whether any of the feedback control DAGs stored in the DAG database use the feedback time series as an input.

Bei manchen Ausführungsformen sind der eine oder die mehreren Prozessoren über mehrere Systeme oder Vorrichtungen verteilt. In some embodiments, the one or more processors are distributed across multiple systems or devices.

Bei manchen Ausführungsformen beinhaltet der Rückkopplungssteuerarbeitsfluss einen Zustandsbasierte-Steuerung-Arbeitsfluss, einen ESC-Arbeitsfluss (ESC: Extremum Seeking Control - nach Extremen suchende Steuerung), einen Proportional-Integral(PI)-Steuerung-Arbeitsfluss, einen Proportional-Integral-Ableitend(PID)-Steuerung-Arbeitsfluss und/oder ein MPC-Arbeitsfluss (MCP: Model Predictive Control - Modellvorhersagesteuerung), die den einen oder die mehreren Prozessoren zum Transformieren der Rückkopplungszeitreihe unter Verwendung einer Rückkopplungssteuertechnik in die Steuersignalzeitreihen veranlassen.In some embodiments, the feedback control workflow includes a state-based control workflow, an extremum seeking control (ESC) workflow, a proportional-integral (PI) control workflow, a proportional-integral-derivative (PID ) Control workflow and / or an MPC (Model Predictive Control) workflow that causes the one or more processors to transform the feedback time series into the control signal time series using a feedback control technique.

Bei manchen Ausführungsformen beinhaltet der Rückkopplungssteuerungsarbeitsfluss einen Proportional-Integral-Ableitend(PID)-Steuerungsarbeitsfluss, der den einen oder die mehreren Prozessoren zum Erzeugen einer Fehlerzeitreihen veranlasst, die mehrere Fehlerabtastwerte enthält. Jeder der Fehlerabtastwerte kann einen Unterschied zwischen einem oder den Rückkopplungsabtastwerten und einem entsprechenden Sollwert anzeigen. Der PID-Steuerung-Arbeitsfluss kann den einen oder die mehreren Prozessoren zum Erzeugen der Steuersignalzeitreihen durch Anwenden eines Satzes von PID-Steueroperationen auf die Fehlerzeitreihe veranlassen.In some embodiments, the feedback control workflow includes a proportional integral derivative (PID) control workflow that causes the one or more processors to generate an error time series that includes multiple error samples. Each of the error samples can indicate a difference between one or more of the feedback samples and a corresponding target value. The PID control workflow may cause the one or more processors to generate the control signal time series by applying a set of PID control operations to the error time series.

Bei manchen Ausführungsformen beinhaltet das Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihen das Erzeugen einer integrierten Fehlerzeitreihe basierend auf mehreren Fehlerabtastwerten und Erzeugen einer Ableitungsfehlerzeitreihe basierend auf einer Änderung eines Wertes zwischen aufeinanderfolgenden Abtastwerten der Fehlerzeitreihe.In some embodiments, applying the set of PID control operations to the error time series includes generating an integrated error time series based on multiple error samples and generating a derivative error time series based on a change in value between successive samples of the error time series.

Bei manchen Ausführungsformen beinhaltet das Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihe Folgendes: Berechnen einer Proportionalverstärkungskomponente durch Multiplizieren der Fehlerzeitreihe mit einem Proportionalverstärkungsparameter, Berechnen einer Integralverstärkungskomponente durch Multiplizieren der integrierten Fehlerzeitreihe mit einem Integralverstärkungsparameter, Berechnen einer Ableitungsverstärkungskomponente durch Multiplizieren der Ableitungsfehlerzeitreihe mit einem Ableitungsverstärkungsparameter, und Kombinieren der Proportionalverstärkungskomponente, der Integralverstärkungskomponente und der Ableitungsverstärkungskomponente, um die Steuersignalzeitreihen zu erzeugen.In some embodiments, applying the set of PID control operations to the error time series includes: calculating a proportional gain component by multiplying the error time series by a proportional gain parameter, calculating an integral gain component by multiplying the integrated error time series by an integral gain parameter, calculating a derivative gain parameter by a derivative gain parameter by multiplying the derivative time series , and combining the proportional gain component, the integral gain component and the derivative gain component to generate the control signal time series.

Eine andere Implementierung der vorliegenden Offenbarung ist ein Verfahren zum Überwachen und Steuern von Ausrüstung eines Gebäudeverwaltungssystems. Das Verfahren beinhaltet Folgendes: Sammeln von Rückkopplungsabtastwerten, die von einem oder mehreren Sensoren des Gebäudeverwaltungssystems bereitgestellt werden, und Erzeugen einer oder mehrerer Rückkopplungszeitreihen, die mehrere der Rückkopplungsabtastwerte beinhalten, Identifizieren eines ersten Rückkopplungssteuerarbeitsflusses, der die Rückkopplungszeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Rückkopplungsabtastwerte der Rückkopplungszeitreihe angewendet werden sollen, Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, um eine Steuersignalzeitreihe zu erzeugen, die einen Satz Steuersignalabtastwerten beinhaltet, und Liefern eines Steuersignals, das die Steuersignalabtastwerte und/oder die Steuersignalzeitreihen beinhaltet, als eine Ausgabe an eine steuerbare Gebäudeausrüstung des Gebäudeverwaltungssystems, die unter Verwendung des Steuersignals als eine Eingabe arbeitet.Another implementation of the present disclosure is a method for monitoring and controlling equipment of a building management system. The method includes: collecting feedback samples provided by one or more sensors of the building management system and generating one or more feedback time series including multiple of the feedback samples, identifying a first feedback control workflow that uses the feedback time series as an input, and one or more processing operations defined to be applied to the feedback samples of the feedback time series, performing the one or more processing operations defined by the feedback control workflow to generate a control signal time series that includes a set of control signal samples, and providing a control signal that includes the control signal samples and / or the control signal time series includes, as an output to a controllable building equipment using the building management system of the control signal works as an input.

Bei manchen Ausführungsformen beinhalten die Sensoren einen Temperatursensor, einen Feuchtigkeitssensor, einen Beleuchtungssensor, einen Luftqualitätssensor und/oder einen Anwesenheitssensor, die zum Erfassen eines Umgebungszustands innerhalb eines Gebäudebereichs konfiguriert sind. Bei manchen Ausführungsformen beinhalten die Sensoren einen Temperatursensor, einen Durchflussratensensor, einen Enthalpiesensor und/oder einen Spannungssensor, die zum Erfassen eines Betriebszustands oder eines Zustands einer Zentralanlagenausrüstung innerhalb einer Zentralanlage konfiguriert sind. Bei manchen Ausführungsformen beinhalten die Datenquellen Internet-der-Dinge-(IoT)-Vorrichtungen. Bei manchen Ausführungsformen beinhaltet die steuerbare Gebäudeausrüstung eine HVAC-Ausrüstung, Sicherheitsausrüstung, Beleuchtungsausrüstung oder Zugangssteuerausrüstung, die innerhalb eines Gebäudes installiert ist.In some embodiments, the sensors include a temperature sensor, a humidity sensor, an illumination sensor, an air quality sensor, and / or a presence sensor configured to detect an environmental condition within a building area. In some embodiments, the sensors include a temperature sensor, a flow rate sensor, an enthalpy sensor, and / or a voltage sensor configured to detect an operating condition or condition of central plant equipment within a central plant. In some embodiments, the data sources include Internet of Things (IoT) devices. In some embodiments, the controllable building equipment includes HVAC equipment, security equipment, lighting equipment, or access control equipment installed within a building.

Bei manchen Ausführungsformen beinhaltet das Erzeugen der Steuersignalzeitreihe Transformieren eines oder mehrerer Abtastwerte der Rückkopplungszeitreihen in einen oder mehrere Abtastwerte der Steuersignalabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Rückkopplungszeitreihe als eine Eingabe auf den Rückkopplungssteuerarbeitsfluss und Zusammenstellen der Steuerabtastwerte, um die Steuersignalzeitreihe zu bilden, Zusammenstellen der Steuerabtastwerte, um die Steuersignalzeitreihe zu bilden.In some embodiments, generating the control signal time series includes transforming one or more samples of the feedback time series into one or more samples of the control signal samples by applying the one or more samples of the feedback time series as an input to the feedback control workflow and assembling the control samples form the control signal time series, assemble the control samples to form the control signal time series.

Bei manchen Ausführungsformen beinhaltet das Verfahren Identifizieren einer oder mehrerer anderer Zeitreihen, die als Eingaben für den Rückkopplungssteuerarbeitsfluss erforderlich sind, und Erzeugen eines angereicherten Rückkopplungssteuerarbeitsflusses, der den Rückkopplungssteuerarbeitsfluss, die Rückkopplungszeitreihen und die eine oder die mehreren andere Zeitreihen umfasst. Bei manchen Ausführungsformen beinhalten die eine oder mehreren anderen Zeitreihen mehrere Sollwertzeitreihen, die mehrere Sollwertabtastwerte beinhalten, wobei jeder der Sollwertabtastwerte einen Sollwert definiert, der einem der Rückkopplungsabtastwerte entspricht.In some embodiments, the method includes identifying one or more other time series required as inputs to the feedback control workflow and generating an enriched feedback control workflow that includes the feedback control workflow, the feedback time series, and the one or more other time series. In some embodiments, the one or more other time series include multiple setpoint time series that include multiple setpoint samples, each of the setpoint samples defining a setpoint that corresponds to one of the feedback samples.

Bei manchen Ausführungsformen beinhaltet das Verfahren Zugreifen auf eine Zeitreihendatenbank, die mehrere Zeitreihen speichert, und Identifizieren der Rückkopplungszeitreihe aus den mehreren in der Zeitreihendatenbank gespeicherten Zeitreihen.In some embodiments, the method includes accessing a time series database that stores multiple time series and identifying the feedback time series from the plurality of time series stored in the time series database.

Bei manchen Ausführungsformen umfasst das Verfahren den Zugang auf eine DAG-Datenbank (DAG: gerichteter azyklischer Graph), die mehrere Rückkopplungs-DAGs speichert, wobei jeder der DAGs einen Rückkopplungssteuerarbeitsfluss definiert, und Bestimmen, ob irgendeiner der in der DAG-Datenbank gespeicherten Rückkopplungssteuerungs-DAGs die Rückkopplungszeitreihen als eine Eingabe verwendet.In some embodiments, the method includes accessing a directed acyclic graph (DAG) database that stores multiple feedback DAGs, each of the DAGs defining a feedback control workflow, and determining whether any of the feedback control controls stored in the DAG database DAGs used the feedback time series as an input.

Bei manchen Ausführungsformen sind die eine oder mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, über mehrere Systeme oder Vorrichtungen verteilt.In some embodiments, the one or more processing operations defined by the feedback control workflow are distributed across multiple systems or devices.

Bei manchen Ausführungsformen beinhaltet der Rückkopplungssteuerarbeitsfluss einen Zustandsbasierte-Steuerung-Arbeitsfluss, einen ESC-Arbeitsfluss (ESC: Extremum Seeking Control - nach Extremen suchende Steuerung), einen Proportional-Integral(PI)-Steuerung-Arbeitsfluss, einen Proportional-Integral-Ableitend(PID)-Steuerung-Arbeitsfluss und/oder ein MPC-Arbeitsfluss (MCP: Model Predictive Control - Modellvorhersagesteuerung), die veranlassen, dass die Rückkopplungszeitreihe unter Verwendung einer Rückkopplungssteuertechnik in die Steuersignalzeitreihen transformiert wird.In some embodiments, the feedback control workflow includes a state-based control workflow, an extremum seeking control (ESC) workflow, a proportional-integral (PI) control workflow, a proportional-integral-derivative (PID ) Control workflow and / or an MPC (Model Predictive Control) workflow that cause the feedback time series to be transformed into the control signal time series using a feedback control technique.

Bei manchen Ausführungsformen umfasst der Rückkopplungssteuerarbeitsfluss einen Proportional-Integral-Ableitend(PID)-Steuerarbeitsfluss. Das Durchführen der einen oder mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, kann Erzeugen einer Fehlerzeitreihe beinhalten, die mehrere Fehlerabtastwerte enthält. Jeder der Fehlerabtastwerte kann einen Unterschied zwischen einem oder den Rückkopplungsabtastwerten und einem entsprechenden Sollwert anzeigen. Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, kann Erzeugen der Steuersignalzeitreihe durch Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihe beinhalten.In some embodiments, the feedback control workflow includes a proportional-integral-derivative (PID) control workflow. Performing the one or more processing operations defined by the feedback control workflow may include generating an error time series that includes multiple error samples. Each of the error samples can indicate a difference between one or more of the feedback samples and a corresponding target value. Performing the one or more processing operations defined by the feedback control workflow may include generating the control signal time series by applying the set of PID control operations to the error time series.

Bei manchen Ausführungsformen beinhaltet das Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihen das Erzeugen einer integrierten Fehlerzeitreihe basierend auf mehreren Fehlerabtastwerten und Erzeugen einer Ableitungsfehlerzeitreihe basierend auf einer Änderung eines Wertes zwischen aufeinanderfolgenden Abtastwerten der Fehlerzeitreihe.In some embodiments, applying the set of PID control operations to the error time series includes generating an integrated error time series based on multiple error samples and generating a derivative error time series based on a change in value between successive samples of the error time series.

Bei manchen Ausführungsformen beinhaltet das Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihe Folgendes: Berechnen einer Proportionalverstärkungskomponente durch Multiplizieren der Fehlerzeitreihe mit einem Proportionalverstärkungsparameter, Berechnen einer Integralverstärkungskomponente durch Multiplizieren der integrierten Fehlerzeitreihe mit einem Integralverstärkungsparameter; Berechnen einer Ableitungsverstärkungskomponente durch Multiplizieren der Ableitungsfehlerzeitreihe mit einem Ableitungsverstärkungsparameter; und Kombinieren der Proportionalverstärkungskomponente, der Integralverstärkungskomponente und der Ableitungsverstärkungskomponente, um die Steuersignalzeitreihen zu erzeugen.In some embodiments, applying the set of PID control operations to the error time series includes: calculating a proportional gain component by multiplying the error time series by a proportional gain parameter, calculating an integral gain component by multiplying the integrated error time series by an integral gain parameter; Computing a derivative gain component by multiplying the derivative error time series by a derivative gain parameter; and combining the proportional gain component, the integral gain component and the derivative gain component to produce the control signal time series.

Identitätsverwaltung und SicherstellungsdiensteIdentity management and security services

Eine Implementierung der vorliegenden Offenbarung ist ein Gebäudeverwaltungssystem, das eine Entitätsdatenbank und einen Identitätsverwaltungsdienst enthält. Die Entitätsdatenbank speichert mehrere miteinander verbundene intelligente Entitäten. Die intelligenten Entitäten beinhalten Objektentitäten, die mehrere Personen oder physische Vorrichtungen repräsentieren, und Datenentitäten, die Daten repräsentieren, die den Personen oder physischen Vorrichtungen zugeordnet sind. Die intelligenten Entitäten sind durch relationale Objekte miteinander verbunden, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Jede der Objektentitäten enthält mehrere gespeicherte Identitätsattribute. Der Identitätsverwaltungsdienst ist zu Folgendem konfiguriert: Empfangen eines ersten Identitätsattributs von einer ersten Vorrichtung innerhalb eines Gebäudes, Empfangen eines zweiten Identitätsattributs von einer zweiten Vorrichtung innerhalb des Gebäudes, Vergleichen des ersten und des zweiten Identitätsattributs mit den gespeicherten Identitätsattributen einer Objektentität aus den mehreren miteinander verbundener intelligenter Entitäten, und Gewähren des Zugangs zu einen Gebäudebereich, einer Vorrichtung einer Gebäudeausrüstung und/oder einem Computersystem als Reaktion darauf, dass das erste und das zweite Identitätsattribut mit den gespeicherten Identitätsattributen der Objektentität übereinstimmen.An implementation of the present disclosure is a building management system that includes an entity database and an identity management service. The entity database stores several interconnected intelligent entities. The intelligent entities include object entities that represent multiple people or physical devices and data entities that represent data associated with the people or physical devices. The intelligent entities are through relational Objects connected to each other that indicate relationships between the object entities and the data entities. Each of the object entities contains several stored identity attributes. The identity management service is configured to: receive a first identity attribute from a first device within a building, receive a second identity attribute from a second device within the building, compare the first and second identity attributes with the stored identity attributes of an object entity from the plurality of intelligently connected Entities, and granting access to a building area, building equipment device, and / or a computer system in response to the first and second identity attributes matching the stored identity attributes of the object entity.

Bei manchen Ausführungsformen ist die erste Vorrichtung ein Zugangskartenlesegerät und ist das erste Identitätsattribut ein Karten-ID-Attribut, das vom Zugangskartenlesegerät aufgezeichnet wird. Bei manchen Ausführungsformen ist die zweite Vorrichtung eine Sicherheitskamera und ist das zweite Identitätsattribut ein Bild einer Person, das durch die Sicherheitskamera erfasst wird.In some embodiments, the first device is an access card reader and the first identity attribute is a card ID attribute recorded by the access card reader. In some embodiments, the second device is a security camera and the second identity attribute is an image of a person that is captured by the security camera.

Bei manchen Ausführungsformen ist die erste Vorrichtung ein Zugangskartenlesegerät und ist das erste Identitätsattribut ein Karten-ID-Attribut, das vom Zugangskartenlesegerät aufgezeichnet wird. Bei manchen Ausführungsformen ist die zweite Vorrichtung eine mobile Vorrichtung, die von einer Person getragen wird, und ist das zweite Identitätsattribut ein der mobilen Vorrichtung zugeordnetes Mobilvorrichtung-ID-Attribut.In some embodiments, the first device is an access card reader and the first identity attribute is a card ID attribute recorded by the access card reader. In some embodiments, the second device is a mobile device worn by a person and the second identity attribute is a mobile device ID attribute associated with the mobile device.

Bei manchen Ausführungsformen ist die erste Vorrichtung eine Benutzeroberflächenvorrichtung und ist das erste Identitätsattribut eine Benutzerkennung, die von einem Benutzer über die Benutzeroberflächenvorrichtung empfangen wird. Bei manchen Ausführungsformen ist die zweite Vorrichtung eine Sicherheitskamera und ist das zweite Identitätsattribut ein Bild einer Person, das durch die Sicherheitskamera erfasst wird.In some embodiments, the first device is a user interface device and the first identity attribute is a user ID received from a user via the user interface device. In some embodiments, the second device is a security camera and the second identity attribute is an image of a person that is captured by the security camera.

Bei manchen Ausführungsformen ist die erste Vorrichtung eine Benutzeroberflächenvorrichtung und ist das erste Identitätsattribut eine Benutzerkennung, die von einem Benutzer über die Benutzeroberflächenvorrichtung empfangen wird. Bei manchen Ausführungsformen ist die zweite Vorrichtung eine mobile Vorrichtung, die von einer Person getragen wird, und ist das zweite Identitätsattribut ein der mobilen Vorrichtung zugeordnetes Mobilvorrichtung - ID- Attribut.In some embodiments, the first device is a user interface device and the first identity attribute is a user ID received from a user via the user interface device. In some embodiments, the second device is a mobile device worn by a person and the second identity attribute is a mobile device ID attribute associated with the mobile device.

Bei manchen Ausführungsformen ist die erste Vorrichtung ein mobile Vorrichtung, eine Informationstechnologie(IT)-Vorrichtung, ein Internet-der-Dinge(IoT)-Sensors, eine Gebäudeausrüstungsvorrichtung und/oder eine Sicherheitsvorrichtung. Bei manchen Ausführungsformen ist die zweite Vorrichtung eine andere der mobilen Vorrichtung, der IT-Vorrichtung, des IoT-Vorrichtung, der Gebäudeausrüstungsvorrichtung oder der Sicherheitsvorrichtung.In some embodiments, the first device is a mobile device, an information technology (IT) device, an Internet of Things (IoT) sensor, a building equipment device, and / or a security device. In some embodiments, the second device is another one of the mobile device, the IT device, the IoT device, the building equipment device, or the security device.

Bei manchen Ausführungsformen ist der Identitätsverwaltungsdienst zu Folgendem konfiguriert: Bestimmen eines der ersten Vorrichtung zugeordneten Standortes als Reaktion darauf, dass die erste Vorrichtung das das erste Identitätsattribut bereitstellt, Identifizieren eines Gebäudebereichs, in dem sich die erste Vorrichtung befindet, und Auswählen der zweiten Vorrichtung aus einem Satz von Vorrichtungen, die sich in demselben Gebäudebereich wie die erste Vorrichtung befinden.In some embodiments, the identity management service is configured to: determine a location associated with the first device in response to the first device providing the first identity attribute, identify a building area in which the first device is located, and select the second device from one Set of devices located in the same building area as the first device.

Bei manchen Ausführungsformen ist der Identitätsverwaltungsdienst zum Verweigern des Zugangs zu dem Gebäudebereich, der Vorrichtung einer Gebäudeausrüstung und/oder dem Computersystem als Reaktion darauf, dass das erste und/oder das zweite Identitätsattribut nicht mit den gespeicherten Identitätsattributen der Objektentität übereinstimmt, konfiguriert.In some embodiments, the identity management service is configured to deny access to the building area, building equipment device, and / or the computer system in response to the first and / or second identity attribute not matching the stored identity attributes of the object entity.

Eine andere Implementierung der vorliegenden Offenbarung ist ein Verfahren zum Steuern des Zugangs zu einem Gebäudebereich, einer Vorrichtung einer Gebäudeausrüstung oder einem Computersystem in einem Gebäudeverwaltungssystem. Das Verfahren beinhaltet Speichern mehrerer miteinander verbundener intelligenter Entitäten in einer Entitätsdatenbank. Die intelligenten Entitäten beinhalten Objektentitäten, die mehrere Personen oder physische Vorrichtungen repräsentieren, und Datenentitäten, die Daten repräsentieren, die den Personen oder physischen Vorrichtungen zugeordnet sind. Die intelligenten Entitäten sind durch relationale Objekte miteinander verbunden, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Jede der Objektentitäten enthält mehrere gespeicherte Identitätsattribute. Das Verfahren beinhaltet ferner Folgendes: Empfangen eines ersten Identitätsattributs von einer ersten Vorrichtung innerhalb eines Gebäudes, Empfangen eines zweiten Identitätsattributs von einer zweiten Vorrichtung innerhalb des Gebäudes, Vergleichen des ersten und des zweiten Identitätsattributs mit den gespeicherten Identitätsattributen einer Objektentität aus den mehreren miteinander verbundener intelligenter Entitäten, und Gewähren des Zugangs zu einen Gebäudebereich, einer Vorrichtung einer Gebäudeausrüstung und/oder einem Computersystem als Reaktion darauf, dass das erste und das zweite Identitätsattribut mit den gespeicherten Identitätsattributen der Objektentität übereinstimmen.Another implementation of the present disclosure is a method of controlling access to a building area, building equipment device, or computer system in a building management system. The method includes storing multiple interconnected intelligent entities in an entity database. The intelligent entities include object entities that represent multiple people or physical devices and data entities that represent data associated with the people or physical devices. The intelligent entities are linked by relational objects that indicate relationships between the object entities and the data entities. Each of the object entities contains several stored identity attributes. The method further includes: receiving a first identity attribute from a first device within a building, receiving a second identity attribute from a second device within the building, comparing the first and second identity attributes with the stored identity attributes of an object entity from the plurality of interconnected intelligent entities , and granting the Access to a building area, building equipment apparatus, and / or a computer system in response to the first and second identity attributes matching the stored identity attributes of the object entity.

Bei manchen Ausführungsformen ist die erste Vorrichtung ein Zugangskartenlesegerät und ist das erste Identitätsattribut ein Karten-ID-Attribut, das vom Zugangskartenlesegerät aufgezeichnet wird. Bei manchen Ausführungsformen ist die zweite Vorrichtung eine Sicherheitskamera und/oder eine mobile Vorrichtung, die von einer Person getragen wird, und ist das zweite Identitätsattribut ein Bild einer Person, das von der Sicherheitskamera erfasst wird, und/oder ein der mobilen Vorrichtung zugeordnetes Mobilvorrichtung-ID-Attribut.In some embodiments, the first device is an access card reader and the first identity attribute is a card ID attribute recorded by the access card reader. In some embodiments, the second device is a security camera and / or a mobile device carried by a person and the second identity attribute is an image of a person captured by the security camera and / or a mobile device associated with the mobile device. ID attribute.

Bei manchen Ausführungsformen ist die erste Vorrichtung eine Benutzeroberflächenvorrichtung und ist das erste Identitätsattribut eine Benutzerkennung, die von einem Benutzer über die Benutzeroberflächenvorrichtung empfangen wird. Bei manchen Ausführungsformen ist die zweite Vorrichtung eine Sicherheitskamera und/oder eine mobile Vorrichtung, die von einer Person getragen wird, und ist das zweite Identitätsattribut ein Bild einer Person, das von der Sicherheitskamera erfasst wird, und/oder ein der mobilen Vorrichtung zugeordnetes Mobilvorrichtung-ID-Attribut.In some embodiments, the first device is a user interface device and the first identity attribute is a user ID received from a user via the user interface device. In some embodiments, the second device is a security camera and / or a mobile device carried by a person and the second identity attribute is an image of a person captured by the security camera and / or a mobile device associated with the mobile device. ID attribute.

Bei manchen Ausführungsformen beinhaltet das Verfahren Folgendes: Bestimmen eines der ersten Vorrichtung zugeordneten Standortes als Reaktion darauf, dass die erste Vorrichtung das das erste Identitätsattribut bereitstellt, Identifizieren eines Gebäudebereichs, in dem sich die erste Vorrichtung befindet, und Auswählen der zweiten Vorrichtung aus einem Satz von Vorrichtungen, die sich in demselben Gebäudebereich wie die erste Vorrichtung befinden.In some embodiments, the method includes: determining a location associated with the first device in response to the first device providing the first identity attribute, identifying a building area in which the first device is located, and selecting the second device from a set of Devices that are in the same building area as the first device.

Eine andere Implementierung der vorliegenden Offenbarung ist ein Gebäudeverwaltungssystem, das mehrere Vorrichtungen einer Gebäudeausrüstung, eine Entitätsdatenbank und einen Sicherstellungsdienst enthält. Die Entitätsdatenbank speichert mehrere miteinander verbundene intelligente Entitäten. Die intelligenten Entitäten beinhalten Objektentitäten, die mehrere Vorrichtungen der Gebäudeausrüstung repräsentieren, und Datenentitäten, die Daten repräsentieren, die den mehreren Vorrichtungen der Gebäudeausrüstung zugeordnet sind. Die intelligenten Entitäten sind durch relationale Objekte miteinander verbunden, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Jede Objektentität enthält ein gespeichertes Attribut, das eine Version einer Software angibt, die auf einer Vorrichtung der Gebäudeausrüstung installiert ist, die durch die Objektentität repräsentiert wird. Der Sicherstellungsdienst ist zu Folgendem konfiguriert: automatisches Detektieren einer Version einer Software, die auf jeder der Vorrichtungen der Gebäudeausrüstung installiert ist, durch Lesen der gespeicherten Attribute der Objektentitäten, und automatisches Aktualisieren der Software, die auf einer oder mehreren der Vorrichtungen der Gebäudeausrüstung installiert ist, als Reaktion auf eine Bestimmung, dass die Version der auf der einen oder den mehreren Vorrichtungen der Gebäudeausrüstungen installierten Software nicht eine neueste Version der Software ist.Another implementation of the present disclosure is a building management system that includes multiple building equipment devices, an entity database, and a security service. The entity database stores several interconnected intelligent entities. The intelligent entities include object entities that represent multiple building equipment devices and data entities that represent data associated with the multiple building equipment devices. The intelligent entities are linked by relational objects that indicate relationships between the object entities and the data entities. Each object entity contains a stored attribute that indicates a version of software installed on a building equipment device represented by the object entity. The security service is configured to: automatically detect a version of software installed on each of the building equipment devices by reading the stored attributes of the object entities, and automatically update the software installed on one or more of the building equipment devices, in response to a determination that the version of the software installed on the one or more building equipment devices is not a newest version of the software.

Bei manchen Ausführungsformen umfasst der Sicherstellungsdienst einen Identitäts- und Sicherheitsdienst, der zum Sicherstellen konfiguriert ist, dass jede Vorrichtung der Gebäudeausrüstung zum Zugreifen auf Konfigurationssicherungen in der Lage ist.In some embodiments, the security service includes an identity and security service configured to ensure that each building equipment device is capable of accessing configuration backups.

Bei manchen Ausführungsformen umfasst der Sicherstellungsdienst einen Vorrichtungsverwaltungsdienst, der zum Erzeugen einer intelligenten Entität für jede Vorrichtung der Gebäudeausrüstung und Registrieren jeder Vorrichtung der Gebäudeausrüstung bei der entsprechenden intelligenten Entität konfiguriert ist.In some embodiments, the backup service includes a device management service configured to create an intelligent entity for each building equipment device and register each building equipment device with the corresponding intelligent entity.

Bei manchen Ausführungsformen beinhaltet der Sicherstellungsdienst einen Transport- und Benachrichtigungsdienst, der zum Ermöglichen einer bidirektionalen Kommunikation zwischen dem Sicherstellungsdienst und der Gebäudeausrüstung konfiguriert ist.In some embodiments, the security service includes a transport and notification service that is configured to enable bidirectional communication between the security service and the building equipment.

Bei manchen Ausführungsformen beinhaltet der Sicherstellungsdienst einen Vorrichtungschatten-/-manifestdienst, der zum Synchronisieren von Konfigurationseinstellungen, Parametern und/oder vorrichtungsspezifischen Informationen zwischen der Gebäudeausrüstung und dem Sicherstellungsdienst konfiguriert ist.In some embodiments, the backup service includes a device shadow / manifest service configured to synchronize configuration settings, parameters, and / or device-specific information between the building equipment and the backup service.

Bei manchen Ausführungsformen umfasst der Sicherstellungsdienst einen Paketdienst, der zum Erzeugen eines komprimierten Datenobjekts einschließlich einer Konfiguration der Gebäudeausrüstung und Speichern des komprimierten Datenobjekts als eine Sicherung der Konfiguration konfiguriert ist.In some embodiments, the backup service includes a parcel service configured to create a compressed data object including a configuration of the building equipment and store the compressed data object as a backup of the configuration.

Bei manchen Ausführungsformen beinhaltet der Sicherstellungsdienst einen Asset- und Sicherungsdienst, der zum Erzeugen und Präsentieren einer Benutzeroberfläche konfiguriert ist, die jede Vorrichtung der Gebäudeausrüstung auflistet und angibt, ob eine Sicherungskonfiguration jeder Vorrichtung in dem Sicherstellungsdienst gespeichert wurde.In some embodiments, the backup service includes an asset and backup service configured to create and present a user interface that each device of the Building equipment lists and indicates whether a backup configuration of each device has been stored in the backup service.

Bei manchen Ausführungsformen beinhaltet der Sicherstellungsdienst einen manuellen Upload-Dienst, der zum Hochladen einer Sicherungskonfiguration als Reaktion auf eine Benutzeranforderung für die Sicherungskonfiguration konfiguriert ist.In some embodiments, the backup service includes a manual upload service configured to upload a backup configuration in response to a user request for the backup configuration.

Ein Fachmann wird detektieren, dass die Kurzdarstellung nur veranschaulichend ist und in keiner Weise beschränkend sein soll. Andere Aspekte, erfinderische Merkmale und Vorteile der hier beschriebenen Vorrichtungen und/oder Verfahren, wie sie ausschließlich durch die Ansprüche definiert sind, werden in der hier dargelegten und in Verbindung mit den begleitenden Zeichnungen zu verstehenden ausführlichen Beschreibung deutlich.One skilled in the art will detect that the summary is illustrative only and is not intended to be limiting in any way. Other aspects, inventive features, and advantages of the devices and / or methods described herein, as defined solely by the claims, will become apparent in the detailed description set forth herein and to be understood in conjunction with the accompanying drawings.

FigurenlisteFigure list

Die obigen und andere Aspekte und Merkmale der vorliegenden Offenbarung werden für einen Fachmann aus der folgenden ausführlichen Beschreibung der Ausführungsbeispiele unter Bezugnahme auf die beigefügten Zeichnungen deutlicher.

  • 1 ist ein Blockdiagramm einer intelligenten Gebäudeumgebung gemäß manchen Ausführungsbeispielen.
  • 2 ist eine perspektivische Ansicht eines intelligenten Gebäudes gemäß manchen Ausführungsbeispielen.
  • 3 ist ein Blockdiagramm eines Wasserseitensystems gemäß manchen Ausführungsbeispielen.
  • 4 ist ein Blockdiagramm eines Luftseitensystems gemäß manchen Ausführungsbeispielen.
  • 5 ist ein Blockdiagramm eines Gebäudeverwaltungssystems gemäß manchen Ausführungsbeispielen.
  • 6 ist ein Blockdiagramm eines anderen Gebäudeverwaltungssystems gemäß manchen Ausführungsbeispielen.
  • 7 ist ein Blockdiagramm, das einen Entitätsdienst aus 6 ausführlicher veranschaulicht, gemäß manchen Ausführungsbeispielen.
  • 8 ist ein beispielhafter Entitätsgraph von Entitätsdaten gemäß manchen Ausführungsbeispielen.
  • 9 ist ein Blockdiagramm, das einen Zeitreihendienst aus 6 ausführlicher veranschaulicht, gemäß manchen Ausführungsbeispielen.
  • 10 ist ein Flussdiagramm eines Prozesses oder eines Verfahrens zum Aktualisieren/Erzeugen eines Attributs einer in Zusammenhang stehenden Entität basierend auf Daten, die von einer Vorrichtung eines Gebäudeverwaltungssubsystems empfangen werden, gemäß manchen Ausführungsbeispielen.
  • 11 ist ein beispielhafter Entitätsgraph von Entitätsdaten gemäß manchen Ausführungsbeispielen.
  • 12 ist ein Flussdiagramm eines Prozesses oder eines Verfahrens zum Analysieren von Daten von einer zweiten in Zusammenhang stehenden Vorrichtung basierend auf Daten von einer ersten Vorrichtung gemäß manchen Ausführungsbeispielen.
  • 13 ist ein Flussdiagramm eines Prozesses oder eines Verfahrens zum Erzeugen einer abgeleiteten Zeitreihe aus Daten, die durch eine erste Vorrichtung oder eine zweite Vorrichtung erzeugt werden, gemäß manchen Ausführungsbeispielen.
  • 14 ist ein Blockdiagramm, das eine Aggregationstechnik veranschaulicht, die durch den in 13 gezeigten Abtastwertaggregator verwendet werden kann, um Rohdatenabtastwerte zu aggregieren, gemäß manchen Ausführungsformen.
  • 15 ist eine Datentabelle, die zum Speichern einer Rohdatenzeitreihe und einer Vielzahl abgeleiteter Datenzeitreihen verwendet werden kann, die durch den Zeitreihendienst aus 9 erzeugt werden können, gemäß manchen Ausführungsformen.
  • 16 ist eine Zeichnung einiger Zeitreihen, die die Synchronisation von Datenabtastwerten veranschaulichen, die durch den in 9 gezeigten Abtastwertaggregator durchgeführt werden kann, gemäß manchen Ausführungsformen.
  • 17 ist ein Flussdiagramm, das die Erzeugung und Speicherung einer Fehlerdetektionszeitreihe veranschaulicht, die durch den in 9 gezeigten Fehlerdetektor durchgeführt werden kann, gemäß manchen Ausführungsformen.
  • 18 ist eine Datentabelle, die zum Speichern der Rohdatenzeitreihe und der Fehlerdetektionszeitreihe verwendet werden kann, gemäß manchen Ausführungsformen.
  • 19A ist eine Datentabelle, die zum Speichern von Zuständen, die Abtastwerten einer Datenzeitreihe zugewiesen sind, verwendet werden kann, gemäß manchen Ausführungsformen.
  • 19B ist eine Tabelle, die verschiedene Ereignisse beinhaltet, die basierend auf den in der Tabelle aus 19A gezeigten zugewiesenen Zuständen erzeugt werden, gemäß manchen Ausführungsformen.
  • 19C ist ein Flussdiagramm eines Prozesses zum Erzeugen und Aktualisieren von Ereignissen und Ereignisreihen gemäß manchen Ausführungsformen.
  • 20A ist ein gerichteter azyklischer Graph (DAG), der durch den DAG-Generator aus 9 erzeugt werden kann, gemäß manchen Ausführungsformen.
  • 20B ist ein Codeausschnitt, der durch den DAG-Generator aus 9 automatisch basierend auf dem DAG erzeugt werden kann, gemäß manchen Ausführungsformen.
  • 21A ist ein Entitätsgraph, der Beziehungen zwischen einer Organisation, einem Bereich, einem System, einem Punkt und einer Zeitreihe veranschaulicht und der durch den Datenkollektor aus 6 verwendet werden kann, gemäß manchen Ausführungsformen.
  • 21B ist ein Beispiel für einen Entitätsgraphen für ein spezielles System von Vorrichtungen gemäß manchen Ausführungsformen.
  • 22 ist ein Objektbeziehungsdiagramm, das Beziehungen zwischen einer Entitätsvorlage, einem Punkt, einer Zeitreihe und einem Datenabtastwert veranschaulicht und das durch den Datenkollektor aus 6 und den Zeitreihendienst aus 9 verwendet werden kann, gemäß manchen Ausführungsformen.
  • 23A ist ein Blockdiagramm, das einen Zeitreihenverarbeitungsarbeitsfluss veranschaulicht, der durch den Zeitreihendienst aus 9 durchgeführt werden kann, gemäß manchen Ausführungsformen.
  • 23B ist ein Flussdiagramm eines Prozesses, der durch den Arbeitsflussverwalter aus 23A durchgeführt werden kann, gemäß manchen Ausführungsformen.
  • 24 ist ein Blockdiagramm eines Systems zum Verarbeiten von Streaming-Daten, das als Teil der Gebäudeverwaltungsplattform aus 1 implementiert werden kann, gemäß manchen Ausführungsformen.
  • 25A ist ein Blockdiagramm, das eine iterative Zeitreihenverarbeitungstechnik veranschaulicht, die durch das System aus 24 verwendet wird, gemäß manchen Ausführungsformen.
  • 25B ist ein Flussdiagramm eines iterativen Zeitreihenverarbeitungsprozesses, der durch das aus 24 durchgeführt werden kann, gemäß manchen Ausführungsformen.
  • 26 ist ein Blockdiagramm eines Cloud-basierten Rückkopplungssteuersystems einschließlich der Gebäudeverwaltungsplattform aus 1 gemäß manchen Ausführungsformen.
  • 27 ist ein Blockdiagramm eines Identitätsverwaltungssystems eischließlich eine Identitätsverwaltungsdienstes und eines Entitätsdienstes gemäß manchen Ausführungsformen.
  • 28 ist ein Blockdiagramm eines Sicherstellungsdienstes gemäß manchen Ausführungsformen.
The above and other aspects and features of the present disclosure will become more apparent to those skilled in the art from the following detailed description of the embodiments with reference to the accompanying drawings.
  • 1 10 is a block diagram of an intelligent building environment in accordance with some embodiments.
  • 2nd 10 is a perspective view of an intelligent building in accordance with some embodiments.
  • 3rd 10 is a block diagram of a water side system in accordance with some embodiments.
  • 4th FIG. 4 is a block diagram of an airside system according to some embodiments.
  • 5 10 is a block diagram of a building management system in accordance with some embodiments.
  • 6 10 is a block diagram of another building management system in accordance with some embodiments.
  • 7 is a block diagram that shows an entity service 6 Illustrated in more detail, according to some embodiments.
  • 8th 10 is an example entity graph of entity data in accordance with some embodiments.
  • 9 Figure 3 is a block diagram showing a time series service 6 Illustrated in more detail, according to some embodiments.
  • 10th 10 is a flowchart of a process or method for updating / generating a related entity attribute based on data received from a building management subsystem device, according to some embodiments.
  • 11 10 is an example entity graph of entity data in accordance with some embodiments.
  • 12th 10 is a flowchart of a process or method for analyzing data from a second related device based on data from a first device, in accordance with some embodiments.
  • 13 10 is a flowchart of a process or method for generating a derived time series from data generated by a first device or a second device, according to some embodiments.
  • 14 FIG. 4 is a block diagram illustrating an aggregation technique performed by the method shown in FIG 13 The sample aggregator shown can be used to aggregate raw data samples, according to some embodiments.
  • 15 is a data table that can be used to store a raw data time series and a plurality of derived data time series that are performed by the time series service 9 can be generated, according to some embodiments.
  • 16 FIG. 4 is a drawing of some time series that illustrate the synchronization of data samples obtained by the method shown in FIG 9 Sample aggregator shown can be performed, according to some embodiments.
  • 17th FIG. 10 is a flowchart illustrating the generation and storage of an error detection time series by the method shown in FIG 9 The error detector shown can be performed, according to some embodiments.
  • 18th FIG. 10 is a data table that can be used to store the raw data time series and the error detection time series, according to some embodiments.
  • 19A 10 is a data table that can be used to store states associated with samples of a data time series, in accordance with some embodiments.
  • 19B is a table that includes various events based on those in the table 19A assigned states shown are generated, according to some embodiments.
  • 19C 10 is a flowchart of a process for creating and updating events and series of events, in accordance with some embodiments.
  • 20A is a directed acyclic graph (DAG) made by the DAG generator 9 can be generated, according to some embodiments.
  • 20B is a snippet of code made by the DAG generator 9 can be generated automatically based on the DAG, according to some embodiments.
  • 21A is an entity graph that illustrates relationships between an organization, an area, a system, a point, and a time series and is characterized by the data collector 6 may be used in accordance with some embodiments.
  • 21B FIG. 10 is an example of an entity graph for a particular system of devices in accordance with some embodiments.
  • 22 FIG. 10 is an object relationship diagram illustrating relationships between an entity template, a point, a time series, and a data sample, and that by the data collector 6 and the time series service 9 may be used in accordance with some embodiments.
  • 23A FIG. 12 is a block diagram illustrating a time series processing workflow performed by the time series service 9 can be performed, according to some embodiments.
  • 23B is a flowchart of a process performed by the workflow manager 23A can be performed, according to some embodiments.
  • 24th is a block diagram of a system for processing streaming data that is part of the building management platform 1 can be implemented, according to some embodiments.
  • 25A Figure 12 is a block diagram illustrating an iterative time series processing technique implemented by the system 24th is used, according to some embodiments.
  • 25B Figure 11 is a flowchart of an iterative time series processing process characterized by the 24th can be performed, according to some embodiments.
  • 26 Figure 12 is a block diagram of a cloud-based feedback control system including the building management platform 1 according to some embodiments.
  • 27th 10 is a block diagram of an identity management system including an identity management service and an entity service, in accordance with some embodiments.
  • 28 FIG. 10 is a block diagram of a security service in accordance with some embodiments.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Nachfolgend werden Ausführungsbeispiele ausführlicher unter Bezugnahme auf die begleitenden Zeichnungen beschrieben.Exemplary embodiments are described in more detail below with reference to the accompanying drawings.

1 ist ein Blockdiagramm einer intelligenten Gebäudeumgebung 100 gemäß manchen Ausführungsbeispielen. Es ist gezeigt, dass die intelligente Gebäudeumgebung 100 eine Gebäudeverwaltungsplattform 102 beinhaltet. Die Gebäudeverwaltungsplattform 102 kann dazu konfiguriert sein, Daten aus einer Vielzahl verschiedener Datenquellen zu sammeln. Beispielsweise wird gezeigt, dass die Gebäudeverwaltungsplattform 102 Daten von Gebäuden 110, 120, 130 und 140 sammelt. Beispielsweise können die Gebäude eine Schule 110, ein Krankenhaus 120, eine Fabrik 130, ein Bürogebäude 140 und/oder dergleichen einschließen. Die vorliegende Offenbarung ist jedoch nicht auf die Anzahl oder die Arten der Gebäude 110, 120, 130 und 140 beschränkt, die in 1 gezeigt sind. Beispielsweise kann bei manchen Ausführungsformen die Gebäudeverwaltungsplattform 102 dazu konfiguriert sein, Daten von einem oder mehreren Gebäuden zu sammeln, und das eine oder die mehreren Gebäude können vom gleichen Gebäudetyp sein oder können einen oder mehrere von jenen in 1 gezeigten verschiedene Gebäudetypen einschließen. 1 is a block diagram of an intelligent building environment 100 according to some embodiments. It is shown that the intelligent building environment 100 a building management platform 102 includes. The building management platform 102 can be configured to collect data from a variety of different data sources. For example, it is shown that the building management platform 102 Building data 110 , 120 , 130 and 140 collects. For example, the buildings can be a school 110 , a hospital 120 , a factory 130 , an office building 140 and / or the like. However, the present disclosure is not based on the number or types of buildings 110 , 120 , 130 and 140 limited that in 1 are shown. For example, in some embodiments, the Building management platform 102 configured to collect data from one or more buildings, and the one or more buildings can be of the same building type or can include one or more of those in 1 include different types of buildings shown.

Die Gebäudeverwaltungsplattform 102 kann dazu konfiguriert sein, Daten von einer Vielzahl von Vorrichtungen 112-116, 122-126, 132-136 und 142-146 entweder direkt (z. B. direkt über das Netz 104) oder indirekt (z. B. über Systeme oder Anwendungen in den Gebäuden 110, 120, 130, 140) zu sammeln. Bei manchen Ausführungsformen sind die Vorrichtungen 112-116, 122-126, 132-136 und 142-146 Internet-der-Dinge(IoT)-Vorrichtungen. IoT-Vorrichtungen können beliebige einer Vielzahl von physischen Geräten, Sensoren, Aktoren, Elektronikgeräten, Fahrzeugen, Haushaltsgeräten und/oder anderen Gegenständen mit Netzkonnektivität einschließen, die es IoT-Vorrichtungen ermöglichen, mit der Gebäudeverwaltungsplattform 102 zu kommunizieren. loT-Vorrichtungen können beispielsweise intelligente Home-HubVorrichtungen, intelligente Hausvorrichtungen, Türklingelkameras, Luftqualitätssensoren, intelligente Schalter, intelligente Lichter, intelligente Geräte, Garagentoröffner, Rauchmelder, Herzüberwachungsimplantate, Biochip-Transponder, Kameras, die Live-Feeds streamen, Automobile mit eingebauten Sensoren, DNA-Analysevorrichtungen, Feldbetriebsvorrichtungen, Ortungsvorrichtungen für Personen/Fahrzeuge/Ausrüstung, vernetzten Sensoren, drahtlose Sensoren, Wearable-Sensoren, Umgebungssensoren, RFID-Gateways und -Lesegeräte, IoT-Gateway-Vorrichtungen, Roboter und andere robotische Vorrichtungen, GPS-Vorrichtungen, Smartwatches, Virtuelle/Erweiterte-Realität-Vorrichtungen und/oder andere vernetzte oder vernetzbare Vorrichtungen einschließen. Während die hier beschriebenen Vorrichtungen allgemein als IoT-Vorrichtungen bezeichnet werden, versteht es sich, dass bei verschiedenen Ausführungsformen die Vorrichtungen, auf die in der vorliegenden Offenbarung Bezug genommen wird, eine beliebige Art von Vorrichtungen sein können, die zum Kommunizieren von Daten über ein elektronisches Netz in der Lage sind.The building management platform 102 can be configured to receive data from a variety of devices 112-116 , 122-126 , 132-136 and 142-146 either directly (e.g. directly via the network 104 ) or indirectly (e.g. via systems or applications in the buildings 110 , 120 , 130 , 140 ) to collect. In some embodiments, the devices are 112-116 , 122-126 , 132-136 and 142-146 Internet of Things (IoT) devices. IoT devices can include any of a variety of physical devices, sensors, actuators, electronic devices, vehicles, household appliances, and / or other network connectivity items that enable IoT devices with the building management platform 102 to communicate. For example, loT devices can include intelligent home hub devices, intelligent home devices, doorbell cameras, air quality sensors, intelligent switches, intelligent lights, intelligent devices, garage door openers, smoke detectors, heart monitoring implants, biochip transponders, cameras that stream live feeds, automobiles with built-in sensors, DNA -Analysis devices, field operating devices, locating devices for people / vehicles / equipment, networked sensors, wireless sensors, wearable sensors, environmental sensors, RFID gateways and reading devices, IoT gateway devices, robots and other robotic devices, GPS devices, smartwatches, Include virtual / augmented reality devices and / or other networked or networkable devices. While the devices described herein are generally referred to as IoT devices, it is understood that, in various embodiments, the devices referred to in the present disclosure may be any type of devices that are used to communicate data via an electronic device Network are able.

Bei manchen Ausführungsformen können IoT-Vorrichtungen Sensoren oder Sensorsysteme enthalten. Beispielsweise können IoT-Vorrichtungen akustische Sensoren, Schallsensoren, Vibrationssensoren, Automobil- oder Transportsensoren, chemische Sensoren, elektrische Stromsensoren, elektrische Spannungssensoren, Magnetsensoren, Funksensoren, Umgebungssensoren, Wettersensoren, Feuchtigkeitssensoren, Luftfeuchtigkeitssensoren, Durchflusssensoren, Fluidgeschwindigkeitssensoren, Sensoren für ionisierende Strahlung, Sensoren für subatomare Teilchen, Navigationsinstrumente, Positionssensoren, Winkelsensoren, Verschiebungssensoren, Abstandssensoren, Geschwindigkeitssensoren, Beschleunigungssensoren, optische Sensoren, Lichtsensoren, Bildgebungsvorrichtungen, Photonensensoren, Drucksensoren Kraftsensoren, Dichtesensoren, Pegelsensoren, thermische Sensoren, Wärmesensoren, Temperatursensoren, Näherungssensoren, Anwesenheitssensoren und/oder eine beliebige andere Art von Sensoren oder Erfassungssystemen einschließen.In some embodiments, IoT devices may include sensors or sensor systems. For example, IoT devices can include acoustic sensors, sound sensors, vibration sensors, automotive or transport sensors, chemical sensors, electrical current sensors, electrical voltage sensors, magnetic sensors, radio sensors, environmental sensors, weather sensors, moisture sensors, air humidity sensors, flow sensors, fluid speed sensors, sensors for ionizing radiation, sensors for subatomic sensors Particles, navigation instruments, position sensors, angle sensors, displacement sensors, distance sensors, speed sensors, acceleration sensors, optical sensors, light sensors, imaging devices, photon sensors, pressure sensors, force sensors, density sensors, level sensors, thermal sensors, heat sensors, temperature sensors, proximity sensors, any kind of presence sensors and / or Include sensors or detection systems.

Beispiele für Akustik-, Schall- oder Vibrationssensoren beinhalten Geophone, Hydrophone, Lace-Sensoren, Gitarrentonabnehmer, Mikrofone und Seismometer. Beispiele für Automobil- oder Transportsensoren beinhalten Luftdurchflussmessgeräte, Luft-KraftstoffVerhältnis-Messgeräte, AFR-Sensoren, Totwinkelmonitore, Kurbelwellenpositionssensoren, Defektdetektoren, Motorkühlmitteltemperatursensoren, Hall-Effekt-Sensoren, Klopfsensoren, Kartensensoren, Massenflusssensoren, Sauerstoffsensoren, Parksensoren, Radarpistolen, Geschwindigkeitsmesser, Geschwindigkeitssensoren, Drosselklappenstellungssensoren, Reifendrucküberwachungssensoren, Drehmomentsensoren, Getriebefluidtemperatursensoren, Turbinendrehzahlsensoren, Sensoren mit variabler Reluktanz, Fahrzeuggeschwindigkeitssensoren, Wassersensoren und Radgeschwindigkeitssensoren.Examples of acoustic, sound or vibration sensors include geophones, hydrophones, lace sensors, guitar pickups, microphones and seismometers. Examples of automotive or transport sensors include air flow meters, air-fuel ratio measuring devices, AFR sensors Totwinkelmonitore, crankshaft position sensors, defect detection equipment, engine coolant temperature sensors, Hall effect sensors, knock sensors, map sensors, mass flow sensors, oxygen sensors, parking sensors, radar guns, speedometer, speed sensors, throttle position sensors , Tire pressure monitoring sensors, torque sensors, transmission fluid temperature sensors, turbine speed sensors, variable reluctance sensors, vehicle speed sensors, water sensors and wheel speed sensors.

Beispiele für chemische Sensoren beinhalten Alkoholtester, Kohlenstoffdioxidsensoren, Kohlenstoffmonoxiddetektoren, katalytische Perlensensoren, chemische Feldeffekttransistoren, Chemiresistoren, elektrochemische Gassensoren, elektronische Nasen, Elektrolyt-Isolator-Halbleiter-Sensoren, fluoreszierende Chloridsensoren, holographische Sensoren, Kohlenwasserstoffkondensationspunktanalysatoren, Wasserstoffsensoren, Schwefelwasserstoffsensoren, Infrarotpunktsensoren, ionenselektive Elektroden, nichtdispersive Infrarotsensoren, Mikrowellenchemiesensoren, Stickstoffoxidsensoren, Olfaktometer, Optroden, Sauerstoffsensoren, Ozonüberewachungsgeräte, Pellistoren, pH-Glaselektroden, potentiometrische Sensoren, Redoxelektroden, Rauchmelder und Zinkoxidnanostabsensoren.Examples of chemical sensors include alcohol testers, carbon dioxide sensors, carbon monoxide detectors, catalytic pearl sensors, chemical field effect transistors, chemical resistors, electrochemical gas sensors, electronic noses, electrolyte isolator semiconductor sensors, fluorescent chloride sensors, holographic sensors, hydrocarbon condensation point analyzers, infrared sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, hydrogen sensors, non-dispersive infrared sensors, microwave chemistry sensors, nitrogen oxide sensors, olfactometers, optrodes, oxygen sensors, ozone monitoring devices, pellistors, pH glass electrodes, potentiometric sensors, redox electrodes, smoke detectors and zinc oxide nanorod sensors.

Beispiele für elektromagnetische Sensoren beinhalten Stromsensoren, Daly-Detektoren, Elektroskope, Elektronenvervielfacher, Faraday-Becher, Galvanometer, Hall-Effekt-Sensoren, Hall-Sonden, Magnetanomaliedetektoren, Magnetometer, Magnetowiderstände, MEMS-Magnetfeldsensoren, Metalldetektoren, planare Hall-Sensoren, Funkrichtungssucher und Spannungsdetektoren.Examples of electromagnetic sensors include current sensors, daly detectors, electroscopes, electron multipliers, Faraday beakers, galvanometers, Hall effect sensors, Hall probes, magnetic anomaly detectors, magnetometers, magnetoresistors, MEMS magnetic field sensors, metal detectors, planar Hall sensors, radio direction finders and Voltage detectors.

Beispiele für Umgebungssensoren umfassen Aktinometer, Luftverschmutzungssensoren, Bettnässealarme, Wolkenhöhenmesser, Tauwarnungen, elektrochemische Gassensoren, Fischzähler, Frequenzdomänensensoren, Gasdetektoren, Hook-Evaporiemter, Humistoren, Hygrometer, Blattsensoren, Lysimeter, Pyranometer, Pyrgeometer, Psychrometer, Regenmesser, Regensensoren, Seismometer, SNOTEL-Sensoren, Schneemessgeräte, Bodenfeuchtigkeitssensoren, Strömungsmessgeräte und Gezeitenmessgeräte. Beispiele für Durchfluss- und Fluidgeschwindigkeitssensoren beinhalten Luftdurchflussmesser, Anemometer, Durchflusssensoren, Gaszähler, Massendurchflusssensoren und Wasserzähler. Examples of environmental sensors include actinometers, air pollution sensors, bed wetness alarms, cloud altimeters, thaw warnings, electrochemical gas sensors, fish counters, frequency domain sensors, gas detectors, hook evaporators, humistors, hygrometers, leaf sensors, lysimeters, pyranometers, pyrgeometers, psychometers, rain sensors, OTEL sensors, rain sensors , Snow meters, soil moisture sensors, flow meters and tide meters. Examples of flow and fluid velocity sensors include air flow meters, anemometers, flow sensors, gas meters, mass flow sensors, and water meters.

Beispiele für Strahlungs- und Partikelsensoren beinhalten Wolkenkammern, Geigerzähler, Geiger-Müller-Röhren, Ionisationskammern, Neutronendetektoren, Proportionalzähler, Szintillationszähler, Halbleiterdetektoren und Thermolumineszenzdosimeter. Beispiele für Navigationsinstrumente beinhalten Luftgeschwindigkeitsanzeigen, Höhenmesser, Lageindikatoren, Tiefenmesser, Fluxgate-Kompasse, Gyroskope, Trägheitsnavigationssysteme, Trägheitsreferenzeinheiten, Magnetkompasse, MHD-Sensoren, Ringlasergyroskope, Wendezeiger, Tialinx-Sensoren, Variometer und Vibrationsstrukturgyroskope und Gierratensensoren.Examples of radiation and particle sensors include cloud chambers, Geiger counters, Geiger-Müller tubes, ionization chambers, neutron detectors, proportional counters, scintillation counters, semiconductor detectors and thermoluminescence dosimeters. Examples of navigation instruments include air speed indicators, altimeters, position indicators, depth gauges, fluxgate compasses, gyroscopes, inertial navigation systems, inertial reference units, magnetic compasses, MHD sensors, ring laser gyroscopes, turning indicators, tialinx sensors, variometers and vibrational structure gyroscopes and yaw rate sensors.

Beispiele für Positions-, Winkel-, Verschiebungs-, Entfernungs-, Geschwindigkeits- und Beschleunigungssensoren umfassen Auxanometer, kapazitive Verschiebungssensoren, kapazitive Erfassungsvorrichtungen, Biegungssensoren, Freifallsensoren, Gravimeter, Kreiselsensoren, Aufprallsensoren, Neigungsmesser, piezoelektrische Sensoren mit integrierten Schaltkreisen, Laserentfernungsmesser, Laseroberflächengeschwindigkeitsmesser, LIDAR-Sensoren, Linearmessgeber, lineare variable Differentialtransformatoren (LVDT), flüssige kapazitive Neigungsmesser, Hodometer, fotoelektrische Sensoren, piezoelektrische Beschleunigungsmesser, Positionssensoren, positionsempfindliche Vorrichtungen, Winkelgeschwindigkeitssensoren, Drehgeber, rotierende variable Differentialtransformatoren, Drehmelder, Stoßdetektoren, Stoßdatenlogger, Neigungssensoren, Tachometer, Ultraschalldickenmessgeräte, Sensoren mit variabler Reluktanz und Geschwindigkeitsempfänger.Examples of position, angle, displacement, distance, speed and acceleration sensors include auxanometers, capacitive displacement sensors, capacitive sensing devices, bend sensors, free fall sensors, gravimeters, gyroscopic sensors, impact sensors, inclinometers, piezoelectric sensors with integrated circuits, laser rangefinders, laser ID AR speed -Sensors, linear encoders, linear variable differential transformers (LVDT), liquid capacitive inclinometers, hodometers, photoelectric sensors, piezoelectric accelerometers, position sensors, position-sensitive devices, angular velocity sensors, rotary encoders, rotating variable differential transformers, rotary detectors, shock detectors, shock data loggers, inclination sensors, tachometers, tachometers with variable reluctance and speed receiver.

Beispiele für optische Sensoren, Licht-, Bildgebungs- und Photonensensoren beinhalten Charge Coupled Devices, CMOS-Sensoren, Farbmessgeräte, Kontaktbildsensoren, elektrooptische Sensoren, Flammenmelder, Infrarotsensoren, kinetische Induktivitätsdetektoren, die als Lichtsensoren geführt werden, lichtadressierbare potentiometrische Sensoren, Nichols-Radiometer, faseroptische Sensoren, optische Positionssensoren, Thermosäulenlasersensoren, Fotodetektoren, Fotodioden, Fotovervielfacherröhren, Fototransistoren, fotoelektrische Sensoren, Fotoionisationsdetektoren, Fotovervielfacher, Fotowiderstände, Fotoschalter, Fotoröhren, Szintillometer, Shack-Hartmann-Sensoren, Einzelphotonen-Lawinendioden, supraleitende Nanodrahteinzelphotonendetektoren, Übergangsrandsensoren, Photonenzähler für sichtbares Licht und Wellenfrontsensoren.Examples of optical sensors, light, imaging and photon sensors include charge coupled devices, CMOS sensors, color measurement devices, contact image sensors, electro-optical sensors, flame detectors, infrared sensors, kinetic inductance detectors, which are led as light sensors, light-addressable potentiometric sensors, Nichols radiometers, fiber optic sensors Sensors, optical position sensors, thermopile laser sensors, photodetectors, photodiodes, photomultiplier tubes, phototransistors, photoelectric sensors, photo ionization detectors, photomultipliers, photoresistors, photo switches, phototubes, scintillometers, Shack-Hartmann sensors, single-photon avalanche diode detectors, photodiode sensors, transition diodes, photodiode detectors, supervisory diode detectors, photodiode detectors, transitional diode detectors, photodiode detectors, transitional diode detectors, photodiode detectors, transitional diode detectors, photodiode detectors, transitional diode detectors, photodiode detectors, transitional diode detectors, photodiode detectors, transitional diode detectors, photodiode detectors, transponder diodes, supernatant detectors, photodiode transmitters, photodiode detectors, transponder sensors, photodiode detectors, transponder diodes, supernatant detectors, photodiode detectors, photodiode detectors, photodiode detectors, photodiode transmitters, transponder sensors for transponders Wavefront sensors.

Beispiele für Drucksensoren beinhalten Barographen, Barometer, Boost-Messgeräte, Bourdon-Messgeräte, Heißfilament-Ionisationsmessgeräte, Ionisationsmessgeräte, McLeod-Messgeräte, oszillierende U-Rohre, Permanentbohrlochmessgeräte, Piezometer, Pirani-Messgeräte, Drucksensoren, Druckmessgeräte, taktile Sensoren und Zeitdruckmessgeräte. Beispiele für Kraft-, Dichte- und Pegelsensoren beinhalten Bhangmeter, Hydrometer, Kraftmesser und Kraftsensoren, Pegelsensoren, Wägezellen, magnetische Pegelmesser, Kerndichtemessgeräte, piezokapazitive Drucksensoren, piezoelektrische Sensoren, Dehnungsmessgeräte, Drehmomentsensoren und Viskosimeter.Examples of pressure sensors include barographs, barometers, boost gauges, Bourdon gauges, hot filament ionization gauges, ionization gauges, McLeod gauges, oscillating U-tubes, permanent borehole gauges, piezometers, Pirani gauges, pressure sensors, pressure gauges, tactile sensors and time pressure gauges. Examples of force, density and level sensors include hang meters, hydrometers, force meters and force sensors, level sensors, load cells, magnetic level meters, core density meters, piezocapacitive pressure sensors, piezoelectric sensors, strain gauges, torque sensors and viscometers.

Beispiele für thermische Sensoren, Wärme- und Temperatursensoren beinhalten Bolometer, Bimetallstreifen, Kalorimeter, Abgastemperaturmessgeräte, Flammenmelder, Gardon-Messgeräte, Golay-Zellen, Wärmeflusssensoren, Infrarotthermometer, Mikrobolometer, Mikrowellenradiometer, Netzradiometer, Quarzthermometer, Widerstandsthermometer, Siliciumbandlückentemperatursensoren, Spezialsensormikrowelle/-bildgeber, Temperaturmesser, Thermistoren, Thermoelemente, Thermometer und Pyrometer. Beispiele für Näherungs- und Anwesenheitssensoren beinhalten Alarmsensoren, Doppler-Radargeräte, Bewegungsmelder, Anwesenheitssensoren, Näherungssensoren, passive Infrarotsensoren, Reed-Schalter, Balkensucher, Triangulationssensoren, Berührungsschalter und Datenhandschuhe.Examples of thermal sensors, heat and temperature sensors include bolometers, bimetallic strips, calorimeters, exhaust gas temperature measuring devices, flame detectors, Gardon measuring devices, Golay cells, heat flow sensors, infrared thermometers, microbolometers, microwave radiometers, network radiometers, quartz thermometers, resistance thermometers, silicon band gap sensor temperature sensors, temperature sensors, silicon band gap sensor temperature sensors , Thermistors, thermocouples, thermometers and pyrometers. Examples of proximity and presence sensors include alarm sensors, Doppler radars, motion detectors, presence sensors, proximity sensors, passive infrared sensors, reed switches, bar detectors, triangulation sensors, touch switches and data gloves.

Bei manchen Ausführungsformen senden verschiedene Sensoren Messungen oder andere Daten unter Verwendung einer Vielzahl unterschiedlicher Kommunikationsprotokolle oder Datenformate an die Gebäudeverwaltungsplattform 102. Die Gebäudeverwaltungsplattform 102 kann dazu konfiguriert sein, in einem beliebigen Protokoll oder Datenformat empfangene Sensordaten aufzunehmen und die eingehenden Sensordaten in ein gemeinsames Datenformat zu übersetzen. Die Gebäudeverwaltungsplattform 102 kann für jeden Sensor, der mit der Gebäudeverwaltungsplattform 102 kommuniziert, eine intelligente Sensorobjektentität erzeugen. Jede intelligente Sensorobjektentität kann ein oder mehrere statische Attribute, die den entsprechenden Sensor beschreiben, ein oder mehrere dynamische Attribute, die die zuletzt von dem Sensor gesammelten Werte angeben, und/oder ein oder mehrere relationale Attribute beinhalten, die die intelligenten Sensorobjektentitäten miteinander und/oder anderen Arten von intelligenten Entitäten (z. B. Bereichsentitäten, Systementitäten, Datenentitäten usw.) in Beziehung setzen.In some embodiments, different sensors send measurements or other data to the building management platform using a variety of different communication protocols or data formats 102 . The building management platform 102 can be configured to record sensor data received in any protocol or data format and to translate the incoming sensor data into a common data format. The building management platform 102 can be used for any sensor connected to the building management platform 102 communicates, create an intelligent sensor object entity. Each intelligent sensor object entity can have one or more static attributes that represent the describe the corresponding sensor, one or more dynamic attributes that indicate the last values collected by the sensor, and / or contain one or more relational attributes that combine the intelligent sensor object entities with one another and / or other types of intelligent entities (e.g. area entities, System entities, data entities, etc.).

Bei manchen Ausführungsformen speichert die Gebäudeverwaltungsplattform 102 Sensordaten unter Verwendung von Datenentitäten. Jede Dateneinheit kann einem speziellen Sensor entsprechen und kann eine Zeitreihe von Datenwerten enthalten, die von dem entsprechenden Sensor empfangen werden. Bei manchen Ausführungsformen speichert die Gebäudeverwaltungsplattform 102 relationale Objekte, die Beziehungen zwischen Sensorobjektentitäten und der entsprechenden Datenentität definieren. Beispielsweise kann jedes relationale Objekt eine spezielle Sensorobjektentität, eine spezielle Datenentität identifizieren und kann eine Verknüpfung zwischen solchen Entitäten definieren.In some embodiments, the building management platform stores 102 Sensor data using data entities. Each data unit can correspond to a specific sensor and can contain a time series of data values which are received by the corresponding sensor. In some embodiments, the building management platform stores 102 relational objects that define relationships between sensor object entities and the corresponding data entity. For example, each relational object can identify a specific sensor object entity, a specific data entity, and can define a link between such entities.

Die Gebäudeverwaltungsplattform 102 kann Daten von einer Vielzahl externer Systeme oder Dienste sammeln. Beispielsweise wird gezeigt, dass die Gebäudeverwaltungsplattform 102 Wetterdaten von einem Wetterdienst 152, Nachrichtendaten von einem Nachrichtendienst 154, Dokumente und andere dokumentbezogene Daten von einem Dokumentendienst 156 und Medien (z. B. Video, Bilder, Audio, soziale Medien usw.) von einem Mediendienst 158 empfängt. Bei manchen Ausführungsformen erzeugt die Gebäudeverwaltungsplattform 102 Daten intern. Beispielsweise kann die Gebäudeverwaltungsplattform 102 ein Webwerbesystem, ein Webseitenverkehrsüberwachungssystem, ein Webverkaufssystem oder andere Arten von Plattformdiensten beinhalten, die Daten erzeugen. Die von der Gebäudeverwaltungsplattform 102 erzeugten Daten können zusammen mit den von anderen Datenquellen empfangenen Daten gesammelt, gespeichert und verarbeitet werden. Die Gebäudeverwaltungsplattform 102 kann Daten direkt von externen Systemen oder Vorrichtungen oder über ein Netz 104 (z. B. ein WAN, das Internet, ein Mobilfunknetz usw.) sammeln. Die Gebäudeverwaltungsplattform 102 kann gesammelte Daten verarbeiten und transformieren, um Zeitreihendaten und Entitätsdaten zu erzeugen. Einige Merkmale der Gebäudeverwaltungsplattform 102 sind nachstehend ausführlicher beschrieben.The building management platform 102 can collect data from a variety of external systems or services. For example, it is shown that the building management platform 102 Weather data from a weather service 152 , News data from a news service 154 , Documents and other document-related data from a document service 156 and media (e.g., video, images, audio, social media, etc.) from a media service 158 receives. In some embodiments, the building management platform creates 102 Internal data. For example, the building management platform 102 include a web advertising system, website traffic monitoring system, web sales system, or other types of platform services that generate data. From the building management platform 102 generated data can be collected, stored and processed together with the data received from other data sources. The building management platform 102 can transfer data directly from external systems or devices or over a network 104 (e.g., a WAN, the Internet, a cellular network, etc.). The building management platform 102 can process and transform collected data to generate time series data and entity data. Some features of the building management platform 102 are described in more detail below.

Gebäude-HVAC-Systeme und GebäudeverwaltungssystemeBuilding HVAC systems and building management systems

Nun unter Bezugnahme auf 2-5 sind einige Gebäudeverwaltungssysteme (BMS) und HVAC-Systeme gemäß einigen Ausführungsformen gezeigt, in denen die Systeme und Verfahren der vorliegenden Offenbarung implementiert werden können. In einer kurzen Übersicht zeigt 2 zeigt ein Gebäude 10, das beispielsweise mit einem HVAC-System 200 ausgestattet ist. Das Gebäude 10 kann ein beliebiges der Gebäude 210, 220, 230 und 140 sein, wie in 1 gezeigt, oder kann ein beliebiges anderes geeignetes Gebäude sein, das kommunikativ mit der Gebäudeverwaltungsplattform 202 verbunden ist. 3 ist ein Blockdiagramm eines Wasserseitensystems 300, das zur Versorgung des Gebäudes 10 verwendet werden kann. 4 ist ein Blockdiagramm eines Luftseitensystems 400, das zur Versorgung des Gebäudes 10 verwendet werden kann. 5 ist ein Blockdiagramm eines Gebäudeverwaltungssystems (BMS), das zur Überwachung und Steuerung des Gebäudes 10 verwendet werden kann.Now referring to 2-5 Some building management systems (BMS) and HVAC systems are shown in accordance with some embodiments in which the systems and methods of the present disclosure can be implemented. In a short overview shows 2nd shows a building 10th that, for example, with an HVAC system 200 Is provided. The building 10th can be any of the buildings 210 , 220 , 230 and 140 be like in 1 shown, or can be any other suitable building that communicates with the building management platform 202 connected is. 3rd Figure 3 is a block diagram of a water side system 300 that is used to supply the building 10th can be used. 4th Figure 3 is a block diagram of an airside system 400 that is used to supply the building 10th can be used. 5 is a block diagram of a building management system (BMS) used to monitor and control the building 10th can be used.

Gebäude- und HVAC-SystemBuilding and HVAC system

Unter besonderer Bezugnahme auf 2 ist eine perspektivische Ansicht eines intelligenten Gebäudes 10 gezeigt. Das Gebäude 10 wird durch ein BMS versorgt. Ein BMS ist allgemein ein System aus Vorrichtungen, die zum Steuern, Überwachen und Verwalten von Ausrüstung in einem Gebäude oder Gebäudebereich oder um dieses/diesen herum konfiguriert sind. Ein BMS kann zum Beispiel ein HVAC-System, ein Sicherheitssystem, ein Beleuchtungssystem, ein Feueralarmsystem oder ein beliebiges anderes System, das zum Verwalten von Gebäudefunktionen oder -Vorrichtungen in der Lage ist, oder eine beliebige Kombination davon beinhalten. Ferner kann jedes der Systeme mehrere Sensoren und anderen Vorrichtungen (z. B. IoT-Vorrichtungen) für den ordnungsgemäßen Betrieb, die Wartung, die Überwachung und dergleichen der jeweiligen Systeme beinhalten.With special reference to 2nd is a perspective view of an intelligent building 10th shown. The building 10th is supplied by a BMS. A BMS is generally a system of devices configured to control, monitor and manage equipment in or around a building or building area. For example, a BMS may include an HVAC system, a security system, a lighting system, a fire alarm system, or any other system capable of managing building functions or devices, or any combination thereof. Furthermore, each of the systems may include multiple sensors and other devices (e.g., IoT devices) for the proper operation, maintenance, monitoring, and the like of the respective systems.

Das BMS, das das Gebäude 10 versorgt, beinhaltet ein HVAC-System 200. Das HVAC-System 200 kann mehrere HVAC-Vorrichtungen (z. B. Heizungen, Kältemaschinen, Lüftungseinheiten, Pumpen, Ventilatoren, Wärmeenergiespeicher usw.) beinhalten, die zum Bereitstellen von Heizung, Kühlung, Belüftung oder anderen Diensten für Gebäude 10 konfiguriert sind. Beispielsweise wird gezeigt, dass das HVAC-System 200 ein Wasserseitensystem 220 und ein Luftseitensystem 230 beinhaltet. Das Wasserseitensystem 220 kann ein erwärmtes oder gekühltes Fluid an die Lüftungseinheit des Luftseitensystems 230 liefern. Das Luftseitensystem 230 kann das erwärmte oder gekühlte Fluid verwenden, um einen Luftstrom zu erwärmen oder zu kühlen, der an das Gebäude 10 geliefert wird. Ein beispielhaftes Wasserseitensystem und ein Luftseitensystem, die in dem HVAC-System 200 verwendet werden können, werden unter Bezugnahme auf 3 und 4 ausführlicher beschrieben.The BMS that the building 10th supplied, includes an HVAC system 200 . The HVAC system 200 may include multiple HVAC devices (e.g., heaters, chillers, ventilation units, pumps, fans, thermal energy storage, etc.) that provide heating, cooling, ventilation, or other services to buildings 10th are configured. For example, the HVAC system is shown 200 a water side system 220 and an air side system 230 includes. The water side system 220 can be a heated or cooled fluid to the ventilation unit of the air side system 230 deliver. The airside system 230 can use the heated or cooled fluid to heat or cool an air stream, of the building 10th is delivered. An exemplary water side system and an air side system included in the HVAC system 200 can be used with reference to 3rd and 4th described in more detail.

Es ist gezeigt, dass das HVAC-System 200 einen Kühler 202, einen Heizungskessel 204 und eine Dach-Lüftungseinheit (AHU) 206 beinhaltet. Das Wasserseitensystem 220 kann den Heizkessel 204 und den Kühler 202 verwenden, um ein Arbeitsfluid (z. B. Wasser, Glykol usw.) zu erwärmen oder zu kühlen, und kann das Arbeitsfluid zur AHU 206 zirkulieren lassen. Bei verschiedenen Ausführungsformen können sich die HVAC-Vorrichtungen des Wasserseitensystems 220 in dem oder um das Gebäude 10 herum (wie in 2 gezeigt) oder an einem externen Ort, wie etwa einer Zentralanlage (z. B. einer Kälteanlage, einer Dampfanlage, einer Heizanlage usw.) befinden. Das Arbeitsfluid kann abhängig davon, ob in dem Gebäude 10 Heizen oder Kühlen erforderlich ist, in dem Heizkessel 204 erwärmt oder in dem Kühler 202 gekühlt werden. Der Heizkessel 204 kann dem zirkulierenden Fluid Wärme hinzufügen, beispielsweise durch Verbrennen eines brennbaren Materials (z. B. Erdgases) oder durch Verwenden eines elektrischen Heizelements. Der Kühler 202 kann das zirkulierte Fluid in eine Wärmeaustauschbeziehung mit einem anderen Fluid (z. B. einem Kühlmittel) in einem Wärmetauscher (z. B. einem Verdampfer) setzen, um Wärme aus dem zirkulierenden Fluid zu absorbieren. Das Arbeitsfluid von dem Kühler 202 und/oder Heizkessel 204 kann über eine Rohrleitung 208 zur AHU 206 transportiert werden.It is shown that the HVAC system 200 a cooler 202 , a boiler 204 and a roof ventilation unit (AHU) 206 includes. The water side system 220 can the boiler 204 and the cooler 202 can be used to heat or cool a working fluid (e.g. water, glycol, etc.) and can transfer the working fluid to the AHU 206 circulate. In various embodiments, the HVAC devices of the water side system 220 in or around the building 10th around (as in 2nd shown) or in an external location such as a central system (e.g. a refrigeration system, a steam system, a heating system, etc.). The working fluid can vary depending on whether in the building 10th Heating or cooling is required in the boiler 204 heated or in the cooler 202 be cooled. The boiler 204 can add heat to the circulating fluid, such as by burning a combustible material (e.g., natural gas) or using an electrical heating element. The cooler 202 may place the circulated fluid in a heat exchange relationship with another fluid (e.g., a coolant) in a heat exchanger (e.g., an evaporator) to absorb heat from the circulating fluid. The working fluid from the cooler 202 and / or boiler 204 can via a pipeline 208 to the AHU 206 be transported.

Die AHU 206 kann das Arbeitsfluid in eine Wärmeaustauschbeziehung mit einem Luftstrom setzen, der durch das AHU 206 hindurchgeht (z. B. über eine oder mehrere Stufen von Kühlschlangen und/oder Heizschlangen). Der Luftstrom kann beispielsweise Außenluft, Rückluft aus innerhalb des Gebäudes 10 oder eine Kombination aus beidem sein. Die AHU 206 kann Wärme zwischen dem Luftstrom und dem Arbeitsfluid transferieren, um eine Heizung oder Kühlung für den Luftstrom bereitzustellen. Beispielsweise kann die AHU 206 einen oder mehrere Ventilatoren oder ein oder mehrere Gebläse beinhalten, die dazu konfiguriert sind, den Luftstrom über oder durch einen Wärmetauscher zu leiten, der das Arbeitsfluid enthält. Das Arbeitsfluid kann dann über die Rohrleitung 210 zu dem Kühler 202 oder dem Heizkessel 204 zurückkehren.The AHU 206 can place the working fluid in a heat exchange relationship with an air flow through the AHU 206 passes through (e.g. over one or more stages of cooling coils and / or heating coils). The air flow can, for example, outside air, return air from inside the building 10th or a combination of both. The AHU 206 can transfer heat between the airflow and working fluid to provide heating or cooling for the airflow. For example, the AHU 206 include one or more fans or blowers configured to direct the airflow over or through a heat exchanger that contains the working fluid. The working fluid can then be piped 210 to the cooler 202 or the boiler 204 to return.

Das Luftseitensystem 230 kann den durch die AHU 206 bereitgestellten Luftstrom (d. h. den Versorgungsstrom) über Luftversorgungskanäle 212 an das Gebäude 10 liefern und kann über Luftrückführungskanäle 214 Rückluft von dem Gebäude 10 zu der AHU 206 liefern. Bei manchen Ausführungsformen beinhaltet das Luftseitensystem 230 mehrere VAV-Einheiten 216 (VAV: Variable Air Volume - variables Luftvolumen). Beispielsweise ist gezeigt, dass das Luftseitensystem 230 eine separate VAV-Einheit 216 auf jeder Etage oder Zone des Gebäudes 10 beinhaltet. Die VAV-Einheiten 216 können Luftklappen oder andere Durchflusssteuerelemente enthalten, die dazu betrieben werden können, eine Menge des Versorgungsstroms zu steuern, der an einzelne Zonen des Gebäudes 10 geliefert wird. Bei anderen Ausführungsformen liefert das Luftseitensystem 230 den Versorgungsluftstrom in eine oder mehrere Zonen des Gebäudes 10 (z. B. über Versorgungskanäle 212), ohne Zwischen-VAV-Einheiten 216 oder andere Strömungssteuerelemente zu verwenden. Die AHU 206 kann verschiedene Sensoren (z. B. Temperatursensoren, Drucksensoren usw.) enthalten, die zum Messen von Attributen des Versorgungsluftstroms konfiguriert sind. Die AHU 206 kann Eingaben von Sensoren empfangen, die sich innerhalb der AHU 206 und/oder innerhalb der Gebäudezone befinden, und kann die Durchflussrate, Temperatur oder andere Attribute des Versorgungsluftstroms durch die AHU 206 anpassen, um Sollwertbedingungen für die Gebäudezone zu erreichen.The airside system 230 can through the AHU 206 provided air flow (ie the supply flow) via air supply ducts 212 to the building 10th deliver and can via air return ducts 214 Return air from the building 10th to the AHU 206 deliver. In some embodiments, the air side system includes 230 several VAV units 216 (VAV: Variable Air Volume - variable air volume). For example, it is shown that the air side system 230 a separate VAV unit 216 on every floor or zone of the building 10th includes. The VAV units 216 can include air dampers or other flow control elements that can be operated to control a quantity of the supply current that is delivered to individual zones of the building 10th is delivered. In other embodiments, the air side system provides 230 the supply air flow into one or more zones of the building 10th (e.g. via supply channels 212 ), without intermediate VAV units 216 or use other flow controls. The AHU 206 may include various sensors (e.g., temperature sensors, pressure sensors, etc.) that are configured to measure attributes of the supply air flow. The AHU 206 can receive inputs from sensors located within the AHU 206 and / or located within the building zone, and may be the flow rate, temperature, or other attributes of the supply air flow through the AHU 206 adjust to achieve setpoint conditions for the building zone.

WasserseitensystemWater side system

Nun unter Bezugnahme auf 3 ist ein Blockdiagramm eines Wasserseitensystems 300 gemäß manchen Ausführungsformen gezeigt. In verschiedenen Ausführungsformen kann das Wasserseitensystem 300 das Wasserseitensystem 220 in dem HVAC-System 200 ergänzen oder ersetzen oder kann getrennt von dem HVAC-System 200 implementiert werden. Bei Implementierung in dem HVAC-System 200 kann das Wasserseitensystem 300 eine Teilmenge der HVAC-Vorrichtungen in dem HVAC-System 200 (z. B. den Heizkessel 204, Kühler 202, Pumpen, Ventile usw.) enthalten und kann dazu wirken, der AHU ein erwärmtes oder gekühltes Fluid 206 zuzuführen. Die HVAC-Vorrichtungen des Wasserseitensystems 300 können sich innerhalb des Gebäudes 10 (z. B. als Komponenten des Wassersystems 220) oder an einem externen Ort, wie etwa einer Zentralanlage, befinden.Now referring to 3rd Figure 3 is a block diagram of a water side system 300 shown in accordance with some embodiments. In various embodiments, the water side system 300 the water side system 220 in the HVAC system 200 supplement or replace or can be separate from the HVAC system 200 be implemented. When implemented in the HVAC system 200 can the water side system 300 a subset of the HVAC devices in the HVAC system 200 (e.g. the boiler 204 , Cooler 202 , Pumps, valves, etc.) and can act as a heated or cooled fluid 206 feed. The HVAC devices of the water side system 300 can be inside the building 10th (e.g. as components of the water system 220 ) or in an external location, such as a central system.

In 3 ist das Wasserseitensystem 300 als eine Zentralanlage mit mehreren Unteranlagen 302-312 gezeigt. Es ist gezeigt, dass die Unteranlagen 302-312 eine Heizungsunteranlage 302, eine Wärmerückgewinnungskühlerunteranlage 304, eine Kühlerunteranlage 306, eine Kühlturmunteranlage 308, eine Warmwärmeenergiespeicher(TES)-Unteranlage 310 und eine Kaltwärmeenergiespeicher(TES)-Unteranlage 312 beinhalten. Die Unteranlagen 302-312 verbrauchen Ressourcen (z. B. Wasser, Erdgas, Strom usw.) von Versorgungsunternehmen, um Wärmeenergielasten (z. B. Warmwasser, Kaltwasser, Heizung, Kühlung usw.) eines Gebäudes oder Campus zu versorgen. Beispielsweise kann die Heizungsunteranlage 302 dazu konfiguriert sein, Wasser in einem Warmwasserkreislauf 314 zu erwärmen, der das Warmwasser zwischen der Heizungsunteranlage 302 und dem Gebäude 10 zirkuliert. Die Kühlerunteranlage 306 kann dazu konfiguriert sein, Wasser in einem Kaltwasserkreislauf 316 zu kühlen, der das kalte Wasser zwischen der Kühlerunteranlage 306 und dem Gebäude 10 zirkuliert. Die Wärmerückgewinnungskühlerunteranlage 304 kann dazu konfiguriert sein, Wärme von dem Kaltwasserkreislauf 316 zu dem Warmwasserkreislauf 314 zu transferieren, um eine zusätzliche Heizung für das Warmwasser und eine zusätzliche Kühlung für das Kaltwasser bereitzustellen. Der Kondensatorwasserkreislauf 318 kann Wärme aus dem Kaltwasser in der Kühlerunteranlage 306 absorbieren und die absorbierte Wärme in der Kühlturmunteranlage 308 abweisen oder die absorbierte Wärme zu dem Warmwasserkreislauf 314 transferieren. Die Warm-TES-Unteranlage 310 und die Kalt-TES-Unteranlage 312 können warme bzw. kalte Wärmeenergie zur späteren Verwendung speichern.In 3rd is the water side system 300 as a central system with several sub-systems 302-312 shown. It is shown that the sub-plants 302-312 a heating subsystem 302 , a heat recovery cooler sub-system 304 , a cooler subsystem 306 , a cooling tower sub-system 308 , a warm thermal energy storage (TES) subsystem 310 and a cold heat energy storage (TES) subsystem 312 include. The substations 302-312 consume resources (e.g. water, natural gas, electricity, etc.) from utilities to supply thermal energy loads (e.g., hot water, cold water, heating, cooling, etc.) to a building or campus. For example, the heating subsystem 302 be configured to water in a hot water circuit 314 to heat up the hot water between the heating sub-system 302 and the building 10th circulates. The radiator sub-system 306 can be configured to water in a cold water cycle 316 to cool the cold water between the radiator sub-system 306 and the building 10th circulates. The heat recovery cooler sub-system 304 can be configured to heat from the cold water circuit 316 to the hot water circuit 314 transfer to provide additional heating for the hot water and additional cooling for the cold water. The condenser water circuit 318 can heat from the cold water in the cooler sub-system 306 absorb and the absorbed heat in the cooling tower sub-system 308 reject or the absorbed heat to the hot water circuit 314 transfer. The warm TES sub-system 310 and the cold TES sub-system 312 can store warm or cold heat energy for later use.

Der Warmwasserkreislauf 314 und der Kaltwasserkreislauf 316 können das erwärmte und/oder gekühlte Wasser an Belüftungsgeräte auf dem Dach des Gebäudes 10 (z. B. die AHU 206) oder an einzelne Stockwerke oder Zonen des Gebäudes 10 (z. B. VAV-Einheiten 216) liefern. Die Belüftungsgeräte drücken Luft an Wärmetauschern (z. B. Heizschlangen oder Kühlschlangen) vorbei, durch die das Wasser fließt, um die Luft zu erwärmen oder zu kühlen. Die erwärmte oder gekühlte Luft kann an einzelne Zonen des Gebäudes 10 geliefert werden, um die Wärmeenergielasten des Gebäudes 10 zu versorgen. Das Wasser kehrt dann zu den Unteranlagen 302-312 zurück, um weiter erwärmt oder gekühlt zu werden.The hot water circuit 314 and the cold water circuit 316 the heated and / or cooled water can be ventilated on the roof of the building 10th (e.g. the AHU 206 ) or to individual floors or zones of the building 10th (e.g. VAV units 216 ) deliver. The ventilation devices push air past heat exchangers (e.g. heating coils or cooling coils) through which the water flows in order to heat or cool the air. The heated or cooled air can go to individual zones of the building 10th to be delivered to the thermal energy loads of the building 10th to supply. The water then returns to the sub-systems 302-312 back to be further heated or cooled.

Obwohl die Unteranlagen 302-312 als Heizungs- und Kühlwasser für die Zirkulation zu einem Gebäude gezeigt und beschrieben werden, versteht es sich, dass eine beliebige andere Art von Arbeitsfluid (z. B. Glykol, CO2 usw.) anstelle von oder zusätzlich zu Wasser verwendet werden kann, um Wärmeenergielasten zu versorgen. Bei anderen Ausführungsformen können die Unteranlagen 302-312 eine Heizung und/oder Kühlung direkt an das Gebäude oder den Campus liefern, ohne dass ein Zwischenwärmetransferfluid erforderlich ist. Diese und andere Variationen des Wasserseitensystems 300 liegen innerhalb der Lehren der vorliegenden Offenbarung.Although the substations 302-312 As shown and described as heating and cooling water for circulation to a building, it is understood that any other type of working fluid (e.g., glycol, CO2, etc.) can be used in place of or in addition to water to handle thermal energy loads to supply. In other embodiments, the substations 302-312 provide heating and / or cooling directly to the building or campus without the need for an intermediate heat transfer fluid. These and other variations of the water side system 300 are within the teachings of the present disclosure.

Jede der Unteranlagen 302-312 kann eine Vielzahl von Ausrüstungen beinhalten, die dazu konfiguriert sind, die Funktionen der Unteranlage zu fördern. Beispielsweise ist gezeigt, dass die Heizungsunteranlage 302 mehrere Heizelemente 320 (z. B. Heizkessel, elektrische Heizungen usw.) enthält, die dazu konfiguriert sind, dem Warmwasser in dem Warmwasserkreislauf 314 Wärme hinzuzufügen. Es ist auch gezeigt, dass die Heizungsunteranlage 302 einige Pumpen 322 und 324 beinhaltet, die dazu konfiguriert sind, das Warmwasser in dem Warmwasserkreislauf 314 zu zirkulieren und die Durchflussrate des Warmwassers durch einzelne Heizelemente 320 zu steuern. Es ist gezeigt, dass die Kühlerunteranlage 306 mehrere Kühler 332 enthält, die dazu konfiguriert sind, dem kalten Wasser in dem Kaltwasserkreislauf 316 Wärme zu entziehen. Es ist auch gezeigt, dass die Kühlerunteranlage 306 einige Pumpen 334 und 336 beinhaltet, die dazu konfiguriert sind, das Kaltwasser in dem Kaltwasserkreislauf 316 zu zirkulieren und die Durchflussrate des Kaltwassers durch einzelne Kühler 332 zu steuern.Each of the sub-systems 302-312 may include a variety of equipment configured to promote the functions of the substation. For example, it is shown that the heating subsystem 302 several heating elements 320 (e.g. boilers, electric heaters, etc.) that are configured to the hot water in the hot water circuit 314 Add heat. It is also shown that the heating sub-system 302 some pumps 322 and 324 includes, which are configured to the hot water in the hot water circuit 314 to circulate and the flow rate of hot water through individual heating elements 320 to control. It is shown that the radiator sub-system 306 several coolers 332 contains, which are configured to the cold water in the cold water circuit 316 To withdraw heat. It is also shown that the radiator sub-system 306 some pumps 334 and 336 includes, which are configured to the cold water in the cold water circuit 316 to circulate and the flow rate of cold water through individual coolers 332 to control.

Es ist gezeigt, dass die Wärmerückgewinnungskühlerunteranlage 304 mehrere Wärmerückgewinnungswärmetauscher 326 (z. B. Kälteerzeugungskreisläufe) enthält, die dazu konfiguriert sind, Wärme von dem Kaltwasserkreislauf 316 zu dem Warmwasserkreislauf 314 zu transferieren. Es ist auch gezeigt, dass die Wärmerückgewinnungskühleranlage 304 einige Pumpen 328 und 330 beinhaltet, die dazu konfiguriert sind, das Warmwasser und/oder Kaltwasser durch die Wärmerückgewinnungswärmetauscher 326 zu zirkulieren und die Durchflussrate des Wassers durch einzelne Wärmerückgewinnungswärmetauscher 326 zu steuern. Es ist gezeigt, dass die Kühlturmunteranlage 308 mehrere Kühltürme 338 enthält, die dazu konfiguriert sind, dem Kondensatorwasser in dem Kondensatorwasserkreislauf 318 Wärme zu entziehen. Es ist auch gezeigt, dass die Kühlturmunteranlage 308 einige Pumpen 340 beinhaltet, die dazu konfiguriert sind, das Kondensatorwasser in dem Kondensatorwasserkreislauf 318 zu zirkulieren und die Durchflussrate des Kondensatorwassers durch einzelne Kühltürme 338 zu steuern.It is shown that the heat recovery cooler sub-system 304 several heat recovery heat exchangers 326 (e.g., refrigeration circuits) configured to use heat from the cold water circuit 316 to the hot water circuit 314 to transfer. It is also shown that the heat recovery cooler system 304 some pumps 328 and 330 includes, which are configured to the hot water and / or cold water through the heat recovery heat exchanger 326 to circulate and the flow rate of water through individual heat recovery heat exchangers 326 to control. It is shown that the cooling tower sub-system 308 several cooling towers 338 contains, which are configured to the condenser water in the condenser water circuit 318 To withdraw heat. It is also shown that the cooling tower sub-system 308 some pumps 340 includes, which are configured to the condenser water in the condenser water circuit 318 to circulate and the flow rate of the condenser water through individual cooling towers 338 to control.

Es ist gezeigt, dass die Warm-TES-Unteranlage 310 einen Warm-TES-Tank 342 enthält, der dazu konfiguriert ist, das Warmwasser zur späteren Verwendung zu speichern. Die Warm-TES-Unteranlage 310 kann auch eine oder mehrere Pumpen oder Ventile enthalten, die dazu konfiguriert sind, die Durchflussrate des Warmwassers in den Warm-TES-Tank 342 hinein oder aus diesem heraus zu steuern. Es ist gezeigt, dass die Kalt-TES-Unteranlage 312 Kalt-TES-Tanks 344 enthält, die dazu konfiguriert sind, das Kaltwasser zur späteren Verwendung zu speichern. Die Kalt-TES-Unteranlage 312 kann auch eine oder mehrere Pumpen oder Ventile enthalten, die dazu konfiguriert sind, die Durchflussrate des Warmwassers in die Kalt-TES-Tanks 344 hinein oder aus diesen heraus zu steuern.It is shown that the warm TES sub-system 310 a warm TES tank 342 contains, which is configured to store the hot water for later use. The warm TES sub-system 310 can also have one or more pumps or contain valves configured to measure the flow rate of hot water into the warm TES tank 342 to steer in or out of it. It is shown that the cold TES sub-system 312 Cold TES tanks 344 contains, which are configured to store the cold water for later use. The cold TES sub-system 312 may also include one or more pumps or valves configured to measure the flow rate of hot water into the cold TES tanks 344 to steer in or out of them.

Bei manchen Ausführungsformen beinhalten eine oder mehrere der Pumpen in dem Wasserseitensystem 300 (z. B. Pumpen 322, 324, 328, 330, 334, 336 und/oder 340) oder Rohrleitungen in dem Wasserseitensystem 300 ein damit assoziiertes Absperrventil. Absperrventile können mit den Pumpen integriert oder stromaufwärts oder stromabwärts der Pumpen positioniert sein, um die Fluidströme in dem Wasserseitensystem 300 zu steuern. Bei verschiedenen Ausführungsformen kann das Wasserseitensystem 300 basierend auf der speziellen Konfiguration des Wasserseitensystems 300 und den Arten von Lasten, die von dem Wasserseitensystem 300 bedient werden, mehr, weniger oder verschiedene Arten von Vorrichtungen und/oder Unteranlagen beinhalten.In some embodiments, one or more of the pumps include in the water side system 300 (e.g. pumps 322 , 324 , 328 , 330 , 334 , 336 and or 340 ) or pipes in the water side system 300 an associated shut-off valve. Shut-off valves can be integrated with the pumps or positioned upstream or downstream of the pumps to limit the fluid flows in the water side system 300 to control. In various embodiments, the water side system 300 based on the special configuration of the water side system 300 and the types of loads from the water side system 300 be operated, include more, less or different types of devices and / or sub-systems.

LuftseitensystemAirside system

Nun unter Bezugnahme auf 4 ist ein Blockdiagramm eines Luftseitensystems 400 gemäß manchen Ausführungsformen gezeigt. In verschiedenen Ausführungsformen kann das Luftseitensystem 400 das Luftseitensystem 230 in dem HVAC-System 200 ergänzen oder ersetzen oder kann getrennt von dem HVAC-System 200 implementiert werden. Bei Implementierung in dem HVAC-System 200 kann das Luftseitensystem 400 eine Teilmenge der HVAC-Vorrichtungen in dem HVAC-System 200 beinhalten (z. B. AHU 206, VAV-Einheiten 216, Kanäle 212-214, Ventilatoren, Luftklappen usw.) und kann sich in dem oder Gebäude 10 oder um dieses herum befinden. Das Luftseitensystem 400 kann dazu wirken, einen Luftstrom, der an das Gebäude 10 geliefert wird, unter Verwendung eines erwärmten oder gekühlten Fluids, das von dem Wasserseitensystem 300 bereitgestellt wird, zu erwärmen oder zu kühlen.Now referring to 4th Figure 3 is a block diagram of an airside system 400 shown in accordance with some embodiments. In various embodiments, the air side system 400 the airside system 230 in the HVAC system 200 supplement or replace or can be separate from the HVAC system 200 be implemented. When implemented in the HVAC system 200 can the air side system 400 a subset of the HVAC devices in the HVAC system 200 include (e.g. AHU 206 , VAV units 216 , Channels 212-214 , Fans, air dampers etc.) and can be in the or building 10th or around it. The airside system 400 can act to keep an airflow flowing to the building 10th is supplied using a heated or cooled fluid from the water side system 300 is provided to heat or cool.

In 4 ist gezeigt, dass das Luftseitensystem 400 eine Economiser-Lüftungseinheit (AHU) 402 enthält. Economizer-AHUs variieren die Menge an Außenluft und Rückluft, die durch die Lüftungseinheit zum Erwärmen oder Kühlen verwendet wird. Beispielsweise kann die AHU 402 die Rückluft 404 von der Gebäudezone 406 über den Rückluftkanal 408 empfangen und kann Versorgungsluft 410 über den Versorgungsluftkanal 412 an die Gebäudezone 406 liefern. Bei manchen Ausführungsformen ist die AHU 402 eine Dacheinheit, die sich auf dem Dach des Gebäudes 10 befindet (z. B. die AHU 206, wie in 2 gezeigt) oder auf andere Weise positioniert ist, um sowohl die Rückluft 404 als auch die Außenluft 414 zu empfangen. Die AHU 402 kann dazu konfiguriert sein, eine Abluftklappe 416, eine Mischklappe 418 und eine Außenluftklappe 420 zu betreiben, um eine Menge der Außenluft 414 und der Rückluft 404 zu steuern, die kombiniert werden, um die Versorgungsluft 410 zu bilden. Jegliche Rückluft 404, die nicht durch die Mischklappe 418 hindurchgeht, kann von der AHU 402 durch die Abluftklappe 416 als Abluft 422 ausgeblasen werden.In 4th is shown that the air side system 400 an economizer ventilation unit (AHU) 402 contains. Economizer AHUs vary the amount of outside air and return air used by the ventilation unit for heating or cooling. For example, the AHU 402 the return air 404 from the building zone 406 via the return air duct 408 receive and can supply air 410 via the supply air duct 412 to the building zone 406 deliver. In some embodiments, the AHU 402 a roof unit, located on the roof of the building 10th (e.g. the AHU 206 , as in 2nd shown) or otherwise positioned to both the return air 404 as well as the outside air 414 to recieve. The AHU 402 can be configured to an exhaust air damper 416 , a mixing flap 418 and an outside air damper 420 operate to a lot of outside air 414 and the return air 404 to control, which are combined to supply air 410 to build. Any return air 404 that are not through the mixing flap 418 can go through from the AHU 402 through the exhaust air flap 416 as exhaust air 422 be blown out.

Jede der Luftklappen 416-420 kann durch einen Aktor betätigt werden. Beispielsweise kann die Abluftklappe 416 durch den Aktor 424 betrieben werden, kann die Mischklappe 418 durch den Aktor 426 betrieben werden und kann die Außenluftklappe 420 durch den Aktor 428 betrieben werden. Die Aktoren 424-428 können mit einer AHU-Steuerung 430 über einen Kommunikations-Link 432 kommunizieren. Die Aktoren 424-428 können Steuersignale von der AHU-Steuerung 430 empfangen und Rückkopplungssignale an die AHU-Steuerung 430 liefern. Rückkopplungssignale können zum Beispiel eine Angabe einer aktuellen Aktor- oder Luftklappenposition, eine von dem Aktor ausgeübte Drehmoment- oder Kraftmenge, Diagnoseinformationen (z. B. Ergebnisse von Diagnosetests, die durch die Aktoren 424-428 durchgeführt werden), Zustandsinformationen, Inbetriebnahme-Informationen, Konfigurationseinstellungen, Kalibrierungsdaten und/oder andere Arten von Informationen oder Daten, die von den Aktoren 424-428 gesammelt, gespeichert oder verwendet werden können, beinhalten. Die AHU-Steuerung 430 kann eine Economizer-Steuerung sein, die dazu konfiguriert ist, einen oder mehrere Steueralgorithmen (z. B. zustandsbasierte Algorithmen, ESC-Algorithmen (nach Extremen suchende Steuerung), Proportional-Integral(PI)-Steueralgorithmen und Proportional-Integral-Ableitend(PID)-Steueralgorithmen, MPC(Modellvorhersagesteuerung)-Algorithmen, Rückkopplungssteueralgorithmen usw.) zur Steuerung der Aktoren 424-428 zu verwenden.Each of the air flaps 416-420 can be operated by an actuator. For example, the exhaust air flap 416 by the actuator 424 can be operated, the mixing flap 418 by the actuator 426 can be operated and the outside air damper 420 by the actuator 428 operate. The actuators 424-428 can with an AHU control 430 via a communication link 432 communicate. The actuators 424-428 can control signals from the AHU control 430 received and feedback signals to the AHU control 430 deliver. Feedback signals can include, for example, an indication of a current actuator or air damper position, an amount of torque or force exerted by the actuator, diagnostic information (e.g. results of diagnostic tests carried out by the actuators 424-428 be performed), status information, commissioning information, configuration settings, calibration data and / or other types of information or data provided by the actuators 424-428 collected, stored or used. The AHU control 430 can be an economizer controller configured to use one or more control algorithms (e.g., state-based algorithms, ESC algorithms (controller searching for extremes), proportional-integral (PI) control algorithms, and proportional-integral-derivative (PID ) Control algorithms, MPC (model prediction control) algorithms, feedback control algorithms, etc.) for controlling the actuators 424-428 to use.

Immer noch unter Bezugnahme auf 4 ist gezeigt, dass die AHU 304 eine Kühlschlange 434, eine Heizschlange 436 und einen Ventilator 438 enthält, die innerhalb des Versorgungsluftkanals 412 positioniert sind. Der Ventilator 438 kann dazu konfiguriert sein, die Versorgungsluft 410 durch die Kühlschlange 434 und/oder die Heizschlange 436 zu zwingen und die Versorgungsluft 410 an die Gebäudezone 406 zu liefern. Die AHU-Steuerung 430 kann über den Kommunikations-Link 440 mit dem Ventilator 438 kommunizieren, um eine Durchflussrate der Versorgungsluft 410 zu steuern. Bei manchen Ausführungsformen steuert die AHU-Steuerung 430 eine Heiz- oder Kühlmenge, die auf die Versorgungsluft 410 angewandt wird, indem eine Drehzahl des Ventilators 438 moduliert wird.Still referring to 4th is shown that the AHU 304 a cooling coil 434 , a heating coil 436 and a fan 438 contains that within the supply air duct 412 are positioned. The ventilator 438 can be configured to supply air 410 through the cooling coil 434 and / or the heating coil 436 to force and the supply air 410 to the building zone 406 to deliver. The AHU control 430 can be via the communication link 440 with the fan 438 communicate to a flow rate of the supply air 410 to control. In some embodiments, the AHU controller controls 430 a heating or cooling quantity based on the supply air 410 is applied by a fan speed 438 is modulated.

Die Kühlschlange 434 kann ein gekühltes Fluid von dem Wasserseitensystem 300 (z. B. von dem Kaltwasserkreislauf 316) über die Rohrleitung 442 empfangen und das gekühlte Fluid über die Rohrleitung 444 zu dem Wasserseitensystem 300 zurückführen. Ein Ventil 446 kann entlang der Rohrleitung 442 oder der Rohrleitung 444 positioniert sein, um eine Durchflussrate des gekühlten Fluids durch die Kühlschlange 434 zu steuern. Bei manchen Ausführungsformen umfasst die Kühlschlange 434 mehrere Stufen von Kühlschlangen, die unabhängig voneinander aktiviert und deaktiviert werden können (z. B. durch die AHU-Steuerung 430, durch die BMS-Steuerung 466 usw.), um eine auf die Versorgungsluft 410 angewandte Kühlmenge zu modulieren. The cooling coil 434 can be a cooled fluid from the water side system 300 (e.g. from the cold water circuit 316 ) via the pipeline 442 received and the cooled fluid through the pipeline 444 to the water side system 300 lead back. A valve 446 can along the pipeline 442 or the pipeline 444 be positioned at a flow rate of the cooled fluid through the cooling coil 434 to control. In some embodiments, the cooling coil includes 434 Several stages of cooling coils that can be activated and deactivated independently of each other (e.g. by the AHU control 430 , by the BMS control 466 etc.) to one on the supply air 410 to modulate the cooling quantity applied.

Die Heizschlange 436 kann ein erwärmtes Fluid von dem Wasserseitensystem 300 (z. B. von dem Warmwasserkreislauf 314) über die Rohrleitung 448 empfangen und das erwärmte Fluid über die Rohrleitung 450 zu dem Wasserseitensystem 300 zurückführen. Ein Ventil 452 kann entlang der Rohrleitung 448 oder der Rohrleitung 450 positioniert sein, um eine Durchflussrate des erwärmten Fluids durch die Heizschlange 436 zu steuern. Bei manchen Ausführungsformen umfasst die Heizschlange 436 mehrere Stufen von Heizschlangen, die unabhängig voneinander aktiviert und deaktiviert werden können (z. B. durch die AHU-Steuerung 430, durch die BMS-Steuerung 466 usw.), um eine auf die Versorgungsluft 410 angewandte Erwärmungsmenge zu modulieren.The heating coil 436 can be a heated fluid from the water side system 300 (e.g. from the hot water circuit 314 ) via the pipeline 448 received and the heated fluid through the pipeline 450 to the water side system 300 lead back. A valve 452 can along the pipeline 448 or the pipeline 450 be positioned at a flow rate of the heated fluid through the heating coil 436 to control. In some embodiments, the heating coil includes 436 Several levels of heating coils that can be activated and deactivated independently of one another (e.g. by the AHU control 430 , by the BMS control 466 etc.) to one on the supply air 410 modulate the amount of heating applied.

Jedes der Ventile 446 und 452 kann durch einen Aktor gesteuert werden. Beispielsweise kann das Ventil 446 durch den Aktor 454 gesteuert werden und kann das Ventil 452 durch den Aktor 456 gesteuert werden. Die Aktoren 454-456 können mit der AHU-Steuerung 430 über die Kommunikations-Links 458-460 kommunizieren. Die Aktoren 454-456 können Steuersignale von der AHU-Steuerung 430 empfangen und Rückkopplungssignale an die Steuerung 430 liefern. Bei manchen Ausführungsformen empfängt die AHU-Steuerung 430 eine Messung der Versorgungslufttemperatur von einem Temperatursensor 462, der in dem Versorgungsluftkanal 412 positioniert ist (z. B. stromabwärts der Kühlschlange 434 und/oder der Heizschlange 436). Die AHU-Steuerung 430 kann auch eine Messung der Temperatur der Gebäudezone 406 von einem Temperatursensor 464 empfangen, der sich in der Gebäudezone 406 befindet.Each of the valves 446 and 452 can be controlled by an actuator. For example, the valve 446 by the actuator 454 can be controlled and the valve 452 by the actuator 456 to be controlled. The actuators 454-456 can with the AHU control 430 via the communication links 458-460 communicate. The actuators 454-456 can control signals from the AHU control 430 received and feedback signals to the controller 430 deliver. In some embodiments, the AHU controller receives 430 a measurement of the supply air temperature from a temperature sensor 462 that in the supply air duct 412 positioned (e.g. downstream of the cooling coil 434 and / or the heating coil 436 ). The AHU control 430 can also measure the temperature of the building zone 406 from a temperature sensor 464 received who is in the building zone 406 located.

Bei manchen Ausführungsformen betätigt die AHU-Steuerung 430 die Ventile 446 und 452 über Aktoren 454-456, um eine Heiz- oder Kühlmenge zu modulieren, die der Versorgungsluft 410 zugeführt wird (z. B. um eine Sollwerttemperatur für die Versorgungsluft 410 zu erreichen oder um die Temperatur der Versorgungsluft 410 innerhalb eines Sollwerttemperaturbereichs zu halten). Die Positionen der Ventile 446 und 452 beeinflussen die Heiz- oder Kühlmenge, die der Versorgungsluft 410 durch die Kühlschlange 434 oder die Heizschlange 436 zugeführt wird, und können mit der Menge an Energie korrelieren, die zum Erreichen einer gewünschten Versorgungslufttemperatur verbraucht wird. Die AHU 430 kann die Temperatur der Versorgungsluft 410 und/oder der Gebäudezone 406 durch Aktivieren oder Deaktivieren der Spulen 434-436, Anpassen einer Drehzahl des Ventilators 438 oder eine Kombination von beidem steuern.In some embodiments, the AHU control operates 430 the valves 446 and 452 about actuators 454-456 to modulate a heating or cooling quantity that corresponds to the supply air 410 is supplied (e.g. around a setpoint temperature for the supply air 410 to reach or to the temperature of the supply air 410 to keep within a setpoint temperature range). The positions of the valves 446 and 452 influence the amount of heating or cooling that of the supply air 410 through the cooling coil 434 or the heating coil 436 is supplied, and can correlate with the amount of energy used to reach a desired supply air temperature. The AHU 430 can be the temperature of the supply air 410 and / or the building zone 406 by activating or deactivating the coils 434-436 , Adjusting a fan speed 438 or control a combination of both.

Immer noch unter Bezugnahme auf FIG. In 4 ist gezeigt, dass das Luftseitensystem 400 eine Gebäudeverwaltungssystem(BMS)-Steuerung 466 und eine Client-Vorrichtung 468 enthält. Die BMS-Steuerung 466 kann ein oder mehrere Computersysteme (z. B. Server, Überwachungssteuerungen, Subsystemsteuerungen usw.) beinhalten, die als Steuerungen auf Systemebene, Anwendungs- oder Datenserver, Kopfknoten oder Master-Steuerungen für das Luftseitensystem 400, Wassersystem 300, HVAC-System 200 und/oder andere steuerbare Systeme, die das Gebäude 10 versorgen, dienen. Die BMS-Steuerung 466 kann mit mehreren stromabwärts befindlichen Gebäudesystemen oder -subsystemen (z. B. dem HVAC-System 200, einem Sicherheitssystem, einem Beleuchtungssystem, dem Wasserseitensystem 300 usw.) über einen Kommunikations-Link 470 gemäß gleichen oder unterschiedlichen Protokollen (z. B. LON, BACnet usw.) kommunizieren. In verschiedenen Ausführungsformen können die AHU-Steuerung 430 und die BMS-Steuerung 466 getrennt (wie in 4 gezeigt) oder integriert sein. Bei einer integrierten Implementierung kann die AHU-Steuerung 430 ein Softwaremodul sein, das zur Ausführung durch einen Prozessor der BMS-Steuerung 466 konfiguriert ist.Still referring to FIG. In 4th is shown that the air side system 400 a building management system (BMS) controller 466 and a client device 468 contains. The BMS control 466 may include one or more computer systems (e.g., servers, monitoring controls, subsystem controls, etc.) acting as system level controls, application or data servers, head nodes, or master controls for the airside system 400 , Water system 300 , HVAC system 200 and / or other controllable systems that the building 10th provide, serve. The BMS control 466 can be used with several downstream building systems or subsystems (e.g. the HVAC system 200 , a security system, a lighting system, the water side system 300 etc.) via a communication link 470 communicate according to the same or different protocols (e.g. LON, BACnet, etc.). In various embodiments, the AHU control 430 and the BMS control 466 separated (as in 4th shown) or be integrated. With an integrated implementation, the AHU control can 430 be a software module that is to be executed by a processor of the BMS controller 466 is configured.

Bei manchen Ausführungsformen empfängt die AHU-Steuerung 430 Informationen von der BMS-Steuerung 466 (z. B. Befehle, Sollwerte, Betriebsgrenzen usw.) und liefert Informationen an die BMS-Steuerung 466 (z. B. Temperaturmessungen, Ventil- oder Aktorpositionen, Betriebszustände, Diagnosen usw.). Beispielsweise kann die AHU-Steuerung 430 die BMS-Steuerung 466 mit Temperaturmessungen von Temperatursensoren 462-464, Ausrüstung-Ein/Aus-Zuständen, Ausrüstungsbetriebskapazitäten und/oder beliebigen anderen Informationen versorgen, die von der BMS-Steuerung 466 zur Überwachung oder Steuerung von einem variablen Zustand oder einer variablen Bedingung innerhalb der Gebäudezone 406 verwendet werden können.In some embodiments, the AHU controller receives 430 Information from the BMS control 466 (e.g. commands, setpoints, operating limits, etc.) and provides information to the BMS controller 466 (e.g. temperature measurements, valve or actuator positions, operating states, diagnostics, etc.). For example, the AHU control 430 the BMS control 466 with temperature measurements from temperature sensors 462-464 , Equipment on / off states, equipment operating capacities and / or any other information supplied by the BMS controller 466 to monitor or control a variable condition or condition within the building zone 406 can be used.

Die Client-Vorrichtung 468 kann eine oder mehrere Mensch-Maschine-Schnittstellen oder Client-Schnittstellen (z. B. grafische Benutzeroberflächen, Berichtsschnittstellen, textbasierte Computerschnittstellen, Webdienste mit Client-Ausrichtung, Webserver, die Seiten für Web-Clients bereitstellen usw.) zum Steuern, Betrachten oder anderweitigen Interagieren mit dem HVAC-System 200, seinen Subsystemen und/oder Vorrichtungen beinhalten. Die Client-Vorrichtung 468 kann eine Computer-Workstation, ein Client-Terminal, eine Remote- oder lokale Schnittstelle oder ein beliebiger anderer Typ einer Benutzeroberflächenvorrichtung sein. Die Client-Vorrichtung 468 kann ein stationäres Terminal oder eine mobile Vorrichtung sein. Beispielsweise kann die Client-Vorrichtung 468 ein Desktop-Computer, ein Computerserver mit einer Benutzeroberfläche, ein Laptop-Computer, ein Tablet, ein Smartphone, ein PDA oder irgendein anderer Typ einer mobilen oder nichtmobilen Vorrichtung sein. die Client-vorrichtung 468 kann mit der BMS-Steuerung 466 und/oder der AHU-Steuerung 430 über den Kommunikations-Link 472 kommunizieren. The client device 468 can control one or more human-machine interfaces or client interfaces (e.g. graphical user interfaces, report interfaces, text-based computer interfaces, web services with client orientation, web servers that provide pages for web clients etc.) for controlling, viewing or otherwise Interact with the HVAC system 200 , its subsystems and / or devices. The client device 468 can be a computer workstation, a client terminal, a remote or local interface, or any other type of user interface device. The client device 468 can be a stationary terminal or a mobile device. For example, the client device 468 a desktop computer, a computer server with a user interface, a laptop computer, a tablet, a smartphone, a PDA or any other type of mobile or non-mobile device. the client device 468 can use the BMS controller 466 and / or the AHU control 430 via the communication link 472 communicate.

GebäudeverwaltungssystemBuilding management system

Nun unter Bezugnahme auf 5 ist ein Blockdiagramm eines Gebäudeverwaltungssystems (BMS) 500 gemäß manchen Ausführungsformen gezeigt. Das BMS 500 kann in dem Gebäude 10 implementiert sein, um verschiedene Gebäudefunktionen automatisch zu überwachen und zu steuern. Es ist gezeigt, dass das BMS 500 die BMS-Steuerung 466 und mehrere Gebäudesubsysteme 528 enthält. Es wird gezeigt, dass die Gebäudesubsysteme 528 ein Gebäudeelektriksubsystem 534, ein Informationskommunikationstechnologie(ICT)-Subsystem 536, ein Sicherheitssubsystem 538, ein HVAC-Subsystem 540, ein Beleuchtungssubsystem 542, ein Aufzug-/Rolltreppensubsystem 532 und ein Brandschutzsubsystem 530 beinhalten. In verschiedenen Ausführungsformen können die Gebäudesubsysteme 528 weniger, zusätzliche oder alternative Subsysteme beinhalten. Beispielsweise können die Gebäudesubsysteme 528 auch oder alternativ ein Kälteerzeugungssubsystem, ein Werbe- oder Beschilderungssubsystem, ein Kochsubsystem, ein Verkaufssubsystem, ein Drucker- oder Kopierdienstsubsystem oder einen anderen Typ eines Gebäudesubsystems beinhalten, das steuerbare Ausrüstung und/oder verwendet Sensoren zur Überwachung oder Steuerung des Gebäudes 10 verwendet. Bei manchen Ausführungsformen beinhalten die Gebäudesubsysteme 528 das Wasserseitensystem 300 und/oder das Luftseitensystem 400, wie unter Bezugnahme auf 3-4 beschrieben.Now referring to 5 is a block diagram of a building management system (BMS) 500 shown in accordance with some embodiments. The BMS 500 can in the building 10th be implemented to automatically monitor and control various building functions. It is shown that the BMS 500 the BMS control 466 and several building subsystems 528 contains. It is shown that the building subsystems 528 a building electrical subsystem 534 , an information communication technology (ICT) subsystem 536, a security subsystem 538 , an HVAC subsystem 540 , a lighting subsystem 542 , an elevator / escalator subsystem 532 and a fire protection subsystem 530 include. In various embodiments, the building subsystems 528 include fewer, additional or alternative subsystems. For example, the building subsystems 528 also or alternatively, include a refrigeration subsystem, an advertising or signage subsystem, a cooking subsystem, a sales subsystem, a printer or copy service subsystem, or other type of building subsystem that includes controllable equipment and / or uses sensors to monitor or control the building 10th used. In some embodiments, the building subsystems include 528 the water side system 300 and / or the air side system 400 as referring to 3-4 described.

Jedes der Gebäudesubsysteme 528 kann eine beliebige Anzahl an Vorrichtungen (z. B. IoT-Vorrichtungen), Sensoren, Steuerungen und Verbindungen zum Vervollständigen seiner einzelnen Funktionen und Steuerungsaktivitäten enthalten. Das HVAC-Subsystem 540 kann viele der gleichen Komponenten wie das HVAC-System 200 enthalten, das unter Bezugnahme auf 2-4 beschrieben ist. Beispielsweise kann das HVAC-Subsystem 540 einen Kühler, einen Heizkessel, eine beliebige Anzahl an Lüftungseinheiten, Economizern, Feldsteuerungen, Überwachungssteuerungen, Aktoren, Temperatursensoren und anderen Vorrichtungen zum Steuern der Temperatur, der Feuchtigkeit, des Luftstroms oder anderer variabler Bedingungen innerhalb des Gebäudes 10 beinhalten. Das Beleuchtungssubsystem 542 kann eine beliebige Anzahl an Beleuchtungskörpern, Vorschaltgeräten, Lichtsensoren, Dimmern oder anderen Vorrichtungen enthalten, die dazu konfiguriert sind, die für einen Gebäudebereich bereitgestellte Lichtmenge steuerbar anzupassen. Das Sicherheitssubsystem 538 kann Anwesenheitssensoren, Videoüberwachungskameras, digitale Videorecorder, Videoverarbeitungsserver, Eindringdetektionsvorrichtungen, Zugangssteuervorrichtungen und -server oder andere sicherheitsrelevante Vorrichtungen umfassen.Each of the building subsystems 528 can include any number of devices (e.g., IoT devices), sensors, controls, and connections to complete its individual functions and control activities. The HVAC subsystem 540 can do many of the same components as the HVAC system 200 included that with reference to 2-4 is described. For example, the HVAC subsystem 540 a cooler, a boiler, any number of ventilation units, economizers, field controls, monitoring controls, actuators, temperature sensors and other devices for controlling the temperature, humidity, air flow or other variable conditions within the building 10th include. The lighting subsystem 542 can include any number of lighting fixtures, ballasts, light sensors, dimmers, or other devices that are configured to controllably adjust the amount of light provided for a building area. The security subsystem 538 may include presence sensors, video surveillance cameras, digital video recorders, video processing servers, intrusion detection devices, access control devices and servers, or other security-related devices.

Immer noch unter Bezugnahme auf 5 ist gezeigt, dass die BMS-Steuerung 466 eine Kommunikationsschnittstelle 507 und eine BMS-Schnittstelle 509 beinhaltet. Die Schnittstelle 507 kann die Kommunikationen zwischen der BMS-Steuerung 466 und externen Anwendungen (z. B. Überwachungs- und Berichtsanwendungen 522, Unternehmenssteueranwendungen 526, Remote-Systemen und -Anwendungen 544, Anwendungen, die sich auf Client-Vorrichtungen 548 befinden, usw.) erleichtern, um eine Benutzersteuerung, Überwachung und Anpassung der BMS-Steuerung 466 und/oder der Subsysteme 528 zu ermöglichen. Die Schnittstelle 507 kann auch die Kommunikationen zwischen der BMS-Steuerung 466 und den Client-Vorrichtungen 548 erleichtern. Die BMS-Schnittstelle 509 kann die Kommunikationen zwischen der BMS-Steuerung 466 und den Gebäudesubsystemen 528 (z. B. HVAC, Beleuchtungssicherheit, Aufzüge, Energieverteilung, Geschäft usw.) erleichtern.Still referring to 5 is shown that the BMS control 466 a communication interface 507 and a BMS interface 509 includes. the interface 507 can control the communications between the BMS 466 and external applications (e.g. monitoring and reporting applications 522 , Corporate tax applications 526 , Remote systems and applications 544 , Applications that relate to client devices 548 located, etc.) facilitate user control, monitoring and adjustment of the BMS control 466 and / or the subsystems 528 to enable. the interface 507 can also control communications between the BMS controller 466 and the client devices 548 facilitate. The BMS interface 509 can control the communications between the BMS 466 and the building subsystems 528 (e.g. HVAC, lighting security, elevators, power distribution, business, etc.).

Die Schnittstellen 507, 509 können drahtgebundene oder drahtlose Kommunikationsschnittstellen (z. B. Buchsen, Antennen, Sender, Empfänger, Sendeempfänger, Kabelanschlüsse usw.) zum Durchführen einer Datenkommunikation mit den Gebäudesubsystemen 528 oder anderen externen Systemen oder Vorrichtungen sein oder beinhalten. In verschiedenen Ausführungsformen kann die Kommunikation über die Schnittstellen 507, 509 direkt (z. B. lokale drahtgebundene oder drahtlose Kommunikationen) oder über ein Kommunikationsnetz 546 (z. B. ein WAN, das Internet, ein zellulares Netzwerk usw.) erfolgen. Beispielsweise können die Schnittstellen 507, 509 eine Ethernet-Karte und einen Port zum Senden und Empfangen von Daten über einen Ethernet-basierten Kommunikations-Link oder ein Ethernet-basiertes Netz enthalten. In einem anderen Beispiel können die Schnittstellen 507, 509 einen Wi-Fi-Sendeempfänger zum Kommunizieren über ein drahtloses Kommunikationsnetz enthalten. Bei einem anderen Beispiel können eine oder beide der Schnittstellen 507, 509 zellulare oder Mobiltelefonkommunikationssendeempfänger enthalten. In einer Ausführungsform ist die Kommunikationsschnittstelle 507 eine Stromleitungskommunikationsschnittstelle und ist die BMS-Schnittstelle 509 eine Ethernet-Schnittstelle. Bei anderen Ausführungsformen sind sowohl die Kommunikationsschnittstelle 507 als auch die BMS-Schnittstelle 509 Ethernet-Schnittstellen oder sind die gleiche Ethernet-Schnittstelle.The interfaces 507 , 509 can use wired or wireless communication interfaces (e.g. sockets, antennas, transmitters, receivers, transceivers, cable connections, etc.) to carry out data communication with the building subsystems 528 or other external systems or devices. In various embodiments, communication can take place via the interfaces 507 , 509 directly (e.g. local wired or wireless communications) or over a communications network 546 (e.g. a WAN, the Internet, a cellular network, etc.). For example, the Interfaces 507 , 509 contain an Ethernet card and a port for sending and receiving data via an Ethernet-based communication link or an Ethernet-based network. In another example, the interfaces 507 , 509 a Wi-Fi transceiver for communicating over a wireless communication network. In another example, one or both of the interfaces can be used 507 , 509 cellular or mobile phone communication transceivers included. In one embodiment, the communication interface 507 a power line communication interface and is the BMS interface 509 an ethernet interface. In other embodiments, both are the communication interface 507 as well as the BMS interface 509 Ethernet interfaces or are the same Ethernet interface.

Immer noch unter Bezugnahme auf 5 ist gezeigt, dass die BMS-Steuerung 466 einen Verarbeitungsschaltkreis 504 einschließlich eines Prozessors 506 und eines Speichers 508 beinhaltet. Der Verarbeitungsschaltkreis 504 kann kommunikativ mit der BMS-Schnittstelle 509 und/oder der Kommunikationsschnittstelle 507 verbunden sein, so dass der Verarbeitungsschaltkreis 504 und die verschiedenen Komponenten davon Daten über die Schnittstellen 507, 509 senden und empfangen können. Der Prozessor 506 kann als Allzweckprozessor, ein anwendungsspezifischer integrierter Schaltkreis (ASIC), ein oder mehrere vor Ort programmierbare Gatterarrays (FPGAs), eine Gruppe von Verarbeitungskomponenten oder andere geeignete elektronische Verarbeitungskomponenten implementiert sein.Still referring to 5 is shown that the BMS control 466 a processing circuit 504 including a processor 506 and a memory 508 includes. The processing circuit 504 can communicate with the BMS interface 509 and / or the communication interface 507 be connected so that the processing circuit 504 and the various components of which data through the interfaces 507 , 509 can send and receive. The processor 506 may be implemented as a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components or other suitable electronic processing components.

Der Speicher 508 (z. B. ein Speicher, eine Speichereinheit, eine Speicherungsvorrichtung usw.) kann eine oder mehrere Vorrichtungen (z. B. RAM, ROM, Flash-Speicher, Festplattenspeicherung usw.) zum Speichern von Daten und/oder Computercode zum Vervollständigen oder Erleichtern der verschiedenen in der vorliegenden Anmeldung beschriebenen Prozesse, Schichten und Module beinhalten. Der Speicher 508 kann ein flüchtiger Speicher oder ein nichtflüchtiger Speicher sein oder diesen beinhalten. Der Speicher 508 kann Datenbankkomponenten, Objektcodekomponenten, Skriptkomponenten oder irgendeine andere Art von Informationsstruktur zum Unterstützen der verschiedenen Aktivitäten und Informationsstrukturen enthalten, die in der vorliegenden Anmeldung beschrieben sind. Gemäß manchen Ausführungsformen ist der Speicher 508 über den Verarbeitungsschaltkreis 504 kommunikativ mit dem Prozessor 506 verbunden und enthält einen Computercode zum Ausführen (z. B. durch den Verarbeitungsschaltkreis 504 und/oder des Prozessors 506) eines oder mehrerer hier beschriebener Prozesse.The memory 508 (e.g., memory, storage device, storage device, etc.) may include one or more devices (e.g., RAM, ROM, flash memory, hard disk storage, etc.) for storing data and / or computer code for completion or facilitation of the various processes, layers and modules described in the present application. The memory 508 can be or include volatile memory or non-volatile memory. The memory 508 may include database components, object code components, script components, or any other type of information structure to support the various activities and information structures described in the present application. According to some embodiments, the memory 508 via the processing circuit 504 communicative with the processor 506 connected and contains computer code for execution (e.g. by the processing circuitry 504 and / or the processor 506 ) one or more processes described here.

Bei manchen Ausführungsformen ist die BMS-Steuerung 466 innerhalb eines einzigen Computers (z. B. eines Servers, eines Gehäuses usw.) implementiert. In verschiedenen anderen Ausführungsformen kann die BMS-Steuerung 466 über mehrere Server oder Computer verteilt sein (z. B. die an verteilten Orten vorhanden sein können). Während 4 Anwendungen 522 und 526 als außerhalb der BMS-Steuerung 466 existierend zeigt, können bei manchen Ausführungsformen die Anwendungen 522 und 526 innerhalb der BMS-Steuerung 466 (z. B. innerhalb des Speichers 508) gehostet werden.In some embodiments, the BMS control is 466 implemented within a single computer (e.g., a server, chassis, etc.). In various other embodiments, the BMS controller can 466 be distributed across multiple servers or computers (e.g. that may exist in distributed locations). While 4th Applications 522 and 526 than outside the BMS control 466 shows the applications in some embodiments 522 and 526 within the BMS control 466 (e.g. within the memory 508 ) are hosted.

Immer noch unter Bezugnahme auf 5 ist gezeigt, dass der Speicher 508 eine Unternehmensintegrationsschicht 510, eine Schicht 512 für automatisierte Messung und Validierung (AM&V), eine Nachfragereaktion(DR)-Schicht 514, eine Schicht 516 für Fehlerdetektion und -diagnose (FDD), eine integrierte Steuerschicht 518 enthält und eine Gebäudesubsystemintegrationsschicht 520 beinhaltet. Die Schichten 510-520 können dazu konfiguriert sein, Eingaben von den Gebäudesubsystemen 528 und anderen Datenquellen zu empfangen, optimale Steuerhandlungen für die Gebäudesubsysteme 528 basierend auf den Eingaben zu bestimmen, Steuersignale basierend auf den optimalen Steueraktionen zu erzeugen und die erzeugten Steuersignale an die Gebäudesubsysteme 528 zu liefern. Die folgenden Abschnitte beschreiben manche der allgemeinen Funktionen, die durch jede der Schichten 510-520 in dem BMS 500 durchgeführt werden.Still referring to 5 is shown that the memory 508 a business integration layer 510 , a layer 512 for automated measurement and validation (AM&V), a demand response (DR) layer 514 , a layer 516 for fault detection and diagnosis (FDD), an integrated control layer 518 contains and a building subsystem integration layer 520 includes. The layers 510-520 can be configured to input from the building subsystems 528 and other data sources, optimal control actions for the building subsystems 528 determine based on the inputs, generate control signals based on the optimal control actions and the generated control signals to the building subsystems 528 to deliver. The following sections describe some of the general functions performed by each of the layers 510-520 in the BMS 500 be performed.

Die Unternehmensintegrationsschicht 510 kann dazu konfiguriert sein, Clients oder lokale Anwendungen mit Informationen und Diensten zur Unterstützung einer Vielzahl von Anwendungen auf Unternehmens ebene zu versorgen. Beispielsweise können Unternehmenssteueranwendungen 526 dazu konfiguriert sein, eine subsystemübergreifende Steuerung für eine grafische Benutzeroberfläche (GUI) oder für eine beliebige Anzahl an Geschäftsanwendungen auf Unternehmens ebene (z. B. Buchhaltungssysteme, Benutzeridentifikationssysteme usw.) bereitzustellen. Unternehmenssteueranwendungen 526 können auch oder alternativ dazu konfiguriert sein, Konfigurations-GUIs zum Konfigurieren der BMS-Steuerung 466 bereitzustellen. Bei noch anderen Ausführungsformen können die Unternehmenssteueranwendungen 526 mit Schichten 510-520 arbeiten, um die Gebäudeleistungsfähigkeit (z. B. Effizienz, Energienutzung, Komfort oder Sicherheit) basierend auf Eingaben zu optimieren, die an der Schnittstelle 507 und/oder der BMS-Schnittstelle 509 empfangen werden.The corporate integration layer 510 can be configured to provide clients or local applications with information and services to support a wide variety of enterprise-level applications. For example, corporate tax applications 526 configured to provide cross-system control for a graphical user interface (GUI) or for any number of business applications at the enterprise level (e.g. accounting systems, user identification systems, etc.). Corporate tax applications 526 can also or alternatively be configured, configuration GUIs for configuring the BMS controller 466 to provide. In still other embodiments, the corporate tax applications 526 with layers 510-520 work to optimize building performance (e.g. efficiency, energy use, comfort or security) based on inputs made at the interface 507 and / or the BMS interface 509 be received.

Die Gebäudesubsystemintegrationsschicht 520 kann dazu konfiguriert sein, Kommunikationen zwischen der BMS-Steuerung 466 und den Gebäudesubsystemen 528 zu verwalten. Beispielsweise kann die Gebäudesubsystemintegrationsschicht 520 Sensordaten und Eingabesignale von den Gebäudesubsystemen 528 empfangen und Ausgabedaten und Steuersignale an die Gebäudesubsysteme 528 liefern. Die Gebäudesubsystemintegrationsschicht 520 kann auch dazu konfiguriert sein, Kommunikationen zwischen den Gebäudesubsystemen 528 zu verwalten. Die Gebäudesubsystemintegrationsschicht 520 übersetzt Kommunikationen (z. B. Sensordaten, Eingabesignale, Ausgabesignale usw.) über mehrere Systeme mit mehreren Anbietern/mehreren Protokollen hinweg.The building subsystem integration layer 520 can be configured to communicate between the BMS controller 466 and the building subsystems 528 manage. For example, the Building subsystem integration layer 520 Sensor data and input signals from the building subsystems 528 receive and output data and control signals to the building subsystems 528 deliver. The building subsystem integration layer 520 can also be configured to communicate between building subsystems 528 manage. The building subsystem integration layer 520 translates communications (e.g. sensor data, input signals, output signals etc.) across multiple systems with multiple providers / multiple protocols.

Die Nachfragereaktionsschicht 514 kann dazu konfiguriert sein, den Ressourcenverbrauch (z. B. Stromverbrauch, Erdgasverbrauch, Wasserverbrauch usw.) und/oder die monetären Kosten eines solchen Ressourcenverbrauchs zu bestimmen (z. B. zu optimieren), um den Bedarf des Gebäudes 10 zu decken. Die Ressourcennutzungsbestimmung kann auf Preisen für die Nutzungszeit, Kürzungssignalen, Energieverfügbarkeit oder anderen Daten basieren, die von Versorgern, verteilten Energieerzeugungssystemen 524, Energiespeichern 527 (z. B. Warm-TES 342, Kalt-TES 344 usw.) oder von anderen Quellen empfangen werden. Die Nachfragereaktionsschicht 514 kann Eingaben von anderen Schichten der BMS-Steuerung 466 empfangen (z. B. der Gebäudesubsystemintegrationsschicht 520, der integrierten Steuerschicht 518 usw.). Die von anderen Schichten empfangenen Eingaben können Umgebungs- oder Sensoreingaben, wie etwa Temperatur, Kohlenstoffdioxidniveaus, relative Luftfeuchtigkeitsniveaus, Luftqualitätssensorausgaben, Anwesenheitssensorausgaben, Zimmerpläne und dergleichen beinhalten. Die Eingaben können auch Eingaben wie etwa Stromverbrauch (z. B. ausgedrückt in kWh), thermische Lastmessungen, Preisinformationen, prognostizierte Preise, geglättete Preise, Kürzungssignale von Versorgungsunternehmen und dergleichen beinhalten.The demand response layer 514 may be configured to determine (e.g., optimize) resource consumption (e.g., electricity consumption, natural gas consumption, water consumption, etc.) and / or the monetary cost of such resource consumption to meet the needs of the building 10th cover up. Resource usage determination can be based on usage time prices, cutback signals, energy availability, or other data provided by utilities, distributed power generation systems 524 , Energy storage 527 (e.g. warm TES 342 , Cold-TES 344 etc.) or received from other sources. The demand response layer 514 can input from other layers of BMS control 466 received (e.g. the building subsystem integration layer 520 , the integrated control layer 518 etc.). The inputs received from other layers may include environmental or sensor inputs such as temperature, carbon dioxide levels, relative humidity levels, air quality sensor outputs, presence sensor outputs, room plans, and the like. The inputs may also include inputs such as power consumption (e.g., expressed in kWh), thermal load measurements, price information, forecast prices, smoothed prices, utility cutback signals, and the like.

Gemäß einigen Ausführungsformen enthält die Nachfragereaktionsschicht 514 eine Steuerlogik zum Antworten auf die Daten und Signale, die sie empfängt. Diese Antworten können das Kommunizieren mit den Steueralgorithmen in der integrierten Steuerschicht 518, das Ändern von Steuerstrategien, Ändern von Sollwerten oder Aktivieren/Deaktivieren von Gebäudeausrüstung oder -subsystemen auf kontrollierte Weise beinhalten. Die Nachfragereaktionsschicht 514 kann auch eine Steuerlogik enthalten, die dazu konfiguriert ist, zu bestimmen, wann gespeicherte Energie genutzt werden soll. Beispielsweise kann die Nachfragereaktionsschicht 514 bestimmen, unmittelbar vor Beginn einer Spitzennutzungsstunde mit der Verwendung von Energie aus dem Energiespeicher 527 zu beginnen.In some embodiments, the demand response layer includes 514 control logic to respond to the data and signals it receives. These responses can be used to communicate with the control algorithms in the integrated control layer 518 , changing control strategies, changing setpoints, or enabling / disabling building equipment or subsystems in a controlled manner. The demand response layer 514 may also include control logic configured to determine when to use stored energy. For example, the demand response layer 514 determine immediately before the start of a peak usage hour with the use of energy from the energy storage 527 to start.

Bei manchen Ausführungsformen beinhaltet die Nachfragereaktionsschicht 514 ein Steuermodul, das dazu konfiguriert ist, aktiv Steuerhandlungen (z. B. automatisch Ändern von Sollwerten) zu initiieren, die die Energiekosten basierend auf einer oder mehreren Eingaben, die für die Nachfrage repräsentativ sind oder auf dieser basieren (z. B. Preis, ein Kürzungssignal, ein Nachfrageniveau usw.), reduzieren (z. B. minimieren). Bei manchen Ausführungsformen verwendet die Nachfragereaktionsschicht 514 Ausrüstungsmodelle, um einen optimalen Satz von Steuerhandlungen zu bestimmen. Die Ausrüstungsmodelle können beispielsweise thermodynamische Modelle beinhalten, die die Eingaben, Ausgaben und/oder Funktionen beschreiben, die durch verschiedene Sätzen von Gebäudeausrüstungen durchgeführt werden. Ausrüstungsmodelle können Sammlungen von Gebäudeausrüstungen (z. B. Unteranlagen, Kühleranordnungen usw.) oder einzelne Vorrichtungen (z. B. einzelne Kühler, Heizungen, Pumpen usw.) repräsentieren.In some embodiments, the demand response layer includes 514 a control module configured to actively initiate control actions (e.g., automatically changing setpoints) that base energy costs on one or more inputs that are representative or based on demand (e.g., price, a cut signal, a demand level, etc.), reduce (e.g. minimize). In some embodiments, the demand response layer uses 514 Equipment models to determine an optimal set of tax acts. The equipment models may include, for example, thermodynamic models that describe the inputs, outputs, and / or functions performed by different sets of building equipment. Equipment models can represent collections of building equipment (e.g. sub-systems, cooler arrangements, etc.) or individual devices (e.g. individual coolers, heaters, pumps, etc.).

Die Nachfragereaktionsschicht 514 kann ferner eine oder mehrere Definitionen von Nachfragereaktionsrichtlinien (z. B. Datenbanken, XML-Dateien usw.) enthalten oder darauf zurückgreifen. Die Richtliniendefinitionen können von einem Benutzer bearbeitet oder angepasst werden (z. B. über eine grafische Benutzeroberfläche), sodass die als Reaktion auf Nachfrageeingaben initiierten Steuerhandlungen auf die Anwendung des Benutzers, das gewünschte Komfortniveau, die spezielle Gebäudeausrüstung oder basierend auf anderen Anliegen auf diese zugeschnitten werden können. Beispielsweise können die Definitionen der Nachfragereaktionsrichtlinien spezifizieren, welche Ausrüstungen als Reaktion auf spezielle Nachfrageeingaben ein- oder ausgeschaltet werden können, wie lange ein System oder ein Ausrüstungselement ausgeschaltet werden soll, welche Sollwerte geändert werden können, was der zulässige Sollwertanpassungsbereich ist, wie lange ein Sollwert für hohe Nachfrage gehalten werden soll, bevor zu einem normal geplanten Sollwert zurückgekehrt wird, wie nahe die Kapazitätsgrenzen erreicht werden sollen, welche Ausrüstungsmodi verwendet werden sollen, die Energietransferraten (z. B. die maximale Rate, eine Alarmrate, andere Ratengrenzinformationen usw.) in die und aus den Energiespeichervorrichtungen (z. B. Wärmespeicherungstanks, Batteriebänke usw.) und wann die Energieerzeugung vor Ort (z. B. über Brennstoffzellen, einen Motorgeneratorsatz usw.) erfolgen soll.The demand response layer 514 may also contain or use one or more definitions of demand response policies (e.g. databases, XML files, etc.). The policy definitions can be edited or adapted by a user (e.g. via a graphical user interface) so that the control actions initiated in response to demand inputs are tailored to the user's application, the desired level of comfort, the specific building equipment or based on other concerns can be. For example, the definitions of the demand response guidelines can specify which equipment can be switched on or off in response to special demand inputs, how long a system or equipment element should be switched off, which setpoints can be changed, what is the permissible setpoint adjustment range and how long a setpoint for high demand should be maintained before returning to a normally planned set point, how close to the capacity limits are to be reached, which equipment modes to use, the energy transfer rates (e.g. the maximum rate, an alarm rate, other rate limit information, etc.) in the and from the energy storage devices (e.g. heat storage tanks, battery banks, etc.) and when the energy generation is to take place on site (e.g. via fuel cells, an engine generator set, etc.).

Die integrierte Steuerschicht 518 kann dazu konfiguriert sein, die Dateneingabe oder - ausgabe der Gebäudesubsystemintegrationsschicht 520 und/oder der Nachfragereaktionsschicht 514 zu verwenden, um Steuerentscheidungen zu treffen. Aufgrund der Subsystemintegration, die durch die Gebäudesubsystemintegrationsschicht 520 bereitgestellt wird, kann die integrierte Steuerschicht 518 Steueraktivitäten der Subsysteme 528 so integrieren, dass sich die Subsysteme 528 wie ein einziges integriertes Supersystem verhalten. Bei manchen Ausführungsformen beinhaltet die integrierte Steuerschicht 518 eine Steuerlogik, die Ein- und Ausgaben von mehreren Gebäudesubsystemen verwendet, um einen größeren Komfort und Energieeinsparungen im Vergleich zu dem Komfort und den Energieeinsparungen bereitzustellen, die separate Subsysteme allein bereitstellen könnten. Beispielsweise kann die integrierte Steuerschicht 518 dazu konfiguriert sein, eine Eingabe von einem ersten Subsystem zu verwenden, um eine Energieeinsparungssteuerentscheidung für ein zweites Subsystem zu treffen. Ergebnisse dieser Entscheidungen können an die Gebäudesubsystemintegrationsschicht 520 zurückgemeldet werden.The integrated control layer 518 can be configured to input or output the building subsystem integration layer 520 and / or the demand response layer 514 to use to make tax decisions. Due to subsystem integration through the building subsystem integration layer 520 is provided, the integrated control layer 518 Tax activities of the Subsystems 528 integrate so that the subsystems 528 behave like a single integrated super system. In some embodiments, the integrated control layer includes 518 control logic that uses inputs and outputs from multiple building subsystems to provide greater convenience and energy savings compared to the convenience and energy savings that separate subsystems alone could provide. For example, the integrated control layer 518 configured to use input from a first subsystem to make an energy saving control decision for a second subsystem. Results of these decisions can be sent to the building subsystem integration layer 520 be reported back.

Es ist gezeigt, dass die integrierte Steuerschicht 518 logisch unterhalb der Nachfragereaktionsschicht 514 liegt. Die integrierte Steuerschicht 518 kann dazu konfiguriert sein, die Wirksamkeit der Nachfragereaktionsschicht 514 zu verbessern, indem ermöglicht wird, dass die Gebäudesubsysteme 528 und ihre jeweiligen Regelkreise in Koordination mit der Nachfragereaktionsschicht 514 gesteuert werden. Diese Konfiguration kann vorteilhafterweise ein störendes Nachfragereaktionsverhalten im Vergleich zu herkömmlichen Systemen reduzieren. Beispielsweise kann die integrierte Steuerschicht 518 dazu konfiguriert sein, sicherzustellen, dass eine nachfragereaktionsgetriebene Aufwärtsanpassung an den Sollwert für die Temperatur von gekühltem Wasser (oder einer anderen Komponente, die die Temperatur direkt oder indirekt beeinflusst) nicht zu einer Erhöhung der Ventilatorenergie (oder einer anderen Energie, die zum Kühlen eines Bereichs verwendet wird) führt, was zu einem höheren Gesamtenergieverbrauch des Gebäudes führen würde, als bei dem Kühler eingespart wurde.It is shown that the integrated control layer 518 logically below the demand response layer 514 lies. The integrated control layer 518 can be configured to affect the effectiveness of the demand response layer 514 to improve by allowing the building subsystems 528 and their respective control loops in coordination with the demand response layer 514 to be controlled. This configuration can advantageously reduce disruptive demand response behavior compared to conventional systems. For example, the integrated control layer 518 configured to ensure that a demand response driven upward adjustment to the chilled water temperature set point (or other component that directly or indirectly affects the temperature) does not increase the fan energy (or other energy used to cool an area is used), which would lead to a higher total energy consumption of the building than was saved with the cooler.

Die integrierte Steuerschicht 518 kann dazu konfiguriert sein, eine Rückmeldung an die Nachfragereaktionsschicht 514 zu liefern, so dass die Nachfragereaktionsschicht 514 prüft, ob Einschränkungen (z. B. Temperatur, Beleuchtungsniveaus usw.) ordnungsgemäß eingehalten werden, selbst während der erforderliche Lastabwurf ausgeführt wird. Die Einschränkungen können auch Sollwerte oder erfasste Grenzen in Bezug auf Sicherheit, Ausrüstungsbetriebsgrenzen und -leistungsfähigkeit, Komfort, Brandschutzverordnungen, Elektrikvorschriften, Energievorschriften und dergleichen beinhalten. Die integrierte Steuerschicht 518 befindet sich ebenfalls logisch unterhalb der Schicht 516 für Fehlerdetektion und Diagnose und der Schicht 512 für automatisierte Messung und Validierung. Die integrierte Steuerschicht 518 kann dazu konfiguriert sein, berechnete Eingaben (z. B. Aggregationen) für diese höheren Ebenen basierend auf Ausgaben von mehr als einem Gebäudesubsystem bereitzustellen.The integrated control layer 518 can be configured to provide feedback to the demand response layer 514 to deliver, so the demand response layer 514 checks whether restrictions (e.g. temperature, lighting levels, etc.) are properly observed, even while the required load shedding is being carried out. The restrictions may also include setpoints or sensed limits related to safety, equipment operating limits and performance, comfort, fire regulations, electrical regulations, energy regulations, and the like. The integrated control layer 518 is also logically below the layer 516 for fault detection and diagnosis and the shift 512 for automated measurement and validation. The integrated control layer 518 may be configured to provide calculated inputs (e.g., aggregations) for these higher levels based on outputs from more than one building subsystem.

Die Schicht 512 für automatisierte Messung und Validierung (AM&V) kann dazu konfiguriert sein, zu verifizieren, ob die von der integrierten Steuerschicht 518 oder der Nachfragereaktionsschicht 514 angeordneten Steuerstrategien ordnungsgemäß funktionieren (z. B. unter Verwendung von Daten, die durch die AM&V-Schicht 512, die integrierte Steuerschicht 518, die Gebäudesubsystemintegrationsschicht 520, die FDD-Schicht 516 oder andere aggregiert wurden). Die durch die AM&V-Schicht 512 durchgeführten Berechnungen können auf Gebäudesystemenergiemodellen und/oder Ausrüstungsmodellen für einzelne BMS-Vorrichtungen oder Subsysteme basieren. Beispielsweise kann die AM&V-Schicht 512 eine von einem Modell vorhergesagte Ausgabe mit einer tatsächlichen Ausgabe von den Gebäudesubsystemen 528 vergleichen, um eine Genauigkeit des Modells zu bestimmen.The layer 512 for automated measurement and validation (AM&V) can be configured to verify whether that of the integrated control layer 518 or the demand response layer 514 ordered control strategies work properly (e.g. using data through the AM&V layer 512 , the integrated control layer 518 , the building subsystem integration layer 520 who have favourited FDD layer 516 or others have been aggregated). That through the AM&V layer 512 Calculations performed can be based on building system energy models and / or equipment models for individual BMS devices or subsystems. For example, the AM&V layer 512 an output predicted by a model with an actual output from the building subsystems 528 compare to determine the accuracy of the model.

Die Schicht 516 für Fehlerdetektion und Diagnose (FDD) kann dazu konfiguriert sein, eine fortlaufende Fehlerdetektion für Gebäudesubsysteme 528, Gebäudesubsystemvorrichtungen (d. h. Gebäudeausrüstung) und Steueralgorithmen bereitzustellen, die von der Nachfragereaktionsschicht 514 und der integrierten Steuerschicht 518 verwendet werden. Die FDD-Schicht 516 kann Dateneingaben von der integrierten Steuerschicht 518 direkt von einem/einer oder mehreren Gebäudesubsystemen oder -Vorrichtungen oder von einer anderen Datenquelle empfangen. Die FDD-Schicht 516 kann detektierte Fehler automatisch diagnostizieren und darauf reagieren. Die Reaktionen auf detektierte oder diagnostizierte Fehler können Liefern einer Warnmeldung an einen Benutzer, ein Wartungsplanungssystem oder einen Steueralgorithmus beinhalten, der dazu konfiguriert ist, zu versuchen, den Fehler zu beheben oder den Fehler zu umgehen.The layer 516 for Fault Detection and Diagnostics (FDD) can be configured to provide continuous fault detection for building subsystems 528 To provide building subsystem devices (ie, building equipment) and control algorithms by the demand response layer 514 and the integrated control layer 518 be used. The FDD layer 516 can input data from the integrated control layer 518 received directly from one or more building subsystems or devices or from another data source. The FDD layer 516 can automatically diagnose detected errors and react to them. Responses to detected or diagnosed errors can include providing a warning message to a user, a maintenance planning system, or a control algorithm configured to attempt to correct the error or to bypass the error.

Die FDD-Schicht 516 kann dazu konfiguriert sein, eine spezielle Identifikation der fehlerhaften Komponente oder der Fehlerursache (z. B. lose Luftklappenverbindung) unter Verwendung ausführlicher Subsystemeingaben auszugeben, die in der Gebäudesubsystemintegrationsschicht 520 verfügbar sind. Bei anderen Ausführungsbeispielen ist die FDD-Schicht 516 dazu konfiguriert, „Fehler“-Ereignisse für die integrierte Steuerschicht 518 bereitzustellen, die Steuerstrategien und -richtlinien als Reaktion auf die empfangenen Fehlerereignisse ausführt. Gemäß manchen Ausführungsformen kann die FDD-Schicht 516 (oder eine Richtlinie, die von einer integrierten Steuer-Engine oder einer Geschäftsregel-Engine ausgeführt wird) Systeme herunterfahren oder Steueraktivitäten um fehlerhafte Vorrichtungen oder Systeme herum lenken, um eine Energieverschwendung zu reduzieren, die Ausrüstungslebensdauer zu verlängern oder eine ordnungsgemäße Steuerungsreaktion sicherzustellen.The FDD layer 516 can be configured to output a specific identification of the faulty component or the cause of the fault (e.g. loose air damper connection) using detailed subsystem inputs in the building subsystem integration layer 520 Are available. In other embodiments, the FDD layer is 516 configured to "error" events for the integrated control layer 518 To provide control strategies and policies in response to received error events. According to some embodiments, the FDD layer 516 (or a policy executed by an integrated control engine or a business rules engine) Shut down systems or direct control activities around faulty devices or systems to one Reduce energy wastage, extend equipment life, or ensure a proper control response.

Die FDD-Schicht 516 kann dazu konfiguriert sein, eine Vielzahl verschiedener Systemdatenspeicher (oder Datenpunkte für Live-Daten) zu speichern oder darauf zuzugreifen. Die FDD-Schicht 516 kann einen Teil des Inhalts der Datenspeicher verwenden, um Fehler auf der Ausrüstungsebene zu identifizieren (z. B. einen speziellen Kühler, ein spezielle AHU, eine spezielle Terminaleinheit usw.), und einen anderen Inhalt, um Fehler auf Komponenten- oder Subsystemebene zu identifizieren. Beispielsweise können Gebäudesubsysteme 528 zeitliche (d. h. Zeitreihen-) Daten erzeugen, die die Leistungsfähigkeit des BMS 500 und der verschiedenen Komponenten davon angeben. Die durch die Gebäudesubsysteme 528 erzeugten Daten können gemessene oder berechnete Werte enthalten, die statistische Charakteristiken aufweisen und Informationen darüber liefern, wie sich das entsprechende System oder der entsprechende Prozess (z. B. ein Temperatursteuerprozess, ein Flusssteuerprozess usw.) hinsichtlich des Fehlers von seinem Sollwert verhält. Diese Prozesse können durch die FDD-Schicht 516 untersucht werden, um aufzudecken, wann sich die Leistungsfähigkeit des Systems zu verschlechtern beginnt, und einen Benutzer zu warnen, den Fehler zu reparieren, bevor er schwerwiegender wird.The FDD layer 516 can be configured to store or access a variety of different system data stores (or data points for live data). The FDD layer 516 may use some of the content of the data stores to identify faults at the equipment level (e.g., a special cooler, a special AHU, a special terminal unit, etc.) and other content to identify faults at the component or subsystem level . For example, building subsystems 528 Generate temporal (ie time series) data that the performance of the BMS 500 and the various components thereof. The through the building subsystems 528 Data generated may include measured or calculated values that have statistical characteristics and provide information about how the corresponding system or process (e.g., a temperature control process, a flow control process, etc.) behaves with respect to the error of its setpoint. These processes can be done through the FDD layer 516 are examined to reveal when the performance of the system begins to deteriorate and to warn a user to repair the error before it becomes more serious.

Gebäudeverwaltungssystem mit Cloud-GebäudeverwaltungsplattformBuilding management system with cloud building management platform

Nun unter Bezugnahme auf 6 ist ein Blockdiagramm eines anderen Gebäudeverwaltungssystems (BMS) 600 gemäß manchen Ausführungsformen gezeigt. Das BMS 600 kann dazu konfiguriert sein, Datenabtastwerte von dem Gebäudesubsystemen 528 zu sammeln und die Datenabtastwerte an die Cloud-Gebäudeverwaltungsplattform 620 zu liefern, um Rohzeitreihendaten, abgeleitete Zeitreihendaten und/oder Entitätsdaten aus den Datenabtastwerten zu erzeugen. Bei manchen Ausführungsformen kann die Cloud-Gebäudeverwaltungsplattform 620 die in 1 gezeigte Gebäudeverwaltungsplattform 102 ergänzen oder ersetzen oder kann getrennt von der Gebäudeverwaltungsplattform 102 implementiert werden. Die Cloud-Gebäudeverwaltungsplattform 620 kann die Rohzeitreihendaten verarbeiten und transformieren, um abgeleitete Zeitreihendaten zu erzeugen. Durch diese Offenbarung hinweg wird der Begriff „abgeleitete Zeitreihendaten“ verwendet, um das Ergebnis oder die Ausgabe einer Transformations- oder anderer Zeitreihenverarbeitungsoperation zu beschreiben, die durch verschiedene Dienste der Gebäudeverwaltungsplattform 620 durchgeführt wird (z. B. Datenaggregation, Datenbereinigung, Berechnung virtueller Punkte, etc.). Der Begriff „Entitätsdaten“ wird verwendet, um die Attribute verschiedener intelligenter Entitäten (z. B. IoT-Systeme, Vorrichtungen, Komponenten, Sensoren und dergleichen) und die Beziehungen zwischen den intelligenten Entitäten zu beschreiben. Die abgeleiteten Zeitreihendaten können an verschiedenen Anwendungen 630 geliefert und/oder in dem Speicher 614 gespeichert werden (z. B. als materialisierte Ansichten der Rohzeitreihendaten). Bei manchen Ausführungsformen separiert die Cloud-Gebäudeverwaltungsplattform 620 Datensammlung; Datenspeicherung, -abruf und - analyse; und Datenvisualisierung in drei unterschiedliche Schichten. Dies ermöglicht, dass die Cloud-Gebäudeverwaltungsplattform 620, eine Vielzahl von Anwendungen 630 unterstützt, die die abgeleiteten Zeitreihendaten verwenden, und ermöglicht, dass neue Anwendungen 630 die vorhandene Infrastruktur, die durch die Cloud-Gebäudeverwaltungsplattform 620 bereitgestellt wird, wiederverwenden.Now referring to 6 is a block diagram of another building management system (BMS) 600 shown in accordance with some embodiments. The BMS 600 can be configured to sample data from the building subsystems 528 collect and the data samples to the cloud building management platform 620 to provide raw time series data, derived time series data and / or entity data from the data samples. In some embodiments, the cloud building management platform 620 in the 1 shown building management platform 102 supplement or replace or can be separate from the building management platform 102 be implemented. The cloud building management platform 620 can process and transform the raw time series data to produce derived time series data. Throughout this disclosure, the term "derived time series data" is used to describe the result or output of a transformation or other time series processing operation performed by various services of the building management platform 620 is carried out (e.g. data aggregation, data cleansing, calculation of virtual points, etc.). The term “entity data” is used to describe the attributes of different intelligent entities (e.g. IoT systems, devices, components, sensors and the like) and the relationships between the intelligent entities. The derived time series data can be used in various applications 630 delivered and / or in the store 614 saved (e.g. as materialized views of the raw time series data). In some embodiments, the cloud building management platform separates 620 Data collection; Data storage, retrieval and analysis; and data visualization in three different layers. This enables the cloud building management platform 620 , a variety of applications 630 supports that use the derived time series data and enables new applications 630 the existing infrastructure through the cloud building management platform 620 is provided, reuse.

Es ist zu beachten, dass die Komponenten des BMS 600 und/oder der Cloud-Gebäudeverwaltungsplattform 620 in einer einzigen Vorrichtung (z. B. einer Überwachungssteuerung, einer BMS-Steuerung usw.) integriert oder über mehrere separate Systeme oder Vorrichtungen verteilt sein können. Bei anderen Ausführungsformen können einige oder alle der Komponenten des BMS 600 und/oder der Cloud-Gebäudeverwaltungsplattform 620 als Teil eines Cloud-basierten Rechensystems implementiert werden, das zum Empfangen und Verarbeiten von Daten von einem oder mehreren Gebäudeverwaltungssystemen konfiguriert ist. Bei anderen Ausführungsformen können manche oder alle der Komponenten des BMS 600 und/oder der Cloud-Gebäudeverwaltungsplattform 620 Komponenten einer Steuerung auf Subsystemebene (z. B. einer HVAC-Steuerung), einer Subanlagensteuerung, einer Vorrichtungssteuerung (z. B. der AHU-Steuerung 330, der Kühlersteuerung usw.), einer Feldsteuerung, einer Computer-Workstation, einer Client-Vorrichtung oder eines beliebigen anderen Systems oder einer beliebigen anderen Vorrichtung sein, das/die Daten von Gebäudesystemen und -ausrüstung empfängt und verarbeitet.It should be noted that the components of the BMS 600 and / or the cloud building management platform 620 integrated into a single device (e.g., a monitoring controller, a BMS controller, etc.) or distributed across multiple separate systems or devices. In other embodiments, some or all of the components of the BMS 600 and / or the cloud building management platform 620 be implemented as part of a cloud-based computing system configured to receive and process data from one or more building management systems. In other embodiments, some or all of the components of the BMS 600 and / or the cloud building management platform 620 Components of a controller at the subsystem level (e.g. an HVAC controller), a subsystem controller, a device controller (e.g. the AHU controller 330 , cooler controller, etc.), a field controller, a computer workstation, a client device, or any other system or device that receives and processes data from building systems and equipment.

Das BMS 600 kann viele der gleichen Komponenten wie das BMS 500 enthalten, das unter Bezugnahme auf 5 beschrieben ist. Beispielsweise wird gezeigt, dass das BMS 600 ein BMS-Schnittstelle 602 und eine Kommunikationsschnittstelle 604 beinhaltet. Die Schnittstellen 602-604 können drahtgebundene oder drahtlose Kommunikationsschnittstellen (z. B. Buchsen, Antennen, Sender, Empfänger, Sendeempfänger, Kabelanschlüsse usw.) zum Durchführen einer Datenkommunikation mit den Gebäudesubsystemen 528 oder anderen externen Systemen oder Vorrichtungen beinhalten. Die Kommunikation, die über die Schnittstellen 602-604 ausgeführt werden, können direkt (z. B. lokale drahtgebundene oder drahtlose Kommunikationen) oder über ein Kommunikationsnetz 546 (z. B. ein WAN, das Internet, ein zellulares Netzwerk usw.) erfolgen.The BMS 600 can do many of the same components as the BMS 500 included that with reference to 5 is described. For example, it is shown that the BMS 600 a BMS interface 602 and a communication interface 604 includes. The interfaces 602-604 can use wired or wireless communication interfaces (e.g. sockets, antennas, transmitters, receivers, transceivers, cable connections, etc.) to carry out data communication with the building subsystems 528 or other external systems or devices. Communication through the interfaces 602-604 can be performed directly (e.g., local wired or wireless communications) or over a communications network 546 (e.g. a WAN, the Internet, a cellular network, etc.).

Die Kommunikationsschnittstelle 604 kann die Kommunikation zwischen dem BMS 600 und externen Anwendungen (z. B. Remote-Systemen und -Anwendungen 544) erleichtern, um eine Benutzersteuerung, Ü-überwachung und -anpassung für das BMS 600 zu ermöglichen. Die Kommunikationsschnittstelle 604 kann auch Kommunikationen zwischen dem BMS 600 und den Client-Vorrichtungen 548 erleichtern. Die BMS-Schnittstelle 602 kann die Kommunikation zwischen dem BMS 600 und den Gebäudesubsystemen 528 erleichtern. Das BMS 600 kann dazu konfiguriert sein, mit den Gebäudesubsystemen 528 unter Verwendung einer Vielzahl von Gebäudeautomationssystemprotokollen (z. B. BACnet, Modbus, ADX usw.) zu kommunizieren. Bei manchen Ausführungsformen empfängt das BMS 600 Datenabtastwerte von Gebäudesubsystemen 528 und liefert Steuersignale an Gebäudesubsysteme 528 über die BMS-Schnittstelle 602.The communication interface 604 can the communication between the BMS 600 and external applications (e.g. remote systems and applications 544 ) facilitate user control, monitoring and adaptation for the BMS 600 to enable. The communication interface 604 can also establish communications between the BMS 600 and the client devices 548 facilitate. The BMS interface 602 can the communication between the BMS 600 and the building subsystems 528 facilitate. The BMS 600 can be configured with the building subsystems 528 communicate using a variety of building automation system protocols (e.g., BACnet, Modbus, ADX, etc.). In some embodiments, the BMS receives 600 Data samples from building subsystems 528 and delivers control signals to building subsystems 528 via the BMS interface 602 .

Die Gebäudesubsysteme 528 können das Gebäudeelektriksubsystem 534, das Informationskommunikationstechnologie(ICT)-Subsystem 536, das Sicherheitssubsystem 538, das HVAC-Subsystem 540, das Beleuchtungssubsystem 542, das Aufzug-/Rolltreppensubsystem 532 und das Brandschutzsubsystem 530, wie unter Bezugnahme auf 5 beschrieben, beinhalten. In verschiedenen Ausführungsformen können die Gebäudesubsysteme 528 weniger, zusätzliche oder alternative Subsysteme beinhalten. Beispielsweise können die Gebäudesubsysteme 528 auch oder alternativ ein Kälteerzeugungssubsystem, ein Werbe- oder Beschilderungssubsystem, ein Kochsubsystem, ein Verkaufssubsystem, ein Drucker- oder Kopierdienstsubsystem oder einen anderen Typ eines Gebäudesubsystems beinhalten, das steuerbare Ausrüstung und/oder verwendet Sensoren zur Überwachung oder Steuerung des Gebäudes 10 verwendet. Bei manchen Ausführungsformen beinhalten die Gebäudesubsysteme 528 das Wasserseitensystem 300 und/oder das Luftseitensystem 400, wie unter Bezugnahme auf 3-4 beschrieben. Jedes der Gebäudesubsysteme 528 kann eine beliebige Anzahl an Vorrichtungen, Steuerungen und Verbindungen zum Vervollständigen seiner einzelnen Funktionen und Steuerungsaktivitäten enthalten. Die Gebäudesubsysteme 528 können Gebäudeausrüstung (z. B. Sensoren, Lüftungseinheiten, Kühler, Pumpen, Ventile usw.) beinhalten, die zum Überwachen und Steuern eines Gebäudezustands, wie etwa Temperatur, Feuchtigkeit, Luftstrom usw., konfiguriert sind.The building subsystems 528 can the building electrical subsystem 534 , the Information Communication Technology (ICT) subsystem 536, the security subsystem 538 , the HVAC subsystem 540 , the lighting subsystem 542 , the elevator / escalator subsystem 532 and the fire protection subsystem 530 as referring to 5 described. In various embodiments, the building subsystems 528 include fewer, additional or alternative subsystems. For example, the building subsystems 528 also or alternatively, include a refrigeration subsystem, an advertising or signage subsystem, a cooking subsystem, a sales subsystem, a printer or copy service subsystem, or other type of building subsystem that includes controllable equipment and / or uses sensors to monitor or control the building 10th used. In some embodiments, the building subsystems include 528 the water side system 300 and / or the air side system 400 as referring to 3-4 described. Each of the building subsystems 528 can include any number of devices, controls, and connections to complete its individual functions and control activities. The building subsystems 528 may include building equipment (e.g. sensors, ventilation units, coolers, pumps, valves, etc.) configured to monitor and control a building's condition, such as temperature, humidity, airflow, etc.

Immer noch unter Bezugnahme auf 6 ist gezeigt, dass das BMS 600 einen Verarbeitungsschaltkreis 606 einschließlich eines Prozessors 608 und eines Speichers 610 beinhaltet. Die Cloud-Gebäudeverwaltungsplattform kann einen oder mehrere Verarbeitungsschaltkreise einschließlich eines oder mehrerer Prozessoren und eines Speichers beinhalten. Jeder der Prozessoren kann ein Mehrzweckprozessor oder ein Spezialprozessor, ein anwendungsspezifischer integrierter Schaltkreis (ASIC), ein oder mehrere vor Ort programmierbare Gatterarrays (FPGAs), eine Gruppe von Verarbeitungskomponenten oder andere geeignete Verarbeitungskomponenten sein. Jeder der Prozessoren ist dazu konfiguriert, Computercode oder Anweisungen auszuführen, der/die in dem Speicher gespeichert sind oder von anderen computerlesbaren Medien (z. B. CD-ROM, Netzspeicherung, Remote-Server usw.) empfangen werden.Still referring to 6 is shown that the BMS 600 a processing circuit 606 including a processor 608 and a memory 610 includes. The cloud building management platform may include one or more processing circuitry including one or more processors and memory. Each of the processors may be a general purpose or special purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable processing components. Each of the processors is configured to execute computer code or instructions stored in memory or received by other computer readable media (e.g., CD-ROM, network storage, remote server, etc.).

Der Speicher kann eine oder mehrere Vorrichtungen (z. B. Speichereinheiten, Speichervorrichtungen, Speicherungsvorrichtungen usw.) zum Speichern von Daten und/oder Computercode zum Vervollständigen und/oder Erleichtern der verschiedenen in der vorliegenden Offenbarung beschriebenen Prozesse beinhalten. Der Speicher kann einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), eine Festplattenspeicherung, eine temporäre Speicherung, einen nichtflüchtigen Speicher, einen Flash-Speicher, einen optischen Speicher oder einen beliebigen anderen geeigneten Speicher zum Speichern von Softwareobjekten und/oder Computeranweisungen beinhalten. Der Speicher kann Datenbankkomponenten, Objektcodekomponenten, Skriptkomponenten oder irgendeine andere Art von Informationsstruktur zum Unterstützen der verschiedenen Aktivitäten und Informationsstrukturen enthalten, die in der vorliegenden Offenbarung beschrieben sind. Der Speicher kann über die Verarbeitungsschaltkreise kommunizierbar mit den Prozessoren verbunden sein und kann Computercode zum Ausführen (z. B. durch den Prozessor 508) eines oder mehrerer hier beschriebener Prozesse enthalten.The memory may include one or more devices (e.g., storage devices, storage devices, storage devices, etc.) for storing data and / or computer code to complete and / or facilitate the various processes described in the present disclosure. The memory may be random access memory (RAM), read-only memory (ROM), hard disk storage, temporary storage, non-volatile memory, flash memory, optical memory or any other suitable memory for storing software objects and / or include computer instructions. The memory may include database components, object code components, script components, or any other type of information structure to support the various activities and information structures described in the present disclosure. The memory can be communicably connected to the processors via the processing circuitry and can be computer code for execution (e.g. by the processor 508 ) contain one or more processes described here.

Immer noch unter Bezugnahme auf 6 ist gezeigt, dass die Cloud-Gebäudeverwaltungsplattform 620 einen Datenkollektor 612 enthält. Der Datenkollektor 612 empfängt Datenabtastwerte von Gebäudesubsystemen 528 über die BMS-Schnittstelle 602. Die vorliegende Offenbarung ist jedoch nicht darauf beschränkt und der Datensammler 612 kann die Datenabtastwerte direkt von den Gebäudesubsystemen 528 empfangen (z. B. über das Netz 546 oder über ein geeignetes Verfahren). Bei manchen Ausführungsformen enthalten die Datenabtastwerte Datenwerte für verschiedene Datenpunkte. Die Datenwerte können in Abhängigkeit der Art des Datenpunkts gemessen oder berechnet werden. Beispielsweise kann ein von einem Temperatursensor empfangener Datenpunkt einen gemessenen Datenwert enthalten, der eine durch den Temperatursensor gemessene Temperatur angibt. Ein von einer Kühlersteuerung empfangener Datenpunkt kann einen berechneten Datenwert enthalten, der einen berechneten Wirkungsgrad des Kühlers angibt. Der Datenkollektor 612 kann Datenabtastwerte von mehreren verschiedenen Vorrichtungen (z. B. IoT-Vorrichtungen, Sensoren usw.) innerhalb der Gebäudesubsysteme 528 empfangen.Still referring to 6 is shown that the cloud building management platform 620 a data collector 612 contains. The data collector 612 receives data samples from building subsystems 528 via the BMS interface 602 . However, the present disclosure is not limited to this and the data collector 612 can get the data samples directly from the building subsystems 528 received (e.g. via the network 546 or using a suitable method). In some embodiments, the data samples include data values for different data points. The data values can be measured or calculated depending on the type of data point. For example, a data point received by a temperature sensor can contain a measured data value, which is a value obtained by the temperature sensor indicates measured temperature. A data point received by a cooler controller can contain a calculated data value that indicates a calculated efficiency of the cooler. The data collector 612 can acquire data samples from several different devices (e.g., IoT devices, sensors, etc.) within the building subsystems 528 receive.

Die Datenabtastwerte können ein oder mehrere Attribute enthalten, die die entsprechenden Datenpunkte beschreiben oder charakterisieren. Beispielsweise können die Datenabtastwerte ein Namensattribut, das einen Punktnamen oder eine Punkt-ID definiert (z. B. „B1F4R2.TZ“), ein Vorrichtungsattribut, das einen Typ der Vorrichtung angibt, von der die Datenabtastwerte empfangen werden (z. B. Temperatursensor, Feuchtigkeitssensor, Kühler usw.), ein Einheitsattribut, das eine Maßeinheit definiert, die dem Datenwert zugeordnet ist (z. B. °F, °C, kPA usw.), und/oder ein beliebiges anderes Attribut, das den entsprechenden Datenpunkt beschreibt oder Kontextinformationen bezüglich des Datenpunkts bereitstellt, beinhalten. Die in jedem Datenpunkt enthaltenen Attributtypen können von dem Kommunikationsprotokoll abhängen, das zum Senden der Datenabtastwerte an das BMS 600 und/oder die Cloud-Gebäudeverwaltungsplattform 620 verwendet wird. Beispielsweise können Datenabtastwerte, die über das ADX-Protokoll oder das BACnet-Protokoll empfangen werden, eine Vielzahl von beschreibenden Attributen zusammen mit dem Datenwert enthalten, wohingegen Datenabtastwerte, die über das Modbus-Protokoll empfangen werden, eine geringere Anzahl von Attributen enthalten können (z. B. nur den Datenwert ohne irgendwelche entsprechenden Attribute).The data samples can contain one or more attributes that describe or characterize the corresponding data points. For example, the data samples may be a name attribute that defines a point name or ID (e.g., "B1F4R2.TZ"), a device attribute that indicates a type of device from which the data samples are received (e.g., temperature sensor , Humidity sensor, cooler, etc.), a unit attribute that defines a unit of measurement associated with the data value (e.g., ° F, ° C, kPA, etc.), and / or any other attribute that describes the corresponding data point or provides contextual information regarding the data point. The attribute types contained in each data point may depend on the communication protocol used to send the data samples to the BMS 600 and / or the cloud building management platform 620 is used. For example, data samples received via the ADX protocol or the BACnet protocol may contain a plurality of descriptive attributes along with the data value, whereas data samples received via the Modbus protocol may contain a smaller number of attributes (e.g. E.g. only the data value without any corresponding attributes).

Bei manchen Ausführungsformen wird der Datenabtastwert mit einem Zeitstempel empfangen, der einen Zeitpunkt angibt, zu dem der entsprechende Datenwert gemessen oder berechnet wurde. Bei anderen Ausführungsformen fügt der Datenkollektor 612 den Datenabtastwerten Zeitstempel basierend auf den Zeitpunkten hinzu, zu denen die Datenabtastwerte empfangen werden. Der Datenkollektor 612 kann Rohzeitreihendaten für jeden der Datenpunkte erzeugen, für die Datenabtastwerte empfangen werden. Jede Zeitreihe kann eine Reihe von Datenwerten für denselben Datenpunkt und einen Zeitstempel für jeden der Datenwerte enthalten. Beispielsweise kann eine Zeitreihe für einen durch einen Temperatursensor bereitgestellten Datenpunkt eine Reihe von Temperaturwerten, die durch den Temperatursensor gemessen werden, und die entsprechenden Zeitpunkte, zu denen die Temperaturwerte gemessen wurden, beinhalten. Ein Beispiel für eine Zeitreihe, die durch den Datenkollektor 612 erzeugt werden kann, ist wie folgt: [ < S c h l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 2 , W e r t 2 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 3 , W e r t 3 > ]

Figure DE112018004336T5_0001
wobei Schlüssel eine Kennung der Quelle der Rohdatenabtastwerte (z. B. Zeitreihen-ID, Sensor-ID, Vorrichtung-ID usw.) ist, Zeitstempeli den Zeitpunkt identifiziert, zu dem der i-te Abtastwert gesammelt wurde, und Werti den Wert von des i-ten Abtastwerts angibt.In some embodiments, the data sample is received with a timestamp that indicates a point in time at which the corresponding data value was measured or calculated. In other embodiments, the data collector inserts 612 add timestamps to the data samples based on the times when the data samples are received. The data collector 612 can generate raw time series data for each of the data points for which data samples are received. Each time series can contain a series of data values for the same data point and a time stamp for each of the data values. For example, a time series for a data point provided by a temperature sensor can include a series of temperature values that are measured by the temperature sensor and the corresponding points in time at which the temperature values were measured. An example of a time series created by the data collector 612 can be generated is as follows: [ < S c H l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 2nd , W e r t 2nd > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 3rd , W e r t 3rd > ]
Figure DE112018004336T5_0001
where key is an identifier of the source of the raw data samples (e.g., time series ID, sensor ID, device ID, etc.), time stamp i identifies the time at which the ith sample was collected, and value i the value of the ith sample.

Der Datenkollektor 612 kann Zeitstempel zu den Datenabtastwerten hinzufügen oder vorhandene Zeitstempel so ändern, dass jeder Datenabtastwert einen lokalen Zeitstempel enthält. Jeder lokale Zeitstempel gibt die lokale Zeit an, zu der der entsprechende Datenabtastwert gemessen oder gesammelt wurde, und kann einen Versatz relativ zur Universaltzeit enthalten. Der lokale Zeitstempel gibt die lokale Zeit an dem Standort an, an dem der Datenpunkt zum Zeitpunkt der Messung gemessen wurde. Der Versatz gibt die Differenz zwischen der lokalen Zeit und einer Universalzeit (z. B. der Uhrzeit an der internationalen Datumsgrenze) an. Beispielsweise kann ein Datenabtastwert, der in einer Zeitzone gesammelt wurde, die sechs Stunden hinter der Universalzeit liegt, einen lokalen Zeitstempel enthalten (z. B. Timestamp = 18 - 03 - 2016Z14: 10: 02) und ein Versatz, der angibt, dass der lokale Zeitstempel sechs Stunden hinter der Universalzeit liegt (z. B. Versatz = -6: 00). Der Versatz kann in Abhängigkeit davon, ob sich die Zeitzone in der Sommerzeit befindet, wenn der Datenabtastwert gemessen oder gesammelt wird, angepasst werden (z. B. +1: 00 oder -1: 00).The data collector 612 can add timestamps to the data samples or change existing timestamps so that each data sample contains a local timestamp. Each local timestamp indicates the local time at which the corresponding data sample was measured or collected and can include an offset relative to universal time. The local timestamp indicates the local time at the location at which the data point was measured at the time of the measurement. The offset indicates the difference between the local time and a universal time (e.g. the time at the international date limit). For example, a data sample collected in a time zone six hours behind universal time may include a local timestamp (e.g. Timestamp = 18 - 03 - 2016Z14: 10: 02) and an offset that indicates that the local time stamp is six hours behind universal time (e.g. offset = -6: 00). The offset can be adjusted depending on whether the time zone is in daylight saving time when the data sample is being measured or collected (e.g. +1: 00 or -1: 00).

Die Kombination aus dem lokalem Zeitstempel und dem Versatz stellt einen eindeutigen Zeitstempel über die Sommerzeitgrenzen hinweg bereit. Dies ermöglicht eine Anwendung, die die Zeitreihendaten verwendet, um die Zeitreihendaten in der lokalen Zeit anzuzeigen, ohne zuerst von der Universalzeit zu konvertieren. Die Kombination aus dem lokalen Zeitstempel und dem Versatz stellt auch genügend Informationen bereit, um den lokalen Zeitstempel in die Universalzeit zu konvertieren, ohne einen Zeitplan für die Sommerzeit nachschlagen zu müssen. Beispielsweise kann der Versatz von dem lokalen Zeitstempel subtrahiert werden, um einen Universalzeitwert zu erzeugen, der dem lokalen Zeitstempel entspricht, ohne auf eine externe Datenbank zu verweisen und ohne irgendwelche anderen Informationen zu benötigen.The combination of the local timestamp and the offset provides a unique timestamp beyond the summer time limits. This enables an application that uses the time series data to display the time series data in local time without first converting from universal time. The combination of the local time stamp and the offset also provides enough information to convert the local time stamp to universal time without having to look up a daylight saving time schedule. For example, the offset can be subtracted from the local timestamp to produce a universal time value that corresponds to the local timestamp without referring to an external database and without requiring any other information.

Bei manchen Ausführungsformen organisiert der Datenkollektor 612 die Rohzeitreihendaten. Der Datenkollektor 612 kann ein System oder eine Vorrichtung identifizieren, das/die jedem der Datenpunkte zugeordnet ist. Beispielsweise kann der Datenkollektor 612 einen Datenpunkt einem Temperatursensor, einer Belüftungseinheit, einem Kühler oder irgendeinem anderen Typ von System oder Vorrichtung zuordnen. Bei manchen Ausführungsformen kann eine Datenentität für den Datenpunkt erzeugt werden, wobei in diesem Fall der Datenkollektor 612 (z. B. über einen Entitätsdienst) den Datenpunkt der Datenentität zuordnen kann. In verschiedenen Ausführungsformen verwendet der Datenkollektor den Namen des Datenpunkts, einen Wertebereich des Datenpunkts, statistische Charakteristiken des Datenpunkts oder andere Attribute des Datenpunkts, um ein spezielles System oder eine spezielle Vorrichtung zu identifizieren, das/die dem Datenpunkt zugeordnet ist. Der Datenkollektor 612 kann dann aus Entitätsdaten bestimmen, wie dieses System oder diese Vorrichtung mit den anderen Systemen oder den anderen Vorrichtung an dem Gebäudeort in Zusammenhang steht. Beispielsweise kann der Datenkollektor 612 aus den Entitätsdaten bestimmen, dass das identifizierte System oder die identifizierte Vorrichtung ein Teil eines größeren Systems (z. B. eines HVAC-Systems) ist oder einen speziellen Bereich (z. B. ein spezielles Gebäude, ein Zimmer oder eine Zone des Gebäudes usw.) versorgt. Bei manchen Ausführungsformen verwendet der Datenkollektor 512 einen Entitätsgraphen (z. B. über den Entitätsdienst 626) oder ruft ihn ab, wenn er die Zeitreihendaten organisiert. In some embodiments, the data collector organizes 612 the raw time series data. The data collector 612 can identify a system or device associated with each of the data points. For example, the data collector 612 assign a data point to a temperature sensor, a ventilation unit, a cooler or any other type of system or device. In some embodiments, a data entity can be created for the data point, in which case the data collector 612 (e.g. via an entity service) can assign the data point to the data entity. In various embodiments, the data collector uses the name of the data point, a range of values of the data point, statistical characteristics of the data point, or other attributes of the data point to identify a particular system or device associated with the data point. The data collector 612 can then determine from entity data how that system or device is related to the other systems or device at the building location. For example, the data collector 612 determine from the entity data that the identified system or device is part of a larger system (e.g. an HVAC system) or a specific area (e.g. a specific building, room or zone of the building, etc .) provided. In some embodiments, the data collector uses 512 an entity graph (e.g. via the entity service 626 ) or retrieve it when it organizes the time series data.

Der Datenkollektor 612 kann die Rohzeitreihendaten an die Dienste der Cloud-Gebäudeverwaltungsplattform 620 liefern und/oder die Rohzeitreihendaten in der Speicherung 614 speichern. Die Speicherung 614 kann eine interne Speicherung oder externe Speicherung sein. Beispielsweise kann die Speicherung 614 eine interne Speicherung in Bezug auf die Cloud-Gebäudeverwaltungsplattform 620 und/oder das BMS 600 sein und/oder kann eine Remote-Datenbank, ein Cloud-basiertes Daten-Hosting oder eine andere Remote-Datenspeicherung beinhalten. Die Speicherung 614 kann dazu konfiguriert sein, die durch den Datenkollektor 612 erhaltenen Rohzeitreihendaten, die durch die Cloud-Gebäudeverwaltungsplattform 620 erzeugten abgeleiteten Zeitreihendaten und/oder die durch die Cloud-Gebäudeverwaltungsplattform 620 verwendeten gerichtete azyklische Graphen (DAGs) zu speichern, um die Zeitreihendaten zu verarbeiten.The data collector 612 can transfer the raw time series data to the services of the cloud building management platform 620 deliver and / or the raw time series data in storage 614 to save. The storage 614 can be internal storage or external storage. For example, the storage 614 internal storage related to the cloud building management platform 620 and / or the BMS 600 and / or may include a remote database, cloud-based data hosting, or other remote data storage. The storage 614 can be configured by the data collector 612 raw time series data obtained through the cloud building management platform 620 generated derived time series data and / or that generated by the cloud building management platform 620 store directional acyclic graphs (DAGs) used to process the time series data.

Immer noch unter Bezugnahme auf 5 kann die Cloud-Gebäudeverwaltungsplattform 620 die Rohzeitreihendaten von dem Datenkollektor 612 empfangen und/oder die Rohzeitreihendaten aus der Speicherung 614 abrufen. Die Cloud-Gebäudeverwaltungsplattform 620 kann eine Vielzahl von Diensten enthalten, die zum Analysieren, Verarbeiten und Transformieren der Rohzeitreihendaten konfiguriert sind. Beispielsweise wird gezeigt, dass die Cloud-Gebäudeverwaltungsplattform 620 einen Sicherheitsdienst 622, einen Analysedienst 624, einen Entitätsdienst 626 und einen Zeitreihendienst 628 enthält. Der Sicherheitsdienst 622 kann den Rohzeitreihendaten Sicherheitsattribute zuweisen, um sicherzustellen, dass die Zeitreihendaten nur für autorisierte Personen, Systeme oder Anwendungen zugänglich sind. Der Sicherheitsdienst 622 kann eine Benachrichtigungsschicht zum Austauschen sicherer Nachrichten mit dem Entitätsdienst 626 enthalten. Bei manchen Ausführungsformen kann der Sicherheitsdienst 622 Berechtigungsdaten an den Entitätsdienst 626 liefern, so dass der Entitätsdienst 626 die Arten von Entitätsdaten bestimmen kann, auf die eine spezielle Entität oder Vorrichtung zugreifen kann. Der Entitätsdienst 624 kann den Zeitreihendaten Entitätsinformationen (oder Entitätsdaten) zuweisen, um Datenpunkte einem speziellen System, einer speziellen Vorrichtung oder einem speziellen Bereich zuzuordnen. Der Zeitreihendienst 628 und der Analysedienst 624 können verschiedene Transformationen, Operationen oder andere Funktionen auf die Rohzeitreihendaten anwenden, um abgeleitete Zeitreihendaten zu erzeugen.Still referring to 5 can the cloud building management platform 620 the raw time series data from the data collector 612 received and / or the raw time series data from storage 614 recall. The cloud building management platform 620 can include a variety of services configured to analyze, process, and transform raw series data. For example, the cloud building management platform is shown 620 a security service 622 , an analysis service 624 , an entity service 626 and a time series service 628 contains. The security service 622 can assign security attributes to the raw time series data to ensure that the time series data is only accessible to authorized persons, systems or applications. The security service 622 can create a notification layer to exchange secure messages with the entity service 626 contain. In some embodiments, the security service can 622 Entitlement service credentials 626 deliver so that the entity service 626 can determine the types of entity data that a particular entity or device can access. The entity service 624 may assign entity information (or entity data) to the time series data to associate data points with a particular system, device, or area. The time series service 628 and the analytics service 624 can apply various transformations, operations, or other functions to the raw time series data to generate derived time series data.

Bei manchen Ausführungsformen aggregiert der Zeitreihendienst 628 vordefinierte Intervalle der Rohzeitreihendaten (z. B. viertelstündliche Intervalle, stündliche Intervalle, tägliche Intervalle, monatliche Intervalle usw.), um neue abgeleitete Zeitreihen der aggregierten Werte zu erzeugen. Diese abgeleiteten Zeitreihen können als „Daten-Rollups“ bezeichnet werden, da es sich um verdichtete Versionen der Rohzeitreihendaten handelt. Die durch den Zeitreihendienst 628 erzeugten Daten-Rollups stellen einen effizienten Mechanismus für Anwendungen 630 bereit, um die Zeitreihendaten abzufragen. Beispielsweise können Anwendungen 630 Visualisierungen der Zeitreihendaten (z. B. Diagramme, Graphen usw.) unter Verwendung der voraggregierten Daten-Rollups anstelle der Rohzeitreihendaten erzeugen. Dies ermöglicht, dass die Anwendungen 630 die voraggregierten Daten-Rollups einfach abrufen und präsentieren, ohne dass die Anwendungen 630 eine Aggregation als Reaktion auf die Abfrage durchführen müssen. Da die Daten-Rollups voraggregiert sind, können die Anwendungen 630 die Daten-Rollups schnell und effizient präsentieren, ohne dass zur Abfragezeit eine zusätzliche Verarbeitung erforderlich ist, um aggregierte Zeitreihenwerte zu erzeugen.In some embodiments, the time series service aggregates 628 predefined intervals of raw time series data (e.g. quarterly intervals, hourly intervals, daily intervals, monthly intervals, etc.) to generate new derived time series of the aggregated values. These derived time series can be called "data rollups" because they are condensed versions of the raw time series data. The through the time series service 628 generated data rollups represent an efficient mechanism for applications 630 ready to query the time series data. For example, applications 630 Generate visualizations of the time series data (e.g. charts, graphs, etc.) using the pre-aggregated data rollups instead of the raw time series data. This enables the applications 630 Simply retrieve and present the pre-aggregated data rollups without the applications 630 need to perform an aggregation in response to the query. Because the data rollups are pre-aggregated, the applications can 630 Present the data rollups quickly and efficiently without additional processing at query time to generate aggregate time series values.

Bei manchen Ausführungsformen berechnet der Zeitreihendienst 628 virtuelle Punkte basierend auf den Rohzeitreihendaten und/oder den abgeleiteten Zeitreihendaten. Virtuelle Punkte können berechnet werden, indem eine Vielzahl von mathematischen Operationen (z. B. Addition, Subtraktion, Multiplikation, Division usw.) oder Funktionen (z. B. Durchschnittswert, Maximalwert, Minimalwert, thermodynamische Funktionen, lineare Funktionen, nichtlineare Funktionen usw.) auf die tatsächlichen Datenpunkten angewendet werden, die durch die Zeitreihendaten repräsentiert werden. Beispielsweise kann der Zeitreihendienst 628 einen virtuellen Datenpunkt (Punkt - ID3) durch Addieren von zwei oder mehr tatsächlichen Datenpunkten (Punkt - ID1 und Punkt - ID2) berechnen (z. B. pointID3 = pointID1 + Punkt - ID2). Als ein anderes Beispiel kann der Zeitreihendienst 628 einen Enthalpiedatenpunkt (Punkt - ID4) basierend auf einem gemessenen Temperaturdatenpunkt (Punkt - ID5) und einen gemessenen Druckdatenpunkt (Punkt - ID6) berechnen (z. B. Punkt - ID4 = Enthalpie (Punkt - ID5, Punkt - ID6)). Die virtuellen Datenpunkte können als abgeleitete Zeitreihendaten gespeichert werden.In some embodiments, the time series service computes 628 virtual points based on the raw time series data and / or the derived time series data. Virtual points can be calculated using a variety of mathematical operations (e.g. addition, subtraction, multiplication, division etc.) or functions (e.g. average value, maximum value, minimum value, thermodynamic functions, linear functions, non-linear functions, etc.) are applied to the actual data points represented by the time series data. For example, the time series service 628 calculate a virtual data point (point ID 3 ) by adding two or more actual data points (point ID 1 and point ID 2 ) (e.g. pointID 3 = pointID 1 + point ID 2 ). As another example, the time series service 628 calculate an enthalpy data point (point ID 4 ) based on a measured temperature data point (point ID 5 ) and a measured pressure data point (point ID 6 ) (e.g. point ID 4 = enthalpy (point ID 5 , point ID 6 )). The virtual data points can be saved as derived time series data.

Die Anwendungen 630 können auf die virtuellen Datenpunkte auf dieselbe Weise wie die tatsächlichen Datenpunkte zugreifen und diese verwenden. Die Anwendungen 630 müssen möglicherweise nicht wissen, ob ein Datenpunkt ein tatsächlicher Datenpunkt oder ein virtueller Datenpunkt ist, da beide Arten von Datenpunkten als abgeleitete Zeitreihendaten gespeichert werden können und durch die Anwendungen 630 auf dieselbe Weise behandelt werden können. Bei manchen Ausführungsformen werden die abgeleiteten Zeitreihen mit Attributen gespeichert, die jeden Datenpunkt als entweder einen virtuellen Datenpunkt oder einen tatsächlichen Datenpunkt bezeichnen. Solche Attribute ermöglichen es, dass die Anwendungen 630 identifizieren, ob eine gegebene Zeitreihe einen virtuellen Datenpunkt oder einen tatsächlichen Datenpunkt repräsentiert, obwohl beide Arten von Datenpunkten durch die Anwendungen 630 auf die gleiche Weise behandelt werden können. Diese und andere Merkmale des Zeitreihendienstes 628 werden unter Bezugnahme auf 9 ausführlicher beschrieben.The applications 630 can access and use the virtual data points in the same way as the actual data points. The applications 630 may not need to know if a data point is an actual data point or a virtual data point since both types of data points can be stored as derived time series data and by the applications 630 can be treated in the same way. In some embodiments, the derived time series are stored with attributes that designate each data point as either a virtual data point or an actual data point. Such attributes allow the applications 630 identify whether a given time series represents a virtual data point or an actual data point, although both types of data points by the applications 630 can be treated in the same way. These and other characteristics of time series service 628 are with reference to 9 described in more detail.

Bei manchen Ausführungsformen analysiert der Analysedienst 624 die Rohzeitreihendaten und/oder die abgeleiteten Zeitreihendaten, um Fehler zu detektieren. Der Analysedienst 624 kann einen Satz von Fehldetektionsregeln auf die Zeitreihendaten anwenden, um in jedem Intervall der Zeitreihen zu bestimmen, ob ein Fehler detektiert wird. Die Fehlerdetektionen können als abgeleitete Zeitreihendaten gespeichert werden. Beispielsweise kann der Analysedienst 624 eine neue Fehlerdetektionszeitreihe mit Datenwerten erzeugen, die angeben, ob in jedem Intervall der Zeitreihe ein Fehler detektiert wurde. Die Fehlerdetektionszeitreihen können als abgeleitete Zeitreihendaten zusammen mit den Rohzeitreihendaten in der Speicherung 614 gespeichert werden.In some embodiments, the analytics service analyzes 624 the raw time series data and / or the derived time series data to detect errors. The analysis service 624 may apply a set of mis-detection rules to the time series data to determine whether an error is detected in each interval of the time series. The error detections can be saved as derived time series data. For example, the analysis service 624 generate a new error detection time series with data values that indicate whether an error has been detected in each interval of the time series. The error detection time series can be stored as derived time series data together with the raw time series data 614 get saved.

Immer noch unter Bezugnahme auf 6 ist gezeigt, dass das BMS 600 einige Anwendungen 630 enthält, einschließlich einer Energieverwaltungsanwendung 632, Überwachungs- und Berichtsanwendungen 634 und Unternehmenssteueranwendungen 636. Obwohl nur einige wenige Anwendungen 630 gezeigt sind, ist es vorgesehen, dass die Anwendungen 630 beliebige einer Vielzahl von geeigneten Anwendungen enthalten können, die dazu konfiguriert sind, die durch die Cloud-Gebäudeverwaltungsplattform 620 erzeugten Rohzeitreihen oder abgeleiteten Zeitreihen zu verwenden. Bei manchen Ausführungsformen existieren die Anwendungen 630 als eine separate Schicht des BMS 600 (z. B. als ein Teil der Cloud-Gebäudeverwaltungsplattform 620 und/oder des Datenkollektors 612). Bei anderen Ausführungsformen können die Anwendungen 630 als Remote-Anwendungen existieren, die auf Remote-Systemen oder -Vorrichtungen ausgeführt werden (z. B. Remote-Systeme und - Anwendungen 544, Client-Vorrichtungen 548 und/oder dergleichen).Still referring to 6 is shown that the BMS 600 some applications 630 contains, including a power management application 632 , Monitoring and reporting applications 634 and corporate tax applications 636 . Although only a few uses 630 are shown, it is intended that the applications 630 may include any of a variety of suitable applications configured through the cloud building management platform 620 generated raw time series or derived time series. In some embodiments, the applications exist 630 as a separate layer of the BMS 600 (e.g. as part of the cloud building management platform 620 and / or the data collector 612 ). In other embodiments, the applications 630 exist as remote applications that run on remote systems or devices (e.g. remote systems and applications 544 , Client devices 548 and / or the like).

Die Anwendungen 630 können die abgeleiteten Zeitreihendaten verwenden, um eine Vielzahl von Datenvisualisierungs-, Überwachungs- und/oder Steueraktivitäten durchzuführen. Beispielsweise können die Energieverwaltungsanwendung 632 und die Überwachungs- und Berichtsanwendung 634 die abgeleiteten Zeitreihendaten verwenden, um Benutzeroberflächen (z. B. Diagramme, Graphen usw.) zu erzeugen, die die abgeleiteten Zeitreihendaten einem Benutzer präsentieren. Bei manchen Ausführungsformen präsentieren die Benutzeroberflächen die Rohzeitreihendaten und die abgeleiteten Daten-Rollups in einem einzigen Diagramm oder Graph. Beispielsweise kann ein Dropdown-Selektor bereitgestellt werden, um zu ermöglichen, dass ein Benutzer die Rohzeitreihendaten oder beliebige der Daten-Rollups für einen bestimmten Datenpunkt auswählt.The applications 630 can use the derived time series data to perform a variety of data visualization, monitoring, and / or control activities. For example, the power management application 632 and the monitoring and reporting application 634 use the derived time series data to create user interfaces (e.g., graphs, graphs, etc.) that present the derived time series data to a user. In some embodiments, the user interfaces present the raw time series data and the derived data rollups in a single diagram or graph. For example, a drop-down selector can be provided to allow a user to select the raw time series data or any of the data rollups for a particular data point.

Die Unternehmenssteueranwendung 636 kann die abgeleiteten Zeitreihendaten verwenden, um verschiedene Steueraktivitäten durchzuführen. Beispielsweise kann die Unternehmenssteueranwendung 636 die abgeleiteten Zeitreihendaten als Eingabe für einen Steueralgorithmus (z. B. einen zustandsbasierten Algorithmus, einen ESC-Algorithmen (nach Extremen suchende Steuerung), Proportional-Integral(PI)-Steueralgorithmus, einen Proportional-Integral-Ableitend(PID)-Steueralgorithmus, einen MPC(Modellvorhersagesteuerung)-Algorithmus, einen Rückkopplungssteueralgorithmus usw.) zum Erzeugen von Steuersignalen für die Gebäudesubsysteme 528 verwenden. Bei manchen Ausführungsformen verwenden die Gebäudesubsysteme 528 die Steuersignale, um Gebäudeausrüstung zu betreiben. Das Betreiben der Gebäudeausrüstung kann die gemessenen oder berechneten Werte der Datenabtastwerte beeinflussen, die an das BMS 600 und/oder die Cloud-Gebäudeverwaltungsplattform 620 geliefert werden. Dementsprechend kann die Unternehmenssteueranwendung 636 die abgeleiteten Zeitreihendaten als Rückkopplung verwenden, um die Systeme und Vorrichtungen der Gebäudesubsysteme 528 zu steuern.The corporate tax application 636 can use the derived time series data to perform various tax activities. For example, the corporate tax application 636 the derived time series data as input to a control algorithm (e.g. a state based algorithm, an ESC algorithm (controller looking for extremes), proportional integral (PI) control algorithm, a proportional integral derived (PID) control algorithm, one MPC (Model Prediction Control) algorithm, a feedback control algorithm, etc.) for generating control signals for the building subsystems 528 use. In some embodiments, the building subsystems use 528 the control signals to operate building equipment. Operating building equipment can affect the measured or calculated values of the data samples sent to the BMS 600 and / or the Cloud building management platform 620 to be delivered. Accordingly, the corporate tax application 636 use the derived time series data as feedback to the systems and devices of the building subsystems 528 to control.

Cloud-Gebäudeverwaltungsplattform-EntitätsdienstCloud building management platform entity service

Unter Bezugnahme auf 7 ist ein Blockdiagramm gemäß einigen Ausführungsformen gezeigt, das den Entitätsdienst 626 ausführlicher veranschaulicht. Der Entitätsdienst 626 registriert und verwaltet verschiedene Gebäude (z. B. 110-140), Bereiche, Personen, Subsysteme (z. B. 428), Vorrichtungen (z. B. 112-146) und andere Entitäten in der Cloud-Gebäudeverwaltungsplattform 620. Gemäß verschiedenen Ausführungsformen kann eine Entität eine beliebige Person, ein beliebiger Ort oder ein beliebiges physisches Objekt sein, was im Folgenden als Objektentität bezeichnet wird. Ferner kann eine Entität ein beliebiges Ereignis, ein beliebiger Datenpunkt oder eine Aufzeichnungsstruktur sein, was im Folgenden als Datenentität bezeichnet wird. Darüber hinaus können Beziehungen zwischen Entitäten durch relationale Objekte definiert werden.With reference to 7 A block diagram is shown, according to some embodiments, that the entity service 626 illustrated in more detail. The entity service 626 registers and manages various buildings (e.g. 110-140 ), Areas, people, subsystems (e.g. 428 ), Devices (e.g. 112-146 ) and other entities in the cloud building management platform 620 . According to various embodiments, an entity can be any person, location or physical object, which is referred to below as an object entity. Furthermore, an entity can be any event, any data point or a recording structure, which is referred to below as a data entity. In addition, relationships between entities can be defined by relational objects.

Bei manchen Ausführungsformen kann eine Objektentität als wenigstens drei Arten von Attributen aufweisend definiert sein. Beispielsweise kann eine Objektentität ein statisches Attribut, ein dynamisches Attribut und ein Verhaltensattribut aufweisen. Das statische Attribut kann eine beliebige eindeutige Kennung der Objektentität oder ein beliebiges Merkmal der Objektentität enthalten, die/das sich entweder nicht mit der Zeit ändert oder sich nur selten ändert (z. B. eine Vorrichtung-ID, der Name oder die Sozialversicherungsnummer einer Person, die Adresse oder Zimmernummer eines Ortes und dergleichen). Das dynamische Attribut kann eine Eigenschaft der Objektentität enthalten, die sich im Laufe der Zeit ändert (z. B. Standort, Alter, Messung, Datenpunkt und dergleichen). Bei manchen Ausführungsformen kann das dynamische Attribut einer Objektentität mit einer Datenentität verknüpft sein. In diesem Fall kann das dynamische Attribut der Objektentität einfach auf einen Standort (z. B. Daten-/Netzadresse) oder ein statisches Attribut (z. B. Kennung) der verknüpften Datenentität verweisen, die die Daten (z. B. den Wert oder die Informationen) des dynamischen Attributs speichert. Dementsprechend wird bei manche solchen Ausführungsformen, wenn ein neuer Datenpunkt (z. B. Zeitreihendaten) für die Objektentität empfangen wird, möglicherweise nur die verknüpfte Datenentität aktualisiert, während die Objektentität unverändert verbleibt. Daher können Ressourcen, die zum Aktualisieren der Objektentität aufgewendet worden wären, reduziert werden.In some embodiments, an object entity can be defined as having at least three types of attributes. For example, an object entity can have a static attribute, a dynamic attribute, and a behavior attribute. The static attribute can include any unique identifier of the object entity or any feature of the object entity that either does not change over time or changes only rarely (e.g., a device ID, a person's name, or social security number , the address or room number of a place and the like). The dynamic attribute may include a property of the object entity that changes over time (e.g., location, age, measurement, data point, and the like). In some embodiments, the dynamic attribute of an object entity may be linked to a data entity. In this case, the dynamic attribute of the object entity can simply refer to a location (e.g. data / network address) or a static attribute (e.g. identifier) of the linked data entity that the data (e.g. the value or stores the information) of the dynamic attribute. Accordingly, in some such embodiments, when a new data point (e.g., time series data) is received for the object entity, only the linked data entity may be updated while the object entity remains unchanged. Therefore, resources that would have been spent updating the object entity can be reduced.

Die vorliegende Offenbarung ist jedoch nicht darauf beschränkt. Beispielsweise kann es bei manchen Ausführungsformen auch manche Daten geben, die in dem dynamischen Attribut der Objektentität selbst aktualisiert werden (z. B. während vorbestimmter Intervalle). Beispielsweise kann die verknüpfte Datenentität dazu konfiguriert sein, jedes Mal aktualisiert zu werden, wenn ein neuer Datenpunkt empfangen wird, wohingegen das entsprechende dynamische Attribut der Objektentität dazu konfiguriert sein kann, weniger häufig aktualisiert zu werden (z. B. in vorbestimmten Intervallen, die geringer sind als die Intervalle, während welchen die neuen Datenpunkte empfangen werden). Bei manchen Implementierungen kann das dynamische Attribut der Objektentität sowohl eine Verknüpfung mit der Datenentität als auch entweder einen Teil der Daten von der Datenentität oder Daten, die von den Daten der Datenentität abgeleitet sind, enthalten. Beispielsweise könnte bei einer Ausführungsform, bei der periodische Temperaturlesewerte von einem Thermostat empfangen werden, eine dem Thermostat entsprechende Objektentität den letzten Temperaturlesewert und eine Verknüpfung zu einer Dateneinheit enthalten, die eine Reihe der letzten zehn von dem Thermostat empfangenen Temperaturlesewerte speichert.However, the present disclosure is not so limited. For example, in some embodiments, there may also be some data that is updated in the dynamic attribute of the object entity itself (e.g., during predetermined intervals). For example, the linked data entity may be configured to be updated each time a new data point is received, whereas the corresponding dynamic attribute of the object entity may be configured to be updated less frequently (e.g., at predetermined intervals, the lower than the intervals during which the new data points are received). In some implementations, the dynamic attribute of the object entity can include both a link to the data entity and either part of the data from the data entity or data derived from the data of the data entity. For example, in one embodiment where periodic temperature readings are received by a thermostat, an object entity corresponding to the thermostat could include the last temperature readout and a link to a data unit that stores a series of the last ten temperature readings received by the thermostat.

Das Verhaltensattribut kann eine Funktion der Objektentität definieren, beispielsweise basierend auf Eingaben, Fähigkeiten und/oder Berechtigungen. Beispielsweise können Verhaltensattribute die Arten von Eingaben definieren, für deren Annahme die Objektentität konfiguriert ist, wie die Objektentität unter bestimmten Bedingungen reagieren soll, welche Arten von Funktionen die Objektentität durchführen kann und dergleichen. Als nicht einschränkendes Beispiel kann, falls die Objektentität eine Person repräsentiert, das Verhaltensattribut der Person ihre Berufsbezeichnung oder Berufsaufgaben, Benutzerberechtigungen für den Zugriff auf gewisse Systeme oder Standorte, ein erwarteter Standort oder ein erwartetes Verhalten zu einer bestimmten Tageszeit, Tendenzen oder Präferenzen basierend auf verbundenen Aktivitätsdaten, die durch den Entitätsdienst 626 (z. B. Social-Media-Aktivität) empfangen werden, und dergleichen sein. Als Weiteres nicht beschränkendes Beispiel können die Verhaltensattribute, falls die Objektentität eine Vorrichtung repräsentiert, die Arten von Eingaben beinhalten, die die Vorrichtung empfangen kann, die Arten von Ausgaben, die die Vorrichtung erzeugen kann, die Arten von Steuerungen, zu denen die Vorrichtung in der Lage ist, die Arten von Software oder Versionen, über die die Vorrichtung derzeit verfügt, bekannte Reaktionen der Vorrichtung auf gewisse Arten von Eingaben (z. B. Verhalten der durch ihre Programmierung definierten Vorrichtung) und dergleichen.The behavioral attribute can define a function of the object entity, for example based on inputs, skills and / or permissions. For example, behavioral attributes can define the types of inputs that the object entity is configured to accept, how the object entity should respond under certain conditions, what types of functions the object entity can perform, and the like. As a non-limiting example, if the object entity represents a person, the person's behavioral attribute may be their job title or job tasks, user permissions to access certain systems or locations, an expected location or behavior at a particular time of day, tendencies or preferences based on related Activity data provided by the entity service 626 (e.g., social media activity), and the like. As a further non-limiting example, if the object entity represents a device, the behavioral attributes may include the types of inputs that the device can receive, the types of outputs that the device can produce, the types of controls to which the device is connected It is capable of the types of software or versions that the device currently has, known device responses to certain types of inputs (e.g., behavior of the device defined by its programming) and the like.

Bei manchen Ausführungsformen kann die Datenentität als wenigstens ein statisches Attribut und ein dynamisches Attribut aufweisend definiert sein. Das statische Attribut der Datenentität kann eine eindeutige Kennung oder Beschreibung der Datenentität enthalten. Falls zum Beispiel die Datenentität mit einem dynamischen Attribut einer Objektentität verknüpft ist, kann das statische Attribut der Datenentität eine Kennung enthalten, die zum Verknüpfen mit dem dynamischen Attribut der Objektentität verwendet wird. Bei manchen Ausführungsformen repräsentiert das dynamische Attribut der Datenentität die Daten für das dynamische Attribut der verknüpften Objektentität. Bei manchen Ausführungsformen kann das dynamische Attribut der Datenentität manche anderen Daten repräsentieren, die basierend auf Daten von mehreren Datenquellen abgeleitet, analysiert, gefolgert, berechnet oder bestimmt werden. In some embodiments, the data entity can be defined as having at least one static attribute and one dynamic attribute. The static attribute of the data entity can contain a unique identifier or description of the data entity. For example, if the data entity is linked to a dynamic attribute of an object entity, the static attribute of the data entity can include an identifier that is used to link to the dynamic attribute of the object entity. In some embodiments, the dynamic attribute of the data entity represents the data for the dynamic attribute of the linked object entity. In some embodiments, the dynamic attribute of the data entity may represent some other data that is derived, analyzed, inferred, calculated, or determined based on data from multiple data sources.

Bei manchen Ausführungsformen kann das relationale Objekt als wenigstens ein statisches Attribut aufweisend definiert sein. Das statische Attribut des relationalen Objekts kann den Typ der Beziehung zwischen zwei oder mehr Entitäten semantisch definieren. Beispielsweise kann bei einer nicht beschränkenden Ausführungsform ein relationales Objekt für eine Beziehung, die semantisch definiert, dass Entität A einen Teil von Entität B aufweist oder dass Entität B ein Teil von Entität A ist, Folgendes umfassen:


 hatTeil {Entität A, Entität B}
wobei das statische Attribut hatTeil definiert, was die Beziehung der aufgelisteten Entitäten ist, und die Reihenfolge der aufgelisteten Entitäten oder Datenfelder des relationalen Objekts gibt an, welche Entität der Teil der anderen ist (z. B. Entität A → hatTeil → Entität B).In some embodiments, the relational object can be defined as having at least one static attribute. The relational object's static attribute can semantically define the type of relationship between two or more entities. For example, in one non-limiting embodiment, a relational object for a relationship that semantically defines that entity A is part of entity B or that entity B is part of entity A may include:

 hatpart {entity A, entity B} 
where the static attribute has part defines what the relationship of the listed entities is, and the order of the listed entities or data fields of the relational object indicates which entity is part of the other (e.g. entity A → has part → entity B).

In verschiedenen Ausführungsformen ist das relationale Objekt ein objektorientiertes Konstrukt mit vordefinierten Feldern, die die Beziehung zwischen zwei oder mehr Entitäten unabhängig vom Typ der Entitäten definieren. Beispielsweise kann die Cloud-Gebäudeverwaltungsplattform 620 einen umfangreichen Satz vorgefertigter Entitätsmodelle mit standardisierten relationalen Objekten bereitstellen, die verwendet werden können, um zu beschreiben, wie zwei oder mehr Entitäten semantisch in Zusammenhang stehen und wie Daten zwischen den Entitäten ausgetauscht und/oder verarbeitet werden. Dementsprechend kann eine globale Änderung einer Definition oder Beziehung eines relationalen Objekts auf der Systemebene auf Objektebene erreicht werden, ohne dass die Entitätsbeziehungen für jedes Objekt oder jede Entität einzeln manuell geändert werden müssen. Ferner kann bei manchen Ausführungsformen eine globale Änderung auf der Systemebene auf Anwendungen von Drittanbietern ausgebreitet werden, die in der Cloud-Gebäudeverwaltungsplattform 620 integriert sind, so dass die globale Änderung über alle der Anwendungen von Drittanbietern hinweg implementiert werden kann, ohne dass eine manuelle Implementierung der Änderung in jeder unterschiedlichen Anwendung erforderlich ist.In various embodiments, the relational object is an object-oriented construct with predefined fields that define the relationship between two or more entities regardless of the type of entities. For example, the cloud building management platform 620 provide a comprehensive set of pre-made entity models with standardized relational objects that can be used to describe how two or more entities are semantically related and how data is exchanged and / or processed between the entities. Accordingly, a global change in the definition or relationship of a relational object at the system level at the object level can be achieved without having to manually change the entity relationships for each object or entity. Furthermore, in some embodiments, a global change at the system level can be propagated to third-party applications that are in the cloud building management platform 620 are integrated so that the global change can be implemented across all of the third-party applications without the need to manually implement the change in each different application.

Zum Beispiel ist unter Bezugnahme auf 8 ein beispielhafter Entitätsgraph von Entitätsdaten gemäß manchen Ausführungsformen gezeigt. Der Begriff „Entitätsdaten“ wird verwendet, um die Attribute verschiedener Entitäten und die Beziehungen zwischen den Entitäten zu beschreiben. Beispielsweise können Entitätsdaten in der Form eines Entitätsgraphen repräsentiert werden. Bei manchen Ausführungsformen beinhalten Entitätsdaten beliebige geeignete vordefinierte Datenmodelle (z. B. als eine Tabelle, JSON-Daten und/oder dergleichen), wie etwa Entitätstyp oder Objekt, und beinhalten ferner ein oder mehrere relationale Objekte, die die Beziehungen zwischen den Entitäten semantisch definieren. Die relationalen Objekte können dabei helfen, beispielsweise hierarchische oder gerichtete Beziehungen zwischen den Entitäten semantisch zu definieren (z. B. steuert die Entität X die Entität Y, speist die Entität A die Entität B, befindet sich die Entität 1 in der Entität 2 und dergleichen). Beispielsweise kann eine Objektentität (z. B. eine IoT-Vorrichtung) durch einen Entitätstyp oder ein Objekt repräsentiert werden, was im Allgemeinen beschreibt, wie Daten, die der Entität entsprechen, strukturiert und gespeichert werden.For example, referring to 8th an exemplary entity graph of entity data according to some embodiments is shown. The term “entity data” is used to describe the attributes of different entities and the relationships between the entities. For example, entity data can be represented in the form of an entity graph. In some embodiments, entity data includes any suitable predefined data models (e.g., as a table, JSON data, and / or the like), such as entity type or object, and further includes one or more relational objects that semantically define the relationships between the entities . The relational objects can help, for example, semantically define hierarchical or directional relationships between the entities (e.g., entity X controls entity Y, entity A feeds entity B, entity 1 resides in entity 2, and the like ). For example, an object entity (e.g., an IoT device) can be represented by an entity type or an object, which generally describes how data corresponding to the entity is structured and stored.

Beispielsweise kann ein Entitätstyp (oder Objekt) „Thermostat“ über das folgende Schema repräsentiert werden:

       Thermostat {
               Typ,
               Modell-Nr.,
               Vorrichtungsname,
               Herstellungsdatum,
               Seriennummer,
               MAC-Adresse,
               Standort,
               Aktuelle Luftqualität,
               Aktuelle Innentemperatur,
               Aktuelle Außentemperatur,
               Zielinnentemperatur,
       }Punktzeitplan (z. B. BACnet-Zeitplanobjekt)
wobei verschiedene Attribute statische Attribute (z. B. „Typ“, „Modellnummer“, „Vorrichtungsname“ usw.), dynamische Attribute (z. B. „Aktuelle Luftqualität“, „Aktuelle Außentemperatur“ usw.) oder Verhaltensattribute (z. B. „Innentemperatur“ usw.) für die Objektentität „Thermostat“ sind. In einer relationalen Datenbank ist das Objekt „Thermostat“ ein Tabellenname und repräsentieren die Attribute Spaltennamen.For example, an entity type (or object) "thermostat" can be represented using the following scheme:
       Thermostat {
               Type,
               Model No.,
               Device name,
               Manufacturing date,
                Serial number,
               MAC address,
               Location,
               Current air quality,
               Current inside temperature,
               Current outside temperature,
               Target internal temperature,
       } Point schedule (e.g. BACnet schedule object) 
where various attributes are static attributes (e.g. "type", "model number", "device name" etc.), dynamic attributes (e.g. "current air quality", "current outside temperature" etc.) or behavioral attributes (e.g. "Indoor temperature" etc.) for the object entity "Thermostat". In a relational database, the "Thermostat" object is a table name and the attributes represent column names.

Ein Beispiel für ein Objektentitätsdatenmodell für eine Person mit dem Namen John Smith in einer relationalen Datenbank kann durch die folgende Tabelle repräsentiert werden: Vorname Nachname Tel.-Nr. Alter Standort Berufsbezeichnung John Smith (213)220-XXXX 36 Zu Hause Ingenieur wobei verschiedene Attribute statische Attribute (z. B. „Vorname“, „Nachname“ usw.), dynamische Attribute (z. B. „Alter“, „Standort“ usw.) oder Verhaltensattribute (z. B. „Ingenieur“ für die Objektentität „John Smith“ sind.An example of an object entity data model for a person named John Smith in a relational database can be represented by the following table: First name Surname Telephone number. Age Location Job title John Smith (213)220-XXXX 36 At home engineer where various attributes are static attributes (e.g. "first name", "last name" etc.), dynamic attributes (e.g. "age", "location" etc.) or behavioral attributes (e.g. "engineer" for the Object entity "John Smith" are.

Eine beispielhafte Datenentität für den Datenpunkt „Aktuelle Innentemperatur“ für das „Thermostat“ von John Smith in einer relationalen Datenbank kann durch die folgende Tabelle repräsentiert werden: Aktueller Wert Beschreibung Vorrichtungstyp Maßeinheit 68 „Aktuelle Innentemperatur von Johns Haus“ Thermostat Grad-F wobei verschiedene Attribute statische Attribute (z. B. „Beschreibung“ und „Vorrichtungstyp“) und dynamische Attribute (z. B. „Aktueller Wert“) sind.An example data entity for the data point "Current inside temperature" for the "Thermostat" from John Smith in a relational database can be represented by the following table: Current value description Device type Unit of measurement 68 "Current inside temperature of John's house" thermostat Degree-F where various attributes are static attributes (e.g. "Description" and "Device type") and dynamic attributes (e.g. "Current value").

Während das Strukturieren der Entitäten über den Entitätstyp oder das Objekt dabei helfen kann, die Datenrepräsentation der Entitäten zu definieren, liefern diese Datenmodelle keine Informationen darüber, wie die Entitäten in Beziehung zueinander stehen. Beispielsweise benötigt ein BMS, ein Gebäudesubsystem oder eine Vorrichtung möglicherweise Daten von mehreren Quellen sowie Informationen darüber, wie die Quellen in Beziehung zueinander stehen, um eine ordnungsgemäße Entscheidung, Handlung oder Empfehlung zu liefern. Dementsprechend enthalten die Entitätsdaten bei verschiedenen Ausführungsformen ferner die relationalen Objekte, um die Beziehungen zwischen den Entitäten semantisch zu definieren, was dabei helfen kann, die Geschwindigkeiten beim Analysieren von Daten zu erhöhen sowie eine einfache Navigation und ein einfaches Durchsuchen bereitzustellen.While structuring entities through the entity type or object can help define the data representation of the entities, these data models do not provide information about how the entities are related. For example, a BMS, building subsystem, or device may require data from multiple sources, as well as information about how the sources are related, to provide a proper decision, action, or recommendation. Accordingly, in various embodiments, the entity data further includes the relational objects to semantically define the relationships between the entities, which can help increase data parsing speeds and provide easy navigation and browsing.

Immer noch unter Bezugnahme auf 8 beinhaltet zum Beispiel ein Entitätsgraph 800 für die Thermostatobjektentität 802 verschiedene Klassenentitäten (z. B. Benutzer, Adresse, Sollwertbefehl und Temperaturobjekt), Objektentitäten (z. B. John und Thermostat), relationale Objekte (z. B. istEineArtVon, Besitzt, ist Verknüpft, hatSpeicherung und hatOperation) und Datenentitäten (AI-201-01, TS-ID 1, Täglicher Durchschnitt 1, Abnormale Innentemperatur 1, AO 101-1 und Geo 301-01). Die relationalen Objekte beschreiben die Beziehungen zwischen den verschiedenen Klassen-, Objekt- und Datenentitäten auf eine semantische und syntaktische Weise, so dass eine Anwendung oder ein Benutzer, der den Entitätsgraphen 800 betrachtet, schnell die Beziehungen und den Datenprozessfluss der Thermostatobjektentität 802 bestimmen kann, ohne auf einen Datenbankanalysten oder -ingenieur zurückgreifen zu müssen, um die Entitäten zu erzeugen, zu indizieren und/oder zu verwalten (z. B. unter Verwendung von SQL oder NoSQL). Bei manchen Ausführungsformen repräsentiert jede der Entitäten (z. B. Klassenentität, Objektentität und Datenentität) einen Knoten in dem Entitätsgraphen 800 und definieren die relationalen Objekte die Beziehungen oder Verbindungen zwischen den Entitäten (oder Knoten).Still referring to 8th includes, for example, an entity graph 800 for the thermostat object entity 802 Different class entities (e.g. user, address, setpoint command and temperature object), object entities (e.g. John and thermostat), relational objects (e.g. is a type of, has, is linked, has storage and has operation) and data entities (AI- 201-01, TS-ID 1 , Daily average 1 , Abnormal indoor temperature 1 , AO 101-1 and geo 301-01 ). The relational objects describe the relationships between the various class, object, and data entities in a semantic and syntactic way, so that an application or a user can see the entity graph 800 quickly looks at the relationships and data process flow of the thermostat object entity 802 can determine without having to rely on a database analyst or engineer to create, index, and / or manage the entities (e.g., using SQL or NoSQL). In some embodiments, each of the entities (e.g., class entity, object entity, and data entity) represent a node in the entity graph 800 and the relational objects define the relationships or connections between the entities (or nodes).

Beispielsweise zeigt der Entitätsgraph 800, dass eine Person mit dem Namen John (Objektentität) 804 eineArtvon (relationales Objekt) 806 Benutzer (Klassenentität) 808 ist. John 804 Besitzt (relationales Objekt) 810 den Thermostat (Objektentität) 802. Der Thermostat 802 weist ein Standortattribut (dynamisches Attribut) 812 auf, für das ist Verknüpft (relationales Objekt) 814 mit Geo 301-01 (Datenentität) 816 gilt, für das istEineArtVon (relationales Objekt) 818 einer Adresse (Klassenentität) 820 gilt. Dementsprechend sollte Geo 301-01 316 einen Datenpunkt aufweisen, der einer Adresse entspricht. For example, the entity graph shows 800 that a person named john (object entity) 804 a kind of (relational object) 806 User (class entity) 808 is. John 804 Possessed (relational object) 810 the thermostat (object entity) 802 . The thermostat 802 assigns a location attribute (dynamic attribute) 812 on, for which is linked (relational object) 814 with geo 301-01 (Data entity) 816 applies to which is a kind of (relational object) 818 an address (class entity) 820 applies. Accordingly, Geo 301-01 316 have a data point that corresponds to an address.

Der Thermostat 802 enthält ferner ein Attribut „Aktuelle Innentemperatur“ (dynamisches Attribut) 822, für das ist Verknüpft (relationales Objekt) 824 mit AI 201-01 (Datenentität) 826 gilt. AI 201-01 826 istEineArtVon (relationales Objekt) 828 Temperaturobjekt (Klassenentität) 830. Daher sollte AI 201-01 826 irgendeine Art von temperaturbezogenen Daten enthalten. AI 201-01 826 hatSpeicherung (relationales Objekt) 832 bei TS-ID 1 (Datenentität) 834, was Rohzeitreihendaten oder abgeleitete Zeitreihendaten für die Temperaturlesewerte sein kann. AI 201-01 826 HatOperation (relationales Objekt) 836 von Tagesdurschnitt 1 (Datenentität) 838, wofür istEineArtVon (relationales Objekt) 840 Analyseoperator (Klassenentität) 842 gilt. Somit resultiert der Tägliche Durchschnitt 1 aus einer Analyseoperation, die den täglichen Durchschnitt der Innentemperatur berechnet. Ferner gilt AI 201-01 826 hatOperation (relationales Objekt) 854 von Abnormale Innentemperatur (Datenentität) 856, wofür istEineArtVon (relationales Objekt) 858 Analyseoperator (Klassenentität) 860 gilt. Dementsprechend resultiert eine Abnormale Innentemperatur aus einer Analyseoperation zum Bestimmen einer abnormalen Temperatur (die z. B. einen Schwellenwert überschreitet oder unterschreitet).The thermostat 802 also contains an attribute "Current indoor temperature" (dynamic attribute) 822 , for which is linked (relational object) 824 with AI 201-01 (Data entity) 826 applies. AI 201-01 826 is a kind of (relational object) 828 Temperature object (class entity) 830 . Therefore AI 201-01 826 contain some kind of temperature related data. AI 201-01 826 has storage (relational object) 832 at TS-ID 1 (Data entity) 834 what can be raw time series data or derived time series data for the temperature readings. AI 201-01 826 HatOperation (relational object) 836 of daily average 1 (Data entity) 838 what is a kind of (relational object) for 840 Analysis operator (class entity) 842 applies. This results in the daily average 1 from an analysis operation that calculates the daily average of the inside temperature. AI also applies 201-01 826 hatOperation (relational object) 854 of abnormal internal temperature (data entity) 856 what is a kind of (relational object) for 858 Analysis operator (class entity) 860 applies. Accordingly, an abnormal indoor temperature results from an analysis operation to determine an abnormal temperature (e.g., exceeding or falling below a threshold).

Bei diesem Beispiel kann die Datenentität AI 201-01 526 durch das folgende Datenmodell dargestellt werden:

       Punkt {
               Name: „AI 201-01“;
               Typ: „analoger Eingang“;
               Wert: 72;
               Einheit: „Grad-F“;
       } Quelle: „Temperatursensor 1“
wobei „Punkt“ ein Beispiel für eine Datenentität ist, die durch die Cloud-Gebäudeverwaltungsplattform 620 erzeugt werden kann, um den Wert für das verknüpfte dynamische Attribut „Aktuelle Innentemperatur“ 822 der Thermostatentität 802 zu halten, und Quelle der Sensor oder die Vorrichtung in der Thermostatvorrichtung ist, der/die die Daten für das verknüpfte dynamische Attribut „Aktuelle Innentemperatur“ 822 bereitstellt.In this example, the data entity AI 201-01 526 can be represented by the following data model:
       Point {
               Name: "AI 201-01";
               Type: "analog input";
               Value: 72;
               Unit: "Grade-F";
       } Source: "Temperature sensor 1" 
where "dot" is an example of a data entity created by the cloud building management platform 620 can be generated to the value for the linked dynamic attribute "Current internal temperature" 822 the thermostat entity 802 and the source is the sensor or device in the thermostat device that contains the data for the linked dynamic attribute "current internal temperature" 822 provides.

Die Datenentität TS-Id 1 534 kann beispielsweise durch das folgende Datenmodell repräsentiert werden:

       Zeitreihe {
               Name: „TS-Id 1“;
               Typ: „Täglicher Durchschnitt“;
               Werte: [68, 20666, 70, 69, 71];
               Einheit: „Grad-F“;
               Punkt: „AI 201-01“;
       } Quelle: „Täglicher Durchschnitt 1“
wobei die Datenentität Täglicher Durchschnitt 1 838 einen speziellen Analyseoperator repräsentiert, der zum Erzeugen der Datenentität für die durchschnittliche tägliche Zeitreihe TS-Id 1 834 basierend auf den Werten der entsprechenden Datenentität für den Punkt AI 201-01 826 verwendet wird. Das relationale Objekt hatOperation zeigt, dass die AI-201-01-Datenentität 826 als eine Eingabe für die spezielle Logik/Mathematik-Operation verwendet wird, die durch Täglicher Durschnitt 1 838 repräsentiert wird. Die TS-ID 1 834 kann auch ein Attribut enthalten, das den Analyseoperator Täglicher Durchschnitt 1 838 als die Quelle für die Datenabtastwerte in den Zeitreihen identifiziert.The data entity TS-Id 1 534 can be represented by the following data model, for example:
       Time series {
               Name: "TS-Id 1";
               Type: "Daily average";
               Values: [68, 20666, 70, 69, 71];
               Unit: "Grade-F";
               Point: "AI 201-01";
       } Source: "Daily average 1" 
where the daily average data entity 1 838 represents a special analysis operator that is used to generate the data entity for the average daily time series TS-Id 1 834 based on the values of the corresponding data entity for the point AI 201-01 826. The relational object has Operation shows that the AI-201-01 data entity 826 is used as an input to the special logic / math operation represented by Daily Average 1,838. TS ID 1 834 may also include an attribute that identifies the Daily Average Analysis Operator 1 838 as the source for the data samples in the time series.

Immer noch unter Bezugnahme auf 8 zeigt der Entitätsgraph 800 für Thermostat 802, dass für das Attribut „Zielinnentemperatur“ (dynamisches Attribut) 844 istVerknpüpft (relationales Attribut) 846 mit der Datenentität AO 101-01 (Datenentität) 848 gilt. Die AO-101-O1-Datenentität 848 istEineArtVon (relationales Attribut) 850 Sollwertbefehl (Klassenentität) 852. Somit können die Daten in der Datenentität AO 101-01 848 über einen Befehl durch den Benutzer oder eine andere Entität eingestellt werden und können dazu verwendet werden, die Thermostatobjektentität 802 zu steuern. Dementsprechend stellt bei verschiedenen Ausführungsformen der Entitätsgraph 800 eine benutzerfreundliche Ansicht der verschiedenen Beziehungen zwischen den Entitäten und einen Datenverarbeitungsfluss bereit, was eine einfache Navigation, einfaches Durchsuchen und einfache Analyse von Daten ermöglicht.Still referring to 8th shows the entity graph 800 for thermostat 802 that for the attribute "target internal temperature" (dynamic attribute) 844 is linked (relational attribute) 846 with the data entity AO 101-01 (Data entity) 848 applies. The AO-101-O1 data entity 848 is a kind of (relational attribute) 850 Setpoint command (class entity) 852 . The data in the data entity AO 101-01 848 can be set via a command by the user or another entity and can be used to control the thermostat object 802 to control. Accordingly, in various embodiments, the entity graph 800 a user-friendly view of the various relationships between the entities and a data processing flow, which enables easy navigation, simple browsing and analysis of data.

Bei manchen Ausführungsformen können zwei beliebige Entitäten (oder Knoten) über ein oder mehrere relationale Objekte miteinander verbunden sein, die unterschiedliche Beziehungen zwischen den beiden Entitäten (oder Knoten) definieren. Zum Beispiel wird immer noch auf FIG. In 8 gezeigt, dass die Objektentität John 804 über ein relationales Objekt Besitzt 810 mit der Objektentität Thermostat 802 verbunden ist. In einer anderen Ausführungsform kann die Objektentität John 804 jedoch über mehr als ein relationales Objekt mit der Objektentität Thermostat 802 verbunden sein, so dass zusätzlich zu dem relationalen Objekt Besitzt 810 ein anderes relationales Objekt eine andere Beziehung zwischen der Objektentität John 804 und der Objektentität Aktivitätsverfolger 802 definieren kann. Beispielsweise kann ein anderes relationales Objekt, wie etwa istInZone oder istNichtInZone definieren, ob sich John (oder das Entitätsobjekt für John 804) derzeit innerhalb der von den Thermostat 802 versorgten Zone befindet (z. B. über das relationale Objekt istInZone) oder sich derzeit nicht innerhalb der von dem Thermostat 802 versorgten Zone befindet (z. B. über das relationale Objekt istNichtInZone).In some embodiments, any two entities (or nodes) can be linked together via one or more relational objects that define different relationships between the two entities (or nodes). For example, FIG. In 8th shown that the object entity John 804 owns a relational object 810 with the object entity thermostat 802 connected is. In another embodiment, the object entity can be John 804 however, more than one relational object with the thermostat object entity 802 connected so that in addition to owning the relational object 810 another relational object a different relationship between the John object entity 804 and the activity tracker object entity 802 can define. For example, another relational object, such as istInZone or istNichtInZone, can define whether John (or the entity object is for John 804 ) currently within that of the thermostat 802 zone supplied (e.g. via the relational object is InZone) or is currently not within the range of the thermostat 802 supplied zone (e.g. via the relational object is not in zone).

In diesem Fall kann das relationale Objekt istInZone, wenn die der Thermostatobjektentität 802 zugeordneten Datenentitäten anzeigen, dass sich John innerhalb der von dem Thermostat versorgten Zone befindet (was z. B. aus dem Standortattribut 812 und den Standortdaten für John 810 bestimmt werden kann), zwischen der Objektentität für John 610 und der Objektentität für Thermostat 802 erzeugt werden. Wenn andererseits die der Thermostatobjektentität 802 zugeordneten Datenentitäten anzeigen, dass sich John nicht innerhalb der von dem Thermostat versorgten Zone befindet (was z. B. bestimmt werden kann, wenn das Standortsattribut 812 einen anderen Standort als einen bekannten Standort von John zeigt), kann das relationale Objekt istNichtInZone zwischen der Objektentität für John 810 und der Objektentität für Thermostat 802 erzeigt werden. Beispielsweise kann das relationale Objekt istNichtInZone erzeugt werden, indem das relationale Objekt istInZone modifiziert wird oder das relationale Objekt istInZone gelöscht und das relationale Objekt istNichtInZone erzeugt wird. Somit können bei manchen Ausführungsformen die relationalen Objekte nach Bedarf oder Wunsch dynamisch erzeugt, modifiziert oder gelöscht werden.In this case, the relational object is InZone if that of the thermostat object entity 802 associated data entities indicate that John is within the zone served by the thermostat (e.g. from the location attribute 812 and the location data for John 810 can be determined), between the object entity for John 610 and the object entity for thermostat 802 be generated. If, on the other hand, that of the thermostat object entity 802 associated data entities indicate that John is not within the zone served by the thermostat (which can be determined, for example, if the location attribute 812 location other than a known John location), the relational object is not in the zone between the object entity for John 810 and the object entity for thermostat 802 be shown. For example, the relational object isNotInZone can be created by modifying the relational object istInZone or by deleting the relational object istInZone and creating the relational object isNotInZone. Thus, in some embodiments, the relational objects can be dynamically created, modified, or deleted as needed or desired.

Unter erneuter Bezugnahme auf 7 kann der Entitätsdienst 626 Rohdatenabtastwerte und/oder Rohzeitreihendaten in Daten transformieren, die Entitätsdaten entsprechen. Zum Beispiel kann, wie oben unter Bezugnahme auf 8, der Entitätsdienst 626 Datenentitäten erzeugen, die Datenpunkte in den Zeitreihendaten verwenden und/oder repräsentieren. Der Entitätsdienst 626 beinhaltet einen Webdienst 702, einen Registrierungsdienst 704, einen Verwaltungsdienst 706, einen Transformationsdienst 708, einen Suchdienst 710 und eine Speicherung 712. Bei manchen Ausführungsformen kann die Speicherung 712 eine interne Speicherung oder externe Speicherung sein. Beispielsweise kann die Speicherung 712 eine Speicherung 614 (siehe 6), eine interne Speicherung mit Bezug auf den Entitätsdienst 626 sein und/oder kann eine Remote-Datenbank, ein Cloud-basiertes Daten-Hosting oder eine andere Remote-Datenspeicherung beinhalten.Referring again to 7 can the entity service 626 Transform raw data samples and / or raw time series data into data corresponding to entity data. For example, as above with reference to 8th , the entity service 626 Generate data entities that use and / or represent data points in the time series data. The entity service 626 includes a web service 702 , a registration service 704 , an administrative service 706 , a transformation service 708 , a search service 710 and storage 712 . In some embodiments, storage 712 internal storage or external storage. For example, the storage 712 a storage 614 (please refer 6 ), internal storage related to entity service 626 and / or may include a remote database, cloud-based data hosting, or other remote data storage.

Der Webdienst 702 kann dazu konfiguriert sein, mit webbasierten Anwendungen zu interagieren, um Entitätsdaten zu senden und/oder Rohdaten zu empfangen (z. B. Datenabtastwerte, Zeitreihendaten und dergleichen). Beispielsweise kann der Webdienst 702 eine Schnittstelle (z. B. API, UI/UX und dergleichen) bereitstellen, um eine Entität (z. B. Klassenentität, Objektentität, Datenentität und/oder dergleichen) und die relationalen Objekte, die die Beziehungen zwischen den Entitäten definieren, zu verwalten (z. B. zu registrieren, zu erzeugen, zu bearbeiten, zu löschen und/oder zu aktualisieren). Bei manchen Ausführungsformen liefert der Webdienst 702 Entitätsdaten an webbasierte Anwendungen. Falls beispielsweise eine oder mehrere der Anwendungen 630 webbasierte Anwendungen sind, kann der Webdienst 702 die webbasierten Anwendungen mit Entitätsdaten versorgen. Bei manchen Ausführungsformen empfängt der Webdienst 702 Rohdatenabtastwerte und/oder Rohzeitreihendaten, einschließlich Vorrichtungsinformationen, von einem webbasierten Datenkollektor oder einem webbasierten Sicherheitsdienst, um autorisierte Entitäten zu identifizieren und gesicherte Nachrichten auszutauschen. Falls beispielsweise der Datenkollektor 612 eine webbasierte Anwendung ist, kann der Webdienst 702 die Rohdatenabtastwerte und/oder Zeitreihendaten empfangen, einschließlich eines Vorrichtungsattributs, das einen Vorrichtungstyp (z. B. eine IoT-Vorrichtung) angibt, von dem die Datenabtastwerte und/oder Zeitreihendaten von dem Datenkollektor 612 empfangen werden. Bei manchen Ausführungsformen kann der Webdienst 702 dem Sicherheitsdienst 622 benachrichtigen, um Autorisierungsinformationen und/oder Berechtigungsinformationen eines speziellen Benutzers, Gebäudes, BMS, Gebäudesubsystems, einer speziellen Vorrichtung, Anwendung oder einer anderen Entität anzufordern. Bei manchen Ausführungsformen empfängt der Webdienst 702 abgeleitete Zeitreihendaten von dem Zeitreihendienst 628 und/oder kann Entitätsdaten an den Zeitreihendienst 628 liefern. Bei manchen Ausführungsformen verarbeitet und transformiert der Entitätsdienst 626 die gesammelten Daten, um die Entitätsdaten zu erzeugen.The web service 702 may be configured to interact with web-based applications to send and / or receive entity data (e.g., data samples, time series data, and the like). For example, the web service 702 provide an interface (e.g., API, UI / UX, and the like) to manage an entity (e.g., class entity, object entity, data entity, and / or the like) and the relational objects that define the relationships between the entities (e.g. to register, create, edit, delete and / or update). In some embodiments, the web service delivers 702 Entity data to web-based applications. For example, if one or more of the applications 630 are web-based applications, the web service can 702 provide the web-based applications with entity data. In some embodiments, the web service receives 702 Raw data samples and / or raw time series data, including device information, from a web-based data collector or web-based security service to identify authorized entities and exchange secured messages. For example, if the data collector 612 is a web-based application, the web service can 702 receive the raw data samples and / or time series data, including a device attribute indicating a type of device (e.g., an IoT device) from which the data samples and / or time series data are received from the data collector 612 be received. In some embodiments, the web service can 702 the security service 622 Notify to request authorization information and / or authorization information from a particular user, building, BMS, building subsystem, device, application, or other entity. With some The web service receives embodiments 702 derived time series data from the time series service 628 and / or can provide entity data to the time series service 628 deliver. In some embodiments, the entity service processes and transforms 626 the collected data to generate the entity data.

Der Registrierungsdienst 704 kann eine Registrierung von Vorrichtungen und Entitäten durchführen. Beispielsweise kann der Registrierungsdienst 704 mit den Gebäudesubsystemen 528 und den Clientvorrichtungen 548 (z. B. über den Webdienst 702) kommunizieren, um jede Entität (z. B. Gebäude, BMS, Gebäudesubsysteme, Vorrichtungen und dergleichen) mit der Cloud-Gebäudeverwaltungsplattform 620 zu registrieren. Bei manchen Ausführungsformen registriert der Registrierungsdienst 704 ein spezielles Gebäudesubsystem 528 (oder die Vorrichtungen darin) mit einem speziellen Benutzer und/oder einem speziellen Satz von Berechtigungen und/oder Befugnissen. Beispielsweise kann ein Benutzer einen Vorrichtungsschlüssel und/oder eine der Vorrichtung zugeordnete Vorrichtung-ID über ein Webportal (z. B. den Webdienst 702) registrieren. Bei manchen Ausführungsformen können die Vorrichtung-ID und der Vorrichtungsschlüssel für die Vorrichtung eindeutig sein. Die Vorrichtung-ID kann eine eindeutige Nummer sein, die der Vorrichtung zugeordnet ist, z. B. eine eindeutige alphanumerische Zeichenfolge, eine Seriennummer der Vorrichtung und/oder eine beliebige andere statische Kennung. In verschiedenen Ausführungsformen wird die Vorrichtung von einem Hersteller und/oder einer anderen Einheit bereitgestellt. In verschiedenen Ausführungsformen werden der Vorrichtungsschlüssel und/oder die Vorrichtung-ID mit der Vorrichtung oder dem Gebäudesubsystem 528 basierend darauf gespeichert, ob die Vorrichtung ein vertrauenswürdiges Plattformmodul (TPM: Trusted Platform Module) enthält. Falls die Vorrichtung ein TPM enthält, kann die Vorrichtung oder das Gebäudesubsystem 528 den Vorrichtungsschlüssel und/oder die Vorrichtung-ID gemäß den Protokollen des TPM speichern. Falls die Vorrichtung kein TPM enthält, kann die Vorrichtung oder das Gebäudesubsystem 528 den Vorrichtungsschlüssel und/oder die Vorrichtung-ID in einer Datei und/oder einem Dateifeld speichern, die/das an einem sicheren Speicherungsort gespeichert werden kann. Ferner kann bei manchen Ausführungsformen die Vorrichtung-ID mit der BIOS-Software der Vorrichtung gespeichert werden. Beispielsweise kann eine Seriennummer der BIOS-Software die Vorrichtung-ID werden und/oder mit dieser aktualisiert werden.The registration service 704 can register devices and entities. For example, the registration service 704 with the building subsystems 528 and the client devices 548 (e.g. via the web service 702 ) communicate with each entity (e.g., buildings, BMS, building subsystems, devices, and the like) with the cloud building management platform 620 to register. In some embodiments, the registration service registers 704 a special building subsystem 528 (or the devices therein) with a specific user and / or a specific set of permissions and / or powers. For example, a user can send a device key and / or a device ID assigned to the device via a web portal (e.g. the web service 702 ) to register. In some embodiments, the device ID and device key may be unique to the device. The device ID can be a unique number associated with the device, e.g. B. a unique alphanumeric string, a serial number of the device and / or any other static identifier. In various embodiments, the device is provided by a manufacturer and / or another entity. In various embodiments, the device key and / or the device ID are associated with the device or building subsystem 528 based on whether the device contains a trusted platform module (TPM). If the device contains a TPM, the device or the building subsystem 528 store the device key and / or device ID according to the protocols of the TPM. If the device does not contain a TPM, the device or the building subsystem can 528 store the device key and / or device ID in a file and / or file field that can be stored in a secure location. Furthermore, in some embodiments, the device ID can be stored with the device's BIOS software. For example, a serial number of the BIOS software can become and / or be updated with the device ID.

In verschiedenen Ausführungsformen werden der Vorrichtungsschlüssel und/oder die Vorrichtung-ID in den Registrierungsdienst 704 (z. B. ein IoT-Hub, wie AZURE® IoT Hub) hochgeladen. Bei manchen Ausführungsformen ist der Registrierungsdienst 704 dazu konfiguriert, den Vorrichtungsschlüssel und die Vorrichtung-ID in einer sicheren permanenten Speicherung zu speichern, und/oder er kann von dem Sicherheitsdienst 622 (z. B. von einer Sicherheits-API) gespeichert werden. Bei manchen Ausführungsformen können ein Hersteller und/oder eine beliebige andere Person den Vorrichtungsschlüssel und die Vorrichtung-ID mit dem Registrierungsdienst 704 (z. B. über den Webdienst 702) registrieren. In verschiedenen Ausführungsformen sind der Vorrichtungsschlüssel und die Vorrichtung-ID mit einem speziellen Profil, das dem Gebäudesubsystem 528 oder der Vorrichtung zugeordnet ist, und/oder einem speziellen Benutzerprofil (z. B. einem speziellen Benutzer) verknüpft. In dieser Hinsicht kann eine Vorrichtung (oder ein Gebäudesubsystem 528) einem speziellen Benutzer zugeordnet werden. In verschiedenen Ausführungsformen bilden der Vorrichtungsschlüssel und die Vorrichtung-ID das Profil für die Vorrichtung. Das Profil kann als eine Vorrichtung registriert werden, die hergestellt und/oder bereitgestellt wurde, aber noch nicht von einem Endbenutzer gekauft wurde.In various embodiments, the device key and / or the device ID are in the registration service 704 (e.g. an IoT hub such as AZURE® IoT Hub). In some embodiments, the registration service is 704 configured to store the device key and device ID in secure permanent storage and / or can be used by the security service 622 (e.g. from a security API). In some embodiments, a manufacturer and / or any other person may use the registration service to provide the device key and device ID 704 (e.g. via the web service 702 ) to register. In various embodiments, the device key and device ID are with a special profile that matches the building subsystem 528 or assigned to the device, and / or linked to a special user profile (e.g. a special user). In this regard, a device (or building subsystem 528 ) assigned to a special user. In various embodiments, the device key and device ID form the profile for the device. The profile can be registered as a device that has been manufactured and / or provided but has not yet been purchased by an end user.

In verschiedenen Ausführungsformen fügt der Registrierungsdienst 704 eine Vorrichtung in einer Gebäude-Hub-Vorrichtungsregistrierung hinzu und/oder aktualisiert diese. In verschiedenen Ausführungsformen kann der Registrierungsdienst 704 bestimmen, ob die Vorrichtung bereits registriert ist, kann verschiedene Authentifizierungswerte (z. B. Vorrichtung-ID, Vorrichtungsschlüssel) einstellen und kann die Gebäude-Hub-Vorrichtungsregistrierung aktualisieren. Auf ähnliche Weise kann der Registrierungsdienst 704 eine Dokumentendatenbank mit den verschiedenen Vorrichtungsregistrierungsinformationen aktualisieren.In various embodiments, the registration service adds 704 add and / or update a device in a building hub device registration. In various embodiments, the registration service 704 determine whether the device is already registered, can set various authentication values (e.g., device ID, device key) and can update the building hub device registration. Similarly, the registration service 704 update a document database with the various device registration information.

Bei manchen Ausführungsformen kann der Registrierungsdienst 704 dazu konfiguriert sein, eine virtuelle Repräsentation (z. B. „digitale Zwillinge“ oder „Schattenaufzeichnungen“) jeder Objektentität (z. B. Person, Zimmer, Gebäudesubsystem, Vorrichtung und dergleichen) in dem Gebäude innerhalb der Cloud-Gebäudeverwaltungsplattform 620 zu erzeugen. Bei manchen Ausführungsformen sind die virtuellen Repräsentationen intelligente Entitäten, die Attribute enthalten, die das entsprechende Objekt definieren oder charakterisieren, und der entsprechenden Objektentität über relationale Objekte zugeordnet sind, die die Beziehung des Objekts und dessen Repräsentation der intelligenten Entität definieren. Bei manchen Ausführungsformen verwalten die virtuellen Repräsentationen Schattenkopien der Objektentitäten mit Versionsinformationen, so dass der Entitätsdienst 626 nicht nur die letzte Aktualisierung eines Attributs (z. B. ein dynamisches Attribut) speichern kann, das dem Objekt zugeordnet ist, sondern auch Aufzeichnungen vorheriger Zustände der Attribute (z. B. der dynamischen Attribute) und/oder Entitäten. Beispielsweise kann die Schattenaufzeichnung als eine Art Datenentität erzeugt werden, die mit einer verknüpften Datenentität in Zusammenhang steht, die dem dynamischen Attribut der Objektentität (z. B. Person, Zimmer, Gebäudesubsystem, Vorrichtung und dergleichen) entspricht. Beispielsweise kann die Schattenentität über ein relationales Objekt (z. B. ist Verknüpft, hatSpeicherung, hatOperation und dergleichen) der verknüpften Datenentität zugeordnet werden. In diesem Fall kann die Schattenentität verwendet werden, um zusätzliche Analysen für den Datenpunkt des dynamischen Attributs zu bestimmen. Beispielsweise kann die Schattenentität verwendet werden, um einen Durchschnittswert, einen erwarteten Wert oder einen abnormalen Wert des Datenpunkts aus dem dynamischen Attribut zu bestimmen.In some embodiments, the registration service can 704 configured to have a virtual representation (e.g., "digital twins" or "shadow records") of each object entity (e.g., person, room, building subsystem, device, and the like) in the building within the cloud building management platform 620 to create. In some embodiments, the virtual representations are intelligent entities that contain attributes that define or characterize the corresponding object and are associated with the corresponding object entity via relational objects that define the relationship of the object and its representation of the intelligent entity. In some embodiments, the virtual representations maintain shadow copies of the object entities with version information so that the entity service 626 not only save the last update of an attribute (e.g. a dynamic attribute) associated with the object, but also records of previous states of the attributes (e.g. the dynamic attributes) and / or entities. For example, the shadow record can be created as a type of data entity that is related to a linked data entity that is associated with the dynamic attribute of the object entity (e.g. person, room, building subsystem, device and the like). For example, the shadow entity can be associated with the linked data entity through a relational object (e.g., is linked, has storage, has operation, and the like). In this case, the shadow entity can be used to determine additional analyzes for the data point of the dynamic attribute. For example, the shadow entity can be used to determine an average value, an expected value, or an abnormal value of the data point from the dynamic attribute.

Der Verwaltungsdienst 706 kann verschiedene Attribute, Datenentitäten und/oder relationale Objekte der durch den Entitätsdienst 626 verwalteten Objekte für jede Entität anstatt pro Klasse oder Entitätstyp erzeugen, modifizieren oder aktualisieren. Dies ermöglicht eine separate Verarbeitung/Analyse für jede einzelne Entität anstatt nur für eine Klasse oder einen Entitätstyp. Manche Attribute (oder Datenentitäten) können beispielsweise dem neuesten Wert eines Datenpunkts entsprechen, der über die Rohdatenabtastwerte und/oder Zeitreihendaten an das BMS 600 oder die Cloud-Gebäudeverwaltungsplattform 620 geliefert wird. Beispielsweise kann das dynamische Attribut „Aktuelle Innentemperatur“ der Objektentität 802 „Thermostat“ bei dem oben besprochenen Beispiel der neueste Wert der Innentemperatur sein, der durch die Thermostatvorrichtung bereitgestellt wird. Der Verwaltungsdienst 706 kann die relationalen Objekte der Entitätsdaten für das Thermostat verwenden, um zu bestimmen, wo die Daten des Attributs aktualisiert werden sollen.The administrative service 706 can have various attributes, data entities and / or relational objects provided by the entity service 626 Create, modify, or update managed objects for each entity rather than per class or entity type. This enables separate processing / analysis for each individual entity instead of just for one class or entity type. For example, some attributes (or data entities) may correspond to the latest value of a data point, which is sent to the BMS via the raw data samples and / or time series data 600 or the cloud building management platform 620 is delivered. For example, the dynamic attribute "Current inside temperature" of the object entity 802 “Thermostat” in the example discussed above may be the latest indoor temperature value provided by the thermostat device. The administrative service 706 can use the entity data relational objects for the thermostat to determine where to update the attribute data.

Beispielsweise kann der Verwaltungsdienst 706 bestimmen, dass eine Datenentität (z. B. AI 201-01) über ein relationales istVerknüpft-Objekt mit dem dynamischen Attribut „Aktuelle Innentemperatur“ des Thermostats verknüpft ist. In diesem Fall kann der Verwaltungsdienst 706 die Attributdaten in der verknüpften Datenentität automatisch aktualisieren. Falls keine verknüpfte Datenentität vorhanden ist, kann der Verwaltungsdienst 706 ferner eine Datenentität (z. B. AI 201-01) und eine Instanz des relationalen istVerknüpft-Objekts 824 erzeugen, um das dynamische Attribut „Aktuelle Innentemperatur“ des Thermostats darin zu speichern und zu verknüpfen. Dementsprechend kann die Verarbeitung/Analyse für das Thermostat 802 automatisiert werden. Als ein weiteres Beispiel kann ein Attribut „letzte Ansicht“ (oder eine verknüpfte Datenentität) einer Webseitenobjektentität den letzten Zeitpunkt angeben, zu dem die Webseite betrachtet wurde. Der Verwaltungsdienst 706 kann die Entitätsdaten von einer zugehörigen Klickverfolgungssystemobjektentität oder einer Webserverobjektentität verwenden, um zu bestimmen, wann die letzte Ansicht aufgetreten ist, und kann das Attribut „letzte Ansicht“ (oder die verknüpfte Datenentität) der Webseitenentität automatisch entsprechend aktualisieren.For example, the administration service 706 determine that a data entity (e.g. AI 201-01 ) is linked to the dynamic attribute "Actual internal temperature" of the thermostat via a relational istKinkt-object. In this case, the administrative service 706 automatically update the attribute data in the linked data entity. If there is no linked data entity, the administration service can 706 a data entity (e.g. AI 201-01 ) and an instance of the relational is linked object 824 generate in order to save and link the dynamic attribute "Current internal temperature" of the thermostat. Accordingly, the processing / analysis for the thermostat 802 be automated. As another example, a "last view" attribute (or a linked data entity) of a web page object entity can indicate the last time the web page was viewed. The administrative service 706 can use the entity data from an associated click tracking system object entity or a web server object entity to determine when the last view occurred and can automatically update the last view attribute (or the associated data entity) of the web page entity accordingly.

Andere Datenentitäten und/oder Attribute können als ein Ergebnis einer Analyse-, Transformations-, Berechnungs- oder anderen Verarbeitungsoperation basierend auf den Rohdaten und/oder Entitätsdaten erzeugt und/oder aktualisiert werden. Beispielsweise kann der Verwaltungsdienst 706 die relationalen Objekte in Entitätsdaten verwenden, um eine zugehörige Zugangssteuervorrichtung (z. B. ein Kartenlesegerät, ein Tastenfeld usw.) am Eingang/Ausgang einer Gebäudeobjektentität zu identifizieren. Der Verwaltungsdienst 706 kann Rohdaten verwenden, die von der identifizierten Zugangssteuervorrichtung empfangen werden, um die Anzahl von Nutzern zu verfolgen, die die Gebäudeobjektentität betreten und verlassen (z. B. über zugehörige Kartenentitäten, die von den Nutzern zum Betreten und Verlassen des Gebäudes verwendet werden). Der Verwaltungsdienst 706 kann ein Attribut „Anzahl an Nutzern“ (oder eine entsprechende Datenentität) der Gebäudeobjektentität jedes Mal aktualisieren, wenn eine Person das Gebäude unter Verwendung einer zugehörigen Kartenobjektentität betritt oder verlässt, so dass das Attribut „Anzahl an Nutzern“ (oder die Datenentität) die aktuelle Anzahl der Nutzer innerhalb des Gebäudes (oder der zugehörigen Gebäudeobjektentität) wiedergibt. Als weiteres Beispiel kann ein Attribut „Gesamtumsatz“, das einer Produktlinienobjektentität zugeordnet ist, die Summe sämtlicher Einnahmen sein, die von zugehörigen Verkaufsstellenentitäten erzeugt werden. Der Verwaltungsdienst 706 kann die Rohdaten, die von den zugehörigen Verkaufsstellenentitäten empfangen werden, verwenden, um zu bestimmen, wann ein Verkauf des Produkts stattfindet, und kann den Betrag des durch die Verkäufe erzeugten Umsatzes identifizieren. Der Verwaltungsdienst 706 kann dann das Attribut „Gesamtumsatz“ (oder die zugehörige Datenentität) der Produktlinienobjektentität aktualisieren, indem der letzten Verkaufsumsatz von jeder der zugehörigen Verkaufsstellenentitäten zu dem vorherigen Wert des Attributs hinzugefügt wird.Other data entities and / or attributes can be generated and / or updated as a result of an analysis, transformation, calculation or other processing operation based on the raw data and / or entity data. For example, the administration service 706 use the relational objects in entity data to identify an associated access control device (e.g., a card reader, keypad, etc.) at the entrance / exit of a building object entity. The administrative service 706 may use raw data received from the identified access control device to keep track of the number of users entering and exiting the building object entity (e.g., related card entities used by users to enter and exit the building). The administrative service 706 can update a "number of users" attribute (or a corresponding data entity) of the building object entity each time a person enters or leaves the building using an associated card object entity, so that the "number of users" attribute (or the data entity) updates the current one Number of users within the building (or the associated building object entity). As another example, an "overall sales" attribute associated with a product line object entity can be the sum of all revenues generated by associated sales entity entities. The administrative service 706 can use the raw data received from the associated point of sale entities to determine when a sale of the product takes place and can identify the amount of sales generated by the sales. The administrative service 706 can then update the total sales attribute (or associated data entity) of the line item entity by adding the last sales revenue from each of the associated sales entity entities to the previous value of the attribute.

Bei manchen Ausführungsformen kann der Verwaltungsdienst 706 abgeleitete Zeitreihendaten verwenden, die von dem Zeitreihendienst 628 erzeugt wurden, um eine Datenentität (z. B. Täglicher Durchschnitt 1) zu aktualisieren oder zu erzeugen, die die Datenpunkte in den abgeleiteten Zeitreihendaten verwendet oder speichert. Beispielsweise können die abgeleiteten Zeitreihendaten einen virtuellen Datenpunkt enthalten, der den von dem Zeitreihendienst 628 berechneten täglichen Durchschnittsschritten entspricht, und der Verwaltungsdienst 706 kann die Datenentität oder -entitäten aktualisieren, die die Daten speichern oder verwenden, die dem virtuellen Datenpunkt, wie über die relationalen Objekte bestimmt, entsprechen. Bei manchen Ausführungsformen kann der Verwaltungsdienst 706, falls eine dem virtuellen Datenpunkt entsprechende Datenentität nicht existiert, automatisch eine entsprechende Datenentität und ein oder mehrere relationale Objekte erzeugen, die die Beziehung zwischen der entsprechenden Datenentität und anderen Entitäten beschreiben.In some embodiments, the management service can 706 Use derived time series data from the time series service 628 generated to a data entity (e.g. Daily Average 1 ) update or generate that uses or stores the data points in the derived time series data. For example, the derived time series data may include a virtual data point that is from the time series service 628 calculated calculated daily average steps, and the administrative service 706 can update the data entity or entities that store or use the data that corresponds to the virtual data point as determined by the relational objects. In some embodiments, the management service can 706 , if one corresponding to the virtual data point Data entity does not exist, automatically create a corresponding data entity and one or more relational objects that describe the relationship between the corresponding data entity and other entities.

Bei manchen Ausführungsformen verwendet der Verwaltungsdienst 706 Entitätsdaten und/oder Rohdaten von mehreren verschiedenen Datenquellen, um die Attribute (oder entsprechenden Datenentitäten) verschiedener Objektentitäten zu aktualisieren. Beispielsweise kann eine Objektentität, die eine Person repräsentiert (z. B. eine zellulare Vorrichtung einer Person oder eine andere verwandte Objektentität), ein Attribut „Risiko“ enthalten, das das Risikoniveau der Person quantifiziert, das verschiedenen physischen, Umgebungs- oder anderen Bedingungen zuschreibbar ist. Der Verwaltungsdienst 706 kann relationale Objekte der Personenobjektentität verwenden, um eine zugehörige Kartenvorrichtung und/oder ein zugehöriges Kartenlesegerät von einer zugehörigen Gebäudeobjektentität (z. B. dem Gebäude, in dem die Person arbeitet) zu identifizieren, um den physischen Standort der Person zu einem beliebigen gegebenen Zeit zu bestimmen. Der Verwaltungsdienst 706 kann aus Rohdaten (z. B. der Zeit, zu der die Kartenvorrichtung von dem Kartenlesegerät gescannt wurde) oder abgeleiteten Zeitreihendaten (z. B. der durchschnittlichen Ankunftszeit) bestimmen, ob sich das Personenobjekt in dem Gebäude befindet oder sich auf dem Weg zu dem Gebäude befindet. Der Verwaltungsdienst 706 kann Wetterdaten von einem Wetterdienst in dem Gebiet verwenden, in der sich die Gebäudeobjektentität befindet, um zu bestimmen, ob sich irgendein Unwetter dem Standort der Person nähert. Gleichermaßen kann der Verwaltungsdienst 706 Gebäudedaten von zugehörigen Gebäudeentitäten der Gebäudeobjektentität verwenden, um zu bestimmen, ob das Gebäude, in dem sich die Person befindet, irgendwelche Notfallsituationen (z. B. Feuer, Gebäudesperrung usw.) oder Umweltgefahren (z. B. detektierte Luftkontaminationen, Schadstoffe, extreme Temperaturen usw.), unterliegt, die das Risikoniveau der Person erhöhen könnten. Der Verwaltungsdienst 706 kann diese und andere Datentypen als Eingaben für eine Risikofunktion verwenden, die den Wert des Attributs „Risiko“ des Personenobjekts berechnet, und kann das Personenobjekt (oder die zugehörige Vorrichtungsentität des Personenobjekts) entsprechend aktualisieren.In some embodiments, the administration service uses 706 Entity data and / or raw data from several different data sources to update the attributes (or corresponding data entities) of different object entities. For example, an object entity that represents a person (e.g., a person's cellular device or other related object entity) may include a "risk" attribute that quantifies the person's level of risk, attributable to various physical, environmental, or other conditions is. The administrative service 706 may use person object entity relational objects to identify an associated card device and / or card reader from an associated building object entity (e.g., the building in which the person works) to determine the person's physical location at any given time determine. The administrative service 706 can determine from raw data (e.g., the time the card device was scanned by the card reader) or derived time series data (e.g., the average arrival time) whether the person object is in the building or on the way to that Building. The administrative service 706 may use weather data from a weather service in the area where the building object entity is located to determine if any storm is approaching the person's location. Similarly, the administrative service 706 Use building data from related building entities of the building object entity to determine whether the building in which the person is located has any emergency situations (e.g. fire, building lock etc.) or environmental hazards (e.g. detected air contamination, pollutants, extreme temperatures etc.), which could increase the risk level of the person. The administrative service 706 can use this and other data types as inputs to a risk function that calculates the value of the risk attribute of the person object, and can update the person object (or the associated device entity of the person object) accordingly.

Bei manchen Ausführungsformen kann der Verwaltungsdienst 706 dazu konfiguriert sein, Konfigurationseinstellungen, Parameter und andere vorrichtungsspezifische oder objektspezifische Informationen zwischen den Entitäten und der Cloud-Gebäudeverwaltungsplattform 620 zu synchronisieren. Bei manchen Ausführungsformen erfolgt die Synchronisation asynchron. Der Verwaltungsdienst 706 kann dazu konfiguriert sein, Vorrichtungseigenschaften dynamisch zu verwalten. Die Vorrichtungseigenschaften, Konfigurationseinstellungen, Parameter und andere vorrichtungsspezifische Informationen können zwischen den intelligenten Entitäten synchronisiert werden, die von der Cloud-Gebäudeverwaltungsplattform 620 erzeugt und in dieser gespeichert werden.In some embodiments, the management service can 706 configured to include configuration settings, parameters, and other device-specific or object-specific information between the entities and the cloud building management platform 620 to synchronize. In some embodiments, synchronization is asynchronous. The administrative service 706 can be configured to dynamically manage device properties. The device properties, configuration settings, parameters and other device-specific information can be synchronized between the intelligent entities provided by the cloud building management platform 620 generated and stored in this.

Bei manchen Ausführungsformen ist der Verwaltungsdienst 706 dazu konfiguriert, ein Manifest für jedes der Gebäudesubsysteme 528 (oder Vorrichtungen darin) zu verwalten. Das Manifest kann einen Satz von Beziehungen zwischen den Gebäudesubsystemen 528 und verschiedenen Entitäten enthalten. Ferner kann das Manifest einen Satz von Befugnissen für die Gebäudesubsysteme 528 und/oder Befugnisse der verschiedenen Entitäten und/oder anderer Entitäten angeben. Der Satz von Befugnissen kann ermöglichen, dass ein BMS 600, ein Gebäudesubsystem 528 und/oder ein Benutzer gewisse Handlungen innerhalb des Gebäudes durchführt (z. B. Steuern, Konfigurieren, Überwachen und/oder dergleichen).In some embodiments, the management service is 706 configured to have a manifest for each of the building subsystems 528 (or devices therein) to manage. The manifesto can be a set of relationships between the building subsystems 528 and various entities. Furthermore, the manifesto can have a set of powers for the building subsystems 528 and / or specify powers of the various entities and / or other entities. The set of powers can allow a BMS 600 , a building subsystem 528 and / or a user performs certain actions within the building (e.g. controlling, configuring, monitoring and / or the like).

Immer noch unter Bezugnahme auf 7 kann der Transformationsdienst 708 eine Datenvirtualisierung bereitstellen und kann verschiedene vordefinierte Standarddatenmodelle für Entitäten in einer gleichen Klasse oder eines gleichen Typs transformieren, so dass sie die gleiche Entitätsdatenstruktur aufweisen, unabhängig von dem Objekt, der Vorrichtung oder dem Gegenstand, das/die/den die Entität repräsentiert. Beispielsweise kann jede Objektentität unter einer Objektklasse unabhängig davon, ob das Standortattribut verwendet oder sogar erzeugt wird, ein Standortattribut enthalten. Falls eine Anwendung später entwickelt wird, die erfordert, dass jede Objektentität ein Standortattribut enthält, kann daher eine manuelle Zuordnung heterogener Daten verschiedener Entitäten in derselben Klasse vermieden werden. Dementsprechend können die Interoperabilität und Skalierbarkeit von Anwendungen verbessert werden.Still referring to 7 can the transformation service 708 provide data virtualization and can transform different predefined standard data models for entities in the same class or type, so that they have the same entity data structure, regardless of the object, device, or item that represents the entity. For example, each object entity under an object class can contain a location attribute regardless of whether the location attribute is used or even generated. Therefore, if an application is later developed that requires that each object entity contain a location attribute, manual assignment of heterogeneous data from different entities in the same class can be avoided. Accordingly, the interoperability and scalability of applications can be improved.

Bei manchen Ausführungsformen kann der Transformationsdienst 708 eine Entitätsübereinstimmung, -bereinigung und -korrelation bereitstellen, so dass eine einheitliche bereinigte Ansicht der Entitätsdaten einschließlich der entitätsbezogenen Informationen (z. B. relationalen Objekte) bereitgestellt werden kann. Der Transformationsdienst 708 kann eine semantische und syntaktische Beziehungsbeschreibung in Form standardisierter relationaler Objekte zwischen den verschiedenen Entitäten unterstützen. Dies kann Maschinenlernen vereinfachen, da die relationalen Objekte selbst die gesamte Beziehungsbeschreibung zwischen den Entitäten bereitstellen. Dementsprechend kann der umfangreiche Satz vorgefertigter Entitätsmodelle und standardisierter relationaler Objekte eine schnelle Anwendungsentwicklung und Datenanalyse vorsehen.In some embodiments, the transformation service 708 provide entity matching, cleansing, and correlation so that a unified, clean view of the entity data, including the entity-related information (e.g., relational objects), can be provided. The transformation service 708 can support a semantic and syntactic relationship description in the form of standardized relational objects between the different entities. This can simplify machine learning because the relational objects themselves provide the entire relationship description between the entities. Accordingly, the extensive set of ready-made entity models and standardized relational objects can provide for rapid application development and data analysis.

Immer noch unter Bezugnahme auf 7 stellt der Suchdienst 710 eine einheitliche Ansicht von produktbezogenen Informationen in Form des Entitätsgraphen bereit, der Entitätsbeziehungen (über relationale Objekte) zwischen mehreren Datenquellen (z. B. CRM, ERP, MRP und dergleichen) korreliert. Bei manchen Ausführungsformen basiert der Suchdienst 710 auf einer schemalosen und graphenbasierten Indizierungsarchitektur. Beispielsweise stellt bei manchen Ausführungsformen der Suchdienst 710 den Entitätsgraphen bereit, in dem die Entitäten als Knoten mit relationalen Objekten repräsentiert werden, die die Beziehung zwischen den Entitäten (oder Knoten) definieren. Der Suchdienst 710 erleichtert einfache Abfragen, ohne mehrere Ebenen des hierarchischen Baums des Entitätsgraphen durchsuchen zu müssen. Beispielsweise kann der Suchdienst 710 Ergebnisse basierend auf der Suche nach Entitätstyp, einzelnen Entitäten, Attributen oder sogar relationalen Objekten zurückgeben, ohne dass andere Ebenen oder Entitäten der Hierarchie durchsucht werden müssen. Still referring to 7 provides the search service 710 a unified view of product-related information in the form of the entity graph, which correlates entity relationships (via relational objects) between several data sources (e.g. CRM, ERP, MRP and the like). In some embodiments, the search service is based 710 on a schematic and graph-based indexing architecture. For example, in some embodiments, the search service provides 710 the entity graph, in which the entities are represented as nodes with relational objects that define the relationship between the entities (or nodes). The search service 710 facilitates simple queries without having to search through several levels of the hierarchical tree of the entity graph. For example, the search service 710 Return results based on the search for entity type, individual entities, attributes or even relational objects without having to search other levels or entities in the hierarchy.

ZeitreihendatenplattformdienstTime series data platform service

Unter Bezugnahme auf 9 ist ein Blockdiagramm gemäß einigen Ausführungsformen gezeigt, das den Zeitreihendienstdienst 628 ausführlicher veranschaulicht. Es wird gezeigt, dass der Zeitreihendienst 628 einen Zeitreihenwebdienst 902, einen Ereignisdienst 903, eine Zeitreihenverarbeitungs-Engine 904 und eine Zeitreihenspeicherungsschnittstelle 916 enthält. Der Zeitreihenwebdienst 902 kann dazu konfiguriert sein, mit webbasierten Anwendungen zu interagieren, um Zeitreihendaten zu senden und/oder zu empfangen. Bei manchen Ausführungsformen liefert der Zeitreihenwebdienst 902 Zeitreihendaten an webbasierte Anwendungen. Falls beispielsweise eine oder mehrere der Anwendungen 630 webbasierte Anwendungen sind, kann der Zeitreihenwebdienst 902 die abgeleiteten Zeitreihendaten und/oder Rohzeitreihendaten an webbasierten Anwendungen liefern. Bei manchen Ausführungsformen empfängt der Zeitreihenwebdienst 902 Rohzeitreihendaten von einem webbasierten Datenkollektor. Falls beispielsweise der Datenkollektor 612 eine webbasierte Anwendung ist, kann der Zeitreihenwebdienst 902 Rohdatenabtastwerte oder Rohzeitreihendaten von dem Datenkollektor 612 empfangen. Bei manchen Ausführungsformen können der Zeitreihen-Webdienst 902 und der Entitätsdienstwebdienst 702 als Teile desselben Webdienstes integriert sein.With reference to 9 14 is a block diagram shown, according to some embodiments, that the time series service 628 illustrated in more detail. It is shown that the time series service 628 a time series web service 902 , an event service 903 , a time series processing engine 904 and a time series storage interface 916 contains. The time series web service 902 can be configured to interact with web-based applications to send and / or receive time series data. In some embodiments, the time series web service delivers 902 Time series data to web-based applications. For example, if one or more of the applications 630 are web-based applications, the time series web service can 902 deliver the derived time series data and / or raw time series data to web-based applications. In some embodiments, the time series web service receives 902 Raw time series data from a web-based data collector. For example, if the data collector 612 is a web-based application, the time series web service can 902 Raw data samples or raw time series data from the data collector 612 receive. In some embodiments, the time series web service 902 and the entity service web service 702 be integrated as parts of the same web service.

Die Zeitreihenspeicherungsschnittstelle 916 kann dazu konfiguriert sein, Abtastwerte verschiedener Zeitreihen (z. B. Rohzeitreihendaten und abgeleitete Zeitreihendaten) und Ereignisreihen (die nachstehend ausführlicher beschrieben sind) zu speichern und zu lesen. Die Zeitreihenspeicherungsschnittstelle 916 kann mit der Speicherung 614 interagieren. Beispielsweise kann die Zeitreihenspeicherungsschnittstelle 916 Zeitreihendaten aus einer Zeitreihendatenbank 928 innerhalb der Speicherung 614 abrufen. Bei manchen Ausführungsformen liest die Zeitreihenspeicherungsschnittstelle 916 Abtastwerte von einer spezifizierten Startzeit oder Startposition in den Zeitreihen bis zu einer spezifizierten Endzeit oder einer Stoppposition in den Zeitreihen. Gleichermaßen kann die Zeitreihenspeicherungsschnittstelle 916 Ereignisreihendaten aus einer Ereignisreihendatenbank 929 innerhalb der Speicherung 614 abrufen. Die Zeitreihenspeicherungsschnittstelle 916 kann auch Zeitreihendaten in der Zeitreihendatenbank 928 speichern und Ereignisreihendaten in der Ereignisreihendatenbank 929 speichern. Vorteilhafterweise stellt die Zeitreihenspeicherungsschnittstelle 916 eine konsistente Schnittstelle bereit, die eine logische Datenunabhängigkeit ermöglicht.The time series storage interface 916 may be configured to store and read samples of different time series (e.g., raw time series data and derived time series data) and event series (described in more detail below). The time series storage interface 916 can with the storage 614 to interact. For example, the time series storage interface 916 Time series data from a time series database 928 within storage 614 recall. In some embodiments, the time series storage interface reads 916 Samples from a specified start time or start position in the time series to a specified end time or stop position in the time series. Likewise, the time series storage interface 916 Event series data from an event series database 929 within storage 614 recall. The time series storage interface 916 can also hold time series data in the time series database 928 store and event series data in the event series database 929 to save. The time series storage interface advantageously provides 916 a consistent interface that enables logical data independence.

Bei manchen Ausführungsformen speichert die Zeitreihenspeicherungsschnittstelle 916 Zeitreihen als Listen von Datenabtastwerten, die nach Zeit organisiert sind. Beispielsweise kann die Zeitreihenspeicherungsschnittstelle 916 Zeitreihen in dem folgenden Format speichern: [ < S c h l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 2 , W e r t 2 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 3 , W e r t 3 > ]

Figure DE112018004336T5_0002
wobei Schlüssel eine Kennung der Quelle der Datenabtastwerte (z. B. Zeitreihen-ID, Sensor-ID, Vorrichtung-ID usw.) ist, Zeitstempeli einen Zeitpunkt identifiziert, der dem i-ten Abtastwert zugeordnet ist, und Werti den Wert von des i-ten Abtastwerts angibt.In some embodiments, the time series storage interface stores 916 Time series as lists of data samples organized by time. For example, the time series storage interface 916 Save time series in the following format: [ < S c H l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 2nd , W e r t 2nd > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 3rd , W e r t 3rd > ]
Figure DE112018004336T5_0002
where key is an identifier of the source of the data samples (e.g. time series ID, sensor ID, device ID, etc.), time stamp i identifies a time associated with the i th sample, and value i the value of of the ith sample.

Bei manchen Ausführungsformen speichert die Zeitreihenspeicherungsschnittstelle 916 Ereignisreihen als Listen von Ereignissen mit einer Startzeit, einer Endzeit und einem Zustand. Beispielsweise kann die Zeitreihenspeicherungsschnittstelle 916 Ereignisreihen in dem folgenden Format speichern: [ < E r e i g n i s I D 1 , S t a r t z e i t s t e m p e l 1 , E n d z e i t s t e m p e l 1 , Z u s t a n d 1 > , , < E r e i g n i s I D N , S t a r t z e i t s t e m p e l N , E n d z e i t s t e m p e l N , Z u s t a n d N > ]

Figure DE112018004336T5_0003
wobei Ereignis - IDi eine Kennung des i-ten Ereignisses ist, Startzeitstempeli der Zeitpunkt ist, zu dem das i-te Ereignis begonnen hat, Endzeitstempeli der Zeitpunkt ist, zu dem das i-te Ereignis endete, Zustandi einen Zustand oder eine Bedingung beschreibt, die/der mit dem i-ten Ereignis zugeordnet ist(z. B. kalt, heiß, warm usw.), und N die Gesamtzahl der Ereignisse in der Ereignisreihe ist.In some embodiments, the time series storage interface stores 916 Event series as lists of events with a start time, an end time and a state. For example, the time series storage interface 916 Save series of events in the following format: [ < E r e i G n i s - I. D 1 , S t a r t e.g. e i t s t e m p e l 1 , E n d e.g. e i t s t e m p e l 1 , Z u s t a n d 1 > , ... , < E r e i G n i s - I. D N , S t a r t e.g. e i t s t e m p e l N , E n d e.g. e i t s t e m p e l N , Z u s t a n d N > ]
Figure DE112018004336T5_0003
where event ID i is an identifier of the i th event, start time stamp i is the point in time at which the i th event started, end time stamp i is the point in time at which the i th event ended, state i a state or describes a condition associated with the ith event (e.g., cold, hot, warm, etc.) and N is the total number of events in the series of events.

Bei manchen Ausführungsformen speichert die Zeitreihenspeicherungsschnittstelle 916 Zeitreihen und Ereignisreihen in einem Tabellenformat. Die Zeitreihenspeicherungsschnittstelle 916 kann Zeitreihen und Ereignisreihen in verschiedenen Tabellen mit einer Spalte für jedes Attribut der Zeitreihen-/Ereignisreihenabtastwerte (z. B. Schlüssel, Zeitstempel, Wert) speichern. Die Zeitreihentabellen können in der Zeitreihendatenbank 928 gespeichert werden, während die Ereignisreihentabellen in der Ereignisreihendatenbank 929 gespeichert werden können. Bei manchen Ausführungsformen speichert die Zeitreihenspeicherungsschnittstelle 916 ältere Daten in der Speicherung 614 zwischen, speichert aber neuere Daten im RAM. Dies kann eine Leseleistungsfähigkeit verbessern, wenn die neueren Daten zur Verarbeitung angefordert werden.In some embodiments, the time series storage interface stores 916 Time series and event series in a table format. The time series storage interface 916 can store time series and event series in different tables with one column for each attribute of the time series / event series samples (e.g. key, time stamp, value). The time series tables can be found in the time series database 928 stored while the event series tables are in the event series database 929 can be saved. In some embodiments, the time series storage interface stores 916 older data in storage 614 in between, but stores newer data in RAM. This can improve read performance when the newer data is requested for processing.

Bei manchen Ausführungsformen lässt die Zeitreihenspeicherungsschnittstelle 916 eines oder mehrere der Attribute weg, wenn die Zeitreihenabtastwerte gespeichert werden. Beispielsweise muss die Zeitreihenspeicherungsschnittstelle 916 möglicherweise nicht wiederholt den Schlüssel oder die Zeitreihen-ID für jeden Abtastwert in den Zeitreihen speichern. Bei manchen Ausführungsformen lässt die Zeitreihenspeicherungsschnittstelle 916 Zeitstempel von einem oder mehreren der Abtastwerte weg. Falls Abtastwerte einer speziellen Zeitreihe Zeitstempel in regelmäßigen Intervallen aufweisen (z. B. einen Abtastwert pro Minute), kann die Zeitreihenspeicherungsschnittstelle 916 die Abtastwerte nach Zeitstempeln organisieren und die Werte der Abtastwerte in einer Zeile speichern. Der Zeitstempel des ersten Abtastwerts kann zusammen mit dem Intervall zwischen den Zeitstempeln gespeichert werden. Die Zeitreihenspeicherungsschnittstelle 916 kann den Zeitstempel eines beliebigen Abtastwertes in der Zeile basierend auf dem Zeitstempel des ersten Abtastwerts und der Position des Abtastwerts in der Zeile bestimmen.In some embodiments, the time series storage interface leaves 916 one or more of the attributes away when the time series samples are stored. For example, the time series storage interface 916 may not repeatedly store the key or time series ID for each sample in the time series. In some embodiments, the time series storage interface leaves 916 Timestamps away from one or more of the samples. If samples of a particular time series have time stamps at regular intervals (e.g. one sample per minute), the time series storage interface can 916 organize the samples according to time stamps and store the values of the samples in one line. The time stamp of the first sample can be stored along with the interval between the time stamps. The time series storage interface 916 can determine the timestamp of any sample in the row based on the timestamp of the first sample and the position of the sample in the row.

Bei manchen Ausführungsformen speichert die Zeitreihenspeicherungsschnittstelle 916 einen oder mehrere Abtastwerte mit einem Attribut, das eine Wertänderung relativ zu dem vorherigen Abtastwert angibt. Die Wertänderung kann den tatsächlichen Wert des Abtastwerts ersetzen, wenn der Abtastwert in der Zeitreihendatenbank 928 gespeichert ist. Dies ermöglicht, dass die Zeitreihenspeicherungsschnittstelle 916 weniger Bits beim Speichern von Abtastwerten und ihren entsprechenden Werten verwendet. Die Zeitreihenspeicherungsschnittstelle 916 kann den Wert eines beliebigen Abtastwertes basierend auf dem Wert des ersten Abtastwerts und der der Wertänderung in jedem folgenden Abtastwert bestimmen.In some embodiments, the time series storage interface stores 916 one or more samples with an attribute indicating a change in value relative to the previous sample. The change in value can replace the actual value of the sample if the sample is in the time series database 928 is saved. This enables the time series storage interface 916 fewer bits are used in storing samples and their corresponding values. The time series storage interface 916 can determine the value of any sample based on the value of the first sample and the change in value in each subsequent sample.

Bei manchen Ausführungsformen ruft die Zeitreihenspeicherungsschnittstelle 916 den Entitätsdienst 626 auf, um Datenentitäten zu erzeugen, in denen Abtastwerte von Zeitreihendaten und/oder Ereignisreihendaten gespeichert werden können. Die Datenentitäten können JSON-Objekte oder andere Arten von Datenobjekten enthalten, um ein oder mehrere Zeitreihenabtastwerte und/oder Ereignisreihenabtastwerte zu speichern. Die Zeitreihenspeicherungsschnittstelle 916 kann dazu konfiguriert sein, Abtastwerte zu den Datenentitäten hinzuzufügen und Abtastwerte aus den Datenentitäten zu lesen. Beispielsweise kann die Zeitreihenspeicherungsschnittstelle 916 einen Satz von Abtastwerten von dem Datenkollektor 612, dem Entitätsdienst 626, dem Zeitreihenwebdienst 902, dem Ereignisdienst 903 und/oder der Zeitreihenverarbeitungs-Engine 904 empfangen. Die Zeitreihenspeicherungsschnittstelle 916 kann den Satz von Abtastwerten zu einer Datenentität hinzufügen, indem die Abtastwerte beispielsweise an den Entitätsdienst 626 gesendet werden, um zum Beispiel in der Datenentität gespeichert zu werden, oder kann direkt mit der Datenentität gekoppelt sein, um die Abtastwerte zu der Datenentität hinzuzufügen/zu modifizieren.In some embodiments, the time series storage interface calls 916 the entity service 626 to generate data entities in which samples of time series data and / or event series data can be stored. The data entities can include JSON objects or other types of data objects to store one or more time series samples and / or event series samples. The time series storage interface 916 can be configured to add samples to the data entities and read samples from the data entities. For example, the time series storage interface 916 a set of samples from the data collector 612 , the entity service 626 , the time series web service 902 , the event service 903 and / or the time series processing engine 904 receive. The time series storage interface 916 can add the set of samples to a data entity, for example, to the entity service 626 may be sent, for example, to be stored in the data entity, or may be directly coupled to the data entity to add / modify the samples to the data entity.

Die Zeitreihenspeicherungsschnittstelle 916 kann Datenentitäten verwenden, wenn Abtastwerte aus der Speicherung 614 gelesen werden. Beispielsweise kann die Zeitreihenspeicherungsschnittstelle 916 einen Satz von Abtastwerten aus der Speicherung 614 oder aus dem Entitätsdienst 626 abrufen und kann die Abtastwerte zu einer Datenentität hinzufügen (z. B. direkt oder über den Entitätsdienst 626). Bei manchen Ausführungsformen beinhaltet der Satz von Abtastwerten alle Abtastwerte innerhalb einem spezifizierten Zeitbereich (z. B. Abtastwerte mit Zeitstempeln in dem spezifizierten Zeitbereich) oder Ereignisreihenabtastwerte mit einem spezifizierten Zustand. Die Zeitreihenspeicherungsschnittstelle 916 kann die Abtastwerte in der Datenentität an den Zeitreihenwebdienst 902, den Ereignisdienst 903, die Zeitreihenverarbeitungs-Engine 904, die Anwendungen 630 und/oder andere Komponenten liefern, die zum Verwenden der Zeitreihen-/Ereignisreihenabtastwerte konfiguriert sind.The time series storage interface 916 can use data entities when samples from storage 614 to be read. For example, the time series storage interface 916 a set of samples from storage 614 or from entity service 626 and can add the samples to a data entity (e.g. directly or through the entity service 626 ). In some embodiments, the set of samples includes all samples within a specified time range (e.g., samples with timestamps in the specified time range) or event series samples with a specified state. The time series storage interface 916 can send the samples in the data entity to the time series web service 902 , the event service 903 , the time series processing engine 904 , the applications 630 and / or provide other components configured to use the time series / event series samples.

Immer noch unter Bezugnahme auf 9 ist gezeigt, dass die Zeitreihenverarbeitungs-Engine 904 einige Zeitreihenoperatoren 906 enthält. Die Zeitreihenoperatoren 906 können dazu konfiguriert sein, verschiedene Operationen, Transformationen oder Funktionen auf eine oder mehrere Eingabezeitreihen anzuwenden, um Ausgabezeitreihen und/oder Ereignisreihen zu erzeugen. Die Eingabezeitreihen können Rohzeitreihendaten und/oder abgeleitete Zeitreihendaten enthalten. Die Zeitreihenoperatoren 906 können dazu konfiguriert sein, Aggregatwerte und Durchschnitte zu berechnen oder andere mathematische Operationen auf die Eingabezeitreihen anzuwenden. Bei manchen Ausführungsformen erzeugen die Zeitreihenoperatoren 906 Virtueller-Punkt-Zeitreihen, indem sie zwei oder mehr Eingabezeitreihen kombinieren (z. B. die Zeitreihen addieren), mehrere Ausgabezeitreihen aus einer einzigen Eingabezeitreihen erzeugen oder mathematische Operationen auf die Eingabezeitreihen anwenden. Bei manchen Ausführungsformen führen die Zeitreihenoperatoren 906 Datenbereinigungsoperationen oder Deduplikationsoperationen an einer Eingabezeitreihe durch. Bei manchen Ausführungsformen verwenden die Zeitreihenoperatoren 906 die Eingabezeitreihen, um Ereignisreihen basierend auf den Werten der Zeitreihenabtastwerte zu erzeugen. Die Ausgabezeitreihen können als abgeleitete Zeitreihendaten in der Speicherung 614 als eine oder mehrere Zeitreihendatenentitäten gespeichert werden. Gleichermaßen können die Ereignisreihen als Ereignisreihendatenentitäten in der Speicherung 614 gespeichert werden.Still referring to 9 is shown that the time series processing engine 904 some time series operators 906 contains. The time series operators 906 can be configured apply various operations, transformations, or functions to one or more input time series to generate output time series and / or event series. The input time series can contain raw time series data and / or derived time series data. The time series operators 906 can be configured to calculate aggregate values and averages, or to apply other mathematical operations to the input time series. In some embodiments, the time series operators generate 906 Virtual point time series by combining two or more input time series (e.g. adding the time series), generating multiple output time series from a single input time series, or performing mathematical operations on the input time series. In some embodiments, the time series operators perform 906 Data cleansing operations or deduplication operations on an input time series. In some embodiments, the time series operators use 906 the input time series to generate event series based on the values of the time series samples. The output time series can be stored as derived time series data 614 stored as one or more time series data entities. Similarly, the event series can be stored as event series data entities 614 get saved.

Bei manchen Ausführungsformen ändern oder ersetzen die Zeitreihenoperatoren 906 die Rohzeitreihendaten nicht, sondern erzeugen verschiedene „Ansichten“ der Rohzeitreihendaten (z. B. als separate Datenentitäten) mit entsprechenden relationalen Objekten, die die Beziehungen zwischen der Rohzeitreihendatenentität und den verschiedenen Ansichtsdatenentitäten definieren. Die Ansichten können auf die gleiche Weise wie die Rohzeitreihendaten abgefragt werden. Beispielsweise können Beispiele aus der Rohzeitreihendatenentität gelesen, zum Erzeugen der Ansichtsentität transformiert und dann als eine Ausgabe bereitgestellt werden. Weil die zum Erzeugen der Ansichten verwendeten Transformationen rechenintensiv sein können, können die Ansichten als Datenentitäten mit „materialisierter Ansicht“ in der Zeitreihendatenbank 928 gespeichert werden. Instanzen relationaler Objekte können erzeugt werden, um die Beziehung zwischen der Rohzeitreihendatenentität und den Datenentitäten mit Materialisierungsansicht zu definieren. Diese materialisierten Ansichten werden in durch die vorliegenden Offenbarung hinweg als abgeleitete Datenzeitreihen bezeichnet.In some embodiments, the time series operators change or replace 906 The raw time series data does not, but creates different "views" of the raw time series data (e.g. as separate data entities) with corresponding relational objects that define the relationships between the raw time series data entity and the different view data entities. The views can be queried in the same way as the raw time series data. For example, samples can be read from the raw time series data entity, transformed to generate the view entity, and then provided as an output. Because the transformations used to generate the views can be computationally intensive, the views can be viewed as data entities with a "materialized view" in the time series database 928 get saved. Instances of relational objects can be created to define the relationship between the raw time series data entity and the materialization view data entities. These materialized views are referred to as derived data time series throughout the present disclosure.

Die Zeitreihenoperatoren 906 können dazu konfiguriert sein, dass sie zur Abfragezeit (z. B. wenn eine Anforderung für abgeleitete Datenzeitreihen empfangen wird) oder vor der Abfragezeit (z. B. wenn neue Rohdatenabtastwerte als Reaktion auf ein definiertes Ereignis oder einen definierten Auslöser usw. empfangen werden) ausgeführt werden. Diese Flexibilität ermöglicht es, dass die Zeitreihenoperatoren 906 manche oder alle ihrer Operationen im Voraus und/oder als Reaktion auf eine Anforderung nach speziellen abgeleiteten Datenzeitreihen auszuführen. Beispielsweise können die Zeitreihenoperatoren 906 dazu konfiguriert sein, eine oder mehrere Zeitreihen, die häufig gelesen werden, vorzuverarbeiten, um sicherzustellen, dass die Zeitreihen immer aktualisiert werden, wenn neue Datenabtastwerte empfangen werden, und die vorverarbeiteten Zeitreihen können in einer entsprechenden Datenentität zum Abrufen gespeichert werden. Die Zeitreihenoperatoren 906 können jedoch dazu konfiguriert sein, bis zur Abfragezeit zu warten, um eine oder mehrere Zeitreihen zu verarbeiten, die selten gelesen werden, um eine Durchführung unnötiger Verarbeitungsvorgänge zu vermeiden.The time series operators 906 can be configured to be at the polling time (e.g. when a derived data time series request is received) or before the polling time (e.g. when new raw data samples are received in response to a defined event or trigger, etc.) be carried out. This flexibility allows the time series operators 906 perform some or all of their operations in advance and / or in response to a request for special derived data time series. For example, the time series operators 906 configured to preprocess one or more time series that are read frequently to ensure that the time series are updated whenever new data samples are received, and the preprocessed time series can be stored in a corresponding data entity for retrieval. The time series operators 906 however, may be configured to wait until the polling time to process one or more time series that are rarely read to avoid unnecessary processing.

Bei manchen Ausführungsformen werden die Zeitreihenoperatoren 906 in einer speziellen Sequenz ausgelöst, die durch einen gerichteten azyklischen Graphen (DAG) definiert ist. Der DAG kann einen Arbeitsfluss oder eine Sequenz von Operationen oder Transformationen definieren, die auf eine oder mehrere Eingabezeitreihen angewendet werden sollen. Beispielsweise kann der DAG für eine Rohdatenzeitreihe eine Datenbereinigungsoperation, eine Aggregationsoperation und eine Summierungsoperation enthalten (z. B. Addieren von zwei Rohdatenzeitreihen zum Erzeugen einer Virtueller-Punkt-Zeitreihe). Die DAGs können in einer DAG-Datenbank 930 innerhalb der Speicherung 614 oder intern innerhalb der Zeitreihenverarbeitungs-Engine 904 gespeichert werden. DAGs können durch den Arbeitsflussverwalter 922 abgerufen und verwendet werden, um zu bestimmen, wie und wann Eingabedatenabtastwerte verarbeitet werden sollen. Beispielhafte Systeme und Verfahren zum Erzeugen und Verwenden von DAGs werden nachstehend ausführlicher beschrieben.In some embodiments, the time series operators 906 triggered in a special sequence defined by a directed acyclic graph (DAG). The DAG can define a workflow or a sequence of operations or transformations to be applied to one or more input time series. For example, for a raw data time series, the DAG can include a data clean up operation, an aggregation operation, and a summation operation (e.g., adding two raw data time series to create a virtual point time series). The DAGs can be stored in a DAG database 930 within storage 614 or internally within the time series processing engine 904 get saved. DAGs can be managed by the workflow manager 922 are retrieved and used to determine how and when to process input data samples. Exemplary systems and methods for creating and using DAGs are described in more detail below.

Zeitreihenoperatoren 906 können Aggregationen für Dashboards, Bereinigungsoperationen, logische Operationen für Regeln und Fehlerdetektion, Maschinenlernvorhersagen oder -klassifizierungen, Aufruf für externe Dienste oder beliebige einer Vielzahl anderer Operationen durchführen, die auf Zeitreihendaten angewendet werden können. Die durch die Zeitreihenoperatoren 906 durchgeführten Operationen sind nicht auf Zeitreihendaten beschränkt. Die Zeitreihenoperatoren 906 können auch auf Ereignisdaten wirken oder als Abrechnungs-Engine für ein verbrauchs- oder tarifbasiertes Abrechnungssystem fungieren. Es ist gezeigt, dass die Zeitreihenoperatoren 906 einen Abtastwertaggregator 908, einen Virtueller-Punkt-Rechner 910, einen Wetterpunktrechner 912, einen Fehlerdetektor 914 und einen Ereignisreihengenerator 915 enthalten.Time series operators 906 can aggregate for dashboards, cleanup operations, logic operations for rules and error detection, machine learning predictions or classifications, invocation for external services, or any of a variety of other operations that can be applied to time series data. That through the time series operators 906 operations performed are not limited to time series data. The time series operators 906 can also act on event data or act as a billing engine for a consumption or tariff-based billing system. It is shown that the time series operators 906 a sample aggregator 908 , a virtual point calculator 910 , a weather point calculator 912 , an error detector 914 and an event series generator 915 contain.

Immer noch unter Bezugnahme auf 9 ist gezeigt, dass die Zeitreihenverarbeitungs-Engine 904 einen DAG-Optimierer 918 enthält. Der DAG-Optimierer 918 kann dazu konfiguriert sein, mehrere DAGs oder mehrere Stufen eines DAG zu kombinieren, um die Effizienz der von den Zeitreihenoperatoren 906 durchgeführten Operationen zu verbessern. Zum Beispiel wird angenommen, dass ein DAG über einen Funktionsblock, der „Zeitreihe A“ und „Zeitreihe B“ addiert, um „Zeitreihe C“ (d. h. A + B = C) zu erzeugen, und einen weiteren Funktionsblock, der „Zeitreihe C“ und „Zeitreihe D“ addiert, um „Zeitreihe E“ (d. h. C + D = E) zu erzeugen, verfügt. Der DAG-Optimierer 918 kann diese beiden Funktionsblöcke zu einem einzigen Funktionsblock kombinieren, der „Zeitreihe E“ direkt aus „Zeitreihe A“, „Zeitreihe B“ und „Zeitreihe D“ berechnet (d. h. E = A + B + D). Alternativ können sowohl „Zeitreihe C“ als auch „Zeitreihe E“ in demselben Funktionsblock berechnet werden, um die Anzahl an zur Verarbeitung des DAG erforderlichen unabhängigen Operationen zu verringern. Still referring to 9 is shown that the time series processing engine 904 a DAG optimizer 918 contains. The DAG optimizer 918 can be configured to combine multiple DAGs or multiple stages of a DAG to increase the efficiency of the time series operators 906 performed operations to improve. For example, it is assumed that a DAG has a function block that adds “time series A” and “time series B” to produce “time series C” (ie A + B = C) and another function block, the “time series C” and "time series D" added to produce "time series E" (ie C + D = E). The DAG optimizer 918 can combine these two function blocks into a single function block that calculates "time series E" directly from "time series A", "time series B" and "time series D" (ie E = A + B + D). Alternatively, both "Time Series C" and "Time Series E" can be calculated in the same function block to reduce the number of independent operations required to process the DAG.

Bei manchen Ausführungsformen kombiniert der DAG-Optimierer 918 DAGs oder Stufen eines DAG als Reaktion auf eine Bestimmung, dass mehrere DAGs oder Stufen eines DAG ähnliche oder gemeinsam genutzte Eingaben verwenden werden (z. B. eine oder mehrere der gleichen Eingabezeitreihen). Dies ermöglicht, dass die Eingaben einmal abgerufen und geladen werden, anstatt zwei separate Operationen durchzuführen, die beide die gleichen Eingaben laden. Bei manchen Ausführungsformen plant der DAG-Optimierer 918 Zeitreihenoperatoren 906 an Knoten, auf denen sich Daten im Speicher befinden, um die Datenmenge, die aus der Zeitreihendatenbank 928 geladen werden muss, weiter zu reduzieren.In some embodiments, the DAG optimizer combines 918 DAGs or levels of a DAG in response to a determination that multiple DAGs or levels of a DAG will use similar or shared inputs (e.g., one or more of the same input time series). This allows the inputs to be retrieved and loaded once instead of performing two separate operations, both of which load the same inputs. In some embodiments, the DAG optimizer plans 918 Time series operators 906 at nodes on which data is in memory, the amount of data that comes from the time series database 928 needs to be further reduced.

Es ist gezeigt, dass die Zeitreihenverarbeitungs-Engine 904 einen Generator 920 für gerichtete azyklische Graphen (DAG) enthält. Der DAG-Generator 920 kann dazu konfiguriert sein, einen oder mehrere DAGs für jede Rohdatenzeitreihe zu erzeugen. Jeder DAG kann einen Arbeitsfluss oder eine Sequenz von Operationen definieren, die durch die Zeitreihenoperatoren 906 an den Rohdatenzeitreihen ausgeführt werden können. Wenn neue Abtastwerte der Rohdatenzeitreihen empfangen werden, kann der Arbeitsflussverwalter 922 den entsprechenden DAG abrufen und den DAG verwenden, um zu bestimmen, wie die Rohdatenzeitreihen verarbeitet werden sollen. Bei manchen Ausführungsformen sind die DAGs deklarative Ansichten, die die Sequenz von Operationen darstellen, die auf jede Rohdatenzeitreihe angewendet werden. Die DAGs können für Zeitreihen anstatt für SQL (Structured Query Language) gestaltet sein.It is shown that the time series processing engine 904 a generator 920 for directed acyclic graphs (DAG) contains. The DAG generator 920 can be configured to generate one or more DAGs for each raw data time series. Each DAG can define a workflow or a sequence of operations performed by the time series operators 906 can be executed on the raw data time series. When new samples of the raw data time series are received, the workflow manager can 922 retrieve the appropriate DAG and use the DAG to determine how the raw data time series should be processed. In some embodiments, the DAGs are declarative views that represent the sequence of operations that are applied to each raw data time series. The DAGs can be designed for time series instead of SQL (Structured Query Language).

Bei manchen Ausführungsformen gelten DAGs über Zeitfenstern. Beispielsweise können die durch einen DAG definierten Zeitreihenverarbeitungsoperationen eine Datenaggregationsoperation enthalten, die mehrere Rohdatenabtastwerte mit Zeitstempeln innerhalb eines gegebenen Zeitfensters aggregiert. Die Startzeit und Endzeit des Zeitfensters können durch den DAG und die Zeitreihe definiert werden, auf die der DAG angewendet wird. Der DAG kann die Dauer des Zeitfensters definieren, über das die Datenaggregationsoperation durchgeführt werden wird. Beispielsweise kann der DAG die Aggregationsoperation als eine stündliche Aggregation (d. h. zum Erzeugen einer stündlichen Daten-Rollup-Zeitreihe), eine tägliche Aggregation (d. h. zum Erzeugen einer täglichen Daten-Rollup-Zeitreihe), eine wöchentliche Aggregation (d. h. zum Erzeugen einer) wöchentliche Daten-Rollup-Zeitreihen) oder eine beliebige andere Aggregationsdauer definieren. Die Position des Zeitfensters (z. B. eines speziellen Tages, einer speziellen Woche usw.), über das die Aggregation durchgeführt wird, kann durch die Zeitstempel der Datenabtastwerte von Zeitreihen definiert werden, die als eine Eingabe für den DAG bereitgestellt werden.In some embodiments, DAGs apply over time windows. For example, the time series processing operations defined by a DAG may include a data aggregation operation that aggregates multiple raw data samples with timestamps within a given time window. The start time and end time of the time window can be defined by the DAG and the time series to which the DAG is applied. The DAG can define the duration of the time window over which the data aggregation operation will be performed. For example, the DAG may perform the aggregation operation as an hourly aggregation (i.e., to generate an hourly data rollup time series), a daily aggregation (i.e., to generate a daily data rollup time series), a weekly aggregation (i.e., to generate a) weekly data Rollup time series) or any other aggregation duration. The location of the time window (e.g., a particular day, week, etc.) over which the aggregation is performed can be defined by the time stamps of the data samples from time series provided as an input to the DAG.

Im Betrieb kann der Abtastwertaggregator 908 den DAG verwenden, um die Dauer des Zeitfensters (z. B. eine Stunde, einen Tag, eine Woche usw.) zu identifizieren, über das die Datenaggregationsoperation durchgeführt wird. Der Abtastwertaggregator 908 kann die Zeitstempel der Datenabtastwerte in den Zeitreihen verwenden, die als eine Eingabe für den DAG bereitgestellt werden, um den Ort des Zeitfensters (d. h. die Startzeit und die Endzeit) zu identifizieren. Der Abtastwertaggregator 908 kann die Startzeit und Endzeit des Zeitfensters so einstellen, dass das Zeitfenster die identifizierte Dauer aufweist und die Zeitstempel der Datenabtastwerte enthält. Bei manchen Ausführungsformen sind die Zeitfenster fest und weisen vordefinierte Startzeiten und Endzeiten auf (z. B. den Anfang und das Ende jeder Stunde, jedes Tages, jeder Woche usw.). Bei anderen Ausführungsformen können die Zeitfenster gleitende Zeitfenster sein, die Startzeiten und Endzeiten aufweisen, die von den Zeitstempeln der Datenabtastwerte in den Eingabezeitreihen abhängen.In operation, the sample aggregator can 908 Use the DAG to identify the length of the time window (e.g., an hour, a day, a week, etc.) over which the data aggregation operation is performed. The sample aggregator 908 can use the time stamps of the data samples in the time series provided as an input to the DAG to identify the location of the time window (ie, the start time and the end time). The sample aggregator 908 can set the start time and end time of the time window so that the time window has the identified duration and contains the time stamps of the data samples. In some embodiments, the time windows are fixed and have predefined start times and end times (e.g., the beginning and end of every hour, every day, every week, etc.). In other embodiments, the time slots can be sliding time slots that have start times and end times that depend on the time stamps of the data samples in the input time series.

10 zeigt ein Flussdiagramm eines Prozesses oder eines Verfahrens zum Aktualisieren/Erzeugen einer Datenentität basierend auf Daten, die von einer Vorrichtung eines Gebäudesubsystems empfangen werden, gemäß manchen Ausführungsbeispielen. Unter Bezugnahme auf 10 beginnt der Prozess und, wenn Zeitreihendaten (z. B. Roh- oder Eingabezeitreihendaten), die für eine Vorrichtung eines Gebäudesubsystems erzeugt wurden (z. B. durch den Datenkollektor), empfangen werden, kann der Transformationsdienst 708 bei Block 1005 eine Kennung der Vorrichtung aus den empfangenen Zeitreihendaten bestimmen. Bei Block 1010 kann der Transformationsdienst 708 ein statisches Identitätsattribut von den Daten mit statischen Identitätsattributen registrierter Objektentitäten vergleichen, um einen Datencontainer für die Vorrichtung zu lokalisieren. Falls keine Übereinstimmung aus dem Vergleich bei Block 1015 vorhanden ist, kann der Transformationsdienst 708 den Registrierungsdienst aufrufen, um die Vorrichtung bei Block 1020 zu registrieren. Falls eine Übereinstimmung aus dem Vergleich bei Block 1015 vorhanden ist, kann der Transformationsdienst 708 einen Entitätsgraphen erzeugen oder Entitätsdaten für die Vorrichtung bei Block 1025 abrufen. Aus dem Entitätsgraphen oder den Entitätsdaten kann der Transformationsdienst 708 basierend auf den relationalen Objekten (z. B. istVerknüpft) für die Vorrichtung bestimmen, ob eine entsprechende Datenentität vorhanden ist, um bei Block 1025 ein dynamisches Attribut aus den Daten zu aktualisieren. Falls nicht, kann der Verwaltungsdienst 706 eine Datenentität für das dynamische Attribut und eine Instanz eines entsprechenden relationalen Objekts (z. B. istVerknüpft) erzeugen, um bei Block 1040 die Beziehung zwischen dem dynamischen Attribut und der erzeugten Datenentität zu definieren. Falls die entsprechende Datenentität vorhanden ist, kann der Verwaltungsdienst 706 die Datenentität, die dem dynamischen Attribut aus den Daten entspricht, bei Block 1045 aktualisieren. Dann kann der Transformationsdienst 708 den Entitätsgraphen oder die Entitätsdaten bei Block 1050 aktualisieren oder neu erzeugen und kann der Prozess enden. 10th FIG. 14 shows a flow diagram of a process or method for updating / generating a data entity based on data received from a device of a building subsystem, according to some embodiments. With reference to 10th the process begins, and when time series data (e.g., raw or input time series data) generated for a building subsystem device (e.g., by the data collector) is received, the transformation service can 708 at block 1005 determine an identifier of the device from the received time series data. At block 1010 can the transformation service 708 a static identity attribute from the data with static Compare identity attributes of registered object entities to locate a data container for the device. If there is no match from the comparison at block 1015 is available, the transformation service 708 Call the registration service to block the device at 1020 to register. If there is a match from the comparison at block 1015 is available, the transformation service 708 generate an entity graph or entity data for the device at block 1025 recall. The transformation service can use the entity graph or the entity data 708 based on the relational objects (e.g., Linked) for the device determine whether there is a corresponding data entity to block at 1025 update a dynamic attribute from the data. If not, the administration service can 706 create a data entity for the dynamic attribute and an instance of a corresponding relational object (e.g., linked) to block 1040 define the relationship between the dynamic attribute and the data entity created. If the corresponding data entity is available, the administration service can 706 the data entity corresponding to the dynamic attribute from the data at block 1045 To update. Then the transformation service 708 the entity graph or the entity data at block 1050 update or recreate and the process can end.

11 ist ein beispielhafter Entitätsgraph von Entitätsdaten gemäß einer Ausführungsform der vorliegenden Offenbarung. Das Beispiel aus 11 nimmt an, dass eine HVAC-Fehlerdetektionsanwendung eine abnormale Temperaturmessung mit Bezug auf den Temperatursensor 1112 detektiert hat. Der Temperatursensor 1112 selbst kann jedoch ordnungsgemäß funktionieren, aber kann auf verschiedene Faktoren, Bedingungen und andere Systeme und Vorrichtungen angewiesen sein, um die Temperatur ordnungsgemäß zu messen. Dementsprechend muss beispielsweise die HVAC-Fehlerdetektionsanwendung möglicherweise das Zimmer 1114, in dem sich der Temperatursensor 1112 befindet, den entsprechenden Temperatursollwert, den Zustand der VAV 1104, die das Zimmer 1114 mit klimatisierter Luft versorgt, den Zustand der AHU 1102, die die VAV 1104 speist, den Zustand der Lüftungsöffnungen in der HVAC-Zone 1110 usw. kennen, um die Ursache der abnormalen Messung zu lokalisieren. Daher kann die HVAC-Fehlerdetektionsanwendung zusätzliche Informationen von verschiedenen zugehörigen Subsystemen und Vorrichtungen (z. B. Entitätsobjekten) sowie den Zonen und Zimmern (z. B. Entitätsobjekten) benötigen, für deren Versorgung die Subsysteme und Vorrichtungen konfiguriert sind, um die Ursache der abnormalen Messung ordnungsgemäß zu bestimmen oder zu folgern. 11 10 is an exemplary entity graph of entity data according to an embodiment of the present disclosure. The example from 11 assumes that an HVAC fault detection application is an abnormal temperature measurement with respect to the temperature sensor 1112 has detected. The temperature sensor 1112 however, itself can function properly, but may depend on various factors, conditions, and other systems and devices to properly measure temperature. Accordingly, for example, the HVAC fault detection application may need the room 1114 in which the temperature sensor 1112 the corresponding temperature setpoint, the state of the VAV 1104 who the room 1114 supplied with conditioned air, the condition of the AHU 1102 who the VAV 1104 feeds the condition of the ventilation openings in the HVAC zone 1110 etc. to find the cause of the abnormal measurement. Therefore, the HVAC fault detection application may need additional information from various related subsystems and devices (e.g., entity objects) and the zones and rooms (e.g., entity objects) that the subsystems and devices are configured to serve to address the cause of the abnormal To correctly determine or infer measurement.

Unter Bezugnahme auf 11 repräsentiert der Entitätsgraph 1100 jede der Entitäten (z. B. den Temperatursensor 1112 und zugehörige Entitäten) als Knoten in dem Entitätsgraphen 1100 und zeigt die Beziehung zwischen den Knoten (z. B. dem Temperatursensor 1112 und zugehörigen Entitäten) über relationale Objekte (z. B. speist, hatPunkt, hatTeil, Steuert usw.). Beispielsweise zeigt der Entitätsgraph 1100, dass der Temperatursensor 1112 Temperaturlesewerte (z. B. hatPunkt) an die VAV 1104 und die HVAC-Zone 1110 liefert. Eine AHU 1102 versorgt (z. B. speist) die VAV 1104 mit gekühlter und/oder erwärmter Luft. Die AHU 1102 empfängt/liefert Leistungslesewerte (z. B. hatPunkt) von einem/an einen Stromzähler 1108. Die VAV 1104 liefert (z. B. speist) Luft an die HVAC-Zone 1110 unter Verwendung (z. B. hatTeil) einer Luftklappe 1106. Die HVAC-Zone 1110 liefert die Luft an das Zimmer 1114. Ferner befinden sich (z. B. hatTeil) die Zimmer 1114 und 1120 in der Beleuchtungszone 1118, die von der Beleuchtungssteuerung 1116 gesteuert wird (z. B. steuert).With reference to 11 represents the entity graph 1100 each of the entities (e.g. the temperature sensor 1112 and associated entities) as nodes in the entity graph 1100 and shows the relationship between the nodes (e.g. the temperature sensor 1112 and related entities) via relational objects (e.g. feed, has point, has part, controls, etc.). For example, the entity graph shows 1100 that the temperature sensor 1112 Temperature readings (e.g. has point) to the VAV 1104 and the HVAC zone 1110 delivers. An AHU 1102 supplies (e.g. feeds) the VAV 1104 with cooled and / or heated air. The AHU 1102 receives / delivers power readings (e.g. hatPoint) from / to an electricity meter 1108 . The VAV 1104 delivers (e.g. feeds) air to the HVAC zone 1110 using (e.g. part) an air damper 1106 . The HVAC zone 1110 delivers the air to the room 1114 . Furthermore, the rooms are located (e.g. has part) 1114 and 1120 in the lighting zone 1118 by the lighting control 1116 is controlled (e.g. controls).

Dementsprechend kann bei dem Beispiel aus 11 als Reaktion auf den Empfang der fehlerhaften Messung von dem Temperatursensor 1112 die HVAC-Fehlerdetektionsanwendung und/oder der Analysedienst 624 aus dem Entitätsgraphen bestimmen, dass der Fehler durch irgendeine Fehlfunktion in einer oder mehreren der anderen zugehörigen Entitäten verursacht werden könnte und nicht unbedingt eine Fehlfunktion des Temperatursensors 1112 ist. Somit kann die HVAC-Fehlerdetektionsanwendung und/oder der Analysedienst 624 die anderen zugehörigen Entitäten weiter untersuchen, um die wahrscheinlichste Fehlerursache zu bestimmen oder zu folgern.Accordingly, in the example 11 in response to receiving the erroneous measurement from the temperature sensor 1112 the HVAC fault detection application and / or the analysis service 624 determine from the entity graph that the failure could be caused by some malfunction in one or more of the other related entities and not necessarily a malfunction of the temperature sensor 1112 is. Thus, the HVAC fault detection application and / or the analysis service 624 further examine the other related entities to determine or infer the most likely cause of the failure.

Beispielsweise ist 12 ein Flussdiagramm eines Prozesses oder eines Verfahrens zum Analysieren von Daten von einer zweiten in Zusammenhang stehenden Vorrichtung basierend auf Daten von einer ersten Vorrichtung gemäß manchen Ausführungsformen. Unter Bezugnahme auf 12 startet der Prozess und werden Zeitreihendaten (z. B. durch den Datenkollektor erzeugte Roh- oder Eingabezeitreihendaten), einschließlich einer abnormalen Messung von einer ersten Vorrichtung, bei Block 1205 empfangen. Der Transformationsdienst 708 bestimmt eine Kennung der ersten Vorrichtung aus den empfangenen Zeitreihendaten bei Block 1210. Der Transformationsdienst 708 identifiziert bei Block 1215 eine zweite Vorrichtung, die mit der ersten Vorrichtung durch relationale Objekte in Zusammenhang steht, die der ersten Vorrichtung zugeordnet sind. Die zweite Vorrichtung kann Teil desselben Gebäudesubsystems wie jenes der ersten Vorrichtung oder eines anderen Gebäudesubsystems sein und kann für dasselbe Gebäude wie jenes der ersten Vorrichtung oder eines anderen Gebäudes sein. Der Transformationsdienst 708 ruft den Webdienst 702 auf, um bei Block 1220 Messdaten von der zweiten Vorrichtung abzurufen. Der Analysedienst 624 analysiert die Daten von der ersten Vorrichtung und der zweiten Vorrichtung bei Block 1225. Der Analysedienst 624 stellt bei Block 1230 eine Empfehlung von der Analyse der Daten von jeder der ersten Vorrichtung und der zweiten Vorrichtung bereit und der Prozess endet.For example 12th 5 is a flowchart of a process or method for analyzing data from a second related device based on data from a first device, in accordance with some embodiments. With reference to 12th the process starts and blocks time series data (e.g., raw or input time series data generated by the data collector), including an abnormal measurement from a first device 1205 receive. The transformation service 708 determines an identifier of the first device from the received time series data at block 1210 . The transformation service 708 identified at block 1215 a second device associated with the first device through relational objects associated with the first device. The second device may be part of the same building subsystem as that of the first device or another building subsystem and may be for the same building as that of the first device or another building. The transformation service 708 calls the web service 702 on to at block 1220 Retrieve measurement data from the second device. The analysis service 624 analyzes the data from the first device and the second device at block 1225 . The analysis service 624 puts at block 1230 a recommendation of analyzing the data from each of the first device and the second device is ready and the process ends.

13 ist ein Flussdiagramm eines Prozesses oder eines Verfahrens zum Erzeugen einer abgeleiteten Zeitreihe aus Daten, die durch eine erste Vorrichtung oder eine zweite Vorrichtung erzeugt werden, gemäß manchen Ausführungsformen. Unter Bezugnahme auf 13 startet der Prozess und werden bei Block 1305 Rohdaten von einer ersten Vorrichtung eines Gebäudeverwaltungssubsystems empfangen. Die Rohdaten können einen oder mehrere Datenpunkte enthalten, die durch erste Vorrichtung erzeugt werden. Beispielsweise können die Datenpunkte Messwerte sein, die von der ersten Vorrichtung erzeugt werden. Der Datenkollektor 612 erzeugt bei Block 1310 Roh(oder Eingabe-)-Zeitreihen aus den Rohdaten. Die Rohzeitreihen können eine Kennung der ersten Vorrichtung, einen Zeitstempel (z. B. einen lokalen Zeitstempel) davon, wann der eine oder die mehreren Datenpunkte von der ersten Vorrichtung erzeugt wurden, und einen Versatzwert sowie einen Wert des einen oder der mehreren Datenpunkte enthalten. 13 10 is a flowchart of a process or method for generating a derived time series from data generated by a first device or a second device, according to some embodiments. With reference to 13 the process starts and are at block 1305 Receive raw data from a first device of a building management subsystem. The raw data can contain one or more data points that are generated by the first device. For example, the data points can be measured values that are generated by the first device. The data collector 612 generated at block 1310 Raw (or input -) - time series from the raw data. The raw time series may include an identifier of the first device, a time stamp (e.g., a local time stamp) of when the one or more data points were generated by the first device, and an offset value and a value of the one or more data points.

Der Transformationsdienst 708 bestimmt bei Block 1315 eine Kennung der ersten Vorrichtung aus den Rohzeitreihendaten und identifiziert (z. B. unter Verwendung eines Entitätsgraphen oder von Daten) eine erste Objektentität, die die erste Vorrichtung repräsentiert. Die Rohzeitreihendaten werden bei Block 1320 in einer entsprechenden Datenentität gespeichert, die mit der ersten Objektentität zusammenhängt. Beispielsweise kann der Transformationsdienst 708 die entsprechende Datenentität aus einem relationalen Objekt identifizieren, das die Beziehung zwischen der ersten Objektentität und der entsprechenden Datenentität definiert.The transformation service 708 determined at block 1315 an identifier of the first device from the raw time series data and identifies (e.g. using an entity graph or data) a first object entity representing the first device. The raw time series data are at block 1320 stored in a corresponding data entity that is related to the first object entity. For example, the transformation service 708 identify the corresponding data entity from a relational object that defines the relationship between the first object entity and the corresponding data entity.

Die Zeitreihenverarbeitungs-Engine 904 identifiziert einen Verarbeitungsarbeitsfluss (z. B. einen DAG-Verarbeitungsarbeitsfluss), um bei Block 1325 die Rohzeitreihendaten zu verarbeiten. In dem Beispiel aus 13 nimmt der Verarbeitungsarbeitsfluss die Rohzeitreihendaten für die erste Vorrichtung und Daten von einer zweiten Vorrichtung als eine Eingabe. Die zweite Vorrichtung kann Teil desselben Gebäudesubsystems wie jenes der ersten Vorrichtung oder eines anderen Gebäudesubsystems sein und kann für dasselbe Gebäude wie jenes der ersten Vorrichtung oder eines anderen Gebäudes sein. Eine zweite Objektentität für die zweite Vorrichtung wird bei Block 1330 identifiziert. Zum Beispiel kann die zweite Objektentität aus einem relationalen Objekt identifiziert werden, das eine Beziehung zwischen der ersten Objektentität und der zweiten Objektentität angibt. Eine entsprechende Datenentität, die Rohzeitreihendaten oder abgeleitete Zeitreihendaten für die zweite Vorrichtung speichert, wird in Block 1335 identifiziert. Beispielsweise kann die entsprechende Datenentität aus einem relationalen Deskriptor bestimmt werden, der eine Beziehung zwischen der zweiten Objektentität und der entsprechenden Datenentität angibt.The time series processing engine 904 identifies a processing workflow (e.g., a DAG processing workflow) to block 1325 to process the raw time series data. In the example 13 The processing workflow takes the raw time series data for the first device and data from a second device as an input. The second device may be part of the same building subsystem as that of the first device or another building subsystem and may be for the same building as that of the first device or another building. A second object entity for the second device is at block 1330 identified. For example, the second object entity can be identified from a relational object that indicates a relationship between the first object entity and the second object entity. A corresponding data entity that stores raw time series data or derived time series data for the second device is stored in block 1335 identified. For example, the corresponding data entity can be determined from a relational descriptor that indicates a relationship between the second object entity and the corresponding data entity.

Der Verarbeitungsarbeitsfluss wird ausgeführt, um bei Block 1340 die abgeleiteten Zeitreihe zu erzeugen. Beispielsweise kann die abgeleitete Zeitreihe einen virtuellen Datenpunkt enthalten, der unter Verwendung von Daten vor ersten Vorrichtung und von der zweiten Vorrichtung berechnet wird. Beispielsweise kann eine arithmetische Operation an den Daten der ersten und der zweiten Vorrichtung durchgeführt werden, um den virtuellen Datenpunkt zu berechnen. Eine entsprechende Datenentität wird identifiziert, um die abgeleitete Zeitreihe zu speichern. Beispielsweise kann die entsprechende Datenentität durch ein oder mehrere relationale Objekte identifiziert werden, die eine Beziehung zwischen der entsprechenden Datenentität und der ersten Vorrichtung und/oder der entsprechenden Datenentität und der zweiten Vorrichtung angeben. Die abgeleitete Zeitreihe wird bei Block 1345 in der entsprechenden Datenentität gespeichert und der Prozess endet.The processing workflow is carried out at block 1340 to generate the derived time series. For example, the derived time series may include a virtual data point that is calculated using data in front of and from the second device. For example, an arithmetic operation can be performed on the data of the first and second devices to calculate the virtual data point. A corresponding data entity is identified to save the derived time series. For example, the corresponding data entity can be identified by one or more relational objects that indicate a relationship between the corresponding data entity and the first device and / or the corresponding data entity and the second device. The derived time series is at block 1345 stored in the appropriate data entity and the process ends.

AbtastwertaggregationSample aggregation

Unter Bezugnahme auf 14-15 sind ein Blockdiagramm 1400 und eine Datentabelle 1450, die eine Aggregationstechnik veranschaulichen, die von dem Abtastwertaggregator 908 verwendet werden kann, gemäß manchen Ausführungsformen gezeigt. In 14 ist ein Datenpunkt 1402 gezeigt. Der Datenpunkt 1402 ist ein Beispiel für einen gemessenen Datenpunkt, für den Zeitreihenwerte erhalten werden können. Beispielsweise ist der Datenpunkt 1402 als Außenlufttemperaturpunkt gezeigt und weist Werte auf, die von einem Temperatursensor gemessen werden können. Obwohl ein spezieller Typ von Datenpunkt 1402 in 14 gezeigt ist, versteht es sich, dass der Datenpunkt 1402 eine beliebige Art von gemessenem oder berechnetem Datenpunkt sein kann. Zeitreihenwerte des Datenpunkts 1402 können von dem Datenkollektor 612 gesammelt und zu einer Rohdatenzeitreihe 1404 zusammengestellt werden.With reference to 14-15 are a block diagram 1400 and a data table 1450 which illustrate an aggregation technique used by the sample aggregator 908 may be used, according to some embodiments. In 14 is a data point 1402 shown. The data point 1402 is an example of a measured data point for which time series values can be obtained. For example, the data point 1402 shown as an outside air temperature point and has values that can be measured by a temperature sensor. Although a special type of data point 1402 in 14 is shown, it is understood that the data point 1402 can be any type of measured or calculated data point. Time series values of the data point 1402 can from the data collector 612 collected and a raw data time series 1404 be put together.

Wie in 15 gezeigt, enthält die Rohdatenzeitreihe 1404 eine Zeitreihe aus Datenabtastwerten, die jeweils als separate Zeile in der Datentabelle 1450 gezeigt sind. Es ist gezeigt, dass jeder Abtastwert der Rohdatenzeitreihen 1404 einen Zeitstempel und einen Datenwert enthält. Die Zeitstempel der Rohdatenzeitreihe 1404 sind zehn Minuten und eine Sekunde voneinander entfernt, was angibt, dass das Abtastintervall der Rohdatenzeitreihen 1404 zehn Minuten und eine Sekunde beträgt. Beispielsweise ist der Zeitstempel des ersten Datenabtastwertes als 31-12 - 2015Z23: 10: 00 gezeigt, was angibt, dass der erste Datenabtastwert der Rohdatenzeitreihe 1404 am 31. Dezember 2015 um 23: 10:00 Uhr gesammelt wurde. Der Zeitstempel des zweiten Datenabtastwertes als 31-12 - 2015Z23: 20: 01 gezeigt, was angibt, dass der zweite Datenabtastwert der Rohdatenzeitreih 1404 am 31. Dezember 2015 um 23:20:01 Uhr gesammelt wurde. Bei manchen Ausführungsformen werden die Zeitstempel der Rohdaten-Zeitreihen 1404 zusammen mit einem Versatz relativ zur Universalzeit gespeichert, wie zuvor beschrieben wurde. Die Werte der Rohdatenzeitreihen 1404 beginnen mit einem Wert von 10 und erhöhen sich mit jedem Abtastwert um 10. Beispielsweise beträgt der Wert des zweiten Abtastwerts der Rohdatenzeitreihen 1404 20, beträgt der Wert des dritten Abtastwerts der Rohdatenzeitreihen 1404 30 usw.As in 15 shown contains the raw data time series 1404 a time series of data samples, each as a separate line in the data table 1450 are shown. It is shown that each sample of the Raw data time series 1404 contains a timestamp and a data value. The timestamps of the raw data time series 1404 are ten minutes and one second apart, indicating that the sampling interval of the raw data time series 1404 is ten minutes and one second. For example, the time stamp of the first data sample is shown as 31-12-2015Z23: 10: 00, indicating that the first data sample of the raw data time series 1404 on December 31, 2015 at 11:10 p.m. The time stamp of the second data sample is shown as 31-12-2015Z23: 20: 01, indicating that the second data sample is the raw data time series 1404 on December 31, 2015 at 11:20:01 p.m. In some embodiments, the timestamps become the raw data time series 1404 stored along with an offset relative to universal time, as previously described. The values of the raw data time series 1404 start with a value of 10 and increase by 10 with each sample. For example, the value of the second sample is the raw data time series 1404 20th , is the value of the third sample of the raw data time series 1404 30th etc.

In 14 sind mehrere Daten-Rollup-Zeitreihen 1406-1414 gezeigt. Die Daten-Rollup-Zeitreihen 1406-1414 können durch den Abtastwertaggregator 908 erzeugt und als abgeleitete Zeitreihendaten gespeichert werden. Die Daten-Rollup-Zeitreihen 1406-1414 beinhalten eine durchschnittliche Viertelstundenzeitreihe 1406, eine durchschnittliche stündliche Zeitreihe 1408, eine durchschnittliche tägliche Zeitreihe 1410, eine durchschnittliche monatliche Zeitreihe 1412 und eine durchschnittliche jährliche Zeitreihe 1414. Jede der Daten-Rollup-Zeitreihen 1406-1414 ist von einer Elternzeitreihe abhängig. Bei manchen Ausführungsformen ist die Elternzeitreihe für jede der Daten-Rollup-Zeitreihen 1406-1414 die Zeitreihen mit der nächst kürzeren Dauer zwischen aufeinanderfolgenden Zeitreihenwerten. Beispielsweise ist die Elternzeitreihe für die durchschnittliche Viertelstundenzeitreihe 1406 die Rohdatenzeitreihe 1404. Gleichermaßen ist die Elternzeitreihe für die durchschnittliche stündliche Zeitreihe 1408 die durchschnittliche Viertelstundenzeitreihe 1406; die Elternzeitreihe für die durchschnittliche tägliche Zeitreihe 1410 ist die durchschnittliche stündliche Zeitreihe 1408; die Elternzeitreihe für die durchschnittliche monatliche Zeitreihe 1412 ist die durchschnittliche tägliche Zeitreihe 1410; und die Elternzeitreihe für die durchschnittliche jährliche Zeitreihe 1414 ist die durchschnittliche monatliche Zeitreihe 1412.In 14 are multiple data rollup time series 1406-1414 shown. The data rollup time series 1406-1414 can by the sample aggregator 908 generated and saved as derived time series data. The data rollup time series 1406-1414 include an average quarter-hour series 1406 , an average hourly time series 1408 , an average daily time series 1410 , an average monthly time series 1412 and an average annual time series 1414 . Each of the data rollup time series 1406-1414 is dependent on a parental leave series. In some embodiments, the parent time series is for each of the data rollup time series 1406-1414 the time series with the next shorter duration between successive time series values. For example, the parental time series is for the average quarter-hour series 1406 the raw data time series 1404 . Similarly, the parental time series is for the average hourly time series 1408 the average quarter-hour series 1406 ; the parental time series for the average daily time series 1410 is the average hourly time series 1408 ; the parental time series for the average monthly time series 1412 is the average daily time series 1410 ; and the parental time series for the average annual time series 1414 is the average monthly time series 1412 .

Der Abtastwertaggregator 908 kann jede der Daten-Rollup-Zeitreihen 1406-1414 aus den Zeitreihenwerten der entsprechenden Elternzeitreihen erzeugen. Beispielsweise kann der Abtastwertaggregator 908 die durchschnittliche Viertelstundenzeitreihe 1406 erzeugen, indem alle Abtastwerte des Datenpunkts 1402 in der Rohdatenzeitreihen 1404 aggregiert werden, die Zeitstempel innerhalb jeder Viertelstunde aufweisen. Gleichermaßen kann der Abtastwertaggregator 908 die durchschnittliche stündliche Zeitreihe 1408 erzeugen, indem alle der Zeitreihenwerte der durchschnittlichen Viertelstundenzeitreihe 1406 aggregiert werden, die Zeitstempel innerhalb jeder Stunde aufweisen. Der Abtastwertaggregator 908 kann die durchschnittliche tägliche Zeitreihe 1410 erzeugen, indem alle der Zeitreihenwerte der durchschnittlichen stündlichen Zeitreihe 1408 aggregiert werden, die Zeitstempel innerhalb jedes Tages aufweisen. Der Abtastwertaggregator 908 kann die durchschnittliche monatliche Zeitreihe 1412 erzeugen, indem alle der Zeitreihenwerte der durchschnittlichen täglichen Zeitreihe 1410 aggregiert werden, die Zeitstempel innerhalb jedes Monats aufweisen. Der Abtastwertaggregator 908 kann die durchschnittliche jährliche Zeitreihe 1414 erzeugen, indem alle der Zeitreihenwerte der durchschnittlichen monatlichen Zeitreihe 1412 aggregiert werden, die Zeitstempel innerhalb jedes Jahres aufweisen.The sample aggregator 908 can each of the data rollup time series 1406-1414 generate from the time series values of the corresponding parental time series. For example, the sample aggregator 908 the average quarter-hour series 1406 generate by taking all samples of the data point 1402 in the raw data time series 1404 are aggregated that have timestamps within every quarter of an hour. Similarly, the sample aggregator can 908 the average hourly time series 1408 generate all of the time series values of the average quarter hour time series 1406 are aggregated with timestamps within every hour. The sample aggregator 908 can be the average daily time series 1410 generate all of the time series values of the average hourly time series 1408 be aggregated that have timestamps within each day. The sample aggregator 908 can be the average monthly time series 1412 generate all of the time series values of the average daily time series 1410 aggregated that have timestamps within each month. The sample aggregator 908 can be the average annual time series 1414 generate all of the time series values of the average monthly time series 1412 be aggregated that have timestamps within each year.

Bei manchen Ausführungsformen sind die Zeitstempel für jeden Abtastwert in den Daten-Rollup-Zeitreihen 1406-1414 die Anfänge des Aggregationsintervalls, das zum Berechnen des Werts des Abtastwerts verwendet wird. Beispielsweise wird gezeigt, dass der erste Datenabtastwert der durchschnittlichen Viertelstundenzeitreihe 1406 den Zeitstempel 31 - 12 - 2015Z23: 00: 00 enthält. Dieser Zeitstempel gibt an, dass der erste Datenabtastwert der durchschnittlichen Viertelstundenzeitreihe 1406 einem Aggregationsintervall entspricht, das am 31. Dezember 2015 um 23:00:00 Uhr beginnt. Da während dieses Intervalls nur ein Datenabtastwert der Rohdatenzeitreihen 1404 auftritt, ist der Wert des ersten Datenabtastwerts der durchschnittlichen Viertelstundenzeitreihe 1406 der Durchschnitt eines einzelnen Datenwerts (d. h. Durchschnitt(10) = 10). Gleiches gilt für den zweiten Datenabtastwert der durchschnittlichen Viertelstundenzeitreihe 1406 (d. h. Durchschnitt(20) = 20).In some embodiments, the timestamps are for each sample in the data rollup time series 1406-1414 the beginnings of the aggregation interval used to calculate the value of the sample. For example, it is shown that the first data sample of the average quarter hour time series 1406 contains the time stamp 31 - 12 - 2015Z23: 00: 00. This timestamp indicates that the first data sample of the average quarter hour time series 1406 corresponds to an aggregation interval that begins on December 31, 2015 at 11:00 p.m. Since during this interval only one data sample of the raw data time series 1404 occurs is the value of the first data sample of the average quarter hour time series 1406 the average of a single data value (ie average (10) = 10). The same applies to the second data sample of the average quarter-hour time series 1406 (ie average (20) = 20).

Es ist gezeigt, dass der dritte Datenabtastwert der durchschnittlichen Viertelstundenzeitreihe 1406 den Zeitstempel 31-12 - 2015Z23: 30: 00 enthält. Dieser Zeitstempel gibt an, dass der dritte Datenabtastwert der durchschnittlichen Viertelstundenzeitreihe 1406 einem Aggregationsintervall entspricht, das am 31. Dezember 2015 um 23:30:00 Uhr beginnt. Da jedes Aggregationsintervall der durchschnittlichen Viertelstundenzeitreihe 1406 eine Viertelstunde dauert, endet das Aggregationsintervall am 31. Dezember 2015 um 23:45:00 Uhr. Dieses Aggregationsintervall beinhaltet zwei Datenabtastwerte der Rohdatenzeitreihe 1404 (d. h. den dritten Rohdatenabtastwert mit einem Wert von 30 und den vierten Rohdatenabtastwert mit einem Wert von 40). Der Abtastwertaggregator 908 kann den Wert des dritten Abtastwerts der durchschnittlichen Viertelstundenzeitreihe 1406 berechnen, indem die Werte des dritten Rohdatenabtastwerts und des vierten Rohdatenabtastwerts gemittelt werden (d. h. Durchschnitt(30; 40) = 35). Dementsprechend hat der dritte Abtastwert der durchschnittlichen Viertelstundenzeitreihe 1406 einen Wert von 35. Der Abtastwertaggregator 908 kann die verbleibenden Werte der durchschnittlichen Viertelstundenzeitreihe 1406 auf eine ähnliche Weise berechnen.The third data sample is shown to be of the average quarter hour time series 1406 contains the time stamp 31-12 - 2015Z23: 30: 00. This timestamp indicates that the third data sample of the average quarter hour time series 1406 corresponds to an aggregation interval that begins on December 31, 2015 at 11:30 p.m. Because each aggregation interval of the average quarter-hour series 1406 lasts a quarter of an hour, the aggregation interval ends on December 31, 2015 at 11:45 p.m. This aggregation interval contains two data samples of the raw data time series 1404 (ie the third Raw data sample with a value of 30 and the fourth raw data sample with a value of 40). The sample aggregator 908 can be the value of the third sample of the average quarter hour series 1406 calculate by averaging the values of the third raw data sample and the fourth raw data sample (ie average (30; 40) = 35). Accordingly, the third sample has the average quarter hour series 1406 a value of 35. The sample aggregator 908 can be the remaining values of the average quarter-hour series 1406 calculate in a similar way.

Immer noch unter Bezugnahme auf 15 wird gezeigt, dass der erste Datenabtastwert der durchschnittlichen stündlichen Zeitreihe 1408 den Zeitstempel 31-12 - 2015Z23: 00: 00 enthält. Dieser Zeitstempel gibt an, dass der erste Datenabtastwert der durchschnittlichen stündlichen Zeitreihe 1408 einem Aggregationsintervall entspricht, das am 31. Dezember 2015 um 23:00:00 Uhr beginnt. Da jedes Aggregationsintervall der durchschnittlichen stündlichen Zeitreihe 1408 eine Stunde dauert, endet das Aggregationsintervall am 1. Januar 2016 um 00:00:00 Uhr. Dieses Aggregationsintervall enthält die ersten vier Abtastwerte der durchschnittlichen Viertelstundenzeitreihe 1406. Der Abtastwertaggregator 908 kann den Wert des ersten Abtastwerts der durchschnittlichen stündlichen Zeitreihe 1408 berechnen, indem die Werte der ersten vier Werte der durchschnittlichen Viertelstundenzeitreihe 1406 gemittelt werden (d. h. Durchschnitt(10; 20; 35; 50) = 28,8). Dementsprechend hat der erste Abtastwert der durchschnittlichen stündlichen Zeitreihe 1408 einen Wert von 28,8. Der Abtastwertaggregator 908 kann die verbleibenden Werte der durchschnittlichen stündlichen Zeitreihe 1408 auf eine ähnliche Weise berechnen.Still referring to 15 it is shown that the first data sample of the average hourly time series 1408 contains the timestamp 31-12 - 2015Z23: 00: 00. This timestamp indicates that the first data sample of the average hourly time series 1408 corresponds to an aggregation interval that begins on December 31, 2015 at 11:00 p.m. Because each aggregation interval of the average hourly time series 1408 lasts one hour, the aggregation interval ends on January 1st, 2016 at 00:00:00. This aggregation interval contains the first four samples of the average quarter-hour series 1406 . The sample aggregator 908 can be the value of the first sample of the average hourly time series 1408 calculate the values of the first four values of the average quarter-hour series 1406 be averaged (i.e. average (10; 20; 35; 50) = 28.8). Accordingly, the first sample has the average hourly time series 1408 a value of 28.8. The sample aggregator 908 can be the remaining values of the average hourly time series 1408 calculate in a similar way.

Es ist gezeigt, dass der erste Datenabtastwert der durchschnittlichen täglichen Zeitreihe 1410 den Zeitstempel 31-12 - 2015Z00: 00: 00 enthält. Dieser Zeitstempel gibt an, dass der erste Datenabtastwert der durchschnittlichen täglichen Zeitreihe 1410 einem Aggregationsintervall entspricht, das am 31. Dezember 2015 um 00:00:00 Uhr beginnt. Da jedes Aggregationsintervall der durchschnittlichen täglichen Zeitreihe 1410 einen Tag dauert, endet das Aggregationsintervall am 1. Januar 2016 um 00:00:00 Uhr. Während dieses Intervalls tritt nur eine Datenabtastwert der durchschnittlichen stündlichen Zeitreihe 1408 auf. Dementsprechend ist der Wert der ersten Datenabtastwerts der durchschnittlichen täglichen Zeitreihe 1410 der Durchschnitt eines einzelnen Datenwerts (d. h. Durchschnitt(28,8) = 28,8). Gleiches gilt für den zweiten Datenabtastwert der durchschnittlichen täglichen Zeitreihe 1410 (d. h. Durchschnitt(87,5) = 87,5).It is shown that the first data sample of the average daily time series 1410 contains the time stamp 31-12 - 2015Z00: 00: 00. This timestamp indicates that the first data sample of the average daily time series 1410 corresponds to an aggregation interval that begins at 00:00:00 on December 31, 2015. Because each aggregation interval of the average daily time series 1410 lasts for one day, the aggregation interval ends on January 1st, 2016 at 00:00:00. Only a data sample of the average hourly time series occurs during this interval 1408 on. Accordingly, the value of the first data sample is the average daily time series 1410 the average of a single data value (ie average (28.8) = 28.8). The same applies to the second data sample of the average daily time series 1410 (ie average (87.5) = 87.5).

Bei manchen Ausführungsformen speichert der Abtastwertaggregator 908 jede der Daten-Rollup-Zeitreihen 1406-1414 in einer einzigen Datentabelle (z. B. der Datentabelle 1450) zusammen mit Rohdatenzeitreihen 1404. Dies ermöglicht, dass die Anwendungen 630 alle der Zeitreihen 1404-1414 schnell und effizient abzurufen, indem sie auf eine einzige Datentabelle zugreifen. Bei anderen Ausführungsformen kann der Abtastwertaggregator 908 die verschiedenen Zeitreihen 1404-1414 in separaten Datentabellen speichern, die in derselben Datenspeicherungsvorrichtung (z. B. derselben Datenbank) gespeichert oder über mehrere Datenspeicherungsvorrichtungen verteilt sein können. Bei manchen Ausführungsformen speichert der Abtastwertaggregator 908 die Datenzeitreihen 1404-1414 in einem anderen Format als einer Datentabelle. Beispielsweise kann der Abtastwertaggregator 908 die Zeitreihen 1404-1414 als Vektoren, als eine Matrix, als eine Liste oder unter Verwendung einer Vielzahl anderer Datenspeicherungsformate speichern.In some embodiments, the sample aggregator stores 908 each of the data rollup time series 1406-1414 in a single data table (e.g. the data table 1450 ) together with raw data time series 1404 . This enables the applications 630 all of the time series 1404-1414 retrieved quickly and efficiently by accessing a single data table. In other embodiments, the sample aggregator 908 the different time series 1404-1414 Store in separate data tables that can be stored in the same data storage device (e.g., the same database) or distributed across multiple data storage devices. In some embodiments, the sample aggregator stores 908 the data time series 1404-1414 in a format other than a data table. For example, the sample aggregator 908 the time series 1404-1414 Save as vectors, as a matrix, as a list, or using a variety of other data storage formats.

Bei manchen Ausführungsformen aktualisiert der Abtastwertaggregator 908 die Daten-Rollup-Zeitreihen 1406-1414 jedes Mal automatisch, wenn eine neuer Rohdatenabtastwert empfangen wird. Das Aktualisieren der Daten-Rollup-Zeitreihen 1406-1414 kann Neuberechnen der aggregierten Werte basierend auf dem Wert und dem Zeitstempel des neuen Rohdatenabtastwerts beinhalten. Wenn eine neuer Rohdatenabtastwert empfangen wird, kann der Abtastwertaggregator 908 bestimmen, ob der Zeitstempel des neuen Rohdatenabtastwerts innerhalb irgendeines der Aggregationsintervalle für die Abtastwerte der Daten-Rollup-Zeitreihen 1406-1414 liegt. Falls zum Beispiel ein neuer Rohdatenabtastwert mit einem Zeitstempel von 01-01 - 2016Z00: 52: 00 empfangen wird, kann der Abtastwertaggregator 908 bestimmen, dass der neue Rohdatenabtastwert innerhalb des Aggregationsintervalls auftritt, das mit dem Zeitstempel 01-01 - 2016Z00: 45: 00 für die durchschnittliche Viertelstundenzeitreihe 1406 beginnt. Der Abtastwertaggregator 908 kann den Wert des neuen Rohdatenpunkts (z. B. Wert = 120) verwenden, um den aggregierten Wert des endgültigen Datenabtastwerts der durchschnittlichen Viertelstundenzeitreihe 1406 zu aktualisieren (d. h. Durchschnitt(110; 120) = 115).In some embodiments, the sample aggregator updates 908 the data rollup time series 1406-1414 automatically every time a new raw data sample is received. Refreshing the data rollup time series 1406-1414 may include recalculating the aggregated values based on the value and timestamp of the new raw data sample. When a new raw data sample is received, the sample aggregator can 908 determine whether the timestamp of the new raw data sample is within any of the aggregation intervals for the samples of the data rollup time series 1406-1414 lies. For example, if a new raw data sample is received with a timestamp from 01-01 - 2016Z00: 52: 00, the Sample aggregator 908 determine that the new raw data sample occurs within the aggregation interval that timestamped 01-01 - 2016Z00: 45: 00 for the average quarter-hour time series 1406 begins. The sample aggregator 908 can determine the value of the new raw data point (e.g. value = 120 ) to get the aggregate value of the final data sample of the average quarter hour time series 1406 to be updated (ie average (110; 120) = 115).

Falls der neue Rohdatenabtastwert einen Zeitstempel aufweist, der nicht in irgendeinem der vorherigen Aggregationsintervalle auftritt, kann der Abtastwertaggregator 908 einen neuen Datenabtastwert in der durchschnittlichen Viertelstundenzeitreihe 1406 erzeugen. Der neue Datenabtastwert in der durchschnittlichen Viertelstundenzeitreihe 1406 kann einen neuen Datenzeitstempel aufweisen, der den Beginn eines Aggregationsintervalls definiert, das den Zeitstempel des neuen Rohdatenabtastwerts enthält. Falls zum Beispiel der neue Rohdatenabtastwert eine Zeitstempel von 01-01 - 2016Z01: 00: 11 aufweist, kann der Abtastwertaggregator 908 bestimmen, dass der neue Rohdatenabtastwert nicht innerhalb irgendeines der Aggregationsintervalle auftritt, die zuvor für die durchschnittliche Viertelstundenzeitreihe 1406 eingerichtet wurden. Der Abtastwertaggregator 908 kann einen neuen Datenabtastwert in der durchschnittlichen Viertelstundenzeitreihe 1406 mit dem Zeitstempel 01-01 - 2016Z01: 00: 00 erzeugen und kann den Wert des neuen Datenabtastwerts in der durchschnittlichen Viertelstundenzeitreihe 1406 basierend auf dem Wert des neuen Rohdatenabtastwerts berechnen, wie zuvor beschrieben wurde.If the new raw data sample has a time stamp that does not occur in any of the previous aggregation intervals, the sample aggregator can 908 a new data sample in the average quarter-hour series 1406 produce. The new data sample in the average quarter-hour series 1406 may have a new data timestamp that defines the beginning of an aggregation interval that contains the timestamp of the new raw data sample. For example, if the new raw data sample has a timestamp from 01-01 - 2016Z01: 00: 11, the sample aggregator can 908 determine that the new raw data sample does not occur within any of the aggregation intervals previously for the average quarter hour time series 1406 were set up. The sample aggregator 908 can get a new data sample in the average quarter hour time series 1406 with the time stamp 01-01 - 2016Z01: 00: 00 and can generate the value of the new data sample in the average quarter-hour time series 1406 based on the value of the new raw data sample as previously described.

Der Abtastwertaggregator 908 kann die Werte der verbleibenden Daten-Rollup-Zeitreihen 1408-414 auf ähnliche Weise aktualisieren. Beispielsweise bestimmt der Abtastwertaggregator 908, ob der Zeitstempel des aktualisierten Datenabtastwerts in der durchschnittlichen Viertelstundenzeitreihe innerhalb irgendeines der Aggregationsintervalle für die Abtastwerte der durchschnittlichen stündlichen Zeitreihe 1408 liegt. Der Abtastwertaggregator 908 kann bestimmten, dass der Zeitstempel 01-01 - 2016Z00: 45:00 innerhalb des Aggregationsintervalls auftritt, das mit dem Zeitstempel 01-01 - 2016Z00: 00: 00 für die durchschnittliche stündliche Zeitreihe 1408 beginnt. Der Abtastwertaggregator 908 kann den Wert des aktualisierten Wertes des abschließenden Datenabtastwerts der Viertelstundenzeitreihe 1406 (z. B. Wert = 115) verwenden, um den Wert des zweiten Abtastwerts der durchschnittlichen stündlichen Zeitreihe 1408 zu aktualisieren (d. h. Durchschnitt(65; 80; 95; 115) = 88,75). Der Abtastwertaggregator 908 kann den aktualisierten Wert des endgültigen Datenabtastwerts der durchschnittlichen stündlichen Zeitreihe 1408 verwenden, um den endgültige Abtastwert der durchschnittlichen täglichen Zeitreihe 1410 unter Verwendung derselben Technik zu aktualisieren.The sample aggregator 908 can read the values of the remaining data rollup time series 1408-414 update in a similar way. For example, the sample aggregator determines 908 whether the timestamp of the updated data sample in the average quarter-hour time series within any of the aggregation intervals for the samples of the average hourly time series 1408 lies. The sample aggregator 908 may determine that the time stamp 01-01 - 2016Z00: 45:00 occurs within the aggregation interval that the time stamp 01-01 - 2016Z00: 00: 00 for the average hourly time series 1408 begins. The sample aggregator 908 can be the value of the updated value of the final data sample of the quarter hour time series 1406 (e.g. value = 115 ) to the value of the second sample of the average hourly time series 1408 to update (i.e. average (65; 80; 95; 115) = 88.75). The sample aggregator 908 can be the updated value of the final data sample of the average hourly time series 1408 use the final sample of the average daily time series 1410 update using the same technique.

Bei manchen Ausführungsformen aktualisiert der Abtastwertaggregator 908 die aggregierten Datenwerte der Daten-Rollup-Zeitreihen 1406-1414 jedes Mal, wenn eine neuer Rohdatenabtastwert empfangen wird. Das Aktualisieren jedes Mal, wenn eine neuer Rohdatenabtastwert empfangen wird, stellt sicher, dass die Daten-Rollup-Zeitreihen 1406-1414 immer die neuesten Datenabtastwerte wiedergeben. Bei anderen Ausführungsformen aktualisiert der Abtastwertaggregator 908 die aggregierten Datenwerte der Daten-Rollup-Zeitreihen 1406-1414 periodisch in vorbestimmten Aktualisierungsintervallen (z. B. stündlich, täglich usw.) unter Verwendung einer Stapelaktualisierungstechnik. Eine periodische Aktualisierung kann effizienter sein und eine geringere Datenverarbeitung erfordern als die Aktualisierung jedes Mal, wenn ein neuer Datenabtastwert empfangen wird, aber kann zu aggregierten Datenwerten führen, die nicht immer aktualisiert werden, um die neuesten Datenabtastwerte wiederzugeben.In some embodiments, the sample aggregator updates 908 the aggregate data values of the data rollup time series 1406-1414 every time a new raw data sample is received. Updating every time a new raw data sample is received ensures that the data rollup time series 1406-1414 always display the latest data samples. In other embodiments, the sample aggregator updates 908 the aggregate data values of the data rollup time series 1406-1414 periodically at predetermined update intervals (e.g., hourly, daily, etc.) using a batch update technique. Periodic updates can be more efficient and require less data processing than updating each time a new data sample is received, but can result in aggregate data values that are not always updated to reflect the latest data samples.

Bei manchen Ausführungsformen ist der Abtastwertaggregator 908 dazu konfiguriert, um Rohdatenzeitreihen 1404 zu bereinigen. Das Bereinigen der Rohdatenzeitreihen 1404 kann das Verwerfen von außergewöhnlich hohen oder niedrigen Daten umfassen. Beispielsweise kann der Abtastwertaggregator 908 einen minimalen erwarteten Datenwert und einen maximalen erwarteten Datenwert für die Rohdatenzeitreihe 1404 identifizieren. Der Abtastwertaggregator 908 kann Datenwerte außerhalb dieses Bereichs als schlechte Daten verwerfen. Bei manchen Ausführungsformen basieren die minimalen und maximalen erwarteten Werte auf Attributen des Datenpunkts, der durch die Zeitreihe repräsentiert wird. Beispielsweise repräsentiert der Datenpunkt 1402 eine gemessene Außenlufttemperatur und hat daher einen erwarteten Wert innerhalb eines Bereichs angemessener Außenlufttemperaturwerte für einen gegebenen geografischen Standort (z. B. zwischen -20 °F und 110 °F). Der Abtastwertaggregator 908 kann einen Datenwert von 330 für den Datenpunkt 1402 verwerfen, da ein Temperaturwert von 330 °F für eine gemessene Außenlufttemperatur nicht realistisch ist.In some embodiments, the sample aggregator is 908 configured to run raw data time series 1404 to clean. Clean up the raw data time series 1404 can include discarding exceptionally high or low data. For example, the sample aggregator 908 a minimum expected data value and a maximum expected data value for the raw data time series 1404 identify. The sample aggregator 908 can discard data values outside this range as bad data. In some embodiments, the minimum and maximum expected values are based on attributes of the data point represented by the time series. For example, the data point represents 1402 a measured outside air temperature and therefore has an expected value within a range of reasonable outside air temperature values for a given geographic location (e.g. between -20 ° F and 110 ° F). The sample aggregator 908 can have a data value of 330 for the data point 1402 discard as a temperature value of 330 ° F is not realistic for a measured outside air temperature.

Bei manchen Ausführungsformen identifiziert der Abtastwertaggregator 908 eine maximale Rate, mit der sich ein Datenpunkt zwischen aufeinanderfolgenden Datenabtastwerten ändern kann. Die maximale Änderungsrate kann auf physikalischen Prinzipien (z. B. Wärmetransferprinzipien), Wettermustern oder anderen Parametern basieren, die die maximale Änderungsrate eines speziellen Datenpunkts begrenzen. Beispielsweise repräsentiert der Datenpunkt 1402 eine gemessene Außenlufttemperatur dar und kann daher darauf beschränkt werden, eine Änderungsrate zu haben, die kleiner als eine maximale realistische Änderungsrate für die Außentemperatur ist (z. B. fünf Grad pro Minute). Falls zwei aufeinanderfolgende Datenabtastwerte der Rohdatenzeitreihe 1404 Werte aufweisen, die erfordern würden, dass sich die Außenlufttemperatur mit einer Rate ändert, die über der maximale erwarteten Änderungsrate liegt, kann der Abtastwertaggregator 908 einen oder beide Datenabtastwerte als schlechte Daten verwerfen.In some embodiments, the sample aggregator identifies 908 a maximum rate at which a data point can change between successive data samples. The maximum rate of change can be based on physical principles (e.g., heat transfer principles), weather patterns, or other parameters that limit the maximum rate of change of a particular data point. For example, the data point represents 1402 is a measured outside air temperature and can therefore be limited to having a rate of change that is less than a maximum realistic rate of change for the outside temperature (e.g. five degrees per minute). If two consecutive data samples of the raw data time series 1404 The sample aggregator can have values that would require the outside air temperature to change at a rate that is above the maximum expected rate of change 908 discard one or both data samples as bad data.

Der Abtastwertaggregator 908 kann eine Vielzahl von Datenbereinigungsvorgängen durchführen, um schlechte Datenabtastwerte zu identifizieren und zu verwerfen. Bei manchen Ausführungsformen führt der Abtastwertaggregator 908 die Datenbereinigungsoperationen für die Rohdatenzeitreihe 1404 durch, bevor die Daten-Rollup-Zeitreihen 1406-1414 erzeugt werden. Dies stellt sicher, dass die Rohdatenzeitreihe 1404, die zum Erzeugen der Daten-Rollup-Zeitreihen 1406-1414 verwendet wird, keine schlechten Datenabtastwerte enthält. Dementsprechend müssen die Daten-Rollup-Zeitreihen 1406-1414 nicht erneut bereinigt werden, nachdem die Aggregation durchgeführt wurde.The sample aggregator 908 can perform a variety of data cleansing operations to identify and discard bad data samples. In some embodiments, the sample aggregator performs 908 the data cleansing operations for the raw data time series 1404 through before the data rollup time series 1406-1414 be generated. This ensures that the raw data time series 1404 that are used to generate the data rollup time series 1406-1414 does not contain bad data samples. Accordingly, the data rollup time series 1406-1414 not be cleaned up again after the aggregation has been performed.

Virtuelle PunkteVirtual points

Unter erneuter Bezugnahme auf 9 ist gezeigt, dass die Zeitreihenoperatoren 906 einen Virtueller-Punkt-Rechner 910 enthalten. Der Virtueller-Punkt-Rechner 910 ist dazu konfiguriert, virtuelle Datenpunkte zu erzeugen und Zeitreihenwerte für die virtuellen Datenpunkte zu berechnen. Ein virtueller Datenpunkt ist eine Art eines berechneten Datenpunkts, der aus einem oder mehreren tatsächlichen Datenpunkten abgeleitet wird. Bei manchen Ausführungsformen sind tatsächliche Datenpunkte gemessene Datenpunkte, während virtuelle Datenpunkte berechnete Datenpunkte sind. Virtuelle Datenpunkte können als Ersatz für tatsächliche Sensordaten verwendet werden, wenn die für eine spezielle Anwendung gewünschten Sensordaten nicht vorhanden sind, aber aus einem oder mehreren tatsächlichen Datenpunkten berechnet werden können. Beispielsweise kann ein virtueller Datenpunkt, der die Enthalpie eines Kühlmittels repräsentiert, unter Verwendung tatsächlicher Datenpunkte berechnet werden, die die Temperatur und den Druck des Kühlmittels messen. Virtuelle Datenpunkte können auch verwendet werden, um Zeitreihenwerte für berechnete Größen, wie etwa Effizienz, Leistungsfähigkeitskoeffizient und andere Variablen, bereitzustellen, die nicht direkt gemessen werden können.Referring again to 9 is shown that the time series operators 906 a virtual point calculator 910 contain. The virtual point calculator 910 is configured to generate virtual data points and to calculate time series values for the virtual data points. A virtual data point is a type of calculated data point that is derived from one or more actual data points. In some embodiments, actual data points are measured data points, while virtual data points are calculated data points. Virtual data points can be used as a replacement for actual sensor data if the sensor data required for a specific application are not available, but can be calculated from one or more actual data points. For example, a virtual data point that represents the enthalpy of a coolant can be calculated using actual data points that measure the temperature and pressure of the coolant. Virtual data points can also be used to provide time series values for calculated quantities such as efficiency, performance coefficient and other variables that cannot be measured directly.

Der Virtueller-Punkt-Rechner 910 kann virtuelle Datenpunkte berechnen, indem er beliebige einer Vielzahl von mathematischen Operationen oder Funktionen auf tatsächliche Datenpunkte oder andere virtuelle Datenpunkte anwendet. Beispielsweise kann der Virtueller-Punkt-Rechner 910 einen virtuellen Datenpunkt (Punkt - ID3) durch Addieren von zwei oder mehr tatsächlichen Datenpunkten (Punkt - ID1 und Punkt - ID2) berechnen (z. B. Punkt - ID3 = Punkt - ID1 + Punkt - ID2). Als ein anderes Beispiel kann der Virtueller-Punkt-Rechner 910 einen Enthalpiedatenpunkt (Punkt - ID4) basierend auf einem gemessenen Temperaturdatenpunkt (Punkt - ID5) und einen gemessenen Druckdatenpunkt (Punkt - ID6) berechnen (z. B. Punkt - ID4 = Enthalpie (Punkt - ID5, Punkt - ID6)). In manchen Fällen kann ein virtueller Datenpunkt aus einem einzigen tatsächlichen Datenpunkt abgeleitet werden. Beispielsweise kann der Virtueller-Punkt-Rechner 910 eine Sättigungstemperatur (Punkt - ID7) eines bekannten Kühlmittels basierend auf einem gemessenen Kühlmitteldruck (Punkt - ID8) berechnen (z. B. Punkt - ID7 = Tsat (Punkt - ID8)). Im Allgemeinen kann der Virtueller-Punkt-Rechner 910 die Zeitreihenwerte eines virtuellen Datenpunkts unter Verwendung der Zeitreihenwerte eines oder mehrerer tatsächlicher Datenpunkte und/oder der Zeitreihenwerte eines oder mehrerer anderer virtueller Datenpunkte berechnen.The virtual point calculator 910 can calculate virtual data points by applying any of a variety of mathematical operations or functions to actual data points or other virtual data points. For example, the virtual point calculator 910 calculate a virtual data point (point ID 3 ) by adding two or more actual data points (point ID 1 and point ID 2 ) (e.g. point ID 3 = point ID 1 + point ID 2 ). As another example, the virtual point calculator 910 calculate an enthalpy data point (point ID 4 ) based on a measured temperature data point (point ID 5 ) and a measured pressure data point (point ID 6 ) (e.g. point ID 4 = enthalpy (point ID 5 , point ID 6 )). In some cases, a virtual data point can be derived from a single actual data point. For example, the virtual point calculator 910 calculate a saturation temperature (point ID 7 ) of a known coolant based on a measured coolant pressure (point ID 8 ) (e.g. point ID 7 = T sat (point ID 8 )). In general, the virtual point calculator 910 calculate the time series values of a virtual data point using the time series values of one or more actual data points and / or the time series values of one or more other virtual data points.

Bei manchen Ausführungsformen verwendet der Virtueller-Punkt-Rechner 910 einen Satz von Regeln für virtuelle Punkte, um die virtuellen Datenpunkte zu berechnen. Die Regeln für virtuelle Punkte können einen oder mehrere Eingabedatenpunkte (z. B. tatsächliche oder virtuelle Datenpunkte) und die mathematischen Operationen definieren, die auf den (die) Eingabedatenpunkt(e) angewendet werden sollten, um jeden virtuellen Datenpunkt zu berechnen. Die Regeln für virtuelle Punkte können von einem Benutzer bereitgestellt, von einem externen System oder einer externen Vorrichtung empfangen und/oder in dem Speicher 610 gespeichert werden. Der Virtueller-Punkt-Rechner 910 kann den Satz von Regeln für virtuelle Punkte auf die Zeitreihenwerte der Eingabedatenpunkte anwenden, um Zeitreihenwerte für die virtuellen Datenpunkte zu berechnen. Die Zeitreihenwerte für die virtuellen Datenpunkte können als abgeleitete Zeitreihendaten in der Zeitreihendatenbank 928 gespeichert werden.In some embodiments, the virtual point calculator uses 910 a set of rules for virtual points to calculate the virtual data points. The rules for virtual points can define one or more input data points (e.g., actual or virtual data points) and the mathematical operations that should be applied to the input data point (s) to calculate each virtual data point. The rules for virtual points can be provided by a user, received by an external system or device, and / or in memory 610 get saved. The virtual point calculator 910 can apply the set of rules for virtual points to the time series values of the input data points to calculate time series values for the virtual data points. The time series values for the virtual data points can be derived time series data in the time series database 928 get saved.

Der Virtueller-Punkt-Rechner 910 kann virtuelle Datenpunkte unter Verwendung der Werte der Rohdatenzeitreihe 1404 und/oder der aggregierten Werte der Daten-Rollup-Zeitreihen 1406-1414 berechnen. Bei manchen Ausführungsformen werden die Eingabedatenpunkte, die zum Berechnen eines virtuellen Datenpunkts verwendet werden, zu unterschiedlichen Abtastzeiten und/oder mit unterschiedlichen Abtastraten gesammelt. Dementsprechend sind die Abtastwerte der Eingabedatenpunkte möglicherweise nicht miteinander synchronisiert, was zu einer Mehrdeutigkeit dabei führen kann, welche Abtastwerte der Eingabedatenpunkte zum Berechnen des virtuellen Datenpunkts verwendet werden sollten. Die Verwendung der Daten-Rollup-Zeitreihen 1406-1414 zum Berechnen der virtuellen Datenpunkte stellt sicher, dass die Zeitstempel der Eingabedatenpunkte synchronisiert sind, und beseitigt jegliche Mehrdeutigkeit dabei, welche Datenabtastwerte verwendet werden sollten.The virtual point calculator 910 can create virtual data points using the values of the raw data time series 1404 and / or the aggregated values of the data rollup time series 1406-1414 to calculate. In some embodiments, the input data points used to calculate a virtual data point are collected at different sampling times and / or at different sampling rates. Accordingly, the samples of the input data points may not be synchronized with one another, which can lead to an ambiguity as to which samples of the input data points should be used to calculate the virtual data point. The use of the data rollup time series 1406-1414 for computing the virtual data points ensures that the timestamps of the input data points are synchronized and removes any ambiguity as to which data samples should be used.

Unter Bezugnahme auf 16 sind mehrere Zeitreihen 1600, 1620, 1640 und 1660, die die Synchronisation von Datenabtastwerten veranschaulichen, die aus der Aggregation der Rohzeitreihendaten resultieren, gemäß manchen Ausführungsformen gezeigt. Die Zeitreihen 1600 und 1620 sind Rohdatenzeitreihen. Die Rohdatenzeitreihe 1600 weist mehrere Rohdatenabtastwerte 1602-1610 auf. Der Rohdatenabtastwert 1602 wird zum Zeitpunkt t1 gesammelt; der Rohdatenabtastwert 1604 wird zum Zeitpunkt t2 gesammelt; der Rohdatenabtastwert 1606 wird zum Zeitpunkt t3 gesammelt; der Rohdatenabtastwert 1608 wird zum Zeitpunkt t4 gesammelt; der Rohdatenabtastwert 1610 wird zum Zeitpunkt t5 gesammelt; und der Rohdatenabtastwert 1612 wird zum Zeitpunkt t6 gesammelt.With reference to 16 are multiple time series 1600 , 1620 , 1640 and 1660 10, which illustrate the synchronization of data samples resulting from the aggregation of the raw time series data, shown in accordance with some embodiments. The time series 1600 and 1620 are raw data time series. The raw data time series 1600 has multiple raw data samples 1602-1610 on. The raw data sample 1602 will at the time t 1 collected; the raw data sample 1604 will at the time t 2 collected; the raw data sample 1606 will at the time t 3 collected; the raw data sample 1608 will at the time t 4 collected; the raw data sample 1610 will at the time t 5 collected; and the raw data sample 1612 will at the time t 6 collected.

Die Rohdatenzeitreihe 1620 weist auch mehrere Rohdatenabtastwerte 1622, 1624, 1626, 1628 und 1630 auf. Rohdatenabtastwerte 1622-1630 sind jedoch nicht mit Rohdatenabtastwerten 1602-1612 synchronisiert. Beispielsweise wird der Rohdatenabtastwert 1622 vor der Zeit t1 gesammelt; der Rohdatenabtastwert 1624 wird zwischen den Zeiten t2 und t3 gesammelt; der Rohdatenabtastwert 1626 wird zwischen den Zeiten t3 und t4 gesammelt; der Rohdatenabtastwert 1628 wird zwischen den Zeiten t4 und t5 gesammelt; und der Rohdatenabtastwert 1630 wird zwischen den Zeiten t5 und t6 gesammelt. Das Fehlen einer Synchronisation zwischen den Datenabtastwerte 1602-1612 und den Rohdatenabtastwerten 1622-1630 kann zu einer Mehrdeutigkeit dabei führen, welche der Datenabtastwerte zusammen zur Berechnung eines virtuellen Datenpunkts verwendet werden sollen.The raw data time series 1620 also has multiple raw data samples 1622 , 1624 , 1626 , 1628 and 1630 on. Raw data samples 1622-1630 but are not with raw data samples 1602-1612 synchronized. For example, the raw data sample 1622 before the time t 1 collected; the raw data sample 1624 will between times t 2 and t 3 collected; the raw data sample 1626 will between times t 3 and t 4 collected; the raw data sample 1628 will between times t 4 and t 5 collected; and the raw data sample 1630 will between times t 5 and t 6 collected. The lack of synchronization between the data samples 1602-1612 and the raw data samples 1622-1630 can lead to ambiguity as to which of the data samples should be used together to calculate a virtual data point.

Die Zeitreihen 1640 und 1660 sind Daten-Rollup-Zeitreihen. Die Daten-Rollup-Zeitreihe 1640 kann durch den Abtastwertaggregator 908 durch Aggregieren der Rohdatenzeitreihe 1600 erzeugt werden. Gleichermaßen kann die Daten-Rollup-Zeitreihe 1660 durch den Abtastwertaggregator 908 durch Aggregieren der Rohdatenzeitreihe 1620 erzeugt werden. Die beiden Rohdatenzeitreihen 1600 und 1620 können unter Verwendung des gleichen Aggregationsintervalls aggregiert werden. Dementsprechend haben die resultierenden Daten-Rollup-Zeitreihen 1640 und 1660 synchronisierte Datenabtastwerte. Beispielsweise wird der aggregierte Datenabtastwert 1642 mit dem aggregierten Datenabtastwert 1662 zum Zeitpunkt t1' synchronisiert. Gleichermaßen wird die aggregierte Datenabtastwert 1644 zum Zeitpunkt t2'mit dem aggregierten Datenabtastwert 1664 synchronisiert; wird der aggregierte Datenabtastwert 1646 zum Zeitpunkt t3' mit dem aggregierten Datenabtastwert 1666 synchronisiert; und wird der aggregierte Datenabtastwert 1648 zum Zeitpunkt t4' mit dem aggregierten Datenabtastwert 1668 synchronisiert.The time series 1640 and 1660 are data rollup time series. The data rollup time series 1640 can by the sample aggregator 908 by aggregating the raw data time series 1600 be generated. Similarly, the data rollup time series 1660 by the sample aggregator 908 by aggregating the raw data time series 1620 be generated. The two raw data time series 1600 and 1620 can be aggregated using the same aggregation interval. Accordingly, the resulting data rollup time series 1640 and 1660 synchronized data samples. For example, the aggregate data sample 1642 with the aggregated data sample 1662 synchronized at time t 1 ' . Similarly, the aggregate data sample 1644 at time t 2 ' with the aggregated data sample 1664 synchronized; becomes the aggregated data sample 1646 at time t 3 ' with the aggregated data sample 1666 synchronized; and becomes the aggregate data sample 1648 at time t 4 ' with the aggregated data sample 1668 synchronized.

Die Synchronisation von Datenabtastwerten in den Daten-Rollup-Zeitreihen 1640 und 1660 ermöglicht es, dass der Virtueller-Punkt-Rechner 910 leicht zu identifiziert, welche der Datenabtastwerte zusammen verwendet werden sollten, um einen virtuellen Punkt zu berechnen. Beispielsweise kann der Virtueller-Punkt-Rechner 910 identifizieren, welche der Abtastwerte der Daten-Rollup-Zeitreihen 1640 und 1660 den gleichen Zeitstempel haben (z. B. die Datenabtastwerte 1642 und 1662, die Datenabtastwerte 1644 und 1664 usw.). Der Virtueller-Punkt-Rechner 910 kann zwei oder mehr aggregierte Datenabtastwerte mit demselben Zeitstempel verwenden, um einen Zeitreihenwert des virtuellen Datenpunkts zu berechnen. Bei manchen Ausführungsformen weist der Virtueller-Punkt-Rechner 910 den gemeinsamen Zeitstempel der Eingabedatenabtastwerte dem Zeitreihenwert des virtuellen Datenpunkts zu, der aus den Eingabedatenabtastwerten berechnet wird.The synchronization of data samples in the data rollup time series 1640 and 1660 allows the virtual point calculator 910 easy to identify which of the data samples should be used together to calculate a virtual point. For example, the virtual point calculator 910 identify which of the samples of the data rollup time series 1640 and 1660 have the same time stamp (e.g. the data samples 1642 and 1662 , the data samples 1644 and 1664 etc.). The virtual point calculator 910 can use two or more aggregated data samples with the same time stamp to compute a time series value of the virtual data point. In some embodiments, the virtual point calculator 910 the common time stamp of the input data samples to the time series value of the virtual data point calculated from the input data samples.

WetterpunkteWeather points

Unter erneuter Bezugnahme auf 9 ist gezeigt, dass die Zeitreihenoperatoren 906 einen Wetterpunktrechner 912 enthalten. Der Wetterpunktrechner 912 ist dazu konfiguriert, wetterbasierte Berechnungen unter Verwendung der Zeitreihendaten durchzuführen. Bei manchen Ausführungsformen erzeugt der Wetterpunktrechner 912 virtuelle Datenpunkte für wetterbezogene Variablen, wie etwa Kühlungsgradtage (CDD), Heizgradtage (HDD), Kühlungsenergietage (CED), Heizenergietage (HED) und normalisierter Energieverbrauch. Die Zeitreihenwerte der virtuellen Datenpunkte, die durch den Wetterpunktrechner 912 berechnet werden, können als abgeleitete Zeitreihendaten in der Zeitreihendatenbank 928 gespeichert werden.Referring again to 9 is shown that the time series operators 906 a weather point calculator 912 contain. The weather point calculator 912 is configured to perform weather-based calculations using the time series data. In some embodiments, the weather point calculator generates 912 Virtual data points for weather-related variables such as cooling degree days (CDD), heating degree days (HDD), cooling energy days (CED), heating energy days (HED) and normalized energy consumption. The time series values of the virtual data points by the weather point calculator 912 can be calculated as derived time series data in the time series database 928 get saved.

Der Wetterpunktrechner 912 kann die CDD berechnen, indem die positive Temperaturdifferenz zwischen der zeitlich variierenden Außenlufttemperatur TOA und der Kühlungsgleichgewichtspunkt TbC integriert wird, wie in der folgenden Gleichung gezeigt ist: C D D = P e r i o d e max { 0, ( T O A T b C ) } d t

Figure DE112018004336T5_0004
wobei Periode die Integrationsperiode ist. Bei manchen Ausführungsformen ist die Außenlufttemperatur TOA ist ein gemessener Datenpunkt, während der Kühlungsgleichgewichtspunkt TbC ein gespeicherter Parameter ist. Um die CDD für jeden Abtastwert der Außenlufttemperatur TOA zu berechnen, kann der Wetterpunktrechner 912 die Quantität max{0, (TOA - TbC)} mit der Abtastperiode Δt der Außenlufttemperatur TOA multiplizieren. Der Wetterpunktrechner 912 kann die CED auf ähnliche Weise unter Verwendung der Außenluftenthalpie EOA anstelle der Außenlufttemperatur TOA berechnen. Die Außenluftenthalpie EOA kann ein gemessener oder virtueller Datenpunkt sein.The weather point calculator 912 can calculate the CDD by integrating the positive temperature difference between the time-varying outside air temperature T OA and the cooling equilibrium point T bC , as shown in the following equation: C. D D = P e r i O d e Max { 0, ( T O A - T b C. ) } d t
Figure DE112018004336T5_0004
where period is the integration period. In some embodiments, the outside air temperature T OA is a measured data point, while the cooling equilibrium point T bC is a stored parameter. To calculate the CDD for each sample of the outside air temperature T OA , the weather point calculator 912 multiply the quantity max {0, (T OA - T bC )} by the sampling period Δt of the outside air temperature T OA . The weather point calculator 912 can similarly calculate the CED using the outside air enthalpy E OA instead of the outside air temperature T OA . The outside air enthalpy E OA can be a measured or virtual data point.

Der Wetterpunktrechner 912 kann die HDD berechnen, indem die positive Temperaturdifferenz zwischen einem Heizungsgleichgewichtspunkt TbH und der zeitlich variierenden Außenlufttemperaturintegriert TOA integriert wird, wie in der folgenden Gleichung gezeigt ist: H D D = P e r i o d e max { 0, ( T b H T O A ) } d t

Figure DE112018004336T5_0005
wobei Periode die Integrationsperiode ist. In manchen Ausführungsformen ist die Außenlufttemperatur TOA ist ein gemessener Datenpunkt, während der Heizungsgleichgewichtspunkt TbH ein gespeicherter Parameter ist. Um die HDD für jeden Abtastwert der Außenlufttemperatur TOA zu berechnen, kann der Wetterpunktrechner 912 die Quantität max{0, (TbH - TOA)} mit der Abtastperiode Δt der Außenlufttemperatur TOA multiplizieren. Der Wetterpunktrechner 912 kann die HED auf ähnliche Weise unter Verwendung der Außenluftenthalpie EOA anstelle der Außenlufttemperatur TOA berechnen. The weather point calculator 912 can calculate the HDD by integrating the positive temperature difference between a heating equilibrium point T bH and the time-varying outside air temperature T OA , as shown in the following equation: H D D = P e r i O d e Max { 0, ( T b H - T O A ) } d t
Figure DE112018004336T5_0005
where period is the integration period. In some embodiments, the outside air temperature T OA is a measured data point, while the heating equilibrium point T bH is a stored parameter. The weather point calculator can calculate the HDD for each sample of the outside air temperature T OA 912 multiply the quantity max {0, (T bH - T OA )} by the sampling period Δt of the outside air temperature T OA . The weather point calculator 912 can similarly calculate the HED using the outside air enthalpy E OA instead of the outside air temperature T OA .

Bei manchen Ausführungsformen berechnen sowohl der Virtueller-Punkt-Rechner 910 als auch der Wetterpunktrechner 912 Zeitreihenwerte virtueller Datenpunkten. Der Wetterpunktrechner 912 kann Zeitreihenwerte virtueller Datenpunkten berechnen, die von wetterbezogenen Variablen abhängen (z. B. Außenlufttemperatur, Außenluftenthalpie, Außenluftfeuchtigkeit, Außenlichtintensität, Niederschlag, Windgeschwindigkeit usw.). Der Virtueller-Punkt-Rechner 910 kann Zeitreihenwerte virtueller Datenpunkten berechnen, die von anderen Arten von Variablen abhängen (z. B. nichtwetterbezogenen Variablen). Obwohl hier nur einige wenige wetterbezogene Variablen ausführlich beschrieben werden, wird es vorgesehen, dass der Wetterpunktrechner 912 virtuelle Datenpunkte für eine beliebige wetterbezogene Variable berechnen kann. Die von dem Wetterpunktrechner 912 verwendeten wetterbezogenen Datenpunkte können als Zeitreihendaten von verschiedenen Wettersensoren und/oder von einem Wetterdienst empfangen werden.In some embodiments, both the virtual point calculator compute 910 as well as the weather point calculator 912 Time series values of virtual data points. The weather point calculator 912 can calculate time series values of virtual data points that depend on weather-related variables (e.g. outside air temperature, outside air enthalpy, outside air humidity, outside light intensity, precipitation, wind speed, etc.). The virtual point calculator 910 can calculate time series values of virtual data points that depend on other types of variables (e.g. non-weather related variables). Although only a few weather-related variables are described in detail here, it is provided that the weather point calculator 912 can calculate virtual data points for any weather related variable. That from the weather point calculator 912 Weather-related data points used can be received as time series data from various weather sensors and / or from a weather service.

FehlerdetektionFault detection

Immer noch unter Bezugnahme auf 9 ist gezeigt, dass die Zeitreihenoperatoren 906 einen Fehlerdetektor 914 enthalten. Der Fehlerdetektor 914 kann dazu konfiguriert sein, Fehler in Zeitreihendaten zu detektieren. Bei manchen Ausführungsformen führt der Fehlerdetektor 914 eine Fehlerdetektion für Zeitreihendaten, die Zählerdaten repräsentieren (z. B. Messungen von einem Sensor), und/oder für andere Arten von Zeitreihendaten durch. Der Fehlerdetektor 914 kann Fehler in den Rohzeitreihendaten und/oder den abgeleiteten Zeitreihendaten detektieren. Bei manchen Ausführungsformen empfängt der Fehlerdetektor 914 Fehlerdetektionsregeln von dem Analysedienst 624. Die Fehlerdetektionsregeln können von einem Benutzer (z. B. über einen Regeleditor) definiert oder von einem externen System oder einer externen Vorrichtung empfangen werden. In verschiedenen Ausführungsformen können die Fehlerdetektionsregeln in der Zeitreihendatenbank 928 gespeichert werden. Der Fehlerdetektor 914 kann die Fehlerdetektionsregeln aus der Zeitreihendatenbank 928 abrufen und kann die Fehlerdetektionsregeln verwenden, um die Zeitreihendaten zu analysieren.Still referring to 9 is shown that the time series operators 906 an error detector 914 contain. The fault detector 914 can be configured to detect errors in time series data. In some embodiments, the fault detector performs 914 error detection for time series data representing counter data (e.g. measurements from a sensor) and / or for other types of time series data. The fault detector 914 can detect errors in the raw time series data and / or the derived time series data. In some embodiments, the error detector receives 914 Error detection rules from the analysis service 624 . The error detection rules can be defined by a user (e.g. via a rule editor) or received by an external system or device. In various embodiments, the error detection rules can be in the time series database 928 get saved. The fault detector 914 can get the error detection rules from the time series database 928 and can use the error detection rules to analyze the time series data.

Bei manchen Ausführungsformen stellen die Fehlerdetektionsregeln Kriterien bereit, die von dem Fehlerdetektor 914 ausgewertet werden können, um Fehler in den Zeitreihendaten zu detektieren. Beispielsweise können die Fehlerdetektionsregeln einen Fehler als einen Datenwert oberhalb oder unterhalb einem Schwellenwert definieren. Als weiteres Beispiel können die Fehlerdetektionsregeln einen Fehler als einen Datenwert außerhalb eines vorbestimmten Wertebereichs definieren. Der Schwellenwert und der vordefinierte Wertebereich können auf der Art der Zeitreihendaten (z. B. Zählerdaten, berechnete Daten usw.), der Art der Variable, die durch die Zeitreihendaten repräsentiert wird (z. B. Temperatur, Feuchtigkeit, Energieverbrauch usw.), dem System oder der Vorrichtung, das/die die Zeitreihendaten misst oder bereitstellt (z. B. ein Sensor, eine IoT-Vorrichtung usw.), und/oder anderen Attribute der Zeitreihendaten basieren.In some embodiments, the error detection rules provide criteria set by the error detector 914 can be evaluated in order to detect errors in the time series data. For example, the error detection rules can define an error as a data value above or below a threshold value. As another example, the error detection rules may define an error as a data value outside of a predetermined range of values. The threshold and the predefined range of values can be based on the type of time series data (e.g. counter data, calculated data etc.), the type of variable represented by the time series data (e.g. temperature, humidity, energy consumption etc.), the system or device that measures or provides the time series data (e.g., a sensor, an IoT device, etc.) and / or other attributes of the time series data.

Der Fehlerdetektor 914 kann die Fehlerdetektionsregeln auf die Zeitreihendaten anwenden, um zu bestimmen, ob jeder Abtastwert der Zeitreihendaten als Fehler qualifiziert wird. Bei manchen Ausführungsformen erzeugt der Fehlerdetektor 914 eine Fehlerdetektionszeitreihe, die die Ergebnisse der Fehlerdetektion enthält. Die Fehlerdetektionszeitreihe kann einen Satz von Zeitreihenwerten enthalten, von denen jeder einem Datenabtastwert der Zeitreihendaten entspricht, die von dem Fehlerdetektor 914 ausgewertet werden. Bei manchen Ausführungsformen enthält jeder Zeitreihenwert in der Fehlerdetektionszeitreihe einen Zeitstempel und einen Fehlerdetektionswert. Der Zeitstempel kann gleich dem Zeitstempel des entsprechenden Datenabtastwerts der Datenzeitreihe sein. Der Fehlerdetektionswert kann angeben, ob der entsprechende Datenabtastwert der Datenzeitreihe als Fehler qualifiziert wird. Beispielsweise kann der Fehlerdetektionswert den Wert „Fehler“, wenn ein Fehler detektiert wird, und einen Wert „Kein Fehler“ aufweisen, wenn in dem entsprechenden Datenabtastwert der Datenzeitreihe kein Fehler detektiert wird. Die Fehlerdetektionszeitreihe kann zusammen mit den Rohzeitreihendaten und den abgeleiteten Zeitreihendaten in der Zeitreihendatenbank 928 gespeichert werden.The fault detector 914 may apply the error detection rules to the time series data to determine whether each sample of the time series data qualifies as an error. In some embodiments, the error detector generates 914 an error detection time series that contains the results of the error detection. The error detection time series may include a set of time series values, each of which corresponds to a data sample of the time series data provided by the error detector 914 be evaluated. In some embodiments, each time series value in the error detection time series includes a time stamp and an error detection value. The time stamp can be the same as the time stamp of the corresponding data sample of the data time series. The error detection value can indicate whether the corresponding data sample of the data time series is qualified as an error. For example, the error detection value can have the value “error” if an error is detected and a value “no error” if no error is detected in the corresponding data sample of the data time series. The fault detection time series can be together with the raw time series data and the derived time series data in the time series database 928 get saved.

Unter Bezugnahme auf 17-18 sind ein Blockdiagramm und eine Datentabelle 1800, die die Fehlerdetektionszeitreihe veranschaulichen, gemäß manchen Ausführungsformen gezeigt. In 17 ist gezeigt, dass der Fehlerdetektor 914 eine Datenzeitreihe 1702 von der Zeitreihendatenbank 928 empfängt. Die Datenzeitreihe 1702 kann eine Rohdatenzeitreihe oder eine abgeleitete Datenzeitreihe sein. Bei manchen Ausführungsformen ist die Datenzeitreihe 1702 eine Zeitreihe von Werten eines tatsächlichen Datenpunkts (z. B. einer gemessenen Temperatur). Bei anderen Ausführungsformen ist die Datenzeitreihe 1702 eine Zeitreihe von Werten eines virtuellen Datenpunkts (z. B. eine berechnete Effizienz). Wie in der Tabelle 1800 gezeigt, enthält die Datenzeitreihe 1702 einen Satz von Datenabtastwerten. Jeder Datenabtastwert enthält einen Zeitstempel und einen Wert. Die meisten Datenabtastwerte haben Werte innerhalb des Bereichs von 65-66 auf. Drei der Datenabtastwerte weisen jedoch Werte von 42 auf.With reference to 17-18 are a block diagram and a data table 1800 10 that illustrate the error detection time series shown in accordance with some embodiments. In 17th is shown that the error detector 914 a data time series 1702 from the time series database 928 receives. The data time series 1702 can be a raw data time series or a derived data time series. In some embodiments, the data time series is 1702 a time series of values of an actual data point (e.g. a measured temperature). In other embodiments, the data time series is 1702 a time series of values of a virtual data point (e.g. a calculated efficiency). As shown in Table 1800, the data time series contains 1702 a set of data samples. Each data sample contains a time stamp and a value. Most data samples have values within the range of 65-66. However, three of the data samples have values of 42.

Der Fehlerdetektor 914 kann die Datenzeitreihe 1702 unter Verwendung eines Satzes von Fehlerdetektionsregeln auswerten, um Fehler in der Datenzeitreihe 1702 zu detektieren. Bei manchen Ausführungsformen bestimmt der Fehlerdetektor 914, dass die Datenabtastwerte mit Werten von 42 gemäß den Fehlerdetektionsregeln als Fehler qualifiziert sind. Der Fehlerdetektor 914 erzeugt eine Fehlerdetektionszeitreihe 1704, die die Ergebnisse der Fehlerdetektion enthält. Wie in der Tabelle 1800 gezeigt, enthält die Fehlerdetektionszeitreihe 1704 einen Satz von Datenabtastwerten. Wie die Datenzeitreihe 1702 enthält jeder Datenabtastwert der Fehlerdetektionszeitreihe 1704 einen Zeitstempel und einen Wert. Die meisten Werte der Fehlerdetektionszeitreihe 1704 werden als „Kein Fehler“ gezeigt, was angibt, dass für den entsprechende Abtastwert der Datenzeitreihe 1702 (d. h. den Datenabtastwert mit demselben Zeitstempel) kein Fehler detektiert wurde. Drei der Datenabtastwerte in der Fehlerdetektionszeitreihe 1704 weisen jedoch den Wert „Fehler“ auf, was angibt, dass der entsprechende Abtastwert der Datenzeitreihe 1702 als Fehler qualifiziert ist. Wie in 17 gezeigt, kann der Fehlerdetektor 914 die Fehlerdetektionszeitreihe 1704 zusammen mit den Rohzeitreihendaten und den abgeleiteten Zeitreihendaten in der Zeitreihendatenbank 928 speichern.The fault detector 914 can the data time series 1702 using a set of error detection rules to evaluate errors in the data time series 1702 to detect. In some embodiments, the error detector determines 914 that the data samples with values of 42 are qualified as errors according to the error detection rules. The fault detector 914 generates an error detection time series 1704 that contains the results of the error detection. As shown in Table 1800, the error detection time series includes 1704 a set of data samples. Like the data time series 1702 contains each data sample of the error detection time series 1704 a timestamp and a value. Most values of the fault detection time series 1704 are shown as "No Error", indicating that for the corresponding sample of the data time series 1702 (ie the data sample with the same time stamp) no error was detected. Three of the data samples in the error detection time series 1704 however, have the value "error", which indicates that the corresponding sample of the data time series 1702 is qualified as an error. As in 17th shown, the error detector 914 the fault detection time series 1704 together with the raw time series data and the derived time series data in the time series database 928 to save.

Die Fehlerdetektionszeitreihe 1704 kann von der Gebäudeverwaltungsplattform 102 verwendet werden, um verschiedene Fehlerdetektions-, Diagnose- und/oder Steuerprozesse durchzuführen. Bei manchen Ausführungsformen wird die Fehlerdetektionszeitreihe 1704 von der Zeitreihenverarbeitungs-Engine 904 weiter verarbeitet, um eine neue Zeitreihe zu erzeugen, die von der Fehlerdetektionszeitreihe 1704 abgeleitet ist. Beispielsweise kann der Abtastwertaggregator 908 die Fehlerdetektionszeitreihe 1704 verwenden, um eine Fehlerdauerzeitreihe zu erzeugen. Der Abtastwertaggregator 908 kann mehrere aufeinanderfolgende Datenabtastwerte der Fehlerdetektionszeitreihe 1704 mit demselben Datenwert zu einem einzigen Datenabtastwert aggregieren. Beispielsweise kann der Abtastwertaggregator 908 die ersten zwei „Kein Fehler“-Datenabtastwerte der Fehlerdetektionszeitreihe 1704 zu einem einzigen Datenabtastwert aggregieren, der einen Zeitbereich repräsentiert, in dem kein Fehler detektiert wurde. Gleichermaßen kann der Abtastwertaggregator 908 die letzten zwei „Fehler“-Datenabtastwerte der Fehlerdetektionszeitreihe 1704 zu einem einzigen Datenabtastwert aggregieren, der einen Zeitbereich repräsentiert, in dem ein Fehler detektiert wurde.The error detection time series 1704 can from the building management platform 102 used to perform various fault detection, diagnostic and / or control processes. In some embodiments, the error detection time series 1704 from the time series processing engine 904 processed further to generate a new time series from the error detection time series 1704 is derived. For example, the sample aggregator 908 the fault detection time series 1704 use to generate a fault duration time series. The sample aggregator 908 can multiple successive data samples of the error detection time series 1704 aggregate into a single data sample with the same data value. For example, the sample aggregator 908 the first two "No Error" data samples of the error detection time series 1704 aggregate into a single data sample that represents a time range in which no error was detected. Similarly, the sample aggregator can 908 the last two "error" data samples of the error detection time series 1704 aggregate into a single data sample representing a time range in which an error was detected.

Bei manchen Ausführungsformen weist jeder Datenabtastwert in der Fehlerdauerzeitreihe eine Fehlerauftrittszeit und eine Fehlerdauer auf. Die Fehlerauftrittszeit kann durch den Zeitstempel des Datenabtastwerts in der Fehlerdauerzeitreihe angegeben werden. Der Abtastwertaggregator 908 kann den Zeitstempel jedes Datenabtastwerts in der Fehlerdauerzeitreihe gleich dem Zeitstempel des ersten Datenabtastwerts in der Reihe von Datenabtastwerten in der Fehlerdetektionszeitreihe 1704 setzen, die aggregiert wurden, um den aggregierten Datenabtastwert zu bilden. Falls beispielsweise der Abtastwertaggregator 908 die ersten beiden „Kein Fehler“-Datenabtastwerte der Fehlerdetektionszeitreihe 1704 aggregiert, kann der Abtastwertaggregator 908 den Zeitstempel des aggregierten Datenabtastwerts auf 31-12 - 2015Z23: 10: 00 setzen. Gleichermaßen kann der Abtastwertaggregator 908 den Zeitstempel des aggregierten Datenabtastwerts auf 31-12 - 2015Z23: 50: 00 setzen, falls der Abtastwertaggregator 908 die letzten beiden „Fehler“-Datenabtastwerte der Fehlerdetektionszeitreihe 1704 aggregiert.In some embodiments, each data sample in the error duration time series has an error occurrence time and an error duration. The error occurrence time can be specified by the time stamp of the data sample in the error duration time series. The sample aggregator 908 can make the time stamp of each data sample in the error duration time series equal to the time stamp of the first data sample in the series of data samples in the error detection time series 1704 set that have been aggregated to form the aggregated data sample. For example, if the sample aggregator 908 the first two "No Error" data samples of the error detection time series 1704 aggregated, the sample aggregator can 908 set the time stamp of the aggregated data sample to 31-12 - 2015Z23: 10: 00. Similarly, the sample aggregator can 908 set the time stamp of the aggregated data sample to 31-12 - 2015Z23: 50: 00 if the sample aggregator 908 the last two "error" data samples of the error detection time series 1704 aggregated.

Die Fehlerdauer kann durch den Wert des Datenabtastwerts in der Fehlerdauerzeitreihe angegeben werden. Der Abtastwertaggregator 908 kann den Wert jedes Datenabtastwerts in der Fehlerdauerzeitreihe gleich der Dauer, die durch aufeinanderfolgende Datenabtastwerte in der Fehlerdetektionszeitreihe 1704 aufgespannt wird, setzen, die aggregiert wurden, um den aggregierten Datenabtastwert zu bilden. Der Abtastwertaggregator 908 kann die Dauer berechnen, die von mehreren aufeinanderfolgenden Datenabtastwerten aufgespannt wird, indem der Zeitstempel des ersten Datenabtastwerts der in der Aggregation enthaltenen Fehlerdetektionszeitreihe 1704 von dem Zeitstempel des nächsten Datenabtastwerts der Fehlerdetektionszeitreihe 1704 nach den in der Aggregation enthaltenen Datenabtastwerten subtrahiert wird.The error duration can be specified by the value of the data sample in the error duration time series. The sample aggregator 908 The value of each data sample in the error duration time series can be equal to the duration by successive data samples in the error detection time series 1704 spanned, set that have been aggregated to form the aggregated data sample. The sample aggregator 908 can calculate the duration spanned by several successive data samples by taking the time stamp of the first data sample from that contained in the aggregation Fault detection time series 1704 from the time stamp of the next data sample of the error detection time series 1704 is subtracted from the data samples contained in the aggregation.

Falls beispielsweise der Abtastwertaggregator 908 die ersten zwei „Kein Fehler“-Datenabtastwerte der Fehlerdetektionszeitreihe 1704 aggregiert, kann der Abtastwertaggregator 908 die Dauer des aggregierten Datenabtastwerts durch Subtrahieren des Zeitstempels 31-12 - 2015Z23: 10: 00 (d. h. des Zeitstempels des ersten „Kein Fehler“-Abtastwerts) von dem Zeitstempel 31-12 - 2015Z23: 30: 00 (d. h. dem Zeitstempel des ersten „Fehler“ -Abtastwerts nach den aufeinanderfolgenden „Kein Fehler“-Abtastwerten) für eine aggregierte Dauer von zwanzig Minuten Berechnen. Gleichermaßen kann, falls der Abtastwertaggregator 908 die letzten zwei „Fehler“-Datenabtastwerte der Fehlerdetektionszeitreihe 1704 aggregiert, der Abtastwertaggregator 908 die Dauer des aggregierten Datenabtastwerts durch Subtrahieren des Zeitstempels 31-12 - 2015Z23: 50: 00 (d. h. des Zeitstempel des ersten in der Aggregation enthaltenen „Fehler“-Abtastwerts) von dem Zeitstempel 01-01 - 2016Z00: 10: 00 (d. h. dem Zeitstempel des ersten „Kein Fehler“-Abtastwerts nach den aufeinanderfolgenden „Fehler“-Abtastwerten) für eine aggregierte Dauer von zwanzig Minuten berechnen.For example, if the sample aggregator 908 the first two "No Error" data samples of the error detection time series 1704 aggregated, the sample aggregator can 908 the duration of the aggregated data sample by subtracting the timestamp 31-12 - 2015Z23: 10: 00 (ie the timestamp of the first "no error" sample) from the timestamp 31-12 - 2015Z23: 30: 00 (ie the timestamp of the first " Calculate Error ”sample after the consecutive“ No Error ”sample) for an aggregate time of twenty minutes. Likewise, if the sample aggregator 908 the last two "error" data samples of the error detection time series 1704 aggregated, the sample aggregator 908 the duration of the aggregate data sample by subtracting the time stamp 31-12 - 2015Z23: 50: 00 (ie the time stamp of the first "error" sample contained in the aggregation) from the time stamp 01-01 - 2016Z00: 10: 00 (ie the time stamp of the first "no error" sample after the successive "error" samples) for an aggregate time of twenty minutes.

EreignisreihenSeries of events

Unter erneuter Bezugnahme auf 9 ist gezeigt, dass die Zeitreihenoperatoren 906 einen Ereignisreihengenerator 915 enthalten. Der Ereignisreihengenerator 915 kann dazu konfiguriert sein, Ereignisreihen basierend auf den Rohdatenzeitreihen und/oder den abgeleiteten Datenzeitreihen zu erzeugen. Jede Ereignisreihe kann mehrere Ereignisabtastwerte enthalten, die verschiedene Ereignisse charakterisieren und die Startzeiten und Endzeiten der Ereignisse definieren. Im Kontext von Ereignisreihen kann ein „Ereignis“ als ein Zustand oder eine Bedingung definiert werden, der/die über einen bestimmten Zeitbereich auftritt. Mit anderen Worten ist ein Ereignis kein augenblickliches Auftreten, sondern ist ein nicht augenblicklicher Zustand oder eine nicht augenblickliche Bedingung, der/die über einen Zeitbereich mit einer Dauer ungleich Null (d. h. mit sowohl einer Startzeit als auch einer darauffolgenden Endzeit) beobachtet wird. Der Zustand oder die Bedingung des Ereignisses kann auf den Werten der Zeitreihenabtastwerte basieren, die zum Erzeugen der Ereignisreihe verwendet werden. Bei manchen Ausführungsformen weist der Ereignisreihengenerator 915 jedem Zeitreihenabtastwert basierend auf dem Wert des Zeitreihenabtastwerts einen Zustand zu und aggregiert dann mehrere aufeinanderfolgende Abtastwerte mit demselben Zustand, um den Zeitbereich zu definieren, über den dieser Zustand beobachtet wird.Referring again to 9 is shown that the time series operators 906 an event series generator 915 contain. The event series generator 915 can be configured to generate event series based on the raw data time series and / or the derived data time series. Each series of events can contain multiple event samples that characterize different events and define the start and end times of the events. In the context of series of events, an "event" can be defined as a state or condition that occurs over a certain time period. In other words, an event is not an instantaneous occurrence, but is a non-instantaneous condition or condition that is observed over a non-zero time period (ie, with both a start time and a subsequent end time). The state or condition of the event can be based on the values of the time series samples used to generate the event series. In some embodiments, the event series generator 915 assign a state to each time series sample based on the value of the time series sample, and then aggregate several consecutive samples with the same state to define the time range over which that state is observed.

Der Ereignisreihengenerator 915 kann dazu konfiguriert sein, jedem Abtastwert einer Eingabezeitreihe (z. B. einer Rohdatenzeitreihe oder einer abgeleiteten Zeitreihe) einen Zustand zuzuweisen, indem auf jeden Abtastwert ein Satz von Regeln angewendet wird. Der Prozess des Zuweisens eines Zustands zu jedem Abtastwert der Eingabezeitreihen kann als ein Ereignis-Bedingung-Handlung-Prozess (ECA-Prozess) beschrieben werden. ECA bezieht sich auf die Struktur aktiver Regeln in einer ereignisgesteuerter Architektur und aktiven Datenbanksystemen. Beispielsweise kann jede Regel in dem Satz von Regeln ein Ereignis, eine Bedingung und eine Handlung enthalten. Der Ereignisteil der Regel kann ein Signal spezifizieren, das den Aufruf der Regel auslöst. Der Bedingungsteil der Regel kann ein logischer Test (oder eine Reihe von logischen Tests) sein, der, wenn er erfüllt ist oder als wahr beurteilt wird, die Ausführung der Handlung bewirkt. Der Handlungsteil der Regel kann eine oder mehrere Handlungen spezifizieren, die durchgeführt werden sollen, wenn der entsprechende logische Test erfüllt ist (z. B. Zuweisen eines speziellen Zustands zu einem Abtastwert der Eingabezeitreihe).The event series generator 915 may be configured to assign a state to each sample of an input time series (e.g., a raw data time series or a derived time series) by applying a set of rules to each sample. The process of assigning a state to each sample of the input time series can be described as an event condition action process (ECA process). ECA refers to the structure of active rules in an event-driven architecture and active database systems. For example, each rule in the set of rules can include an event, condition, and action. The event part of the rule can specify a signal that triggers the call of the rule. The condition part of the rule can be a logical test (or a series of logical tests) which, if fulfilled or judged to be true, causes the action to be performed. The action part of the rule can specify one or more actions to be performed if the corresponding logical test is fulfilled (e.g. assigning a special state to a sample of the input time series).

Bei manchen Ausführungsformen ist der Ereignisteil die Ankunft eines neuen Abtastwerts einer Eingabezeitreihe. Für unterschiedliche Eingabezeitreihen können unterschiedliche Regeln gelten. Beispielsweise kann die Ankunft eines neuen Abtastwerts einer ersten Eingabezeitreihe als ein erstes Ereignis qualifiziert sein, während die Ankunft eines neuen Abtastwerts einer zweiten Eingabezeitreihe als ein zweites Ereignis qualifiziert werden kann. Der Ereignisreihengenerator 915 kann die Identität der Eingabezeitreihe verwenden, um zu bestimmen, welches Ereignis aufgetreten ist, wenn ein neuer Abtastwert einer speziellen Eingabezeitreihe empfangen wird. Mit anderen Worten kann der Ereignisreihengenerator 915 eine spezielle Regel auswählen, die basierend auf der Identität der Eingabezeitreihe ausgewertet werden soll.In some embodiments, the event portion is the arrival of a new sample of an input time series. Different rules can apply to different input time series. For example, the arrival of a new sample of a first input time series can be qualified as a first event, while the arrival of a new sample of a second input time series can be qualified as a second event. The event series generator 915 can use the input time series identity to determine which event occurred when a new sample of a particular input time series is received. In other words, the event series generator 915 select a special rule that should be evaluated based on the identity of the input time series.

Bei manchen Ausführungsformen beinhaltet die Bedingung eine oder mehrere mathematische Überprüfungen oder logische Aussagen, die von dem Ereignisreihengenerator 915 beurteilt werden. Zum Beispiel kann das Beurteilen der Bedingung einer speziellen Regel Vergleichen des Werts des Abtastwerts der Eingabezeitreihen mit einem Schwellenwert beinhalten. Die Bedingung kann in Abhängigkeit von der speziellen durch die Bedingung spezifizierten logischen Aussage erfüllt sein, falls der Wert des Abtastwerts kleiner als der Schwellenwert, gleich dem Schwellenwert oder größer als der Schwellenwert ist. Bei manchen Ausführungsformen beinhaltet die Bedingung eine Reihe von mathematischen Überprüfungen, die von dem Ereignisreihengenerator 915 in einer vorbestimmten Reihenfolge durchgeführt werden. Jede mathematische Überprüfung kann einer anderen durchzuführenden Handlung entsprechen, falls diese mathematische Überprüfung erfüllt wird. Beispielsweise können die Bedingungen und entsprechenden Handlungen wie folgt angegeben werden: I f   W e r t > θ 1 , H a n d l u n g = H a n d l u n g 1 E l s e   I f   θ 1 W e r t > θ 2 , H a n d l u n g = H a n d l u n g 2 E l s e   I f   θ 2 W e r t > θ 3 , H a n d l u n g = H a n d l u n g 3 E l s e   I f   θ 3 W e r t , H a n d l u n g = H a n d l u n g 4

Figure DE112018004336T5_0006
wobei Wert der Wert des Abtastwerts der Eingabezeitreihe ist, θ1 - θ4 Schwellen für den Wert sind und Handlung1 - Handlung4 spezielle Handlungen sind, die durchgeführt werden, falls die entsprechende logische Aussage erfüllt wird. Beispielsweise kann Handlung1 durchgeführt werden, falls der Wert des Abtastwerts größer als θ1 ist.In some embodiments, the condition includes one or more mathematical checks or logic statements made by the event series generator 915 be assessed. For example, assessing the condition of a particular rule may include comparing the value of the sample of the input time series to a threshold. The condition may be met depending on the particular logic statement specified by the condition if the value of the sample is less than the threshold, equal to or greater than the threshold. With some Embodiments, the condition includes a series of mathematical checks performed by the event series generator 915 be performed in a predetermined order. Each math check can correspond to a different action to be performed if that math check is met. For example, the conditions and corresponding actions can be specified as follows: I. f W e r t > θ 1 , H a n d l u n G = H a n d l u n G 1 E l s e I. f θ 1 W e r t > θ 2nd , H a n d l u n G = H a n d l u n G 2nd E l s e I. f θ 2nd W e r t > θ 3rd , H a n d l u n G = H a n d l u n G 3rd E l s e I. f θ 3rd W e r t , H a n d l u n G = H a n d l u n G 4th
Figure DE112018004336T5_0006
where value is the value of the sample of the input time series, θ 1 - θ 4 are thresholds for the value and action 1 - action 4 are special actions that are performed if the corresponding logical statement is fulfilled. For example, action 1 can be performed if the value of the sample is greater than θ 1 .

Bei manchen Ausführungsformen beinhalten die Handlungen Zuweisen verschiedener Zustände zu dem Abtastwert der Eingabezeitreihe. Beispielsweise kann Handlung1 Zuweisen eines ersten Zustands zu dem Abtastwert der Eingabezeitreihen beinhalten, wohingegen Handlung2 Zuweisen eines zweiten Zustands zu dem Abtastwert der Eingabezeitreihen beinhalten kann. Dementsprechend können dem Abtastwert basierend auf dem Wert des Abtastwerts relativ zu den Schwellenwerten unterschiedliche Zustände zugewiesen werden. Jedes Mal, wenn ein neuer Abtastwert einer Eingabezeitreihen empfangen wird, kann der Ereignisreihengenerator 915 den Satz von Regeln durchlaufen, die Regeln auswählen, die für diese spezielle Eingabezeitreihen gelten, sie in einer vorbestimmten Reihenfolge anwenden, bestimmen, welche Bedingung erfüllt ist, und einen speziellen Zustand des Abtastwerts basierend darauf zuweisen, welche Bedingung erfüllt ist.In some embodiments, the actions involve assigning different states to the sample of the input time series. For example, action 1 may involve assigning a first state to the sample of the input time series, whereas action 2 may include assigning a second state to the sample of the input time series. Accordingly, different states can be assigned to the sample based on the value of the sample relative to the threshold values. Each time a new sample of an input time series is received, the event series generator 915 traversing the set of rules, selecting rules that apply to that particular input time series, applying them in a predetermined order, determining which condition is met, and assigning a particular state of the sample based on which condition is met.

Ein Beispiel für eine Ereignisreihe, die von dem Ereignisreihengenerator 915 erzeugt werden kann, ist eine Außenlufttemperatur(OAT)-Ereignisreihe. Die OAT-Ereignisreihe können einen oder mehrere Temperaturzustände definieren und kann die Zeitbereiche angeben, während denen jeder der Temperaturzustände beobachtet wird. Bei manchen Ausführungsformen basiert die OAT-Ereignisreihe auf einer Zeitreihe von Messungen der OAT, die als Rohdatenzeitreihe empfangen wurden. Der Ereignisreihengenerator 915 kann einen Satz von Regeln verwenden, um jedem der Zeitreihe-OAT-Abtastwerte einen speziellen Temperaturzustand (z. B. heiß, warm, kühl, kalt) zuzuweisen. Beispielsweise kann der Ereignisreihengenerator 915 den folgenden Satz von Regeln auf die Abtastwerte einer OAT-Zeitreihe anwenden: I f   O A T > 100, Z u s t a n d = H e i ß

Figure DE112018004336T5_0007
E l s e   I f  10 0 O A T > 80, Z u s t a n d = W a r m
Figure DE112018004336T5_0008
E l s e   I f  8 0 O A T > 50, Z u s t a n d = K u ¨ h l
Figure DE112018004336T5_0009
E l s e   I f  5 0 O A T , Z u s t a n d = K a l t
Figure DE112018004336T5_0010
wobei OAT der Wert eines speziellen Zeitreihendatenabtastwerts ist. Wenn die OAT oberhalb von 100 liegt, kann der Ereignisreihengenerator 915 den Zeitreihenabtastwert dem Temperaturzustand „Heiß“ zuweisen. Falls die OAT kleiner oder gleich 100 und größer als 80 ist, kann der Ereignisreihengenerator 915 den Zeitreihenabtastwert dem Temperaturzustand „Warm“ zuweisen. Falls die OAT kleiner oder gleich 80 und größer als 50 ist, kann der Ereignisreihengenerator 915 den Zeitreihenabtastwert dem Temperaturzustand „Kühl“ zuweisen. Falls die OAT kleiner oder gleich 50 ist, kann der Ereignisreihengenerator 915 den Zeitreihenabtastwert dem Temperaturzustand „Kalt“ zuweisen.An example of an event series created by the event series generator 915 can be generated is an outside air temperature (OAT) event series. The OAT event series can define one or more temperature states and can specify the time ranges during which each of the temperature states is observed. In some embodiments, the OAT event series is based on a time series of measurements of the OAT received as a raw data time series. The event series generator 915 can use a set of rules to assign a specific temperature condition (e.g., hot, warm, cool, cold) to each of the time series OAT samples. For example, the event series generator 915 Apply the following set of rules to the samples of an OAT time series: I. f O A T > 100, Z u s t a n d = H e i ß
Figure DE112018004336T5_0007
E l s e I. f 10th 0 O A T > 80, Z u s t a n d = W a r m
Figure DE112018004336T5_0008
E l s e I. f 8th 0 O A T > 50, Z u s t a n d = K u ¨ H l
Figure DE112018004336T5_0009
E l s e I. f 5 0 O A T , Z u s t a n d = K a l t
Figure DE112018004336T5_0010
where OAT is the value of a special time series data sample. If the OAT is above 100, the event series generator can 915 assign the time series sample to the "hot" temperature state. If the OAT is less than or equal to 100 and greater than 80, the event series generator can 915 assign the time series sample to the "warm" temperature state. If the OAT is less than or equal to 80 and greater than 50, the event series generator can 915 assign the time series sample to the temperature status "cooling". If the OAT is less than or equal to 50, the event series generator can 915 assign the time series sample to the "cold" temperature state.

Bei manchen Ausführungsformen erzeugt der Ereignisreihengenerator 915 eine neue Zeitreihe, die die zugewiesenen Zustände für jeden Abtastwert der ursprünglichen Eingabezeitreihe enthält. Die neue Zeitreihe kann als eine „Zustandszeitreihe“ bezeichnet werden, da sie den Zustand angibt, der jedem Zeitreihenabtastwert zugweisen ist. Die Zustandszeitreihe kann erzeugt werden, indem der Satz von Regeln, wie zuvor beschrieben, auf eine Eingabezeitreihe angewendet wird. Bei manchen Ausführungsformen enthält die Zustandszeitreihe einen Zustandswert und einen Zeitstempel für jeden Abtastwert der Zustandszeitreihe. Ein Beispiel für eine Zustandszeitreihe ist wie folgt: [ Z u s t a n d 1 , Z e i t s t e m p e l 1 , Z u s t a n d 2 , Z e i t s t e m p e l 2 , Z u s t a n d N , Z e i t s t e m p e l N ]

Figure DE112018004336T5_0011
wobei Zustandi der dem i-ten Abtastwert der Eingabezeitreihe zugewiesene Zustand ist, Zeitstempelpi der Zeitstempel des i-ten Abtastwerts der Eingabezeitreihen ist und N die Gesamtzahl der Abtastwerte in den Eingabezeitreihen ist. In manchen Fällen können zwei oder mehr der Zustandswerte gleich sein, falls derselbe Zustand mehreren Abtastwerten der Eingabezeitreihe zugewiesen ist.In some embodiments, the event series generator generates 915 a new time series that contains the assigned states for each sample of the original input time series. The new time series can be referred to as a "state time series" because it indicates the state to be assigned to each time series sample. The state time series can be generated by applying the set of rules to an input time series as previously described. In some embodiments, the State time series a state value and a time stamp for each sample of the state time series. An example of a state time series is as follows: [ Z u s t a n d 1 , Z e i t s t e m p e l 1 , Z u s t a n d 2nd , Z e i t s t e m p e l 2nd , ... Z u s t a n d N , Z e i t s t e m p e l N ]
Figure DE112018004336T5_0011
where state i is the state assigned to the i th sample of the input time series, time stamp p i is the time stamp of the i th sample of the input time series and N is the total number of samples in the input time series. In some cases, two or more of the state values may be the same if the same state is assigned to multiple samples of the input time series.

Bei manchen Ausführungsformen enthält die Zustandszeitreihe auch den ursprünglichen Wert jedes Abtastwerts der Eingabezeitreihe. Beispielsweise kann jeder Abtastwert der Zustandszeitreihen einen Zustandswert, einen Zeitstempel und einen Eingabedatenwert enthalten, wie in der folgenden Gleichung gezeigt ist: [ Z u s t a n d 1 , Z e i t s t e m p e l 1 , W e r t 1 , Z u s t a n d N , Z e i t s t e m p e l N , W e r t N ]

Figure DE112018004336T5_0012
wobei Werti der ursprüngliche Wert des i-ten Abtastwerts der Eingabezeitreihe ist. Die Zustandszeitreihe ist eine Art einer abgeleiteten Zeitreihe, die von dem Zeitreihendienst 628 gespeichert und verarbeitet werden kann.In some embodiments, the state time series also includes the original value of each sample of the input time series. For example, each sample of the state time series can include a state value, a timestamp, and an input data value, as shown in the following equation: [ Z u s t a n d 1 , Z e i t s t e m p e l 1 , W e r t 1 , ... Z u s t a n d N , Z e i t s t e m p e l N , W e r t N ]
Figure DE112018004336T5_0012
where value i is the original value of the ith sample of the input time series. The state time series is a kind of a derived time series that is derived from the time series service 628 can be saved and processed.

Nun unter Bezugnahme auf 19A ist eine Tabelle 1910, die das Ergebnis des Zuweisens eines Temperaturzustands zu jedem Zeitreihenabtastwert veranschaulicht, gemäß manchen Ausführungsformen gezeigt. Jeder Zeitreihenabtastwert ist als separate Zeile der Tabelle 1910 gezeigt. Die Spalte „Zeit“ der Tabelle 1910 gibt den Zeitstempel an, der jedem Abtastwert zugewiesen ist, während die Spalte „OAT“ der Tabelle 1910 den Wert jedes Zeitreihenabtastwerts angibt. Die Spalte „Zustand“ der Tabelle 1910 gibt den Zustand an, der jedem Zeitreihenabtastwert durch den Ereignisreihengenerator 915 zugewiesen wird.Now referring to 19A 14 is a table 1910 that illustrates the result of assigning a temperature state to each time series sample, in accordance with some embodiments. Each time series sample is shown as a separate row of table 1910. The “Time” column of table 1910 indicates the time stamp assigned to each sample, while the “OAT” column of table 1910 indicates the value of each time series sample. The "State" column of table 1910 indicates the state of each time series sample by the event series generator 915 is assigned.

Nun unter Bezugnahme auf 19B ist eine Tabelle 1920, die einen Satz von durch den Ereignisreihengenerator 915 erzeugten Ereignissen veranschaulicht, gemäß manchen Ausführungsformen gezeigt. Jedes Ereignis ist als separate Zeile der Tabelle 1920 gezeigt. Die Spalte „Ereignis-ID“ in Tabelle 1920 gibt die eindeutige Kennung für jedes Ereignis an (z. B. Ereignis 1, Ereignis 2 usw.). Die Spalte „Startzeit“ der Tabelle 1920 gibt den Zeitpunkt an, zu dem jedes Ereignis beginnt, und die Spalte „Endzeit“ der Tabelle 1920 gibt den Zeitpunkt an, zu dem das Ereignis endet. Die Spalte „Zustand“ der Tabelle 1920 gibt den Zustand an, der jedem Ereignis zugeordnet ist.Now referring to 19B is a table 1920 that contains a set of by the event series generator 915 generated events, shown in accordance with some embodiments. Each event is shown as a separate row from table 1920. The "Event ID" column in Table 1920 specifies the unique identifier for each event (e.g. event 1 , Event 2nd etc.). The "Start time" column of table 1920 indicates the time at which each event begins, and the "End time" column of table 1920 indicates the time at which the event ends. The "State" column of table 1920 indicates the state that is assigned to each event.

Der Ereignisreihengenerator 915 kann jedes in der Tabelle 1920 gezeigte Ereignis erzeugen, indem aufeinanderfolgende Zeitreihenabtastwerte mit demselben zugewiesenen Zustand identifiziert werden und ein Zeitbereich bestimmt wird, der die identifizierten Abtastwerte enthält. Bei manchen Ausführungsformen beginnt der Zeitbereich mit dem Zeitstempel des ersten Abtastwerts mit einem gegebenen Zustand und endet unmittelbar vor dem Zeitstempel des nächsten Abtastwerts mit einem anderen Zustand. Beispielsweise haben die ersten zwei in der Tabelle 1910 gezeigten Zeitreihenabtastwerte den Zustand „Kalt“, während der dritte Abtastwert in der Tabelle 1910 den Zustand „Kühl“ hat. Der Ereignisreihengenerator 915 kann die ersten zwei Abtastwerte als denselben Zustand aufweisend identifizieren und kann den Zeitbereich 00:00 - 01:59 erzeugen, der die beide identifizierten Abtastwerte enthält. Dieser Zeitbereich beginnt mit dem Zeitstempel des ersten Abtastwerts (d. h. bei 00:00) und endet unmittelbar vor dem Zeitstempel des dritten Abtastwerts (d. h. bei 02:00). Der Ereignisreihengenerator 915 kann ein Ereignis für jede Gruppe aufeinanderfolgender Abtastwerte mit demselben Zustand erzeugen.The event series generator 915 may generate any event shown in table 1920 by identifying consecutive time series samples with the same assigned state and determining a time range that contains the identified samples. In some embodiments, the time range begins with the time stamp of the first sample with a given state and ends immediately before the time stamp of the next sample with another state. For example, the first two time series samples shown in Table 1910 are in the "Cold" state, while the third sample in Table 1910 is in the "Cool" state. The event series generator 915 can identify the first two samples as having the same state and can generate the time range 00:00 - 01:59 that contains the two identified samples. This time range begins with the time stamp of the first sample (ie at 00:00) and ends immediately before the time stamp of the third sample (ie at 02:00). The event series generator 915 can generate an event for each group of consecutive samples with the same state.

Der Ereignisreihengenerator 915 kann eine ähnliche Analyse für die verbleibenden Zeitreihenabtastwerte in der Tabelle 1910 durchführen, um jedes der in der Tabelle 1920 gezeigten Ereignisse zu erzeugen. In manchen Fällen können mehreren Ereignissen denselben zugewiesenen Zustand aufweisen. Beispielsweise weisen sowohl Ereignis 1 als auch Ereignis 7 in der Tabelle 1920 den Zustand „Kalt“ auf. Gleichermaßen weisen sowohl Ereignis 2 als auch Ereignis 6 den Zustand „Kühl“ auf und weisen sowohl Ereignis 3 als auch Ereignis 5 den Zustand „Warm“ auf. Es ist zu beachten, dass ein Ereignis nicht nur einen speziellen Zustand definiert, sondern auch einen Zeitbereich (d. h. eine Reihe aufeinanderfolgender Zeitabtastwerte), während dessen dieser Zustand beobachtet wird. Falls derselbe Zustand während mehrerer nicht aufeinanderfolgender Zeitbereiche beobachtet wird, können mehrere Ereignisse mit demselben Zustand erzeugt werden, um jeden der nicht aufeinanderfolgenden Zeitbereiche zu repräsentieren.The event series generator 915 may perform a similar analysis for the remaining time series samples in table 1910 to generate each of the events shown in table 1920. In some cases, multiple events can have the same assigned state. For example, both event 1 event as well 7 in the table 1920 the state "cold". Likewise, both event 2nd event as well 6 the state "cool" and both show event 3rd event as well 5 the "warm" state. Note that an event not only defines a particular state, but also a time range (ie, a series of consecutive time samples) during which that state is observed. If the same condition for several non-consecutive When time ranges are observed, multiple events with the same state can be generated to represent each of the non-consecutive time ranges.

Bei manchen Ausführungsformen erzeugt der Ereignisreihengenerator 915 eine Ereignisreihe für einen Satz von Ereignissen. Eine Ereignisreihe ähnelt konzeptionell einer Zeitreihe darin, dass beide eine Reihe von Vorkommnissen repräsentieren. Die Abtastwerte einer Zeitreihe entsprechen jedoch augenblicklichen Ereignissen mit einem einzigen Zeitstempel, während die Abtastwerte einer Ereignisreihe nichtaugenblicklichen Ereignissen entsprechen, die sowohl eine Startzeit als auch eine Endzeit haben. Beispielsweise kann der Ereignisreihengenerator 915 die folgenden Ereignisreihe für den in der Tabelle 1920 gezeigten Satz von Ereignissen erzeugen: [ I D = 1, Z u s t a n d = K a l t , S t a r t z e i t = 00 : 00, E n d z e i t = 01 : 59 ,                    I D = 2, Z u s t a n d = K u ¨ h l , S t a r t z e i t = 02 : 00, E n d z e i t = 08 : 59 ,                    I D = 3, Z u s t a n d = W a r m , S t a r t z e i t = 09 : 00, E n d z e i t = 11 : 59 ,                    I D = 4, Z u s t a n d = H e i ß , S t a r t z e i t = 12 : 00, E n d z e i t = 15 : 59 ,                    I D = 5, Z u s t a n d = W a r m , S t a r t z e i t = 16 : 00, E n d z e i t = 18 : 59 ,                    I D = 6, Z u s t a n d = K u ¨ h l , S t a r t z e i t = 19 : 00, E n d z e i t = 21 : 59 ,                    I D = 7, Z u s t a n d = K a l t , S t a r t z e i t = 22 : 00, E n d z e i t = 23 : 59 , ]

Figure DE112018004336T5_0013
wobei jeder Gegenstand innerhalb der spitzen Klammern 〈 〉 ein Ereignis mit den Attributen ID, Zustand, Startzeit, und Endzeit ist. Ereignisse können in einem tabellarischen Format (wie in 9B gezeigt), als Textzeichenfolge (wie oben gezeigt), als ein Datenobjekt (z. B. ein JSON-Objekt), in einem Containerformat oder in beliebigen einer Vielzahl von Formaten gespeichert werden.In some embodiments, the event series generator generates 915 a series of events for a set of events. A series of events is conceptually similar to a time series in that both represent a series of events. However, the samples of a time series correspond to current events with a single time stamp, while the samples of an event series correspond to non-current events that have both a start time and an end time. For example, the event series generator 915 generate the following series of events for the set of events shown in Table 1920: [ I. D = 1, Z u s t a n d = K a l t , S t a r t e.g. e i t = 00 : 00, E n d e.g. e i t = 01 : 59 , I. D = 2, Z u s t a n d = K u ¨ H l , S t a r t e.g. e i t = 02 : 00, E n d e.g. e i t = 08 : 59 , I. D = 3, Z u s t a n d = W a r m , S t a r t e.g. e i t = 09 : 00, E n d e.g. e i t = 11 : 59 , I. D = 4, Z u s t a n d = H e i ß , S t a r t e.g. e i t = 12th : 00, E n d e.g. e i t = 15 : 59 , I. D = 5, Z u s t a n d = W a r m , S t a r t e.g. e i t = 16 : 00, E n d e.g. e i t = 18th : 59 , I. D = 6, Z u s t a n d = K u ¨ H l , S t a r t e.g. e i t = 19th : 00, E n d e.g. e i t = 21st : 59 , I. D = 7, Z u s t a n d = K a l t , S t a r t e.g. e i t = 22 : 00, E n d e.g. e i t = 23 : 59 , ]
Figure DE112018004336T5_0013
where each item within the angle brackets 〈〉 is an event with the attributes ID, state, start time, and end time. Events can be presented in a tabular format (as in 9B ), as a text string (as shown above), as a data object (e.g., a JSON object), in a container format, or in any of a variety of formats.

EreignisreihenprozessEvent series process

Nun unter Bezugnahme auf 19C ist ein Flussdiagramm eines Prozesses 1960 zum Erzeugen und Aktualisieren von Ereignisreihen gemäß manchen Ausführungsformen gezeigt. Der Prozess 1960 kann durch den Ereignisreihengenerator 915 ausgeführt werden, wie unter Bezugnahme auf 9 und 17-18 beschrieben. Bei manchen Ausführungsformen wird der Prozess 1960 durchgeführt, um eine Ereignisreihe basierend auf den Abtastwerten einer Datenzeitreihe zu erzeugen. Der Prozess 1960 kann durchgeführt werden, nachdem alle der Abtastwerte der Datenzeitreihe gesammelt wurden, oder kann jedes Mal durchgeführt werden, wenn ein neuer Abtastwert der Datenzeitreihe gesammelt wird.Now referring to 19C is a flowchart of a process 1960 shown for generating and updating series of events according to some embodiments. The process 1960 can by the event series generator 915 be carried out as with reference to FIG 9 and 17-18 described. In some embodiments, the process 1960 performed to generate an event series based on the samples of a data time series. The process 1960 can be performed after all of the samples of the data time series have been collected, or can be performed each time a new sample of the data time series is collected.

Es wird gezeigt, dass der Prozess 1960 das Erhalten eines neuen Abtastwerts einer Datenzeitreihe (Schritt 1962) und das Zuweisen eines Zustands zu dem Abtastwert unter Verwendung eines Satzes von Regeln (Schritt 1964) beinhaltet. Bei manchen Ausführungsformen wird der Abtastwert von einem Sensor erhalten, der dazu konfiguriert ist, eine Variable von Interesse zu messen. Beispielsweise kann der Abtastwert ein Abtastwert einer Rohdatenzeitreihe sein. Bei anderen Ausführungsformen ist der Abtastwert ein Abtastwert einer abgeleiteten Datenzeitreihe, die durch den Abtastwertaggregator 908, den Virtueller-Punkt-Rechner 910, den Wetterpunktrechner 912 oder andere Zeitreihenoperatoren 906 erzeugt wird. Der Abtastwert kann aus einem Satz von Abtastwerten einer vollständigen Zeitreihe erhalten werden oder kann als der neueste Abtastwert eines Eingabedatenstroms empfangen werden.It is shown that the process 1960 obtaining a new sample of a data time series (step 1962 ) and assigning a state to the sample using a set of rules (step 1964 ) includes. In some embodiments, the sample is obtained from a sensor configured to measure a variable of interest. For example, the sample can be a sample of a raw data time series. In other embodiments, the sample is a sample of a derived data time series generated by the sample aggregator 908 , the virtual point calculator 910 , the weather point calculator 912 or other time series operators 906 is produced. The sample can be obtained from a set of samples of a complete time series or can be received as the latest sample of an input data stream.

Bei manchen Ausführungsformen beinhaltet Schritt 1964 Anwenden eines Satzes von Regeln auf den Abtastwert der Datenzeitreihe, um zu bestimmen, welcher Zustand zugewiesen werden soll. Der Satz von Regeln kann verschiedene Wertebereiche und einen entsprechenden Zustand für jeden Wertebereich definieren. Schritt 1964 kann Zuweisen des Abtastwerts zu einem speziellen Zustand beinhalten, wenn der Wert des Wertes des Abtastwerts innerhalb des entsprechenden Wertebereichs liegt. Falls der Abtastwert beispielsweise ein Abtastwert der Außenlufttemperatur (OAT) ist, kann der Satz von Regeln verschiedene Temperaturbereiche und einen Temperaturzustand für jeden der Temperaturbereiche definieren. Ein Beispiel für einen solchen Satz von Regeln ist wie folgt: I f   O A T > 100, Z u s t a n d = H e i ß

Figure DE112018004336T5_0014
E l s e   I f   100 O A T > 80, Z u s t a n d = W a r m
Figure DE112018004336T5_0015
E l s e   I f   80 O A T > 50, Z u s t a n d = K u ¨ h l
Figure DE112018004336T5_0016
E l s e   I f  5 0 O A T , Z u s t a n d = K a l t
Figure DE112018004336T5_0017
wobei OAT der Wert eines speziellen Zeitreihendatenabtastwerts ist. Wenn die OAT oberhalb von 100 liegt, kann dem Abtastwert der Temperaturzustand „Heiß“ zuwiesen werden. Falls die OAT kleiner oder gleich 100 und größer als 80 ist, kann dem Abtastwert der Temperaturzustand „Warm“ zugewiesen werden. Falls die OAT kleiner oder gleich 80 und größer als 50 ist, kann dem Abtastwert der Temperaturzustand „Kühl“ zugewiesen werden. Falls die OAT kleiner als 50 ist, kann dem Abtastwert der Temperaturzustand „Kalt“ zugewiesen werden.In some embodiments, step includes 1964 Applying a set of rules to the sample of the data time series to determine which state to assign. The set of rules can define different value ranges and a corresponding state for each value range. step 1964 may include assigning the sample to a particular state if the value of the value of the sample is within the corresponding range of values. For example, if the sample is an outside air temperature (OAT) sample, the set of rules may define different temperature ranges and a temperature condition for each of the temperature ranges. An example of such a set of rules is as follows: I. f O A T > 100, Z u s t a n d = H e i ß
Figure DE112018004336T5_0014
E l s e I. f 100 O A T > 80, Z u s t a n d = W a r m
Figure DE112018004336T5_0015
E l s e I. f 80 O A T > 50, Z u s t a n d = K u ¨ H l
Figure DE112018004336T5_0016
E l s e I. f 5 0 O A T , Z u s t a n d = K a l t
Figure DE112018004336T5_0017
where OAT is the value of a special time series data sample. If the OAT is above 100, the temperature can be assigned to the sample temperature "hot". If the OAT is less than or equal to 100 and greater than 80, the temperature can be assigned to the sample value "Warm". If the OAT is less than or equal to 80 and greater than 50, the temperature value "Cool" can be assigned to the sample. If the OAT is less than 50, the temperature value "cold" can be assigned to the sample.

Immer noch unter Bezugnahme auf 19C wird gezeigt, dass der Prozess 1960 Bestimmen beinhaltet, ob der Abtastwert Teil eines vorhandenen Ereignisses ist (Schritt 1966). Schritt 1966 kann Identifizieren aller der Ereignisse in einer vorhandenen Ereignisreihe und Bestimmen, ob der Abtastwert zu irgendeinem der identifizierten Ereignisse gehört, beinhalten. Jedes Ereignis kann durch die Kombination eines speziellen Zustands und eines Zeitbereichs definiert werden, der sowohl eine Startzeit als auch eine Endzeit aufweist. Schritt 1966 kann Bestimmen beinhalten, dass der Abtastwert Teil eines vorhandenen Ereignisses ist, falls der Abtastwert sowohl (1) demselben Zustand wie das vorhandene Ereignis zugewiesen ist als auch (2) einen Zeitstempel aufweist, der entweder (a) innerhalb des dem vorhandenen Ereignis zugeordneten Zeitbereichs liegt oder (b) fortlaufend zu dem dem vorhandenen Ereignis zugeordneten Zeitbereich ist. Schritt 1966 kann jedoch Bestimmen beinhalten, dass der Abtastwert nicht Teil eines vorhandenen Ereignisses ist, falls der Abtastwert nicht den gleichen Zustand wie das vorhandene Ereignis aufweist oder keinen Zeitstempel aufweist, der entweder innerhalb des dem vorhandenen Ereignis zugeordneten Zeitbereichs liegt oder fortlaufend zu dem dem vorhandenen Ereignis zugeordneten Zeitbereich ist.Still referring to 19C it is shown that the process 1960 Determining includes whether the sample is part of an existing event (step 1966 ). step 1966 may include identifying all of the events in an existing series of events and determining whether the sample belongs to any of the identified events. Each event can be defined by combining a special state and a time range that has both a start time and an end time. step 1966 may include determining that the sample is part of an existing event if the sample is both (1) assigned the same state as the existing event and (2) has a timestamp that is either (a) within the time range associated with the existing event or (b) is consecutive to the time range associated with the existing event. step 1966 however, may include determining that the sample is not part of an existing event if the sample is not in the same state as the existing event or does not have a timestamp that is either within the time range associated with the existing event or continuous to that associated with the existing event Time range is.

In Schritt 1966 kann ein Zeitstempel als innerhalb des mit einem vorhandenen Ereignis zugeordneten Zeitbereichs betrachtet werden, falls der Zeitstempel zwischen der Startzeit des Ereignisses und der Endzeit des Ereignisses liegt. Ein Zeitstempel kann als fortlaufend zu dem einem vorhandenen Ereignis zugeordneten Zeitbereich betrachtet werden, falls der Zeitstempel unmittelbar vor der Startzeit oder unmittelbar nach der Endzeit des Ereignisses liegt. Falls beispielsweise ein neuer Abtastwert einen Zeitstempel vor der Startzeit eines Ereignisses aufweist und keine anderen Abtastwerte zwischen dem Zeitstempel des neuen Abtastwerts und der Startzeit des Ereignisses dazwischenliegende Zeitstempel aufweisen, kann der Zeitstempel als fortlaufend zu dem dem vorhandenen Ereignis zugeordneten Zeitbereich betrachtet werden. Falls ein neuer Abtastwert einen Zeitstempel nach der Endzeit eines Ereignisses aufweist und keine anderen Abtastwerte zwischen der Endzeit des Ereignisses und dem Zeitstempel des neuen Abtastwerts dazwischenliegende Zeitstempel aufweisen, kann der Zeitstempel als fortlaufend zu dem dem vorhandenen Ereignis zugeordneten Zeitbereich betrachtet werden.In step 1966 For example, a timestamp can be considered to be within the time range associated with an existing event if the timestamp is between the start time of the event and the end time of the event. A timestamp can be considered to be continuous to the time range assigned to an existing event if the timestamp is immediately before the start time or immediately after the end time of the event. For example, if a new sample has a timestamp prior to the start time of an event and there are no other samples between the timestamp of the new sample and the start time of the event, the timestamp can be considered to be continuous to the time range associated with the existing event. If a new sample has a time stamp after the end time of an event and there are no other samples between the end time of the event and the time stamp of the new sample, the time stamp can be considered to be continuous to the time range assigned to the existing event.

Falls der neue Abtastwert Teil eines vorhandenen Ereignisses ist (d. h. das Ergebnis von Schritt 1966 ist „Ja“), kann der Prozess 1960 zum Bestimmen fortfahren, ob der neue Abtastwert das vorhandene Ereignis erweitert (Schritt 1968). Schritt 1968 kann das Bestimmen beinhalten, ob der Zeitstempel des neuen Abtastwerts fortlaufend zu dem Zeitbereich ist, der dem vorhandenen Ereignis zugeordnet ist (d. h. unmittelbar vor der Startzeit des Ereignisses oder unmittelbar nach der Endzeit des Ereignisses). Falls der Zeitstempel des neuen Abtastwerts fortlaufend zu dem dem vorhandenen Ereignis zugeordneten Zeitbereich ist, kann Schritt 1968 das Bestimmen beinhalten, dass der Abtastwert das vorhandene Ereignis erweitert. Falls der Zeitstempel des neuen Abtastwerts jedoch nicht fortlaufend zu dem dem vorhandenen Ereignis zugeordneten Zeitbereich ist, kann Schritt 1968 das Bestimmen beinhalten, dass der Abtastwert das vorhandene Ereignis nicht erweitert.If the new sample is part of an existing event (ie the result of step 1966 is "Yes"), the process can 1960 proceed to determine whether the new sample extends the existing event (step 1968 ). step 1968 may include determining whether the timestamp of the new sample is consecutive to the time range associated with the existing event (ie, immediately before the event start time or immediately after the event end time). If the time stamp of the new sample is continuous to the time range assigned to the existing event, step can 1968 determining that the sample extends the existing event. If, however, the time stamp of the new sample is not continuous with the time range assigned to the existing event, step can 1968 determining that the sample does not expand the existing event.

Falls der Abtastwert das vorhandene Ereignis nicht erweitert (d. h. das Ergebnis von Schritt 1968 ist „Nein“), kann der Prozess 1960 Bestimmen beinhalten, dass keine Aktualisierung des vorhandenen Ereignisses erforderlich ist (Schritt 1970). Diese Situation kann auftreten, wenn der Zeitstempel des neuen Abtastwerts zwischen der Startzeit des vorhandenen Ereignisses und der Endzeit des vorhandenen Ereignisses (d. h. innerhalb des dem vorhandenen Ereignis zugeordneten Zeitbereichs) liegt. Da der dem vorhandenen Ereignis zugeordnete Zeitbereich den Zeitstempel des neuen Abtastwerts bereits abdeckt, muss das vorhandene Ereignis möglicherweise nicht aktualisiert werden, um den Zeitstempel des neuen Abtastwerts aufzunehmen.If the sample does not expand the existing event (ie the result of step 1968 is "No"), the process can 1960 Determining includes that no update of the existing event is required (step 1970 ). This situation can occur if the time stamp of the new sample lies between the start time of the existing event and the end time of the existing event (ie within the time range assigned to the existing event). Because the time range associated with the existing event already covers the time stamp of the new sample, the existing event may not need to be updated to include the time stamp of the new sample.

Falls der Abtastwert jedoch das vorhandene Ereignis erweitert (d. h. das Ergebnis von Schritt 1968 ist „Ja“), kann der Prozess 1960 zum Aktualisieren der Startzeit oder Endzeit des vorhandenen Ereignisses basierend auf dem Zeitstempel des Abtastwerts fortfahren (Schritt 1972). Schritt 1972 kann das zeitliche Zurückbewegen der Startzeit des Ereignisses oder das zeitliche Vorwärtsbewegen der Endzeit des Ereignisses beinhalten, so dass der Zeitbereich zwischen der Startzeit und der Endzeit den Zeitstempel des neuen Abtastwerts enthält. Falls beispielsweise der Zeitstempel des Abtastwerts vor der Startzeit des Ereignisses liegt, kann Schritt 1972 das Ersetzen der Startzeit des vorhandenen Ereignisses durch den Zeitstempel des Abtastwerts beinhalten.However, if the sample expands the existing event (ie the result of step 1968 is "Yes"), the process can 1960 Proceed to update the start or end time of the existing event based on the timestamp of the sample (step 1972 ). step 1972 can the temporal Moving back the start time of the event or advancing the end time of the event in time so that the time range between the start time and the end time contains the time stamp of the new sample. For example, if the timestamp of the sample is before the start time of the event, step 1972 include replacing the start time of the existing event with the timestamp of the sample.

Gleichermaßen kann, falls der Zeitstempel des Abtastwerts nach der Endzeit des Ereignisses liegt, Schritt 1972 Ersetzen der Endzeit des vorhandenen Ereignisses durch eine neue Endzeit beinhalten, die nach dem Zeitstempel des Abtastwerts auftritt. Falls das vorhandene Ereignis beispielsweise eine ursprüngliche Endzeit von 04:59 aufweist und der neue Abtastwert einen Zeitstempel von 05:00 aufweist, kann Schritt 1972 Aktualisieren der Endzeit des Ereignisses auf 05:59 (oder eine beliebige andere Zeit, die nach 05:00 auftritt) beinhalten, so dass der dem Ereignis zugeordnete angepasste Zeitbereich den Zeitstempel des neuen Abtastwerts enthält. Falls die ursprüngliche Endzeit des vorhandenen Ereignisses „Null“ ist und der neue Abtastwert die Endzeit des vorhandenen Ereignisses verlängert, kann Schritt 1972 die ursprüngliche Endzeit von „Null“ beibehalten.Likewise, if the timestamp of the sample is after the end time of the event, step can 1972 Replace the end time of the existing event with a new end time that occurs after the timestamp of the sample. For example, if the existing event has an original end time of 04:59 and the new sample has a time stamp of 05:00, step can 1972 Update the end time of the event to 05:59 (or any other time that occurs after 05:00) so that the adjusted time range associated with the event contains the timestamp of the new sample. If the original end time of the existing event is "zero" and the new sample extends the end time of the existing event, step can 1972 keep the original end time of "zero".

Zurück zu Schritt 1966 kann, falls der Abtastwert nicht Teil eines vorhandenen Ereignisses ist (d. h. das Ergebnis von Schritt 1966 ist „Nein“), der Prozess 1960 zum Erzeugen eines neuen Ereignisses basierend auf dem Zustand und dem Zeitstempel des neuen Abtastwerts fortfahren (Schritt 1974). Das neue Ereignis kann einen Zustand aufweisen, der dem Zustand entspricht, der dem neuen Abtastwert in Schritt 1964 zugewiesen wird. Das neue Ereignis kann eine Startzeit gleich dem Zeitstempel des Abtastwert und eine Endzeit, die nach dem Zeitstempel des Abtastwert auftritt, aufweisen, so dass der dem neuen Ereignis zugeordnete Zeitbereich den Zeitstempel des Abtastwerts enthält. Die Endzeit kann einen Wert „Null“ aufweisen, falls das neue Ereignis das letzte Ereignis in der Ereignisreihe ist, oder ein Wert ungleich Null, falls das neue Ereignis nicht das letzte Ereignis in der Ereignisreihe ist. Falls beispielsweise das nächste Ereignis in der Zeitreihe bei einem Zeitstempel 06:00 beginnt, kann Schritt 1974 Festlegen der Endzeit des neuen Ereignisses auf 05:59 beinhalten.Back to step 1966 can if the sample is not part of an existing event (ie the result of step 1966 is "No"), the process 1960 Proceed to generate a new event based on the state and time stamp of the new sample (step 1974 ). The new event may have a state that corresponds to the state that corresponds to the new sample in step 1964 is assigned. The new event can have a start time equal to the time stamp of the sample and an end time that occurs after the time stamp of the sample, so that the time range assigned to the new event contains the time stamp of the sample. The end time can have a value of zero if the new event is the last event in the series of events, or a non-zero value if the new event is not the last event in the series of events. For example, if the next event in the time series is at a timestamp 06 : 00 starts, can step 1974 Set the end time of the new event to include 05:59.

Nach dem Erzeugen des neuen Ereignisses in Schritt 1974 kann der Prozess 1960 die Schritte 976-988 durchführen, um andere Ereignisse in der Ereignisreihe basierend auf den neuen Informationen zu aktualisieren, die durch das neue Ereignis bereitgestellt werden. Falls das neue Ereignis beispielsweise das letzte Ereignis in der Ereignisreihe ist (d. h. das Ergebnis von Schritt 1976 ist „Ja“), kann der Prozess 1960 die Endzeit des vorherigen Ereignisses (d. h. des Ereignisses, das unmittelbar vor dem neuen Ereignis auftritt) aktualisieren (Schritt 1978). Die in Schritt 1978 durchgeführte Aktualisierung kann das Festlegen der Endzeit des vorherigen Ereignisses auf eine Zeit unmittelbar vor dem Zeitstempel des neuen Abtastwerts beinhalten. Falls beispielsweise der nächste Abtastwert einen Zeitstempel von 05:00 aufweist, kann Schritt 1978 Aktualisieren der Endzeit des vorherigen Ereignisses auf 04:59 beinhalten. Falls das neue Ereignis nicht das letzte Ereignis in der Ereignisreihe ist (d. h. das Ergebnis von Schritt 1976 ist „Nein“), kann der Prozess 1960 zu Schritt 1980 fortfahren.After creating the new event in step 1974 can the process 1960 the steps 976-988 perform to update other events in the series of events based on the new information provided by the new event. For example, if the new event is the last event in the series of events (that is, the result of step 1976 is "Yes"), the process can 1960 Update the end time of the previous event (that is, the event that occurs immediately before the new event) (step 1978 ). The one in step 1978 the update performed may include setting the end time of the previous event to be immediately before the time stamp of the new sample. For example, if the next sample has a time stamp of 05:00, step 1978 Update the end time of the previous event to include 04:59. If the new event is not the last event in the series of events (ie the result of step 1976 is "No"), the process can 1960 to step 1980 Continue.

Falls das neue Ereignis zwischen vorhandenen Ereignissen in der Ereignisreihe auftritt (d. h. das Ergebnis von Schritt 1980 ist „Ja“), kann der Prozess 1960 die Endzeit des vorherigen Ereignisses aktualisieren (Schritt 1982). Die in Schritt 1982 durchgeführte Aktualisierung kann die gleiche wie die in Schritt 1978 durchgeführte Aktualisierung sein. Die in Schritt 1982 durchgeführte Aktualisierung kann beispielweise das Festlegen der Endzeit des vorherigen Ereignisses auf eine Zeit unmittelbar vor dem Zeitstempel des neuen Abtastwerts beinhalten. Falls das neue Ereignis nicht zwischen vorhandenen Ereignissen in der Ereignisreihe auftritt (d. h. das Ergebnis von Schritt 1980 ist „Nein“), kann der Prozess 1960 zu Schritt 1984 fortfahren.If the new event occurs between existing events in the series of events (ie the result of step 1980 is "Yes"), the process can 1960 Update the end time of the previous event (step 1982 ). The one in step 1982 The update performed can be the same as that in step 1978 carried out update. The one in step 1982 For example, the update performed may include setting the end time of the previous event to be immediately before the time stamp of the new sample. If the new event does not occur between existing events in the series of events (ie the result of step 1980 is "No"), the process can 1960 to step 1984 Continue.

Falls das neue Ereignis ein vorhandenes Ereignis in der Ereignisreihe aufteilt (d. h. das Ergebnis von Schritt 1984 ist „Ja“), kann der Prozess 1960 die das vorhandene Ereignis in zwei Ereignisse mit dem neuen Ereignis dazwischen aufteilen. Bei manchen Ausführungsformen beinhaltet das Aufteilen des vorhandenen Ereignisses in zwei Ereignisse Aktualisieren der Endzeit des vorhandenen Ereignisses, so dass es vor dem neuen Ereignis endet (Schritt 1986), und Erzeugen eines zweiten neuen Ereignisses, das nach dem ersten neuen Ereignis beginnt und zur vorherigen Endzeit des vorhandenen Ereignisses endet (Schritt 1988). Beispielsweise wird eine Situation betrachtet, in der das vorhandene Ereignis eine Startzeit von 04:00, eine Endzeit von 11:59 und einen Zustand „Warm“ aufweist. Das in Schritt 1974 hinzugefügte neue Ereignis kann eine Startzeit von 08:00, eine Endzeit von 08:59 und einen Zustand „Heiß“ aufweisen. Dementsprechend kann Schritt 1986 Ändern der Endzeit des vorhandenen Ereignisses auf 07:59 beinhalten, so dass das vorhandene Ereignis einem ersten „Warm“-Ereignis entspricht und den Zeitbereich von 04:00 bis 07:59 abdeckt. Das dazwischenliegende „Heiß“-Ereignis kann den Zeitbereich von 08:00 bis 08:59 abdecken. Das zweite neue Ereignis, das in Schritt 1988 erzeugt wurde (d. h. das zweite „Warm“-Ereignis), kann eine Startzeit von 09:00 und eine Endzeit von 11:59 aufweisen. Der Zustand des zweiten neuen Ereignisses kann gleich dem Zustand des vorhandenen Ereignisses sein.If the new event splits an existing event in the series of events (ie the result of step 1984 is "Yes"), the process can 1960 that split the existing event into two events with the new event in between. In some embodiments, splitting the existing event into two events includes updating the end time of the existing event to end before the new event (step 1986 ), and creating a second new event that begins after the first new event and ends at the previous end time of the existing event (step 1988 ). For example, consider a situation where the existing event has a start time of 4:00 AM, an end time of 11:59 AM, and a “warm” state. That in step 1974 added new event can have a start time of 8:00 am, an end time of 8:59 am and a “hot” state. Accordingly, step 1986 Include changing the end time of the existing event to 07:59 so that the existing event corresponds to a first "warm" event and covers the time range from 04:00 to 07:59. The "hot" event in between can cover the time range from 08:00 to 08:59. The second new event in step 1988 was generated (ie the second "warm" event), a start time of 09:00 and have an end time of 11:59. The state of the second new event can be the same as the state of the existing event.

Eigenschaften von Ereignissen und EreignisreihenProperties of events and series of events

Ähnlich den Zeitreihen kann eine Ereignisreihe auf zwei Arten verwendet werden. Bei manchen Ausführungsformen wird eine Ereignisreihe nur zur Speicherung verwendet. Beispielsweise können Ereignisse von einer externen Anwendung erzeugt und in einer Ereignisreihe gespeichert werden. In diesem Szenario wird die Ereignisreihe nur als ein Speicherungscontainer verwendet. Bei anderen Ausführungsformen kann eine Ereignisreihen sowohl zur Speicherung als auch zur Verarbeitung verwendet werden. Beispielsweise können Ereignisse durch den Ereignisreihengenerator 915 basierend auf einer Rohzeitreihe oder abgeleiteten Zeitreihe durch Anwenden eines Satzes von Regeln, wie zuvor beschrieben, erzeugt werden. In diesem Szenario ist die Ereignisreihe sowohl der Speicherungscontainer als auch der Mechanismus zum Erzeugen der Ereignisse.Similar to the time series, an event series can be used in two ways. In some embodiments, a series of events is used only for storage. For example, events can be generated by an external application and saved in an event series. In this scenario, the series of events is used only as a storage container. In other embodiments, a series of events can be used for both storage and processing. For example, events can be generated by the event series generator 915 based on a raw time series or derived time series by applying a set of rules as previously described. In this scenario, the series of events is both the storage container and the mechanism for generating the events.

In manchen Ausführungsformen enthält jede Ereignisreihe die folgenden Eigenschaften oder Attribute: Ereignisreihe-ID, Org-ID, Eingabezeitreihe-ID, Zustandszeitreihe-ID, Regeln und Zustände. Die Ereignisreihe-ID-Eigenschaft kann eine eindeutige ID sein, die vom Ereignisreihengenerator 915 erzeugt wird, wenn eine neue Ereignisreihe erzeugt wird. Die Ereignisreihe-ID-Eigenschaft kann verwendet werden, um die Ereignisreihe eindeutig zu identifizieren und die Ereignisreihe von anderen Ereignisreihen zu unterscheiden. Die Org-ID-Eigenschaft kann die Organisation (z. B. „ABC Corporation“) identifizieren, zu der die Ereignisreihe gehört. Ähnlich wie bei Zeitreihen kann jede Ereignisreihe zu einer speziellen Organisation, einem speziellen Kunden, einer speziellen Anlage oder einer anderen Entität gehören (was ausführlicher unter Bezugnahme auf 1 1A-11B beschrieben ist).In some embodiments, each event series contains the following properties or attributes: event series ID, org ID, input time series ID, state time series ID, rules and states. The event series ID property can be a unique ID that is provided by the event series generator 915 is generated when a new series of events is created. The series of events ID property can be used to uniquely identify the series of events and to distinguish the series of events from other series of events. The Org ID property can identify the organization (for example, "ABC Corporation") to which the series of events belongs. Similar to time series, each series of events can belong to a specific organization, customer, facility, or other entity (which is explained in more detail with reference to 1 1A-11B).

Die Eingabezeitreihe-ID-Eigenschaft kann die Zeitreihe identifizieren, die zum Erzeugen der Ereignisreihe verwendet wird. Falls die Ereignisreihe beispielsweise eine Reihe von Außenlufttemperatur(OAT)-Ereignissen sind, kann die Eingabezeitreihe-ID-Eigenschaft die OAT-Zeitreihe identifizieren, aus der die OAT-Ereignisreihe erzeugt wird. Bei manchen Ausführungsformen weist die Eingabezeitreihe das folgende Format auf: [ < S c h l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 2 , W e r t 2 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 3 , W e r t 3 > ]

Figure DE112018004336T5_0018
wobei Schlüsseleine Kennung der Quelle der Datenabtastwerte ist (z. B. Zeitreihe-ID, Sensor-ID, usw.) ist, Zeitstempeli einen Zeitpunkt identifiziert, der dem i-ten Abtastwert zugeordnet ist, und Werti den Wert von des i-ten Abtastwerts angibt.The input time series ID property can identify the time series used to generate the event series. For example, if the event series are a series of outside air temperature (OAT) events, the input time series ID property can identify the OAT time series from which the OAT event series is generated. In some embodiments, the input time series has the following format: [ < S c H l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 2nd , W e r t 2nd > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 3rd , W e r t 3rd > ]
Figure DE112018004336T5_0018
where key is an identifier of the source of the data samples (e.g., time series ID, sensor ID, etc.), time stamp i identifies a time associated with the i th sample, and value i is the value of the i- specifies th sample.

Die Regeln-Eigenschaft kann eine Liste von Regeln identifizieren, die auf die Eingabezeitreihe angewendet werden, um jedem Abtastwert der Eingabezeitreihe einen speziellen Zustand zuzuweisen. Bei manchen Ausführungsformen enthält die Liste von Regeln mehrere Regeln, die in einer bestimmten Reihenfolge angewendet werden. Die Reihenfolge kann durch die logische Struktur der Regeln definiert werden. Beispielsweise können die Regeln einen Satz von „If“- und „ElseIf“-Aussagen enthalten, die in der Reihenfolge ausgewertet werden, in der die Aussagen in dem Satz von Regeln erscheinen. Ein Beispiel für einen Satz von Regeln ist wie folgt: I f   O A T > 100, Z u s t a n d = H e i ß

Figure DE112018004336T5_0019
E l s e   I f  10 0 O A T > 80, Z u s t a n d = W a r m
Figure DE112018004336T5_0020
E l s e   I f  8 0 O A T > 80, Z u s t a n d = K u ¨ h l
Figure DE112018004336T5_0021
E l s e   I f  5 0 O A T , Z u s t a n d = K a l t
Figure DE112018004336T5_0022
The rules property can identify a list of rules that are applied to the input time series to assign a particular state to each sample of the input time series. In some embodiments, the list of rules includes multiple rules that are applied in a particular order. The order can be defined by the logical structure of the rules. For example, the rules can include a set of "If" and "ElseIf" statements that are evaluated in the order in which the statements appear in the set of rules. An example of a set of rules is as follows: I. f O A T > 100, Z u s t a n d = H e i ß
Figure DE112018004336T5_0019
E l s e I. f 10th 0 O A T > 80, Z u s t a n d = W a r m
Figure DE112018004336T5_0020
E l s e I. f 8th 0 O A T > 80, Z u s t a n d = K u ¨ H l
Figure DE112018004336T5_0021
E l s e I. f 5 0 O A T , Z u s t a n d = K a l t
Figure DE112018004336T5_0022

Die Zustandszeitreihe-ID-Eigenschaft kann die Zustandszeitreihe identifizieren, in der die zugewiesenen Zustände gespeichert sind. Die Zustandszeitreihe kann erzeugt werden, indem der Satz von Regeln, wie zuvor beschrieben, auf eine Eingabezeitreihe angewendet wird. Bei manchen Ausführungsformen enthält die Zustandszeitreihe einen Zustandswert und einen Zeitstempel für jeden Abtastwert der Zustandszeitreihe. Ein Beispiel für eine Zustandszeitreihe ist wie folgt: [ Z u s t a n d 1 , Z e i t s t e m p e l 1 , Z u s t a n d 2 , Z e i t s t e m p e l 2 , Z u s t a n d N , Z e i t s t e m p e l N ]

Figure DE112018004336T5_0023
wobei Zustandi der dem i-ten Abtastwert der Eingabezeitreihe zugewiesene Zustand ist, Zeitstempeli der Zeitstempel des i-ten Abtastwerts der Eingabezeitreihen ist und N die Gesamtzahl der Abtastwerte in den Eingabezeitreihen ist.The state time series ID property can identify the state time series in which the assigned states are stored. The state time series can be generated by applying the set of rules to an input time series as previously described. In some embodiments, the state time series includes a state value and a timestamp for each sample of the state time series. An example of a state time series is as follows: [ Z u s t a n d 1 , Z e i t s t e m p e l 1 , Z u s t a n d 2nd , Z e i t s t e m p e l 2nd , ... Z u s t a n d N , Z e i t s t e m p e l N ]
Figure DE112018004336T5_0023
where state i is the state assigned to the i th sample of the input time series, time stamp i is the time stamp of the i th sample of the input time series, and N is the total number of samples in the input time series.

Die Zustand-Eigenschaft kann angeben, ob die Ereignisreihe aktiv (d. h. Zustand = Aktiv) oder inaktiv (d. h. Zustand = Inaktiv) ist. In manchen Ausführungsformen ist eine Ereignisreihe standardmäßig aktiv, wenn die Ereignisreihe erzeugt wird. Eine Ereignisreihe kann durch den Ereignisdienst 903 deaktiviert werden. Der Ereignisdienst 903 kann die Zustand-Eigenschaft beim Deaktivieren einer Ereignisreihe von aktiv auf inaktiv ändern.The state property can indicate whether the series of events is active (ie state = active) or inactive (ie state = inactive). In some embodiments, a series of events is active by default when the series of events is generated. A series of events can be done by the event service 903 be deactivated. The event service 903 can change the state property from active to inactive when a series of events is deactivated.

Jede Ereignisreihe kann einen Satz von Ereignissen enthalten. Jedes Ereignis kann die folgenden Eigenschaften enthalten: Ereignis-ID, Zustand, Startzeitstempel, Endzeitstempel und Ereignisreihe-ID. Die Ereignis-ID-Eigenschaft kann eine eindeutige ID sein, die vom Ereignisreihengenerator 915 erzeugt wird, wenn ein neues Ereignis erzeugt wird. Die Ereignis-ID-Eigenschaft kann verwendet werden, um ein spezielles Ereignis eindeutig zu identifizieren und das Ereignis von anderen Ereignissen in der Ereignisreihe zu unterscheiden. Die Zustand-Eigenschaft kann eine Textzeichenfolge sein, die den dem Ereignis zugeordneten Zustand definiert. Jedes Ereignis kann eindeutig einem Zustand zugeordnet sein. Die Startzeitstempel-Eigenschaft kann die Startzeit des Ereignisses angeben, während die Endzeitstempel-Eigenschaft die Endzeit des Ereignisses angibt. Die Startzeitstempel- und Endzeitstempel-Eigenschaft können Zeitstempel in einer Vielzahl von Formaten sein (z. B. 01-01-2017Z00:00:00). Die Ereignisreihe-ID-Eigenschaft kann die Ereignisreihe identifizieren, die das Ereignis enthält. Die Ereignisreihe-ID-Eigenschaft kann dieselbe eindeutige Kennung sein, die verwendet wird, um Ereignisreihen zu identifizieren und voneinander zu unterscheiden.Each series of events can contain a set of events. Each event can include the following properties: event ID, state, start timestamp, end timestamp, and event series ID. The event ID property can be a unique ID that is provided by the event series generator 915 is generated when a new event is created. The event ID property can be used to uniquely identify a specific event and to distinguish the event from other events in the series of events. The state property can be a text string that defines the state associated with the event. Each event can be uniquely assigned to a state. The start timestamp property can specify the start time of the event, while the end timestamp property specifies the end time of the event. The start timestamp and end timestamp property can be timestamps in a variety of formats (e.g. 01-01-2017Z00: 00: 00). The event series ID property can identify the event series that contains the event. The event series ID property can be the same unique identifier that is used to identify and differentiate event series.

EreignisdienstEvent service

Unter erneuter Bezugnahme auf 9 ist gezeigt, dass der Zeitreihendienst 628 einen Ereignisdienst 903 enthält. Bei manchen Ausführungsformen ist der Ereignisdienst 903 ein Teil des Zeitreihendienstes 628. Bei anderen Ausführungsformen ist der Ereignisdienst 903 ein separater Dienst (d. h. getrennt von dem Zeitreihendienst 628) innerhalb der Cloud-Gebäudeverwaltungsplattform 620. Der Ereignisdienst 903 kann dazu konfiguriert sein, Anforderungen nach Informationen bezüglich verschiedener Ereignisse und Ereignisreihen zu empfangen und zu verarbeiten. Der Ereignisdienst 903 kann auch Ereignisse und Ereignisreihen als Reaktion auf eine Anforderung von einer Anwendung oder einem Benutzer erzeugen und aktualisieren. Nachfolgend werden einige Beispiele dafür beschrieben, wie der Ereignisdienst 903 Anforderungen bearbeiten kann. Die folgende Tabelle identifiziert die Arten von Handlungen, die der Ereignisdienst 903 mit Bezug auf Ereignisse und Ereignisreihen durchführen kann: Ressource GET (Lesen) POST (erzeugen) PUT (aktualisieren) /Ereignisreihe Abrufen der Liste von Ereignisreihen Erzeugen einer oder mehrerer neuer Ereignisreihen - /Ereignisreihe/ {Ereignisreihe-ID} Lesen einer speziellen Ereignisreihe Erzeugen einer speziellen Ereignisreihe Aktualisieren der speziellen Ereignisreihe /Ereignisse Abrufen einer Liste von Ereignissen Erzeugen eines oder mehrerer neuer Ereignisse - /Ereignisse/{Ereignis-ID} Lesen eines speziellen Ereignisses Erzeugen eines speziellen Ereignisses Aktualisieren des speziellen Ereignisses Referring again to 9 is shown that the time series service 628 an event service 903 contains. In some embodiments, the event service is 903 part of the time series service 628 . In other embodiments, the event service is 903 a separate service (ie separate from the time series service 628 ) within the cloud building management platform 620 . The event service 903 can be configured to receive and process requests for information related to various events and series of events. The event service 903 can also create and update events and series of events in response to a request from an application or user. Below are some examples of how the event service works 903 Can process requests. The following table identifies the types of actions that the Event Service does 903 with regard to events and series of events: resource GET (reading) POST PUT (update) / Series of events Get the list of series of events Create one or more new series of events - / Event Series / {Event Series ID} Read a special series of events Generate a special series of events Update the special series of events / Events Get a list of events Create one or more new events - / Events / {Event ID} Read a special event Generate a special event Update the special event

Der Ereignisdienst 903 kann dazu konfiguriert sein, eine neue Ereignisreihe als Reaktion auf eine Anforderung zu erzeugen, die ein Org-ID-Attribut und ein Verarbeitungstypattribut enthält. Beispielsweise kann der Ereignisdienst 903 die folgende Anforderung empfangen:


 Post {Zeitreihe V2}/Ereignisreihe/Neu 

 {
       „Org-Id“: „Abc Inc“,
 } „Verarbeitungstyp“: „keiner“
 }
wobei „Abc Inc“ die ID der Organisation ist, zu der die neue Ereignisreihe gehören wird, und kein Verarbeitungstyp spezifiziert ist.The event service 903 can be configured to generate a new series of events in response to a request that includes an Org ID attribute and a processing type attribute. For example, the event service 903 received the following request:

 Post {time series V2} / event series / new 

  {
       "Org-Id": "Abc Inc",
 } "Processing type": "none"
 } 
where "Abc Inc" is the ID of the organization to which the new series of events will belong and no processing type is specified.

Als Reaktion auf diese Anforderung kann der Ereignisdienst 903 eine neue Ereignisreihe (d. h. einen leeren Ereignisreihencontainer) erzeugen und der Ereignisreihe eine Ereignisreihen-ID zuweisen. Beispielsweise kann der Ereignisdienst 903 auf die Anforderung wie folgt antworten:


 {
       „Ereignisreihe-ID“: „C7c157e4-303f-4b25-b182-ce7b0f8291d8“,
       „Org-Id“: „Abc Inc“,
       „Eingabezeitreihe-ID“: leer,
       „Zustandszeitreihe-ID“: leer,
       „Regeln“: leer,
       „Zustand“: „aktiv“,
       „Verarbeitungstyp“: „Stream“
In response to this request, the event service can 903 create a new series of events (ie an empty series of events container) and assign an event series ID to the series of events. For example, the event service 903 respond to the request as follows:

 {
       "Event series ID": "C7c157e4-303f-4b25-b182-ce7b0f8291d8",
       "Org-Id": "Abc Inc",
       "Entry time series ID": empty,
       "State time series ID": empty,
       "Rules": empty,
       "State": "active",
       "Processing type": "Stream" 

Bei manchen Ausführungsformen ist der Ereignisdienst 903 dazu konfiguriert, eine neue Ereignisreihe als Reaktion auf eine Anforderung zu erzeugen, die ein Org-ID-Attribut, ein Eingabezeitreihe-ID-Attribut, ein Zustandszeitreihe-ID-Attribut und ein Regeln-Attribut enthält. Beispielsweise kann der Ereignisdienst 903 die folgende Anforderung empfangen:


 {
       „Org-Id“: „Abc Inc“,
       „Eingabezeitreihe-ID“: „793c156e4-303f-4b2e-bt82-ce7b0f829uj3“, 





       „Zustandszeitreihe-ID“: „uic157e4-6r2f-4b25-b682-ct7b0f82917u“,
       „Regeln“: [
          {„VergleicheOP“: „Gt“, „Skalar“: 100, „Zustand“: „Heiß“},
          {„VergleicheOP“: „Gt“, „Skalar“: 80, „Zustand“: „Warm“},
          {„VergleicheOP“: „Gt“, „Skalar“: 50, „Zustand“: „Kühl“},
          {„VergleicheOP“: „Lte“, „Skalar“: 50, „Zustand“: „Kalt“} 
      ]
 }
wobei „793c156e4-303f-4b2e-bt82-ce7b0f829uj3“ die ID der Eingabezeitreihe ist, die zum Erzeugen der Ereignisreihe verwendet wird, „uic157e4-6r2f-4b25-b682-ct7b0f82917u“ die ID der Zustandszeitreihe ist, die die jedem Abtastwert zugewiesenen Zustände enthält, und das Attribut „Regeln“ einen Satz von Regeln enthält, die verwendet werden, um jedem Abtastwert der Eingabezeitreihe einen Zustand zuzuweisen.In some embodiments, the event service is 903 configured to generate a new series of events in response to a request that includes an Org ID attribute, an input time series ID attribute, a state time series ID attribute, and a rules attribute. For example, the event service 903 received the following request:

 {
       "Org-Id": "Abc Inc",
       "Input time series ID": "793c156e4-303f-4b2e-bt82-ce7b0f829uj3", 





       "State time series ID": "uic157e4-6r2f-4b25-b682-ct7b0f82917u",
       "Regulate": [
          {"Compare OP": "Gt", "Skalar": 100, "State": "Hot"},
          {"Compare OP": "Gt", "Skalar": 80, "State": "Warm"},
          {"Compare OP": "Gt", "Skalar": 50, "State": "Cool"},
          {"Compare OP": "Lte", "Skalar": 50, "State": "Cold"} 
      ]
 } 
where "793c156e4-303f-4b2e-bt82-ce7b0f829uj3" is the ID of the input time series that is used to generate the event series, "uic157e4-6r2f-4b25-b682-ct7b0f82917u" is the ID of the state time series that assigned to each sample , and the "rules" attribute contains a set of rules that are used to assign a state to each sample in the input time series.

Als Reaktion auf diese Anforderung kann der Ereignisdienst 903 eine neue Ereignisreihe (d. h. einen leeren Ereignisreihencontainer) erzeugen und der Ereignisreihe eine Ereignisreihen-ID zuweisen. Beispielsweise kann der Ereignisdienst 903 auf die Anforderung wie folgt antworten:

Figure DE112018004336T5_0024
Figure DE112018004336T5_0025
In response to this request, the event service can 903 create a new series of events (ie an empty series of events container) and assign an event series ID to the series of events. For example, the event service 903 respond to the request as follows:
Figure DE112018004336T5_0024
Figure DE112018004336T5_0025

Bei manchen Ausführungsformen ist der Ereignisdienst 903 dazu konfiguriert, neue Ereignisse zu einer vorhandenen Ereignisreihe hinzuzufügen. Beispielsweise kann der Ereignisdienst 903 eine Anforderung zum Hinzufügen eines neuen Ereignisses zu einer Ereignisreihe empfangen. Die Anforderung kann die Ereignisreihe-ID, die Startzeit des Ereignisses, die Endzeit des Ereignisses und den dem Ereignis zugewiesenen Zustand spezifizieren, wie in der folgenden Anforderung gezeigt ist:


Post{ZeitreiheV2}/Ereignisreihe/c7c157e4-303f-4b25-b182-ce7b0f8291d8/Ereignisse
 [
    {
       „Ereignisreihe-ID“: „c7c157e4-303f-4b25-b182-ce7b0f8291d8“,
       „Startzeitstempel“: „01-04-2017 13:48:23-05:00“,
       „Endzeitstempel“: „01-04-2017 13:54:11-05:00“,
       „Zustand“: „Hochdruckalarm“ 
    }
 ]
In some embodiments, the event service is 903 configured to add new events to an existing series of events. For example, the event service 903 received a request to add a new event to a series of events. The request can specify the series of events ID, the start time of the event, the end time of the event, and the state assigned to the event, as shown in the following request:

Post {time series V2} / event series / c7c157e4-303f-4b25-b182-ce7b0f8291d8 / events
 [
    {
       "Event series ID": "c7c157e4-303f-4b25-b182-ce7b0f8291d8",
       "Start time stamp": "01-04-2017 13: 48: 23-05: 00",
       "End time stamp": "01-04-2017 13: 54: 11-05: 00",
       "State": "High pressure alarm" 
    }
 ] 

Als Reaktion auf diese Anforderung kann der Ereignisdienst 903 eine neue Ereignis-ID für das neue Ereignis erzeugen und das neue Ereignis zu der durch die Ereignisreihe-ID „c7c157e4-303f-4b25-b182-ce7b0f8291d8“ designierten Ereignisreihe hinzufügen. Das neue Ereignis kann die Startzeit „01-04-2017 13:48:23-05:00“, die Endzeit „01-04-2017 13:54:11-05:00“ und den Zustand „Hochdruckalarm“ aufweisen, wie in der Anfrage spezifiziert ist. Bei manchen Ausführungsformen antwortet der Ereignisdienst 903 auf die Anforderung, indem er bestätigt, dass das neue Ereignis zu der Ereignisreihe hinzugefügt wurde.In response to this request, the event service can 903 generate a new event ID for the new event and add the new event to the event series designated by the event series ID "c7c157e4-303f-4b25-b182-ce7b0f8291d8". The new event can have the start time "01-04-2017 13: 48: 23-05: 00", the end time "01-04-2017 13: 54: 11-05: 00" and the state "high pressure alarm", such as is specified in the request. In some embodiments, the event service responds 903 at the request by confirming that the new event has been added to the series of events.

Bei manchen Ausführungsformen ist der Ereignisdienst 903 dazu konfiguriert, vorhandene Ereignisse in einer Ereignisreihe zu aktualisieren. Beispielsweise kann der Ereignisdienst 903 eine Anforderung empfangen, eine oder mehrere Eigenschaften eines vorhandenen Ereignisses in einer Ereignisreihe hinzuzufügen, zu aktualisieren. Die Anforderung kann die Ereignisreihe-ID, die Startzeit des aktualisierten Ereignisses, die Endzeit des aktualisierten Ereignisses und/oder den dem Ereignis zugewiesenen aktualisierten Zustand spezifizieren, wie in der folgenden Anforderung gezeigt ist:

Figure DE112018004336T5_0026
In some embodiments, the event service is 903 configured to update existing events in a series of events. For example, the event service 903 received a request to update to add one or more properties of an existing event in an event series. The request may specify the series of events ID, the start time of the updated event, the end time of the updated event, and / or the updated state assigned to the event, as shown in the following request:
Figure DE112018004336T5_0026

Als Reaktion auf diese Anforderung kann der Ereignisdienst 903 die spezifizierten Eigenschaften des durch die Ereignisreihe-ID „c7c157e4-303f-4b25-b182-ce7b0f8291d8“ designierten Ereignisses aktualisieren. Das aktualisierte Ereignis kann die Startzeit „01-04-2017 13:48:23-05:00“, die Endzeit „01-04-2017 13:54:11-05:00“ und den Zustand „Hochdruckalarm“ aufweisen, wie in der Anfrage spezifiziert ist. Bei manchen Ausführungsformen antwortet der Ereignisdienst 903 auf die Anforderung, indem er bestätigt, dass das Ereignis aktualisiert wurde.In response to this request, the event service can 903 update the specified properties of the event designated by the event series ID "c7c157e4-303f-4b25-b182-ce7b0f8291d8". The updated event can have the start time "01-04-2017 13: 48: 23-05: 00", the end time "01-04-2017 13: 54: 11-05: 00" and the state "High pressure alarm", such as is specified in the request. In some embodiments, the event service responds 903 to the request by confirming that the event has been updated.

Bei manchen Ausführungsformen ist der Ereignisdienst 903 dazu konfiguriert, die Ereignisse einer Ereignisreihe zu lesen. Beispielsweise kann der Ereignisdienst 903 eine Anforderung empfangen, alle der Ereignisse zu identifizieren, die einer Ereignisreihe zugewiesen sind. Die Anforderung kann als eine Get-Anforderung wie folgt spezifiziert werden:

Figure DE112018004336T5_0027
In some embodiments, the event service is 903 configured to read the events of a series of events. For example, the event service 903 received a request to identify all of the events associated with a series of events. The request can be specified as a get request as follows:
Figure DE112018004336T5_0027

Als Reaktion auf diese Anforderung kann der Ereignisdienst 903 nach allen Ereignissen der spezifizierten Ereignisreihe suchen und kann eine Liste der identifizierten Ereignisse zurückgeben. Eine Beispielantwort, die durch den Ereignisdienst 903 bereitgestellt werden kann, ist wie folgt:

Figure DE112018004336T5_0028
wobei „g9c197e4-003f-4u25-b182-se7b0f81945y“ die Ereignis-ID eines identifizierten Ereignisses ist, das den Suchparametern entspricht. Die Antwort kann die Ereignisreihe-ID-, Startzeitstempel-, Endzeitstempel und Zustand-Eigenschaften jedes identifizierten Ereignisses spezifizieren.In response to this request, the event service can 903 search for all events in the specified series of events and can return a list of the identified events. A sample response provided by the event service 903 can be provided is as follows:
Figure DE112018004336T5_0028
where "g9c197e4-003f-4u25-b182-se7b0f81945y" is the event ID of an identified event that matches the search parameters. The response can specify the event series ID, start timestamp, end timestamp, and state properties of each identified event.

Bei manchen Ausführungsformen ist der Ereignisdienst 903 dazu konfiguriert, nach den Ereignissen einer Ereignisreihe zu suchen, die einen speziellen Zustand aufweisen. Beispielsweise kann der Ereignisdienst 903 eine Anforderung empfangen, alle der Ereignisse zu identifizieren, die einer speziellen Ereignisreihe zugewiesen sind und die einen speziellen Zustand aufweisen. Die Anforderung kann als eine Get-Anforderung wie folgt spezifiziert werden:


 Get {ZeitreiheV2}/Ereignisreihe/c7c157e4-303f-4b25-b182-
 ce7b0f8291d8/Ereignisse?Zustand=Heiß
wobei „c7c157e4-303f-4b25-b182-ce7b0f8291d8“ die Ereignisreihe-ID einer bestimmten Ereignisreihe ist und „Zustand=Heiß“ spezifiziert, dass die Suche nur Ereignisse der Ereignisreihe zurückgeben soll, die den Zustand „Heiß“ aufweisen. Als Reaktion auf diese Anforderung kann der Ereignisdienst 903 nach allen entsprechenden Ereignissen suchen (d. h. nach Ereignissen der spezifizierten Ereignisreihe, die den spezifizierten Zustand aufweisen) und kann eine Liste von Ereignissen zurückgeben, die den Suchparametern entsprechen.In some embodiments, the event service is 903 configured to search for the events in a series of events that have a specific state. For example, the event service 903 received a request to identify all of the events associated with a particular series of events and having a particular state. The request can be specified as a get request as follows:

 Get {time series V2} / event series / c7c157e4-303f-4b25-b182-
 ce7b0f8291d8 / Events? Condition = Hot 
where "c7c157e4-303f-4b25-b182-ce7b0f8291d8" is the event series ID of a specific event series and "State = Hot" specifies that the search should only return events of the event series that have the state "Hot". In response to this request, the event service can 903 search for all corresponding events (ie, events of the specified series of events that have the specified state) and can return a list of events that match the search parameters.

Bei manchen Ausführungsformen ist der Ereignisdienst 903 dazu konfiguriert, nach den Ereignissen einer Ereignisreihe zu suchen, die eine Startzeit oder eine Endzeit aufweisen, die einem gegebenen Wert entspricht. Beispielsweise kann der Ereignisdienst 903 eine Anforderung empfangen, alle der Ereignisse einer speziellen Ereignisreihe zu identifizieren, die eine Startzeit oder Endzeit aufweisen, die einem spezifizierten Zeitstempel entspricht. Die Anforderung kann als eine Get-Anforderung wie folgt spezifiziert werden:


 Get {ZeitreiheV2}/Ereignisreihe/c7c157e4-303f-4b25-b182-
 ce7b0f8291 d8/EReignisse?Starrzeit=01 -04-2017%2010:00:00-05:00&Endzeit=01 -04-
 2017%2010:00:00-05:00
wobei „c7c157e4-303f-4b25-b182-ce7b0f8291d8“ die Ereignisreihe-ID einer speziellen Ereignisreihe ist und die Parameter „Startzeit“ und „Endzeit“ die Startzeit und Endzeit des Ereignisses spezifizieren. Als Reaktion auf diese Anforderung kann der Ereignisdienst 903 nach allen entsprechenden Ereignissen suchen (d. h. (Startzeitstempel des Ereignisses < Startzeit und Endzeitstempel des Ereignisses > Endzeit) und kann eine Liste von Ereignissen zurückgeben, die den Suchparametern entsprechen. In some embodiments, the event service is 903 configured to search for the events in a series of events that have a start time or an end time that corresponds to a given value. For example, the event service 903 receive a request to identify all of the events of a particular series of events that have a start time or end time that corresponds to a specified time stamp. The request can be specified as a get request as follows:

 Get {time series V2} / event series / c7c157e4-303f-4b25-b182-
 ce7b0f8291 d8 / E Events? Stare time = 01 -04-2017% 2010: 00: 00-05: 00 & end time = 01 -04-
 2017% 2010: 00: 00-05: 00 
where “c7c157e4-303f-4b25-b182-ce7b0f8291d8” is the event series ID of a special event series and the parameters “start time” and “end time” specify the start time and end time of the event. In response to this request, the event service can 903 search for all corresponding events (ie (event start time stamp <start time and event end time stamp> end time) and can return a list of events that match the search parameters.

Bei manchen Ausführungsformen ist der Ereignisdienst 903 dazu konfiguriert, nach den Ereignissen einer Ereignisreihe zu suchen, die einen Zeitbereich aufweisen, der mit einem spezifizierten Zeitbereich (wenigstens teilweise) überlappt. Beispielsweise kann der Ereignisdienst 903 eine Anforderung empfangen, alle der Ereignisse einer speziellen Ereignisreihe zu identifizieren, die (1) eine Ereignisstartzeit vor einer spezifizierten Startzeit und eine Ereignisendzeit nach der spezifizierten Startzeit oder (2) ein Ereignisstartzeit vor einer spezifizierten Endzeit und Ereignisendzeit nach der spezifizierten Endzeit aufweisen. Die Anforderung kann als eine Get-Anforderung wie folgt spezifiziert werden:


 Get {ZeitreiheV2}/Ereignisreihe/c7c157e4-303f-4b25-b182-
 ce7b0f8291 d8/EReignisse?Starrzeit=01 -04-2017%2010:00:00-05:00&Endzeit=01 -04-
 2017%2011:59:00-05:00
wobei „c7c157e4-303f-4b25-b182-ce7b0f8291d8“ die Ereignisreihe-ID einer speziellen Ereignisreihe ist und die Parameter „Startzeit“ und „Endzeit“ die Startzeit und Endzeit des Ereignisses spezifizieren. Als Reaktion auf diese Anforderung kann der Ereignisdienst 903 nach allen Ereignissen suchen, die den folgenden Kriterien entsprechen:
Figure DE112018004336T5_0029
und kann eine Liste von Ereignissen zurückgeben, die diesen Kriterien entsprechen.In some embodiments, the event service is 903 configured to search for the events of a series of events that have a time range that overlaps (at least partially) with a specified time range. For example, the event service 903 receive a request to identify all of the events of a particular series of events that have (1) an event start time before a specified start time and an event end time after the specified start time, or (2) an event start time before a specified end time and event end time after the specified end time. The request can be specified as a get request as follows:

 Get {time series V2} / event series / c7c157e4-303f-4b25-b182-
 ce7b0f8291 d8 / E Events? Stare time = 01 -04-2017% 2010: 00: 00-05: 00 & end time = 01 -04-
 2017% 2011: 59: 00-05: 00 
where “c7c157e4-303f-4b25-b182-ce7b0f8291d8” is the event series ID of a special event series and the parameters “start time” and “end time” specify the start time and end time of the event. In response to this request, the event service can 903 search for all events that meet the following criteria:
Figure DE112018004336T5_0029
and can return a list of events that meet these criteria.

Bei manchen Ausführungsformen ist der Ereignisdienst 903 dazu konfiguriert, nach Ereignissen einer Ereignisreihe zu suchen, die einen speziellen Zustand und einen Zeitbereich aufweisen, der mit einem gegebenen Zeitbereich (wenigstens teilweise) überlappt. Beispielsweise kann der Ereignisdienst 903 eine Anforderung empfangen, alle der Ereignisse einer speziellen Ereignisreihe zu identifizieren, die einen speziellen Zustand und entweder (1) eine Ereignisstartzeit vor einer spezifizierten Startzeit und eine Ereignisendzeit nach der spezifizierten Startzeit oder (2) ein Ereignisstartzeit vor einer spezifizierten Endzeit und Ereignisendzeit nach der spezifizierten Endzeit aufweisen. Die Anforderung kann als eine Get-Anforderung wie folgt spezifiziert werden:

Figure DE112018004336T5_0030
wobei „c7c157e4-303f-4b25-b182-ce7b0f8291d8“ die Ereignisreihe-ID einer speziellen Ereignisreihe ist, der Parameter „Zustand“ einen speziellen Zustand spezifiziert und die Parameter „Startzeit“ und „Endzeit“ die Startzeit und Endzeit des Ereignisses spezifizieren. Als Reaktion auf diese Anforderung kann der Ereignisdienst 903 nach allen Ereignissen suchen, die den folgenden Kriterien entsprechen:
Figure DE112018004336T5_0031
und kann eine Liste von Ereignissen zurückgeben, die diesen Kriterien entsprechen.In some embodiments, the event service is 903 configured to search for events in a series of events that have a particular state and a time range that overlaps (at least partially) with a given time range. For example, the event service 903 receive a request to identify all of the events of a particular series of events that have a particular state and either (1) an event start time before a specified start time and an event end time after the specified start time, or (2) an event start time before a specified end time and event end time after the specified Show end time. The request can be specified as a get request as follows:
Figure DE112018004336T5_0030
where “c7c157e4-303f-4b25-b182-ce7b0f8291d8” is the event series ID of a special event series, the parameter “state” specifies a special state and the parameters “start time” and “end time” specify the start time and end time of the event. In response to this request, the event service can 903 search for all events that meet the following criteria:
Figure DE112018004336T5_0031
and can return a list of events that meet these criteria.

Gerichtete azyklische GraphenDirected acyclic graphs

Nun unter Bezugnahme auf 20A ist ein Beispiel für einen DAG 2000, der durch den DAG-Generator 920 erzeugt werden kann, gemäß einem Ausführungsbeispiel gezeigt. Der DAG 2000 ist als strukturierter Baum gezeigt, der einen Graphen des Datenflusses anstelle einer formale Skriptsprache repräsentiert. Blöcke 2002 und 2004 repräsentieren die Eingabezeitreihen, die durch eine Zeitreihen-ID (z. B. ID 123, ID 456 usw.) spezifiziert werden können. Die Blöcke 2006 und 2008 sind Funktionsblöcke, die Datenbereinigungsoperationen repräsentieren. Gleichermaßen ist Block 2010 ein Funktionsblock, der eine wöchentliche Rollup-Aggregation repräsentiert, und Block ist 2012 ein Funktionsblock, der eine Additionsoperation repräsentiert. Die Blöcke 2014 und 2016 repräsentieren Speicherungsoperationen, die angeben, wo die Ausgabe des DAG 2000 gespeichert werden soll (z. B. lokale Speicherung, gehostete Speicherung usw.).Now referring to 20A is an example of a DAG 2000 by the DAG generator 920 can be generated, shown according to an embodiment. The DAG 2000 is shown as a structured tree that represents a graph of data flow instead of a formal scripting language. blocks 2002 and 2004 represent the input time series identified by a time series ID (e.g. ID 123 , ID 456 etc.) can be specified. The blocks 2006 and 2008 are function blocks that Represent data cleansing operations. Likewise, block 2010 a function block representing a weekly rollup aggregation, and block 2012 is a function block representing an addition operation. The blocks 2014 and 2016 represent store operations that indicate where the output of the DAG 2000 should be saved (e.g. local storage, hosted storage, etc.).

In dem DAG 2000 repräsentieren die Pfeile, die die Blöcke 2002-2016 verbinden, den Datenfluss und geben die Sequenz an, in der die durch die Funktionsblöcke definierten Operationen durchgeführt werden sollen. Beispielsweise wird die durch Block 2006 repräsentierte Bereinigungsoperation die erste Operation sein, die an der durch Block 2002 repräsentierten Zeitreihe durchgeführt wird. Die Ausgabe der Bereinigungsoperation bei Block 2006 wird dann als eine Eingabe an sowohl die durch Block 2010 repräsentierte Aggregationsoperation als auch die durch Block 2012 repräsentierte Additionsoperation geliefert. Gleichermaßen wird die durch Block 2008 repräsentierte Bereinigungsoperation die erste Operation sein, die an der durch Block 2004 repräsentierten Zeitreihen durchgeführt wird. Die Ausgabe der Bereinigungsoperation bei Block 2008 wird dann als eine Eingabe an die durch Block 2012 repräsentierte Additionsoperation geliefert.In the DAG 2000 represent the arrows representing the blocks 2002-2016 connect, the data flow and specify the sequence in which the operations defined by the function blocks are to be carried out. For example, the block 2006 represented cleanup operation be the first operation performed on the by block 2002 represented time series is carried out. The output of the cleanup operation at block 2006 is then used as an input to both the block 2010 represented aggregation operation as well as that by block 2012 represented addition operation. Likewise, the block 2008 represented cleanup operation be the first operation performed on the by block 2004 represented time series is carried out. The output of the cleanup operation at block 2008 is then used as an input to the through block 2012 represented addition operation.

Bei manchen Ausführungsformen kann der DAG 2000 andere DAGs als Eingaben referenzieren. Die Zeitreihenverarbeitungs-Engine 904 kann die DAGs zu größeren Gruppen zusammenfügen. Der DAG 2000 kann sowohl Skalaroperatoren (z. B. diese Funktion an diesem Abtastwert zu diesem Zeitstempel ausführen) als auch Aggregatfensteroperatoren (z. B. diese Funktion über alle Werte in der Zeitreihe ab diesem Zeitfenster anwenden) unterstützen. Die Zeitfenster können beliebig sein und sind nicht auf feste Aggregationsfenster beschränkt. Logische Operatoren können verwendet werden, um Regeln auszudrücken und Fehlerdetektionsalgorithmen zu implementieren. Bei manchen Ausführungsformen unterstützt der DAG 2000 benutzerdefinierte Funktionen und benutzerdefinierte Aggregate.In some embodiments, the DAG 2000 reference other DAGs as inputs. The time series processing engine 904 can combine the DAGs into larger groups. The DAG 2000 can support scalar operators (e.g. execute this function on this sample at this time stamp) as well as aggregate window operators (e.g. use this function over all values in the time series from this time window). The time windows can be arbitrary and are not limited to fixed aggregation windows. Logical operators can be used to express rules and to implement error detection algorithms. In some embodiments, the DAG supports 2000 custom functions and custom aggregates.

Bei manchen Ausführungsformen wird der DAG 2000 basierend auf einer Benutzereingaben erzeugt. Ein Benutzer kann verschiedene Eingabeblöcke 2002-2004, Funktionsblöcke 2006-2012 und Ausgabeblöcke 2014-2016 per Drag&Drop in den DAG 2000 ziehen und sie mit Pfeilen verbinden, um eine Sequenz von Operationen zu definieren. Der Benutzer kann die Operationen bearbeiten, um verschiedene Parameter der Operationen zu definieren. Beispielsweise kann der Benutzer Parameter, wie etwa Ober- und Untergrenzen für die Datenbereinigungsoperationen in den Blöcken 2006-2008 und ein Aggregationsintervall für die Aggregationsoperation in Block 2010, definieren. Der DAG 2000 kann in einem grafischen Drag&Drop-Fluss-Editor erzeugt und bearbeitet werden, ohne dass der Benutzer irgendeinen formalen Code schreiben oder bearbeiten muss. Bei manchen Ausführungsformen ist der DAG-Generator 920 dazu konfiguriert, automatisch den formalen Code, der von den Zeitreihenoperatoren 906 verwendet wird, basierend auf dem DAG 2000 zu erzeugen.In some embodiments, the DAG 2000 generated based on user input. A user can use different input blocks 2002-2004 , Function blocks 2006-2012 and output blocks 2014-2016 via drag & drop in the DAG 2000 drag and link them with arrows to define a sequence of operations. The user can edit the operations to define various parameters of the operations. For example, the user can set parameters such as upper and lower limits for the data cleansing operations in the blocks 2006-2008 and an aggregation interval for the aggregation operation in block 2010 , define. The DAG 2000 can be created and edited in a graphical drag and drop flow editor without the user having to write or edit any formal code. In some embodiments, the DAG generator is 920 to automatically configure the formal code used by the time series operators 906 is used based on the DAG 2000 to create.

Nun unter Bezugnahme auf 20B ist ein Beispiel für einen Code 2050, der durch den DAG-Generator 920 erzeugt werden kann, gemäß einem Ausführungsbeispiel gezeigt. Der Code 2050 ist als Sammlung von JSON-Objekten 2052-2056 gezeigt, die die verschiedenen durch den DAG 2000 definierten Operationen repräsentieren. Jedes JSON-Objekt entspricht einem der Funktionsblöcke in dem DAG 2000 und spezifiziert die Eingaben/Quellen, die Berechnung und die Ausgaben jedes Blocks. Beispielsweise entspricht das Objekt 2052 der durch Block 2006 repräsentierten Bereinigungsoperation und definiert die Eingabezeitreihen (d. h. „123_Raw“), die spezielle durchzuführende Bereinigungsoperation (d. h. „BoundsLimitingCleanseOP“), die Parameter der Bereinigungsoperation (d. h. „Upperbound“ und „Lowerbound“) und die Ausgaben der Bereinigungsoperation (d. h. „123_Cleanse“ und „BLCleanseFlag“).Now referring to 20B is an example of a code 2050 by the DAG generator 920 can be generated, shown according to an embodiment. The code 2050 is a collection of JSON objects 2052-2056 shown the different by the DAG 2000 represent defined operations. Each JSON object corresponds to one of the function blocks in the DAG 2000 and specifies the inputs / sources, calculation and outputs of each block. For example, the object matches 2052 the by block 2006 represented cleanup operation and defines the input time series (ie "123_Raw"), the special cleanup operation to be performed (ie "BoundsLimitingCleanseOP"), the parameters of the cleanup operation (ie "Upperbound" and "Lowerbound") and the output of the cleansing operation (ie "123_Cleanse" and " BLCleanseFlag “).

Gleichermaßen entspricht das Objekt 2054 der durch Block 2010 repräsentierten Aggregationsoperation und definiert die Eingabezeitreihe (d. h. „123_Cleanse“), die durchzuführende Aggregationsoperation (d. h. „AggregateOP“), den Parameter der Aggregationsoperation (d. h. „interval“: „week“) und die Ausgabe der Aggregationsoperation (d. h. „123_WeeklyRollup“). Das Objekt 2056 entspricht der durch Block 2012 repräsentierten Additionsoperation und definiert die Eingabezeitreihe (d. h. „123_Cleanse“ und „456_Cleanse“), die durchzuführende Addition (d. h. „AddOP“) und die Ausgabe der Additionsoperation (d. h. „123+456“). Obwohl dies nicht speziell in 20B kann gezeigt ist, kann der Code 2050 ein Objekt für jeden Funktionsblock in dem DAG 2000 enthalten.The object corresponds equally 2054 the by block 2010 represents the aggregation operation and defines the input time series (ie "123_Cleanse"), the aggregation operation to be performed (ie "AggregateOP"), the parameter of the aggregation operation (ie "interval": "week") and the output of the aggregation operation (ie "123_WeeklyRollup"). The object 2056 corresponds to that by block 2012 represented addition operation and defines the input time series (ie "123_Cleanse" and "456_Cleanse"), the addition to be performed (ie "AddOP") and the output of the addition operation (ie "123 + 456"). Although not specifically in 20B can shown the code 2050 an object for each function block in the DAG 2000 contain.

Vorteilhafterweise bieten die von den DAGs definierten deklarativen Ansichten eine umfassende Ansicht über die Operationen, die auf verschiedene Eingabezeitreihen angewendet werden. Dies liefert eine Flexibilität, den durch einen DAG definierten Arbeitsfluss zur Abfragezeit (z. B. wenn eine Anforderung für abgeleitete Zeitreihendaten empfangen wird) oder vor der Abfragezeit (z. B. wenn neue Rohdatenabtastwerte als Reaktion auf ein definiertes Ereignis oder einen definierten Auslöser usw. empfangen werden) auszuführen. Diese Flexibilität ermöglicht es, dass die Zeitreihenverarbeitungs-Engine 904 manche oder alle ihrer Operationen im Voraus und/oder als Reaktion auf eine Anforderung nach speziellen abgeleiteten Datenzeitreihen auszuführen.Advantageously, the declarative views defined by the DAGs provide a comprehensive view of the operations that are applied to different input time series. This provides flexibility to define the workflow defined by a DAG at the polling time (e.g. when a request for derived time series data is received) or before the polling time (e.g. when new raw data samples respond to a defined event or trigger, etc . are received). This flexibility allows the time series processing engine 904 some or all of them Perform operations in advance and / or in response to a request for special derived data time series.

EntitätsgraphEntity graph

Nun unter Bezugnahme auf 21A ist ein Entitätsgraph 2100 gemäß manchen Ausführungsformen gezeigt. Bei manchen Ausführungsformen wird der Entitätsgraph 2100 von dem Datenkollektor 612 erzeugt oder verwendet, wie unter Bezugnahme auf 6 beschrieben ist. Das Entitätsgraph 2100 beschreibt, wie die Sammlung von Vorrichtungen und Bereichen organisiert ist und wie sich die verschiedenen Vorrichtungen und Bereiche in Zusammenhang stehen. Beispielsweise wird gezeigt, dass der Entitätsgraph 2100 eine Organisation 2102, einen Bereich 2104, ein System 2106, einen Punkt 2108 und eine Zeitreihe 2109 enthält. Die Pfeile, die die Organisation 2102, den Bereich 2104, das System 2106, den Punkt 2108 und die Zeitreihe 2109 miteinander verbinden, identifizieren die Beziehungen zwischen solchen Entitäten. Bei manchen Ausführungsformen werden die Beziehungen als Attribute der durch das Attribut beschriebenen Entität gespeichert.Now referring to 21A is an entity graph 2100 shown in accordance with some embodiments. In some embodiments, the entity graph 2100 from the data collector 612 created or used as referring to FIG 6 is described. The entity graph 2100 describes how the collection of devices and areas is organized and how the various devices and areas are related. For example, it is shown that the entity graph 2100 an organisation 2102 , an area 2104 , a system 2106 , one point 2108 and a time series 2109 contains. The arrows representing the organization 2102 , the area 2104 , the system 2106 , the point 2108 and the time series 2109 connect with each other, identify the relationships between such entities. In some embodiments, the relationships are stored as attributes of the entity described by the attribute.

Es wird gezeigt, dass die Organisation 2102 ein „Enthält Nachfahren“-Attribut 2110, ein „Eltern-Vorfahren“-Attribut 2122112, ein „Enthält“-Attribut 2142114, ein „Befindet sich in“-Attribut 2162116, ein „Belegt durch“-Attribut 2182118 und ein „Belegt durch“-Attribut 2122 enthält. Das „Enthält Nachfahren“-Attribut 2110 identifiziert beliebige Nachfahrenentitäten, die in der Organisation 2102 enthalten sind. Das „Elternvorfahren“-Attribut 2122112 identifiziert beliebige Eltementitäten für die Organisation 2102. Das „Enthält“-Attribut 2142114 identifiziert beliebige andere Organisationen, die innerhalb der Organisation 2102 enthalten sind. Das Sternchen neben dem „Enthält“-Attribut 2142114 gibt an, dass die Organisation 2102 eine beliebige Anzahl anderer Organisationen enthalten kann. Das „Befindet sich in“-Attribut 2162116 identifiziert eine andere Organisation, innerhalb der sich die Organisation 2102 befindet. Die Zahl 1 neben dem „Befindet sich in“-Attribut 2162116 gibt an, dass sich die Organisation 2102 in genau einer anderen Organisation befinden kann. Das „Belegt“-Attribut 2122 identifiziert beliebige Bereiche, die von der Organisation 2102 belegt werden. Das Sternchen neben dem „Belegt“-Attribut 2122 gibt an, dass die Organisation 2102 eine beliebige Anzahl an Bereichen belegen kann.It is shown that the organization 2102 a "contains descendants" attribute 2110 , a “Parent Ancestor” attribute 2122112, a “Contains” attribute 2142114, a “Located in” attribute 2162116, a “Occupied by” attribute 2182118 and a “Occupied by” attribute 2122 contains. The "contains descendants" attribute 2110 identifies any descendant entities that exist in the organization 2102 are included. The "parent ancestor" attribute 2122112 identifies any elementalities for the organization 2102 . The "Contains" attribute 2142114 identifies any other organization that is within the organization 2102 are included. The asterisk next to the "Contains" attribute 2142114 indicates that the organization 2102 can contain any number of other organizations. The "Located in" attribute 2162116 identifies another organization within which the organization is located 2102 located. The number 1 next to the "Located in" attribute 2162116 indicates that the organization 2102 can be in exactly one other organization. The "busy" attribute 2122 identifies any areas affected by the organization 2102 be occupied. The asterisk next to the "busy" attribute 2122 indicates that the organization 2102 can occupy any number of areas.

Es wird gezeigt, dass der Bereich 2104 ein „Belegt durch“-Attribut 2202120, ein „Belegt durch Vorfahren“-Attribut 2182118, ein „Enthält Bereichsnachfahren“-Attribut 2124, ein „Befindet sich in Vorfahren“-Attribut 2126, ein „Enthält Bereiche“-Attribut 2128, ein „Befindet sich in“-Attribut 2130, ein „Versorgt durch Systeme“-Attribut 2138 und ein „Versorgt durch Systemnachfahren“-Attribut 2134 enthält. Das „Belegt durch“-Attribut 2202120 identifiziert eine Organisation, die durch den Bereich 2104 belegt wird. Die Zahl 1 neben dem „Belegt durch“-Attribut 2202120 gibt an, dass der Bereich 2104 durch genau eine Organisation belegt werden kann. Das „Belegt durch Vorfahren“-Attribut 2182118 identifiziert einen oder mehrere Vorfahren der Organisation 2102, die durch den Bereich 2104 belegt werden. Das Sternchen neben dem „Belegt durch Vorfahren“-Attribut 2182118 gibt an, dass der Bereich 2104 eine beliebige Anzahl an Vorfahren belegt werden kann.It is shown that the area 2104 a "Used by" attribute 2202120, a "Used by ancestor" attribute 2182118, a "Contains area descendant" attribute 2124 , an "is in ancestor" attribute 2126 , a "Contains areas" attribute 2128 , a "is in" attribute 2130 , a "powered by systems" attribute 2138 and a "powered by system descendants" attribute 2134 contains. The "Occupied By" attribute 2202120 identifies an organization by the area 2104 is occupied. The number 1 next to the "Occupied by" attribute 2202120 indicates that the range 2104 can be documented by exactly one organization. The "Occupied by Ancestors" attribute 2182118 identifies one or more ancestors of the organization 2102 going through the area 2104 be occupied. The asterisk next to the "Used by ancestor" attribute 2182118 indicates that the range 2104 any number of ancestors can be occupied.

Das „Enthält Bereichsnachfahren“-Attribut 2124identifiziert beliebige Nachfahren für den Bereich 2104, die innerhalb des Bereichs 2104 enthalten sind. Das „Befindet sich in Vorfahren“-Attribut 2126 identifiziert beliebige Vorfahren des Bereichs 2104, innerhalb dessen sich der Bereich 2104 befindet. Das „Enthält Bereiche“-Attribut 2128 identifiziert beliebige andere Bereiche, die innerhalb des Bereichs 2104 enthalten sind. Das Sternchen neben dem „Enthält Bereiche“-Attribut 2128 gibt an, dass der Bereich 2104 eine beliebige Anzahl anderer Bereiche enthalten kann. Das „Befindet sich in“-Attribut 2130 identifiziert einen andere Bereich, innerhalb dessen sich der Bereich 2104 befindet. Die Zahl 1 neben dem „Befindet sich in“-Attribut 2130 gibt an, dass sich der Bereich 2104 in genau einem anderen Bereich befinden kann. Das „Versorgt durch Systeme“-Attribut 2138 identifiziert beliebige Systeme, die den Bereich 2104 versorgen. Das Sternchen neben dem „Versorgt durch Systeme“-Attribut 2138 gibt an, dass der Bereich 2104 durch eine beliebige Anzahl an Systemen versorgt werden kann. Das „Versorgt durch Systemnachfahren“-Attribut 2134 identifiziert beliebige Nachfahrensysteme, die den Bereich 2104 versorgen. Das Sternchen neben dem „Versorgt durch Nachfahrensysteme“-Attribut 2134 gibt an, dass der Bereich 2104 durch eine beliebige Anzahl an Nachfahrensysteme versorgt werden kann.The "Contain area descendants" attribute 2124 identifies any descendants for the area 2104 that are within the range 2104 are included. The "is in ancestors" attribute 2126 identifies any ancestors of the area 2104 within which the area 2104 located. The "Contains Areas" attribute 2128 identifies any other areas that are within the area 2104 are included. The asterisk next to the "Contains areas" attribute 2128 indicates that the area 2104 can contain any number of other areas. The "is in" attribute 2130 identifies another area within which the area is located 2104 located. The number 1 next to the "is in" attribute 2130 indicates that the area 2104 can be in exactly another area. The "Provided by Systems" attribute 2138 identifies any systems that span the area 2104 supply. The asterisk next to the "Provided by systems" attribute 2138 indicates that the area 2104 can be supplied by any number of systems. The "Provided by System Descendants" attribute 2134 identifies any descendant systems that the area 2104 supply. The asterisk next to the "Provided by Descendant Systems" attribute 2134 indicates that the area 2104 can be supplied by any number of descendant systems.

Es wird gezeigt, dass das System 2106 ein „Versorgt Bereiche“-Attribut 2136, ein „Versorgt Bereichsvorfahren“-Attribut 2132, ein „Subsystemnachfahren“-Attribut 2140, ein „Teil des Vorfahrens“-Attribut 2142, ein „Subsystem“-Attribut 2144, ein „Teil von“-Attribut 2146 und ein „Punkte“-Attribut 2150 enthält. Das „Versorgt Bereiche“-Attribut 2136 identifiziert beliebige Bereiche, die durch das System 2106 versorgt werden. Das Sternchen neben dem „Versorgt Bereiche“-Attribut 2136 gibt an, dass das System 2106 eine beliebige Anzahl an Bereichen versorgen kann. Das „Versorgt Bereichsvorfahren“-Attribut 2132 identifiziert beliebige Vorfahren des Bereichs 2104, die durch das System 2106 versorgt werden. Das Sternchen neben dem „Versorgt Vorfahrenbereiche“-Attribut 2132 gibt an, dass das System 2106 eine beliebige Anzahl an Vorfahrenbereiche versorgen kann.It is shown that the system 2106 a "Supplies Areas" attribute 2136 , a "Provided Area Ancestor" attribute 2132 , a "subsystem descendant" attribute 2140 , a "part of the ancestor" attribute 2142 , a "subsystem" attribute 2144 , a "part of" attribute 2146 and a "points" attribute 2150 contains. The "Supplies Areas" attribute 2136 identifies any areas through the system 2106 be supplied. The asterisk next to the "Supplies Areas" attribute 2136 indicates that the system 2106 can supply any number of areas. The “Area Ancestor” attribute 2132 identifies any ancestors of the area 2104 by the system 2106 be supplied. The asterisk next to the "Supplied Ancestor Areas Attribute 2132 indicates that the system 2106 can supply any number of ancestor areas.

Das „Subsystemnachfahren“-Attribut 2140 identifiziert beliebige Subsystemnachfahren anderer Systeme, die innerhalb des Systems 2106 enthalten sind. Das „Teil von Vorfahren“-Attribut 2142 identifiziert beliebige Vorfahren des Systems 2106, von denen das System 2106 ein Teil ist. Das „Subsystem“-Attribut 2144 identifiziert beliebige Subsysteme, die innerhalb des Systems 2106 enthalten sind. Das Sternchen neben dem „Subsystem“-Attribut 2144 gibt an, dass das System 2106 eine beliebige Anzahl an Subsystemen enthalten kann. Das „Teil von“-Attribut 2146 identifiziert beliebige andere Systeme, von denen das System 2106 ein Teil ist. Die Zahl 1 neben dem „Teil von“-Attribut 2146 gibt an, dass das System 2106 Teil von genau einem anderen System sein kann. Das „Punkte“-Attribut 2150 identifiziert beliebige Datenpunkte, die mit dem System 2106 assoziiert sind. Das Sternchen neben dem „Punkte“-Attribut 2150 gibt an, dass eine beliebige Anzahl an Datenpunkten dem System 2106 zugeordnet sein kann.The "Subsystem descendant" attribute 2140 identifies any subsystem descendants of other systems that are within the system 2106 are included. The "part of ancestors" attribute 2142 identifies any ancestors of the system 2106 , of which the system 2106 is part. The "subsystem" attribute 2144 identifies any subsystem within the system 2106 are included. The asterisk next to the "subsystem" attribute 2144 indicates that the system 2106 can contain any number of subsystems. The "part of" attribute 2146 identifies any other system from which the system 2106 is part. The number 1 next to the "part of" attribute 2146 indicates that the system 2106 Can be part of exactly another system. The "points" attribute 2150 identifies any data points associated with the system 2106 are associated. The asterisk next to the "points" attribute 2150 indicates that any number of data points the system 2106 can be assigned.

Es ist gezeigt, dass der Punkt 2108 ein „Verwendet durch System“-Attribut 2148 enthält. Das Sternchen neben dem „Verwendet durch System“-Attribut 2148 gibt an, dass der Punkt 2108 durch eine beliebige Anzahl an Systemen verwendet werden kann. Es wird auch gezeigt, dass Punkt 2108 ein „Verwendet durch Zeitreihe“-Attribut 2154 enthält. Das Sternchen neben dem von „Verwendet durch Zeitreihe“-Attribut 2154 gibt an, dass der Punkt 2108 von einer beliebigen Anzahl an Zeitreihen (z. B. Rohdatenzeitreihen, Virtueller-Punkt-Zeitreihen, Daten-Rollup-Zeitreihen usw.) verwendet werden kann. Beispielsweise können mehrere Virtueller-Punkt-Zeitreihen auf demselben tatsächlichen Datenpunkt 2108 basieren. Bei manchen Ausführungsformen wird das „Verwendet durch Zeitreihe“-Attribut 2154 als eine Liste von Zeitreihen behandelt, die Wertänderungen des Datenpunkts 2108 subskribieren. Wenn sich der Wert des Punkts 2108 ändert, können die in dem „Verwendet durch Zeitreihe“-Attribut 2154 aufgelisteten Zeitreihen identifiziert und automatisch aktualisiert werden, um den geänderten Wert des Punkts 2108 wiederzugeben.It is shown that the point 2108 a "Used by system" attribute 2148 contains. The asterisk next to the "Used by system" attribute 2148 indicates that the point 2108 can be used by any number of systems. It is also shown that point 2108 a "Used by time series" attribute 2154 contains. The asterisk next to the "Used by time series" attribute 2154 indicates that the point 2108 any number of time series (e.g. raw data time series, virtual point time series, data rollup time series, etc.) can be used. For example, multiple virtual point time series on the same actual data point 2108 based. In some embodiments, the "Used by time series" attribute is used 2154 treated as a list of time series, the changes in value of the data point 2108 subscribe. If the value of the point 2108 Changes can be made in the "Used by Time Series" attribute 2154 listed time series can be identified and automatically updated to reflect the changed value of the point 2108 play.

Es ist gezeigt, dass die Zeitreihe 2109 ein „Verwendet Punkt“-Attribut 2152 enthält. Das Sternchen neben dem „Verwendet Punkt“-Attribut 2152 gibt an, dass die Zeitreihen 2109 eine beliebige Anzahl an tatsächlichen Datenpunkten verwenden können. Beispielsweise kann eine Virtueller-Punkt-Zeitreihe auf mehreren tatsächlichen Datenpunkten basieren. Bei manchen Ausführungsformen wird das „Verwendet Punkt“-Attribut 2152 als eine Liste von Punkten zur Überwachung von Wertänderungen behandelt. Wenn irgendeiner der durch das „Verwendet Punkt“-Attribut 2152 identifizierten Punkte aktualisiert wird, kann die Zeitreihe 2109 automatisch aktualisiert werden, um den geänderten Wert der von der Zeitreihe 2109 verwendeten Punkte wiederzugeben.It is shown that the time series 2109 a "use point" attribute 2152 contains. The asterisk next to the "Use point" attribute 2152 indicates that the time series 2109 can use any number of actual data points. For example, a virtual point time series can be based on several actual data points. In some embodiments, the "uses point" attribute 2152 treated as a list of points for monitoring value changes. If any of the ones used by the "Uses Point" attribute 2152 identified points is updated, the time series 2109 are automatically updated to reflect the changed value of the time series 2109 play points used.

Es wird auch gezeigt, dass die Zeitreihe 2109 ein „Verwendet durch Zeitreihe“-Attribut 2156 und ein „Verwendet Zeitreihe“-Attribut 2158 enthält. Die Sternchen neben dem „Verwendet durch Zeitreihe“-Attribut 2156 und dem „Verwendet Zeitreihe“-Attribut 2158 gibt an, dass die Zeitreihe 2109 von einer beliebigen Anzahl anderer Zeitreihen verwendet werden kann und eine beliebigen Anzahl anderer Zeitreihen verwenden kann. Beispielsweise können sowohl eine Daten-Rollup-Zeitreihe als auch eine Virtueller-Punkt-Zeitreihe auf derselben Rohdatenzeitreihe basieren. Als weiteres Beispiel kann eine einzige Virtueller-Punkt-Zeitreihe auf mehreren anderen Zeitreihen basieren (z. B. mehreren Rohdatenzeitreihen). Bei manchen Ausführungsformen wird das „Verwendet durch Zeitreihe“-Attribut 2156 als eine Liste von Zeitreihen behandelt, die Aktualisierungen der Zeitreihe 2109 subskribieren. Wenn der Wert der Zeitreihe 2109 aktualisiert wird, kann die in dem „Verwendet durch Zeitreihe“-Attribut 2156 aufgelisteten Zeitreihen identifiziert und automatisch aktualisiert werden, um die Änderung der Zeitreihe 2109 wiederzugeben. Gleichermaßen kann das „Verwendet Zeitreihe“-Attribut 2158 als eine Liste von Zeitreihen zur Überwachung von Aktualisierungen betrachtet werden. Wenn irgendeine der durch das „Verwendet Zeitreihe“-Attribut 2158 identifizierten Zeitreihen aktualisiert wird, kann die Zeitreihe 2109 automatisch aktualisiert werden, um die Aktualisierungen der anderen Zeitreihen wiederzugeben, auf denen die Zeitreihe 2109 basiert.It is also shown that the time series 2109 a "Used by time series" attribute 2156 and a "uses time series" attribute 2158 contains. The asterisks next to the "Used by time series" attribute 2156 and the "Uses time series" attribute 2158 indicates that the time series 2109 can be used by any number of other time series and can use any number of other time series. For example, both a data rollup time series and a virtual point time series can be based on the same raw data time series. As another example, a single virtual point time series can be based on several other time series (e.g. several raw data time series). In some embodiments, the "Used by time series" attribute is used 2156 treated as a list of time series, the updates of the time series 2109 subscribe. If the value of the time series 2109 can be updated in the "Used by time series" attribute 2156 listed time series are identified and updated automatically to reflect the change in the time series 2109 play. Likewise, the "Uses Time Series" attribute 2158 are considered as a list of time series for monitoring updates. If any of the by the "Uses Time Series" attribute 2158 identified time series is updated, the time series 2109 are automatically updated to reflect the updates of the other time series on which the time series 2109 based.

Nun unter Bezugnahme auf 21B ist ein Beispiel für einen Entitätsgraphen 2160 für ein spezielles System von Vorrichtungen gemäß manchen Ausführungsformen gezeigt. Es ist gezeigt, dass der Entitätsgraph 2160 eine Organisation 2161 („ACME Corp“) enthält. Die Organisation 2161 kann eine Sammlung von Personen, einer juristischen Entität, eines Unternehmen, einer Agentur oder einer anderen Art von Organisation sein. Die Organisation 2161 belegt den Bereich 2163 („Milwaukee Campus“), wie durch das „Belegt“-Attribut 2164 angegeben ist. Der Bereich 2163 wird von der Organisation 2161 belegt, wie durch das „Belegt durch“-Attribut 2162 angegeben ist.Now referring to 21B is an example of an entity graph 2160 shown for a particular system of devices according to some embodiments. It is shown that the entity graph 2160 an organisation 2161 ("ACME Corp") contains. The organization 2161 can be a collection of people, a legal entity, a company, an agency or another type of organization. The organization 2161 occupies the area 2163 ("Milwaukee Campus"), as by the "busy" attribute 2164 is specified. The area 2163 is from the organization 2161 as evidenced by the "Occupied By" attribute 2162 is specified.

Bei manchen Ausführungsformen ist der Bereich 2163 ein Bereich der obersten Ebene in einer Hierarchie von Bereichen. Beispielsweise kann der Bereich 2163 einen gesamten Campus repräsentieren (d. h. eine Sammlung von Gebäuden). Der Bereich 2163 kann verschiedene Unterbereiche (z. B. einzelne Gebäude) enthalten, wie etwa einen Bereich 2165 („Gebäude 1“) und einen Bereich 2173 („Gebäude 2“), wie durch die „Enthält“-Attribute 2168 und 2180 angegeben ist. Die Bereiche 2165 und 2180 befinden sich in dem Bereich 2163, wie durch das „Befindet sich in“-Attribut 2166 angegeben ist. Jeder der Bereiche 2165 und 2173 kann Unterbereiche einer niedrigeren Ebene, wie etwa einzelne Stockwerke, Zonen oder Zimmer in jedem Gebäude, enthalten. Solche Unterbereiche sind jedoch der Einfachheit halber aus dem Entitätsgraphen 2160 weggelassen. In some embodiments, the range is 2163 a top-level area in a hierarchy of areas. For example, the range 2163 represent an entire campus (ie a collection of buildings). The area 2163 can contain different sub-areas (e.g. individual buildings), such as an area 2165 ("Building 1") and an area 2173 ("Building 2"), as through the "Contains" attributes 2168 and 2180 is specified. The areas 2165 and 2180 are in the area 2163 as by the "is in" attribute 2166 is specified. Each of the areas 2165 and 2173 may contain lower-level sub-areas such as individual floors, zones, or rooms in each building. However, such sub-areas are from the entity graph for simplicity 2160 omitted.

Der Bereich 2165 wird durch das System 2167 versorgt („Elek.-Hauptzählerl“), wie durch das „Versorgt durch“-Attribut 2172 angegeben ist. Das System 2167 kann ein beliebiges System sein, das den Bereich 2165 versorgt (z. B. ein HVAC-System, ein Beleuchtungssystem, ein Elektriksystem, ein Sicherheitssystem usw.). Das „Versorgt“-Attribut 2170 zeigt an, dass das System 2167 den Bereich 2165 versorgt. In dem Entitätsgraphen 2160 ist das System 2167 als ein elektrisches System mit einem Subsystem 2169 („Beleuchtungsunterzähler1“) und einem Subsystem 2171 („Steckerlastunterzähler2“) gezeigt, wie durch die Subsystemattribute 2176 und 2178 angegeben. Die Subsysteme 2169 und 2171 sind Teil des Systems 2167, wie durch den Teil des Attributs 2174 angegeben.The area 2165 is through the system 2167 supplied ("Elek.-Hauptzählerl"), as by the "supplied by" attribute 2172 is specified. The system 2167 can be any system covering the area 2165 supplied (e.g. an HVAC system, a lighting system, an electrical system, a security system, etc.). The "Provided" attribute 2170 indicates that the system 2167 the area 2165 provided. In the entity graph 2160 is the system 2167 as an electrical system with a subsystem 2169 ("Lighting sub-counter 1") and a subsystem 2171 ("Connector load counter2") as shown by the subsystem attributes 2176 and 2178 specified. The subsystems 2169 and 2171 are part of the system 2167 as by the part of the attribute 2174 specified.

Der Bereich 2173 wird durch das System 2175 versorgt („Elek.-Hauptzähler2“), wie durch das „Versorgt durch“-Attribut 2184 angegeben ist. Das System 2175 kann ein beliebiges System sein, das den Bereich 2173 versorgt (z. B. ein HVAC-System, ein Beleuchtungssystem, ein Elektriksystem, ein Sicherheitssystem usw.). Das „Versorgt“-Attribut 2182 zeigt an, dass das System 2175 den Bereich 2173 versorgt. In dem Entitätsgraphen 2160 ist das System 2175 als ein elektrisches System mit einem Subsystem 2177 („Beleuchtungsunterzähler3“) gezeigt, wie durch das Subsystemattribut 2188 angegeben. Das Subsysteme 2177 ist Teil des Systems 2175, wie durch den Teil des Attributs 2186 angegeben.The area 2173 is through the system 2175 supplied ("Elect. main counter2"), as by the "supplied by" attribute 2184 is specified. The system 2175 can be any system covering the area 2173 supplied (e.g. an HVAC system, a lighting system, an electrical system, a security system, etc.). The "Provided" attribute 2182 indicates that the system 2175 the area 2173 provided. In the entity graph 2160 is the system 2175 as an electrical system with a subsystem 2177 ("Lighting Sub-Counter3") as shown by the subsystem attribute 2188 specified. The subsystems 2177 is part of the system 2175 as by the part of the attribute 2186 specified.

Zusätzlich zu den in 21B gezeigten Attributen kann der Entitätsgraph 2160 „Vorfahren“- und „Nachfahren“-Attribute für jede Entität in der Hierarchie enthalten. Das „Vorfahren“-Attribut kann alle der Entitäten, die Vorfahren einer gegebenen Entität sind, identifizieren (z. B. ein einer flachen Liste). Beispielsweise kann das „Vorfahren“-Attribut für den Bereich 2165 sowohl den Bereich 2163 als auch die Organisation 2161 als Vorfahren identifizieren. Gleichermaßen kann das „Nachfahren“-Attribut alle (z. B. in einer flachen Liste) der Entitäten identifizieren, die Nachfahren einer gegebenen Entität sind. Beispielsweise kann das „Nachfahren“-Attribut für den Bereich 2165 das System 2167, das Subsystem 2169 und das Subsystem 2171 als Nachfahren identifizieren. Dies versorgt jede Entität mit einer vollständigen Liste ihrer Vorfahren und Nachfahren, unabhängig davon, wie viele Ebenen im hierarchischen Baum enthalten sind. Dies ist eine Form des transitiven Abschlusses.In addition to the in 21B shown attributes can be the entity graph 2160 "Ancestor" and "Descendant" attributes included for each entity in the hierarchy. The "ancestor" attribute can identify all of the entities that are ancestors of a given entity (e.g., a flat list). For example, the "ancestor" attribute for the area 2165 both the area 2163 as well as the organization 2161 identify as ancestor. Similarly, the "descendant" attribute can identify all (e.g., in a flat list) of the entities that are descendants of a given entity. For example, the "descend" attribute for the area 2165 the system 2167 , the subsystem 2169 and the subsystem 2171 identify as descendants. This provides each entity with a complete list of its ancestors and descendants, regardless of how many levels are in the hierarchical tree. This is a form of transitive closure.

Bei manchen Ausführungsformen ermöglicht der durch die „Nachfahren“- und „Vorfahren“-Attribute bereitgestellte transitive Abschluss, dass der Entitätsgraph 2160 einfache Abfragen erleichtert, ohne mehrere Ebenen des hierarchischen Baums durchsuchen zu müssen. Die folgende Abfrage kann beispielsweise verwendet werden, um alle Zähler unter dem Milwaukee-Campus-Bereich 2163 zu finden:

               /Systems?$filter=(systemType eq Jci.Be.Data.SystemType'Meter')
               and ancestorSpaces/any(a:a/name eq ‚Milwaukee Campus‘)
und kann unter Verwendung nur des „Nachfahren“-Attributs des Milwaukee-Campus-Bereich 2163 beantwortet werden. Beispielsweise kann das „Nachfahren“-Attribut des Bereichs 2163 alle Zähler identifizieren, die hierarchisch unter dem Bereich 2163 liegen. Das „Nachfahren“-Attribut kann als flache Liste organisiert und als ein Attribut des Bereichs 2163 gespeichert werden. Dies ermöglicht, dass die Abfrage bedient wird, indem nur das „Nachfahren“-Attribut des Bereichs 2163 durchsucht wird, ohne dass andere Ebenen oder Entitäten der Hierarchie durchsucht werden müssen.In some embodiments, the transitive closure provided by the "Descendant" and "Ancestor" attributes enables the entity graph 2160 simple queries made easier without having to search through several levels of the hierarchical tree. For example, the following query can be used to view all counters under the Milwaukee campus area 2163 to find:
               / Systems? $ Filter = (systemType eq Jci.Be.Data.SystemType'Meter ')
               and ancestorSpaces / any (a: a / name eq 'Milwaukee Campus') 
and can be made using only the "descendant" attribute of the Milwaukee campus area 2163 get answered. For example, the "descend" attribute of the area 2163 identify all counters that are hierarchical under the area 2163 lie. The "descendant" attribute can be organized as a flat list and as an attribute of the area 2163 get saved. This enables the query to be served by just the "descend" attribute of the area 2163 is searched without having to search other levels or entities of the hierarchy.

Nun unter Bezugnahme auf 22 ist ein Objektbeziehungsdiagramm 2200 gemäß manchen Ausführungsformen gezeigt. Es ist gezeigt, dass das Beziehungsdiagramm 2200 eine Entitätsvorlage 2202, einen Punkt 2204, eine Zeitreihe 2206 und ein Beispiel 2208 enthält. Bei manchen Ausführungsformen werden die Entitätsvorlage 2202, der Punkt 2204, die Zeitreihen 2206 und der Abtastwert 2208 als Datenobjekte innerhalb des Speichers 610 oder der Zeitreihendatenbank 928 gespeichert. Das Beziehungsdiagramm 2200 veranschaulicht die Beziehungen zwischen der Entitätsvorlage 2202, dem Punkt 2204 und der Zeitreihe 2206.Now referring to 22 is an object relationship diagram 2200 shown in accordance with some embodiments. It is shown that the relationship diagram 2200 an entity template 2202 , one point 2204 , a time series 2206 and contains an example 2208. In some embodiments, the entity template 2202 , the point 2204 , the time series 2206 and the sample 2208 as data objects within the memory 610 or the time series database 928 saved. The relationship diagram 2200 illustrates the relationships between the entity template 2202 , the point 2204 and the time series 2206 .

Die Entitätsvorlage 2202 kann verschiedene Attribute enthalten, wie etwa ein ID-Attribut, ein Namensattribut, ein Eigenschaftenattribut und ein Beziehungsattribut. Das ID-Attribut kann als eine Textzeichenfolge bereitgestellt werden und identifiziert eine eindeutige ID für die Entitätsvorlage 2202. Das Namensattribut kann auch als eine Textzeichenfolge bereitgestellt werden und identifiziert den Namen der Entitätsvorlage 2202. Das Eigenschaftenattribut kann als ein Vektor bereitgestellt werden und identifiziert eine oder mehrere Eigenschaften der Entitätsvorlage 2202. Das Beziehungsattribut kann auch als ein Vektor bereitgestellt werden und identifiziert eine oder mehrere Beziehungen der Entitätsvorlage 2202. The entity template 2202 can contain various attributes, such as an ID attribute, a name attribute, a property attribute, and a relationship attribute. The ID attribute can be provided as a text string and identifies a unique ID for the entity template 2202 . The name attribute can also be provided as a text string and identifies the name of the entity template 2202 . The property attribute can be provided as a vector and identifies one or more properties of the entity template 2202 . The relationship attribute can also be provided as a vector and identifies one or more relationships of the entity template 2202 .

Der Punkt 2204 kann verschiedene Attribute enthalten, wie etwa ein ID-Attribut, ein Entitätsvorlagen-ID-Attribut, ein Zeitreihenattribut und ein Einheiten-ID-Attribut. Das ID-Attribut kann als eine Textzeichenfolge bereitgestellt werden und identifiziert eine eindeutige ID für den Punkt 2204. Das Entitätsvorlagen-ID-Attribut kann auch als eine Textzeichenfolge bereitgestellt werden und identifiziert die Entitätsvorlage 2202, die dem Punkt 2204 zugeordnet ist (z. B. durch Auflisten des ID-Attributs der Entitätsvorlage 2202). Eine beliebige Anzahl an Punkten 2204 kann der Entitätsvorlage 2202 zugeordnet sein. Bei manchen Ausführungsformen ist jedoch jeder Punkt 2204 einer einzigen Entitätsvorlage 2202 zugeordnet. Das Zeitreihenattribut kann als eine Textzeichenfolge bereitgestellt werden und identifiziert eine beliebige mit Punkt 2204 verknüpfte Zeitreihe (z. B. durch Auflisten der ID-Zeichenfolge beliebiger dem Punkt 2204 zugeordneter Zeitreihen 2206). Das Einheiten-ID-Attribut kann auch als eine Textzeichenfolge bereitgestellt werden und identifiziert die Einheiten der durch den Punkt 2204 quantifizierten Variable.The point 2204 may include various attributes such as an ID attribute, an entity template ID attribute, a time series attribute, and a device ID attribute. The ID attribute can be provided as a text string and identifies a unique ID for the point 2204 . The entity template ID attribute can also be provided as a text string and identifies the entity template 2202 that the point 2204 is assigned (e.g. by listing the ID attribute of the entity template 2202 ). Any number of points 2204 can the entity template 2202 be assigned. However, in some embodiments, each point is 2204 a single entity template 2202 assigned. The time series attribute can be provided as a text string and identifies any one with a period 2204 linked time series (e.g. by listing the ID string of any point 2204 assigned time series 2206 ). The unit ID attribute can also be provided as a text string and identifies the units by the point 2204 quantified variable.

Die Zeitreihe 2206 kann verschiedene Attribute enthalten, wie etwa ein ID-Attribut, ein Abtastwertattribut, ein Transformationstypattribut und ein Einheiten-ID-Attribut. Das ID-Attribut kann als eine Textzeichenfolge bereitgestellt werden und identifiziert eine eindeutige ID für die Zeitreihe 2206. Die eindeutige ID der Zeitreihen 2206 kann in dem Zeitreihenattribut des Punkts 2204 aufgelistet werden, um die Zeitreihe 2206 dem Punkt 2204 zuzuordnen. Eine beliebige Anzahl an Zeitreihen 2206 kann dem Punkt 2204 zugeordnet sein. Jede Zeitreihe 2206 ist einem einzigen Punkt 2204 zugeordnet. Das Abtastwerteattribut kann als ein Vektor bereitgestellt werden und identifiziert einen oder mehrere der Zeitreihe 2206 zugeordnete Abtastwerte. Das Transformationstypattribut identifiziert den Transformationstyp, der zum Erzeugen der Zeitreihe 2206 verwendet wird (z. B. durchschnittlich stündlich, durchschnittlich täglich, durchschnittlich monatlich usw.). Das Einheiten-ID-Attribut kann auch als eine Textzeichenfolge bereitgestellt werden und identifiziert die Einheiten der durch die Zeitreihe 2206 quantifizierten Variable.The time series 2206 may include various attributes such as an ID attribute, a sample attribute, a transformation type attribute, and a unit ID attribute. The ID attribute can be provided as a text string and identifies a unique ID for the time series 2206 . The unique ID of the time series 2206 can in the point's time series attribute 2204 be listed to the time series 2206 the point 2204 assign. Any number of time series 2206 can the point 2204 be assigned. Every time series 2206 is a single point 2204 assigned. The sample attribute can be provided as a vector and identifies one or more of the time series 2206 assigned samples. The transformation type attribute identifies the transformation type that is used to generate the time series 2206 is used (e.g. hourly on average, daily average, monthly average, etc.). The unit ID attribute can also be provided as a text string and identifies the units through the time series 2206 quantified variable.

Der Abtastwert 2208 kann ein Zeitstempelattribut und ein Wertattribut enthalten. Das Zeitstempelattribut kann in lokaler Zeit bereitgestellt werden und kann einen Versatz relativ zur Universalzeit enthalten. Das Wertattribut kann einen Datenwert des Abtastwerts 2208 enthalten. In manchen Fällen ist das Wertattribut ein numerischer Wert (z. B. für gemessene Variablen). In anderen Fällen kann das Wertattribut eine Textzeichenfolge, wie etwa „Fehler“, sein, falls der Abtastwert 2208 Teil einer Fehlerdetektionszeitreihe ist.The sample 2208 can contain a timestamp attribute and a value attribute. The timestamp attribute can be provided in local time and can include an offset relative to universal time. The value attribute can be a data value of the sample 2208 contain. In some cases, the value attribute is a numerical value (e.g. for measured variables). In other cases, the value attribute can be a text string, such as "error", if the sample 2208 Is part of a fault detection time series.

Erzeugung eines verschachtelten StreamsCreation of a nested stream

Unter Bezugnahme auf 23A-25B kann die Gebäudeverwaltungsplattform 102 dazu konfiguriert sein, verschachtelte Ströme von Zeitreihendaten zu erzeugen. Verschachtelte Streams können verschiedene Arten abgeleiteter Zeitreihen enthalten, die durch Verarbeiten von DAGs erzeugt werden. Beispielsweise können verschachtelte Streams Daten-Rollup-Zeitreihen, Virtueller-Punkt-Zeitreihen, Wetterpunktzeitreihen, Fehlerdetektionszeitreihen, Zeitreihen für zugewiesene Zustände, Zeitreihen für abnormale Ereignisse und/oder einen beliebigen anderen zuvor beschriebenen Typ abgeleiteter Zeitreihen enthalten. Bei manchen Ausführungsformen werden die verschachtelten Streams aus Eingabezeitreihen erzeugt, die aus der Zeitreihendatenbank 928 abgerufen werden (wie unter Bezugnahme auf 13A-13B beschrieben ist). Bei anderen Ausführungsformen werden die verschachtelten Streams aus Streaming-Daten erzeugt, die in Echtzeit von IoT-Vorrichtungen 2614 und/oder anderen Datenquellen empfangen werden (wie unter Bezugnahme auf 14 beschrieben). Bei manchen Ausführungsformen werden die verschachtelten Streams als eine Zwischenzeitreihe in einem Zeitreihenverarbeitungsarbeitsfluss verwendet. Beispielsweise kann eine erste abgeleitete Zeitreihe durch Verarbeiten eines ersten DAG erzeugt und als eine Eingabe für einen zweiten DAG verwendet werden, um eine zweite abgeleitete Zeitreihe zu erzeugen (wie unter Bezugnahme auf 25A-25B beschrieben ist).With reference to 23A-25B can the building management platform 102 configured to generate nested streams of time series data. Nested streams can contain various types of derived time series that are generated by processing DAGs. For example, nested streams may include data rollup time series, virtual point time series, weather point time series, error detection time series, assigned state time series, abnormal event time series, and / or any other type of derived time series described above. In some embodiments, the nested streams are generated from input time series from the time series database 928 retrieved (as with reference to 13A-13B is described). In other embodiments, the interleaved streams are generated from streaming data generated in real time by IoT devices 2614 and / or other data sources (as with reference to 14 described). In some embodiments, the nested streams are used as an intermediate time series in a time series processing workflow. For example, a first derived time series may be generated by processing a first DAG and used as an input to a second DAG to generate a second derived time series (as with reference to FIG 25A-25B is described).

ZeitreihenverarbeitungsarbeitsflussTime series processing workflow

Unter besonderer Bezugnahme auf 23A ist ein Blockdiagramm, das einen Zeitreihenverarbeitungsarbeitsfluss 2300 veranschaulicht, gemäß einem Ausführungsbeispiel gezeigt. Der Arbeitsfluss 2300 kann von dem Arbeitsflussverwalter 922 in Kombination mit anderen Komponenten des Zeitreihendienstes 628 durchgeführt werden. Es ist gezeigt, dass der Arbeitsfluss 2300 Durchführen eines Lesens der Zeitreihendaten beinhaltet (Schritt 2302). Schritt 2302 kann Lesen von Rohdatenabtastwerten und/oder der abgeleiteten Datenabtastwerten beinhalten, die durch die Zeitreihenspeicherungsschnittstelle 916 bereitgestellt werden. Die Zeitreihendaten können in der Zeitreihendatenbank 928 gespeichert werden. Bei manchen Ausführungsformen beinhaltet die Zeitreihendatenbank 928 eine Datenspeicherung vor Ort (z. B. Redis, PostgreSQL usw.) und/oder eine Cloud-Datenspeicherung (z. B. Azure Redis, DocDB, HBase usw.).With special reference to 23A Fig. 4 is a block diagram showing a time series processing workflow 2300 illustrated, shown according to an embodiment. The workflow 2300 can from the workflow manager 922 in combination with other components of the time series service 628 be performed. It is shown that the workflow 2300 Performing reading of the time series data includes (step 2302 ). step 2302 may include reading raw data samples and / or the derived data samples through the time series storage interface 916 to be provided. The time series data can be found in the time series database 928 get saved. In some embodiments, the time series database includes 928 on-site data storage (e.g. Redis, PostgreSQL etc.) and / or cloud data storage (e.g. Azure Redis, DocDB, HBase etc.).

Die Zeitreihenspeicherungsschnittstelle 916 kann dazu konfiguriert sein, eine Zeitreihensammlung, eine Abtastwertsammlung und eine PSR-Sammlung (Post Sample Request) zu lesen und zu schreiben. Jede dieser Sammlungen kann in der Zeitreihendatenbank 928 gespeichert werden. Die Zeitreihensammlung kann sämtliche in dem Arbeitsflussverwalter 922 registrierten Zeitreihen enthalten. Die Zeitreihensammlung kann auch den DAG für jede Zeitreihe enthalten. Die Zeitreihensammlung kann von dem Arbeitsflussverwalter 922 verwendet werden, um nur PSRs zu akzeptieren, die sich auf gültige Zeitreihen beziehen, die in dem Arbeitsflussverwalter 922 registriert sind. Die Zeitreihensammlung kann auch in den Schritten 2314-2316 verwendet werden, um den DAG für eine spezielle Zeitreihen-ID zu durchsuchen.The time series storage interface 916 may be configured to read and write a time series collection, a sample collection, and a PSR (Post Sample Request) collection. Each of these collections can be found in the time series database 928 get saved. The time series collection can all be in the workflow manager 922 registered time series included. The time series collection can also contain the DAG for each time series. The time series collection can be done by the workflow manager 922 can be used to accept only PSRs related to valid time series stored in the workflow manager 922 are registered. The time series collection can also be done in steps 2314-2316 can be used to search the DAG for a special time series ID.

Bei manchen Ausführungsformen wird die gesamte Zeitreihensammlung in den lokalen Speicher geladen. Die Zeitreihensammlung kann eine reguläre Sammlung oder eine partitionierte Sammlung sein (z. B. eine Partition für ungefähr alle 100 Zeitreihen). Bei manchen Ausführungsformen enthält die Zeitreihensammlung etwa 200.000 bis 250.000 Zeitreihen. Die ID für jedes Dokument in der Zeitreihensammlung kann die Zeitreihen-ID sein. Der DAG für jede Zeitreihe kann einen Satz von Operationen und/oder Transformationen enthalten, die durchgeführt werden müssen, um die abgeleiteten Zeitreihendaten basierend auf den Zeitreihen zu erzeugen. Bei der Registrierung einer neuen Zeitreihe kann der DAG für die Zeitreihenaus DAG-Vorlagen ausgewählt werden. Die DAG-Vorlage kann einen Satz von Standardoperationen enthalten, die für die Zeitreihen zutreffen. Bei der Definition einer neuen Metrik für eine Zeitreihe können die neue Metrik und die Liste der Operationen zum Erzeugen dieser Metrik zu dem DAG hinzugefügt werden.In some embodiments, the entire time series collection is loaded into local storage. The time series collection can be a regular collection or a partitioned collection (e.g., a partition for approximately every 100 time series). In some embodiments, the time series collection contains approximately 200,000 to 250,000 time series. The ID for each document in the time series collection can be the time series ID. The DAG for each time series may include a set of operations and / or transformations that must be performed to generate the derived time series data based on the time series. When registering a new time series, the DAG can be selected for the time series from DAG templates. The DAG template can contain a set of standard operations that apply to the time series. When defining a new metric for a time series, the new metric and the list of operations to generate that metric can be added to the DAG.

Die Abtastwertsammlung kann alle der Zeitreihenabtastwerte enthalten (z. B. Rohabtastwerte, abgeleitete Zeitreihenabtastwerte). Die Abtastwertsammlung kann für alle GET-Anforderungen für eine spezielle Zeitreihen-ID verwendet werden. Ein Teil der Abtastwertsammlung kann in dem lokalen Speicher gespeichert werden (z. B. nach 48 Stunden), während der Rest der Abtastwertsammlung in der Zeitreihendatenbank 928 gespeichert werden kann. Die Abtastwertsammlung kann als partitionierte Sammlung anstelle einer regulären Sammlung wirken, um Effizienz und Leistungsfähigkeit zu verbessern. Bei manchen Ausführungsformen wird die Abtastwertsammlung in einem JSON-Format gespeichert und bezüglich der Zeitreihen-ID partitioniert. Das ID-Feld kann für jede Partition eindeutig sein und die Form „Metrik: Zeitstempel“ aufweisen.The sample collection may include all of the time series samples (e.g. raw samples, derived time series samples). The sample collection can be used for all GET requests for a specific time series ID. Part of the sample collection can be stored in local memory (e.g., after 48 hours), while the rest of the sample collection can be stored in the time series database 928 can be saved. The sample collection can act as a partitioned collection instead of a regular collection to improve efficiency and performance. In some embodiments, the sample collection is stored in a JSON format and partitioned with respect to the time series ID. The ID field can be unique for each partition and can have the form "Metric: Time stamp".

Die PSR-Sammlung kann alle der PSRs enthalten und kann verwendet werden, um Zustandsaktualisierungen für eine PSR an den Benutzer zu liefern, der sich auf eine bestimmte Zeitreihen-ID bezieht. Ein Teil der PSR-Sammlung kann in dem lokalen Speicher gespeichert werden (z. B. nach 48 Stunden), während der Rest der PSR-Sammlung in der Zeitreihendatenbank 928 gespeichert werden kann. Die PSR-Sammlung kann bezüglich der Zeitreihen-ID partitioniert werden. Bei manchen Ausführungsformen weist die ID für jedes Dokument in der PSR-Sammlung die Form „Zeitreihen-ID: Zeitstempel“ auf.The PSR collection can include all of the PSRs and can be used to provide status updates for a PSR to the user related to a particular time series ID. Part of the PSR collection can be stored in local memory (e.g. after 48 hours), while the rest of the PSR collection can be stored in the time series database 928 can be saved. The PSR collection can be partitioned according to the time series ID. In some embodiments, the ID for each document in the PSR collection takes the form of "time series ID: time stamp".

Immer noch unter Bezugnahme auf 23A ist gezeigt, dass der Arbeitsfluss 2300 das Akzeptieren eines PSR beinhaltet (Schritt 2304). Schritt 2304 kann durchgeführt werden, indem ein PSR-Prozess durchgeführt wird. Bei manchen Ausführungsformen empfängt der PSR-Prozess eine PSR und bestimmt, ob die PSR mehr als eine Zeitreihen-ID enthält. Als Reaktion auf eine Bestimmung, dass die PSR mehr als eine Zeitreihen-ID enthält, kann der PSR-Prozess die PSR in mehrere PSRs aufteilen, von denen jede auf eine einzige Zeitreihen-ID beschränkt ist. Die PSRs können an den PSR-Ereignis-Hub 2306 geliefert werden. Der PSR-Ereignis-Hub 2306 kann zum Speichern von PSR-Ereignissen konfiguriert sein. Jedes PSR-Ereignis kann eine PSR für eine Zeitreihen-ID enthalten. Bei manchen Ausführungsformen wird jedes PSR-Ereignis in der Form „Zeitreihen-ID: Zeitstempel“ gespeichert.Still referring to 23A is shown that the workflow 2300 includes accepting a PSR (step 2304 ). step 2304 can be done by performing a PSR process. In some embodiments, the PSR process receives a PSR and determines whether the PSR contains more than one time series ID. In response to a determination that the PSR contains more than one time series ID, the PSR process may split the PSR into multiple PSRs, each of which is limited to a single time series ID. The PSRs can be sent to the PSR event hub 2306 to be delivered. The PSR event hub 2306 can be configured to store PSR events. Each PSR event can contain a PSR for a time series ID. In some embodiments, each PSR event is stored in the form of "time series ID: time stamp".

Es wird gezeigt, dass der Arbeitsfluss 2300 das Deduplizieren von Rohabtastwerten enthält (Schritt 2308). Schritt 2308 kann durchgeführt werden, indem ein Deduplizierungsprozess durchgeführt wird. Bei manchen Ausführungsformen beinhaltet der Deduplizierungsprozess das Akzeptieren von PSR-Ereignissen von dem PSR-Ereignis-Hub 2306 und das Aufteilen jeder PSR in eine Liste von Abtastwerten. Schritt 2308 kann Markieren jedes Abtastwerts als ein neuer Abtastwert, ein aktualisierter Abtastwert oder ein duplizierter Abtastwert beinhalten. Neue Abtastwerte und aktualisierte Abtastwerte können an den Rohabtastwerteereignis-Hub 2310 gesendet werden, während duplizierte Abtastwerte verworfen werden können. Bei manchen Ausführungsformen wird der Schritt 2308 in Azure unter Verwendung von Azure Worker Roles bereitgestellt. Schritt 2308 kann Überprüfen in der Zeitreihendatenbank 928 sowie den Abtastwerten, die sich derzeit in dem Rohabtastwertereignis-Hub 2310 befinden, auf duplizierte Abtastwerte beinhalten.It is shown that the workflow 2300 includes deduplicating raw samples (step 2308 ). step 2308 can be done by performing a deduplication process. In some embodiments, the deduplication process includes accepting PSR events from the PSR event hub 2306 and dividing each PSR into a list of samples. step 2308 may include marking each sample as a new sample, an updated sample, or a duplicated sample. New samples and updated samples can be added to the raw sample event hub 2310 sent while duplicate samples can be discarded. With some Embodiments will be the step 2308 deployed in Azure using Azure Worker Roles. step 2308 can check in the time series database 928 and the samples that are currently in the raw sample event hub 2310 on duplicate samples.

Bei manchen Ausführungsformen entfernt der Deduplizierungsprozess in Schritt 2308 alle duplizierten Datenabtastwerte, so dass nur eine einzige eindeutige Kopie jedes Datenabtastwerts übrig bleibt. Durch Entfernen aller duplizierten Abtastwerte kann sichergestellt werden, dass Aggregatoperationen genaue Aggregatwerte produzieren. Bei anderen Ausführungsformen ist der Deduplizierungsprozess in Schritt 2308 dazu konfiguriert, die meisten, aber nicht alle duplizierten Abtastwerte zu entfernen. Beispielsweise kann der Deduplizierungsprozess unter Verwendung eines Bloom-Filters implementiert werden, das die Möglichkeit von falsch positiven, aber nicht falsch negativen Ergebnissen zulässt. In Schritt 2308 kann ein falsch positives als nicht duplizierter neuer oder aktualisierter Abtastwert definiert werden. Dementsprechend werden manche Duplikate möglicherweise als nicht dupliziert markiert werden, was die Möglichkeit einführt, dass manche duplizierten Abtastwerte möglicherweise nicht ordnungsgemäß identifiziert und entfernt werden. Die deduplizierten Rohabtastwerte können an den Rohabtastwertereignis-Hub 2310 gesendet werden.In some embodiments, the deduplication process removes in step 2308 all duplicate data samples, leaving only a unique copy of each data sample. Removing all duplicate samples can ensure that aggregate operations produce accurate aggregate values. In other embodiments, the deduplication process is in step 2308 configured to remove most, but not all, of the duplicate samples. For example, the deduplication process can be implemented using a Bloom filter that allows the possibility of false positive, but not false negative results. In step 2308 a false positive can be defined as a non-duplicated new or updated sample. Accordingly, some duplicates may be marked as not duplicated, introducing the possibility that some duplicate samples may not be identified and removed properly. The deduplicated raw samples can be sent to the raw sample event hub 2310 be sent.

Es wird gezeigt, dass der Arbeitsfluss 2300 das Speichern der Rohabtastwerte enthält (Schritt 2312). Schritt 2312 kann Akzeptieren der Rohabtastwerte von dem Rohabtastwertereignis-Hub 2310 und Verschieben der Rohabtastwerte in einen dauerhaften Speicher beinhalten. Bei manchen Ausführungsformen wird der Schritt 2312 in Azure unter Verwendung von Azure Worker Roles bereitgestellt. Die Worker-Rolle kann Anforderungen mit einer Rate erzeugen, die auf X % der Kapazität der Speicherung basiert. Falls beispielsweise die Kapazität der Speicherung 10.000 Speichereinheiten beträgt und X % 20 % beträgt (z. B. sind 20% des Speicherungsdurchsatzes für Abtastwertschreibvorgänge reserviert) und jeder Schreibvorgang 5 Speicherungseinheiten benötigt, kann Schritt 2312 insgesamt 400 Schreibvorgänge pro Sekunde erzeugen (d.h. 10.000 20 % 5 = 400

Figure DE112018004336T5_0032
).It is shown that the workflow 2300 includes storing the raw samples (step 2312 ). step 2312 can accept the raw samples from the raw sample event hub 2310 and shifting the raw samples to permanent storage. In some embodiments, the step 2312 deployed in Azure using Azure Worker Roles. The worker role can generate requests at a rate based on X% of the storage capacity. For example, if the storage capacity is 10,000 storage units and X% is 20% (e.g., 20% of the storage throughput is reserved for sample writes) and each write operation requires 5 storage units, step 2312 generate a total of 400 writes per second (i.e. 10,000 20th % 5 = 400
Figure DE112018004336T5_0032
).

Es wird gezeigt, dass der Arbeitsfluss 2300 Erzeugen eines Ereignisauslöser-DAG beinhaltet (Schritt 2314). Schritt 2314 kann durchgeführt werden, indem ein Ereignisauslöser-DAG-Prozess durchgeführt wird. Schritt 2314 kann Akzeptieren von Ereignissen (Abtastwerten) von dem Rohabtastwertereignis-Hub 2310 beinhalten. Für jedes Abtastwertereignis kann Schritt 2314 Identifizieren der Zeitreihen-ID des Abtastwerts und Zugreifen auf die Zeitreihensammlung beinhalten, um den DAG für die entsprechende Zeitreihe zu erhalten. Schritt 2314 kann Identifizieren jeder durch den DAG erzeugten abgeleiteten Datenzeitreihen und jeder in dem DAG enthaltenen Operation beinhalten. Bei manchen Ausführungsformen markiert Schritt 2314 jede Operation, um anzuzeigen, ob die Operation zur Ausführung an die C#-Engine 2332 oder die Python-Engine 2334 gesendet werden soll. Schritt 2314 kann Identifizieren und Abrufen beliebiger zusätzlicher Daten (z. B. von Abtastwerten, Zeitreihen, Parametern usw.) beinhalten, die erforderlich sein können, um die durch den DAG definierten Operationen durchzuführen. Schritt 2314 kann einen angereicherten DAG erzeugen, der den ursprünglichen DAG zusammen mit sämtlichen Daten enthält, die zum Durchführen der durch den DAG definierten Operationen erforderlich sind. Der angereicherte DAG kann an den DAG-Ereignis-Hub 2318 gesendet werden.It is shown that the workflow 2300 Creating an event trigger DAG includes (step 2314 ). step 2314 can be done by performing an event trigger DAG process. step 2314 can accept events (samples) from the raw sample event hub 2310 include. For each sample event, step can 2314 Identify the time series ID of the sample and access the time series collection to obtain the DAG for the corresponding time series. step 2314 may include identifying each derived data time series generated by the DAG and each operation contained in the DAG. In some embodiments, step marks 2314 each operation to indicate whether the operation is being executed on the C # engine 2332 or the Python engine 2334 should be sent. step 2314 may include identifying and retrieving any additional data (e.g., samples, time series, parameters, etc.) that may be required to perform the operations defined by the DAG. step 2314 can create an enriched DAG that contains the original DAG along with all of the data required to perform the operations defined by the DAG. The enriched DAG can be sent to the DAG event hub 2318 be sent.

Bei manchen Ausführungsformen beinhaltet der Arbeitsfluss 2300 Erzeugen eines Taktauslöser-DAG (Schritt 2316). Schritt 2316 kann durchgeführt werden, indem ein Taktauslöser-DAG-Prozess durchgeführt wird. Schritt 2316 kann ähnlich zu Schritt 2314 sein. Schritt 2316 kann jedoch als Reaktion auf einen Taktauslöser anstatt als Reaktion auf den Empfang eines Rohabtastwertereignisses durchgeführt werden. Der Taktauslöser kann Schritt 2316 periodisch auslösen, um Stapelabfragen durchzuführen (z. B. jede Stunde). Schritt 2316 kann Identifizieren einer Zeitreihen-ID, die für den Taktauslöser spezifisch ist, und Zugreifen auf die Zeitreihensammlung beinhalten, um den DAG für die entsprechende Zeitreihe zu erhalten. Schritt 2316 kann Identifizieren jeder durch den DAG erzeugten abgeleiteten Datenzeitreihen und jeder in dem DAG enthaltenen Operation beinhalten. Bei manchen Ausführungsformen markiert Schritt 2316 jede Operation, um anzuzeigen, ob die Operation zur Ausführung an die C#-Engine 2332 oder die Python-Engine 2334 gesendet werden soll. Schritt 2316 kann Identifizieren und Abrufen beliebiger zusätzlicher Daten (z. B. von Abtastwerten, Zeitreihen, Parametern usw.) beinhalten, die erforderlich sein können, um die durch den DAG definierten Operationen durchzuführen. Schritt 2316 kann einen angereicherten DAG erzeugen, der den ursprünglichen DAG zusammen mit sämtlichen Daten enthält, die zum Durchführen der durch den DAG definierten Operationen erforderlich sind. Der angereicherte DAG kann an den DAG-Ereignis-Hub 2318 gesendet werden.In some embodiments, the workflow includes 2300 Generate a clock trigger DAG (step 2316 ). step 2316 can be done by performing a clock trigger DAG process. step 2316 can be similar to step 2314 be. step 2316 however, can be done in response to a clock trigger rather than in response to receiving a raw sample event. The clock trigger can step 2316 Trigger periodically to perform batch queries (e.g. every hour). step 2316 may include identifying a time series ID specific to the clock trigger and accessing the time series collection to obtain the DAG for the corresponding time series. step 2316 may include identifying each derived data time series generated by the DAG and each operation contained in the DAG. In some embodiments, step marks 2316 each operation to indicate whether the operation is being executed on the C # engine 2332 or the Python engine 2334 should be sent. step 2316 may include identifying and retrieving any additional data (e.g., samples, time series, parameters, etc.) that may be required to perform the operations defined by the DAG. step 2316 can create an enriched DAG that contains the original DAG along with all of the data required to perform the operations defined by the DAG. The enriched DAG can be sent to the DAG event hub 2318 be sent.

Der DAG-Ereignis-Hub 2318 kann zum Speichern von angereicherten DAG-Ereignissen konfiguriert sein. Jedes angereicherte DAG-Ereignis kann einen angereicherten DAG enthalten. Der angereicherte DAG kann einen DAG für eine spezielle Zeitreihe zusammen mit sämtlichen Daten beinhalten, die zum Durchführen der durch den DAG definierten Operationen erforderlich sind. Der DAG-Ereignis-Hub 2318 kann die angereicherten DAG-Ereignisse für Schritt 2320 bereitstellen.The DAG event hub 2318 can be configured to store enriched DAG events. Each enriched DAG event can contain an enriched DAG. The enriched DAG may include a DAG for a specific time series along with all of the data required to perform the operations defined by the DAG. The DAG event hub 2318 can step up the enriched DAG events 2320 provide.

Immer noch unter Bezugnahme auf 23A ist gezeigt, dass der Arbeitsfluss 2300 Ausführen des DAG beinhaltet (Schritt 2320). Schritt 2320 kann Akzeptieren angereicherter DAG-Ereignisse von dem DAG-Ereignis-Hub 2318 und Ausführen Durch die Sequenz von Operationen, die durch den DAG definiert sind, beinhalten. Der Arbeitsflussverwalter 922 kann jede Operation in Reihe an die Ausführungs-Engines 2330 absenden und auf Ergebnisse warten, bevor er die nächste Operation absendet. Die Ausführungs-Engines 2330 können eine C#-Engine 2332, eine Python-Engine 2334 oder eine beliebige andere Engine beinhalten, die zum Durchführen der durch den DAG definierten Operationen konfiguriert ist. Bei manchen Ausführungsformen beinhalten die Ausführungs-Engines 2330 Zeitreihenoperatoren 906. Wenn eine gegebene Operation abgeschlossen ist, können die Ausführungs-Engines 2330 die Ergebnisse der Operation an den Arbeitsflussverwalter 922 liefern. Der Arbeitsflussverwalter 922 kann die Ergebnisse einer oder mehrerer Operationen als Eingaben für die nächste Operation verwenden, zusammen mit beliebigen anderen Eingaben, die zum Durchführen der Operation erforderlich sind. Bei manchen Ausführungsformen sind die Ergebnisse der Operationen die abgeleiteten Zeitreihenabtastwerte. Die abgeleiteten Zeitreihenabtastwerte können an den Abgeleitete-Zeitreihe-Ereignis-Hub 2322 geliefert werden.Still referring to 23A is shown that the workflow 2300 Executing the DAG includes (step 2320 ). step 2320 can accept enriched DAG events from the DAG event hub 2318 and execute through the sequence of operations defined by the DAG. The workflow manager 922 can perform any operation in series to the execution engines 2330 submit and wait for results before submitting the next operation. The execution engines 2330 can be a C # engine 2332 , a python engine 2334 or include any other engine configured to perform the operations defined by the DAG. In some embodiments, the execution engines include 2330 Time series operators 906 . When a given operation is complete, the execution engines can 2330 the results of the operation to the workflow manager 922 deliver. The workflow manager 922 can use the results of one or more operations as inputs for the next operation, along with any other inputs required to perform the operation. In some embodiments, the results of the operations are the derived time series samples. The derived time series samples can be sent to the derived time series event hub 2322 to be delivered.

Der Abgeleitete-Zeitreihe-Ereignis-Hub 2322 kann zum Speichern abgeleiteter Zeitreihenabtastwerte konfiguriert sein. Jeder abgeleitete Zeitreihenabtastwert kann einen Abtastwert einer abgeleiteten Zeitreihen enthalten. Die abgeleitete Zeitreihe kann die Ergebnisse der Operationen enthalten, die von den Ausführungs-Engines 2330 durchgeführt werden. Der Abgeleitete-Zeitreihe-Ereignis-Hub 2322 kann die abgeleiteten Zeitreihenabtastwerte für Schritt 2324 bereitstellen.The Derived Time Series Event Hub 2322 can be configured to store derived time series samples. Each derived time series sample may include a derived time series sample. The derived time series can include the results of the operations performed by the execution engines 2330 be performed. The Derived Time Series Event Hub 2322 can derive the derived time series samples for step 2324 provide.

Es wird gezeigt, dass der Arbeitsfluss 2300 das Speichern der abgeleiteten Zeitreihenabtastwerte enthält (Schritt 2324). Schritt 2324 kann Akzeptieren abgeleiteter Zeitreihenabtastwerte von dem Abgeleitete-Zeitreihe-Ereignis-Hub 2322 und Speichern der abgeleiteten Zeitreihenabtastwerte in einer dauerhaften Speicherung (z. B. der Zeitreihendatenbank 928) beinhalten. Bei manchen Ausführungsformen wird der Schritt 2324 in Azure unter Verwendung von Azure Worker Roles bereitgestellt. Die Worker-Rolle kann Anforderungen mit einer Rate erzeugen, die auf Y % der Speicherungskapazität basiert. Falls beispielsweise die Kapazität der Speicherung 10.000 Speichereinheiten beträgt und Y % 50 % beträgt (z. B. sind 50% des Speicherungsdurchsatzes für Abtastwertschreibvorgänge reserviert) und jeder Schreibvorgang 5 Speicherungseinheiten benötigt, kann Schritt 2324 insgesamt 1.000 Schreibvorgänge pro Sekunde erzeugen ( d . h .   10.000 50 % 5 = 1.000 ) .

Figure DE112018004336T5_0033
It is shown that the workflow 2300 including storing the derived time series samples (step 2324 ). step 2324 may accept derived time series samples from the derived time series event hub 2322 and storing the derived time series samples in permanent storage (e.g., the time series database 928 ) include. In some embodiments, the step 2324 deployed in Azure using Azure Worker Roles. The worker role can generate requests at a rate based on Y% of the storage capacity. For example, if the storage capacity 10,000 Storage units and Y% is 50% (e.g., 50% of storage throughput is reserved for sample writes) and each write 5 Storage units needed can step 2324 generate a total of 1,000 writes per second ( d . H . 10,000 50 % 5 = 1,000 ) .
Figure DE112018004336T5_0033

Nun unter Bezugnahme auf 23B ist ein Flussdiagramm eines Prozesses 2350 zum Erhalten und Verarbeiten von Zeitreihendaten gemäß einem Ausführungsbeispiel gezeigt. Der Prozess 2350 kann von dem Arbeitsflussverwalter 922 in Kombination mit anderen Komponenten des Zeitreihendienstes 628 durchgeführt werden. Es wird gezeigt, dass der Prozess 2350 Erhalten von Abtastwerten einer Zeitreihe aus der Zeitreihenspeicherung beinhaltet (Schritt 2352). Schritt 2352 kann Lesen von Rohdatenabtastwerten und/oder abgeleiteter Datenabtastwerte über die Zeitreihenspeicherungsschnittstelle 916 beinhalten. Die Abtastwerte der Zeitreihe können aus der Zeitreihendatenbank 928 erhalten oder in Echtzeit von einem Sensor oder einer anderen Vorrichtung empfangen werden, die die Abtastwerte erzeugt. Schritt 2352 kann das Laden der gesamten Zeitreihe oder einer Teilmenge der Abtastwerte der Zeitreihe in den lokalen Speicher beinhalten. Zum Beispiel können manche der Abtastwerte der Zeitreihe in dem lokalen Speicher gespeichert werden (z. B. nach 48 Stunden), während der Rest der Abtastwerte der Zeitreihe in der Zeitreihendatenbank 928 gespeichert werden kann.Now referring to 23B is a flowchart of a process 2350 shown for obtaining and processing time series data according to an embodiment. The process 2350 can from the workflow manager 922 in combination with other components of the time series service 628 be performed. It is shown that the process 2350 Obtaining samples of a time series from the time series storage includes (step 2352 ). step 2352 can read raw data samples and / or derived data samples via the time series storage interface 916 include. The samples of the time series can be taken from the time series database 928 received or received in real time by a sensor or other device that generates the samples. step 2352 may include loading all or a subset of the time series samples into local memory. For example, some of the time series samples may be stored in local memory (e.g., after 48 hours), while the rest of the time series samples may be stored in the time series database 928 can be saved.

Es wird gezeigt, dass der Prozess 2350 Bearbeiten einer PSR(Post-Sample-Request) beinhaltet, die der Zeitreihe zugeordnet ist (Schritt 2354). Die PSR kann aus einer PSR-Sammlung über die Zeitreihenspeicherungsschnittstelle 916 erhalten werden. Die PSR kann verwendet werden, um Zustandsaktualisierungen für eine spezielle Zeitreihen-ID an den Benutzer zu liefern. Bei manchen Ausführungsformen beinhaltet Schritt 2354 Empfangen einer PSR und Bestimmen, ob die PSR mehr als eine Zeitreihen-ID enthält. Als Reaktion auf eine Bestimmung, dass die PSR mehr als eine Zeitreihen-ID enthält, kann Schritt 2354 Aufteilen der PSR in mehrere PSRs enthalten, von denen jede auf eine einzige Zeitreihen-ID beschränkt ist. Die PSRs können an den PSR-Ereignis-Hub 2306 geliefert und als PSR-Ereignisse gespeichert werden. Jedes PSR-Ereignis kann eine PSR für eine Zeitreihen-ID enthalten. Bei manchen Ausführungsformen wird jedes PSR-Ereignis in der Form „Zeitreihen-ID: Zeitstempel“ gespeichert. It is shown that the process 2350 Editing a PSR (Post-Sample-Request) includes that is assigned to the time series (step 2354 ). The PSR can be collected from a PSR via the time series storage interface 916 be preserved. The PSR can be used to provide status updates to the user for a specific time series ID. In some embodiments, step includes 2354 Receive a PSR and determine if the PSR contains more than one time series ID. In response to a determination that the PSR contains more than one time series ID, step 2354 Split the PSR into multiple PSRs, each limited to a single time series ID. The PSRs can be sent to the PSR event hub 2306 delivered and saved as PSR events. Each PSR event can contain a PSR for a time series ID. In some embodiments, each PSR event is stored in the form of "time series ID: time stamp".

Es wird gezeigt, dass der Prozess 2350 Deduplizieren von Abtastwerten der Zeitreihe beinhaltet (Schritt 2356). Schritt 2356 kann durchgeführt werden, indem ein Deduplizierungsprozess durchgeführt wird. Bei manchen Ausführungsformen beinhaltet der Deduplizierungsprozess das Akzeptieren von PSR-Ereignissen von dem PSR-Ereignis-Hub 2306 und das Aufteilen jeder PSR in eine Liste von Abtastwerten. Schritt 2356 kann Markieren jedes Abtastwerts als ein neuer Abtastwert, ein aktualisierter Abtastwert oder ein duplizierter Abtastwert beinhalten. Neue Abtastwerte und aktualisierte Abtastwerte können an den Rohabtastwerteereignis-Hub 2310 gesendet werden, während duplizierte Abtastwerte verworfen werden können. Bei manchen Ausführungsformen wird der Schritt 2356 in Azure unter Verwendung von Azure Worker Roles bereitgestellt. Schritt 2356 kann Überprüfen in der Zeitreihendatenbank 928 sowie den Abtastwerten, die sich derzeit in dem Rohabtastwertereignis-Hub 2310 befinden, auf duplizierte Abtastwerte beinhalten.It is shown that the process 2350 Deduplicate samples of the time series includes (step 2356 ). step 2356 can be done by performing a deduplication process. In some embodiments, the deduplication process includes accepting PSR events from the PSR event hub 2306 and dividing each PSR into a list of samples. step 2356 may include marking each sample as a new sample, an updated sample, or a duplicated sample. New samples and updated samples can be added to the raw sample event hub 2310 sent while duplicate samples can be discarded. In some embodiments, the step 2356 deployed in Azure using Azure Worker Roles. step 2356 can check in the time series database 928 and the samples that are currently in the raw sample event hub 2310 on duplicate samples.

Bei manchen Ausführungsformen entfernt der Deduplizierungsprozess in Schritt 2356 alle duplizierten Datenabtastwerte, so dass nur eine einzige eindeutige Kopie jedes Datenabtastwerts übrig bleibt. Durch Entfernen aller duplizierten Abtastwerte kann sichergestellt werden, dass Aggregatoperationen genaue Aggregatwerte produzieren. Bei anderen Ausführungsformen ist der Deduplizierungsprozess in Schritt 2356 dazu konfiguriert, die meisten, aber nicht alle duplizierten Abtastwerte zu entfernen. Beispielsweise kann der Deduplizierungsprozess unter Verwendung eines Bloom-Filters implementiert werden, das die Möglichkeit von falsch positiven, aber nicht falsch negativen Ergebnissen zulässt. In Schritt 2356 kann ein falsch positives als nicht duplizierter neuer oder aktualisierter Abtastwert definiert werden. Dementsprechend werden manche Duplikate möglicherweise als nicht dupliziert markiert werden, was die Möglichkeit einführt, dass manche duplizierten Abtastwerte möglicherweise nicht ordnungsgemäß identifiziert und entfernt werden. Die deduplizierten Abtastwerte können an den Rohabtastwertereignis-Hub 2310 gesendet werden.In some embodiments, the deduplication process removes in step 2356 all duplicate data samples, leaving only a unique copy of each data sample. Removing all duplicate samples can ensure that aggregate operations produce accurate aggregate values. In other embodiments, the deduplication process is in step 2356 configured to remove most, but not all, of the duplicate samples. For example, the deduplication process can be implemented using a Bloom filter that allows the possibility of false positive, but not false negative results. In step 2356 a false positive can be defined as a non-duplicated new or updated sample. Accordingly, some duplicates may be marked as not duplicated, introducing the possibility that some duplicate samples may not be identified and removed properly. The deduplicated samples can be sent to the raw sample event hub 2310 be sent.

Immer noch unter Bezugnahme auf 23B ist gezeigt, dass der Prozess 2350 Identifizieren eines oder mehrerer gespeicherter DAGs beinhaltet, die die Zeitreihen als eine Eingabe verwenden (Schritt 2358). Schritt 2358 kann Erhalten der gespeicherten DAGs über Zeitreihen über die Zeitreihenspeicherungsschnittstelle 916 und Identifizieren der erforderlichen Zeitreiheneingaben jedes DAG beinhalten. Für jeden DAG, der die Zeitreihe als eine Eingabe verwendet, kann der Prozess 2350 die durch den DAG definierten Zeitreihenverarbeitungsoperationen identifizieren (Schritt 2360). Die Zeitreihenverarbeitungsoperationen können Datenbereinigungsoperationen, Datenaggregationsoperationen, Zeitreihenadditionsoperationen, Virtueller-Punkt-Berechnungsoperationen oder eine beliebige andere Art von Operation beinhalten, die auf eine oder mehrere Eingabezeitreihen angewendet werden kann.Still referring to 23B is shown that the process 2350 Identifying one or more stored DAGs that use the time series as an input (step 2358 ). step 2358 can get the stored DAGs over time series via the time series storage interface 916 and identify the required time series inputs of each DAG. For each DAG that uses the time series as an input, the process can 2350 identify the time series processing operations defined by the DAG (step 2360 ). The time series processing operations may include data cleansing operations, data aggregation operations, time series addition operations, virtual point calculation operations, or any other type of operation that can be applied to one or more input time series.

Es wird gezeigt, dass der Prozess 2350 Identifizieren und Erhalten von Abtastwerten einer beliebigen Zeitreihe beinhaltet, die zum Durchführen der Zeitreihenverarbeitungsoperationen erforderlich sind (Schritt 2362). Die Zeitreihen können identifiziert werden, indem die Eingaben inspiziert werden, die für jede der in Schritt 2360 identifizierten Zeitreihenverarbeitungsoperationen erforderlich sind. Zum Beispiel ist gezeigt, dass der DAG 2000 in 20A sowohl die „Zeitreihen-ID: 123“ als auch die „Zeitreihen-ID 456“ als notwendige Eingaben beinhaltet. Unter der Annahme, dass in Schritt 2352 Abtastwerte der Zeitreihen-ID 123 erhalten werden, kann der DAG 2000 in Schritt 2358 als ein DAG identifiziert werden, der die Zeitreihen-ID 123 als eine Eingabe verwendet. Die in Schritt 2362 identifizierte Zeitreihen können die Zeitreihen-ID 123, Zeitreihen-ID 456 oder eine beliebige andere Zeitreihen enthalten, die als eine Eingabe für den DAG 2000 verwendet wird. Schritt 2362 kann Identifizieren und Abrufen beliebiger zusätzlicher Daten (z. B. von Abtastwerten, Zeitreihen, Parametern usw.) beinhalten, die erforderlich sein können, um die durch den DAG definierten Operationen durchzuführen.It is shown that the process 2350 Identifying and obtaining samples of any time series required to perform the time series processing operations (step 2362 ). The time series can be identified by inspecting the inputs for each of the steps 2360 identified time series processing operations are required. For example, it is shown that the DAG 2000 in 20A Both the "Time series ID: 123" and the "Time series ID 456" contain the necessary entries. Assuming that in step 2352 Samples of the time series ID 123 can be obtained, the DAG 2000 in step 2358 be identified as a DAG that has the time series ID 123 used as an input. The one in step 2362 identified time series can use the time series ID 123 , Time series ID 456 or contain any other time series as an input to the DAG 2000 is used. step 2362 may include identifying and retrieving any additional data (e.g., samples, time series, parameters, etc.) that may be required to perform the operations defined by the DAG.

Bei manchen Ausführungsformen basieren die in Schritt 2362 erhaltenen Abtastwerte auf den von dem DAG definierten Zeitreihenverarbeitungsoperationen sowie auf den Zeitstempeln der in Schritt 2352 erhaltenen ursprünglichen Abtastwerte. Beispielsweise kann der DAG eine Datenaggregationsoperation enthalten, die mehrere Datenabtastwerte mit Zeitstempeln innerhalb eines gegebenen Zeitfensters aggregiert. Die Startzeit und Endzeit des Zeitfensters können durch den DAG und die Zeitreihe definiert werden, auf die der DAG angewendet wird. Der DAG kann die Dauer des Zeitfensters definieren, über das die Datenaggregationsoperation durchgeführt werden wird. Beispielsweise kann der DAG die Aggregationsoperation als eine stündliche Aggregation (d. h. zum Erzeugen einer stündlichen Daten-Rollup-Zeitreihe), eine tägliche Aggregation (d. h. zum Erzeugen einer täglichen Daten-Rollup-Zeitreihe), eine wöchentliche Aggregation (d. h. zum Erzeugen einer) wöchentliche Daten-Rollup-Zeitreihen) oder eine beliebige andere Aggregationsdauer definieren. Die Position des Zeitfensters (z. B. eines speziellen Tages, einer speziellen Woche usw.), über das die Aggregation durchgeführt wird, kann durch die Zeitstempel der in Schritt 2352 erhaltenen Abtastwerte definiert werden.In some embodiments, these are based on step 2362 obtained sample values on the time series processing operations defined by the DAG as well as on the time stamps of the in step 2352 original samples obtained. For example, the DAG can include a data aggregation operation that aggregates multiple data samples with timestamps within a given time window. The start time and end time of the time window can be defined by the DAG and the time series to which the DAG is applied. The DAG can define the duration of the time window over which the data aggregation operation will be performed. For example, the DAG may perform the aggregation operation as an hourly aggregation (i.e., to generate an hourly data rollup time series), a daily aggregation (i.e., to generate a daily data rollup time series), a weekly aggregation (i.e., to generate a) weekly data Rollup time series) or any other aggregation duration. The position of the time window (e.g. a special day, a special week etc.) over which the aggregation is carried out can be determined by the time stamp in step 2352 obtained samples can be defined.

Schritt 2362 kann Verwenden des DAG beinhalten, um die Dauer des Zeitfensters (z. B. eine Stunde, einen Tag, eine Woche usw.) zu identifizieren, über das die Datenaggregationsoperation durchgeführt wird. Schritt 2362 kann Verwenden der Zeitstempel der in Schritt 2352 erhaltenen Datenabtastwerte beinhalten, um den Ort des Zeitfensters (d. h. die Startzeit und die Endzeit) zu identifizieren. Schritt 2362 kann Festlegen der Startzeit und Endzeit des Zeitfensters derart beinhalten, dass das Zeitfenster die identifizierte Dauer aufweist und die Zeitstempel der in Schritt 2352 erhaltenen Datenabtastwerte enthält. Bei manchen Ausführungsformen sind die Zeitfenster fest und weisen vordefinierte Startzeiten und Endzeiten auf (z. B. den Anfang und das Ende jeder Stunde, jedes Tages, jeder Woche usw.). Bei anderen Ausführungsformen können die Zeitfenster gleitende Zeitfenster sein, die Startzeiten und Endzeiten aufweisen, die von den Zeitstempeln der Datenabtastwerte in den Eingabezeitreihen abhängen. Sobald das geeignete Zeitfenster festgelegt wurde und die anderen Eingabezeitreihen identifiziert wurden, kann Schritt 2362 Abtastwerte beliebiger Eingabezeitreihen für den DAG erhalten, die Zeitstempel innerhalb des entsprechenden Zeitfensters aufweisen. Die Eingabezeitreihen können die in Schritt 2352 identifizierte ursprüngliche Zeitreihe und beliebige anderen Zeitreihen enthalten, die als Eingabe in den DAG verwendet werden.step 2362 may include using the DAG to identify the length of time window (e.g., an hour, a day, a week, etc.) over which the data aggregation operation is performed. step 2362 can use the timestamp in step 2352 obtained data samples to identify the location of the time window (ie, the start time and the end time). step 2362 can include setting the start time and end time of the time window in such a way that the time window has the identified duration and the time stamps in step 2352 data samples obtained. In some embodiments, the time windows are fixed and have predefined start times and end times (e.g., the beginning and end of every hour, every day, every week, etc.). In other embodiments, the time slots can be sliding time slots that have start times and end times that depend on the time stamps of the data samples in the input time series. Once the appropriate time window has been determined and the other input time series have been identified, step can 2362 Obtain samples of any input time series for the DAG that have time stamps within the corresponding time window. The time series can be entered in step 2352 contain identified original time series and any other time series that are used as input into the DAG.

Es wird gezeigt, dass der Prozess 2350 Erzeugen eines angereicherten DAG einschließlich des ursprünglichen DAG und aller Zeitreihenabtastwerte beinhaltet, die zum Durchführen der Zeitreihenverarbeitungsoperationen erforderlich sind (Schritt 2364). Der ursprüngliche DAG kann der in Schritt 2358 identifizierte DAG sein. Die Zeitreihenabtastwerte, die zum Durchführen der Zeitreihenverarbeitungsoperationen erforderlich sind, können beliebige der in Schritt 2362 erhaltenen Zeitreihenabtastwerte enthalten. Bei manchen Ausführungsformen beinhaltet Schritt 2364 Identifizieren jeder durch den DAG erzeugten abgeleiteten Datenzeitreihen und jeder in dem DAG enthaltenen Operation. Bei manchen Ausführungsformen markiert Schritt 2364 jede Operation, um eine spezielle Ausführungs-Engine (z. B. C#-Engine 2332, Python-Engine 2334 usw.) anzugeben, an die die Verarbeitungsoperation zur Ausführung gesendet werden soll.It is shown that the process 2350 Generating an enriched DAG including the original DAG and all the time series samples required to perform the time series processing operations (step 2364 ). The original DAG can be the one in step 2358 identified DAG. The time series samples required to perform the time series processing operations can be any of those in step 2362 obtained time series samples. In some embodiments, step includes 2364 Identify each derived data time series generated by the DAG and each operation contained in the DAG. In some embodiments, step marks 2364 each operation to a special execution engine (e.g. C # engine 2332 , Python engine 2334 etc.) to which the processing operation is to be sent for execution.

Es wird gezeigt, dass der Prozess 2350 Ausführen des angereicherten DAG beinhaltet, um eine oder mehrere abgeleitete Zeitreihen zu erzeugen (Schritt 2366). Schritt 2366 kann Absenden jeder Zeitreihenverarbeitungsoperation in Reihe an die Ausführungs-Engines 2330 und Warten auf Ergebnisse beinhalten, bevor die nächste Operation absendet wird. Wenn eine gegebene Operation abgeschlossen ist, können die Ausführungs-Engines 2330 die Ergebnisse der Operation an den Arbeitsflussverwalter 922 liefern. Prozess 2350 kann die Ergebnisse einer oder mehrerer Operationen als Eingaben für die nächste Operation verwenden, zusammen mit beliebigen anderen Eingaben, die zum Durchführen der Operation erforderlich sind. Bei manchen Ausführungsformen sind die Ergebnisse der Operationen die abgeleiteten Zeitreihenabtastwerte.It is shown that the process 2350 Executing the enriched DAG includes to generate one or more derived time series (step 2366 ). step 2366 can dispatch each time series processing operation in series to the execution engines 2330 and waiting for results before submitting the next operation. When a given operation is complete, the execution engines can 2330 the results of the operation to the workflow manager 922 deliver. process 2350 can use the results of one or more operations as inputs for the next operation, along with any other inputs required to perform the operation. In some embodiments, the results of the operations are the derived time series samples.

Es wird gezeigt, dass Prozess 2350 Speichern der abgeleiteten Zeitreihen in der Zeitreihenspeicherung enthält (Schritt 2368). Die abgeleitete Zeitreihe kann die Ergebnisse der Operationen enthalten, die in Schritt 2366 durchgeführt werden. Schritt 2368 kann Akzeptieren abgeleiteter Zeitreihenabtastwerte von dem Abgeleitete-Zeitreihe-Ereignis-Hub 2322 und Speichern der abgeleiteten Zeitreihenabtastwerte in einer dauerhaften Speicherung (z. B. der Zeitreihendatenbank 928) beinhalten. Bei manchen Ausführungsformen wird der Schritt 2368 in Azure unter Verwendung von Azure Worker Roles bereitgestellt. Die Worker-Rolle kann Anforderungen mit einer Rate erzeugen, die auf Y % der Speicherungskapazität basiert. Falls beispielsweise die Kapazität der Speicherung 10.000 Speichereinheiten beträgt und Y % 50 % beträgt (z. B. sind 50% des Speicherungsdurchsatzes für Abtastwertschreibvorgänge reserviert) und jeder Schreibvorgang 5 Speicherungseinheiten benötigt, kann Schritt 2368 insgesamt 1.000 Schreibvorgänge pro Sekunde erzeugen ( d .h . 10.000 50 % 5 = 1.000 ) .

Figure DE112018004336T5_0034
It is shown that process 2350 Storing the derived time series in the time series storage contains (step 2368 ). The derived time series can contain the results of the operations performed in step 2366 be performed. step 2368 may accept derived time series samples from the derived time series event hub 2322 and storing the derived time series samples in permanent storage (e.g., the time series database 928 ) include. In some embodiments, the step 2368 deployed in Azure using Azure Worker Roles. The worker role can generate requests at a rate based on Y% of the storage capacity. For example, if the storage capacity 10,000 Storage units and Y% is 50% (e.g., 50% of storage throughput is reserved for sample writes) and each write 5 Storage units needed can step 2368 generate a total of 1,000 writes per second ( d .H . 10,000 50 % 5 = 1,000 ) .
Figure DE112018004336T5_0034

Streaming-DatenverarbeitungStreaming data processing

Nun unter Bezugnahme auf 24 ist ein System 2400 zum Streaming von Daten gemäß einem Ausführungsbeispiel gezeigt. Das System 2400 kann als Teil der Gebäudeverwaltungsplattform 102 implementiert werden und kann verschiedene Systeme oder Vorrichtungen enthalten, die zum Sammeln und Verarbeiten von Zeitreihendaten konfiguriert sind. Beispielsweise wird gezeigt, dass das System 2400 die IoT-Vorrichtungen 2614, den Zeitreihendienst 628, einen Wetterdienst 152, die Zeitreihendatenbank 928 enthält.Now referring to 24th is a system 2400 shown for streaming data according to an embodiment. The system 2400 can be part of the building management platform 102 may be implemented and may include various systems or devices configured to collect and process time series data. For example, it is shown that the system 2400 the IoT devices 2614 , the time series service 628 , a weather service 152 , the time series database 928 contains.

Die IoT-Vorrichtungen 2614 können beliebige einer Vielzahl von Sensoren 2404, physischen Vorrichtungen oder Ausrüstung 2406 (z.B. Aktoren, Elektronikgeräten, Fahrzeugen, Haushaltsgeräten usw.) und/oder anderen Gegenständen mit Netzkonnektivität einschließen, die es IoT-Vorrichtungen 2614 ermöglichen, mit der Gebäudeverwaltungsplattform 102 zu kommunizieren. IoT-Vorrichtungen 2614 können beispielsweise intelligente Home-Hub-Vorrichtungen, intelligente Hausvorrichtungen, Türklingelkameras, Luftqualitätssensoren, intelligente Schalter, intelligente Lichter, intelligente Geräte, Garagentoröffner, Rauchmelder, Herzüberwachungsimplantate, Biochip-Transponder, Kameras, die Live-Feeds streamen, Automobile mit eingebauten Sensoren, DNA-Analysevorrichtungen, Feldbetriebsvorrichtungen, Ortungsvorrichtungen für Personen/Fahrzeuge/Ausrüstung, vernetzten Sensoren, drahtlose Sensoren, Wearable-Sensoren, Umgebungssensoren, RFID-Gateways und -Lesegeräte, IoT-Gateway-Vorrichtungen, Roboter und andere robotische Vorrichtungen, GPS-Vorrichtungen, Smartwatches, Virtuelle/Erweiterte-Realität-Vorrichtungen und/oder andere vernetzte oder vernetzbare Vorrichtungen einschließen. Bei manchen Ausführungsformen beinhalten die IoT-Vorrichtungen 2614 manche oder alle der Vorrichtungen 112-116, 122-126, 132-136 und 142-146, wie unter Bezugnahme auf 1 beschrieben ist.The IoT devices 2614 can be any of a variety of sensors 2404 , physical devices or equipment 2406 (e.g. actuators, electronic devices, vehicles, household appliances, etc.) and / or other items with network connectivity that include IoT devices 2614 enable with the building management platform 102 to communicate. IoT devices 2614 For example, intelligent home hub devices, intelligent home devices, doorbell cameras, air quality sensors, intelligent switches, intelligent lights, intelligent devices, garage door openers, smoke detectors, heart monitoring implants, biochip transponders, cameras that stream live feeds, automobiles with built-in sensors, DNA Analysis devices, field operating devices, location devices for people / Vehicles / equipment, networked sensors, wireless sensors, wearable sensors, environmental sensors, RFID gateways and readers, IoT gateway devices, robots and other robotic devices, GPS devices, smartwatches, virtual / augmented reality devices and / or include other networked or networkable devices. In some embodiments, the IoT devices include 2614 some or all of the devices 112-116 , 122-126 , 132-136 and 142-146 as referring to 1 is described.

Es ist gezeigt, dass die IoT-Vorrichtungen 2614 Zeitreihenabtastwerte und Ereignisdaten an den Zeitreihendienst 628 liefern. Zeitreihenabtastwerte können Messungen enthalten, die durch die Sensoren 2404 erhalten werden. Beispielsweise können die Sensoren 2404 verschiedene Arten von Messungen sammeln und die Messungen an den Zeitreihendienst 628 senden. Bei manchen Ausführungsformen beinhaltet jede Messung einen gemessenen Wert, der einen Wert der gemessenen Variablen angibt, und einen Zeitstempel, der einen Zeitpunkt angibt, zu dem die Variable gemessen wurde. Zeitreihenabtastwerte können auch überwachte Variablen oder Zustände der Ausrüstung 2406 enthalten. Beispielsweise können IoT-Vorrichtungen 2614 interne Variablen speichern, die Ausrüstungszustände repräsentieren (z. B. Ausrüstung ein-/ausgeschaltet, Tür offen/geschlossen, Ausrüstung arbeitet mit einer Kapazität von 50% usw.). Jeder Zeitreihenabtastwert kann Werte einer speziellen Variablen oder eines speziellen Zustands und einen Zeitstempel enthalten, der einen Zeitpunkt angibt, zu dem die Variable oder der Zustand beobachtet wurde.It is shown that the IoT devices 2614 Time series samples and event data to the time series service 628 deliver. Time series samples can include measurements taken by the sensors 2404 be preserved. For example, the sensors 2404 collect different types of measurements and take the measurements to the time series service 628 send. In some embodiments, each measurement includes a measured value that indicates a value of the measured variable and a timestamp that indicates a time when the variable was measured. Time series samples can also be monitored variables or equipment states 2406 contain. For example, IoT devices 2614 Store internal variables that represent equipment states (e.g. equipment on / off, door open / closed, equipment works with a capacity of 50%, etc.). Each time series sample may contain values of a particular variable or state and a time stamp that indicates a point in time at which the variable or state was observed.

Ereignisdaten können eine beliebige Art von Daten enthalten, die verschiedene Ereignisse beschreiben, die durch die IoT-Vorrichtungen 2614 beobachtet werden. Jeder Abtastwert von Ereignisdaten kann eine Beschreibung oder Angabe des Ereignisses und einen Zeitstempel enthalten, der angibt, wann das Ereignis aufgetreten ist. Beispielsweise können Ereignisdaten Ausweiszugangsereignisse enthalten, die auftreten, wenn eine Person einen ID-Ausweis an einem Kartenlesegerät der Ausrüstung 2406 scannt (z. B. wurde ein spezieller Ausweis an einem speziellen Kartenlesegerät zu einem speziellen Zeitpunkt gescannt). Ereignisdaten können Sicherheitsereignisse enthalten, die durch Sicherheitsausrüstung erzeugt werden (z. B. wurde ein Eindringling am Südeingang detektiert). Ereignisdaten können Alarme oder Fehler enthalten, die durch die Ausrüstung 2406 und/oder anderen Arten von IoT-Vorrichtungen 2614 detektiert werden (z. B. einen speziellen Fehler, der innerhalb einer speziellen Vorrichtung der Ausrüstung 2406 zu einem speziellen Zeitpunkt aufgetreten ist).Event data can include any type of data that describes various events performed by the IoT devices 2614 to be watched. Each sample of event data can include a description or indication of the event and a timestamp that indicates when the event occurred. For example, event data may include badge access events that occur when a person has an ID badge on a card reader of the equipment 2406 scanned (e.g. a special ID card was scanned on a special card reader at a specific time). Event data can include security events generated by security equipment (e.g., an intruder was detected at the south entrance). Event data can include alarms or errors caused by the equipment 2406 and / or other types of IoT devices 2614 can be detected (e.g. a special fault occurring within a special device of the equipment 2406 occurred at a specific time).

Es wird gezeigt, dass der Wetterdienst 152 Wetterdaten an den Zeitreihendienst 628 liefert. Wetterdaten können Abtastwerte verschiedener wetterbezogener Variablen enthalten, die von dem Wetterdienst 152 beobachtet werden. Beispielsweise können Wetterdaten Temperaturdaten, Feuchtigkeitsdaten, Niederschlagsdaten, Windgeschwindigkeitsdaten, Wolkenpositionsdaten, Atmosphärendruckdaten und/oder andere Arten von wetterbezogenen Variablen beinhalten. Wetterdaten können aktuelle Werte der wetterbezogenen Variablen, vergangene Werte der wetterbezogenen Variablen (z. B. historische Werte) und/oder zukünftige Werte der wetterbezogenen Variablen (z. B. vorhergesagte oder geschätzte Werte) enthalten. Jeder Abtastwert der Wetterdaten kann einen Wert einer speziellen wetterbezogenen Variable und einen Zeitstempel enthalten, der einen Zeitpunkt, zu dem der entsprechende Wert beobachtet wurde, oder einen Zeitpunkt, für den der entsprechende Wert vorhergesagt wird, enthält.It is shown that the weather service 152 Weather data to the time series service 628 delivers. Weather data can include samples of various weather related variables provided by the weather service 152 to be watched. For example, weather data may include temperature data, humidity data, precipitation data, wind speed data, cloud position data, atmospheric pressure data and / or other types of weather related variables. Weather data can include current values of the weather related variables, past values of the weather related variables (e.g. historical values) and / or future values of the weather related variables (e.g. predicted or estimated values). Each sample of the weather data may include a value of a particular weather related variable and a timestamp that includes a time at which the corresponding value was observed or a time at which the corresponding value is predicted.

Es wird gezeigt, dass der Zeitreihendienst 628 einen Zeitreihenidentifikator 2414, einen DAG-Identifikator 2416, Ausführungs-Engines 2330 und eine Zeitreihengenerator 2418 enthält. Der Zeitreihenidentifikator 2414 kann die Zeitreihenabtastwerte und Ereignisdaten von IoT-Vorrichtungen 2614 und die Wetterdaten von dem Wetterdienst 152 empfangen. Der Zeitreihenidentifikator 2414 kann eine Zeitreihe identifizieren, die jedem eingehenden Datenabtastwert zugeordnet ist. Die identifizierte Zeitreihe für einen speziellen Datenabtastwert kann eine Rohdatenzeitreihen sein, die in der Zeitreihendatenbank 928 gespeichert ist und die eine Reihe von Werten für dieselbe Variable oder Datenquelle enthält. Beispielsweise kann die Zeitreihe in dem folgenden Format gespeichert werden: [ < S c h l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 2 , W e r t 2 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 3 , W e r t 3 > ]

Figure DE112018004336T5_0035
wobei Schlüsseleine Kennung der Quelle der Datenabtastwerte ist (z. B. Zeitreihe-ID, Sensor-ID, usw.) ist, Zeitstemepeli einen Zeitpunkt identifiziert, der dem i-ten Abtastwert zugeordnet ist, und Werti den Wert von des i-ten Abtastwerts angibt. Der Zeitreihenidentifikator 2414 kann Attribute der eingehenden Datenabtastwerte (z. B. Datenquelle, Sensor-ID, Variablen-ID usw.) verwenden, um eine spezielle Zeitreihe zu identifizieren, die jedem Abtastwert zugeordnet ist, und kann die identifizierte Zeitreihen-ID an den DAG-Identifikator 2416 liefern.It is shown that the time series service 628 a time series identifier 2414 , a DAG identifier 2416 , Execution engines 2330 and a time series generator 2418 contains. The time series identifier 2414 can collect the time series samples and event data from IoT devices 2614 and the weather data from the weather service 152 receive. The time series identifier 2414 can identify a time series associated with each incoming data sample. The identified time series for a particular data sample can be a raw data time series stored in the time series database 928 stored and which contains a series of values for the same variable or data source. For example, the time series can be saved in the following format: [ < S c H l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 2nd , W e r t 2nd > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 3rd , W e r t 3rd > ]
Figure DE112018004336T5_0035
where key is an identifier of the source of the data samples (e.g. time series ID, sensor ID, etc.), time stamp level i identifies a time associated with the i th sample, and value i is the value of the i- specifies th sample. The time series identifier 2414 may use attributes of the incoming data samples (e.g., data source, sensor ID, variable ID, etc.) to identify a particular time series associated with each sample, and may pass the identified time series ID to the DAG identifier 2416 deliver.

Der DAG-Identifikator 2416 kann die von dem Zeitreihenidentifikator 2414 empfangene Zeitreihen-ID verwenden, um einen oder mehrere DAGs zu identifizieren, die die identifizierte Zeitreihe als eine Eingabe verwenden. Wie oben beschrieben, kann ein DAG eine vordefinierte Sequenz von Verarbeitungsoperationen sein, die eine oder mehrere Eingabezeitreihen in eine oder mehrere Ausgabezeitreihen transformieren. Dementsprechend kann jeder DAG eine oder mehrere zugeordnete Eingabezeitreihen aufweisen. Bei manchen Ausführungsformen werden die Eingabezeitreihen für jeden DAG als Attribute des DAG in der DAG-Datenbank 930 gespeichert. Der DAG-Identifikator 2416 kann solche Informationen aus der DAG-Datenbank 930 lesen, um zu bestimmen, welcher der gespeicherten DAGs die identifizierten Zeitreihen als eine Eingabe verwenden. Der DAG-Identifikator 2416 kann eine Angabe der identifizierten DAGs in Form einer oder mehrerer DAG-IDs an die Ausführungs-Engines 2330 liefern. The DAG identifier 2416 can be that of the time series identifier 2414 Use received time series ID to identify one or more DAGs that use the identified time series as an input. As described above, a DAG can be a predefined sequence of processing operations that transform one or more input time series into one or more output time series. Accordingly, each DAG can have one or more assigned input time series. In some embodiments, the input time series for each DAG are considered attributes of the DAG in the DAG database 930 saved. The DAG identifier 2416 can get such information from the DAG database 930 Read to determine which of the stored DAGs use the identified time series as an input. The DAG identifier 2416 may provide the execution engines with the identified DAGs in the form of one or more DAG IDs 2330 deliver.

Wie oben beschrieben, können die Ausführungs-Engines 2330 eine C#-Engine 2332, eine Python-Engine 2334 oder eine beliebige andere Engine beinhalten, die zum Durchführen der durch einen DAG definierten Operationen konfiguriert ist. Bei manchen Ausführungsformen beinhalten die Ausführungs-Engines 2330 Zeitreihenoperatoren 906. Die Ausführungs-Engines 2330 können die eingehenden Daten von den IoT-Vorrichtungen 2614 und dem Wetterdienst 152 (d. h. die Zeitreihenabtastwerte, Ereignisdaten und Wetterdaten) sowie die DAG-IDs von dem DAG-Identifikator 2416 empfangen. Die Ausführungs-Engines 2330 können die DAGs unter Verwendung der eingehenden Daten als eine Eingabe ausführen, um abgeleitete Zeitreihenabtastwerte zu erzeugen. Jeder abgeleitete Zeitreihenabtastwert kann das Ergebnis einer Zeitreihenverarbeitungsoperation sein, die einen eingehenden Datenabtastwert als eine Eingabe verwendet. Bei manchen Ausführungsformen enthält jeder abgeleitete Zeitreihenabtastwert einen Schlüssel (z. B. eine Zeitreihen-ID), einen Zeitstempel und einen Wert.As described above, the execution engines 2330 a C # engine 2332 , a python engine 2334 or include any other engine configured to perform the operations defined by a DAG. In some embodiments, the execution engines include 2330 Time series operators 906 . The execution engines 2330 can receive the incoming data from the IoT devices 2614 and the weather service 152 (ie the time series samples, event data and weather data) as well as the DAG IDs from the DAG identifier 2416 receive. The execution engines 2330 can execute the DAGs using the incoming data as an input to produce derived time series samples. Each derived time series sample may be the result of a time series processing operation that uses an incoming data sample as an input. In some embodiments, each derived time series sample includes a key (e.g., a time series ID), a time stamp, and a value.

Ein Typ eines abgeleiteten Zeitreihenabtastwerts ist ein Virtueller-Punkt-Abtastwert. Der Ausführungs-Engines 2330 können virtuelle Datenpunkte berechnen, indem er beliebige einer Vielzahl von mathematischen Operationen oder Funktionen auf tatsächliche Datenpunkte oder andere virtuelle Datenpunkte anwendet. Beispielsweise können die Ausführungs-Engines 2330 einen virtuellen Datenpunkt (Punkt - ID3) durch Addieren von zwei oder mehr tatsächlichen Datenpunkten (Punkt - ID1 und Punkt - ID2) berechnen (z. B. Punkt - ID3 = Punkt - ID1 + Punkt - ID2). Als ein anderes Beispiel können die Ausführungs-Engines 2330 einen Enthalpiedatenpunkt (Punkt - ID4) basierend auf einem gemessenen Temperaturdatenpunkt (Punkt - ID5) und einen gemessenen Druckdatenpunkt (Punkt - ID6) berechnen (z. B. Punkt - ID4 = Enthalpie (Punkt - ID5, Punkt - ID6)). In manchen Fällen kann ein virtueller Datenpunkt aus einem einzigen tatsächlichen Datenpunkt abgeleitet werden. Beispielsweise können die Ausführungs-Engines 2330 eine Sättigungstemperatur (Punkt - ID7) eines bekannten Kühlmittels basierend auf einem gemessenen Kühlmitteldruck (Punkt - ID8) berechnen (z. B. Punkt - ID7 = Tsat(Punkt - ID8)).One type of derived time series sample is a virtual point sample. The execution engine 2330 can calculate virtual data points by applying any of a variety of mathematical operations or functions to actual data points or other virtual data points. For example, the execution engines 2330 calculate a virtual data point (point ID 3 ) by adding two or more actual data points (point ID 1 and point ID 2 ) (e.g. point ID 3 = point ID 1 + point ID 2 ). As another example, the execution engines 2330 calculate an enthalpy data point (point ID 4 ) based on a measured temperature data point (point ID 5 ) and a measured pressure data point (point ID 6 ) (e.g. point ID 4 = enthalpy (point ID 5 , point ID 6 )). In some cases, a virtual data point can be derived from a single actual data point. For example, the execution engines 2330 calculate a saturation temperature (point ID 7 ) of a known coolant based on a measured coolant pressure (point ID 8 ) (e.g. point ID 7 = T sat (point ID 8 )).

Ein anderer Typ eines abgeleiteten Zeitreihenabtastwerts ist ein Virtueller-Wetterpunkt-Abtastwert. Die Ausführungs-Engines 2330 können Werte von Virtueller-Wetterpunkt-Abtastwerten berechnen, indem sie die durch einen DAG definierten Zeitreihenverarbeitungsoperationen auf die eingehenden Wetterdaten anwenden. Zum Beispiel können die Ausführungs-Engines 2330 wetterbasierte Berechnungen unter Verwendung der eingehenden Wetterdaten durchführen, um Werte für wetterbezogene Variablen, wie etwa Kühlungsgradtage (CDD), Heizungsgradtage (HDD), Kühlungsenergietage (CED), Heizungsenergie zu erzeugen Tage (HED) und normalisierter Energieverbrauch, zu erzeugen. Diese und andere Beispiele für wetterbezogene abgeleitete Zeitreihenabtastwerte werden unter Bezugnahme auf den Wetterpunktrechner 912 ausführlich beschrieben.Another type of derived time series sample is a virtual weather point sample. The execution engines 2330 can calculate values from virtual weather point samples by applying the time series processing operations defined by a DAG to the incoming weather data. For example, the execution engines 2330 Perform weather-based calculations using the incoming weather data to generate values for weather-related variables such as cooling degree days (CDD), heating degree days (HDD), cooling energy days (CED), generating heating energy days (HED) and normalized energy consumption. These and other examples of weather related derived time series samples are described with reference to the weather point calculator 912 described in detail.

Ein anderer Typ eines abgeleiteten Zeitreihenabtastwerts ist ein Abtastwert eine Fehlerdetektionszeitreihe. Die Ausführungs-Engines 2330 können durch einen DAG definierte Fehlerdetektionsregeln auswerten, um Fehler in den eingehenden Daten zu detektieren. Zum Beispiel können die Ausführungs-Engines 2330 die Fehlerdetektionsregeln auf die Eingabezeitreihenabtastwerte anwenden, um zu bestimmen, ob jeder Abtastwert der Eingabezeitreihe als Fehler qualifiziert wird. Bei manchen Ausführungsformen enthält jeder abgeleitete Zeitreihenabtastwert einen Zeitstempel und einen Fehlerdetektionswert. Der Zeitstempel kann gleich dem Zeitstempel des entsprechenden Datenabtastwerts der Eingabezeitreihe sein. Der Fehlerdetektionswert kann angeben, ob der entsprechende Datenabtastwert der Datenzeitreihe als Fehler qualifiziert wird. Beispielsweise kann der Fehlerdetektionswert den Wert „Fehler“, wenn ein Fehler detektiert wird, und einen Wert“ Kein Fehler“ aufweisen, wenn in dem entsprechenden Datenabtastwert der Datenzeitreihe kein Fehler detektiert wird.Another type of derived time series sample is a sample of an error detection time series. The execution engines 2330 can evaluate error detection rules defined by a DAG in order to detect errors in the incoming data. For example, the execution engines 2330 apply the error detection rules to the input time series samples to determine whether each sample of the input time series qualifies as an error. In some embodiments, each derived time series sample includes a time stamp and an error detection value. The time stamp can be the same as the time stamp of the corresponding data sample of the input time series. The error detection value can indicate whether the corresponding data sample of the data time series is qualified as an error. For example, the error detection value can have the value “error” if an error is detected and a value “no error” if no error is detected in the corresponding data sample of the data time series.

Ein anderer Typ eines abgeleiteten Zeitreihenabtastwerts ist ein Abtastwert einer Abnormales-Ereignis-Zeitreihe. Die Ausführungs-Engines 2330 können durch einen DAG definierte Abnormales-Ereignis-Detektionsregeln auswerten, um abnormale Ereignisse in den Ereignisdaten zu erkennen. Zum Beispiel können die Ausführungs-Engines 2330 die Abnormales-Ereignis-Detektionsregeln auf die Ereignisdaten anwenden, um zu bestimmen, ob jeder Abtastwert der Ereignisdaten als ein abnormales Ereignis qualifiziert wird. Bei manchen Ausführungsformen enthält jeder abgeleitete Zeitreihenabtastwert einer Abnormales-Ereignis-Zeitreihe einen Zeitstempel und einen Abnormales-Ereignis-Wert. Der Zeitstempel kann gleich dem Zeitstempel des entsprechenden Abtastwerts der Ereignisdaten sein. Der Abnormales-Ereignis-Wert kann angeben, ob der entsprechende Abtastwert der Ereignisdaten normal oder abnormal ist. Beispielsweise kann der Abnormales-Ereignis-Wert einen Wert „Abnormal“, falls das Ereignis die Kriterien für abnormale Ereignisse erfüllt, und einen Wert „Normal“ aufweisen, falls das Ereignis die Kriterien für abnormale Ereignisse nicht erfüllt.Another type of derived time series sample is an abnormal event time series sample. The execution engines 2330 can evaluate abnormal event detection rules defined by a DAG to detect abnormal events in the event data. For example, the execution engines 2330 apply the abnormal event detection rules to the event data to determine whether each sample of the event data qualifies as an abnormal event. In some embodiments, each derived time series sample of an abnormal event time series includes a time stamp and an abnormal event value. The timestamp can be the same as the timestamp of the corresponding sample of the event data. The abnormal event value can indicate whether the corresponding sample of the event data is normal or abnormal. For example, the abnormal event value may have a value of “abnormal” if the event meets the criteria for abnormal events and a value of “normal” if the event does not meet the criteria for abnormal events.

Bei manchen Ausführungsformen wird ein Ereignis als abnormal angesehen, falls es erheblich von anderen ähnlichen Ereignissen abweicht (z. B. Ereignisse, die derselben Person, demselben Bereich, derselben Ausrüstung usw. zugeordnet sind). Falls beispielsweise die Ereignisdaten angeben, dass eine spezielle Person typischerweise jeden Tag zwischen 8:30 Uhr und 9:00 Uhr ein Gebäude mittels eines Ausweises betritt, kann ein Ereignis, das angibt, dass die Person um 3:00 Uhr das Gebäude mittels des Ausweises betritt, als abnormal angesehen werden. Gleichmaßen kann, falls die Wetterdaten angeben, dass in einem speziellen Gebäude in einem speziellen Monat typischerweise Außenlufttemperaturen zwischen 30 °F und 40 °F herrschen, eine Temperatur von 60 F in diesem Monat als abnormal angesehen werden.In some embodiments, an event is considered abnormal if it differs significantly from other similar events (e.g., events associated with the same person, area, equipment, etc.). For example, if the event data indicates that a particular person typically enters a building using a badge between 8:30 a.m. and 9 a.m., an event indicating that the person is entering the building at 3 a.m. is considered abnormal. Similarly, if the weather data indicates that outside air temperatures typically range between 30 ° F and 40 ° F in a particular building in a particular month, a temperature of 60 F that month may be considered abnormal.

Der Zeitreihengenerator 2418 kann die abgeleiteten Zeitreihenabtastwerte verwenden, um verschiedene abgeleitete Zeitreihen zu erzeugen. Die abgeleiteten Zeitreihen können Daten-Rollup-Zeitreihen, Virtueller-Punkt-Zeitreihen, Wetterpunktzeitreihen, Fehlerdetektionszeitreihen, Zeitreihen für zugewiesene Zustände, Zeitreihen für abnormale Ereignisse und/oder einen beliebigen anderen Typ abgeleiteter Zeitreihen enthalten, die durch Ausführung der identifizierten DAGs erzeugt werden. Der Zeitreihengenerator 2418 kann die abgeleiteten Zeitreihen in der Zeitreihendatenbank 928 oder einer anderen dauerhaften Speicherung speichern.The time series generator 2418 can use the derived time series samples to generate various derived time series. The derived time series may include data rollup time series, virtual point time series, weather point time series, error detection time series, assigned state time series, abnormal event time series and / or any other type of derived time series generated by execution of the identified DAGs. The time series generator 2418 can the derived time series in the time series database 928 or other permanent storage.

Iterative ZeitreihenverarbeitungIterative time series processing

Nun unter Bezugnahme auf 25A kann das System 2400 dazu konfiguriert sein, eine iterative Zeitreihenverarbeitung durchzuführen. Beispielsweise wird gezeigt, dass der Zeitreihenidentifikator 2414 eine Eingabezeitreihen empfängt. Die Eingabezeitreihen können Rohdatenzeitreihen, abgeleitete Zeitreihen oder eine Sammlung von Zeitreihenabtastwerten sein, die von den IoT-Vorrichtungen 2614 oder dem Wetterdienst 152 in Echtzeit empfangen werden (z. B. eingehende Streaming-Daten). Der Zeitreihenidentifikator 2414 identifiziert eine Zeitreihen-ID, die den Eingabezeitreihen zugeordnet ist, und kann die Zeitreihen-ID an den DAG-Identifikator 2416 liefern.Now referring to 25A can the system 2400 configured to perform iterative time series processing. For example, it is shown that the time series identifier 2414 receives an input time series. The input time series can be raw data time series, derived time series, or a collection of time series samples obtained from the IoT devices 2614 or the weather service 152 be received in real time (e.g. incoming streaming data). The time series identifier 2414 identifies a time series ID that is assigned to the input time series and can pass the time series ID to the DAG identifier 2416 deliver.

Der DAG-Identifikator 2416 kann die von dem Zeitreihenidentifikator 2414 empfangene Zeitreihen-ID verwenden, um einen oder mehrere DAGs zu identifizieren, die die Eingabezeitreihe als eine Eingabe verwenden. Wie oben beschrieben, kann ein DAG eine vordefinierte Sequenz von Verarbeitungsoperationen sein, die eine oder mehrere Eingabezeitreihen in eine oder mehrere Ausgabezeitreihen transformieren. Dementsprechend kann jeder DAG eine oder mehrere zugeordnete Eingabezeitreihen aufweisen. Bei manchen Ausführungsformen werden die Eingabezeitreihen für jeden DAG als Attribute des DAG in der DAG-Datenbank 930 gespeichert. Der DAG-Identifikator 2416 kann solche Informationen aus der DAG-Datenbank 930 lesen, um zu bestimmen, welcher der gespeicherten DAGs die Eingabezeitreihen als eine Eingabe verwenden. Der DAG-Identifikator 2416 kann eine Angabe der identifizierten DAGs in Form einer oder mehrerer DAG-IDs an die Ausführungs-Engines 2330 liefern.The DAG identifier 2416 can be that of the time series identifier 2414 Use received time series ID to identify one or more DAGs that use the input time series as an input. As described above, a DAG can be a predefined sequence of processing operations that transform one or more input time series into one or more output time series. Accordingly, each DAG can have one or more assigned input time series. In some embodiments, the input time series for each DAG are considered attributes of the DAG in the DAG database 930 saved. The DAG identifier 2416 can get such information from the DAG database 930 Read to determine which of the stored DAGs use the input time series as an input. The DAG identifier 2416 may provide the execution engines with the identified DAGs in the form of one or more DAG IDs 2330 deliver.

Die Ausführungs-Engines 2330 können die identifizierten DAGs unter Verwendung der Eingabezeitreihe als eine Eingabe ausführen, um abgeleitete Zeitreihenabtastwerte zu erzeugen. Der Zeitreihengenerator 2418 kann dann die abgeleiteten Zeitreihenabtastwerte zu einer ersten abgeleiteten Zeitreihe zusammenstellen. Die erste abgeleitete Zeitreihe kann in der Zeitreihendatenbank 928 gespeichert werden. Die erste abgeleitete Zeitreihe kann auch als eine Eingabe an den Zeitreihenidentifikator 2414 geliefert werden.The execution engines 2330 can execute the identified DAGs using the input time series as an input to produce derived time series samples. The time series generator 2418 can then compile the derived time series samples into a first derived time series. The first derived time series can be found in the time series database 928 get saved. The first derived time series can also be used as an input to the time series identifier 2414 to be delivered.

Der Zeitreihenidentifikator 2414 kann die erste abgeleitete Zeitreihe als eine Eingabe behandeln und der gesamte Prozess kann wiederholt werden. Zum Beispiel identifiziert der Zeitreihenidentifikator 2414 eine Zeitreihen-ID, die der ersten abgeleiteten Zeitreihe zugeordnet ist, und kann die Zeitreihen-ID an den DAG-Identifikator 2416 liefern. Der DAG-Identifikator 2416 kann die von dem Zeitreihenidentifikator 2414 empfangene Zeitreihen-ID verwenden, um einen oder mehrere DAGs zu identifizieren, die die erste abgeleitete Zeitreihe als eine Eingabe verwenden. Der DAG-Identifikator 2416 kann eine Angabe der identifizierten DAGs in Form einer oder mehrerer DAG-IDs an die Ausführungs-Engines 2330 liefern. Die Ausführungs-Engines 2330 können die identifizierten DAGs unter Verwendung der ersten abgeleiteten Zeitreihe als eine Eingabe ausführen, um abgeleitete Zeitreihenabtastwerte zu erzeugen. Der Zeitreihengenerator 2418 kann dann die abgeleiteten Zeitreihenabtastwerte zu einer zweiten abgeleiteten Zeitreihe zusammenstellen. Die zweite abgeleitete Zeitreihe kann in der Zeitreihendatenbank 928 gespeichert werden.The time series identifier 2414 can treat the first derived time series as an input and the whole process can be repeated. For example, the time series identifier identifies 2414 a time series ID associated with the first derived time series, and can pass the time series ID to the DAG identifier 2416 deliver. The DAG identifier 2416 can be that of the time series identifier 2414 Use received time series ID to identify one or more DAGs that use the first derived time series as an input. The DAG identifier 2416 may provide the execution engines with the identified DAGs in the form of one or more DAG IDs 2330 deliver. The execution engines 2330 can execute the identified DAGs using the first derived time series as an input to generate derived time series samples. The time series generator 2418 can then Assemble derived time series samples into a second derived time series. The second derived time series can be found in the time series database 928 get saved.

Nun unter Bezugnahme auf 25B ist ein Flussdiagramm eines iterativen Zeitreihenverarbeitungsarbeitsprozesses 2500 gemäß einem Ausführungsbeispiel gezeigt. Der Prozess 2500 kann von einer oder mehreren Komponenten der Gebäudeverwaltungsplattform 102 oder des Systems 2400, wie zuvor beschrieben, durchgeführt werden. Es wird gezeigt, dass der Prozess 2500 Erhalten einer Eingabezeitreihen (Schritt 2502) und Identifizieren eines ersten DAG beinhaltet, der die Eingabezeitreihen als eine Eingabe verwendet (Schritt 2504). Es wird gezeigt, dass der Prozess 2500 Durchführen von Zeitreihenverarbeitungsoperationen beinhaltet, die durch den DAG definiert sind, um eine abgeleitete Zeitreihe zu erzeugen (Schritt 2506). Die abgeleitete Zeitreihe kann in der Zeitreihendatenbank 928 gespeichert werden.Now referring to 25B Fig. 4 is a flowchart of an iterative time series processing work process 2500 shown according to an embodiment. The process 2500 can be from one or more components of the building management platform 102 or the system 2400 as described above. It is shown that the process 2500 Get an input time series (step 2502 ) and identifying a first DAG that uses the input time series as an input (step 2504 ). It is shown that the process 2500 Performing time series processing operations defined by the DAG to generate a derived time series (step 2506 ). The derived time series can be found in the time series database 928 get saved.

Die abgeleitete Zeitreihe kann dann als eine Eingabe an den Zeitreihendienst 628 behandelt werden. Beispielsweise wird gezeigt, dass der Prozess 2500 Identifizieren eines anderen DAG, der die abgeleitete Zeitreihe als eine Eingabe verwendet (Schritt 2508), und Durchführen von Zeitreihenverarbeitungsoperationen beinhaltet, die durch den anderen DAG definiert sind, um eine andere abgeleitete Zeitreihe zu erzeugen (Schritt 2510). Bei manchen Ausführungsformen unterscheidet sich der DAG, die die abgeleitete Zeitreihe als eine Eingabe verwendet, von dem ersten DAG, der die Eingabezeitreihen als eine Eingabe verwendet. Die in Schritt 2510 erzeugte abgeleitete Zeitreihe kann in der Zeitreihendatenbank 928 gespeichert werden.The derived time series can then be input to the time series service 628 be treated. For example, it is shown that the process 2500 Identify another DAG that uses the derived time series as an input (step 2508 ), and performing time series processing operations defined by the other DAG to generate another derived time series (step 2510 ). In some embodiments, the DAG that uses the derived time series as an input differs from the first DAG that uses the input time series as an input. The one in step 2510 Derived time series generated can be in the time series database 928 get saved.

Die in Schritt 2510 erzeugte abgeleitete Zeitreihe kann auch als eine andere Eingabe für den Zeitreihendienst 628 behandelt werden. Die Schritte 2508-2510 können iterativ wiederholt werden, bis die in der letzten Iteration von Schritt 2510 erzeugte Zeitreihe nicht als Eingabe für irgendeinen der DAGs verwendet wird. Jede Iteration der Schritte 2508-2510 kann eine andere abgeleitete Zeitreihe erzeugen, die in der Zeitreihendatenbank 928 gespeichert werden kann.The one in step 2510 Derived time series generated can also be used as another input for time series service 628 be treated. The steps 2508-2510 can be repeated iteratively until the last iteration of step 2510 generated time series is not used as input for any of the DAGs. Every iteration of the steps 2508-2510 can create another derived time series that is in the time series database 928 can be saved.

Cloud-basierte RückkopplungssteuerungCloud-based feedback control

Nun unter Bezugnahme auf 26 ist ein Blockdiagramm eines Cloud-basierten Rückkopplungssteuersystems 2600 gemäß einem Ausführungsbeispiel gezeigt. Herkömmliche Rückkopplungssteuersysteme beinhalten typischerweise eine Vor-Ort-Rückkopplungssteuerung, die sich in der Nähe des gesteuerten Systems oder der gesteuerten Vorrichtung befindet. Beispielsweise beinhalten Steuersysteme für Gebäudeausrüstung typischerweise eine Steuerung, die sich innerhalb desselben Gebäudes oder derselben Anlage wie die Gebäudeausrüstung befindet. Die Gebäudeausrüstung liefert Messungen oder eine andere Rückkopplung über einen drahtgebundenen oder drahtlosen Kommunikations-Link (z. B. Ethernet, Wi-Fi usw.) oder ein lokales Netzwerk (LAN) innerhalb des Gebäudes an die Steuerung. Die Steuerung verwendet die Rückkopplung von der Gebäudeausrüstung, um ein geeignetes Steuersignal zu erzeugen, das als eine Steuereingabe über den drahtgebundenen oder drahtlosen Kommunikations-Link oder das LAN an die Gebäudeausrüstung geliefert wird.Now referring to 26 Figure 3 is a block diagram of a cloud-based feedback control system 2600 shown according to an embodiment. Conventional feedback control systems typically include on-site feedback control that is in the vicinity of the controlled system or device. For example, control systems for building equipment typically include a controller that is within the same building or facility as the building equipment. The building equipment provides measurements or other feedback to the controller via a wired or wireless communication link (e.g. Ethernet, Wi-Fi etc.) or a local area network (LAN). The controller uses feedback from the building equipment to generate an appropriate control signal that is provided to the building equipment as a control input via the wired or wireless communication link or the LAN.

Das Cloud-basierte Rückkopplungssteuersystem 2600 verwendet die Gebäudeverwaltungsplattform 102, um eine Rückkopplungssteuerung als einen Cloud-basierten Plattformdienst bereitzustellen. Beispielsweise wird gezeigt, dass das Steuersystem 2600 die Gebäudeverwaltungsplattform 102, das Netz 104 und den Campus 2602 beinhaltet. In einer kurzen Übersicht liefert der Campus 2602 über Rückkopplungsabtastwerte (z. B. Messungen, Abtastwerte von überwachten Variablen, Systemzustände, Werte von Punkten usw.) das Netz 104 an die Gebäudeverwaltungsplattform 102. Die Gebäudeverwaltungsplattform 102 verwendet die Rückkopplungsabtastwerte als eine Eingabe für einen Cloud-basierten Rückkopplungssteueralgorithmus (z. B. PID, MPC usw.), der die Rückkopplungsabtastwerte verwendet, um Steuersignalabtastwerte zu erzeugen. Bei manchen Ausführungsformen behandelt die Gebäudeverwaltungsplattform 102 die Rückkopplungsabtastwerte als Abtastwerte einer Eingabezeitreihe und verarbeitet die Eingabezeitreihen unter Verwendung eines Rückkopplungssteuer-DAG. Der Rückkopplungssteuer-DAG wandelt die Rückkopplungsabtastwerte in Steuersignalabtastwerte um, die eine Art von abgeleiteten Zeitreihenabtastwerten sind. Die Steuersignalabtastwerte werden dann als ein Steuersignal über das Netz 104 zurück an den Campus 102 geliefert.The cloud-based feedback control system 2600 uses the building management platform 102 to provide feedback control as a cloud-based platform service. For example, it is shown that the control system 2600 the building management platform 102 , the network 104 and the campus 2602 includes. The campus provides a brief overview 2602 the network via feedback samples (e.g. measurements, samples of monitored variables, system states, values of points, etc.) 104 to the building management platform 102 . The building management platform 102 uses the feedback samples as an input to a cloud-based feedback control algorithm (e.g., PID, MPC, etc.) that uses the feedback samples to generate control signal samples. In some embodiments, the building management platform handles 102 the feedback samples as samples of an input time series and processes the input time series using a feedback control DAG. The feedback control DAG converts the feedback samples into control signal samples, which are a type of derived time series samples. The control signal samples are then sent as a control signal over the network 104 back to campus 102 delivered.

Wie oben beschrieben, kann die Gebäudeverwaltungsplattform 102 über mehrere Verarbeitungsvorrichtungen verteilt sein und kann daher mehrere Verarbeitungsvorrichtungen nutzen, um die Steuersignale zu erzeugen. Die Verwendung mehrerer Verarbeitungsvorrichtungen bietet einige Vorteile gegenüber herkömmlichen Vor-Ort-Steuerungen, die nur eine einzige Verarbeitungsvorrichtung verwenden. Beispielsweise reduziert die Verwendung mehrerer Remote-Verarbeitungsvorrichtungen die Notwendigkeit für eingebaute Verarbeitungsvorrichtungen oder andere Ressourcen vor Ort, z. B. physische Steuerungen, die sich bei der Gebäudestelle befinden. Die Verwendung mehrerer Remote-Verarbeitungsvorrichtungen reduziert auch die Verarbeitungslatenz im Vergleich zu einer einzigen Verarbeitungsvorrichtung, indem eine parallele Verarbeitung über mehrere Vorrichtungen hinweg ermöglicht wird. Beispielsweise können manche Teile des Rückkopplungssteuer-DAG von einer ersten Verarbeitungsvorrichtung verarbeitet werden, während andere Teile des Rückkopplungssteuer-DAG von anderen Verarbeitungsvorrichtungen verarbeitet werden können. Dies ermöglicht eine schnellere Ausführung und eine reaktionsschnellere Rückkopplungssteuerung im Vergleich zu herkömmlichen Steuerungen vor Ort mit einer einzigen Verarbeitungsvorrichtung.As described above, the building management platform 102 be distributed across multiple processing devices and can therefore use multiple processing devices to generate the control signals. The use of multiple processing devices offers several advantages over conventional on-site controls that use only a single processing device. For example, using multiple remote processing devices reduces the need for built-in processing devices or other on-site resources, e.g. B. physical controls that are in the Building site. The use of multiple remote processing devices also reduces processing latency compared to a single processing device by allowing parallel processing across multiple devices. For example, some parts of the feedback control DAG can be processed by a first processing device, while other parts of the feedback control DAG can be processed by other processing devices. This enables faster execution and more responsive feedback control compared to conventional on-site controls with a single processing device.

Es wird gezeigt, dass der Campus 2602 ein Gebäudeverwaltungssystem (BMS) 2604, eine Zentralanlage 2606 und IoT-Vorrichtungen 2614 beinhaltet. Ein BMS ist allgemein ein System aus Vorrichtungen, die zum Steuern, Überwachen und Verwalten von Ausrüstung in einem Gebäude oder Gebäudebereich oder um dieses/diesen herum konfiguriert sind. Zum Beispiel kann das BMS 2604 ein HVAC-System, ein Sicherheitssystem, ein Beleuchtungssystem, ein Feueralarmsystem oder ein beliebiges anderes System, das zum Verwalten von Gebäudefunktionen oder -Vorrichtungen in der Lage ist, oder eine beliebige Kombination davon beinhalten. Ein Beispiel für ein BMS, das als das BMS 2604 verwendet werden kann, ist ausführlich in der US-Patentanmeldung Nr. 14/717,593 , mit dem Titel „Building Management System for Forecasting Time Series Values of Building Variables“ und eingereicht am 20. Mai 2015, beschreiben, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen wird.It is shown that the campus 2602 a building management system (BMS) 2604 , a central system 2606 and IoT devices 2614 includes. A BMS is generally a system of devices configured to control, monitor and manage equipment in or around a building or building area. For example, the BMS 2604 an HVAC system, a security system, a lighting system, a fire alarm system, or any other system capable of managing building functions or devices, or any combination thereof. An example of a BMS that is called the BMS 2604 can be used is detailed in the U.S. Patent Application No. 14 / 717,593 , entitled "Building Management System for Forecasting Time Series Values of Building Variables" and filed on May 20, 2015, the entire disclosure of which is hereby incorporated by reference.

Das BMS 2604 kann eine Vielzahl von Gebäudesubsystemen beinhalten, einschließlich beispielsweise eines elektrischen Gebäudesubsystems, eines Informationskommunikationstechnologie(ICT)-Subsystems, eines Sicherheitssubsystems, eines HVAC-Subsystems, eines Beleuchtungssubsystems, eines Aufzugs/Rolltreppen-Subsystems und eines Brandschutzsubsystems. Bei verschiedenen Ausführungsformen können die Gebäudesubsysteme weniger, zusätzliche oder alternative Subsysteme beinhalten. Beispielsweise können die Gebäudesubsysteme auch oder alternativ ein Kälteerzeugungssubsystem, ein Werbe- oder Beschilderungssubsystem, ein Kochsubsystem, ein Verkaufssubsystem, ein Drucker- oder Kopierdienstsubsystem oder einen anderen Typ eines Gebäudesubsystems beinhalten, das steuerbare Ausrüstung und/oder verwendet Sensoren zur Überwachung oder Steuerung eines variablen Zustands oder einer variablen Bedingung eines Gebäudes verwendet.The BMS 2604 may include a variety of building subsystems, including, for example, an electrical building subsystem, an information communication technology (ICT) subsystem, a security subsystem, an HVAC subsystem, a lighting subsystem, an elevator / escalator subsystem, and a fire protection subsystem. In various embodiments, the building subsystems may include fewer, additional, or alternative subsystems. For example, the building subsystems may also or alternatively include a refrigeration subsystem, an advertising or signage subsystem, a cooking subsystem, a sales subsystem, a printer or copier service subsystem, or another type of building subsystem that uses controllable equipment and / or uses sensors to monitor or control a variable condition or a variable condition of a building.

Jedes der Gebäudesubsysteme kann eine beliebige Anzahl an Vorrichtungen, Steuerungen und Verbindungen (die gemeinsam als Gebäudeausrüstung 2608 bezeichnet werden) zum Vervollständigen seiner einzelnen Funktionen und Steuerungsaktivitäten enthalten. Die Gebäudeausrüstung 2608 kann HVAC-Ausrüstung, wie etwa Kühler, Heizkessel, Lüftungseinheiten, Economizer, Feldsteuerungen, Überwachungssteuerungen, Aktoren, Sensoren (z. B. Temperatur, Luftfeuchtigkeit, Durchflussrate usw.) und andere Vorrichtungen zum Steuern der Temperatur, Luftfeuchtigkeit, des Luftstroms oder andere variable Bedingungen innerhalb eines Gebäudes beinhalten. Bei manchen Ausführungsformen beinhaltet die Gebäudeausrüstung 2608 Beleuchtungsausrüstung, wie etwa Beleuchtungskörpern, Vorschaltgeräte, Lichtsensoren, Dimmer oder andere Vorrichtungen, die dazu konfiguriert sind, die für einen Gebäudebereich bereitgestellte Lichtmenge steuerbar anzupassen. Bei manchen Ausführungsformen beinhaltet die Gebäudeausrüstung 2608 Sicherheitsausrüstung, wie etwa Anwesenheitssensoren, Videoüberwachungskameras, digitale Videorecorder, Videoverarbeitungsserver, Eindringdetektionsvorrichtungen, Zugangssteuervorrichtungen und -server oder andere sicherheitsrelevante Vorrichtungen.Each of the building subsystems can have any number of devices, controls, and connections (collectively, as building equipment 2608 be included) to complete its individual functions and control activities. The building equipment 2608 may include HVAC equipment such as coolers, boilers, ventilation units, economizers, field controls, monitoring controls, actuators, sensors (e.g. temperature, humidity, flow rate, etc.) and other devices for controlling temperature, humidity, air flow or other variable Include conditions within a building. In some embodiments, the building equipment includes 2608 Lighting equipment, such as lighting fixtures, ballasts, light sensors, dimmers, or other devices that are configured to controllably adjust the amount of light provided for a building area. In some embodiments, the building equipment includes 2608 Security equipment such as presence sensors, video surveillance cameras, digital video recorders, video processing servers, intrusion detection devices, access control devices and servers, or other security-related devices.

Die Zentralanlage 2606 kann eine oder mehrere Unteranlagen beinhalten, die Ressourcen von Versorgungsunternehmen (z. B. Wasser, Erdgas, Strom usw.) verbrauchen, um die Lasten des Campus 2602 zu versorgen. Beispielsweise kann die Zentralanlage 2606 eine Heizungsunteranlage, eine Wärmerückgewinnungskühlerunteranlage, eine Kühlerunteranlage, eine Kühlturmunteranlage, eine Warm-TES-Unteranlage (TES: Wärmeenergiespeicherung) und eine Kalt-TES-Unteranlage (TES: Wärmeenergiespeicherung), einen Dampfunteranlage und/oder eine beliebige andere Art von Unteranlage beinhalten, die zur Versorgung des Campus 2602 konfiguriert ist. Jede der Unteranlagen kann eine Vielzahl von Zentralanlagenausrüstungen 2610 enthalten (z. B. Heizkessel, Kühler, Wärmerückgewinnungskühler, Kühltürme, Wärmeenergiespeicherungstanks, Batterien usw.). Die Unteranlagen können dazu konfiguriert sein, Eingaberessourcen (z. B. Strom, Wasser, Erdgas usw.) in Ausgaberessourcen (z. B. Kaltwasser, Warmwasser, gekühlte Luft, erwärmte Luft usw.) umzuwandeln, die an Gebäuden des Campus 2602 geliefert werden. Eine beispielhafte Zentralanlage, die als die Zentralanlage 2606 verwendet werden kann, ist in der US-Patentanmeldung Nr. 14/634,609 , mit dem Titel „High Level Central Plant Optimization“ und am 27. Februar 2015 eingereicht, beschrieben, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen wird.The central system 2606 may include one or more substations that consume utilities' resources (e.g. water, natural gas, electricity, etc.) to support the campus 2602 to supply. For example, the central system 2606 a heating subsystem, a heat recovery cooler subsystem, a cooler subsystem, a cooling tower subsystem, a warm TES subsystem (TES: thermal energy storage) and a cold TES subsystem (TES: thermal energy storage), a steam subsystem and / or any other type of subsystem that include to supply the campus 2602 is configured. Each of the substations can carry a variety of central plant equipment 2610 included (e.g. boilers, coolers, heat recovery coolers, cooling towers, thermal energy storage tanks, batteries, etc.). The substations can be configured to convert input resources (e.g., electricity, water, natural gas, etc.) to output resources (e.g., cold water, hot water, cooled air, heated air, etc.) on campus buildings 2602 to be delivered. An exemplary central system called the central system 2606 can be used is in the U.S. Patent Application No. 14 / 634,609 , entitled "High Level Central Plant Optimization" and filed on February 27, 2015, the entire disclosure of which is hereby incorporated by reference.

Die IoT-Vorrichtungen 2614 können beliebige einer Vielzahl von Sensoren, physischen Vorrichtungen oder Ausrüstung (z.B. Aktoren, Elektronikgeräten, Fahrzeugen, Haushaltsgeräten usw.) und/oder anderen Gegenständen mit Netzkonnektivität einschließen, die es IoT-Vorrichtungen 2614 ermöglichen, mit der Gebäudeverwaltungsplattform 102 zu kommunizieren. IoT-Vorrichtungen 2614 können beispielsweise intelligente Home-Hub-Vorrichtungen, intelligente Hausvorrichtungen, Türklingelkameras, Luftqualitätssensoren, intelligente Schalter, intelligente Lichter, intelligente Geräte, Garagentoröffner, Rauchmelder, Herzüberwachungsimplantate, Biochip-Transponder, Kameras, die Live-Feeds streamen, Automobile mit eingebauten Sensoren, DNA-Analysevorrichtungen, Feldbetriebsvorrichtungen, Ortungsvorrichtungen für Personen/Fahrzeuge/Ausrüstung, vernetzten Sensoren, drahtlose Sensoren, Wearable-Sensoren, Umgebungssensoren, RFID-Gateways und -Lesegeräte, IoT-Gateway-Vorrichtungen, Roboter und andere robotische Vorrichtungen, GPS-Vorrichtungen, Smartwatches, Virtuelle/Erweiterte-Realität-Vorrichtungen und/oder andere vernetzte oder vernetzbare Vorrichtungen einschließen. Bei manchen Ausführungsformen beinhalten die IoT-Vorrichtungen 2614 manche oder alle der Vorrichtungen 112-116, 122-126, 132-136 und 142-146, wie unter Bezugnahme auf 1 beschrieben ist. The IoT devices 2614 may include any of a variety of sensors, physical devices, or equipment (e.g., actuators, electronic devices, vehicles, household appliances, etc.) and / or other network connectivity items that are IoT devices 2614 enable with the building management platform 102 to communicate. IoT devices 2614 For example, intelligent home hub devices, intelligent home devices, doorbell cameras, air quality sensors, intelligent switches, intelligent lights, intelligent devices, garage door openers, smoke detectors, heart monitoring implants, biochip transponders, cameras that stream live feeds, automobiles with built-in sensors, DNA Analysis devices, field operating devices, locating devices for people / vehicles / equipment, networked sensors, wireless sensors, wearable sensors, environmental sensors, RFID gateways and reading devices, IoT gateway devices, robots and other robotic devices, GPS devices, smartwatches, virtual machines / Include augmented reality devices and / or other networked or networkable devices. In some embodiments, the IoT devices include 2614 some or all of the devices 112-116 , 122-126 , 132-136 and 142-146 as referring to 1 is described.

Es wird gezeigt, dass der Campus 2602 Rückkopplungsabtastwerte für die Gebäudeverwaltungsplattform 102, insbesondere für den Zeitreihendienst 628, bereitstellt. Die Rückkopplungsabtastwerte können Messungen beinhalten, die durch Sensoren der Gebäudeausrüstung 2608, der Zentralanlagenausrüstung 2610 und/oder der IoT-Vorrichtungen 2614 erhalten werden. Beispielsweise können die Sensoren verschiedene Arten von Messungen sammeln und die Messungen an den Zeitreihendienst 628 senden. Bei manchen Ausführungsformen beinhaltet jede Messung einen gemessenen Wert, der einen Wert der gemessenen Variablen angibt, und einen Zeitstempel, der einen Zeitpunkt angibt, zu dem die Variable gemessen wurde. Die Rückkopplungsabtastwerte können auch überwachte Variablen oder Zustände der Gebäudeausrüstung 2608, der Zentralanlagenausrüstung 2610 und/oder der IoT-Vorrichtungen 2614 beinhalten. Beispielsweise können die Gebäudeausrüstung 2608, die Zentralanlagenausrüstung 2610 und/oder die IoT-Vorrichtungen 2614 interne Variablen speichern, die Ausrüstungszustände repräsentieren (z. B. Ausrüstung ein-/ausgeschaltet, Tür offen/geschlossen, Ausrüstung arbeitet mit einer Kapazität von 50% usw.). Jeder Rückkopplungsabtastwert kann eine Wert einer speziellen Variablen oder eines speziellen Zustands und einen Zeitstempel enthalten, der einen Zeitpunkt angibt, zu dem die Variable oder der Zustand beobachtet wurde.It is shown that the campus 2602 Feedback samples for the building management platform 102 , especially for the time series service 628 , provides. The feedback samples may include measurements by building equipment sensors 2608 , the central plant equipment 2610 and / or the IoT devices 2614 be preserved. For example, the sensors can collect different types of measurements and the measurements to the time series service 628 send. In some embodiments, each measurement includes a measured value that indicates a value of the measured variable and a timestamp that indicates a time when the variable was measured. The feedback samples can also be monitored variables or building equipment states 2608 , the central plant equipment 2610 and / or the IoT devices 2614 include. For example, the building equipment 2608 who have favourited Central System Equipment 2610 and / or the IoT devices 2614 Store internal variables that represent equipment states (e.g. equipment on / off, door open / closed, equipment works with a capacity of 50%, etc.). Each feedback sample may include a value of a particular variable or state and a timestamp indicating a time when the variable or state was observed.

Es wird gezeigt, dass der Zeitreihendienst 628 einen Zeitreihenidentifikator 2414, einen DAG-Identifikator 2416, Ausführungs-Engines 2330 und eine Zeitreihengenerator 2418 enthält. Der Zeitreihenidentifikator 2414 kann die Rückkopplungsabtastwerte von dem Campus 2602 empfangen und kann eine Zeitreihe identifizieren, die jedem eingehenden Datenabtastwert zugeordnet ist. Die identifizierte Zeitreihe für einen speziellen Rückkopplungsabtastwert kann eine Rückkopplungszeitreihe (d. h. ein Typ einer Rohdatenzeitreihe) sein, die in der Zeitreihendatenbank 928 gespeichert ist und die eine Reihe von Werten für dieselbe Variable oder Datenquelle enthält. Beispielsweise kann die Rückkopplungszeitreihe in dem folgenden Format gespeichert werden: [ < S c h l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 2 , W e r t 2 > , < S c h l u ¨ s s e l , Z e i t s t e m p e l 3 , W e r t 3 > ]

Figure DE112018004336T5_0036
wobei Schlüsseleine Kennung der Quelle der Rückkopplungsabtastwerte ist (z. B. Zeitreihe-ID, Sensor-ID, usw.) ist, Zeitstempeli einen Zeitpunkt identifiziert, der dem i-ten Abtastwert zugeordnet ist, und Werti den Wert von des i-ten Abtastwerts angibt. Der Zeitreihenidentifikator 2414 kann Attribute der eingehenden Rückkopplungsabtastwerte (z. B. Datenquelle, Sensor-ID, Variablen-ID usw.) verwenden, um eine spezielle Rückkopplungszeitreihe zu identifizieren, die jedem Abtastwert zugeordnet ist, und kann die identifizierte Zeitreihen-ID an den DAG-Identifikator 2416 liefern.It is shown that the time series service 628 a time series identifier 2414 , a DAG identifier 2416 , Execution engines 2330 and a time series generator 2418 contains. The time series identifier 2414 can get the feedback samples from campus 2602 received and can identify a time series associated with each incoming data sample. The identified time series for a particular feedback sample may be a feedback time series (ie, a type of raw data time series) that is in the time series database 928 stored and which contains a series of values for the same variable or data source. For example, the feedback time series can be saved in the following format: [ < S c H l u ¨ s s e l , Z e i t s t e m p e l 1 , W e r t 1 > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 2nd , W e r t 2nd > , < S c H l u ¨ s s e l , Z e i t s t e m p e l 3rd , W e r t 3rd > ]
Figure DE112018004336T5_0036
where key is an identifier of the source of the feedback samples (e.g., time series ID, sensor ID, etc.), time stamp i identifies a time associated with the i th sample, and value i is the value of the i- specifies th sample. The time series identifier 2414 may use attributes of the incoming feedback samples (e.g., data source, sensor ID, variable ID, etc.) to identify a particular feedback time series associated with each sample, and may pass the identified time series ID to the DAG identifier 2416 deliver.

Der DAG-Identifikator 2416 kann die von dem Zeitreihenidentifikator 2414 empfangene Zeitreihen-ID verwenden, um einen oder mehrere Rückkopplungssteuer-DAGs zu identifizieren, die die identifizierte Rückkopplungszeitreihe als eine Eingabe verwenden. Wie oben beschrieben, kann ein DAG eine vordefinierte Sequenz von Verarbeitungsoperationen sein, die eine oder mehrere Eingabezeitreihen in eine oder mehrere Ausgabezeitreihen transformieren. Dementsprechend kann jeder DAG eine oder mehrere zugeordnete Eingabezeitreihen aufweisen. Ein Rückkopplungssteuer-DAG ist eine Art von DAG, der einen Rückkopplungssteueralgorithmus definiert. Beispielsweise kann ein Rückkopplungssteuer-DAG die Rückkopplungsabtastwerte als eine Eingabe akzeptieren und eine Sequenz von Verarbeitungsoperationen definieren, die die Rückkopplungsabtastwerte unter Verwendung einer Rückkopplungssteuertechnik in Steuersignalabtastwerte transformieren. Die durch einen Rückkopplungssteuer-DAG definierten Verarbeitungsoperationen können beliebige einer Vielzahl von Rückkopplungssteuertechniken implementieren, die beispielsweise eine zustandsbasierte Steuerung, eine ESC (nach Extremen suchende Steuerung), eine Proportional-Integral(PI)-Steuerung, eine Proportional-Integral-Ableitend(PID)-Steuerung, eine MPC (Modellvorhersagesteuerung) oder eine beliebige andere Art von Rückkopplungssteuertechnik beinhalten.The DAG identifier 2416 can be that of the time series identifier 2414 Use received time series ID to identify one or more feedback control DAGs that use the identified feedback time series as an input. As described above, a DAG can be a predefined sequence of processing operations that transform one or more input time series into one or more output time series. Accordingly, each DAG can have one or more assigned input time series. A feedback control DAG is a type of DAG that defines a feedback control algorithm. For example, a feedback control DAG may accept the feedback samples as an input and define a sequence of processing operations that transform the feedback samples into control signal samples using a feedback control technique. The processing operations defined by a feedback control DAG can be any implement a variety of feedback control techniques that include, for example, state-based control, ESC (extreme looking control), proportional integral (PI) control, proportional integral derivative (PID) control, MPC (model prediction control), or include any other type of feedback control technique.

Ein Beispiel für einen Rückkopplungssteuer-DAG ist ein PID-Steuer-DAG. Ein PID-Steuer-DAG kann die Ausführungs-Engines 2330 dazu veranlassen, einen Satz von Verarbeitungsoperationen durchzuführen, die typischerweise durch eine PID-Steuerung ausgeführt werden. Beispielsweise kann der PID-Steuer-DAG die Ausführungs-Engines 2330 dazu veranlassen, eine Differenz zwischen der Rückkopplungszeitreihe und einer Sollwertzeitreihe zu berechnen. Die berechnete Differenz kann als eine Fehlerzeitreihe gespeichert werden. Der PID-Steuer-DAG kann die Ausführungs-Engines 2330 dazu veranlassen, eine Proportionalverstärkung auf die Fehlerzeitreihe (z. B. Multiplizieren der Fehlerzeitreihen mit einem Proportionalverstärkungsparameter) anwenden, um eine Proportionalverstärkungskomponente des Steuersignals zu erzeugen.An example of a feedback control DAG is a PID control DAG. A PID control DAG can run the execution engines 2330 cause a set of processing operations to be performed that are typically performed by a PID controller. For example, the PID control DAG can be the execution engines 2330 cause a difference between the feedback time series and a setpoint time series to be calculated. The calculated difference can be saved as an error time series. The PID control DAG can run the execution engines 2330 cause a proportional gain to apply to the error time series (e.g., multiplying the error time series by a proportional gain parameter) to produce a proportional gain component of the control signal.

Der PID-Steuer-DAG kann die Ausführungs-Engines 2330 dazu veranlassen, die Fehlerzeitreihe über eine Zeit zu integrieren, um einen integrierten Fehlerwert für jeden Abtastwert der Fehlerzeitreihe zu berechnen. Die integrierten Fehlerwerte können Summierungen (d. h. numerische Integrale) des letzten Fehlerabtastwerts und eine vorbestimmte Anzahl vorheriger Fehlerabtastwerte sein. Bei manchen Ausführungsformen werden die integrierten Fehlerwerte als eine andere abgeleitete Zeitreihe (z. B. eine integrierte Fehlerzeitreihe) gespeichert. Der PID-Steuer-DAG kann die Ausführungs-Engines 2330 dazu veranlassen, eine Integralverstärkung auf die integrierte Fehlerzeitreihe (z. B. Multiplizieren der integrierten Fehlerzeitreihen mit einem Integralverstärkungsparameter) anwenden, um eine Integralverstärkungskomponente des Steuersignals zu erzeugen.The PID control DAG can run the execution engines 2330 cause the error time series to integrate over time to calculate an integrated error value for each sample of the error time series. The integrated error values can be summations (ie numerical integrals) of the last error sample and a predetermined number of previous error samples. In some embodiments, the integrated error values are stored as another derived time series (e.g., an integrated error time series). The PID control DAG can run the execution engines 2330 cause an integral gain to be applied to the integrated error time series (e.g., multiplying the integrated error time series by an integral gain parameter) to generate an integral gain component of the control signal.

Der PID-Steuer-DAG kann die Ausführungs-Engines 2330 dazu veranlassen, einen Ableitungsfehlerwert für jeden Abtastwert der Fehlerzeitreihe zu berechnen. Die Ableitungsfehlerwerte können die Steigung oder Änderungsrate der Fehlerzeitreihen relativ zu dem vorherigen Abtastwert sein. Bei manchen Ausführungsformen werden die Ableitungsfehlerwerte als eine andere abgeleitete Zeitreihe (z. B. eine Ableitungsfehlerzeitreihe) gespeichert. Der PID-Steuer-DAG kann die Ausführungs-Engines 2330 dazu veranlassen, eine Ableitungsverstärkung auf die Ableitungsfehlerzeitreihe (z. B. Multiplizieren der Ableitungsfehlerzeitreihen mit einem Ableitungsverstärkungsparameter) anwenden, um eine Ableitungsverstärkungskomponente des Steuersignals zu erzeugen. Der PID-Steuer-DAG kann die Ausführungs-Engines 2330 dazu veranlassen, die Proportionalverstärkungskomponente, die Integralverstärkungskomponente und die Ableitungsverstärkungskomponente zu kombinieren (z. B. zu summieren), um einen Wert für den nächsten Abtastwert der Steuersignalzeitreihe zu erzeugen.The PID control DAG can run the execution engines 2330 cause a derivative error value to be calculated for each sample of the error time series. The derivative error values can be the slope or rate of change of the error time series relative to the previous sample. In some embodiments, the derivative error values are stored as another derived time series (e.g., a derivative error time series). The PID control DAG can run the execution engines 2330 cause a derivative gain to be applied to the derivative error time series (e.g., multiplying the derivative error time series by a derivative gain parameter) to produce a derivative gain component of the control signal. The PID control DAG can run the execution engines 2330 cause the proportional gain component, the integral gain component, and the derivative gain component to be combined (e.g., sum) to produce a value for the next sample of the control signal time series.

Bei manchen Ausführungsformen werden die Rückkopplungszeitreihen für jeden Rückkopplungssteuer-DAG als Attribute des Rückkopplungssteuer-DAG in der DAG-Datenbank 930 gespeichert. Der DAG-Identifikator 2416 kann solche Informationen aus der DAG-Datenbank 930 lesen, um zu bestimmen, welcher der gespeicherten Rückkopplungssteuer-DAGs die identifizierten Rückkopplungszeitreihen als eine Eingabe verwenden. Der DAG-Identifikator 2416 kann eine Angabe der identifizierten Rückkopplungssteuer-DAGs in Form einer oder mehrerer DAG-IDs an die Ausführungs-Engines 2330 liefern.In some embodiments, the feedback time series for each feedback control DAG are stored as attributes of the feedback control DAG in the DAG database 930 saved. The DAG identifier 2416 can get such information from the DAG database 930 Read to determine which of the stored feedback control DAGs use the identified feedback time series as an input. The DAG identifier 2416 may provide an indication of the identified feedback control DAGs to the execution engines in the form of one or more DAG IDs 2330 deliver.

Bei manchen Ausführungsformen identifiziert der DAG-Identifikator 2416 auch beliebige andere Eingabezeitreihen, die als Eingaben für die identifizierten Rückkopplungssteuer-DAGs erforderlich sind. Beispielsweise kann eine Rückkopplungssteuer-DAG zum Steuern der Temperatur eines Gebäudebereichs zwei Eingaben aufweisen. Die erste Eingabe kann eine Rückkopplungszeitreihe sein, die Temperaturmessungen enthält, die von einem Temperatursensor innerhalb des Gebäudebereichs erfasst wurden. Die zweite Eingabe kann eine Sollwertzeitreihe sein, die den Temperatursollwert für den Gebäudebereich zu jedem von mehreren Zeitpunkten definiert. Der DAG-Identifikator 2416 kann alle der Zeitreihen identifizieren, die als Eingaben für die identifizierten Rückkopplungssteuer-DAGs erforderlich sind, und kann eine Angabe der identifizierten Zeitreihen in Form einer oder mehrerer Zeitreihen-IDs an die Ausführungs-Engines 2330 liefern.In some embodiments, the DAG identifier identifies 2416 also any other input time series that are required as inputs for the identified feedback control DAGs. For example, a feedback control DAG for controlling the temperature of a building area can have two inputs. The first input can be a feedback time series that contains temperature measurements that were detected by a temperature sensor within the building area. The second input can be a setpoint time series that defines the temperature setpoint for the building area at each of several times. The DAG identifier 2416 can identify all of the time series required as inputs to the identified feedback control DAGs, and can provide the execution engines with the identified time series in the form of one or more time series IDs 2330 deliver.

Wie oben beschrieben, können die Ausführungs-Engines 2330 eine C#-Engine 2332, eine Python-Engine 2334 oder eine beliebige andere Engine beinhalten, die zum Durchführen der durch einen DAG definierten Operationen konfiguriert ist. Bei manchen Ausführungsformen beinhalten die Ausführungs-Engines 2330 Zeitreihenoperatoren 906. Die Ausführungs-Engines 2330 können die eingehenden Rückkopplungsabtastwerte von dem Campus 2602 sowie die DAG-IDs und Zeitreihen-IDs von dem DAG-Identifikator 2416 empfangen. Die Ausführungs-Engines 2330 können die identifizierten Rückkopplungssteuer-DAGs aus der DAG-Datenbank 930 abrufen und können die identifizierten Zeitreihen aus der Zeitreihendatenbank 928 abrufen und die Rückkopplungssteuer-DAGs unter Verwendung der Rückkopplungsabtastwerte als eine Eingabe ausführen, um Steuersignalabtastwerte zu erzeugen. Jeder Steuersignalabtastwert kann das Ergebnis einer Zeitreihenverarbeitungsoperation sein, die die Rückkopplungsabtastwerte (und möglicherweise andere Zeitreihenabtastwerte) als eine Eingabe verwendet. Bei manchen Ausführungsformen enthält jeder Steuersignalabtastwert einen Schlüssel (z. B. eine Zeitreihen-ID), einen Zeitstempel und einen Wert.As described above, the execution engines 2330 a C # engine 2332 , a python engine 2334 or include any other engine configured to perform the operations defined by a DAG. In some embodiments, the execution engines include 2330 Time series operators 906 . The execution engines 2330 can get the incoming feedback samples from campus 2602 as well as the DAG IDs and time series IDs from the DAG identifier 2416 receive. The execution engines 2330 can the identified feedback control DAGs from the DAG database 930 retrieve and can identify the identified time series from the time series database 928 retrieve and the Execute feedback control DAGs using the feedback samples as an input to generate control signal samples. Each control signal sample may be the result of a time series processing operation that uses the feedback samples (and possibly other time series samples) as an input. In some embodiments, each control signal sample includes a key (e.g., a time series ID), a time stamp, and a value.

Die aus der Zeitreihendatenbank 928 abgerufenen Zeitreihen können Abtastwerte einer beliebigen der Eingabezeitreihen enthalten, die von einem oder mehreren der Rückkopplungssteuer-DAGs benötigt werden, einschließlich (in manchen Fällen) vorheriger Abtastwerte der Rückkopplungszeitreihe. Beispielsweise können einige Arten einer Rückkopplungssteuerung, wie etwa einer PI-Steuerung oder einer PID-Steuerung, sowohl den aktuellen Wert eines Rückkopplungssignals (d. h. den letzten Rückkopplungsabtastwert) als auch einen oder mehrere vergangene Werte des Rückkopplungssignals (d. h. einen oder mehrere vorherige Abtastwerte derselben Rückkopplungszeitreihe) erfordern, um einen Steuersignalabtastwert zu erzeugen (z. B. um einen integrierten Fehler über die Zeit zu bewerten). Dementsprechend können die Ausführungs-Engines 2330 eine oder mehrere vorherige Abtastwerte der Rückkopplungszeitreihe aus der Zeitreihendatenbank 928 abrufen. Die Ausführungs-Engines 2330 können die vorherigen Abtastwerte der Rückkopplungszeitreihe in Kombination mit dem aktuellen Abtastwert der Rückkopplungszeitreihe und einer beliebigen anderen Eingabezeitreihen verwenden, um den Rückkopplungssteuer-DAG auszuführen, wodurch Steuersignalabtastwerte erzeugt werden.The one from the time series database 928 retrieved time series may include samples of any of the input time series required by one or more of the feedback control DAGs, including (in some cases) previous samples of the feedback time series. For example, some types of feedback control, such as PI control or PID control, can include both the current value of a feedback signal (ie, the last feedback sample) and one or more past values of the feedback signal (ie, one or more previous samples of the same feedback time series) require to generate a control signal sample (e.g., to evaluate an integrated error over time). Accordingly, the execution engines 2330 one or more previous samples of the feedback time series from the time series database 928 recall. The execution engines 2330 may use the previous feedback time series samples in combination with the current feedback time series sample and any other input time series to perform the feedback control DAG, thereby generating control signal samples.

Der Zeitreihengenerator 2418 kann die Steuersignalabtastwerte verwenden, um eine Steuersignalzeitreihe zu erzeugen. Die Steuersignalzeitreihe kann in der Zeitreihendatenbank 928 gespeichert und/oder als eine Ausgabe der Gebäudeverwaltungsplattform 102 bereitgestellt werden. Es wird gezeigt, dass der Zeitreihengenerator 2418 ein Steuersignal an das Netz 104 und den Campus 2602 liefert. Das Steuersignal kann den Wert des letzten Steuersignalabtastwerts, der durch Ausführen des Rückkopplungssteuer-DAG erzeugt wird, und/oder der SteuersignalZeitreihe, die durch den Zeitreihengenerator 2418 erzeugt wird, beinhalten. Der Campus 2602 kann das Steuersignal verwenden, um die Gebäudeausrüstung 2608, die Zentralanlagenausrüstung 2610 und/oder die IoT-Vorrichtungen 2614 zu betreiben. Beispielsweise kann das Steuersignal als eine Eingabe an die Gebäudeausrüstung 2608 (z. B. über das BMS 2604), die Zentralanlagenausrüstung 2610 (z. B. über die Zentralanlage 2606) und/oder die IoT-Vorrichtungen 2614 geliefert werden.The time series generator 2418 can use the control signal samples to generate a control signal time series. The control signal time series can be in the time series database 928 stored and / or as an edition of the building management platform 102 to be provided. It is shown that the time series generator 2418 a control signal to the network 104 and the campus 2602 delivers. The control signal may be the value of the last control signal sample generated by executing the feedback control DAG and / or the control signal time series generated by the time series generator 2418 is generated. The campus 2602 can use the control signal to the building equipment 2608 who have favourited Central System Equipment 2610 and / or the IoT devices 2614 to operate. For example, the control signal can be input to the building equipment 2608 (e.g. via the BMS 2604 ), the central plant equipment 2610 (e.g. via the central system 2606 ) and / or the IoT devices 2614 to be delivered.

Vorteilhafterweise kann die durch die Gebäudeverwaltungsplattform 102 bereitgestellte Cloud-basierte Rückkopplungssteuerung lokale (z. B. vor Ort oder im Gebäude befindliche) Regelkreise ersetzen, die typischerweise von herkömmlichen Rückkopplungssteuersystemen verwendet werden. Anstatt dass eine lokale Rückkopplungssteuerung Rückkopplungsdaten empfangen und Steuersignale erzeugen muss, werden die Rückkopplungsdaten als eine Eingabe an die Gebäudeverwaltungsplattform 102 geliefert. Die Gebäudeverwaltungsplattform 102 identifiziert und führt Rückkopplungssteuerungs-DAGs aus, die die Funktionalität einer Rückkopplungssteuerung bereitstellen. Die Ausgaben der Rückkopplungssteuer-DAGs sind Steuersignalabtastwerte, die zurück an den Campus 2602 geliefert und zur Steuerung der Ausrüstung des Campus 2602 verwendet werden können.Advantageously, the through the building management platform 102 The cloud-based feedback control provided replaces local (e.g., on-site or in-building) control loops typically used by conventional feedback control systems. Rather than requiring local feedback control to receive feedback data and generate control signals, the feedback data is sent as an input to the building management platform 102 delivered. The building management platform 102 identifies and executes feedback control DAGs that provide feedback control functionality. The outputs of the feedback control DAGs are control signal samples that are sent back to campus 2602 delivered and used to control campus equipment 2602 can be used.

Identitätsverwaltung unter Verwendung intelligenter EntitätenIdentity management using intelligent entities

Nun unter Bezugnahme auf 27 ist ein Blockdiagramm eines Identitätsverwaltungssystems 2700 gemäß einem Ausführungsbeispiel gezeigt. Es ist gezeigt, dass das Identitätsverwaltungssystem 2700 einen Identitätsverwaltungsdienst 2702 und einen Entitätsdienst 2730 beinhaltet. Bei manchen Ausführungsformen sind der Identitätsverwaltungsdienst 2702 und der Entitätsdienst 2730 Typen der Cloud-Gebäudeverwaltungsplattform 620 innerhalb der Cloud-Gebäudeverwaltungsplattform 620. Bei manchen Ausführungsformen beinhalten der Identitätsverwaltungsdienst 2702 und der Entitätsdienst 2730 manche oder alle der Merkmale und/oder Funktionen der Datenplattform, die in der vorläufigen US-Patentanmeldung Nr. 62/564,247 , eingereicht am 27. September 2017, beschrieben sind, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen ist. Der Identitätsverwaltungsdienst 2702 kann dazu konfiguriert sein, verschiedene Identitätsverwaltungsfunktionen durchzuführen. Beispielsweise wird gezeigt, dass der Identitätsverwaltungsdienst 2702 ein Identitätskorrelationsmodul 2704, ein Identitätserkennungsmodul 2706, ein Identitätsverifizierungsmodul 2708, ein Identitätssyndikationsmodul 2710, ein Identitätskonsolidierungsmodul 2712, ein Echtzeitentscheidungsmodul 2714, ein Identitätsanalysemodul 2716 und ein Identitätslernmodul 2718 beinhaltet. Bei verschiedenen Implementierungen kann der Identitätsverwaltungsdienst 2702 weniger, zusätzliche oder andere Module als in 27 veranschaulicht enthalten.Now referring to 27th Figure 3 is a block diagram of an identity management system 2700 shown according to an embodiment. It is shown that the identity management system 2700 an identity management service 2702 and an entity service 2730 includes. In some embodiments, the identity management service 2702 and the entity service 2730 Types of cloud building management platform 620 within the cloud building management platform 620 . In some embodiments, the identity management service includes 2702 and the entity service 2730 some or all of the features and / or functions of the data platform described in the preliminary U.S. Patent Application No. 62 / 564,247 , filed on September 27, 2017, the entire disclosure of which is hereby incorporated by reference. The identity management service 2702 can be configured to perform various identity management functions. For example, the identity management service is shown 2702 an identity correlation module 2704 , an identity recognition module 2706 , an identity verification module 2708 , an identity syndication module 2710 , an identity consolidation module 2712 , a real-time decision module 2714 , an identity analysis module 2716 and an identity learning module 2718 includes. In various implementations, the identity management service can 2702 fewer, additional or different modules than in 27th illustrated included.

Der Entitätsdienst 2730 kann gleich oder ähnlich dem in 6 gezeigten Entitätsdienst 626 sein. Der Entitätsdienst 2730 kann dazu konfiguriert sein, mehrere miteinander verbundene intelligente Entitäten zu erzeugen und zu verwalten und die intelligenten Entitäten in der Entitätsdatenbank 2734 zu speichern. Die intelligenten Entitäten können Objektentitäten, die mehrere Personen oder physische Vorrichtungen repräsentieren, und Datenentitäten beinhalten, die Daten repräsentieren, die den Personen oder physischen Vorrichtungen zugeordnet sind. Die intelligenten Entitäten können durch relationale Objekte miteinander verbunden sein, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Bei manchen Ausführungsformen beinhaltet jede der Objektentitäten mehrere gespeicherte Identitätsattribute. Bei manchen Ausführungsformen führt der Entitätsdienst 2730 manche oder alle der Funktionen zur Erzeugung und Verwaltung intelligenter Entitäten durch, die ausführlich in der vorläufigen US-Patentanmeldung Nr. 62/611,974 , eingereicht am 29. Dezember 2017, und der vorläufigen US-Patentanmeldung Nr. 62/611,984 , eingereicht am 29. Dezember 2017, beschrieben sind, deren gesamte Offenbarungen hiermit durch Bezugnahme aufgenommen werden. The entity service 2730 can be the same or similar to that in 6 entity service shown 626 be. The entity service 2730 can be configured to create and manage multiple interconnected smart entities and the smart entities in the entity database 2734 save. The intelligent entities may include object entities that represent multiple people or physical devices and data entities that represent data associated with the people or physical devices. The intelligent entities can be linked by relational objects that indicate relationships between the object entities and the data entities. In some embodiments, each of the object entities includes multiple stored identity attributes. In some embodiments, the entity service runs 2730 some or all of the functions for creating and managing intelligent entities are detailed in the preliminary U.S. Patent Application No. 62 / 611,974 , filed on December 29, 2017, and preliminary U.S. Patent Application No. 62 / 611,984 , filed on December 29, 2017, the entire disclosures of which are hereby incorporated by reference.

Die Module 2704-2718 können dazu konfiguriert sein, Identitätsattribute zu empfangen und zu konsolidieren, um eine Entität zu erzeugen, die eine Person repräsentiert (d. h. eine Personenentität 2732). Bei manchen Ausführungsformen ist die Personenentität 2732 eine Art von Objektentität, die in der Entitätsdatenbank 2734 gespeichert ist. Die Identitätsattribute können von verschiedenen Systemen oder Vorrichtungen empfangen werden, einschließlich beispielsweise von einer mobilen Vorrichtung 2720, einem Informationstechnologie(IT)-System 2722, Internet-der-Dinge(IoT)-Sensoren 2724, Gebäudeausrüstung 2726 und einem Sicherheitssystem 2728. Identitätsattribute von der mobilen Vorrichtung 2720 können eine Mobilvorrichtung-ID (z. B. eine MAC-Adresse, eine Wi-Fi-Adresse, eine Vorrichtungsseriennummer usw.), durch die Mobilvorrichtung 2720 gesammelte biometrische Attribute (z. B. einen Fingerabdruck, einen Sprachabdruck, einen Iris-Scan, ein Gesicht-Scan usw.), Daten von der mobilen Vorrichtung 2720, die einen Benutzer eindeutig identifizieren (z. B. eine Anmeldeidentität, die der Benutzer auf der mobilen Vorrichtung authentifiziert hat, wie etwa eine angemeldete Identität von einer Anwendung oder einer Website/einem Webportal), oder andere Attribute beinhalten, die eine spezielle mobile Vorrichtung oder einen speziellen Benutzer, der einer mobilen Vorrichtung zugeordnet ist, eindeutig identifizieren. Identitätsattribute aus dem IT-System 2722 können den Benutzernamen, das Passwort, die Zugriffsrechte, die Personal-ID, die Verzeichnis-ID, die Telefonnummer, den Bürostandort, die Rolle, autorisierte Bereiche oder andere Attribute einer Person beinhalten, die einem bestimmten Benutzerprofil zugeordnet sind, das durch das IT-System 2722 verwaltet wird. Identitätsattribute von Sensoren, wie etwa den IoT-Sensoren 2724, können Bilder/Videos von Kameras, Daten von biometrischen Sensoren, Daten, die durch Wearable-Vorrichtungen gesammelt werden (z. B. Hauttemperatur, Herzschlag, Bewegung usw.), oder andere Attribute beinhalten, die einem Benutzer zugeordnet sind und allein oder in Kombination mit anderen Attributen verwendet werden können, um die Identität des Benutzers zu bestätigen. Identitätsattribute von der Gebäudeausrüstung 2726 und dem Sicherheitssystem 2728 können eine Karten-ID, einen Fingerabdruck, einen Gesicht-Scan, einen Iris-Scan, Bilder/Videos von Kameras oder andere Arten von Identifizierungsinformationen beinhalten. Bei manchen Ausführungsformen werden manche oder alle der Attribute in einer verschlüsselten Form gespeichert, um einen Zugriff auf private Attribute durch unbefugte Parteien/Systeme zu verhindern. Bei manchen solchen Ausführungsformen erlaubt das System keinen Zugriff auf die Attribute durch externe Systeme, sondern empfängt Anfragen einschließlich Daten, die mit den gespeicherten Attributen verglichen werden sollen, und antwortet auf die Anfragen mit Antwortnachrichten (die z. B. angeben, ob die mit den Anfragen empfangenen Daten den gespeicherten Daten entsprechen oder nicht, ob der Zugriff gewährt oder verweigert werden soll usw.).The modules 2704-2718 may be configured to receive and consolidate identity attributes to create an entity that represents a person (ie, a person entity 2732 ). In some embodiments, the person entity 2732 a kind of object entity that is in the entity database 2734 is saved. The identity attributes can be received by various systems or devices, including, for example, a mobile device 2720 , an information technology (IT) system 2722 , Internet of Things (IoT) sensors 2724 , Building equipment 2726 and a security system 2728 . Identity attributes from the mobile device 2720 may be a mobile device ID (e.g., a MAC address, a Wi-Fi address, a device serial number, etc.) by the mobile device 2720 collected biometric attributes (e.g., fingerprint, voiceprint, iris scan, face scan, etc.), data from the mobile device 2720 that uniquely identify a user (e.g., a login identity that the user has authenticated on the mobile device, such as a login identity from an application or website / web portal), or other attributes that include a particular mobile device or uniquely identify a particular user associated with a mobile device. Identity attributes from the IT system 2722 may include a person’s username, password, access rights, staff ID, directory ID, phone number, office location, role, authorized areas, or other attributes associated with a particular user profile that the IT system 2722 is managed. Identity attributes of sensors, such as the IoT sensors 2724 , may include images / videos from cameras, data from biometric sensors, data collected by wearable devices (e.g., skin temperature, heartbeat, movement, etc.), or other attributes associated with a user, alone or in Combination with other attributes can be used to confirm the identity of the user. Identity attributes from building equipment 2726 and the security system 2728 may include a card ID, fingerprint, face scan, iris scan, images / videos from cameras, or other types of identification information. In some embodiments, some or all of the attributes are stored in an encrypted form to prevent access to private attributes by unauthorized parties / systems. In some such embodiments, the system does not allow the attributes to be accessed by external systems, but instead receives requests including data to be compared against the stored attributes and responds to the requests with response messages (e.g., indicating whether those with the Requests received data correspond to the stored data or not, whether access should be granted or denied, etc.).

Der Identitätsverwaltungsdienst 2702 kann Identitätsattribute konsolidieren und in die Personenentität 2732 schreiben, um eine einzige Entität (z. B. ein Datenobjekt oder eine Objektentität) zu erzeugen, die alle Identitätsattribute enthält, die einer speziellen Person zugeordnet sind. Die Personenentität 2732 kann in einer Entitätsdatenbank 2734 gespeichert werden und vom Identitätsverwaltungsdienst 2702 aufgerufen werden, um verschiedene Identitätsverwaltungsfunktionen, wie etwa Identitätserkennung, Entscheidungstreffung in Echtzeit (z. B. Zugriffsteuerung), Identitätsanalyse und Identitätslernen, durchzuführen. Vorteilhafterweise ist die Personenentität 2732 eine intelligente Entität, die alle der einer Person zugeordneten Identitätsattribute enthält, unabhängig von dem System oder der Vorrichtung, von dem/der die Identitätsattribute gesammelt wurden. Dies ermöglicht, dass der Identitätsverwaltungsdienst 2702 eine Vielzahl verschiedener Identitätsverwaltungsfunktionen durchführt, wobei nur die in der Personenentität 2732 enthaltenen Informationen verwendet werden. Einige Beispiele für die Funktionen, die durch den Identitätsverwaltungsdienst 2702 durchgeführt werden, werden nachstehend ausführlich beschrieben.The identity management service 2702 can consolidate identity attributes and into the person entity 2732 write to create a single entity (e.g., a data object or an object entity) that contains all identity attributes associated with a particular person. The person entity 2732 can be in an entity database 2734 be stored and by the identity management service 2702 be invoked to perform various identity management functions such as identity recognition, real-time decision making (e.g., access control), identity analysis, and identity learning. The personal entity is advantageous 2732 an intelligent entity that contains all of the identity attributes associated with a person, regardless of the system or device from which the identity attributes were collected. This enables the identity management service 2702 performs a variety of different identity management functions, only those in the person entity 2732 contained information can be used. Some examples of the functions provided by the identity management service 2702 are described in detail below.

Bei manchen Ausführungsformen verwendet der Identitätsverwaltungsdienst 2702 die Personenentität 2732 und die darin enthaltenen Identitätsattribute, um die Identität einer Person zu erkennen, zu verifizieren und/oder zu authentifizieren. Beispielsweise kann das Sicherheitssystem 2728 eine Autorisierung von dem Identitätsverwaltungsdienst 2702 als Reaktion darauf anfordern, dass eine Person eine Zugangskarte an einem Kartenlesegerät des Sicherheitssystems 2728 scannt. Das Sicherheitssystem 2728 kann eine Karten-ID aus der Zugangskarte lesen und die Karten-ID an den Identitätsverwaltungsdienst 2702 liefern. Der Identitätsverwaltungsdienst 2702 kann die Karten-ID verwenden, um eine spezielle Personenentität 2732 zu identifizieren, die ein Karten-ID-Attribut enthält, das mit der von dem Sicherheitssystem 2728 empfangenen Karten-ID übereinstimmt. Der Identitätsverwaltungsdienst 2702 kann andere Attribute der Personenentität 2732 lesen, um die Autorisierung, Zugriffsrechte, die Rolle und dergleichen der Person zu identifizieren. Falls die Person autorisiert ist, einen speziellen Bereich zu betreten, der dem Kartenlesegerät zugeordnet ist, kann der Identitätsverwaltungsdienst 2702 ein „Zugriffserlaubnis“-Signal an das Sicherheitssystem 2728 senden, um der Person den Zugang zu dem Gebäudebereich zu ermöglichen. Falls umgekehrt die Person nicht berechtigt ist, den dem Kartenlesegerät zugeordneten Bereich zu betreten, kann der Identitätsverwaltungsdienst 2702 ein Signal „Zugriff verweigern“ an das Sicherheitssystem 2728 senden, um der Person den Zugang zu dem Gebäudebereich zu verweigern.In some embodiments, the identity management service uses 2702 the person entity 2732 and the identity attributes contained therein to recognize, verify and / or authenticate a person's identity. For example, the security system 2728 an authorization from that Identity management service 2702 in response to a person requesting an access card on a card reader of the security system 2728 scans. The security system 2728 can read a card ID from the access card and the card ID to the identity management service 2702 deliver. The identity management service 2702 can use the card ID to identify a specific person entity 2732 to identify which contains a card ID attribute that matches that of the security system 2728 received card ID matches. The identity management service 2702 can have other attributes of the person entity 2732 Read to identify the person's authorization, access rights, role, and the like. If the person is authorized to enter a special area associated with the card reader, the identity management service can 2702 an "access permission" signal to the security system 2728 send to give the person access to the building area. Conversely, if the person is not authorized to enter the area assigned to the card reader, the identity management service can 2702 a signal "deny access" to the security system 2728 to deny the person access to the building area.

Bei manchen Ausführungsformen verwendet der Identitätsverwaltungsdienst 2702 mehrere Identitätsattribute der Personenentität 2732, um eine Multifaktorauthentifizierung oder - identitätsverifizierung durchzuführen. Beispielsweise kann der Identitätsverwaltungsdienst 2702 ein erstes Identitätsattribut von der mobilen Vorrichtung 2720, dem IT-System 2722, den IoT-Sensoren 2724, der Gebäudeausrüstung 2726 und/oder dem Sicherheitssystem 2728 empfangen. Das erste Identitätsattribut kann eines der in der Personenentität 2732 gespeicherten Identitätsattribute sein (z. B. Name, Rolle, Mitarbeiter-ID, Karten-ID, Benutzername, Passwort usw.). Der Identitätsverwaltungsdienst 2702 kann das erste Identitätsattribut verwenden, um eine spezielle Personenentität 2732 zu identifizieren, die das erste Identitätsattribut enthält. Der Identitätsverwaltungsdienst 2702 kann dann ein zweites Identitätsattribut aus der Personenentität 2732 lesen. Das zweite Identitätsattribut kann ein beliebiges der Identitätsattribute sein, die in der Personenentität 2732 gespeichert sind (außer dem ersten Identitätsattribut).In some embodiments, the identity management service uses 2702 multiple identity attributes of the person entity 2732 to perform multi-factor authentication or identity verification. For example, the identity management service 2702 a first identity attribute from the mobile device 2720 , the IT system 2722 , the IoT sensors 2724 , the building equipment 2726 and / or the security system 2728 receive. The first identity attribute can be one of those in the person entity 2732 saved identity attributes (e.g. name, role, employee ID, card ID, user name, password, etc.). The identity management service 2702 can use the first identity attribute to identify a specific person entity 2732 to identify which contains the first identity attribute. The identity management service 2702 can then create a second identity attribute from the person entity 2732 read. The second identity attribute can be any of the identity attributes included in the person entity 2732 are saved (except for the first identity attribute).

Der Identitätsverwaltungsdienst 2702 kann das zweite Identitätsattribut mit Daten vergleichen, die von der mobilen Vorrichtung 2720, dem IT-System 2722, den IoT-Sensoren 2724, der Gebäudeausrüstung 2726 und/oder dem Sicherheitssystem 2728 erhalten wurden, um zu bestimmen, ob das zweite Identitätsattribut ebenfalls erfüllt ist. In verschiedenen Ausführungsformen kann das zweite Identitätsattribut automatisch gesammelt oder durch die Person als Reaktion auf eine Aufforderung von dem Identitätsverwaltungsdienst 2702 bereitgestellt werden. Falls das erste Identitätsattribut beispielsweise eine Karten-ID ist, die von einem Kartenlesegerät an einem speziellen Ort innerhalb eines Gebäudes empfangen wird, kann das zweite Identitätsattribut ein Bild einer Person, das durch eine Kamera an dem gleichen Ort wie das Kartenlese aufgenommen wird, oder eine Mobilvorrichtung-ID sein, die von einer mobilen Vorrichtung an dem gleichen Ort wie das Kartenlesegerät ausgesendet wird. Falls das zweite Identitätsattribut ebenfalls erfüllt ist (d. h. das zweite Identitätsattribut stimmt mit einem Identitätsattribut in derselben Personenentität 2732 wie das erste Identitätsattribut überein), kann der Identitätsverwaltungsdienst 2702 den Zugang erlauben oder eine erfolgreiche Identitätsverifizierung oder -autorisierung melden.The identity management service 2702 may compare the second identity attribute with data from the mobile device 2720 , the IT system 2722 , the IoT sensors 2724 , the building equipment 2726 and / or the security system 2728 were obtained to determine whether the second identity attribute is also satisfied. In various embodiments, the second identity attribute may be collected automatically or by the person in response to a request from the identity management service 2702 to be provided. For example, if the first identity attribute is a card ID received from a card reader at a particular location within a building, the second identity attribute may be an image of a person taken by a camera in the same location as the card reader, or one Be a mobile device ID sent from a mobile device in the same location as the card reader. If the second identity attribute is also fulfilled (ie the second identity attribute matches an identity attribute in the same person entity 2732 the identity management service can 2702 allow access or report successful identity verification or authorization.

Bei manchen Ausführungsformen verwendet der Identitätsverwaltungsdienst 2702 die in der Personenentität 2732 gespeicherten Identitätsattribute, um einer Person automatisch Zugang zu einem System, einer Vorrichtung oder einen Bereich innerhalb eines Gebäudes zu gewähren, ohne dass die Person aktiv eine ID-Karte scannen oder einen Benutzernamen oder ein Passwort eingeben muss. Beispielsweise kann der Identitätsverwaltungsdienst 2702 die Standorte von Personen innerhalb eines Gebäudes unter Verwendung von Standortdaten verfolgen, die durch von Personen getragenen Mobilvorrichtungen 2720, durch IoT-Sensoren 2724 bereitgestellte IoT-Sensordaten und/oder Kameradaten von dem Sicherheitssystem 2728 gemeldet werden. Einige Beispiele für Systeme und Verfahren zum Bestimmen der Standorte von Personen innerhalb eines Gebäudes sind ausführlich in der US-Patentanmeldung Nr. 14/263,639 , eingereicht am 28. April 2014, beschrieben, deren gesamte Offenbarung hiermit durch Bezugnahme genommen wird.In some embodiments, the identity management service uses 2702 those in the person entity 2732 stored identity attributes to automatically give a person access to a system, device or area within a building without the person having to actively scan an ID card or enter a username or password. For example, the identity management service 2702 Track the locations of people within a building using location data generated by mobile devices carried by people 2720 , through IoT sensors 2724 provided IoT sensor data and / or camera data from the security system 2728 be reported. Some examples of systems and procedures for determining the locations of people within a building are detailed in the U.S. Patent Application No. 14 / 263,639 , filed April 28, 2014, the entire disclosure of which is hereby incorporated by reference.

Der Identitätsverwaltungsdienst 2702 kann die in der Personenentität 2732 gespeicherten Identitätsattribute verwenden, um die Autorisierung jeder Person zu bestimmen. Beispielsweise kann die Personenentität 2732 einen oder mehrere Gebäudebereiche (z. B. Stockwerke, Zimmer, Zonen usw.), Systeme (z. B. HVAC-Systeme, Sicherheitssysteme, Beleuchtungssysteme usw.) oder Vorrichtungen (z. B. HVAC-Vorrichtungen, Beleuchtungsvorrichtungen, Kartenlesegeräte usw.) identifizieren, für die der Zugang der Person autorisiert ist. Bei manchen Ausführungsformen identifiziert die Personenentität 2732 die Rolle der Person (z. B. Servicetechniker, Büroadministrator, Krankenschwester usw.) und der Identitätsverwaltungsdienst 2702 bestimmt automatisch die Autorisierung der Person basierend auf der identifizierten Rolle.The identity management service 2702 can that in the person entity 2732 Use stored identity attributes to determine each person's authorization. For example, the person entity 2732 one or more building areas (e.g. floors, rooms, zones, etc.), systems (e.g. HVAC systems, security systems, lighting systems, etc.) or devices (e.g. HVAC devices, lighting devices, card readers, etc.) ) for which the person's access is authorized. In some embodiments, the person entity identifies 2732 the role of the person (e.g. service technician, office administrator, nurse, etc.) and the identity management service 2702 automatically determines the person's authorization based on the identified role.

Der Identitätsverwaltungsdienst 2702 kann die Standortinformationen für eine Person in dem Gebäude verwenden, um zu bestimmen, ob sich die Person einem Zugangspunkt nähert (z. B. einer Tür, einem Eingang, einem Ausgang usw.). Falls die Identitätsattribute in der entsprechenden Personenentität 2732 für diese Person angeben, dass die Person dazu autorisiert ist, den Zugangspunkt zu passieren, kann der Identitätsverwaltungsdienst 2702 den Zugangspunkt automatisch öffnen oder entriegeln, um der Person den Zugang zu ermöglichen, ohne dass die Person eine ID-Karte scannen muss oder einen Codeschlüssel an dem Zugangspunkt eingeben muss. Bei manchen Ausführungsformen öffnet oder entriegelt der Identitätsverwaltungsdienst 2702 den Zugangspunkt automatisch, bevor die Person den Zugangspunkt erreicht (z. B. während sich der Benutzer dem Zugangspunkt nähert), um eine Verzögerung beim Erreichen des Zugangspunkts zu verhindern. The identity management service 2702 can use the location information for a person in the building to determine whether the person is approaching an access point (e.g., a door, an entrance, an exit, etc.). If the identity attributes in the corresponding person entity 2732 For this person to indicate that the person is authorized to pass through the access point, the identity management service can 2702 Automatically open or unlock the access point to allow the person access without having to scan an ID card or enter a code key at the access point. In some embodiments, the identity management service opens or unlocks 2702 the access point automatically before the person reaches the access point (e.g. while the user is approaching the access point) to prevent a delay in reaching the access point.

Gleichermaßen kann der Identitätsverwaltungsdienst 2702 die Standortinformationen für eine Person in dem Gebäude verwenden, um zu bestimmen, ob sich die Person an einer Computer-Workstation, einem IT-System, einer speziellen Vorrichtung der Gebäudeausrüstung oder einem anderen IT-Zugangspunkt befindet. Falls die Identitätsattribute in der entsprechenden Personenentität 2732 für diese Person angeben, dass die Person dazu autorisiert ist, über den IT-Zugangspunkt auf ein System oder eine Vorrichtung zuzugreifen, kann der Identitätsverwaltungsdienst 2702 automatisch die Person anmelden oder der Person einen Zugang zu der Gebäudeausrüstung gewähren, um den Zugang zu ermöglichen, ohne dass die Person einen Benutzernamen, ein Passwort oder einen anderen Anmeldedaten eingeben muss. Bei manchen Ausführungsformen meldetet der Identitätsverwaltungsdienst 2702 die Person automatisch an dem IT-Zugangspunkt an, bevor die Person den IT-Zugangspunkt erreicht (z. B. während sich der Benutzer dem IT-Zugangspunkt nähert), um eine Verzögerung beim Erreichen des IT-Zugangspunkts zu verhindern.Similarly, the identity management service 2702 Use the location information for a person in the building to determine whether the person is at a computer workstation, IT system, special building equipment, or other IT access point. If the identity attributes in the corresponding person entity 2732 For this person to indicate that the person is authorized to access a system or device through the IT access point, the identity management service can 2702 automatically log the person in or grant the person access to the building equipment to allow access without the person having to enter a username, password or other credentials. In some embodiments, the identity management service reports 2702 automatically approaches the person at the IT access point before the person reaches the IT access point (e.g., as the user approaches the IT access point) to prevent a delay in reaching the IT access point.

Bei manchen Ausführungsformen verwendet der Identitätsverwaltungsdienst 2702 eine Multifaktorauthentifizierung, um die Identität der Person zu verifizieren, bevor der Zugang gewährt wird. Beispielsweise kann der Identitätsverwaltungsdienst 2702 zwei oder mehr Identitätsattribute von der mobilen Vorrichtung 2720, dem IT-System 2722, den IoT-Sensoren 2724, der Gebäudeausrüstung 2726 und/oder dem Sicherheitssystem 2728 an dem Standort einer Person sammeln. Falls alle der Identitätsattribute mit derselben Personenentität 2732 übereinstimmen, kann der Identitätsverwaltungsdienst 2702 bestätigen, dass die Identität der Person unter Verwendung mehrerer Identitätsattribute verifiziert wurde. Der Identitätsverwaltungsdienst 2702 kann dann nach einer erfolgreichen Multifaktorauthentifizierung oder -verifizierung automatisch einen physischen Zugangspunkt öffnen oder entriegeln oder den Zugang zu einem IT-Zugangspunkt bereitstellen. Bei manchen Ausführungsformen kann der Identitätsverwaltungsdienst 2702 Attribute von zwei getrennten Systemen verwenden, um die Sicherheit zu erhöhen (z. B. ein Datenelement von der mobilen Vorrichtung 2720 und ein anderes Element von der Gebäudeausrüstung 2726 oder dem Sicherheitssystem 2728). Dies kann dabei helfen, nichtautorisierten Zugang zu verhindern, falls die Sicherheit einer der Vorrichtung kompromittiert wird.In some embodiments, the identity management service uses 2702 multi-factor authentication to verify the person's identity before access is granted. For example, the identity management service 2702 two or more identity attributes from the mobile device 2720 , the IT system 2722 , the IoT sensors 2724 , the building equipment 2726 and / or the security system 2728 collect at the location of a person. If all of the identity attributes have the same person entity 2732 can match, the identity management service 2702 confirm that the person's identity has been verified using multiple identity attributes. The identity management service 2702 can then automatically open or unlock a physical access point or provide access to an IT access point after successful multi-factor authentication or verification. In some embodiments, the identity management service 2702 Use attributes from two separate systems to increase security (e.g. a data item from the mobile device 2720 and another element from building equipment 2726 or the security system 2728 ). This can help prevent unauthorized access if the security of one of the devices is compromised.

SicherstellungsdienstSecurity service

Nun unter Bezugnahme auf 28 ist ein Blockdiagramm eines Sicherstellungsdiensts 2800 gemäß einem Ausführungsbeispiel gezeigt. Bei manchen Ausführungsformen ist der Sicherstellungsdienst 2800 ein Dienst der Cloud-Gebäudeverwaltungsplattform 620a innerhalb der Cloud-Gebäudeverwaltungsplattform 620. Bei manchen Ausführungsformen beinhaltet der Sicherstellungsdienst 2800 manche oder alle der Merkmale und/oder Funktionen der Datenplattform, die in der US-Patentanmeldung Nr. 62/564,247 , eingereicht am 27. September 2017, beschrieben sind, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen ist. Der Sicherstellungsdienst 2800 kann dazu konfiguriert sein, durch IoT-Technologien eine Vorrichtungsgesundheitsüberwachung sowie eine On-Demand-, Offline- und Online-Asset-Verwaltung durchzuführen. Es wird gezeigt, dass der Sicherungsdienst 2800 einen Identitäts- und Sicherheitsdienst 2802, einen Vorrichtungsverwaltungsdienst 2804, einen Transport- und Benachrichtigungsdienst 2806, einen Vorrichtungsschatten-/-manifestdienst 2808, einen Paketdienst 2810, einen Asset- und Sicherungsdienst 2812, einen manuellen Upload-Dienst 2814, Sicherstellungs-Widgets 2816 und einen Sicherstellungsagenten 2818 beinhaltet.Now referring to 28 Figure 3 is a block diagram of a security service 2800 shown according to an embodiment. In some embodiments, the security service is 2800 a service of the cloud building management platform 620a within the cloud building management platform 620 . In some embodiments, the security service includes 2800 some or all of the features and / or functions of the data platform described in the U.S. Patent Application No. 62 / 564,247 , filed on September 27, 2017, the entire disclosure of which is hereby incorporated by reference. The security service 2800 can be configured to perform device health monitoring, on-demand, offline, and online asset management through IoT technologies. It is shown that the backup service 2800 an identity and security service 2802 , a device management service 2804 , a transport and notification service 2806 , a device shadow / manifest service 2808 , a parcel service 2810 , an asset and security service 2812 , a manual upload service 2814 , Backup widgets 2816 and a seizure agent 2818 includes.

Der Identitäts- und Sicherheitsdienst 2802 kann dazu konfiguriert sein, sicherzustellen, dass jede Vorrichtung der Gebäudeausrüstung 2726 und jeder Benutzer die Möglichkeit hat, auf Konfigurationssicherungen zuzugreifen. Beispielsweise kann der Identitäts- und Sicherheitsdienst 2802 Identitäts- und Autorisierungsattribute überwachen, die jedem Benutzer und jeder Vorrichtung der Gebäudeausrüstung 2726 zugeordnet sind, und kann bestimmen, ob der Satz von Identitäts- und Autorisierungsattributen ausreicht, um auf Konfigurationssicherungen zuzugreifen. Der Identitäts- und Sicherheitsdienst 2802 kann auch sicherstellen, dass jeder Benutzer die Fähigkeit hat, der Gebäudeausrüstung 2726 Befehle zu geben. Bei manchen Ausführungsformen umfasst der Identitäts- und Sicherheitsdienst 2802 manche oder alle der Merkmale oder Funktionen des Identitätsverwaltungsdienstes 2702, wie unter Bezugnahme auf 27 beschrieben.The identity and security service 2802 can be configured to ensure that every device of the building equipment 2726 and every user has the possibility to access configuration backups. For example, the identity and security service 2802 Monitor identity and authorization attributes to every user and every device of building equipment 2726 assigned, and can determine whether the set of identity and authorization attributes is sufficient to access configuration backups. The identity and security service 2802 can also ensure that every user has the ability to use the building equipment 2726 To give orders. In some embodiments, the identity and security service includes 2802 some or all of the features or functions of the identity management service 2702 as referring to 27th described.

Der Vorrichtungsverwaltungsdienst 2804 kann eine sichere Vorrichtungsregistrierung durchführen. Beispielsweise kann der Vorrichtungsverwaltungsdienst 2804 mit der an einem Kundenstandort installierten Gebäudeausrüstung 2726 kommunizieren, um jede Vorrichtung der Gebäudeausrüstung 2726 bei der Cloud-Gebäudeverwaltungsplattform 620 zu registrieren. Bei manchen Ausführungsformen ist die durch den Vorrichtungsverwaltungsdienst 2804 durchgeführte Vorrichtungsregistrierung gleich oder ähnlich der Vorrichtungsregistrierung, die in der US-Patentanmeldung Nr. 15/639,880 , eingereicht am 30. Juni 2017, beschrieben ist, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen ist. Beispielsweise kann der Vorrichtungsverwaltungsdienst 2804 dazu konfiguriert sein, eine virtuelle Repräsentation jede Vorrichtung der Gebäudeausrüstung 2726 innerhalb der Cloud-Gebäudeverwaltungsplattform 620 zu erzeugen. Bei manchen Ausführungsformen sind die Repräsentationen virtueller Vorrichtungen intelligente Entitäten, die Attribute enthalten, die die entsprechenden physischen Vorrichtungen der Gebäudeausrüstung 2726 charakterisieren. Der Vorrichtungsverwaltungsdienst 2804 kann jede Vorrichtung der Gebäudeausrüstung 2726 einem speziellen Kunden, einer speziellen Abteilung und/oder einem speziellen Benutzer zuordnen. Der Vorrichtungsverwaltungsdienst 2804 kann bei Bedarf Firmware-Updates senden und anfordern, wenn die Gebäudeausrüstung 2726 angeschlossen ist. The device management service 2804 can perform secure device registration. For example, the device management service 2804 with the building equipment installed at a customer site 2726 communicate to any device of building equipment 2726 at the cloud building management platform 620 to register. In some embodiments, this is through the device management service 2804 Device registration performed identical or similar to the device registration performed in the U.S. Patent Application No. 15 / 639,880 , filed on June 30, 2017, the entire disclosure of which is hereby incorporated by reference. For example, the device management service 2804 configured to provide a virtual representation of each building equipment device 2726 within the cloud building management platform 620 to create. In some embodiments, the representations of virtual devices are intelligent entities that contain attributes that correspond to the corresponding physical devices of the building equipment 2726 characterize. The device management service 2804 can use any device of building equipment 2726 assign to a special customer, a special department and / or a special user. The device management service 2804 can send and request firmware updates when needed when building equipment 2726 connected.

Der Transport- und Benachrichtigungsdienst 2806 kann dazu konfiguriert sein, bidirektionale Kommunikationen zwischen dem Sicherstellungsdienst und der an einem Kundenstandort installierten Gebäudeausrüstung 2726 zu erleichtern. Bei manchen Ausführungsformen stellt der Transport- und Benachrichtigungsdienst 2806 eine Alarm- und Ereignisbenachrichtigung in Echtzeit bereit. Beispielsweise kann der Transport- und Benachrichtigungsdienst 2806 in Echtzeit Alarme oder Ereignisse von der Gebäudeausrüstung 2726 an die Cloud-Gebäudeverwaltungsplattform 620 liefern. Der Transport- und Benachrichtigungsdienst 2806 kann auch eine Echtzeitbefehls- und -steuerfunktionen für die Gebäudeausrüstung 2726 bereitstellen. Beispielsweise kann der Transport- und Benachrichtigungsdienst 2806 Befehle und Steuersignale von den Anwendungen 630 oder der Cloud-Gebäudeverwaltungsplattform 620 in Echtzeit an die Gebäudeausrüstung 2726 liefern. Bei manchen Ausführungsformen ist der Transport- und Benachrichtigungsdienst 2806 dazu konfiguriert, die Gebäudeausrüstung 2726 zu entdecken und Firmware-Upgrades für die Gebäudeausrüstung 2726 anzufordern.The transport and notification service 2806 can be configured to provide bidirectional communications between the security service and the building equipment installed at a customer site 2726 to facilitate. In some embodiments, the transportation and notification service provides 2806 an alarm and event notification in real time. For example, the transport and notification service 2806 real-time alarms or events from building equipment 2726 to the cloud building management platform 620 deliver. The transport and notification service 2806 can also provide real-time command and control functions for building equipment 2726 provide. For example, the transport and notification service 2806 Commands and control signals from the applications 630 or the cloud building management platform 620 to the building equipment in real time 2726 deliver. In some embodiments, the transportation and notification service 2806 configured to the building equipment 2726 to discover and firmware upgrades for building equipment 2726 to request.

Der Vorrichtungsschatten-/-manifestdienst 2808 kann dazu konfiguriert sein, Konfigurationseinstellungen, Parameter und andere vorrichtungsspezifische Informationen zwischen der Gebäudeausrüstung 2726 und der Cloud-Gebäudeverwaltungsplattform 620 zu synchronisieren. Bei manchen Ausführungsformen erfolgt die Synchronisation asynchron. Der Vorrichtungsschatten-/-manifestdienst 2808 kann dazu konfiguriert sein, Vorrichtungseigenschaften dynamisch zu verwalten. Die Vorrichtungseigenschaften, Konfigurationseinstellungen, Parameter und andere vorrichtungsspezifische Informationen können zwischen der Gebäudeausrüstung 2726 und den intelligenten Entitäten synchronisiert werden, die von der Cloud-Gebäudeverwaltungsplattform 620 erzeugt und in dieser gespeichert werden. Bei manchen Ausführungsformen ist der Vorrichtungsschatten-/-manifestdienst 2808 dazu konfiguriert, den Gesundheitszustand der Gebäudeausrüstung 2726 zu überwachen und eine On-Demand-, Online- oder Offline-Asset-Verwaltung durch IoT-Technologien durchzuführen.The device shadow / manifest service 2808 can be configured to configure settings, parameters and other device-specific information between the building equipment 2726 and the cloud building management platform 620 to synchronize. In some embodiments, synchronization is asynchronous. The device shadow / manifest service 2808 can be configured to dynamically manage device properties. The device properties, configuration settings, parameters and other device-specific information can be shared between the building equipment 2726 and be synchronized with the intelligent entities provided by the cloud building management platform 620 generated and stored in this. In some embodiments, the device shadow / manifest service is 2808 configured to the health status of building equipment 2726 monitor and perform on-demand, online or offline asset management through IoT technologies.

Bei manchen Ausführungsformen ist der Vorrichtungsschatten-/-manifestdienst 2808 dazu konfiguriert, ein Manifest für jede Vorrichtung der Gebäudeausrüstung 2726 zu verwalten. Das Manifest kann eine Reihe von Beziehungen zwischen der Gebäudeausrüstung 2726 und verschiedenen Entitäten und/oder den verschiedenen Entitäten und anderen Entitäten enthalten. Ferner kann das Manifest einen Satz von Befugnissen für die Vorrichtung der Gebäudeausrüstung 2726 und/oder Befugnisse der verschiedenen Entitäten und/oder anderer Entitäten angeben. Der Satz von Befugnissen kann es einer Vorrichtung der Gebäudeausrüstung 2726 und/oder einem Benutzer der Vorrichtung ermöglichen, gewisse Handlungen mit der Gebäudeausrüstung 2726 durchzuführen, wie etwa Anpassen eines Temperatursollwerts, Ein- und/oder Ausschalten eines verbundenen Systems, Ausführen gewisser Softwareteile, Anfordern von Softwareaktualisierungen usw. Bei manchen Ausführungsformen ist die Entität wenigstens eine einer Gruppe (z. B. einer Technikergruppe, einer Heimbewohnergruppe, einer Gastgruppe, einer Gebäudeverwaltergruppe usw.), eines Benutzers (z. B. Techniker Bill, Vater, Benutzer A, Benutzer B usw.) und einer Vorrichtung (Mobile Vorrichtung 1, Smartphone A, Computer 4, Aktor 9 usw.).In some embodiments, the device shadow / manifest service is 2808 configured to have a manifest for each device of the building equipment 2726 manage. The manifesto can represent a number of relationships between building equipment 2726 and various entities and / or the various entities and other entities. Furthermore, the manifesto may have a set of powers for the device of building equipment 2726 and / or specify powers of the various entities and / or other entities. The set of powers can be a device of building equipment 2726 and / or allow a user of the device to perform certain actions with the building equipment 2726 perform, such as adjusting a temperature setpoint, turning a connected system on and / or off, running certain pieces of software, requesting software updates, etc. In some embodiments, the entity is at least one of a group (e.g., a technician group, a resident group, a guest group) , a building manager group, etc.), a user (e.g., technician Bill, father, user A, user B, etc.) and a device (mobile device 1 , Smartphone A , Computer 4th , Actuator 9 etc.).

Der Paketdienst 2810 kann dazu konfiguriert sein, Software-Releases zu identifizieren, die von einem Entwickler oder Anbieter der Gebäudeausrüstung 2726 veröffentlicht wurden. Beispielsweise kann der Paketdienst 2810 ein Remote-System oder -Server auf neue Softwareversionen der Gebäudeausrüstung 2726 überwachen. Wenn eine neue Softwareversion verfügbar ist, kann der Paketdienst 2810 eine Warnung oder Benachrichtigung erzeugen. Bei manchen Ausführungsformen vergleicht der Paketdienst 2810 die installierte Version der Software in der Gebäudeausrüstung 2726 mit der Version der Software, die auf dem Remote-System oder -Server verfügbar ist, um zu bestimmen, ob die Softwareversion relativ zur installierten Version neu ist. Bei manchen Ausführungsformen kann der Paketdienst 2810 die Konfigurationen der Gebäudeausrüstung 2726 als ein komprimiertes Datenobjekt weitergeben, das zuverlässig und sicher in der Cloud-Gebäudeverwaltungsplattform 620 gespeichert wird.The parcel service 2810 can be configured to identify software releases by a developer or building equipment provider 2726 were published. For example, the parcel service 2810 a remote system or server for new software versions of building equipment 2726 monitor. If a new software version is available, the parcel service can 2810 generate a warning or notification. In some embodiments, the parcel service compares 2810 the installed version of the software in the building equipment 2726 with the version of software available on the remote system or server to determine whether the software version is new relative to the installed version is. In some embodiments, the parcel service 2810 the configurations of the building equipment 2726 Share as a compressed data object that is reliable and secure in the cloud building management platform 620 is saved.

Bei manchen Ausführungsformen ist der Paketdienst 2810 dazu konfiguriert, Vorrichtungskonfigurationen, Vorrichtungsparameter, Vorrichtungssoftware oder andere anpassbare Parameter der Gebäudeausrüstung 2726 zu installieren, zu sichern und wiederherzustellen. Beispielsweise kann der Paketdienst 2810 On-Demand-, Offline- und Online-Sicherungen von Vorrichtungskonfigurationen und freigegebenen Softwarepaketen durchführen. Der Paketdienst 2810 kann eine Remote-Bereitstellung der Gebäudeausrüstung 2726 durchführen und eine Versionskontrolle für Sicherungskonfigurationen und Software durchführen. Der Paketdienst 2810 kann den Besitz und den Austausch jeder Vorrichtung der Gebäudeausrüstung 2726 durch neue Vorrichtungen handhaben.In some embodiments, the parcel service is 2810 configured to fixture configurations, fixture parameters, fixture software, or other customizable building equipment parameters 2726 to install, back up and restore. For example, the parcel service 2810 Perform on-demand, offline, and online backups of device configurations and shared software packages. The parcel service 2810 can be a remote deployment of building equipment 2726 perform and version control for backup configurations and software. The parcel service 2810 can own and exchange any device of building equipment 2726 handle with new devices.

Der Asset- und Sicherungsdienst 2812 kann dazu konfiguriert sein, eine Verbindung zu den Anwendungen 630 herzustellen, um eine Kommunikation zwischen dem Sicherstellungsdienst 2800 und den Anwendungen 630 zu erleichtern. Beispielsweise kann der Asset- und Sicherungsdienst 2812 mit der Überwachungs- und Berichtsanwendung 634 gekoppelt sein, um eine Benutzeroberfläche zu erzeugen und präsentieren, die alle an einem Kundenstandort oder einer Anlage installierten Assets (d. h. Vorrichtungen der Gebäudeausrüstung 2726) auflistet. Bei manchen Ausführungsformen identifiziert die Benutzeroberfläche jedes Asset und gibt an, ob die Konfiguration des Assets auf der Cloud-Gebäudeverwaltungsplattform 620 gesichert wurde.The asset and security service 2812 can be configured to connect to the applications 630 establish communication between the security service 2800 and the applications 630 to facilitate. For example, the asset and security service 2812 with the monitoring and reporting application 634 coupled to create and present a user interface, all of the assets installed at a customer site or facility (ie, building equipment devices 2726 ) lists. In some embodiments, the user interface identifies each asset and indicates whether the asset is configured on the cloud building management platform 620 was secured.

Der manuelle Upload-Dienst 2814 kann dazu konfiguriert sein, um eine manuelle Sicherung von Vorrichtungskonfigurationsparametern, Software, Firmware und anderen anpassbaren Einstellungen für die Gebäudeausrüstung 2726 durchzuführen. Die manuelle Sicherung kann gleich oder ähnlich den automatischen Sicherungen sein, die von anderen Komponenten des Sicherstellungsdienstes 2800 durchgeführt werden. Die manuellen Sicherungen können jedoch bei Bedarf von einem Servicetechniker oder einem anderen Benutzer ausgelöst werden. Bei manchen Ausführungsformen ist der manuelle Upload-Dienst 2814 dazu konfiguriert, eine Vorrichtung der Gebäudeausrüstung 2726 manuell bei der Cloud-Gebäudeverwaltungsplattform 620 zu registrieren, und kann verschiedene Arten von Daten hochladen, die der registrierten Vorrichtung zugeordnet sind. Beispielsweise kann der manuelle Upload-Dienst 2814 eine Heartbeat-Zeitreihe, die angibt, ob die Vorrichtung online ist und kommuniziert, von der Vorrichtung gesammelte Logs und/oder Konfigurationseinstellungen für die Vorrichtung hochladen.The manual upload service 2814 can be configured to manually back up device configuration parameters, software, firmware, and other customizable settings for building equipment 2726 perform. The manual backup can be the same or similar to the automatic backups made by other components of the backup service 2800 be performed. However, the manual backups can be triggered by a service technician or another user if necessary. In some embodiments, the manual upload service is 2814 configured to a device of building equipment 2726 manually on the cloud building management platform 620 and can upload various types of data associated with the registered device. For example, the manual upload service 2814 upload a heartbeat time series indicating whether the device is online and communicating, logs collected by the device, and / or configuration settings for the device.

Sicherstellungs-Widgets 2816 können dazu konfiguriert sein, verschiedene Benutzeroberflächenelemente (d. h. Widgets) zu erzeugen, die Informationen enthalten, die Vorrichtungen der Gebäudeausrüstung 2726 und/oder dem Sicherstellungsdienst 2800 zugeordnet sind. Die Widgets können als Erweiterungen oder Komponenten von Benutzeroberflächen fungieren, die durch die Anwendungen 630 erzeugt werden. Beispielsweise können die Widgets eine Listenansicht verbundener Assets einschließlich Asset-Details und eine Angabe darüber enthalten, ob für jedes Asset eine Sicherung auf der Cloud-Gebäudeverwaltungsplattform 620 vorhanden ist. Sicherstellungs-Widgets 2816 können die Gebäudeausrüstung 2726 fernsteuern. Beispielsweise können Sicherstellungs-Widgets 2816 eine Remote-Aktualisierungsanforderung an die Gebäudeausrüstung 2726 senden und können registrierte Befehle sicher an die Gebäudeausrüstung 2726 senden. Sicherstellungs-Widgets 2816 können auch Echtzeitalarm- und -ereignisdaten von der Gebäudeausrüstung 2726 anzeigen.Backup widgets 2816 may be configured to create various user interface elements (ie widgets) that contain information related to building equipment devices 2726 and / or the security service 2800 assigned. The widgets can act as extensions or components of user interfaces created by the applications 630 be generated. For example, the widgets can include a list view of connected assets, including asset details, and whether the asset is backed up to the cloud building management platform 620 is available. Backup widgets 2816 can use the building equipment 2726 remote control. For example, backup widgets 2816 a remote update request to the building equipment 2726 and can send registered commands securely to building equipment 2726 send. Backup widgets 2816 can also get real-time alarm and event data from building equipment 2726 Show.

Der Sicherstellungsagent 2818 kann dazu konfiguriert sein, mit den Diensten 2802-2814, den Sicherstellungs-Widgets 2816 und der Gebäudeausrüstung 2726 gekoppelt zu werden. Bei manchen Ausführungsformen ist der Sicherstellungsagent 2818 dazu konfiguriert, die Gebäudeausrüstung 2726, die Sicherungssoftware und die Konfigurationseinstellungen zu registrieren und Zustandsinformationen an die Dienste 2802-2814 und die Sicherstellungs-Widgets 2816 zu kommunizieren. Der Sicherstellungsagent 2818 kann eine Anforderung an die Gebäudeausrüstung 2726 senden, um einen Vorrichtungsentdeckungsprozess durchzuführen, um alle der Vorrichtungen der Gebäudeausrüstung 2726 zu identifizieren, die sich an dem Kundenstandort befinden. Ein Beispiel für einen Vorrichtungsentdeckungsprozesses, der durch den Sicherstellungsagenten 2818 ausgelöst werden kann, ist ausführlich in der US-Patentanmeldung Nr. 15/179,894 , eingereicht am 10. Juni 2016, beschrieben, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen wird. Der Sicherstellungsagent 2818 kann auch die Software der Gebäudeausrüstung 2726 aktualisieren und die Konfigurationseinstellungen der Gebäudeausrüstung 2726 wiederherstellen. Der Sicherstellungsagent 2818 kann eine Vorrichtung-Heartbeat-Zeitreihe senden, Logs senden, Konfigurationseinstellungen senden, Warnungen senden und Befehle an die und von der Gebäudeausrüstung 2726 weiterleiten.The freezing agent 2818 can be configured with the services 2802-2814 , the backup widgets 2816 and building equipment 2726 to be coupled. In some embodiments, the backup agent is 2818 configured to the building equipment 2726 , the backup software and configuration settings to register and status information to the services 2802-2814 and the backup widgets 2816 to communicate. The freezing agent 2818 can be a requirement on building equipment 2726 send to perform a device discovery process to all of the building equipment devices 2726 identify who are at the customer location. An example of a device discovery process by the seizure agent 2818 can be triggered is detailed in the U.S. Patent Application No. 15 / 179,894 , filed June 10, 2016, the entire disclosure of which is hereby incorporated by reference. The freezing agent 2818 can also use the building equipment software 2726 update and the configuration settings of the building equipment 2726 restore. The freezing agent 2818 can send a device heartbeat time series, send logs, send configuration settings, send warnings and commands to and from building equipment 2726 hand off.

Bei manchen Ausführungsformen verwendet der Sicherstellungsagent 2818 die in der Entitätsdatenbank 2734 gespeicherten Daten, um seine verschiedenen Funktionen auszuführen. Wie oben beschrieben, kann die Entitätsdatenbank 2732 mehrere miteinander verbundene intelligente Entitäten speichern. Die intelligenten Entitäten können Objektentitäten, die mehrere Vorrichtungen der Gebäudeausrüstung repräsentieren, und Datenentitäten beinhalten, die Daten repräsentieren, die den mehreren Vorrichtungen der Gebäudeausrüstung zugeordnet sind. Die intelligenten Entitäten können durch relationale Objekte miteinander verbunden sein, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben. Jede Objektentität kann ein gespeichertes Attribut beinhalten, das eine Version einer Software angibt, die auf einer Vorrichtung der Gebäudeausrüstung installiert ist, die durch die Objektentität repräsentiert wird. In some embodiments, the backup agent uses 2818 those in the entity database 2734 stored data to perform its various functions. As described above, the entity database 2732 store multiple interconnected intelligent entities. The intelligent entities may include object entities that represent multiple building equipment devices and data entities that represent data associated with the multiple building equipment devices. The intelligent entities can be linked by relational objects that indicate relationships between the object entities and the data entities. Each object entity can include a stored attribute that indicates a version of software installed on a building equipment device represented by the object entity.

Der Sicherstellungsagent 2818 kann dazu konfiguriert sein, automatisch eine Version der auf jeder der Vorrichtungen der Gebäudeausrüstung installierten Software zu detektieren, indem die gespeicherten Attribute der Objektentitäten in der Entitätsdatenbank 2734 gelesen werden. Der Sicherstellungsagent 2818 kann die Software, die auf einer oder mehreren der Vorrichtungen der Gebäudeausrüstung installiert ist, als Reaktion auf eine Bestimmung, dass die Version der auf der einen oder den mehreren Vorrichtungen der Gebäudeausrüstungen installierten Software nicht eine neueste Version der Software ist, automatisches aktualisieren.The freezing agent 2818 may be configured to automatically detect a version of the software installed on each of the building equipment devices by storing the attributes of the object entities in the entity database 2734 to be read. The freezing agent 2818 The software installed on one or more of the building equipment devices may automatically update in response to a determination that the version of the software installed on the one or more building equipment devices is not a latest version of the software.

Konfiguration der AusführungsbeispieleConfiguration of the exemplary embodiments

Der Aufbau und die Anordnung der Systeme und Verfahren, wie sie in den verschiedenen Ausführungsbeispielen gezeigt sind, sind lediglich veranschaulichend. Obwohl in dieser Offenbarung nur einige wenige Ausführungsformen ausführlich beschrieben wurden, sind viele Modifikationen möglich (z. B. Variationen der Größen, Abmessungen, Strukturen, Formen und Proportionen der verschiedenen Elemente, Werte von Parametern, Montageanordnungen, Verwendung von Materialien, Farben, Orientierungen usw.). Zum Beispiel kann die Position von Elementen umgekehrt oder auf andere Weise variiert werden und kann die Art oder Anzahl von diskreten Elementen oder Positionen verändert oder variiert werden. Dementsprechend sollen alle solchen Modifikationen in dem Schutzumfang der vorliegenden Offenbarung enthalten sein. Die Reihenfolge oder Sequenz von beliebigen Prozess- oder Verfahrensschritten kann gemäß alternativen Ausführungsformen variiert oder neu sequenziert werden. Andere Substitutionen, Modifikationen, Änderungen und Auslassungen können an der Gestaltung, den Betriebsbedingungen und der Anordnung der Ausführungsbeispiele vorgenommen werden, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen.The structure and arrangement of the systems and methods as shown in the various exemplary embodiments are only illustrative. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g. variations in the 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 can be reversed or otherwise varied and the type or number of discrete elements or positions can be changed or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The sequence or sequence of any process or method steps can 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.

Die vorliegende Offenbarung sieht Verfahren, Systeme und Programmprodukte auf einem beliebigen maschinenlesbaren Medium zum Erreichen verschiedener Operationen vor. Die Ausführungsformen der vorliegenden Offenbarung können unter Verwendung vorhandener Computerprozessoren oder durch einen Spezialcomputerprozessor für ein geeignetes System, das für diesen oder einen anderen Zweck eingebunden ist, oder durch ein festverdrahtetes System implementiert werden. Ausführungsformen innerhalb des Schutzumfangs der vorliegenden Offenbarung beinhalten Programmprodukte, die maschinenlesbare Medien zum Tragen oder Aufweisen von darauf gespeicherten maschinenausführbaren Anweisungen oder Datenstrukturen umfassen. Solche maschinenlesbare Medien können beliebige verfügbare Medien sein, auf die ein Allzweck- oder Spezialcomputer oder eine andere Maschine mit einem Prozessor zugreifen kann. Beispielsweise können solche maschinenlesbaren Medien RAM, ROM, EPROM, EEPROM, CD-ROM oder eine andere Speicherung mit optischen Platten, eine Speicherung mit Magnetplatten oder andere Magnetspeicherungsvorrichtungen oder ein beliebiges anderes Medium umfassen, das zum Tragen oder Speichern eines gewünschten Programmcodes in Form von maschinenausführbaren Anweisungen oder Datenstrukturen verwendet werden kann und auf das durch einen Allzweck- oder Spezialcomputer oder einer anderen Maschine mit einem Prozessor zugegriffen werden kann. Kombinationen des oben genannten liegen ebenfalls innerhalb des Schutzumfangs maschinenlesbarer Medien. Maschinenausführbare Anweisungen beinhalten beispielsweise Anweisungen und Daten, die bewirken, dass ein Allzweckcomputer, ein Spezialcomputer oder Spezialverarbeitungsmaschinen eine gewisse Funktion oder Gruppe von Funktionen ausführen.The present disclosure provides methods, systems, and program products on any machine-readable medium 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 a suitable system that is incorporated for this or other purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products that include 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. For example, such machine readable media may include RAM, ROM, EPROM, EEPROM, CD-ROM, or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium suitable for carrying or storing desired program code in the form of machine executable Instructions or data structures can be used and can be accessed by a general purpose or special purpose computer or other machine with a processor. Combinations of the above are also within the scope of machine-readable media. For example, machine-executable instructions include instructions and data that cause a general-purpose computer, special-purpose computer, or special-purpose processing machine to perform a certain function or group of functions.

Obwohl die Figuren eine spezielle Reihenfolge der Verfahrensschritte zeigen, kann die Reihenfolge der Schritte von der dargestellten abweichen. Es können auch zwei oder mehr Schritte gleichzeitig oder teilweise gleichzeitig durchgeführt werden. Eine solche Variation wird von den gewählten Software- und Hardwaresystemen und von der Designerwahl abhängen. Alle derartigen Variationen fallen in den Schutzumfang der Offenbarung. Ebenso könnten Softwareimplementierungen mit Standardprogrammiertechniken mit regelbasierter Logik und anderer Logik erreicht werden, um die verschiedenen Verbindungsschritte, Verarbeitungsschritte, Vergleichsschritte und Entscheidungsschritte erreichen.Although the figures show a specific order of the method steps, the order of the steps may differ from the one shown. Two or more steps can also be carried out simultaneously or partially simultaneously. Such a variation will depend on the software and hardware systems chosen and the choice of designer. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished using standard programming techniques with rule-based logic and other logic to accomplish the various connection steps, processing steps, comparison steps, and decision steps.

Der Begriff „Client oder Server“ schließt alle Arten von Einrichtungen, Vorrichtungen und Maschinen zum Verarbeiten von Daten ein, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers, eines Systems-auf-Chip oder mehrerer oder Kombinationen des Vorstehenden. Die Einrichtung kann eine Speziallogikschaltungsanordnung enthalten, z. B. ein vor Ort programmierbares Gatterarray (FPGA) oder einen anwendungsspezifischen integrierten Schaltkreis (ASIC). Die Einrichtung kann zusätzlich zur Hardware auch Code enthalten, der eine Ausführungsumgebung für das betreffende Computerprogramm erzeugt (z. B. Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination aus einem oder mehreren von ihnen). Die Einrichtung und die Ausführungsumgebung können verschiedene unterschiedliche Computermodellinfrastrukturen realisieren, wie etwa Webdienste, verteilte Rechen- und Grid-Recheninfrastrukturen. The term “client or server” encompasses all types of devices, devices and machines for processing data, including, for example, a programmable processor, a computer, a system-on-chip or several or combinations of the above. The device may include special logic circuitry, e.g. B. a locally programmable gate array (FPGA) or an application specific integrated circuit (ASIC). In addition to the hardware, the device can also contain code that generates an execution environment for the computer program in question (e.g. code, the processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine or a combination of the two one or more of them). The device and the execution environment can implement various different computer model infrastructures, such as web services, distributed computing and grid computing infrastructures.

Die Systeme und Verfahren der vorliegenden Offenbarung können durch ein beliebiges Computerprogramm vervollständigt werden. Ein Computerprogramm (auch als ein Programm, eine Software, eine Softwareanwendung, ein Skript oder ein Code bezeichnet) kann in einer beliebigen Form von Programmiersprache geschrieben werden, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder prozeduraler Sprachen, und es kann in einer beliebigen Form eingesetzt werden, einschließlich als ein eigenständiges Programm oder als ein Modul, eine Komponente, eine Subroutine, ein Objekt oder eine andere Einheit, die zur Verwendung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann unter anderem einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei, der andere Programme oder Daten hält (z. B. ein oder mehrere Skripte, die in einem Markup-Sprache-Dokument gespeichert sind), in einer einzigen Datei, die dem betreffenden Programm dediziert ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Subprogramme oder Codeteile speichern) gespeichert werden. Ein Computerprogramm kann eingesetzt werden, um auf einem Computer oder auf mehreren Computern ausgeführt zu werden, die sich an einem Standort befinden oder über mehrere Standorte verteilt und durch ein Kommunikationsnetz miteinander verbunden sind.The systems and methods of the present disclosure can be completed by any computer program. A computer program (also called a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be used in any form , including as a stand-alone program or as a module, component, subroutine, object, or other entity suitable for use in a computing environment. A computer program can, among other things, correspond to a file in a file system. A program can be in a part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file that is dedicated to that program, or in several coordinated files (e.g. files that store one or more modules, subroutines or parts of code). A computer program can be used to run on one or more computers located at one location or distributed across multiple locations and connected by a communication network.

Die in dieser Patentschrift beschriebenen Prozesse und Logikflüsse können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Handlungen auszuführen, indem Eingabedaten bearbeitet und Ausgabe erzeugt werden. Die Prozesse und Logikflüsse können auch von einer Speziallogikschaltungsanordnung (z. B. einem FPGA oder einem ASIC) ausgeführt werden und die Einrichtung kann auch als solche implementiert werden.The processes and logic flows described in this patent may be performed by one or more programmable processors that execute one or more computer programs to perform actions by manipulating input data and generating output. The processes and logic flows can also be performed by special logic circuitry (e.g., an FPGA or an ASIC) and the device can also be implemented as such.

Prozessoren, die zur Ausführung eines Computerprogramms geeignet sind, beinhalten beispielsweise sowohl Mehrzweck- als auch Spezialmikroprozessoren und einen oder mehrere beliebige Prozessoren irgendeiner Art von digitalem Computer. Im Allgemeinen wird ein Prozessor Anweisungen und Daten von einem Nur-Lese-Speicher oder einem Direktzugriffsspeicher oder beiden empfangen. Die wesentlichen Elemente eines Computers sind ein Prozessor zum Durchführen von Handlungen gemäß Anweisungen und eine oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten. Im Allgemeinen wird ein Computer auch eine oder mehrere Massenspeicherungsvorrichtungen zum Speichern von Daten (z. B. magnetische, magnetooptische Platten oder optische Platten) enthalten oder mit diesen wirkgekoppelt sein, um Daten von einer oder mehreren Massenspeicherungsvorrichtungen zu empfangen oder an diese zu übertragen oder beides. Ein Computer muss jedoch nicht über solche Vorrichtungen verfügen. Darüber hinaus kann ein Computer in einer anderen Vorrichtung eingebettet sein (z. B. einem Mobiltelefon, einem persönlichen digitalen Assistenten (PDA), einem mobilen Audio- oder Videoplayer, einer Spielekonsole, einen GPS-Empfänger (GPS: Global Positioning System) oder einer tragbaren Speicherungsvorrichtung (z. B. einem USB-Flash-Laufwerk (USB: Universal Serial Bus) usw.). Vorrichtungen, die zum Speichern von Computerprogrammanweisungen und -daten geeignet sind, beinhalten alle Formen von nichtflüchtigem Speicher, Medien und Speichervorrichtungen, einschließlich beispielsweise Halbleiterspeichervorrichtungen (z. B. EPROM, EEPROM und Flash-Speichervorrichtungen; Magnetplatten, z. B. interne Festplatten oder Wechselplatten, magnetooptische Platten; und CD-ROM- und DVD-ROM-Platten). Der Prozessor und der Speicher können durch eine Speziallogikschaltungsanordnung ergänzt oder darin eingebunden sein.Processors suitable for executing a computer program include, for example, both general-purpose and specialty microprocessors and any one or more processors of any type of digital computer. In general, a processor will receive instructions and data from read-only memory or random access memory or both. The essential elements of a computer are a processor for performing actions according to instructions and one or more storage devices for storing instructions and data. In general, a computer will also include, or be operatively coupled to, one or more mass storage devices for storing data (e.g., magnetic, magneto-optical disks, or optical disks) to receive or transmit data from or to one or more mass storage devices, or both . However, a computer does not have to have such devices. In addition, a computer may be embedded in another device (e.g., a cell phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a GPS (Global Positioning System) receiver, or one portable storage device (e.g., USB: Universal Serial Bus), etc. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example Semiconductor memory devices (e.g. EPROM, EEPROM and flash memory devices; magnetic disks, e.g. internal hard drives or removable disks, magneto-optical disks; and CD-ROM and DVD-ROM disks). The processor and memory can be implemented by means of special logic circuitry be supplemented or integrated into it.

Bei verschiedenen Implementierungen können die hier beschriebenen Schritte und Operationen auf einem Prozessor oder in einer Kombination aus zwei oder mehr Prozessoren durchgeführt werden. Beispielsweise könnten bei manchen Implementierungen die verschiedenen Operationen auf einem zentralen Server oder einem Satz zentraler Server durchgeführt werden, die dazu konfiguriert sind, Daten von einer oder mehreren Vorrichtungen (z. B. Edge-Rechenvorrichtungen/Controllern) zu empfangen und die Operationen durchzuführen. Bei manchen Implementierungen können die Operationen von einer oder mehreren lokalen Steuerungen oder Computervorrichtungen (z. B. Edge-Vorrichtungen) durchgeführt werden, wie etwa Steuerungen, die einem speziellen Gebäude oder Teil eines Gebäudes dediziert sind und/oder sich in diesem befinden. Bei manchen Implementierungen können die Operationen durch eine Kombination aus einer oder mehreren zentralen oder nicht am Standort befindlichen Computervorrichtungen/Servern und einer oder mehreren lokalen Steuerungen/Computervorrichtungen durchgeführt werden. Alle derartigen Implementierungen sind innerhalb des Schutzumfangs der vorliegenden Offenbarung vorgesehen. Sofern nicht anders angegeben ist, können ferner, wenn die vorliegende Offenbarung auf ein oder mehrere computerlesbare Speicherungsmedien und/oder eine oder mehrere Steuerungen verweist, solche computerlesbaren Speichermedien und/oder eine oder mehrere Steuerungen als ein oder mehrere zentrale Server, eine oder mehrere lokale Steuerungen oder Computervorrichtungen (z. B. Edge-Vorrichtungen), eine beliebige Kombination davon oder eine beliebige andere Kombination von Speicherungsmedien und/oder Steuerungen unabhängig vom Standort solcher Vorrichtungen implementiert werden.In various implementations, the steps and operations described here can 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 on a central server or a 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 controls or computing devices (e.g., edge devices), such as controls, that are dedicated to and / or located in a specific building or part of a building. In some implementations, the operations can be performed by a combination of one or more central or off-site computing devices / servers and one or more local controls / computing devices. All such implementations are intended to be within the scope of the present disclosure. Unless otherwise stated, unless the present disclosure references one or more computer readable storage media and / or one or more controls, such computer readable storage media and / or one or more controls as one or more central servers, one or more local controls or computing devices (e.g., edge devices), any combination thereof, or any other combination of storage media and / or controls regardless of the location of such devices.

Um eine Interaktion mit einem Benutzer bereitzustellen, können Implementierungen des in dieser Patentschrift beschriebenen Gegenstands auf einem Computer implementiert werden, der eine Anzeigevorrichtung (z. B. eine CRT(Kathodenstrahlröhre)-, eine LCD (Flüssigkristallanzeige)-, eine OLED (organische Leuchtdiode)-, TFT(Dünnschichttransistor)- oder eine andere flexible Konfiguration oder irgendeinen anderen Monitor zum Anzeigen von Informationen für den Benutzer und eine Tastatur, eine Zeigevorrichtung, z. B. eine Maus, ein Trackball usw., oder einen Touchscreen, Touchpad usw.) aufweist, über die der Benutzer Eingaben an den Computer liefern kann. Andere Arten von Vorrichtungen können ebenfalls verwendet werden, um die Interaktion mit einem Benutzer bereitzustellen; Beispielsweise kann eine Rückmeldung, die dem Benutzer bereitgestellt wird, eine beliebige Form von Sensorrückmeldung sein (z. B. visuelle Rückmeldung, akustische Rückmeldung oder taktile Rückmeldung), und Eingaben von dem Benutzer können in einer beliebigen Form empfangen werden, einschließlich akustischer, sprachlicher oder taktiler Eingabe. Darüber hinaus kann ein Computer mit einem Benutzer interagieren, indem er Dokumente an eine von dem Benutzer verwendete Vorrichtung sendet und von dieser empfängt; zum Beispiel durch Senden von Webseiten an einen Webbrowser auf der Clientvorrichtung eines Benutzers als Reaktion auf von dem Webbrowser empfangene Anforderungen.To provide interaction with a user, implementations of the subject matter described in this patent may be implemented on a computer that includes a display device (e.g., a CRT (cathode ray tube) -, an LCD (liquid crystal display) -, an OLED (organic light emitting diode) -, TFT (thin film transistor) - or another flexible configuration or any other monitor for displaying information to the user and a keyboard, a pointing device, e.g. a mouse, a trackball etc., or a touchscreen, touchpad etc.) has, through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with a user; For example, feedback provided to the user can be any form of sensor feedback (e.g., visual feedback, acoustic feedback, or tactile feedback), and inputs from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending and receiving documents to and from a device used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.

Implementierungen des in dieser Offenbarung beschriebenen Gegenstands können in einem Rechensystem implementiert werden, das eine Back-End-Komponente (z. B. wie einen Datenserver) enthält oder das eine Middleware-Komponente (z. B. einen Anwendungsserver) enthält oder das eine Front-End-Komponente (z. B. einen Client-Computer) mit einer grafischen Benutzeroberfläche oder einem Webbrowser enthält, über die/den ein Benutzer mit einer Implementierung des in dieser Offenbarung beschriebenen Gegenstands interagieren kann, oder eine beliebigen Kombination aus einem oder mehreren solcher Back-End-, Middleware-, oder Front-End-Komponenten enthält. Die Komponenten des Systems können durch irgendeine Form oder irgendein Medium einer digitalen Datenkommunikation (z. B. ein Kommunikationsnetz) miteinander verbunden sein. Beispiele für Kommunikationsnetze beinhalten ein LAN und ein WAN, ein Inter-Netz (z. B. das Internet) und Peer-to-Peer-Netze (z. B. Ad-hoc-Peer-to-Peer-Netze).Implementations of the subject matter described in this disclosure can be implemented in a computing system that includes a back-end component (e.g., such as a data server) or that contains a middleware component (e.g., an application server), or that includes a front -End component (e.g., a client computer) with a graphical user interface or web browser that allows a user to interact with an implementation of the subject matter described in this disclosure, or any combination of one or more of such Contains back-end, middleware, or front-end components. The components of the system can be interconnected by some form or medium of digital data communication (e.g. a communication network). Examples of communication networks include a LAN and a WAN, an inter-network (e.g. the Internet) and peer-to-peer networks (e.g. ad-hoc peer-to-peer networks).

Die vorliegende Offenbarung kann in verschiedenen Formen ausgeführt werden und sollte nicht derart ausgelegt werden, dass sie auf nur die hier veranschaulichten Ausführungsformen beschränkt ist. Vielmehr werden diese Ausführungsformen als Beispiele bereitgestellt, so dass diese Offenbarung gründlich und vollständig ist und sie einem Fachmann die Aspekte und Merkmale der vorliegenden Offenbarung vollständig vermittelt. Dementsprechend werden Prozesse, Elemente und Techniken, die für einen Durchschnittsfachmann für ein vollständiges Verständnis der Aspekte und Merkmale der vorliegenden Offenbarung nicht erforderlich sind, möglicherweise nicht beschrieben werden. Sofern nichts anders angegeben ist, bezeichnen gleiche Bezugsziffern durch die beigefügten Zeichnungen und die geschriebene Beschreibung hinweg gleiche Elemente und daher werden Beschreibungen davon möglicherweise nicht wiederholt werden. Ferner sollten Merkmale oder Aspekte innerhalb jedes Ausführungsbeispiels typischerweise als für andere ähnliche Merkmale oder Aspekte in anderen Ausführungsbeispiels verfügbar angesehen werden.The present disclosure can be embodied in various forms and should not be construed to be limited to only the embodiments illustrated herein. Rather, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the aspects and features of the present disclosure to those skilled in the art. Accordingly, processes, elements, and techniques that are not required by those of ordinary skill in the art to fully understand the aspects and features of the present disclosure may not be described. Unless otherwise indicated, like reference numbers refer to like elements throughout the accompanying drawings and the written description, and therefore descriptions thereof may not be repeated. Furthermore, features or aspects within each embodiment should typically be considered available for other similar features or aspects in other embodiments.

Es versteht sich, dass, obwohl die Begriffe „erster“, „zweiter“, „dritter“ usw. hier verwendet werden können, um verschiedene Elemente, Komponenten, Gebiete, Schichten und/oder Abschnitte zu beschreiben, diese Elemente, Komponenten, Gebiete, Schichten und/oder Abschnitte sollten nicht durch diese Begriffe beschränkt werden sollen. Diese Begriffe werden verwendet, um ein Element, eine Komponente, eine Gebiet, eine Schicht oder einen Abschnitt von einem anderen Element, einer anderen Komponente, einem anderen Gebiet, einer anderen Schicht oder einem anderen Abschnitt zu unterscheiden. Somit könnte ein erstes Element, eine erste Komponente, ein erstes Gebiet, eine erste Schicht oder ein erster Abschnitt, der nachstehend beschrieben wird, als ein zweites Element, eine zweite Komponente, ein zweites Gebiet, eine zweite Schicht oder ein zweiter Abschnitt bezeichnet werden, ohne der Idee und dem Schutzumfang der vorliegenden Offenbarung abzuweichen.It is understood that although the terms "first", "second", "third", etc. may be used here to describe various elements, components, areas, layers and / or sections, these elements, components, areas, Layers and / or sections should not be limited by these terms. These terms are used to distinguish an element, component, area, layer, or section from another element, component, area, layer, or section. Thus, a first element, a first component, a first region, a first layer or a first section, which is described below, could be referred to as a second element, a second component, a second region, a second layer or a second section, without departing from the idea and scope of the present disclosure.

Die hier verwendete Terminologie dient dem Zweck, spezielle Ausführungsformen zu beschreiben, und soll die vorliegende Offenbarung nicht beschränken. Wie hier verwendet, sollen die Singularformen „ein“ und „eine“ auch die Pluralformen einschließen, sofern der Kontext nicht eindeutig anderes angibt. Es versteht sich ferner, dass die Begriffe „umfasst“, „umfassend“, „beinhaltet“ und „beinhaltend“, „weist auf, „aufweisen“ und „aufweisend“, wenn sie in dieser Patentschrift verwendet werden, die Anwesenheit des/der genannten Merkmals, ganzen Zahlen, Schritte, Operationen, Elemente und/oder Komponenten vorgeben, aber die Anwesenheit oder Hinzufügung eines/einer oder mehrerer anderer Merkmale, ganzer Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließt. Wie hier verwendet, schließt der Begriff „und/oder“ beliebige und alle Kombinationen eines oder mehrerer der zugeordneten aufgelisteten Elemente ein. Ausdrücke wie „wenigstens eines von“ modifizieren, wenn sie vor einer Liste von Elementen stehen, die gesamte Liste von Elementen und modifizieren nicht die einzelnen Elemente der Liste. The terminology used here is for the purpose of describing specific embodiments and is not intended to limit the present disclosure. As used here, the singular forms “a” and “an” should also include the plural forms, unless the context clearly indicates otherwise. It is further understood that the terms “comprises”, “comprising”, “includes” and “including”, “has,” have “and“ has “, when used in this patent specification, the presence of the named Specify features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items. Expressions such as “at least one of” when in front of a list of items modify the entire list of items and do not modify the individual items in the list.

Wie hier verwendet, werden der Begriff „im Wesentlichen“, „etwa“ und ähnliche Begriffe als Näherungsbegriffe und nicht als Gradbegriffe verwendet und sollen die inhärenten Variationen der gemessenen oder berechneten Werte berücksichtigen, die ein Durchschnittsfachmann erkennen würde. Ferner verweist die Verwendung von „kann“ bei der Beschreibung von Ausführungsformen der vorliegenden Offenbarung auf „eine oder mehrere Ausführungsformen der vorliegenden Offenbarung“. Wie hier verwendet, können die Begriffe „verwenden“, „unter Verwendung“ und „verwendet“ als gleichbedeutend mit den Begriffen „nutzen“, „unter Nutzung“ bzw. „genutzt“ betrachtet werden. Außerdem soll der Begriff „beispielhaft“ auf ein Beispiel oder eine Veranschaulichung verweisen.As used herein, the terms "substantially", "about" and similar terms are used as approximate terms and not as degrees and are intended to take into account the inherent variations in the measured or calculated values that one of ordinary skill in the art would recognize. Furthermore, the use of "may" in describing embodiments of the present disclosure refers to "one or more embodiments of the present disclosure". As used here, the terms "use", "using" and "used" can be considered synonymous with the terms "use", "using" and "used". In addition, the term “exemplary” is intended to refer to an example or an illustration.

Ein Teil der Offenbarung dieses Patentdokuments enthält Material, das dem Urheberrechtsschutz unterliegt. Der Urheberrechtsinhaber hat keine Einwände gegen die Faksimile-Reproduktion durch irgendjemanden des Patentdokuments oder der Patentoffenbarung, wie sie in der Patentdatei oder den Aufzeichnungen des Patent- und Markenamtes aufgeführt sind, behält sich jedoch ansonsten alle Urheberrechte vor.A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright holder has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as listed in the patent file or the records of the Patent and Trademark Office, but otherwise reserves all copyrights.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant has been generated automatically and is only included for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • US 62564247 [0001, 0558, 0570]US 62564247 [0001, 0558, 0570]
  • US 62611974 [0001, 0559]US 62611974 [0001, 0559]
  • US 62611984 [0001, 0559]US 62611984 [0001, 0559]
  • US 62/612228 [0001]US 62/612228 [0001]
  • US 62612167 [0001]US 62612167 [0001]
  • US 62580867 [0001]US 62580867 [0001]
  • US 14717593 [0541]US 14717593 [0541]
  • US 14634609 [0544]US 14634609 [0544]
  • US 14263639 [0565]US 14263639 [0565]
  • US 15639880 [0572]US 15639880 [0572]
  • US 15179894 [0581]US 15179894 [0581]

Claims (100)

Nichtflüchtiges computerlesbares Speichermedium oder nichtflüchtige computerlesbare Speichermedien, die Programmanweisungen enthalten, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren zum Durchführen von Operationen veranlassen, die Folgendes umfassen: Erzeugen einer Datenbank aus miteinander verbundenen intelligenten Entitäten, wobei die intelligenten Entitäten Objektentitäten, die jeweils mehrere Objekten repräsentieren, die einem oder mehreren Gebäuden zugeordnet sind, und wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, und Datenentitäten umfassen, die von den Objekten erzeugte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten anzeigen; Empfangen von Daten von einem ersten Objekt der mehreren Objekten; Bestimmen eines zweiten Objekts aus einem relationalen Objekt für das erste Objekt basierend auf den empfangenen Daten; und Modifizieren einer Datenentität, die mit einer Objektentität des zweiten Objekts innerhalb der Datenbank der intelligenten Entitäten verbunden ist, basierend auf den empfangenen Daten für das erste Objekt.Non-volatile computer readable storage media or non-volatile computer readable storage media containing program instructions that, when executed by one or more processors, cause the one or more processors to perform operations that include: Creating a database of interconnected intelligent entities, the intelligent entities object entities each representing a plurality of objects associated with one or more buildings, and wherein the plurality of objects each representing an area, a person, a building subsystem and / or a device, and comprise data entities representing data generated by the objects, the intelligent entities being interconnected by relational objects that indicate relationships between the object entities and the data entities; Receiving data from a first object of the plurality of objects; Determining a second object from a relational object for the first object based on the received data; and Modify a data entity associated with an object entity of the second object within the intelligent entity database based on the received data for the first object. Nichtflüchtige computerlesbare Medien nach Anspruch 1, wobei das erste Objekt ein Sensor ist und das zweite Objekt ein Bereich innerhalb des Gebäudes ist, in dem sich der Sensor befindet.Non-volatile computer readable media Claim 1 , wherein the first object is a sensor and the second object is an area within the building in which the sensor is located. Nichtflüchtige computerlesbare Medien nach Anspruch 2, wobei der Sensor ein Temperatursensor ist und die Datenentität, die mit der den Bereich repräsentierenden Objektentität verbunden ist, zum Speichern eines Umgebungstemperaturwertes des Bereichs basierend auf den vom Temperatursensor empfangenen Daten konfiguriert ist.Non-volatile computer readable media Claim 2 wherein the sensor is a temperature sensor, and the data entity associated with the object entity representing the area is configured to store an ambient temperature value of the area based on the data received from the temperature sensor. Nichtflüchtige computerlesbare Medien nach Anspruch 1, wobei eine oder mehrere der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern eines Datenpunkts, der der Objektentität zugeordnet ist, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert, umfassen.Non-volatile computer readable media Claim 1 wherein one or more of the object entities include a static attribute for identifying the object entity, a dynamic attribute for storing a data point associated with the object entity that changes over time, and a behavioral attribute that provides an expected response from the object entity in response to defines an input. Nichtflüchtige computerlesbare Medien nach Anspruch 4, wobei die Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, zum Speichern des dynamischen Attributs der Objektentität konfiguriert ist.Non-volatile computer readable media Claim 4 , wherein the data entity associated with the object entity of the second object is configured to store the dynamic attribute of the object entity. Nichtflüchtige computerlesbare Medien nach Anspruch 5, wobei ein relationales Objekt die Verbindung zwischen der Datenentität und der Objektentität des zweiten Objekts semantisch definiert.Non-volatile computer readable media Claim 5 , wherein a relational object semantically defines the connection between the data entity and the object entity of the second object. Nichtflüchtige computerlesbare Medien nach Anspruch 1, wobei das Modifizieren der Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, Folgendes umfasst: Identifizieren eines dynamischen Attributs in den Daten, die der Objektentität des zweiten Objekts zugeordnet sind; Bestimmen eines relationalen Objekts, das die Datenentität mit der Objektentität des zweiten Objekts verbindet; und Speichern eines Werts der Daten, die dem dynamischen Attribut in der Datenentität entsprechen.Non-volatile computer readable media Claim 1 wherein modifying the data entity associated with the object entity of the second object comprises: identifying a dynamic attribute in the data associated with the object entity of the second object; Determining a relational object that connects the data entity to the object entity of the second object; and storing a value of the data corresponding to the dynamic attribute in the data entity. Nichtflüchtige computerlesbare Medien nach Anspruch 1, wobei das erste Objekt eine Zugangssteuervorrichtung ist und das zweite Objekt eine Person ist, die dem Gebäudes zugeordnet ist, in dem sich die Zugangssteuervorrichtung befindet.Non-volatile computer readable media Claim 1 , wherein the first object is an access control device and the second object is a person associated with the building in which the access control device is located. Nichtflüchtige computerlesbare Medien nach Anspruch 8, wobei die Datenentität, die mit der die Person repräsentierenden Objektentität verbunden ist, zum Speichern eines Standortattributs der Person basierend auf den von der Zugangssteuervorrichtung empfangenen Daten konfiguriert ist.Non-volatile computer readable media Claim 8 , wherein the data entity associated with the object entity representing the person is configured to store a location attribute of the person based on the data received from the access control device. Nichtflüchtige computerlesbare Medien nach Anspruch 9, wobei die Anweisungen ferner den einen oder die mehreren Prozessoren zum Erzeugen einer Schattenentität, um historische Werte der von der Zugangssteuervorrichtung empfangenen Daten zu speichern, und Berechnen einer durchschnittlichen Ankunftszeit der Person aus den in der Schattenentität gespeicherten historischen Werten veranlassen.Non-volatile computer readable media Claim 9 the instructions further causing the one or more processors to generate a shadow entity to store historical values of the data received from the access control device and calculate an average time of arrival of the person from the historical values stored in the shadow entity. Verfahren zum Verwalten von Daten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind, wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, die mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden sind, welches Folgendes umfasst: Erzeugen, durch einen oder mehrere Prozessoren, einer Datenbank aus miteinander verbundenen intelligenten Entitäten, wobei die intelligenten Entitäten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten umfassen, die von den Objekten erzeugte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben; Empfangen, durch den einen oder die mehreren Prozessoren, von Daten von einem ersten Objekt der mehreren Objekte; Bestimmen, durch den einen oder die mehreren Prozessoren, eines zweiten Objekts aus einem relationalen Objekt für das erste Objekt basierend auf den empfangenen Daten; und Modifizieren, durch den einen oder die mehreren Prozessoren, einer Datenentität, die mit einer Objektentität des zweiten Objekts innerhalb der Datenbank der intelligenten Entitäten verbunden ist, basierend auf den empfangenen Daten für das erste Objekt.Method for managing data relating to a plurality of objects which are assigned to one or more buildings, the plurality of objects each comprising an area, a person, a building subsystem and / or represent a device connected to one or more electronic communication networks, comprising: creating, by one or more processors, a database of interconnected intelligent entities, the intelligent entities object entities each representing the plurality of objects, and comprise data entities representing data generated by the objects, the intelligent entities being connected by relational objects that indicate relationships between the object entities and the data entities; Receiving, by the one or more processors, data from a first object of the plurality of objects; Determining, by the one or more processors, a second object from a relational object for the first object based on the received data; and modifying, by the one or more processors, a data entity associated with an object entity of the second object within the intelligent entity database based on the received data for the first object. Verfahren nach Anspruch 11, wobei das erste Objekt ein Sensor ist und das zweite Objekt ein Raum innerhalb des Gebäudes ist, in dem sich der Sensor befindet.Procedure according to Claim 11 , wherein the first object is a sensor and the second object is a space within the building in which the sensor is located. Verfahren nach Anspruch 12, wobei der Sensor ein Temperatursensor ist und die Datenentität, die mit der den Bereich repräsentierenden Objektentität verbunden ist, zum Speichern eines Umgebungstemperaturwertes des Bereichs basierend auf den vom Temperatursensor empfangenen Daten konfiguriert ist.Procedure according to Claim 12 wherein the sensor is a temperature sensor, and the data entity associated with the object entity representing the area is configured to store an ambient temperature value of the area based on the data received from the temperature sensor. Verfahren nach Anspruch 11, wobei jede der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern eines Datenpunkts, der der Objektentität zugeordnet ist, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert, umfasst.Procedure according to Claim 11 , wherein each of the object entities is a static attribute for identifying the object entity, a dynamic attribute for storing a data point associated with the object entity that changes over time, and a behavior attribute that is an expected response of the object entity in response to an input defined, includes. Verfahren nach Anspruch 14, wobei die Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, zum Speichern des dynamischen Attributs der Objektentität konfiguriert ist.Procedure according to Claim 14 , wherein the data entity associated with the object entity of the second object is configured to store the dynamic attribute of the object entity. Verfahren nach Anspruch 14, wobei ein relationales Objekt die Verbindung zwischen der Datenentität und der Objektentität des zweiten Objekts semantisch definiert.Procedure according to Claim 14 , wherein a relational object semantically defines the connection between the data entity and the object entity of the second object. Verfahren nach Anspruch 11, wobei das Modifizieren der Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, Folgendes umfasst: Identifizieren, durch den einen oder die mehreren Prozessoren, eines dynamischen Attributs in den Daten, die der Objektentität des zweiten Objekts zugeordnet sind; Bestimmen, durch den einen oder die mehreren Prozessoren, eines relationalen Objekts, das die Datenentität mit der Objektentität des zweiten Objekts verbindet; und Speichern, durch den einen oder die mehreren Prozessoren, eines Werts der Daten, die dem dynamischen Attribut in der Datenentität entsprechen.Procedure according to Claim 11 wherein modifying the data entity associated with the object entity of the second object comprises: identifying, by the one or more processors, a dynamic attribute in the data associated with the object entity of the second object; Determining, by the one or more processors, a relational object that connects the data entity to the object entity of the second object; and storing, by the one or more processors, a value of the data corresponding to the dynamic attribute in the data entity. Verfahren nach Anspruch 11, wobei das erste Objekt eine Zugangssteuervorrichtung ist und das zweite Objekt eine Person ist, die dem Gebäudes zugeordnet ist, in dem sich die Zugangssteuervorrichtung befindet, und die Datenentität, die mit der die Person repräsentierenden Objektentität verbunden ist, zum Speichern eines Standortattributs der Person basierend auf den von der Zugangssteuervorrichtung empfangenen Daten konfiguriert ist.Procedure according to Claim 11 , wherein the first object is an access control device and the second object is a person associated with the building in which the access control device is located and the data entity associated with the object entity representing the person for storing a location attribute of the person is configured on the data received from the access control device. Gebäudeverwaltung-Cloud-Rechensystem zum Verwalten von Daten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind, wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, die mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden sind, welches Folgendes umfasst: einen oder mehrere Prozessoren, und ein oder mehrere computerlesbare Speichermedien, die kommunikativ mit dem einen oder den mehreren Prozessoren gekoppelt sind und die darauf gespeicherte Anweisungen aufweisen, die bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erzeugen einer Datenbank aus miteinander verbundenen intelligenten Entitäten, wobei die intelligenten Entitäten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten umfassen, die von den Objekten erzeugte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben; Empfangen von Daten von einem ersten Objekt der mehreren Objekten; Bestimmen eines zweiten Objekts aus einem relationalen Objekt für das erste Objekt basierend auf den empfangenen Daten; und Modifizieren einer Datenentität, die mit einer Objektentität des zweiten Objekts innerhalb der Datenbank der intelligenten Entitäten verbunden ist, basierend auf den empfangenen Daten für das erste Objekt.Building management cloud computing system for managing data related to multiple objects associated with one or more buildings, the multiple objects each representing an area, person, building subsystem, and / or device associated with one or more electronic communication networks , which comprises: one or more processors, and one or more computer-readable storage media which are communicatively coupled to the one or more processors and which have instructions stored thereon which, when executed by the one or more processors, the one or cause the multiple processors to: create a database of interconnected intelligent entities, the intelligent entities comprising object entities each representing the multiple objects and data entities representing data generated by the objects, the data in telligent entities are linked by relational objects that indicate relationships between the object entities and the data entities; Receiving data from a first object of the plurality of objects; Determining a second object from a relational object for the first object based on the received data; and modifying a data entity associated with an object entity of the second object within the intelligent entity database based on the received data for the first object. System nach Anspruch 19, wobei das Modifizieren der Datenentität, die mit der Objektentität des zweiten Objekts verbunden ist, Folgendes umfasst: Identifizieren eines dynamischen Attributs in den Daten, die der Objektentität des zweiten Objekts zugeordnet sind; Bestimmen eines relationalen Objekts, das die Datenentität mit der Objektentität des zweiten Objekts verbindet; und Speichern eines Werts der Daten, die dem dynamischen Attribut in der Datenentität entsprechen.System according to Claim 19 wherein modifying the data entity associated with the object entity of the second object comprises: identifying a dynamic attribute in the data associated with the object entity of the second object; Determining a relational object that connects the data entity to the object entity of the second object; and storing a value of the data corresponding to the dynamic attribute in the data entity. Nichtflüchtiges computerlesbares Speichermedium oder nichtflüchtige computerlesbare Speichermedien, die Programmanweisungen enthalten, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren zum Durchführen von Operationen veranlassen, die Folgendes umfassen: Empfangen erster Rohdaten von einem ersten Objekt mehrerer Objekte, die einem oder mehreren Gebäude zugeordnet sind, wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentiere und wobei die ersten Rohdaten einen oder mehrere durch das erste Objekt erzeugte erste Datenpunkte beinhalten; Erzeugen einer ersten Eingabezeitreihe gemäß dem einen oder den mehreren Datenpunkten; Zugreifen auf eine Datenbank aus miteinander verbundenen intelligenten Entitäten, wobei die intelligenten Entitäten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten umfassen, die von gespeicherte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben; Identifizieren einer ersten Objektentität, die das erste Objekt repräsentiert, aus einer ersten Kennung in der ersten Eingabezeitreihe; Identifizieren einer ersten Datenentität aus einem ersten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität angibt; und Speichern der ersten Eingabezeitreihe in der ersten Datenentität.Non-volatile computer readable storage media or non-volatile computer readable storage media containing program instructions that, when executed by one or more processors, cause the one or more processors to perform operations that include: Receiving first raw data from a first object of a plurality of objects which are assigned to one or more buildings, the plurality of objects each representing an area, a person, a building subsystem and / or a device, and the first raw data generating one or more generated by the first object include first data points; Generating a first input time series according to the one or more data points; Access a database of interconnected intelligent entities, the intelligent entities comprising object entities each representing the plurality of objects and data entities representing data stored, the intelligent entities being connected by relational objects, the relationships between the object entities and specify the data entities; Identifying a first object entity representing the first object from a first identifier in the first input time series; Identifying a first data entity from a first relational object that indicates a relationship between the first object entity and the first data entity; and Store the first input time series in the first data entity. Nichtflüchtige computerlesbare Medien nach Anspruch 21, wobei die relationalen Objekte die Beziehungen zwischen den Objektentitäten und den Datenentitäten semantisch definieren.Non-volatile computer readable media Claim 21 , where the relational objects semantically define the relationships between the object entities and the data entities. Nichtflüchtige computerlesbare Medien nach Anspruch 21, wobei die Eingabezeitreihe die erste Kennung, einen Zeitstempel, der eine Erzeugungszeit des einen oder der mehreren ersten Datenpunkte angeben, und einen Wert des einen oder der mehreren ersten Datenpunkte beinhaltet.Non-volatile computer readable media Claim 21 , wherein the input time series includes the first identifier, a time stamp that indicates a generation time of the one or more first data points, and a value of the one or more first data points. Nichtflüchtige computerlesbare Medien nach Anspruch 21, wobei die Anweisungen den einen oder die mehreren Prozessoren ferner zu Folgendem veranlassen: Identifizieren einer zweiten Datenentität. die ein zweites Objekt repräsentiert, aus einem zweiten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der zweiten Objektentität angibt; und Identifizieren einer zweiten Datenentität aus einem dritten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der zweiten Datenentität angibt, wobei die zweite Datenentität eine zweite Eingabezeitreihe speichert, die einem oder mehreren zweiten Datenpunkten entspricht, die dem zweiten Objekt zugeordnet sind.Non-volatile computer readable media Claim 21 wherein the instructions further cause the one or more processors to: identify a second data entity. representing a second object from a second relational object indicating a relationship between the first object entity and the second object entity; and identifying a second data entity from a third relational object indicating a relationship between the second object entity and the second data entity, the second data entity storing a second input time series corresponding to one or more second data points associated with the second object. Nichtflüchtige computerlesbare Medien nach Anspruch 24, wobei die Anweisungen den einen oder die mehreren Prozessoren ferner zu Folgendem veranlassen: Identifizieren eines oder mehrerer Verarbeitungsworkflows, die eine oder mehrere Verarbeitungsoperationen definieren, um abgeleitete Zeitreihen unter Verwendung der ersten und zweiten Eingabezeitreihen zu erzeugen; Ausführen des einen oder der mehreren Verarbeitungsarbeitsflüsse, um die abgeleitete Zeitreihe zu erzeugen; Identifizieren einer dritten Datenentität aus einem vierten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der dritten Datenentität angibt; und Speichern der abgeleiteten Eingabezeitreihe in der dritten Datenentität.Non-volatile computer readable media Claim 24 wherein the instructions further cause the one or more processors to: identify one or more processing workflows defining one or more processing operations to generate derived time series using the first and second input time series; Executing the one or more processing workflows to generate the derived time series; Identifying a third data entity from a fourth relational object that indicates a relationship between the second object entity and the third data entity; and storing the derived input time series in the third data entity. Nichtflüchtige computerlesbare Medien nach Anspruch 25, wobei das erste Objekt eine Zugangssteuervorrichtung ist und das zweite Objekt eine einer Person zugeordnete Zugangsschlüsselkarte ist, und wobei die abgeleitete Zeitreihe einen oder mehrere virtuelle Datenpunkte beinhaltet, die gemäß der ersten und zweiten Eingabezeitreihe berechnet wurden.Non-volatile computer readable media Claim 25 , wherein the first object is an access control device and the second object is an access key card associated with a person, and wherein derived time series includes one or more virtual data points calculated according to the first and second input time series. Nichtflüchtige computerlesbare Medien nach Anspruch 26, wobei der eine oder die mehreren virtuellen Datenpunkte ein oder mehrere Standortattribute der Person beinhalten.Non-volatile computer readable media Claim 26 , wherein the one or more virtual data points include one or more location attributes of the person. Nichtflüchtige computerlesbare Medien nach Anspruch 25, wobei das erste Objekt ein Temperatursensor ist und das zweite Objekt eine variable Luftvolumeneinheit (VAV) ist, und die abgeleitete Zeitreihe ein abnormales Temperaturattribut beinhaltet, das einem Bereich entspricht, in dem sich der Temperatursensor befindet und für deren Versorgung die VAV konfiguriert ist.Non-volatile computer readable media Claim 25 , wherein the first object is a temperature sensor and the second object is a variable air volume unit (VAV), and the derived time series includes an abnormal temperature attribute that corresponds to an area in which the temperature sensor is located and for which the VAV is configured to supply it. Nichtflüchtige computerlesbare Medien nach Anspruch 25, wobei das erste und/oder zweite Objekt ein Temperatursensor ist und die Anweisungen den einen oder die mehreren Prozessoren zu Folgendem veranlassen: periodisches Empfangen von Temperaturmessungen von dem Temperatursensor; und Aktualisieren wenigstens der abgeleiteten Zeitreihe in der dritten Datenentität jedes Mal, wenn eine neue Temperaturmessung von dem Temperatursensor empfangen wird.Non-volatile computer readable media Claim 25 wherein the first and / or second object is a temperature sensor and the instructions cause the one or more processors to: periodically receive temperature measurements from the temperature sensor; and updating at least the derived time series in the third data entity each time a new temperature measurement is received from the temperature sensor. Nichtflüchtige computerlesbare Medien nach Anspruch 29, wobei die abgeleitete Zeitreihe eine durchschnittliche Umgebungstemperatur eines Bereichs beinhaltet, in dem sich der Temperatursensor befindet.Non-volatile computer readable media Claim 29 , wherein the derived time series includes an average ambient temperature of an area in which the temperature sensor is located. Verfahren zum Verwalten von Zeitreihendaten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind, wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesystem und/oder eine Vorrichtung repräsentieren, die mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden sind, welches Folgendes umfasst: Empfangen, durch einen oder mehrere Prozessoren, erster Rohdaten von einem ersten Objekt der mehreren Objekte, wobei die ersten Rohdaten einen oder mehrere durch das erste Objekt erzeugte erste Datenpunkte beinhalten; Erzeugen, durch den einen oder die mehreren Prozessoren, einer ersten Eingabezeitreihe gemäß dem einen oder den mehreren Datenpunkten; Zugreifen, durch den einen oder die mehreren Prozessoren, auf eine Datenbank aus miteinander verbundenen intelligenten Entitäten, wobei die intelligenten Entitäten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten umfassen, die von gespeicherte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben; Identifizieren, durch den einen oder die mehreren Prozessoren, einer ersten Objektentität, die das erste Objekt repräsentiert, aus einer ersten Kennung in der ersten Eingabezeitreihe; Identifizieren, durch den einen oder die mehreren Prozessoren, einer ersten Datenentität aus einem ersten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität angibt; und Speichern, durch den einen oder die mehreren Prozessoren, der ersten Eingabezeitreihe in der ersten Datenentität, wobei die relationalen Objekte die Beziehungen zwischen den Objektentitäten und den Datenentitäten semantisch definieren, und wobei eine oder mehrere der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern von Daten, die der Objektentität zugeordnet sind, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert, umfassen.Method for managing time series data relating to a plurality of objects which are associated with one or more buildings, the plurality of objects each representing an area, a person, a building system and / or a device which are connected to one or more electronic communication networks, which The following includes: Receiving, by one or more processors, first raw data from a first object of the plurality of objects, the first raw data including one or more first data points generated by the first object; Generating, by the one or more processors, a first input time series according to the one or more data points; Access, by the one or more processors, a database of interconnected intelligent entities, the intelligent entities including object entities each representing the multiple objects and data entities representing stored data, the intelligent entities through relational objects together connected that indicate relationships between the object entities and the data entities; Identify, by the one or more processors, a first object entity representing the first object from a first identifier in the first input time series; Identify, by the one or more processors, a first data entity from a first relational object indicating a relationship between the first object entity and the first data entity; and Storing, by the one or more processors, the first input time series in the first data entity, the relational objects semantically defining the relationships between the object entities and the data entities, and wherein one or more of the object entities is a static attribute for identifying the object entity, a dynamic attribute for storing data associated with the object entity that changes over time, and a behavior attribute that is an expected response of the object entity in response to one Input defined, include. Verfahren nach Anspruch 31, wobei die erste Eingabezeitreihe dem dynamischen Attribut der ersten Objektentität entspricht, und wenigstens einer der ersten Datenpunkte in der ersten Eingabezeitreihe in dem dynamischen Attribut der ersten Objektentität gespeichert ist.Procedure according to Claim 31 , wherein the first input time series corresponds to the dynamic attribute of the first object entity, and at least one of the first data points in the first input time series is stored in the dynamic attribute of the first object entity. Verfahren nach Anspruch 31, wobei die Eingabezeitreihe die erste Kennung, einen Zeitstempel, der eine Erzeugungszeit des einen oder der mehreren ersten Datenpunkte angeben, und einen Wert des einen oder der mehreren ersten Datenpunkte beinhaltet.Procedure according to Claim 31 , wherein the input time series includes the first identifier, a time stamp that indicates a generation time of the one or more first data points, and a value of the one or more first data points. Verfahren nach Anspruch 31, das ferner Folgendes umfasst: Identifizieren, durch den einen oder die mehreren Prozessoren, einer zweiten Datenentität. die ein zweites Objekt repräsentiert, aus einem zweiten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der zweiten Objektentität angibt; und Identifizieren, durch den einen oder die mehreren Prozessoren, einer zweiten Datenentität aus einem dritten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der zweiten Datenentität angibt, wobei die zweite Datenentität eine zweite Eingabezeitreihe speichert, die einem oder mehreren zweiten Datenpunkten entspricht, die dem zweiten Objekt zugeordnet sind.Procedure according to Claim 31 , which also includes: Identify, by the one or more processors, a second data entity. representing a second object from a second relational object indicating a relationship between the first object entity and the second object entity; and identifying, by the one or more processors, a second data entity from a third relational object indicating a relationship between the second object entity and the second data entity, the second data entity storing a second input time series corresponding to one or more second data points, assigned to the second object. Verfahren nach Anspruch 34, das ferner Folgendes umfasst: Identifizieren, durch den einen oder die mehreren Prozessoren, eines oder mehrerer Verarbeitungsworkflows, die eine oder mehrere Verarbeitungsoperationen definieren, um abgeleitete Zeitreihen unter Verwendung der ersten und zweiten Eingabezeitreihen zu erzeugen; Ausführen, durch den einen oder die mehreren Prozessoren, des einen oder der mehreren Verarbeitungsarbeitsflüsse, um die abgeleitete Zeitreihe zu erzeugen; Identifizieren, durch den einen oder die mehreren Prozessoren, einer dritten Datenentität aus einem vierten relationalen Objekt, das eine Beziehung zwischen der zweiten Objektentität und der dritten Datenentität angibt; und Speichern, durch den einen oder die mehreren Prozessoren, der abgeleiteten Zeitreihe in der dritten Datenentität.Procedure according to Claim 34 , further comprising: identifying, by the one or more processors, one or more processing workflows defining one or more processing operations to generate derived time series using the first and second input time series; Executing, by the one or more processors, the one or more processing workflows to generate the derived time series; Identify, by the one or more processors, a third data entity from a fourth relational object that indicates a relationship between the second object entity and the third data entity; and storing, by the one or more processors, the derived time series in the third data entity. Verfahren nach Anspruch 35, wobei das erste Objekt eine Zugangssteuervorrichtung ist und das zweite Objekt eine einer Person zugeordnete Zugangsschlüsselkarte ist, und wobei die abgeleitete Zeitreihe einen oder mehrere virtuelle Datenpunkte beinhaltet, die gemäß der ersten und zweiten Eingabezeitreihe berechnet wurden.Procedure according to Claim 35 , wherein the first object is an access control device and the second object is an access key card associated with a person, and wherein the derived time series includes one or more virtual data points calculated according to the first and second input time series. Verfahren nach Anspruch 36, wobei der eine oder die mehreren virtuellen Datenpunkte ein oder mehrere Standortattribute der Person beinhalten.Procedure according to Claim 36 , wherein the one or more virtual data points include one or more location attributes of the person. Verfahren nach Anspruch 35, wobei das erste Objekt ein Temperatursensor ist und das zweite Objekt eine variable Luftvolumeneinheit (VAV) ist, und die abgeleitete Zeitreihe ein abnormales Temperaturattribut beinhaltet, das einem Bereich entspricht, in dem sich der Temperatursensor befindet und für deren Versorgung die VAV konfiguriert ist.Procedure according to Claim 35 , wherein the first object is a temperature sensor and the second object is a variable air volume unit (VAV), and the derived time series includes an abnormal temperature attribute that corresponds to an area in which the temperature sensor is located and for which the VAV is configured to supply it. Verfahren nach Anspruch 35, wobei das erste und/oder zweite Objekt ein Temperatursensor ist und das Verfahren ferner Folgendes umfasst: periodisches Empfangen, durch den einen oder die mehreren Prozessoren, von Temperaturmessungen von dem Temperatursensor; und Aktualisieren, durch den einen oder die mehreren Prozessoren, wenigstens der abgeleiteten Zeitreihe in der dritten Datenentität jedes Mal, wenn eine neue Temperaturmessung von dem Temperatursensor empfangen wird.Procedure according to Claim 35 wherein the first and / or second object is a temperature sensor and the method further comprises: periodically receiving, by the one or more processors, temperature measurements from the temperature sensor; and updating, by the one or more processors, at least the derived time series in the third data entity each time a new temperature measurement is received from the temperature sensor. Gebäudeverwaltung-Cloud-Rechensystem zum Verwalten von Zeitreihendaten mit Bezug auf mehrere Objekte, die einem oder mehreren Gebäuden zugeordnet sind, wobei die mehreren Objekte jeweils einen Bereich, eine Person, ein Gebäudesubsystem und/oder eine Vorrichtung repräsentieren, die mit einem oder mehreren elektronischen Kommunikationsnetzen verbunden sind, welches Folgendes umfasst: einen oder mehrere Prozessoren, die kommunikativ mit einer Datenbank aus miteinander verbundenen intelligenten Entitäten verbunden sind, wobei die intelligenten Entitäten Objektentitäten, die jeweils die mehreren Objekte repräsentieren, und Datenentitäten umfassen, die gespeicherte Daten repräsentieren, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben; und ein oder mehrere computerlesbare Speichermedien, die kommunikativ mit dem einen oder den mehreren Prozessoren gekoppelt sind und die darauf gespeicherte Anweisungen aufweisen, die bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Empfangen erster Rohdaten von einem ersten Objekt der mehreren Objekte, wobei die ersten Rohdaten einen oder mehrere durch das erste Objekt erzeugte erste Datenpunkte beinhalten; Erzeugen einer ersten Eingabezeitreihe gemäß dem einen oder den mehreren Datenpunkten; Identifizieren einer ersten Objektentität, die das erste Objekt repräsentiert, aus einer ersten Kennung in der ersten Eingabezeitreihe; Identifizieren einer ersten Datenentität aus einem ersten relationalen Objekt, das eine Beziehung zwischen der ersten Objektentität und der ersten Datenentität angibt; und Speichern der ersten Eingabezeitreihe in der ersten Datenentität, wobei die relationalen Objekte die Beziehungen zwischen den Objektentitäten und den Datenentitäten semantisch definieren, wobei eine oder mehrere der Objektentitäten ein statisches Attribut zum Identifizieren der Objektentität, ein dynamisches Attribut zum Speichern von Daten, die der Objektentität zugeordnet sind, die sich im Laufe der Zeit ändert, und ein Verhaltensattribut, das eine erwartete Antwort der Objektentität als Reaktion auf eine Eingabe definiert, umfassen, wobei die erste Eingabezeitreihe dem dynamischen Attribut der ersten Objektentität entspricht, wobei wenigstens einer der ersten Datenpunkte in der ersten Eingabezeitreihe in dem dynamischen Attribut der ersten Objektentität gespeichert ist, und wobei die Eingabezeitreihe die erste Kennung, einen Zeitstempel, der eine Erzeugungszeit des einen oder der mehreren ersten Datenpunkte angeben, und einen Wert des einen oder der mehreren ersten Datenpunkte beinhaltet.Building management cloud computing system for managing time series data related to multiple objects associated with one or more buildings, the multiple objects each representing an area, person, building subsystem, and / or device associated with one or more electronic communication networks , which comprises: one or more processors communicatively connected to a database of interconnected intelligent entities, the intelligent entities comprising object entities each representing the plurality of objects and data entities representing stored data, the intelligent ones Entities are linked by relational objects that indicate relationships between the object entities and the data entities; and one or more computer readable storage media communicatively coupled to the one or more processors and having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to: receive first raw data from one first object of the plurality of objects, the first raw data including one or more first data points generated by the first object; Generating a first input time series according to the one or more data points; Identifying a first object entity representing the first object from a first identifier in the first input time series; Identifying a first data entity from a first relational object that indicates a relationship between the first object entity and the first data entity; and Storing the first input time series in the first data entity, the relational objects semantically defining the relationships between the object entities and the data entities, one or more of the object entities having a static attribute for identifying the object entity, a dynamic attribute for storing data associated with the object entity that change over time and include a behavioral attribute that defines an expected response of the object entity in response to an input, the first input time series corresponding to the dynamic attribute of the first object entity, at least one of the first data points in the first The input time series is stored in the dynamic attribute of the first object entity, and the input time series includes the first identifier, a time stamp that indicates a generation time of the one or more first data points, and a value of the one or more first data points included. Gebäudeverwaltungssystem, das Folgendes umfasst: eine Gebäudeausrüstung, die zum Bereitstellen von Abtastwerten von einem oder mehreren Datenpunkten im Gebäudeverwaltungssystem konfiguriert ist; einen Datenkollektor, der zum Sammeln der Abtastwerte von der Gebäudeausrüstung und Erzeugen einer oder mehrerer Eingabezeitreihen, die mehrere Abtastwerte umfassen, konfiguriert ist; einen Zeitreihendienst, der zu Folgendem konfiguriert ist: Identifizieren eines ersten Zeitreihenverarbeitungsarbeitsflusses, der die Eingabezeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der Eingabezeitreihe angewendet werden sollen; Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den ersten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine erste abgeleitete Zeitreihe zu erzeugen, die einen ersten Satz abgeleiteter Zeitreihenabtastwerte umfasst; Identifizieren eines zweiten Zeitreihenverarbeitungsarbeitsflusses, der die erste abgeleitete Zeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der ersten abgeleiteten Zeitreihe angewendet werden sollen; und Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den zweiten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine zweite abgeleitete Zeitreihe zu erzeugen, die einen zweiten Satz abgeleiteter Zeitreihenabtastwerte umfasst; und eine Zeitreihenspeicherungsschnittstelle, die zum Speichern der Eingabezeitreihen und der ersten und zweiten abgeleitete Zeitreihe in einer Zeitreihendatenbank konfiguriert ist.Building management system that includes: building equipment configured to provide samples of one or more data points in the building management system; a data collector configured to collect the samples from the building equipment and generate one or more input time series comprising multiple samples; a time series service configured to: Identify a first time series processing workflow that uses the input time series as an input and defines one or more processing operations to be applied to the samples of the input time series; Performing the one or more processing operations defined by the first time series processing workflow to generate a first derived time series comprising a first set of derived time series samples; Identify a second time series processing workflow that uses the first derived time series as an input and defines one or more processing operations to be applied to the samples of the first derived time series; and Performing the one or more processing operations defined by the second time series processing workflow to produce a second derived time series comprising a second set of derived time series samples; and a time series storage interface configured to store the input time series and the first and second derived time series in a time series database. Gebäudeverwaltungssystem nach Anspruch 41, wobei die Gebäudeausrüstung Sensoren, HVAC-Ausrüstung, Beleuchtungsausrüstung, Zugangssteuerausrüstung und/oder Sicherheitsausrüstung umfasst.Building management system according to Claim 41 wherein the building equipment includes sensors, HVAC equipment, lighting equipment, access control equipment and / or security equipment. Gebäudeverwaltungssystem nach Anspruch 41, wobei das Erzeugen der ersten abgeleiteten Zeitreihe Folgendes umfasst: Transformieren eines oder mehrerer Abtastwerte der Eingabezeitreihen in einen oder mehrere Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Eingabezeitreihen als eine Eingabe auf den ersten Zeitreihenverarbeitungsarbeitsfluss; und Zusammenstellen des ersten Satzes abgeleiteter Zeitreihenabtastwerte, um die erste abgeleitete Zeitreihe zu bilden.Building management system according to Claim 41 wherein generating the first derived time series comprises: transforming one or more samples of the input time series into one or more samples of the first set of derived time series samples by applying the one or more samples of the input time series as an input to the first time series processing workflow; and assembling the first set of derived time series samples to form the first derived time series. Gebäudeverwaltungssystem nach Anspruch 41, wobei das Erzeugen der zweiten abgeleiteten Zeitreihe Folgendes umfasst: Transformieren eines oder mehrerer Abtastwerte des ersten Satzes von abgeleiteten Zeitreihenabtastwerten in einen oder mehrere Abtastwerte des zweiten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte als eine Eingabe auf den zweiten Zeitreihenverarbeitungsarbeitsfluss; und Zusammenstellen des zweiten Satzes abgeleiteter Zeitreihenabtastwerte, um die zweite abgeleitete Zeitreihe zu bilden.Building management system according to Claim 41 wherein generating the second derived time series sample comprises: transforming one or more samples of the first set of derived time series samples into one or more samples of the second set of derived time series samples by applying the one or more samples of the first set of derived time series samples as an input to the second time series processing workflow; and assembling the second set of derived time series samples to form the second derived time series. Gebäudeverwaltungssystem nach Anspruch 41, wobei der Zeitreihendienst zu Folgendem konfiguriert ist: Identifizieren einer oder mehrerer Zeitreihen, die als Eingaben für den ersten Zeitreihenverarbeitungsarbeitsfluss zu verwenden sind; und Erzeugen eines angereicherten Zeitreihenverarbeitungsarbeitsflusses, der den ersten Zeitreihenverarbeitungsarbeitsfluss, die Eingabezeitreihe und die eine oder mehreren anderen Zeitreihen umfasst.Building management system according to Claim 41 wherein the time series service is configured to: identify one or more time series to be used as inputs to the first time series processing workflow; and Generate an enriched time series processing workflow that includes the first time series processing workflow, the input time series, and the one or more other time series. Gebäudeverwaltungssystem nach Anspruch 41, das ferner eine DAG-Datenbank (DAG - gerichteter azyklischer Graph) umfasst, die mehrere DAGs speichert, wobei jeder der DAGs einen Zeitreihenverarbeitungsarbeitsfluss definiert, wobei der Zeitreihendienst einen DAG-Identifikator umfasst, der zum Bestimmen konfiguriert ist, ob irgendeiner der in der DAG-Datenbank gespeicherten DAGs die Eingabezeitreihen oder die erste abgeleitete Zeitreihe als eine Eingabe verwendet.Building management system according to Claim 41 further comprising a directed acyclic graph (DAG) database that stores a plurality of DAGs, each of the DAGs defining a time series processing workflow, the time series service including a DAG identifier configured to determine whether any of the ones in the DAG Database stored DAGs used the input time series or the first derived time series as an input. Gebäudeverwaltungssystem nach Anspruch 41, wobei der Zeitreihendienst beim Erzeugen einer abgeleiteten Zeitreihe zu Folgendem konfiguriert ist: (a) Bestimmen, ob die abgeleitete Zeitreihe als eine Eingabe für irgendeinen mehrerer gespeicherter Zeitreihenverarbeitungsarbeitsflüsse verwendet werden; (b) als Reaktion auf eine Bestimmung, dass die abgeleitete Zeitreihen als eine Eingabe für wenigstens einen der gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet werden, Durchführen einer oder mehrerer Verarbeitungsoperationen, die durch die Zeitreihenverarbeitungsarbeitsflüsse definiert sind, die die abgeleitete Zeitreihe als eine Eingabe verwenden, um eine andere abgeleitete Zeitreihe zu erzeugen; und (c) iteratives Wiederholen der Schritte (a) und (b), bis die in Schritt (b) erzeugte abgeleitete Zeitreihe nicht als eine Eingabe für irgendeinen der mehreren gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet wird.Building management system according to Claim 41 wherein the time series service is configured to generate a derived time series to: (a) determine whether the derived time series is used as an input to any of a number of stored time series processing workflows; (b) in response to a determination that the derived time series are used as one input for at least one of the stored time series processing workflows, performing one or more processing operations defined by the time series processing workflows that use the derived time series as one input to another generate derived time series; and (c) iteratively repeating steps (a) and (b) until the derived time series generated in step (b) is not used as an input to any of the plurality of stored time series processing workflows. Gebäudeverwaltungssystem zum Verwalten von Zeitreihendaten, die durch eine Gebäudeausrüstung bereitgestellt werden, wobei das Gebäudeverwaltungssystem Folgendes umfasst: ein oder mehrere computerlesbare Speicherungsmedien mit darauf gespeicherten Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Sammeln von Abtastwerten der Zeitreihendaten von der Gebäudeausrüstung und Erzeugen einer oder mehrerer Eingabezeitreihen, die mehrere der Abtastwerte umfassen; Identifizieren eines ersten Zeitreihenverarbeitungsarbeitsflusses, der die Eingabezeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der Eingabezeitreihe angewendet werden sollen; Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den ersten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine erste abgeleitete Zeitreihe zu erzeugen, die einen ersten Satz abgeleiteter Zeitreihenabtastwerte umfasst; Identifizieren eines zweiten Zeitreihenverarbeitungsarbeitsflusses, der die erste abgeleitete Zeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der ersten abgeleiteten Zeitreihe angewendet werden sollen; Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den zweiten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine zweite abgeleitete Zeitreihe zu erzeugen, die einen zweiten Satz abgeleiteter Zeitreihenabtastwerte umfasst; und Speichern der Eingabezeitreihen und der ersten und zweiten abgeleitete Zeitreihe in einer Zeitreihendatenbank.A building management system for managing time series data provided by building equipment, the building management system comprising: one or more computer-readable storage media with instructions stored thereon which, when executed by one or more processors, cause the one or more processors to: Collecting samples of the time series data from the building equipment and generating one or more input time series comprising multiple of the samples; Identify a first time series processing workflow that uses the input time series as an input and defines one or more processing operations to be applied to the samples of the input time series; Performing the one or more processing operations defined by the first time series processing workflow to generate a first derived time series comprising a first set of derived time series samples; Identify a second time series processing workflow that uses the first derived time series as an input and defines one or more processing operations to be applied to the samples of the first derived time series; Performing the one or more processing operations defined by the second time series processing workflow to produce a second derived time series comprising a second set of derived time series samples; and Store the input time series and the first and second derived time series in a time series database. Gebäudeverwaltungssystem nach Anspruch 48, wobei die Gebäudeausrüstung Sensoren, HVAC-Ausrüstung, Beleuchtungsausrüstung, Zugangssteuerausrüstung und/oder Sicherheitsausrüstung umfasst.Building management system according to Claim 48 wherein the building equipment includes sensors, HVAC equipment, lighting equipment, access control equipment and / or security equipment. Gebäudeverwaltungssystem nach Anspruch 48, wobei das Erzeugen der ersten abgeleiteten Zeitreihe Folgendes umfasst: Transformieren eines oder mehrerer Abtastwerte der Eingabezeitreihen in einen oder mehrere Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Eingabezeitreihen als eine Eingabe auf den ersten Zeitreihenverarbeitungsarbeitsfluss; und Zusammenstellen des ersten Satzes abgeleiteter Zeitreihenabtastwerte, um die erste abgeleitete Zeitreihe zu bilden.Building management system according to Claim 48 wherein generating the first derived time series comprises: transforming one or more samples of the input time series into one or more samples of the first set of derived time series samples by applying the one or more samples of the input time series as an input to the first time series processing workflow; and assembling the first set of derived time series samples to form the first derived time series. Gebäudeverwaltungssystem nach Anspruch 48, wobei das Erzeugen der zweiten abgeleiteten Zeitreihe Folgendes umfasst: Transformieren eines oder mehrerer Abtastwerte des ersten Satzes von abgeleiteten Zeitreihenabtastwerten in einen oder mehrere Abtastwerte des zweiten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte als eine Eingabe auf den zweiten Zeitreihenverarbeitungsarbeitsfluss; und Zusammenstellen des zweiten Satzes abgeleiteter Zeitreihenabtastwerte, um die zweite abgeleitete Zeitreihe zu bilden.Building management system according to Claim 48 wherein generating the second derived time series comprises: transforming one or more samples of the first set of derived time series samples into one or more samples of the second set of derived time series samples by applying the one or more samples of the first set of derived time series samples as an input to the second time series processing workflow; and Assembling the second set of derived time series samples to form the second derived time series. Gebäudeverwaltungssystem nach Anspruch 48, wobei die Anweisungen den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Identifizieren einer oder mehrerer Zeitreihen, die als Eingaben für den ersten Zeitreihenverarbeitungsarbeitsfluss zu verwenden sind; und Erzeugen eines angereicherten Zeitreihenverarbeitungsarbeitsflusses, der den ersten Zeitreihenverarbeitungsarbeitsfluss, die Eingabezeitreihe und die eine oder mehreren anderen Zeitreihen umfasst.Building management system according to Claim 48 wherein the instructions cause the one or more processors to: identify one or more time series to be used as inputs to the first time series processing workflow; and generating an enriched time series processing workflow that includes the first time series processing workflow, the input time series, and the one or more other time series. Gebäudeverwaltungssystem nach Anspruch 48, das ferner eine DAG-Datenbank (DAG - gerichteter azyklischer Graph) umfasst, die mehrere DAGs speichert, wobei jeder der DAGs einen Zeitreihenverarbeitungsarbeitsfluss definiert, wobei die Anweisungen den einen oder die mehreren Prozessoren zum Bestimmen veranlassen, ob irgendeiner der in der DAG-Datenbank gespeicherten DAGs die Eingabezeitreihen oder die erste abgeleitete Zeitreihe als eine Eingabe verwendet.Building management system according to Claim 48 further comprising a directed acyclic graph (DAG) database that stores a plurality of DAGs, each of the DAGs defining a time series processing workflow, the instructions causing the one or more processors to determine whether any of the ones in the DAG database stored DAGs uses the input time series or the first derived time series as an input. Gebäudeverwaltungssystem nach Anspruch 48, wobei die Anweisungen den einen oder die mehreren Prozessoren beim Erzeugen einer abgeleiteten Zeitreihe zu Folgendem veranlassen: (a) Bestimmen, ob die abgeleitete Zeitreihe als eine Eingabe für irgendeinen mehrerer gespeicherter Zeitreihenverarbeitungsarbeitsflüsse verwendet werden; (b) als Reaktion auf eine Bestimmung, dass die abgeleitete Zeitreihen als eine Eingabe für wenigstens einen der gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet werden, Durchführen einer oder mehrerer Verarbeitungsoperationen, die durch die Zeitreihenverarbeitungsarbeitsflüsse definiert sind, die die abgeleitete Zeitreihe als eine Eingabe verwenden, um eine andere abgeleitete Zeitreihe zu erzeugen; und (c) iteratives Wiederholen der Schritte (a) und (b), bis die in Schritt (b) erzeugte abgeleitete Zeitreihe nicht als eine Eingabe für irgendeinen der mehreren gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet wird.Building management system according to Claim 48 wherein the instructions cause the one or more processors to generate a derived time series: (a) determine whether the derived time series is used as an input to any of a number of stored time series processing workflows; (b) in response to a determination that the derived time series are used as one input for at least one of the stored time series processing workflows, performing one or more processing operations defined by the time series processing workflows that use the derived time series as one input to another generate derived time series; and (c) iteratively repeating steps (a) and (b) until the derived time series generated in step (b) is not used as an input to any of the plurality of stored time series processing workflows. Verfahren zum Verwalten von Zeitreihendaten, die durch eine Gebäudeausrüstung bereitgestellt werden, wobei das Verfahren Folgendes umfasst: Sammeln von Abtastwerten der Zeitreihendaten von der Gebäudeausrüstung und Erzeugen einer oder mehrerer Eingabezeitreihen, die mehrere der Abtastwerte umfassen; Identifizieren eines ersten Zeitreihenverarbeitungsarbeitsflusses, der die Eingabezeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der Eingabezeitreihe angewendet werden sollen; Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den ersten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine erste abgeleitete Zeitreihe zu erzeugen, die einen ersten Satz abgeleiteter Zeitreihenabtastwerte umfasst; Identifizieren eines zweiten Zeitreihenverarbeitungsarbeitsflusses, der die erste abgeleitete Zeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Abtastwerte der ersten abgeleiteten Zeitreihe angewendet werden sollen; Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den zweiten Zeitreihenverarbeitungsarbeitsfluss definiert sind, um eine zweite abgeleitete Zeitreihe zu erzeugen, die einen zweiten Satz abgeleiteter Zeitreihenabtastwerte umfasst; und Speichern der Eingabezeitreihen und der ersten und zweiten abgeleitete Zeitreihe in einer Zeitreihendatenbank.A method of managing time series data provided by building equipment, the method comprising: Collecting samples of the time series data from the building equipment and generating one or more input time series comprising multiple of the samples; Identify a first time series processing workflow that uses the input time series as an input and defines one or more processing operations to be applied to the samples of the input time series; Performing the one or more processing operations defined by the first time series processing workflow to generate a first derived time series comprising a first set of derived time series samples; Identify a second time series processing workflow that uses the first derived time series as an input and defines one or more processing operations to be applied to the samples of the first derived time series; Performing the one or more processing operations defined by the second time series processing workflow to produce a second derived time series comprising a second set of derived time series samples; and Store the input time series and the first and second derived time series in a time series database. Verfahren nach Anspruch 55, wobei die Gebäudeausrüstung Sensoren, HVAC-Ausrüstung, Beleuchtungsausrüstung, Zugangssteuerausrüstung und/oder Sicherheitsausrüstung umfasst.Procedure according to Claim 55 wherein the building equipment includes sensors, HVAC equipment, lighting equipment, access control equipment and / or security equipment. Verfahren nach Anspruch 55, wobei das Erzeugen der ersten abgeleiteten Zeitreihe Folgendes umfasst: Transformieren eines oder mehrerer Abtastwerte der Eingabezeitreihen in einen oder mehrere Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Eingabezeitreihen als eine Eingabe auf den ersten Zeitreihenverarbeitungsarbeitsfluss; und Zusammenstellen des ersten Satzes abgeleiteter Zeitreihenabtastwerte, um die erste abgeleitete Zeitreihe zu bilden.Procedure according to Claim 55 wherein generating the first derived time series comprises: transforming one or more samples of the input time series into one or more samples of the first set of derived time series samples by applying the one or more samples of the input time series as an input to the first time series processing workflow; and assembling the first set of derived time series samples to form the first derived time series. Verfahren nach Anspruch 55, wobei das Erzeugen der zweiten abgeleiteten Zeitreihe Folgendes umfasst: Transformieren eines oder mehrerer Abtastwerte des ersten Satzes von abgeleiteten Zeitreihenabtastwerten in einen oder mehrere Abtastwerte des zweiten Satzes abgeleiteter Zeitreihenabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte des ersten Satzes abgeleiteter Zeitreihenabtastwerte als eine Eingabe auf den zweiten Zeitreihenverarbeitungsarbeitsfluss; und Zusammenstellen des zweiten Satzes abgeleiteter Zeitreihenabtastwerte, um die zweite abgeleitete Zeitreihe zu bilden.Procedure according to Claim 55 wherein generating the second derived time series comprises: transforming one or more samples of the first set of derived time series samples into one or more samples of the second set of derived time series samples by applying the one or more samples of the first set of derived time series samples as an input to the second time series processing workflow; and assembling the second set of derived time series samples to form the second derived time series. Verfahren nach Anspruch 55, das ferner Folgendes umfasst: Identifizieren einer oder mehrerer Zeitreihen, die als Eingaben für den ersten Zeitreihenverarbeitungsarbeitsfluss zu verwenden sind; und Erzeugen eines angereicherten Zeitreihenverarbeitungsarbeitsflusses, der den ersten Zeitreihenverarbeitungsarbeitsfluss, die Eingabezeitreihe und die eine oder mehreren anderen Zeitreihen umfasst.Procedure according to Claim 55 further comprising: identifying one or more time series to use as inputs to the first time series processing workflow; and generating an enriched time series processing workflow that includes the first time series processing workflow, the input time series, and the one or more other time series. Verfahren nach Anspruch 55, das ferner beim Erzeugen einer abgeleiteten Zeitreihe Folgendes umfasst: (a) Bestimmen, ob die abgeleitete Zeitreihe als eine Eingabe für irgendeinen mehrerer gespeicherter Zeitreihenverarbeitungsarbeitsflüsse verwendet werden; (b) als Reaktion auf eine Bestimmung, dass die abgeleitete Zeitreihen als eine Eingabe für wenigstens einen der gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet werden, Durchführen einer oder mehrerer Verarbeitungsoperationen, die durch die Zeitreihenverarbeitungsarbeitsflüsse definiert sind, die die abgeleitete Zeitreihe als eine Eingabe verwenden, um eine andere abgeleitete Zeitreihe zu erzeugen; und (c) iteratives Wiederholen der Schritte (a) und (b), bis die in Schritt (b) erzeugte abgeleitete Zeitreihe nicht als eine Eingabe für irgendeinen der mehreren gespeicherten Zeitreihenverarbeitungsarbeitsflüsse verwendet wird.Procedure according to Claim 55 further comprising, when generating a derived time series: (a) determining whether the derived time series is used as an input to any of a number of stored time series processing workflows; (b) in response to a determination that the derived time series are used as one input for at least one of the stored time series processing workflows, performing one or more processing operations defined by the time series processing workflows that use the derived time series as one input to another generate derived time series; and (c) iteratively repeating steps (a) and (b) until the derived time series generated in step (b) is not used as an input to any of the plurality of stored time series processing workflows. Gebäudeverwaltungsplattform zum Überwachen und Steuern von Ausrüstung eines Gebäudeverwaltungssystems, wobei die Gebäudeverwaltungsplattform Folgendes umfasst: einen Datenkollektor, der zum Sammeln von Rückkopplungsabtastwerten, die durch einen oder mehrere Sensoren des Gebäudeverwaltungssystems bereitgestellt werden, und Erzeugen einer oder mehrerer Rückkopplungszeitreihen, die mehrere der Rückkopplungsabtastwerte umfassen, konfiguriert ist; einen Zeitreihendienst, der zu Folgendem konfiguriert ist: Identifizieren eines ersten Rückkopplungssteuerarbeitsflusses, der die Rückkopplungszeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Rückkopplungsabtastwerte der Rückkopplungszeitreihe angewendet werden sollen; Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, um eine Steuersignalzeitreihe zu erzeugen, die einen Satz Steuersignalabtastwerten umfassen; und Liefern eines Steuersignals, das die Steuersignalabtastwerte und/oder die Steuersignalzeitreihen umfasst, als eine Ausgabe an eine steuerbare Gebäudeausrüstung des Gebäudeverwaltungssystems, die unter Verwendung des Steuersignals als eine Eingabe arbeitet.A building management platform for monitoring and controlling equipment of a building management system, the building management platform comprising: a data collector configured to collect feedback samples provided by one or more sensors of the building management system and generate one or more feedback time series comprising multiple of the feedback samples; a time series service configured to: Identify a first feedback control workflow that uses the feedback time series as an input and defines one or more processing operations to be applied to the feedback samples of the feedback time series; Performing the one or more processing operations defined by the feedback control workflow to generate a control signal time series comprising a set of control signal samples; and Providing a control signal, including the control signal samples and / or the control signal time series, as an output to controllable building equipment of the building management system that operates using the control signal as an input. Gebäudeverwaltungsplattform nach Anspruch 61, wobei das Erzeugen der Steuersignalzeitreihe Folgendes umfasst: Transformieren eines oder mehrerer Abtastwerte der Rückkopplungszeitreihe in einen oder mehrere Abtastwerte der Steuersignalabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Rückkopplungszeitreihe als eine Eingabe auf den ersten Rückkopplungssteuerarbeitsfluss; und Zusammenstellen der Steuerabtastwerte, um die Steuersignalzeitreihe zu bilden.Building management platform after Claim 61 wherein generating the control signal time series comprises: transforming one or more samples of the feedback time series into one or more samples of the control signal samples by applying the one or more samples of the feedback time series as an input to the first feedback control workflow; and compiling the control samples to form the control signal time series. Gebäudeverwaltungsplattform nach Anspruch 61, wobei der Zeitreihendienst zu Folgendem konfiguriert ist: Identifizieren einer oder mehrerer Zeitreihen, die als Eingaben für den ersten Rückkopplungssteuerarbeitsfluss erforderlich sind, wobei die eine oder mehreren anderen Zeitreihen mehrere Sollwertzeitreihen umfassen, die mehrere Sollwertabtastwerte umfassen, wobei jeder der Sollwertabtastwerte einen Sollwert definiert, der einem der Rückkopplungsabtastwerte entspricht; und Erzeugen eines angereicherten Rückkopplungssteuerarbeitsflusses, der den Rückkopplungssteuerarbeitsflusses, die Rückkopplungszeitreihe und die eine oder mehreren anderen Zeitreihen umfasst.Building management platform after Claim 61 wherein the time series service is configured to: identify one or more time series required as inputs to the first feedback control workflow, the one or more other time series comprising multiple setpoint time series comprising multiple setpoint samples, each of the setpoint samples defining a setpoint that defines corresponds to one of the feedback samples; and generating an enriched feedback control workflow that includes the feedback control workflow, the feedback time series, and the one or more other time series. Gebäudeverwaltungsplattform nach Anspruch 61, das ferner eine DAG-Datenbank (DAG - gerichteter azyklischer Graph) umfasst, die mehrere Rückkopplung-DAGs speichert, wobei jeder der DAGs einen Rückkopplungssteuerarbeitsfluss definiert, wobei der Zeitreihendienst einen DAG-Identifikator umfasst, die zum Bestimmen konfiguriert ist, ob irgendeiner der in der DAG-Datenbank gespeicherten Rückkopplungssteuer-DAGs die Rückkopplungszeitreihe als eine Eingabe verwendet.Building management platform after Claim 61 further comprising a directed acyclic graph (DAG) database that stores a plurality of feedback DAGs, each of the DAGs defining a feedback control workflow, the time series service including a DAG identifier configured to determine whether any of the data in FIG feedback control DAGs stored in the DAG database uses the feedback time series as an input. Gebäudeverwaltungsplattform nach Anspruch 61, wobei der Rückkopplungssteuerarbeitsfluss einen Zustandsbasierte-Steuerung-Arbeitsfluss, einen ESC-Arbeitsfluss (ESC: Extremum Seeking Control - nach Extremen suchende Steuerung), einen Proportional-Integral(PI)-Steuerung-Arbeitsfluss, einen Proportional-Integral-Ableitend(PID)-Steuerung-Arbeitsfluss und/oder ein MPC-Arbeitsfluss (MCP: Model Predictive Control - Modellvorhersagesteuerung) umfasst, die den Zeitreihendienst zum Transformieren der Rückkopplungszeitreihe unter Verwendung einer Rückkopplungssteuertechnik in die Steuersignalzeitreihen veranlassen. Building management platform after Claim 61 where the feedback control workflow is a state based control workflow, an ESC (Extremum Seeking Control) workflow, a proportional integral (PI) control workflow, a proportional integral derivative (PID) - Control workflow and / or an MPC (Model Predictive Control) workflow that cause the time series service to transform the feedback time series into the control signal time series using a feedback control technique. Gebäudeverwaltungsplattform nach Anspruch 61, wobei der Rückkopplungssteuerarbeitsfluss einen Proportional-Integral-Ableitend(PID)- Steuerarbeitsfluss umfasst, der den Zeitreihendienst zu Folgendem veranlasst: Erzeugen einer Fehlerzeitreihe, die mehrere Fehlerabtastwerte umfasst, wobei jeder der Fehlerabtastwerte einen Unterschied zwischen einem oder den Rückkopplungsabtastwerten und einem entsprechenden Sollwert angibt; und Erzeugen der Steuersignalzeitreihe durch Anwenden eines Satzes von PID-Steueroperationen auf die Fehlerzeitreihe.Building management platform after Claim 61 , wherein the feedback control workflow includes a proportional integral derivative (PID) control workflow that causes time series service to: generate an error time series that includes multiple error samples, each of the error samples indicating a difference between one or more of the feedback samples and a corresponding setpoint; and generating the control signal time series by applying a set of PID control operations to the error time series. Gebäudeverwaltungsplattform nach Anspruch 66, wobei das Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihe Folgendes umfasst: Erzeugen einer integrierten Fehlerzeitreihe basierend auf mehreren der Fehlerabtastwerte; Erzeugen einer Ableitungsfehlerzeitreihe basierend auf einer Änderung eines Wertes zwischen aufeinanderfolgenden Abtastwerten der Fehlerzeitreihe; Berechnen einer Proportionalverstärkungskomponente durch Multiplizieren der Fehlerzeitreihe mit einem Proportionalverstärkungsparameter; Berechnen einer Integralverstärkungskomponente durch Multiplizieren der integrierten Fehlerzeitreihe mit einem Integralverstärkungsparameter; Berechnen einer Ableitungsverstärkungskomponente durch Multiplizieren der Ableitungsfehlerzeitreihe mit einem Ableitungsverstärkungsparameter; und Kombinieren der Proportionalverstärkungskomponente, der Integralverstärkungskomponente und der Ableitungsverstärkungskomponente, um die Steuersignalzeitreihen zu erzeugen.Building management platform after Claim 66 wherein applying the set of PID control operations to the error time series comprises: generating an integrated error time series based on a plurality of the error samples; Generating a derivative error time series based on a change in a value between successive samples of the error time series; Computing a proportional gain component by multiplying the error time series by a proportional gain parameter; Computing an integral gain component by multiplying the integrated error time series by an integral gain parameter; Computing a derivative gain component by multiplying the derivative error time series by a derivative gain parameter; and combining the proportional gain component, the integral gain component and the derivative gain component to produce the control signal time series. Gebäudeverwaltungsplattform zum Überwachen und Steuern von Ausrüstung eines Gebäudeverwaltungssystems, wobei die Gebäudeverwaltungsplattform Folgendes umfasst: ein oder mehrere computerlesbare Speicherungsmedien mit darauf gespeicherten Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Sammeln von Rückkopplungsabtastwerten, die von einem oder mehreren Sensoren des Gebäudeverwaltungssystems bereitgestellt werden, und Erzeugen einer oder mehrerer Rückkopplungszeitreihen, die mehrere der Rückkopplungsabtastwerte umfassen; Identifizieren eines ersten Rückkopplungssteuerarbeitsflusses, der die Rückkopplungszeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Rückkopplungsabtastwerte der Rückkopplungszeitreihe angewendet werden sollen; Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, um eine Steuersignalzeitreihe zu erzeugen, die einen Satz Steuersignalabtastwerten umfassen; und Liefern eines Steuersignals, das die Steuersignalabtastwerte und/oder die Steuersignalzeitreihen umfasst, als eine Ausgabe an eine steuerbare Gebäudeausrüstung des Gebäudeverwaltungssystems, die unter Verwendung des Steuersignals als eine Eingabe arbeitet.A building management platform for monitoring and controlling equipment of a building management system, the building management platform comprising: one or more computer-readable storage media with instructions stored thereon which, when executed by one or more processors, cause the one or more processors to: Collecting feedback samples provided by one or more sensors of the building management system and generating one or more feedback time series comprising several of the feedback samples; Identify a first feedback control workflow that uses the feedback time series as an input and defines one or more processing operations to be applied to the feedback samples of the feedback time series; Performing the one or more processing operations defined by the feedback control workflow to generate a control signal time series comprising a set of control signal samples; and Providing a control signal, including the control signal samples and / or the control signal time series, as an output to controllable building equipment of the building management system that operates using the control signal as an input. Gebäudeverwaltungsplattform nach Anspruch 68, wobei das Erzeugen der Steuersignalzeitreihe Folgendes umfasst: Transformieren eines oder mehrerer Abtastwerte der Rückkopplungszeitreihe in einen oder mehrere Abtastwerte der Steuersignalabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Rückkopplungszeitreihe als eine Eingabe auf den ersten Rückkopplungssteuerarbeitsfluss; und Zusammenstellen der Steuerabtastwerte, um die Steuersignalzeitreihe zu bilden.Building management platform after Claim 68 wherein generating the control signal time series comprises: transforming one or more samples of the feedback time series into one or more samples of the control signal samples by applying the one or more samples of the feedback time series as an input to the first feedback control workflow; and compiling the control samples to form the control signal time series. Gebäudeverwaltungsplattform nach Anspruch 68, wobei die Anweisungen den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Identifizieren einer oder mehrerer Zeitreihen, die als Eingaben für den ersten Rückkopplungssteuerarbeitsfluss erforderlich sind, wobei die eine oder mehreren anderen Zeitreihen mehrere Sollwertzeitreihen umfassen, die mehrere Sollwertabtastwerte umfassen, wobei jeder der Sollwertabtastwerte einen Sollwert definiert, der einem der Rückkopplungsabtastwerte entspricht; und Erzeugen eines angereicherten Rückkopplungssteuerarbeitsflusses, der den Rückkopplungssteuerarbeitsflusses, die Rückkopplungszeitreihe und die eine oder mehreren anderen Zeitreihen umfasst.Building management platform after Claim 68 wherein the instructions cause the one or more processors to: identify one or more time series required as inputs to the first feedback control workflow, the one or more other time series comprising multiple setpoint time series that comprise a plurality of setpoint samples, each of the setpoint samples defining a setpoint that corresponds to one of the feedback samples; and generating an enriched feedback control workflow that includes the feedback control workflow, the feedback time series, and the one or more other time series. Gebäudeverwaltungsplattform nach Anspruch 68, das ferner eine DAG-Datenbank (DAG - gerichteter azyklischer Graph) umfasst, die mehrere Rückkopplung-DAGs speichert, wobei jeder der DAGs einen Rückkopplungssteuerarbeitsfluss definiert; wobei die Anweisungen den einen oder die mehreren Prozessoren zum Bestimmen veranlassen, ob irgendeiner der in der DAG-Datenbank gespeicherten Rückkopplungssteuer-DAGs die Rückkopplungszeitreihe als eine Eingabe verwendet.Building management platform after Claim 68 further comprising a directed acyclic graph (DAG) database that stores a plurality of feedback DAGs, each of the DAGs defining a feedback control workflow; the instructions causing the one or more processors to determine whether any of the feedback control DAGs stored in the DAG database use the feedback time series as an input. Gebäudeverwaltungsplattform nach Anspruch 68, wobei der Rückkopplungssteuerarbeitsfluss einen Zustandsbasierte-Steuerung-Arbeitsfluss, einen ESC-Arbeitsfluss (ESC - nach Extremen suchende Steuerung), einen Proportional-Integral(PI)-Steuerung-Arbeitsfluss, einen Proportional-Integral-Ableitend(PID)-Steuerung-Arbeitsfluss und/oder ein MPC-Arbeitsfluss (MCP: - Modellvorhersagesteuerung) umfasst, die den einen oder die mehreren Prozessoren zum Transformieren der Rückkopplungszeitreihe unter Verwendung einer Rückkopplungssteuertechnik in die Steuersignalzeitreihen veranlassen.Building management platform after Claim 68 wherein the feedback control workflow is a state based control workflow, an ESC workflow (ESC), a proportional integral (PI) control workflow, a proportional integral derivative (PID) control workflow, and / or includes an MPC (Model Prediction Control) workflow that causes the one or more processors to transform the feedback time series into the control signal time series using a feedback control technique. Gebäudeverwaltungsplattform nach Anspruch 68, wobei der Rückkopplungssteuerarbeitsfluss einen Proportional-Integral-Ableitend(PID)- Steuerarbeitsfluss umfasst, der den einen oder die mehreren Prozessoren zu Folgendem veranlasst: Erzeugen einer Fehlerzeitreihe, die mehrere Fehlerabtastwerte umfasst, wobei jeder der Fehlerabtastwerte einen Unterschied zwischen einem oder den Rückkopplungsabtastwerten und einem entsprechenden Sollwert angibt; und Erzeugen der Steuersignalzeitreihe durch Anwenden eines Satzes von PID-Steueroperationen auf die Fehlerzeitreihe.Building management platform after Claim 68 wherein the feedback control workflow includes a proportional-integral-derivative (PID) control workflow that causes the one or more processors to: generate an error time series that includes multiple error samples, each of the error samples different from one or more of the feedback samples indicates the corresponding setpoint; and generating the control signal time series by applying a set of PID control operations to the error time series. Gebäudeverwaltungsplattform nach Anspruch 73, wobei das Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihe Folgendes umfasst: Erzeugen einer integrierten Fehlerzeitreihe basierend auf mehreren der Fehlerabtastwerte; und Erzeugen einer Ableitungsfehlerzeitreihe basierend auf einer Änderung eines Wertes zwischen aufeinanderfolgenden Abtastwerten der Fehlerzeitreihe; Berechnen einer Proportionalverstärkungskomponente durch Multiplizieren der Fehlerzeitreihe mit einem Proportionalverstärkungsparameter; Berechnen einer Integralverstärkungskomponente durch Multiplizieren der integrierten Fehlerzeitreihe mit einem Integralverstärkungsparameter; Berechnen einer Ableitungsverstärkungskomponente durch Multiplizieren der Ableitungsfehlerzeitreihe mit einem Ableitungsverstärkungsparameter; und Kombinieren der Proportionalverstärkungskomponente, der Integralverstärkungskomponente und der Ableitungsverstärkungskomponente, um die Steuersignalzeitreihen zu erzeugen.Building management platform after Claim 73 wherein applying the set of PID control operations to the error time series comprises: generating an integrated error time series based on a plurality of the error samples; and generating a derivative error time series based on a change in a value between successive samples of the error time series; Computing a proportional gain component by multiplying the error time series by a proportional gain parameter; Computing an integral gain component by multiplying the integrated error time series by an integral gain parameter; Computing a derivative gain component by multiplying the derivative error time series by a derivative gain parameter; and combining the proportional gain component, the integral gain component and the derivative gain component to produce the control signal time series. Verfahren zum Überwachen und Steuern von Ausrüstung eines Gebäudeverwaltungssystems, wobei das Verfahren Folgendes umfasst: Sammeln von Rückkopplungsabtastwerten, die von einem oder mehreren Sensoren des Gebäudeverwaltungssystems bereitgestellt werden, und Erzeugen einer oder mehrerer Rückkopplungszeitreihen, die mehrere der Rückkopplungsabtastwerte umfassen; Identifizieren eines ersten Rückkopplungssteuerarbeitsflusses, der die Rückkopplungszeitreihe als eine Eingabe verwendet und eine oder mehrere Verarbeitungsoperationen definiert, die auf die Rückkopplungsabtastwerte der Rückkopplungszeitreihe angewendet werden sollen; Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, um eine Steuersignalzeitreihe zu erzeugen, die einen Satz Steuersignalabtastwerten umfassen; und Liefern eines Steuersignals, das die Steuersignalabtastwerte und/oder die Steuersignalzeitreihen umfasst, als eine Ausgabe an eine steuerbare Gebäudeausrüstung des Gebäudeverwaltungssystems, die unter Verwendung des Steuersignals als eine Eingabe arbeitet.A method of monitoring and controlling equipment of a building management system, the method comprising: Collecting feedback samples provided by one or more sensors of the building management system and generating one or more feedback time series comprising several of the feedback samples; Identify a first feedback control workflow that uses the feedback time series as an input and defines one or more processing operations to be applied to the feedback samples of the feedback time series; Performing the one or more processing operations defined by the feedback control workflow to generate a control signal time series comprising a set of control signal samples; and Providing a control signal, including the control signal samples and / or the control signal time series, as an output to controllable building equipment of the building management system that operates using the control signal as an input. Verfahren nach Anspruch 75, wobei das Erzeugen der Steuersignalzeitreihe Folgendes umfasst: Transformieren eines oder mehrerer Abtastwerte der Rückkopplungszeitreihe in einen oder mehrere Abtastwerte der Steuersignalabtastwerte durch Anwenden des einen oder der mehreren Abtastwerte der Rückkopplungszeitreihe als eine Eingabe auf den ersten Rückkopplungssteuerarbeitsfluss; und Zusammenstellen der Steuerabtastwerte, um die Steuersignalzeitreihe zu bilden.Procedure according to Claim 75 wherein generating the control signal time series comprises: transforming one or more samples of the feedback time series into one or more samples of the control signal samples by applying the one or more samples of the feedback time series as an input to the first feedback control workflow; and Gathering the control samples to form the control signal time series. Verfahren nach Anspruch 75, das ferner Folgendes umfasst: Identifizieren einer oder mehrerer Zeitreihen, die als Eingaben für den ersten Rückkopplungssteuerarbeitsfluss erforderlich sind, wobei die eine oder mehreren anderen Zeitreihen mehrere Sollwertzeitreihen umfassen, die mehrere Sollwertabtastwerte umfassen, wobei jeder der Sollwertabtastwerte einen Sollwert definiert, der einem der Rückkopplungsabtastwerte entspricht; und Erzeugen eines angereicherten Rückkopplungssteuerarbeitsflusses, der den Rückkopplungssteuerarbeitsflusses, die Rückkopplungszeitreihe und die eine oder mehreren anderen Zeitreihen umfasst.Procedure according to Claim 75 further comprising: identifying one or more time series required as inputs to the first feedback control workflow, the one or more other time series comprising multiple setpoint time series comprising multiple setpoint samples, each of the setpoint samples defining a setpoint that corresponds to one of the feedback samples corresponds; and generating an enriched feedback control workflow that includes the feedback control workflow, the feedback time series, and the one or more other time series. Verfahren nach Anspruch 75, wobei der Rückkopplungssteuerarbeitsfluss einen Zustandsbasierte-Steuerung-Arbeitsfluss, einen ESC-Arbeitsfluss (ESC - nach Extremen suchende Steuerung), einen Proportional-Integral(PI)-Steuerung-Arbeitsfluss, einen Proportional-Integral-Ableitend(PID)-Steuerung-Arbeitsfluss und/oder ein MPC-Arbeitsfluss (MCP - Modellvorhersagesteuerung) umfasst, die veranlassen, dass die Rückkopplungszeitreihe unter Verwendung einer Rückkopplungssteuertechnik in die Steuersignalzeitreihen transformiert wird.Procedure according to Claim 75 wherein the feedback control workflow is a state based control workflow, an ESC workflow (ESC), a proportional integral (PI) control workflow, a proportional integral derivative (PID) control workflow, and / or includes an MPC workflow (MCP) that cause the feedback time series to be transformed into the control signal time series using a feedback control technique. Verfahren nach Anspruch 75, wobei der Rückkopplungssteuerarbeitsfluss einen Proportional-Integral-Ableitend(PID)-Steuerarbeitsfluss umfasst und das Durchführen der einen oder der mehreren Verarbeitungsoperationen, die durch den Rückkopplungssteuerarbeitsfluss definiert sind, Folgendes umfasst: Erzeugen einer Fehlerzeitreihe, die mehrere Fehlerabtastwerte umfasst, wobei jeder der Fehlerabtastwerte einen Unterschied zwischen einem oder den Rückkopplungsabtastwerten und einem entsprechenden Sollwert angibt; und Erzeugen der Steuersignalzeitreihe durch Anwenden eines Satzes von PID-Steueroperationen auf die Fehlerzeitreihe.Procedure according to Claim 75 , wherein the feedback control workflow includes a proportional integral derivative (PID) control workflow, and performing the one or more processing operations defined by the feedback control workflow includes: generating an error time series that includes multiple error samples, each of the error samples one Indicates difference between one or the feedback samples and a corresponding setpoint; and generating the control signal time series by applying a set of PID control operations to the error time series. Verfahren nach Anspruch 79, wobei das Anwenden des Satzes von PID-Steueroperationen auf die Fehlerzeitreihe Folgendes umfasst: Erzeugen einer integrierten Fehlerzeitreihe basierend auf mehreren der Fehlerabtastwerte; und Erzeugen einer Ableitungsfehlerzeitreihe basierend auf einer Änderung eines Wertes zwischen aufeinanderfolgenden Abtastwerten der Fehlerzeitreihe; Berechnen einer Proportionalverstärkungskomponente durch Multiplizieren der Fehlerzeitreihe mit einem Proportionalverstärkungsparameter; Berechnen einer Integralverstärkungskomponente durch Multiplizieren der integrierten Fehlerzeitreihe mit einem Integralverstärkungsparameter; Berechnen einer Ableitungsverstärkungskomponente durch Multiplizieren der Ableitungsfehlerzeitreihe mit einem Ableitungsverstärkungsparameter; und Kombinieren der Proportionalverstärkungskomponente, der Integralverstärkungskomponente und der Ableitungsverstärkungskomponente, um die Steuersignalzeitreihen zu erzeugen.Procedure according to Claim 79 wherein applying the set of PID control operations to the error time series comprises: generating an integrated error time series based on a plurality of the error samples; and generating a derivative error time series based on a change in a value between successive samples of the error time series; Computing a proportional gain component by multiplying the error time series by a proportional gain parameter; Computing an integral gain component by multiplying the integrated error time series by an integral gain parameter; Computing a derivative gain component by multiplying the derivative error time series by a derivative gain parameter; and combining the proportional gain component, the integral gain component and the derivative gain component to produce the control signal time series. Gebäudeverwaltungssystem, das Folgendes umfasst: eine Entitätsdatenbank, die mehrere miteinander verbundene intelligente Entitäten speichert, wobei die intelligenten Entitäten Objektentitäten, die mehrere Personen oder physische Vorrichtungen repräsentieren, und Datenentitäten umfassen, die Daten repräsentieren, die den Personen oder physischen Vorrichtungen zugeordnet sind, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben, wobei jede der Objektentitäten mehrere gespeicherte Identitätsattribute umfasst; und einen Identitätsverwaltungsdienst, der zu Folgendem konfiguriert ist: Empfangen eines ersten Identitätsattributs von einer ersten Vorrichtung innerhalb eines Gebäudes; Empfangen eines zweiten Identitätsattributs von einer zweiten Vorrichtung innerhalb des Gebäudes; Vergleichen des ersten und des zweiten Identitätsattributs mit den gespeicherten Identitätsattributen einer Objektentität aus den mehreren miteinander verbundener intelligenter Entitäten; und Gewähren des Zugangs zu einen Gebäudebereich, einer Vorrichtung einer Gebäudeausrüstung und/oder einem Computersystem als Reaktion darauf, dass das erste und das zweite Identitätsattribut mit den gespeicherten Identitätsattributen der Objektentität übereinstimmen.Building management system that includes: an entity database that stores multiple interconnected smart entities, the smart entities including object entities representing multiple people or physical devices and data entities representing data associated with the people or physical devices, the smart entities through relational objects with each other connected that indicate relationships between the object entities and the data entities, each of the object entities comprising a plurality of stored identity attributes; and an identity management service configured to: Receiving a first identity attribute from a first device within a building; Receiving a second identity attribute from a second device within the building; Comparing the first and second identity attributes with the stored identity attributes of an object entity from the plurality of interconnected intelligent entities; and Granting access to a building area, building equipment device and / or a computer system in response to the first and second identity attributes matching the stored identity attributes of the object entity. Gebäudeverwaltungssystem nach Anspruch 81, wobei: die erste Vorrichtung ein Zugangskartenlesegerät ist und das erste Identitätsattribut ein Karten-ID-Attribut ist, das vom Zugangskartenlesegerät aufgezeichnet wird; und die zweite Vorrichtung eine Sicherheitskamera ist und das zweite Identitätsattribut ein Bild einer Person ist, das durch die Sicherheitskamera erfasst wird.Building management system according to Claim 81 , wherein: the first device is an access card reader and the first identity attribute is a card ID attribute recorded by the access card reader; and the second device is a security camera and the second identity attribute is an image of a person that is captured by the security camera. Gebäudeverwaltungssystem nach Anspruch 81, wobei: die erste Vorrichtung ein Zugangskartenlesegerät ist und das erste Identitätsattribut ein Karten-ID-Attribut ist, das vom Zugangskartenlesegerät aufgezeichnet wird; und wobei die zweite Vorrichtung eine mobile Vorrichtung ist, die von einer Person getragen wird, und das zweite Identitätsattribut ein der mobilen Vorrichtung zugeordnetes Mobilvorrichtung-ID-Attribut ist.Building management system according to Claim 81 , wherein: the first device is an access card reader and the first identity attribute is a card ID attribute recorded by the access card reader; and wherein the second device is a mobile device worn by a person and the second identity attribute is a mobile device ID attribute associated with the mobile device. Gebäudeverwaltungssystem nach Anspruch 81, wobei: wobei die erste Vorrichtung eine Benutzeroberflächenvorrichtung ist und das erste Identitätsattribut eine Benutzerkennung ist, die von einem Benutzer über die Benutzeroberflächenvorrichtung empfangen wird; und die zweite Vorrichtung eine Sicherheitskamera ist und das zweite Identitätsattribut ein Bild einer Person ist, das durch die Sicherheitskamera erfasst wird.Building management system according to Claim 81 , wherein: wherein the first device is a user interface device and the first identity attribute is a user ID received from a user via the user interface device; and the second device is a security camera and the second identity attribute is an image of a person that is captured by the security camera. Gebäudeverwaltungssystem nach Anspruch 81, wobei: wobei die erste Vorrichtung eine Benutzeroberflächenvorrichtung ist und das erste Identitätsattribut eine Benutzerkennung ist, die von einem Benutzer über die Benutzeroberflächenvorrichtung empfangen wird; und wobei die zweite Vorrichtung eine mobile Vorrichtung ist, die von einer Person getragen wird, und das zweite Identitätsattribut ein der mobilen Vorrichtung zugeordnetes Mobilvorrichtung-ID-Attribut ist.Building management system according to Claim 81 , wherein: wherein the first device is a user interface device and the first identity attribute is a user ID received from a user via the user interface device; and wherein the second device is a mobile device worn by a person and the second identity attribute is a mobile device ID attribute associated with the mobile device. Gebäudeverwaltungssystem nach Anspruch 81, wobei: die erste Vorrichtung ein mobile Vorrichtung, eine Informationstechnologie(IT)-Vorrichtung, ein Internet-der-Dinge(IoT)-Sensors, eine Gebäudeausrüstungsvorrichtung und/oder eine Sicherheitsvorrichtung ist; und die zweite Vorrichtung eine andere der mobilen Vorrichtung, der IT-Vorrichtung, des IoT-Vorrichtung, der Gebäudeausrüstungsvorrichtung oder der Sicherheitsvorrichtung ist.Building management system according to Claim 81 wherein: the first device is a mobile device, an information technology (IT) device, an Internet of Things (IoT) sensor, a building equipment device, and / or a security device; and the second device is another of the mobile device, the IT device, the IoT device, the building equipment device, or the security device. Gebäudeverwaltungssystem nach Anspruch 81, wobei der Identitätsverwaltungsdienst zu Folgendem konfiguriert ist: Bestimmen eines der ersten Vorrichtung zugeordneten Standortes als Reaktion darauf, dass die erste Vorrichtung das das erste Identitätsattribut bereitstellt; Identifizieren eines Gebäudebereichs, in dem sich die erste Vorrichtung befindet; und Auswählen der zweiten Vorrichtung aus einem Satz von Vorrichtungen, die sich in demselben Gebäudebereich wie die erste Vorrichtung befinden.Building management system according to Claim 81 , wherein the identity management service is configured to: determine a location associated with the first device in response to the first device providing the first identity attribute; Identifying a building area in which the first device is located; and selecting the second device from a set of devices located in the same building area as the first device. Gebäudeverwaltungssystem nach Anspruch 81, wobei der Identitätsverwaltungsdienst zum Verweigern des Zugangs zu dem Gebäudebereich, der Vorrichtung einer Gebäudeausrüstung und/oder dem Computersystem als Reaktion darauf, dass das erste und/oder das zweite Identitätsattribut nicht mit den gespeicherten Identitätsattributen der Objektentität übereinstimmt, konfiguriert ist.Building management system according to Claim 81 wherein the identity management service is configured to deny access to the building area, building equipment device, and / or the computer system in response to the first and / or second identity attribute not matching the stored identity attributes of the object entity. Verfahren zum Steuern des Zugangs zu einem Gebäudebereich, einer Vorrichtung einer Gebäudeausrüstung oder einem Computersystem in einem Gebäudeverwaltungssystem, wobei das Verfahren Folgendes umfasst: Speichern mehrerer miteinander verbundener intelligenter Entitäten in einer Entitätsdatenbank, wobei die intelligenten Entitäten Objektentitäten, die mehrere Personen oder physische Vorrichtungen repräsentieren, und Datenentitäten umfassen, die Daten repräsentieren, die den Personen oder physischen Vorrichtungen zugeordnet sind, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben, wobei jede der Objektentitäten mehrere gespeicherte Identitätsattribute umfasst; Empfangen eines ersten Identitätsattributs von einer ersten Vorrichtung innerhalb eines Gebäudes; Empfangen eines zweiten Identitätsattributs von einer zweiten Vorrichtung innerhalb des Gebäudes; Vergleichen des ersten und des zweiten Identitätsattributs mit den gespeicherten Identitätsattributen einer Objektentität aus den mehreren miteinander verbundener intelligenter Entitäten; und Gewähren des Zugangs zu einen Gebäudebereich, einer Vorrichtung einer Gebäudeausrüstung und/oder einem Computersystem als Reaktion darauf, dass das erste und das zweite Identitätsattribut mit den gespeicherten Identitätsattributen der Objektentität übereinstimmen.A method of controlling access to a building area, a building equipment device, or a computer system in a building management system, the method comprising: Storing a plurality of interconnected intelligent entities in an entity database, the intelligent entities comprising object entities representing multiple people or physical devices and data entities representing data associated with the people or physical devices, the intelligent entities connected by relational objects are that indicate relationships between the object entities and the data entities, each of the object entities comprising a plurality of stored identity attributes; Receiving a first identity attribute from a first device within a building; Receiving a second identity attribute from a second device within the building; Comparing the first and second identity attributes with the stored identity attributes of an object entity from the plurality of interconnected intelligent entities; and Granting access to a building area, building equipment device and / or a computer system in response to the first and second identity attributes matching the stored identity attributes of the object entity. Verfahren nach Anspruch 89, wobei: die erste Vorrichtung ein Zugangskartenlesegerät ist und das erste Identitätsattribut ein Karten-ID-Attribut ist, das vom Zugangskartenlesegerät aufgezeichnet wird; die zweite Vorrichtung eine Sicherheitskamera und/oder eine von einer Person getragene mobile Vorrichtung ist; und das zweite Identitätsattribut ein Bild einer Person, das durch die Sicherheitskamera erfasst wird, und/oder ein Mobilvorrichtung-ID-Attribut ist, das der mobilen Vorrichtung zugeordnet ist.Procedure according to Claim 89 , wherein: the first device is an access card reader and the first identity attribute is a card ID attribute recorded by the access card reader; the second device is a security camera and / or a mobile device carried by a person; and the second identity attribute is an image of a person captured by the security camera and / or a mobile device ID attribute associated with the mobile device. Verfahren nach Anspruch 89, wobei: wobei die erste Vorrichtung eine Benutzeroberflächenvorrichtung ist und das erste Identitätsattribut eine Benutzerkennung ist, die von einem Benutzer über die Benutzeroberflächenvorrichtung empfangen wird; die zweite Vorrichtung eine Sicherheitskamera und/oder eine von einer Person getragene mobile Vorrichtung ist; und das zweite Identitätsattribut ein Bild einer Person, das durch die Sicherheitskamera erfasst wird, und/oder ein Mobilvorrichtung-ID-Attribut ist, das der mobilen Vorrichtung zugeordnet ist.Procedure according to Claim 89 , wherein: wherein the first device is a user interface device and the first identity attribute is a user ID received from a user via the user interface device; the second device is a security camera and / or a mobile device carried by a person; and the second identity attribute is an image of a person captured by the security camera and / or a mobile device ID attribute associated with the mobile device. Verfahren nach Anspruch 89, das ferner Folgendes umfasst: Bestimmen eines der ersten Vorrichtung zugeordneten Standortes als Reaktion darauf, dass die erste Vorrichtung das das erste Identitätsattribut bereitstellt; Identifizieren eines Gebäudebereichs, in dem sich die erste Vorrichtung befindet; und Auswählen der zweiten Vorrichtung aus einem Satz von Vorrichtungen, die sich in demselben Gebäudebereich wie die erste Vorrichtung befinden.Procedure according to Claim 89 further comprising: determining a location associated with the first device in response to the first device providing the first identity attribute; Identifying a building area in which the first device is located; and selecting the second device from a set of devices located in the same building area as the first device. Gebäudeverwaltungssystem, das Folgendes umfasst: mehrere Vorrichtungen einer Gebäudeausrüstung; eine Entitätsdatenbank, die mehrere miteinander verbundene intelligente Entitäten speichert, die intelligenten Entitäten Objektentitäten, die mehrere Vorrichtungen der Gebäudeausrüstung repräsentieren, und Datenentitäten umfassen, die Daten repräsentieren, die den mehreren Vorrichtungen der Gebäudeausrüstung zugeordnet sind, wobei die intelligenten Entitäten durch relationale Objekte miteinander verbunden sind, die Beziehungen zwischen den Objektentitäten und den Datenentitäten angeben, jede Objektentität ein gespeichertes Attribut umfasst, das eine Version einer Software angibt, die auf einer Vorrichtung der Gebäudeausrüstung installiert ist, die durch die Objektentität repräsentiert wird; und einen Sicherstellungsdienst, zu Folgendem konfiguriert ist: automatisches Detektieren einer Version einer Software, die auf jeder der Vorrichtungen der Gebäudeausrüstung installiert ist, durch Lesen der gespeicherten Attribute der Objektentitäten, und automatisches Aktualisieren der Software, die auf einer oder mehreren der Vorrichtungen der Gebäudeausrüstung installiert ist, als Reaktion auf eine Bestimmung, dass die Version der auf der einen oder den mehreren Vorrichtungen der Gebäudeausrüstungen installierten Software nicht eine neueste Version der Software ist.Building management system that includes: several devices of a building equipment; an entity database that stores multiple interconnected smart entities, the smart entities include object entities representing multiple building equipment devices and data entities representing data associated with the multiple building equipment devices, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities, each object entity includes a stored attribute that indicates a version of software installed on a building equipment device represented by the object entity; and a security service configured to: automatically detect a version of software installed on each of the building equipment devices by reading the stored attributes of the object entities, and automatically update the software installed on one or more of the building equipment devices , in response to a determination that the version of the software installed on the one or more building equipment devices is not a newest version of the software. Gebäudeverwaltungssystem nach Anspruch 93, wobei der Sicherstellungsdienst einen Identitäts- und Sicherheitsdienst umfasst, der zum Sicherstellen konfiguriert ist, dass jede Vorrichtung der Gebäudeausrüstung zum Zugreifen auf Konfigurationssicherungen in der Lage ist.Building management system according to Claim 93 wherein the security service includes an identity and security service configured to ensure that each building equipment device is capable of accessing configuration backups. Gebäudeverwaltungssystem nach Anspruch 93, wobei der Sicherstellungsdienst einen Vorrichtungsverwaltungsdienst umfasst, der zum Erzeugen einer intelligenten Entität für jede Vorrichtung der Gebäudeausrüstung und Registrieren jeder Vorrichtung der Gebäudeausrüstung bei der entsprechenden intelligenten Entität konfiguriert ist.Building management system according to Claim 93 , wherein the security service includes a device management service configured to create an intelligent entity for each device of the building equipment and register each device of the building equipment with the corresponding intelligent entity. Gebäudeverwaltungssystem nach Anspruch 93, wobei der Sicherstellungsdienst einen Transport- und Benachrichtigungsdienst umfasst, der zum Ermöglichen einer bidirektionalen Kommunikation zwischen dem Sicherstellungsdienst und der Gebäudeausrüstung konfiguriert ist.Building management system according to Claim 93 wherein the security service includes a transport and notification service configured to enable bidirectional communication between the security service and the building equipment. Gebäudeverwaltungssystem nach Anspruch 93, wobei der Sicherstellungsdienst einen Vorrichtungschatten-/-manifestdienst umfasst, der zum Synchronisieren von Konfigurationseinstellungen, Parametern und/oder vorrichtungsspezifischen Informationen zwischen der Gebäudeausrüstung und dem Sicherstellungsdienst konfiguriert ist.Building management system according to Claim 93 wherein the security service includes a device shadow / manifest service configured to synchronize configuration settings, parameters, and / or device specific information between the building equipment and the security service. Gebäudeverwaltungssystem nach Anspruch 93, wobei der Sicherstellungsdienst einen Paketdienst umfasst, der zum Erzeugen eines komprimierten Datenobj ekts, das eine Konfiguration der Gebäudeausrüstung umfasst, und Speichern des komprimierten Datenobjekts als eine Sicherung der Konfiguration konfiguriert ist.Building management system according to Claim 93 , wherein the backup service includes a parcel service configured to generate a compressed data object that includes a configuration of the building equipment and store the compressed data object as a backup of the configuration. Gebäudeverwaltungssystem nach Anspruch 93, wobei der Sicherstellungsdienst einen Asset- und Sicherungsdienst umfasst, der zum Erzeugen und Präsentieren einer Benutzeroberfläche konfiguriert ist, die jede Vorrichtung der Gebäudeausrüstung auflistet und angibt, ob eine Sicherungskonfiguration jeder Vorrichtung in dem Sicherstellungsdienst gespeichert wurde.Building management system according to Claim 93 wherein the security service includes an asset and backup service configured to create and present a user interface that lists each device of the building equipment and indicates whether a backup configuration of each device has been stored in the security service. Gebäudeverwaltungssystem nach Anspruch 93, wobei der Sicherstellungsdienst einen manuellen Upload-Dienst umfasst, der zum Hochladen einer Sicherungskonfiguration als Reaktion auf eine Benutzeranforderung für die Sicherungskonfiguration konfiguriert ist.Building management system according to Claim 93 wherein the backup service includes a manual upload service configured to upload a backup configuration in response to a user request for the backup configuration.
DE112018004336.3T 2017-09-27 2018-09-26 Building management system with intelligent entities, time series, generation of a nested stream, cloud control and ID management and security services Pending DE112018004336T5 (en)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201762564247P 2017-09-27 2017-09-27
US62/564,247 2017-09-27
US201762580867P 2017-11-02 2017-11-02
US62/580,867 2017-11-02
US201762612167P 2017-12-29 2017-12-29
US201762611974P 2017-12-29 2017-12-29
US201762612228P 2017-12-29 2017-12-29
US201762611984P 2017-12-29 2017-12-29
US62/611,984 2017-12-29
US62/611,974 2017-12-29
US62/612,167 2017-12-29
US62/612,228 2017-12-29
PCT/US2018/052975 WO2019067631A1 (en) 2017-09-27 2018-09-26 Building management system with smart entities, timeseries, nested stream generation, cloud control, and id management and assurance services

Publications (1)

Publication Number Publication Date
DE112018004336T5 true DE112018004336T5 (en) 2020-05-14

Family

ID=63915363

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018004336.3T Pending DE112018004336T5 (en) 2017-09-27 2018-09-26 Building management system with intelligent entities, time series, generation of a nested stream, cloud control and ID management and security services

Country Status (2)

Country Link
DE (1) DE112018004336T5 (en)
WO (1) WO2019067631A1 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2797534A1 (en) * 2019-04-30 2020-12-02 Univ Alicante INTELLIGENT LIGHTING SYSTEM AND METHOD (Machine-translation by Google Translate, not legally binding)
US10798175B1 (en) 2019-06-28 2020-10-06 CohesionIB IoT contextually-aware digital twin with enhanced discovery
WO2020264095A1 (en) * 2019-06-28 2020-12-30 CohesionIB Iot contextually-aware digital twin with enhanced discovery
US10951713B2 (en) 2019-06-28 2021-03-16 CohesionIB IoT analytics edge application on IoT gateway
US11487274B2 (en) * 2020-05-29 2022-11-01 Honeywell International Inc. Cloud-based building management system
US11733664B2 (en) * 2020-12-31 2023-08-22 Johnson Controls Tyco IP Holdings LLP Systems and methods for building management system commissioning on an application
CN112882696B (en) * 2021-03-24 2024-02-02 国家超级计算天津中心 Full-element model training system based on supercomputer
CN113671856A (en) * 2021-08-23 2021-11-19 江苏亨诺科技有限公司 Intelligent comprehensive service system based on cloud service building
US11796974B2 (en) * 2021-11-16 2023-10-24 Johnson Controls Tyco IP Holdings LLP Building data platform with schema extensibility for properties and tags of a digital twin
CN114584177B (en) * 2021-12-31 2024-09-13 深圳达实物联网技术有限公司 Access control system based on direct current carrier communication
WO2023218311A1 (en) * 2022-05-12 2023-11-16 Beca Limited Systems and methods for optimization of a building management system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9536197B1 (en) * 2011-04-22 2017-01-03 Angel A. Penilla Methods and systems for processing data streams from data producing objects of vehicle and home entities and generating recommendations and settings
US9960929B2 (en) * 2012-09-21 2018-05-01 Google Llc Environmental sensing with a doorbell at a smart-home
CN108353090B (en) * 2015-08-27 2020-04-03 雾角系统公司 Method for improving processing of sensor stream data in a distributed network
US10739737B2 (en) * 2015-09-25 2020-08-11 Intel Corporation Environment customization

Also Published As

Publication number Publication date
WO2019067631A1 (en) 2019-04-04

Similar Documents

Publication Publication Date Title
DE112018004336T5 (en) Building management system with intelligent entities, time series, generation of a nested stream, cloud control and ID management and security services
US11774930B2 (en) Building system with digital twin based agent processing
US11778030B2 (en) Building smart entity system with agent based communication and control
US11809461B2 (en) Building system with an entity graph storing software logic
US11709965B2 (en) Building system with smart entity personal identifying information (PII) masking
US11158306B2 (en) Building system with entity graph commands
US11314788B2 (en) Smart entity management for building management systems
US11764991B2 (en) Building management system with identity management
CN110494811B (en) Building management system with declarative view of time series data
DE112018004407T5 (en) WEB SERVICE PLATFORM WITH SMART ENTITIES, TIME SERIES AND NESTLED STREAM GENERATION
US11361040B2 (en) Systems and methods for providing persona-adjusted data

Legal Events

Date Code Title Description
R012 Request for examination validly filed