One or more aspects of example embodiments of the present disclosure generally relate to creation and maintenance of smart entities. One or more aspects of example embodiments of the present disclosure relate to a system and method for defining relationships between smart entities. One or more aspects of example embodiments of the present disclosure relate to a system and method for correlating data produced by related smart entities.
The Internet of Things (IoT) is a network of interconnected objects (or Things), hereinafter referred to as IoT devices, that produce data through interaction with the environment and/or are controlled over a network. An IoT platform is used by application developers to produce IoT applications for the IoT devices. Generally, IoT platforms are utilized by developers to register and manage the IoT devices, gather and analyze data produced by the IoT devices, and provide recommendations or results based on the collected data. As the number of IoT devices used in various sectors increases, the amount of data being produced and collected has been increasing exponentially. Accordingly, effective analysis of a plethora of collected data is desired.
According to an aspect of an example embodiment, an entity management cloud computing system for managing data relating to a plurality of physical devices connected to one or more electronic communications networks, includes: one or more processors; and one or more computer-readable storage media communicably coupled to the one or more processors having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to: generate a database of interconnected smart entities, the smart entities including object entities representing each of the plurality of physical devices and data entities representing data generated by the devices, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities; receive data from a first device of the plurality of physical devices; determine a second device from a relational object for the first device based on the received data; and modify a data entity connected to an object entity of the second device within the database of smart entities based on the received data for the first device.
In an example embodiment, each of the object entities may include a static attribute to identify the object entity, a dynamic attribute to store a data point associated with the object entity that changes over time, and a behavioral attribute that defines an expected response of the object entity in response to an input.
In an example embodiment, the data entity connected to the object entity of the second device may be configured to store the dynamic attribute of the object entity.
In an example embodiment, a relational object may semantically define the connection between the data entity and the object entity of the second device.
In an example embodiment, the modifying of the data entity connected to the object entity of the second device may include: identifying a dynamic attribute in the data that is associated with the object entity of the second device; determining a relational object connecting the data entity to the object entity of the second device; and storing a value of the data corresponding to the dynamic attribute in the data entity.
According to an aspect of an example embodiment, a method for managing data relating to a plurality of physical devices connected to one or more electronic communications networks, includes: generating, by one or more processors, a database of interconnected smart entities, the smart entities comprising object entities representing each of the plurality of physical devices and data entities representing data generated by the devices, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities; receiving, by the one or more processors, data from a first device of the plurality of physical devices; determining, by the one or more processors, a second device from a relational object for the first device based on the received data; and modifying, by the one or more processors, a data entity connected to an object entity of the second device within the database of smart entities based on the received data for the first device.
In an example embodiment, each of the object entities may include a static attribute to identify the object entity, a dynamic attribute to store a data point associated with the object entity that changes over time, and a behavioral attribute that defines an expected response of the object entity in response to an input.
In an example embodiment, the data entity connected to the object entity of the second device may be configured to store the dynamic attribute of the object entity.
In an example embodiment, a relational object may semantically define the connection between the data entity and the object entity of the second device.
In an example embodiment, the modifying of the data entity connected to the object entity of the second device may include: identifying, by the one or more processors, a dynamic attribute in the data that is associated with the object entity of the second device; determining, by the one or more processors, a relational object connecting the data entity to the object entity of the second device; and storing, by the one or more processors, a value of the data corresponding to the dynamic attribute in the data entity.
According to an aspect of an example embodiment, a non-transient computer readable medium is provided that contains program instructions for causing a computer to perform the method of: generating a database of interconnected smart entities, the smart entities including object entities representing each of the plurality of physical devices and data entities representing data generated by the devices, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities; receiving data from a first device of the plurality of physical devices; determining a second device from a relational object for the first device based on the received data; and modifying a data entity connected to an object entity of the second device within the database of smart entities based on the received data for the first device.
In an example embodiment, each of the object entities may include a static attribute to identify the object entity, a dynamic attribute to store a data point associated with the object entity that changes over time, and a behavioral attribute that defines an expected response of the object entity in response to an input.
In an example embodiment, the data entity connected to the object entity of the second device may be configured to store the dynamic attribute of the object entity.
In an example embodiment, a relational object may semantically define the connection between the data entity and the object entity of the second device.
In an example embodiment, the modifying of the data entity connected to the object entity of the second device may include: identifying a dynamic attribute in the data that is associated with the object entity of the second device; determining a relational object connecting the data entity to the object entity of the second device; and storing a value of the data corresponding to the dynamic attribute in the data entity.
Another implementation of the present disclosure is an entity management cloud computing system for managing data relating to a plurality of physical devices connected to one or more electronic communications networks. The system includes one or more processors and one or more computer-readable storage media communicably coupled to the one or more processors having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to generate a database of interconnected smart entities. The smart entities include object entities representing each of the plurality of physical devices and data entities representing data generated by the devices, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities. The instructions cause the one or more processors to receive new data from a first device of the plurality of physical devices; determine whether the database includes a first object entity representing the first device; in response to a determination that the database includes the first object entity, determine whether the database includes a first data entity representing data received from the first device; and in response to a determination that the database includes the first data entity, update an attribute of the first data entity using the new data received from the first device.
In some embodiments, in response to a determination that the database does not include the first data entity, the instructions further cause the one or more processors to create the first data entity, create a first relational object defining a relationship between the first object entity and the first data entity, and create an attribute of the first data entity and generate a value for the attribute of the first data entity using the new data received from the first device.
In some embodiments, in response to a determination that the database does not include the first object entity, the instructions further cause the one or more processors to create the first object entity, create the first data entity, create a first relational object defining a relationship between the first object entity and the first data entity, and create an attribute of the first data entity and generate a value for the attribute of the first data entity using the new data received from the first device.
In some embodiments, determining whether the database includes 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 device.
In some embodiments, determining whether the database includes 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.
In some embodiments, determining whether the database includes the first data entity includes identifying a first relational object defining 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.
In some embodiments, the first data entity includes a static attribute identifying the first data entity and a dynamic attribute comprising 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 device.
In some embodiments, one or more of the object entities includes a static attribute to identify the object entity, a dynamic attribute to store a data point associated with the object entity that changes over time, and a behavioral attribute that defines an expected response of the object entity in response to an input.
In some embodiments, the instructions 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 first device.
In some embodiments, the instructions further cause the one or more processors to calculate an average value from the historical values stored in the shadow entity.
In some embodiments, the instructions further cause the one or more processors to calculate an abnormal value from the historical values stored in the shadow entity.
Another implementation of the present disclosure is a method for managing data relating to a plurality of physical devices connected to one or more electronic communications networks. The method includes generating a database of interconnected smart entities. The smart entities include object entities representing each of the plurality of physical devices and data entities representing data generated by the devices, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities. The method includes receiving new data from a first device of the plurality of physical devices; determining whether the database includes a first object entity representing the first device; in response to a determination that the database includes the first object entity, determining whether the database includes a first data entity representing data received from the first device; and in response to a determination that the database includes the first data entity, updating an attribute of the first data entity using the new data received from the first device.
In some embodiments, in response to a determination that the database does not include the first data entity, the method comprises creating the first data entity, creating a first relational object defining a relationship between the first object entity and the first data entity, and creating 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 device.
In some embodiments, in response to a determination that the database does not include the first object entity, the method comprises creating the first object entity, creating the first data entity, creating a first relational object defining a relationship between the first object entity and the first data entity, and creating 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 device.
In some embodiments, determining whether the database includes 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 device.
In some embodiments, determining whether the database includes 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.
In some embodiments, determining whether the database includes the first data entity includes identifying a first relational object defining 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.
In some embodiments, the first data entity includes a static attribute identifying the first data entity and a dynamic attribute comprising 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 device.
In some embodiments, one or more of the object entities includes a static attribute to identify the object entity, a dynamic attribute to store a data point associated with the object entity that changes over time, and a behavioral attribute that defines an expected response of the object entity in response to an input.
In some embodiments, the method includes creating a shadow entity to store historical values of the first data entity using historical data received from the first device.
In some embodiments, the method includes calculating an average value from the historical values stored in the shadow entity.
In some embodiments, the method includes calculating an abnormal value from the historical values stored in the shadow entity.
Another implementation of the present disclosure is one or more non-transitory computer readable media containing program instructions that, when executed by one or more processors, cause the one or more processors to perform operations including generating a database of interconnected smart entities. The smart entities include object entities representing each of the plurality of physical devices and data entities representing data generated by the devices, the smart entities being interconnected by relational objects indicating relationships between the object entities and the data entities. The operations include receiving new data from a first device of the plurality of physical devices; determining whether the database includes a first object entity representing the first device; in response to a determination that the database includes the first object entity, determining whether the database includes a first data entity representing data received from the first device; and in response to a determination that the database includes the first data entity, updating an attribute of the first data entity using the new data received from the first device.
In some embodiments, in response to a determination that the database does not include the first data entity, the instructions further cause the one or more processors to create the first data entity, create a first relational object defining a relationship between the first object entity and the first data entity, and create an attribute of the first data entity and generate a value for the attribute of the first data entity using the new data received from the first device.
In some embodiments, in response to a determination that the database does not include the first object entity, the instructions further cause the one or more processors to create the first object entity, create the first data entity, create a first relational object defining a relationship between the first object entity and the first data entity, and create an attribute of the first data entity and generate a value for the attribute of the first data entity using the new data received from the first device.
In some embodiments, determining whether the database includes 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 device.
In some embodiments, determining whether the database includes 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.
In some embodiments, determining whether the database includes the first data entity includes identifying a first relational object defining 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.
In some embodiments, the first data entity includes a static attribute identifying the first data entity and a dynamic attribute comprising 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 device.
In some embodiments, one or more of the object entities includes a static attribute to identify the object entity, a dynamic attribute to store a data point associated with the object entity that changes over time, and a behavioral attribute that defines an expected response of the object entity in response to an input.
In some embodiments, the instructions 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 first device.
In some embodiments, the instructions further cause the one or more processors to calculate an average value from the historical values stored in the shadow entity.
In some embodiments, the instructions further cause the one or more processors to calculate an abnormal value from the historical values stored in the shadow entity.
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 example embodiments with reference to the accompanying drawings, in which:
Hereinafter, example embodiments will be described in more detail with reference to the accompanying drawings.
The Cloud IoT platform 104 can be configured to collect data from a variety of different data sources. For example, the Cloud IoT platform 104 can collect data from the IoT devices 102a-102n, the IoT application(s) 106, and the client device(s) 108. For example, IoT devices 102a-102n may include physical devices, sensors, actuators, electronics, vehicles, home appliances, wearables, smart speaker, mobile phones, mobile devices, medical devices and implants, and/or other Things that have network connectivity to enable the IoT devices 102 to communicate with the Cloud IoT platform 104 and/or be controlled over a network (e.g., a WAN, the Internet, a cellular network, and/or the like) 110. Further, the Cloud IoT platform 104 can be configured to collect data from a variety of external systems or services (e.g., 3rd party services) 112. For example, some of the data collected from external systems or services 112 may include weather data from a weather service, news data from a news service, documents and other document-related data from a document service, media (e.g., video, images, audio, social media, etc.) from a media service, and/or the like. While the devices described herein are generally referred to as IoT devices, it should be understood that, in various embodiments, the devices references in the present disclosure could be any type of devices capable of communicating data over an electronic network.
In some embodiments, Cloud IoT platform 104 generates data internally. For example, Cloud IoT platform 104 may include a web advertising system, a website traffic monitoring system, a web sales system, and/or other types of platform services that generate data. The data generated by Cloud IoT platform 104 can be collected, stored, and processed along with the data received from other data sources. Cloud IoT platform 104 can collect data directly from external systems or devices or via the network 110. Cloud IoT platform 104 can process and transform collected data to generate timeseries data and entity data.
Client device(s) 108 can include one or more human-machine interfaces or client interfaces (e.g., graphical user interfaces, reporting interfaces, text-based computer interfaces, client-facing web services, web servers that provide pages to web clients, and/or the like) for controlling, viewing, or otherwise interacting with the IoT environment, IoT devices 102, IoT applications 106, and/or the Cloud IoT platform 104. Client device(s) 108 can be a computer workstation, a client terminal, a remote or local interface, or any other type of user interface device. Client device 108 can be a stationary terminal or a mobile device. For example, client device 108 can be 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.
IoT applications 106 may be applications running on the client device 108 or any other suitable device that provides an interface for presenting data from the IoT devices 102 and/or the Cloud IoT platform 104 to the client device 108. In some embodiments, the IoT applications 106 may provide an interface for providing commands or controls from the client device 108 to the IoT devices 102 and/or the Cloud IoT platform 104.
IoT Management System
Referring now to
Cloud IoT controller 266 can include one or more computer systems (e.g., servers, supervisory controllers, subsystem controllers, etc.) that serve as system level controllers, application or data servers, head nodes, or master controllers the IoT devices 228 and/or other controllable systems or devices in an IoT environment. Cloud IoT controller 266 may communicate with multiple downstream IoT devices 228 and/or systems via a communications link (e.g., IoT device interface 209) according to like or disparate protocols (e.g., HTTP(s), TCP-IP, HTML, SOAP, REST, LON, BACnet, OPC-UA, ADX, and/or the like).
In some embodiments, the IoT devices 228 receive information from Cloud IoT controller 266 (e.g., commands, setpoints, operating boundaries, etc.) and provides information to Cloud IoT controller 266 (e.g., measurements, valve or actuator positions, operating statuses, diagnostics, etc.). For example, the IoT devices 228 may provide Cloud IoT controller 266 with measurements from various sensors, equipment on/off states, equipment operating capacities, and/or any other information that can be used by Cloud IoT controller 266 to monitor or control a variable state or condition within the IoT environment.
Still referring to
Interfaces 207, 209 can be or include wired or wireless communications interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, etc.) for conducting data communications with IoT devices 228 or other external systems or devices. In various embodiments, communications via interfaces 207, 209 can be direct (e.g., local wired or wireless communications) or via a communications network 246 (e.g., a WAN, the Internet, a cellular network, etc.). For example, interfaces 207, 209 can include an Ethernet card and port for sending and receiving data via an Ethernet-based communications link or network. In another example, interfaces 207, 209 can include a Wi-Fi transceiver for communicating via a wireless communications network. In another example, one or both of interfaces 207, 209 can include cellular or mobile phone communications transceivers. In some embodiments, communications interface 207 is a power line communications interface and IoT device interface 209 is an Ethernet interface. In other embodiments, both communications interface 207 and IoT device interface 209 are Ethernet interfaces or are the same Ethernet interface.
Still referring to
Memory 208 (e.g., memory, memory unit, storage device, etc.) can include one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described in the present application. Memory 208 can be or include volatile memory or non-volatile memory. Memory 208 can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present application. According to some embodiments, memory 208 is communicably connected to processor 206 via processing circuit 204 and includes computer code for executing (e.g., by processing circuit 204 and/or processor 206) one or more processes described herein.
However, the present disclosure is not limited thereto, and in some embodiments, Cloud IoT controller 266 can be implemented within a single computer (e.g., one server, one housing, etc.). Further, while
Still referring to
Enterprise integration layer 210 can be configured to serve clients or local applications with information and services to support a variety of enterprise-level applications. For example, enterprise control applications 226 can be configured to provide subsystem-spanning control to a graphical user interface (GUI) or to any number of enterprise-level business applications (e.g., accounting systems, user identification systems, etc.). Enterprise control applications 226 may also or alternatively be configured to provide configuration GUIs for configuring Cloud IoT controller 266. In yet other embodiments, enterprise control applications 226 can work with layers 210-220 to optimize the IoT environment based on inputs received at interface 207 and/or IoT device interface 209.
IoT device integration layer 220 can be configured to manage communications between Cloud IoT controller 266 and the IoT devices 228. For example, IoT device integration layer 220 may receive sensor data and input signals from the IoT devices 228, and provide output data and control signals to the IoT devices 228. IoT device integration layer 220 may also be configured to manage communications between the IoT devices 228. IoT device integration layer 220 translate communications (e.g., sensor data, input signals, output signals, etc.) across a plurality of multi-vendor/multi-protocol systems.
Integrated control layer 218 can be configured to use the data input or output of IoT device integration layer 220 to make control decisions. Due to the IoT device integration provided by the IoT device integration layer 220, integrated control layer 218 can integrate control activities of the IoT devices 228 such that the IoT devices 228 behave as a single integrated supersystem. In some embodiments, integrated control layer 218 includes control logic that uses inputs and outputs from a plurality of IoT device subsystems to provide insights that separate IoT device subsystems could not provide alone. For example, integrated control layer 218 can be configured to use an input from a first IoT device subsystem to make a control decision for a second IoT device subsystem. Results of these decisions can be communicated back to IoT device integration layer 220.
Automated measurement and validation (AM&V) layer 212 can be configured to verify that control strategies commanded by integrated control layer 218 are working properly (e.g., using data aggregated by AM&V layer 212, integrated control layer 218, IoT device integration layer 220, FDD layer 216, and/or the like). The calculations made by AM&V layer 212 can be based on IoT device data models and/or equipment models for individual IoT devices or subsystems. For example, AM&V layer 212 may compare a model-predicted output with an actual output from IoT devices 228 to determine an accuracy of the model.
Fault detection and diagnostics (FDD) layer 216 can be configured to provide on-going fault detection for the IoT devices 228 and subsystem devices (equipment, sensors, and the like), and control algorithms used by integrated control layer 218. FDD layer 216 may receive data inputs from integrated control layer 218, directly from one or more IoT devices or subsystems, or from another data source. FDD layer 216 may automatically diagnose and respond to detected faults. The responses to detected or diagnosed faults can include providing an alert message to a user, a maintenance scheduling system, or a control algorithm configured to attempt to repair the fault or to work-around the fault.
FDD layer 216 can be configured to output a specific identification of the faulty component or cause of the fault (e.g., faulty IoT device or sensor) using detailed subsystem inputs available at IoT device integration layer 220. In other exemplary embodiments, FDD layer 216 is configured to provide “fault” events to integrated control layer 218 which executes control strategies and policies in response to the received fault events. According to some embodiments, FDD layer 216 (or a policy executed by an integrated control engine or business rules engine) may shut-down IoT systems, devices, and/or or components or direct control activities around faulty IoT systems, devices, and/or components to reduce waste, extend IoT device life, or to assure proper control response.
FDD layer 216 can be configured to store or access a variety of different system data stores (or data points for live data). FDD layer 216 may use some content of the data stores to identify faults at the IoT device or equipment level and other content to identify faults at component or subsystem levels. For example, the IoT devices 228 may generate temporal (i.e., time-series) data indicating the performance of IoTMS 200 and the various components thereof. The data generated by the IoT devices 228 can include measured or calculated values that exhibit statistical characteristics and provide information about how the corresponding system or IoT application process is performing in terms of error from its setpoint. These processes can be examined by FDD layer 216 to expose when the system begins to degrade in performance and alert a user to repair the fault before it becomes more severe.
IoT Management System with Cloud IoT Platform Services
Referring now to
It should be noted that the components of IoTMS 300 and/or Cloud IoT platform services 320 can be integrated within a single device (e.g., a supervisory controller, a IoT device controller, etc.) or distributed across multiple separate systems or devices. In other embodiments, some or all of the components of IoTMS 300 and or Cloud IoT platform services 320 can be implemented as part of a cloud-based computing system configured to receive and process data from one or more IoT systems, devices, and/or components. In other embodiments, some or all of the components of IoTMS 300 and/or Cloud IoT platform services 320 can be components of a subsystem level controller, a subplant controller, a device controller, a field controller, a computer workstation, a client device, or any other system or device that receives and processes data from IoT devices.
IoTMS 300 can include many of the same components as IoTMS 200, as described with reference to
Communications interface 304 can facilitate communications between IoTMS 300 and external applications (e.g., remote systems and applications 244) for allowing user control, monitoring, and adjustment to IoTMS 300. Communications interface 304 can also facilitate communications between IoTMS 300 and client devices 248. IoT device interface 302 can facilitate communications between IoTMS 300, Cloud IoT platform services 320, and IoT devices 228. IoTMS 300 can be configured to communicate with IoT devices 228 and/or Cloud IoT platform services 320 using any suitable protocols (e.g., HTTP(s), TCP-IP, HTML, SOAP, REST, LON, BACnet, OPC-UA, ADX, and/or the like). In some embodiments, IoTMS 300 receives data samples from IoT devices 228 and provides control signals to IoT devices 228 via IoT device interface 302.
IoT devices 228 may include any suitable device having network connectivity, such as, for example, a mobile phone, laptop, tablet, smart speaker, vehicle, appliance, light fixture, thermostat, wearable, medical implant, equipment, sensor, and/or the like. Further, each of the IoT devices 228 can include any number of devices, controllers, and connections for completing its individual functions and control activities. For example, any of the IoT devices 228 can be a system of devices in itself including controllers, equipment, sensors, and/or the like.
Still referring to
The memory can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. Memory can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. Memory can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. Memory can be communicably connected to the processor via the processing circuit and can include computer code for executing (e.g., by the processor) one or more processes described herein.
Still referring to
The data samples can include one or more attributes that describe or characterize the corresponding data points. For example, the data samples can include a name attribute defining a point name or ID (e.g., “B1F4R2.T-Z”), a device attribute indicating a type of device from which the data samples are received, a unit attribute defining a unit of measure 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 types of attributes included in each data point can depend on the communications protocol used to send the data samples to Cloud IoT platform services 320. For example, data samples received via the ADX protocol or BACnet protocol can include a variety of descriptive attributes along with the data value, whereas data samples received via the Modbus protocol may include a lesser number of attributes (e.g., only the data value without any corresponding attributes).
In some embodiments, each data sample is received with a timestamp indicating a time at which the corresponding data value was measured or calculated. In other embodiments, data collector 312 adds timestamps to the data samples based on the times at which the data samples are received. Data collector 312 can generate raw timeseries data for each of the data points for which data samples are received. Each timeseries can include a series of data values for the same data point and a timestamp for each of the data values. For example, a timeseries for a data point provided by a temperature sensor can include a series of temperature values measured by the temperature sensor and the corresponding times at which the temperature values were measured. An example of a timeseries which can be generated by data collector 312 is as follows:
[<key, timestamp1, value1>, <key, timestamp2, value2>, <key, timestamp3, value3>] where key is an identifier of the source of the raw data samples (e.g., timeseries ID, sensor ID, etc.), timestampi identifies the time at which the ith sample was collected, and valuei indicates the value of the ith sample.
Data collector 312 can add timestamps to the data samples or modify existing timestamps such that each data sample includes 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 the data point was measured at the time of measurement. The offset indicates the difference between the local time and a universal time (e.g., the time at the international date line). For example, a data sample collected in a time zone that is six hours behind universal time can include a local timestamp (e.g., Timestamp=2016-03-18T14:10:02) and an offset indicating that the local timestamp is six hours behind universal time (e.g., Offset=−6:00). The offset can be adjusted (e.g., +1:00 or −1:00) depending on whether the time zone is in daylight savings time when the data sample is measured or collected.
The combination of the local timestamp and the offset provides a unique timestamp across daylight saving time boundaries. This allows an application using the timeseries data to display the timeseries data in local time without first converting from universal time. The combination of the local timestamp and the offset also provides enough information to convert the local timestamp to universal time without needing to look up a schedule of when daylight savings time occurs. For example, the offset can be subtracted from the local timestamp to generate a universal time value that corresponds to the local timestamp without referencing an external database and without requiring any other information.
In some embodiments, data collector 312 organizes the raw timeseries data. Data collector 312 can identify a system or device associated with each of the data points. For example, data collector 312 can associate a data point with an IoT device, system, component, sensor, or any other type of system or device. In some embodiments, a data point entity may be created for the data point, in which case, the data collector 312 can associate the data point with the data point entity. In various embodiments, 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, device, or data point entity associated with the data point. Data collector 312 can then determine how that system or device relates to the other systems or devices in the IoT environment from entity data. For example, data collector 312 can determine that the identified system or device is part of a larger system or serves a particular function within the larger system from the entity data. In some embodiments, data collector 312 uses or retrieves an entity graph (e.g., via the entity service 326) based on the entity data when organizing the timeseries data.
Data collector 312 can provide the raw timeseries data to the other Cloud IoT platform services 320 and/or store the raw timeseries data in storage 314. Storage 314 may be internal storage or external storage. For example, storage 314 can be internal storage with relation to Cloud IoT platform service 320 and/or IoTMS 300, and/or may include a remote database, cloud-based data hosting, or other remote data storage. Storage 314 can be configured to store the raw timeseries data obtained by data collector 312, the derived timeseries data generated by Cloud IoT platform services 320, and/or directed acyclic graphs (DAGs) used by Cloud IoT platform services 320 to process the timeseries data.
Still referring to
In some embodiments, timeseries service 328 aggregates predefined intervals of the raw timeseries data (e.g., quarter-hourly intervals, hourly intervals, daily intervals, monthly intervals, etc.) to generate new derived timeseries of the aggregated values. These derived timeseries can be referred to as “data rollups” since they are condensed versions of the raw timeseries data. The data rollups generated by timeseries service 328 provide an efficient mechanism for IoT applications 330 to query the timeseries data. For example, IoT applications 330 can construct visualizations of the timeseries data (e.g., charts, graphs, etc.) using the pre-aggregated data rollups instead of the raw timeseries data. This allows IoT applications 330 to simply retrieve and present the pre-aggregated data rollups without requiring IoT applications 330 to perform an aggregation in response to the query. Since the data rollups are pre-aggregated, IoT applications 330 can present the data rollups quickly and efficiently without requiring additional processing at query time to generate aggregated timeseries values.
In some embodiments, timeseries service 328 calculates virtual points based on the raw timeseries data and/or the derived timeseries data. Virtual points can be calculated by applying any of 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, nonlinear functions, etc.) to the actual data points represented by the timeseries data. For example, timeseries service 328 can calculate a virtual data point (pointID3) by adding two or more actual data points (pointID1 and pointID2) (e.g., pointID3=pointIDi+pointID2). As another example, timeseries service 328 can calculate an enthalpy data point (pointID4) based on a measured temperature data point (pointID5) and a measured pressure data point (pointID6) (e.g., pointID4=enthalpy(pointID5, pointID6)). The virtual data points can be stored as derived timeseries data.
IoT applications 330 can access and use the virtual data points in the same manner as the actual data points. IoT applications 330 do not need to know whether a data point is an actual data point or a virtual data point since both types of data points can be stored as derived timeseries data and can be handled in the same manner by IoT applications 330. In some embodiments, the derived timeseries are stored with attributes designating each data point as either a virtual data point or an actual data point. Such attributes allow IoT applications 330 to identify whether a given timeseries represents a virtual data point or an actual data point, even though both types of data points can be handled in the same manner by IoT applications 330.
In some embodiments, analytics service 324 analyzes the raw timeseries data and/or the derived timeseries data with the entity data to detect faults. Analytics service 324 can apply a set of fault detection rules based on the entity data to the timeseries data to determine whether a fault is detected at each interval of the timeseries. Fault detections can be stored as derived timeseries data. For example, analytics service 324 can generate a new fault detection timeseries with data values that indicate whether a fault was detected at each interval of the timeseries. The fault detection timeseries can be stored as derived timeseries data along with the raw timeseries data in storage 314.
Still referring to
IoT applications 330 can use the derived timeseries data and entity data to perform a variety data visualization, monitoring, and/or control activities. For example, resource management application 332 and monitoring and reporting application 334 can use the derived timeseries data and entity data to generate user interfaces (e.g., charts, graphs, etc.) that present the derived timeseries data and/or entity data to a user. In some embodiments, the user interfaces present the raw timeseries data and the derived data rollups in a single chart or graph. For example, a dropdown selector can be provided to allow a user to select the raw timeseries data or any of the data rollups for a given data point.
Enterprise control application 336 can use the derived timeseries data and/or entity data to perform various control activities. For example, enterprise control application 336 can use the derived timeseries data and/or entity data as input to a control algorithm (e.g., a state-based algorithm, an extremum seeking control (ESC) algorithm, a proportional-integral (PI) control algorithm, a proportional-integral-derivative (PID) control algorithm, a model predictive control (MPC) algorithm, a feedback control algorithm, etc.) to generate control signals for IoT devices 228. In some embodiments, IoT devices 228 use the control signals to operate other systems, devices, components, and/or sensors, which can affect the measured or calculated values of the data samples provided to IoTMS 300 and/or Cloud IoT platform services 320. Accordingly, enterprise control application 336 can use the derived timeseries data and/or entity data as feedback to control the systems and devices of the IoT devices 228.
Cloud Entity IoT Platform Service
Referring now to
In some embodiments, an object entity may be defined as having at least three types of attributes. For example, an object entity may have a static attribute, a dynamic attribute, and a behavioral attribute. The static attribute may include any unique identifier of the object entity or characteristic of the object entity that either does not change over time or changes infrequently (e.g., a device ID, a person's name or social security number, a place's address or room number, 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 may simply refer to a location (e.g., data/network address) or static attribute (e.g., identifier) of the linked data entity, which may store the data (e.g., the value or information) of the dynamic attribute. Accordingly, in some such embodiments, when a new data point 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 expended to update the object entity may be reduced.
However, the present disclosure is not limited thereto. For example, in some embodiments, there may also be some data that is updated (e.g., during predetermined intervals) in the dynamic attribute of the object entity itself. 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 often (e.g., at predetermined intervals less than the intervals during which the new data points are received). In some implementations, the dynamic attribute of the object entity may include both a link to the data entity and either a portion of the data from the data entity or data derived from the data of the data entity. For example, in an embodiment in which periodic odometer readings are received from a connected car, an object entity corresponding to the car could include the last odometer reading and a link to a data entity that stores a series of the last ten odometer readings received from the car.
The behavioral attribute may define a function of the object entity, for example, based on inputs, capabilities, and/or permissions. For example, behavioral attributes may define the types of inputs that the object entity is configured to accept, how the object entity is expected to respond under certain conditions, the types of functions that the object entity is capable of performing, and the like. As a non-limiting example, if the object entity represents a person, the behavioral attribute of the person may be his/her job title or job duties, user permissions to access certain systems, expected location or behavior given a time of day, tendencies or preferences based on connected activity data received by entity service 326 (e.g., social media activity), and the like. As another 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 generate, the types of controls that the device is capable of, the types of software or versions that the device currently has, known responses of the device to certain types of input (e.g., behavior of the device defined by its programming), and the like.
In some embodiments, the data entity may be defined as having at least a static attribute and a dynamic attribute. The static attribute of the data entity may include 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 may 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 analyzed, inferred, calculated, or determined based on data from a plurality of data sources.
In some embodiments, the relational object may be defined as having at least a static attribute. The static attribute of the relational object may semantically define the type of relationship between two or more entities. For example, in a non-limiting embodiment, a relational object for a relationship that semantically defines that Entity A has a part of Entity B, or that Entity B is a part of Entity A may include:
hasPart{Entity A, Entity B}
where the static attribute hasPart defines what the relationship is of the listed entities, and the order of the listed entities or data field of the relational object specifies which entity is the part of the other (e.g., Entity A→hasPart→Entity B).
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, Cloud IoT platform service 320 can provide a rich set of pre-built entity models with standardized relational objects that can be used to describe how any two or more entities are semantically related, as well as how data is exchanged and/or processed between the entities. Accordingly, a global change to a definition or relationship of a relational object at the system level can be effected at the object level, without having to manually change the entity relationships for each object or entity individually. Further, in some embodiments, a global change at the system level can be propagated through to third-party applications integrated with Cloud IoT platform services 320 such that the global change can be implemented across all of the third-party applications without requiring manual implementation of the change in each disparate application.
For example, referring to
For example, an entity type (or object) “Activity Tracker” may be represented via the below schema:
where various attributes are static attributes (e.g., “Type,” “Model Number,” “Device Name,” etc.), dynamic attributes (e.g., “Location,” “Current Time,” etc.), or behavioral attributes (e.g., “Current Heart Rate,” “Daily Number of Steps,” etc.) for the object entity “Activity Tracker.” In a relational database, the object “Activity Tracker” is a table name, and the attributes represents column names.
An example of an object entity data model for a person named John Smith in a relational database may be represented by the below table:
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.”
An example data entity for the data point “Daily Number of Steps” for the “Activity Tracker” owned by John Smith in a relational database may be represented by the below table:
where various attributes are static attributes (e.g., “Description” and “Device_Type”) and dynamic attributes (e.g., “Present-Value”).
While structuring the entities via entity type or object may help to define the data representation of the entities, these data models do not provide information on how the entities relate to each other. For example, an IoT application, controller, or platform may need data from a plurality of sources as well as information on how the sources relate to each other in order 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 may help to increase speeds in analyzing data, as well as provide ease of navigation and browsing.
For example, still referring to
For example, the entity graph 500 shows that a person named John (object entity) 504 isAKindOf (relational object) 506 User (class entity) 508. John 504 Owns (relational object) 510 the Activity Tracker (object entity) 502. The Activity Tracker 502 has a location attribute (dynamic attribute) 512 that isLinked (relational object) 514 to Geo 301-01 (data entity) 316, which isAKindOf (relational object) 518 an Address (class entity) 520. Accordingly, Geo 301-01 316 should have a data point corresponding to an address.
The Activity Tracker 502 further includes a “Daily Number of Steps” attribute (dynamic attribute) 522 that isLinked (relational object) 524 to AI 201-01 (data entity) 526. AI 201-01 526 isAKindOf (relational object) 528 Activity Object (class entity) 530. Thus, AI 201-01 526 should contain some sort of activity related data. AI 201-01 526 hasStorage (relational object) 532 at TS ID 1 (data entity) 534. AI 201-01 526 hasOperation (relational object) 536 of Daily Average 1 (data entity) 538, which isAKindOf (relational object) 540 Analytic Operator (class entity) 542. Accordingly, Daily Average 1 should hold some data that is the result of an analytic operation.
In this example, the data entity AI 201-01 526 may be represented by the following data model:
where “point” is an example of a data entity that may be created by Cloud IoT platform Services 320 to hold the value for the linked “Daily Number of Steps” 522 dynamic attribute of the Activity Tracker entity 502, and source is the sensor or device in the Activity Tracker device 502 that provides the data to the linked “Daily Number of Steps” 522 dynamic attribute.
The data entity TS Id 1 534 may be represented, for example, by the following data model:
where the data entity Daily Average 1 538 represents a specific analytic operator used to create the data entity for the average daily timeseries TS Id 1 534 based on the values of the corresponding data entity for point AI 201-01 526. The relational object hasOperation shows that the AI 201-01 data entity 526 is used as an input to the specific logic/math operation represented by Daily Average 1 538. TS Id 1 534 might also include an attribute that identifies the analytic operator Daily Average 1 538 as the source of the data samples in the timeseries.
Still referring to
In some embodiments, any two entities (or nodes) can be connected to each other via one or more relational objects that define different relationships between the two entities (or nodes). For example, still referring to
In this case, when the data entities associated with the activity tracker object entity 502 indicates that John is wearing the activity tracker (e.g., which may be determined from the daily number of steps attribute 522 or the location attribute 512), the relational object isWearing may be created between the object entity for John 510 and the object entity for activity tracker 502. On the other hand, when the data entities associated with the activity tracker object entity 502 indicates that John is not wearing the activity tracker (e.g., which may be determined when the daily number of steps attribute 522 for a current day is zero or the location attribute 512 shows a different location from a known location of John), the relational object isNotWearing can be created between the object entity for John 510 and the object entity for activity tracker 502. For example, the relational object isNotWearing can be created by modifying the relational object isWearing or deleting the relational object isWearing and creating the relational object isNotWearing. Thus, in some embodiments, the relational objects can be dynamically created, modified, or deleted as needed or desired.
Referring again to
Web service 402 can be configured to interact with web-based applications to send entity data and/or receive raw data (e.g., data samples, timeseries data, and the like). For example, web service 402 can provide an interface (e.g., API, UI/UX, and the like) to manage (e.g., register, create, edit, delete, and/or update) 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. In some embodiments, web service 402 provides entity data to web-based applications. For example, if one or more of applications 330 are web-based applications, web service 402 can provide entity data to the web-based applications. In some embodiments, web service 402 receives raw data samples and/or raw timeseries data including device information from a web-based data collector, or a web-based security service to identify authorized entities and to exchange secured messages. For example, if data collector 312 is a web-based application, web service 402 can receive the raw data samples and/or timeseries data including a device attribute indicating a type of device (e.g., IoT device) from which the data samples and/or timeseries data are received from data collector 312. In some embodiments, web service 402 may message security service 322 to request authorization information and/or permission information of a particular entity or device. In some embodiments, the entity service 326 processes and transforms the collected data to generate the entity data.
The registration service 404 can perform registration of devices and entities. For example, registration service 404 can communicate with IoT devices 228 and client devices 248 (e.g., via web service 402) to register each IoT device with Cloud IoT platform services 320. In some embodiments, registration service 404 registers a particular IoT device 228 with a specific user and/or a specific set of permissions and/or entitlements. For example, a user may register a device key and/or a device ID associated with the IoT device 228 via a web portal (e.g., web service 402). In some embodiments, the device ID and the device key may be unique to the IoT device 228. The device ID may be a unique number associated with the device such as a unique alphanumeric string, a serial number of IoT device 228, and/or any other static identifier. In various embodiments, IoT device 228 is provisioned by a manufacturer and/or any other entity. In various embodiments, the device key and/or device ID are saved to IoT device 228 based on whether IoT device 228 includes a trusted platform module (TPM). If the IoT device 228 includes a TPM, the IoT device 228 may store the device key and/or device ID according to the protocols of the TPM. If the IoT device 228 does not include a TPM, the IoT device 228 may store the device key and/or device ID in a file and/or file field which may be stored in a secure storage location. Further, in some embodiments, the device ID may be stored with BIOS software of the IoT device 228. For example, a serial number of BIOS software may become and/or may be updated with the device ID.
In various embodiments, the device key and/or the device ID are uploaded to registration service 404 (e.g., an IoT hub such as AZURE® IoT Hub). In some embodiments, registration service 404 is configured to store the device key and the device ID in secure permanent storage and/or may be stored by security service 322 (e.g., by a security API). In some embodiments, a manufacturer and/or any other individual may register the device key and the device ID with registration service 404 (e.g., via web service 402). In various embodiments, the device key and the device ID are linked to a particular profile associated with the IoT device 228 and/or a particular user profile (e.g., a particular user). In this regard, a device (e.g., IoT device 228) can be associated with a particular user. In various embodiments, the device key and the device ID make up the profile for IoT device 228. The profile may be registered as a device that has been manufactured and/or provisioned but has not yet been purchased by an end user.
In various embodiments, registration service 404 adds and/or updates a device in an IoT hub device registry. In various embodiments, registration service 404 may determine if the device is already registered, can set various authentication values (e.g., device ID, device key), and can update the IoT hub device registry. In a similar manner, registration service 404 can update a document database with the various device registration information.
In some embodiments, registration service 404 can be configured to create a virtual representation (e.g., “digital twins” or “shadow records”) of each IoT device in an IoT environment within Cloud IoT platform services 320. In some embodiments, the virtual device representations are smart entities that include attributes defining or characterizing the corresponding physical IoT devices and are associated to the corresponding physical IoT devices via relational objects defining the relationship of the IoT device and the smart entity representation thereof. In some embodiments, the virtual device representations maintain shadow copies of the IoT devices with versioning information so that Cloud entity service 326 can store not only the most recent update of an attribute (e.g., a dynamic attribute) associated with the IoT device, but records of previous states of the attributes (e.g., dynamic attributes) and/or entities. For example, the shadow record may be created as a type of data entity that is related to a linked data entity corresponding to the dynamic attribute of the object entity (e.g., IoT device). For example, the shadow entity may be associated with the linked data entity via a relational object (e.g., isLinked, hasStorage, hasOperation, and the like). In this case, the shadow entity may be used to determine additional analytics for the data point of the dynamic attribute. For example, the shadow entity may be used to determine an average value, and expected value, or an abnormal value of the data point from the dynamic attribute.
Management service 406 may create, modify, or update various attributes, data entities, and/or relational objects of the devices managed by Cloud IoT platform services 326 for each entity rather than per class or type of entity. This allows for separate processing/analytics for each individual entity rather than only to a class or type of entity. Some attributes (or data entities) may correspond to, for example, the most recent value of a data point provided to Cloud IoT platform services 326 via the raw data samples and/or timeseries data. For example, the “Daily Number of Steps” dynamic attribute of the “Activity Tracker” object entity 502 in the example discussed above may be the most recent value of a number of steps data point provided by the Activity Tracker device. Management service 406 can use the relational objects of the entity data for Activity Tracker to determine where to update the data of the attribute.
For example, Management service 406 may determine that a data entity (e.g., AI 201-01) is linked to the “Daily Number of Steps” dynamic attribute of Activity Tracker via an isLinked relational object. In this case, Management service 406 may automatically update the attribute data in the linked data entity. Further, if a linked data entity does not exist, Management service 406 can create a data entity (e.g., AI 201-01) and an instance of the isLinked relational object 524 to store and link the “Daily Number of Steps” dynamic attribute of Activity Tracker therein. Accordingly, processing/analytics for activity tracker 502 may be automated. As another example, a “most recent view” attribute (or linked data entity) of a webpage object entity may indicate the most recent time at which the webpage was viewed. Management service 406 can use the entity data from a related click tracking system object entity or web server object entity to determine when the most recent view occurred and can automatically update the “most recent view” attribute (or linked data entity) of the webpage entity accordingly.
Other data entities and/or attributes may be created and/or updated as a result of an analytic, transformation, calculation, or other processing operation based on the raw data and/or entity data. For example, Management service 406 can use the relational objects in entity data to identify a related access control device (e.g., a card reader, a keypad, etc.) at the entrance/exit of a building object entity. Management service 406 can use raw data received from the identified access control device to track the number of occupants entering and exiting the building object entity (e.g., via related card entities used by the occupants to enter and exit the building). Management service 406 can update a “number of occupants” attribute (or corresponding data entity) of the building object entity each time a person enters or exits the building using a related card object entity, such that the “number of occupants” attribute (or data entity) reflects the current number of occupants within the building (or related building object entity). As another example, a “total revenue” attribute associated with a product line object entity may be the summation of all the revenue generated from related point of sales entities. Management service 406 can use the raw data received from the related point of sales entities to determine when a sale of the product occurs, and can identify the amount of revenue generated by the sales. Management service 406 can then update the “total revenue” attribute (or related data entity) of the product line object entity by adding the most recent sales revenue from each of the related point of sales entities to the previous value of the attribute.
In some embodiments, management service 406 uses entity data and/or raw data from multiple different data sources to update the attributes (or corresponding data entities) of various object entities. For example, an object entity representing 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. Management service 406 can use relational objects of the person object entity to identify a related card device and/or a related card reader from a related building object entity (e.g., the building in which the person works) to determine the physical location of the person at any given time. Management service 406 can use weather data from a weather service in the region in which the building object entity is located to determine whether any severe weather is approaching the person's location. Similarly, management service 406 can use building data from related building entities of the building object entity to determine whether the building in which the person is located is experiencing any emergency conditions (e.g., fire, building lockdown, etc.) or environmental hazards (e.g., detected air contaminants, pollutants, extreme temperatures, etc.) that could increase the person's level of risk. Management service 406 can use these and other types of data as inputs to a risk function that calculates the value of the person object entity's “risk” attribute and can update the person object entity (or related device entity of the person) accordingly.
In some embodiments, management service 406 can be configured to synchronize configuration settings, parameters, and other device-specific information between the entities and Cloud IoT platform services 320. In some embodiments, the synchronization occurs asynchronously. Management service 406 can be configured to manage device properties dynamically. The device properties, configuration settings, parameters, and other device-specific information can be synchronized between the smart entities created by and stored within Cloud IoT platform services 320.
In some embodiments, management service 406 is configured to manage a manifest for each of the IoT devices. The manifest may include a set of relationships between the IoT devices and various entities. Further, the manifest may indicate a set of entitlements for the IoT devices and/or entitlements of the various entities and/or other entities. The set of entitlements may allow an IoT device and/or a user of the device to perform certain actions within the IoT environment (e.g., control, configure, monitor, and/or the like).
Still referring to
In some embodiments, transformation service 408 can provide entity matching, cleansing, and correlation so that a unified cleansed view of the entity data including the entity related information (e.g., relational objects) can be provided. Transformation service 408 can support semantic and syntactic relationship description in the form of standardized relational objects between the various entities. This may simplify machine learning because the relational objects themselves provide all the relationship description between the other entities. Accordingly, the rich set of pre-built entity models and standardized relational objects may provide for rapid application development and data analytics.
For example,
Referring again to
Referring to
Accordingly, in the example of
For example,
Configuration of Exemplary Embodiments
The construction and arrangement of the systems and methods as shown in the various exemplary embodiments are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements can be reversed or otherwise varied and the nature or number of discrete elements or positions can be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps can be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes, and omissions can be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosure.
The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure can be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.
Although the figures show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps can be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps.
The term “client or “server” include all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus may include special purpose logic circuitry, e.g., a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). The apparatus may also include, in addition to hardware, code that creates an execution environment for the computer program in question (e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them). The apparatus and execution environment may realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
The systems and methods of the present disclosure may be completed by any computer program. A computer program (also known as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be stored in a portion 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 dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification may be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows may also be performed by, and apparatus may also be implemented as, special purpose logic circuitry (e.g., an FPGA or an ASIC).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data (e.g., magnetic, magneto-optical disks, or optical disks). However, a computer need not have such devices. Moreover, a computer may be embedded in another device (e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), etc.). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks). The processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.
In various implementations, the steps and operations described herein may be performed on one processor or in a combination of two or more processors. For example, in some implementations, the various operations could be performed in a central server or set of central servers configured to receive data from one or more devices (e.g., edge computing devices/controllers) and perform the operations. In some implementations, the operations may be performed by one or more local controllers or computing devices (e.g., edge devices), such as controllers dedicated to and/or located within a particular building or portion of a building. In some implementations, the operations may be performed by a combination of one or more central or offsite computing devices/servers and one or more local controllers/computing devices. All such implementations are contemplated within the scope of the present disclosure. Further, unless otherwise indicated, when the present disclosure refers to one or more computer-readable storage media and/or one or more controllers, such computer-readable storage media and/or one or more controllers may be implemented as one or more central servers, one or more local controllers or computing devices (e.g., edge devices), any combination thereof, or any other combination of storage media and/or controllers regardless of the location of such devices.
To provide for interaction with a user, implementations of the subject matter described in this specification may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube), LCD (liquid crystal display), OLED (organic light emitting diode), TFT (thin-film transistor), or other flexible configuration, or any other monitor for displaying information to the user and a keyboard, a pointing device, e.g., a mouse, trackball, etc., or a touch screen, touch pad, etc.) by which the user may provide input to the computer. Other kinds of devices may be used to provide for interaction with a user as well; for example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user may be received in any form, including acoustic, speech, or tactile input. In addition, a computer may interact with a user by sending documents to and receiving documents from a device that is 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.
Implementations of the subject matter described in this disclosure may be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer) having a graphical user interface or a web browser through which a user may interact with an implementation of the subject matter described in this disclosure, or any combination of one or more such back end, middleware, or front end components. The components of the system may be interconnected by any 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).
The present disclosure may be embodied in various different forms, and should not be construed as being limited to only the illustrated embodiments 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 necessary to those having ordinary skill in the art for a complete understanding of the aspects and features of the present disclosure may not be described. Unless otherwise noted, like reference numerals denote like elements throughout the attached drawings and the written description, and thus, descriptions thereof may not be repeated. Further, features or aspects within each example embodiment should typically be considered as available for other similar features or aspects in other example embodiments.
It will be understood that, although the terms “first,” “second,” “third,” etc., may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are used to distinguish one element, component, region, layer or section from another element, component, region, layer or section. Thus, a first element, component, region, layer or section described below could be termed a second element, component, region, layer or section, without departing from the spirit and scope of the present disclosure.
The terminology used herein is for the purpose of describing particular embodiments and is not intended to be limiting of the present disclosure. As used herein, the singular forms “a” and “an” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and “including,” “has,” “have,” and “having,” when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and/or components, but do 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 preceding a list of elements, modify the entire list of elements and do not modify the individual elements of the list.
As used herein, the term “substantially,” “about,” and similar terms are used as terms of approximation and not as terms of degree, and are intended to account for the inherent variations in measured or calculated values that would be recognized by those of ordinary skill in the art. Further, the use of “may” when describing embodiments of the present disclosure refers to “one or more embodiments of the present disclosure.” As used herein, the terms “use,” “using,” and “used” may be considered synonymous with the terms “utilize,” “utilizing,” and “utilized,” respectively. Also, the term “exemplary” is intended to refer to an example or illustration.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
This application claims the benefit of and priority to U.S. Provisional Patent Application No. 62/564,247 filed Sep. 27, 2017, U.S. Provisional Patent Application No. 62/588,179 filed Nov. 17, 2017, U.S. Provisional Patent Application No. 62/588,190 filed Nov. 17, 2017, U.S. Provisional Patent Application No. 62/588,114 filed Nov. 17, 2017, and U.S. Provisional Patent Application No. 62/611,962 filed Dec. 29, 2017. The entire disclosure of each of these patent applications is incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
5301109 | Landauer et al. | Apr 1994 | A |
5446677 | Jensen et al. | Aug 1995 | A |
5581478 | Cruse et al. | Dec 1996 | A |
5812962 | Kovac | Sep 1998 | A |
5960381 | Singers et al. | Sep 1999 | A |
5973662 | Singers et al. | Oct 1999 | A |
6014612 | Larson et al. | Jan 2000 | A |
6031547 | Kennedy | Feb 2000 | A |
6134511 | Subbarao | Oct 2000 | A |
6157943 | Meyer | Dec 2000 | A |
6285966 | Brown et al. | Sep 2001 | B1 |
6363422 | Hunter et al. | Mar 2002 | B1 |
6385510 | Hoog et al. | May 2002 | B1 |
6389331 | Jensen et al. | May 2002 | B1 |
6401027 | Xu et al. | Jun 2002 | B1 |
6437691 | Sandelman et al. | Aug 2002 | B1 |
6477518 | Li et al. | Nov 2002 | B1 |
6487457 | Hull et al. | Nov 2002 | B1 |
6493755 | Hansen et al. | Dec 2002 | B1 |
6577323 | Jamieson et al. | Jun 2003 | B1 |
6626366 | Kayahara et al. | Sep 2003 | B2 |
6646660 | Patty | Nov 2003 | B1 |
6704016 | Oliver et al. | Mar 2004 | B1 |
6732540 | Sugihara et al. | May 2004 | B2 |
6764019 | Kayahara et al. | Jul 2004 | B1 |
6782385 | Natsumeda et al. | Aug 2004 | B2 |
6813532 | Eryurek et al. | Nov 2004 | B2 |
6816811 | Seem | Nov 2004 | B2 |
6823680 | Jayanth | Nov 2004 | B2 |
6826454 | Sulfstede | Nov 2004 | B2 |
6865511 | Frerichs et al. | Mar 2005 | B2 |
6925338 | Eryurek et al. | Aug 2005 | B2 |
6986138 | Sakaguchi et al. | Jan 2006 | B1 |
7031880 | Seem et al. | Apr 2006 | B1 |
7401057 | Eder | Jul 2008 | B2 |
7552467 | Lindsay | Jun 2009 | B2 |
7627544 | Chkodrov et al. | Dec 2009 | B2 |
7657540 | Bayliss | Feb 2010 | B1 |
7818249 | Lovejoy et al. | Oct 2010 | B2 |
7889051 | Billig et al. | Feb 2011 | B1 |
7917570 | Ishii | Mar 2011 | B2 |
7996488 | Casabella et al. | Aug 2011 | B1 |
8078330 | Brickfield et al. | Dec 2011 | B2 |
8104044 | Scofield et al. | Jan 2012 | B1 |
8229470 | Ranjan et al. | Jul 2012 | B1 |
8401991 | Wu et al. | Mar 2013 | B2 |
8495745 | Schrecker et al. | Jul 2013 | B1 |
8503330 | Choong et al. | Aug 2013 | B1 |
8516016 | Park et al. | Aug 2013 | B2 |
8532808 | Drees et al. | Sep 2013 | B2 |
8532839 | Drees et al. | Sep 2013 | B2 |
8600556 | Nesler et al. | Dec 2013 | B2 |
8635182 | Mackay | Jan 2014 | B2 |
8682921 | Park et al. | Mar 2014 | B2 |
8731724 | Drees et al. | May 2014 | B2 |
8737334 | Ahn et al. | May 2014 | B2 |
8738334 | Jiang et al. | May 2014 | B2 |
8751487 | Byrne et al. | Jun 2014 | B2 |
8788097 | Drees et al. | Jul 2014 | B2 |
8805995 | Oliver | Aug 2014 | B1 |
8843238 | Wenzel et al. | Sep 2014 | B2 |
8874071 | Sherman et al. | Oct 2014 | B2 |
8941465 | Pineau et al. | Jan 2015 | B2 |
8990127 | Taylor | Mar 2015 | B2 |
9070113 | Shafiee et al. | Jun 2015 | B2 |
9116978 | Park et al. | Aug 2015 | B2 |
9185095 | Moritz et al. | Nov 2015 | B1 |
9189527 | Park et al. | Nov 2015 | B2 |
9196009 | Drees et al. | Nov 2015 | B2 |
9229966 | Aymeloglu et al. | Jan 2016 | B2 |
9286582 | Drees et al. | Mar 2016 | B2 |
9311807 | Schultz et al. | Apr 2016 | B2 |
9344751 | Ream et al. | May 2016 | B1 |
9354968 | Wenzel et al. | May 2016 | B2 |
9507686 | Horn et al. | Nov 2016 | B2 |
9524594 | Ouyang et al. | Dec 2016 | B2 |
9558196 | Johnston et al. | Jan 2017 | B2 |
9652813 | Gifford et al. | May 2017 | B2 |
9658607 | Coogan et al. | May 2017 | B2 |
9753455 | Drees | Sep 2017 | B2 |
9800648 | Agarwal et al. | Oct 2017 | B2 |
9811249 | Chen et al. | Nov 2017 | B2 |
9817383 | Sinha et al. | Nov 2017 | B1 |
9838844 | Emeis et al. | Dec 2017 | B2 |
9886478 | Mukherjee | Feb 2018 | B2 |
9948359 | Horton | Apr 2018 | B2 |
10015069 | Blank | Jul 2018 | B1 |
10055114 | Shah et al. | Aug 2018 | B2 |
10055206 | Park et al. | Aug 2018 | B2 |
10116461 | Fairweather et al. | Oct 2018 | B2 |
10169454 | Ait-Mokhtar et al. | Jan 2019 | B2 |
10170123 | Orr et al. | Jan 2019 | B2 |
10171297 | Stewart | Jan 2019 | B2 |
10171586 | Shaashua et al. | Jan 2019 | B2 |
10187258 | Nagesh et al. | Jan 2019 | B2 |
10389742 | Devi Reddy et al. | Aug 2019 | B2 |
10514963 | Shrivastava et al. | Dec 2019 | B2 |
10515098 | Park et al. | Dec 2019 | B2 |
10534326 | Sridharan et al. | Jan 2020 | B2 |
10536295 | Fairweather et al. | Jan 2020 | B2 |
10564993 | Deutsch et al. | Feb 2020 | B2 |
10630706 | Devi Reddy et al. | Apr 2020 | B2 |
10705492 | Harvey | Jul 2020 | B2 |
10708078 | Harvey | Jul 2020 | B2 |
10760815 | Janakiraman et al. | Sep 2020 | B2 |
10762475 | Song et al. | Sep 2020 | B2 |
10798175 | Knight et al. | Oct 2020 | B1 |
10824120 | Ahmed | Nov 2020 | B2 |
10845771 | Harvey | Nov 2020 | B2 |
10854194 | Park et al. | Dec 2020 | B2 |
10862928 | Badawy et al. | Dec 2020 | B1 |
10921760 | Harvey | Feb 2021 | B2 |
10921972 | Park et al. | Feb 2021 | B2 |
10951713 | Knight et al. | Mar 2021 | B2 |
10969133 | Harvey | Apr 2021 | B2 |
10986121 | Stockdale et al. | Apr 2021 | B2 |
11016998 | Park et al. | May 2021 | B2 |
11024292 | Park et al. | Jun 2021 | B2 |
11038709 | Park et al. | Jun 2021 | B2 |
11041650 | Li et al. | Jun 2021 | B2 |
11054796 | Holaso | Jul 2021 | B2 |
11070390 | Park et al. | Jul 2021 | B2 |
11073976 | Park et al. | Jul 2021 | B2 |
11108587 | Park et al. | Aug 2021 | B2 |
11113295 | Park et al. | Sep 2021 | B2 |
11229138 | Harvey et al. | Jan 2022 | B1 |
11275348 | Park et al. | Mar 2022 | B2 |
11314726 | Park et al. | Apr 2022 | B2 |
11314788 | Park et al. | Apr 2022 | B2 |
20020010562 | Schleiss et al. | Jan 2002 | A1 |
20020016639 | Smith et al. | Feb 2002 | A1 |
20020059229 | Natsumeda et al. | May 2002 | A1 |
20020123864 | Eryurek et al. | Sep 2002 | A1 |
20020147506 | Eryurek et al. | Oct 2002 | A1 |
20020177909 | Fu et al. | Nov 2002 | A1 |
20030005486 | Ridolfo et al. | Jan 2003 | A1 |
20030014130 | Grumelart | Jan 2003 | A1 |
20030073432 | Meade, II | Apr 2003 | A1 |
20030158704 | Triginai et al. | Aug 2003 | A1 |
20030171851 | Brickfield et al. | Sep 2003 | A1 |
20030200059 | Ignatowski | Oct 2003 | A1 |
20040068390 | Saunders | Apr 2004 | A1 |
20040128314 | Katibah et al. | Jul 2004 | A1 |
20040133314 | Ehlers et al. | Jul 2004 | A1 |
20040199360 | Friman et al. | Oct 2004 | A1 |
20050055308 | Meyer et al. | Mar 2005 | A1 |
20050108262 | Fawcett et al. | May 2005 | A1 |
20050154494 | Ahmed | Jul 2005 | A1 |
20050278703 | Lo et al. | Dec 2005 | A1 |
20050283337 | Sayal | Dec 2005 | A1 |
20050289467 | Imhof et al. | Dec 2005 | A1 |
20060095521 | Patinkin | May 2006 | A1 |
20060140207 | Eschbach et al. | Jun 2006 | A1 |
20060184479 | Levine | Aug 2006 | A1 |
20060200476 | Gottumukkala et al. | Sep 2006 | A1 |
20060265751 | Cosquer et al. | Nov 2006 | A1 |
20060271589 | Horowitz et al. | Nov 2006 | A1 |
20070028179 | Levin et al. | Feb 2007 | A1 |
20070203693 | Estes | Aug 2007 | A1 |
20070261062 | Bansal et al. | Nov 2007 | A1 |
20070273497 | Kuroda et al. | Nov 2007 | A1 |
20070273610 | Baillot | Nov 2007 | A1 |
20080034425 | Overcash et al. | Feb 2008 | A1 |
20080094230 | Mock et al. | Apr 2008 | A1 |
20080097816 | Freire et al. | Apr 2008 | A1 |
20080186160 | Kim et al. | Aug 2008 | A1 |
20080249756 | Chaisuparasmikul | Oct 2008 | A1 |
20080252723 | Park | Oct 2008 | A1 |
20080281472 | Podgorny et al. | Nov 2008 | A1 |
20090195349 | Frader-Thompson et al. | Aug 2009 | A1 |
20100045439 | Tak et al. | Feb 2010 | A1 |
20100058248 | Park | Mar 2010 | A1 |
20100131533 | Ortiz | May 2010 | A1 |
20100274366 | Fata et al. | Oct 2010 | A1 |
20100281387 | Holland et al. | Nov 2010 | A1 |
20100286937 | Hedley et al. | Nov 2010 | A1 |
20100324962 | Nesler et al. | Dec 2010 | A1 |
20110015802 | Imes | Jan 2011 | A1 |
20110047418 | Drees et al. | Feb 2011 | A1 |
20110061015 | Drees et al. | Mar 2011 | A1 |
20110071685 | Huneycutt et al. | Mar 2011 | A1 |
20110077950 | Hughston | Mar 2011 | A1 |
20110087650 | Mackay et al. | Apr 2011 | A1 |
20110087988 | Ray et al. | Apr 2011 | A1 |
20110088000 | Mackay | Apr 2011 | A1 |
20110125737 | Pothering et al. | May 2011 | A1 |
20110137853 | Mackay | Jun 2011 | A1 |
20110153603 | Adiba et al. | Jun 2011 | A1 |
20110154363 | Karmarkar | Jun 2011 | A1 |
20110157357 | Weisensale et al. | Jun 2011 | A1 |
20110178977 | Drees | Jul 2011 | A1 |
20110191343 | Heaton et al. | Aug 2011 | A1 |
20110205022 | Cavallaro et al. | Aug 2011 | A1 |
20110218777 | Chen et al. | Sep 2011 | A1 |
20110264725 | Haeberle et al. | Oct 2011 | A1 |
20120011126 | Park et al. | Jan 2012 | A1 |
20120011141 | Park et al. | Jan 2012 | A1 |
20120022698 | Mackay | Jan 2012 | A1 |
20120062577 | Nixon | Mar 2012 | A1 |
20120064923 | Imes et al. | Mar 2012 | A1 |
20120072480 | Hays et al. | Mar 2012 | A1 |
20120083930 | Ilic et al. | Apr 2012 | A1 |
20120100825 | Sherman et al. | Apr 2012 | A1 |
20120101637 | Imes et al. | Apr 2012 | A1 |
20120135759 | Imes et al. | May 2012 | A1 |
20120136485 | Weber et al. | May 2012 | A1 |
20120158633 | Eder | Jun 2012 | A1 |
20120259583 | Noboa et al. | Oct 2012 | A1 |
20120272228 | Marndi et al. | Oct 2012 | A1 |
20120278051 | Jiang et al. | Nov 2012 | A1 |
20130007063 | Kalra et al. | Jan 2013 | A1 |
20130038430 | Blower et al. | Feb 2013 | A1 |
20130038707 | Cunningham et al. | Feb 2013 | A1 |
20130060820 | Bulusu et al. | Mar 2013 | A1 |
20130085719 | Brun et al. | Apr 2013 | A1 |
20130086497 | Ambuhl et al. | Apr 2013 | A1 |
20130097706 | Titonis et al. | Apr 2013 | A1 |
20130103221 | Raman et al. | Apr 2013 | A1 |
20130167035 | Imes et al. | Jun 2013 | A1 |
20130170710 | Kuoch et al. | Jul 2013 | A1 |
20130204836 | Choi et al. | Aug 2013 | A1 |
20130246916 | Reimann et al. | Sep 2013 | A1 |
20130247205 | Schrecker et al. | Sep 2013 | A1 |
20130262035 | Mills | Oct 2013 | A1 |
20130268128 | Casilli et al. | Oct 2013 | A1 |
20130275174 | Bennett et al. | Oct 2013 | A1 |
20130275908 | Reichard | Oct 2013 | A1 |
20130297050 | Reichard et al. | Nov 2013 | A1 |
20130298244 | Kumar et al. | Nov 2013 | A1 |
20130331995 | Rosen | Dec 2013 | A1 |
20130338970 | Reghetti | Dec 2013 | A1 |
20140032506 | Hoey et al. | Jan 2014 | A1 |
20140059483 | Mairs et al. | Feb 2014 | A1 |
20140081652 | Klindworth | Mar 2014 | A1 |
20140135952 | Maehara | May 2014 | A1 |
20140152651 | Chen et al. | Jun 2014 | A1 |
20140172184 | Schmidt et al. | Jun 2014 | A1 |
20140188451 | Asahara et al. | Jul 2014 | A1 |
20140189861 | Gupta et al. | Jul 2014 | A1 |
20140205155 | Chung | Jul 2014 | A1 |
20140207282 | Angle | Jul 2014 | A1 |
20140258052 | Khuti et al. | Sep 2014 | A1 |
20140269614 | Maguire et al. | Sep 2014 | A1 |
20140277765 | Karimi et al. | Sep 2014 | A1 |
20140278461 | Artz | Sep 2014 | A1 |
20140327555 | Sager et al. | Nov 2014 | A1 |
20150019174 | Kiff et al. | Jan 2015 | A1 |
20150042240 | Aggarwal et al. | Feb 2015 | A1 |
20150105917 | Sasaki et al. | Apr 2015 | A1 |
20150112763 | Goldschneider | Apr 2015 | A1 |
20150145468 | Ma et al. | May 2015 | A1 |
20150156031 | Fadell et al. | Jun 2015 | A1 |
20150168931 | Jin | Jun 2015 | A1 |
20150172300 | Cochenour | Jun 2015 | A1 |
20150178421 | Borrelli et al. | Jun 2015 | A1 |
20150185261 | Frader-Thompson et al. | Jul 2015 | A1 |
20150186777 | Lecue et al. | Jul 2015 | A1 |
20150202962 | Habashima et al. | Jul 2015 | A1 |
20150204563 | Imes et al. | Jul 2015 | A1 |
20150235267 | Steube et al. | Aug 2015 | A1 |
20150241895 | Lu et al. | Aug 2015 | A1 |
20150244730 | Vu et al. | Aug 2015 | A1 |
20150244732 | Golshan et al. | Aug 2015 | A1 |
20150261863 | Dey et al. | Sep 2015 | A1 |
20150263900 | Polyakov et al. | Sep 2015 | A1 |
20150286969 | Warner et al. | Oct 2015 | A1 |
20150295796 | Hsiao et al. | Oct 2015 | A1 |
20150304193 | Ishii et al. | Oct 2015 | A1 |
20150316918 | Schleiss et al. | Nov 2015 | A1 |
20150324422 | Elder | Nov 2015 | A1 |
20150341212 | Hsiao et al. | Nov 2015 | A1 |
20150348417 | Ignaczak et al. | Dec 2015 | A1 |
20150356419 | Shircliff et al. | Dec 2015 | A1 |
20150379080 | Jochimski | Dec 2015 | A1 |
20160011753 | McFarland et al. | Jan 2016 | A1 |
20160033946 | Zhu et al. | Feb 2016 | A1 |
20160035246 | Curtis | Feb 2016 | A1 |
20160065601 | Gong et al. | Mar 2016 | A1 |
20160070736 | Swan et al. | Mar 2016 | A1 |
20160078229 | Gong et al. | Mar 2016 | A1 |
20160090839 | Stolarczyk | Mar 2016 | A1 |
20160109867 | Wada et al. | Apr 2016 | A1 |
20160119434 | Dong | Apr 2016 | A1 |
20160127712 | Alfredsson et al. | May 2016 | A1 |
20160139752 | Shim et al. | May 2016 | A1 |
20160163186 | Davidson et al. | Jun 2016 | A1 |
20160170390 | Xie et al. | Jun 2016 | A1 |
20160171862 | Das et al. | Jun 2016 | A1 |
20160173816 | Huenerfauth et al. | Jun 2016 | A1 |
20160179315 | Sarao et al. | Jun 2016 | A1 |
20160179342 | Sarao et al. | Jun 2016 | A1 |
20160179990 | Sarao et al. | Jun 2016 | A1 |
20160195856 | Spero | Jul 2016 | A1 |
20160203036 | Mezic et al. | Jul 2016 | A1 |
20160212165 | Singla et al. | Jul 2016 | A1 |
20160239660 | Azvine et al. | Aug 2016 | A1 |
20160239756 | Aggour et al. | Aug 2016 | A1 |
20160247129 | Song et al. | Aug 2016 | A1 |
20160260063 | Harris et al. | Sep 2016 | A1 |
20160277374 | Reid | Sep 2016 | A1 |
20160313751 | Risbeck et al. | Oct 2016 | A1 |
20160313752 | Przybylski | Oct 2016 | A1 |
20160313902 | Hill et al. | Oct 2016 | A1 |
20160342906 | Shaashua et al. | Nov 2016 | A1 |
20160350364 | Anicic et al. | Dec 2016 | A1 |
20160357521 | Zhang et al. | Dec 2016 | A1 |
20160357828 | Tobin et al. | Dec 2016 | A1 |
20160358432 | Branscomb et al. | Dec 2016 | A1 |
20160363336 | Roth et al. | Dec 2016 | A1 |
20160370258 | Perez | Dec 2016 | A1 |
20160378306 | Kresl et al. | Dec 2016 | A1 |
20160379326 | Chan-Gove et al. | Dec 2016 | A1 |
20170006135 | Siebel | Jan 2017 | A1 |
20170011318 | Vigano et al. | Jan 2017 | A1 |
20170017221 | Lamparter et al. | Jan 2017 | A1 |
20170039255 | Raj et al. | Feb 2017 | A1 |
20170052536 | Warner et al. | Feb 2017 | A1 |
20170053441 | Nadumane et al. | Feb 2017 | A1 |
20170054594 | Decenzo | Feb 2017 | A1 |
20170063894 | Muddu et al. | Mar 2017 | A1 |
20170068409 | Nair | Mar 2017 | A1 |
20170070775 | Taxier et al. | Mar 2017 | A1 |
20170075984 | Deshpande et al. | Mar 2017 | A1 |
20170084168 | Janchookiat | Mar 2017 | A1 |
20170090437 | Veeramani et al. | Mar 2017 | A1 |
20170091277 | Zoch | Mar 2017 | A1 |
20170093700 | Gilley et al. | Mar 2017 | A1 |
20170093915 | Ellis et al. | Mar 2017 | A1 |
20170098086 | Hoernecke et al. | Apr 2017 | A1 |
20170103327 | Penilla et al. | Apr 2017 | A1 |
20170103403 | Chu et al. | Apr 2017 | A1 |
20170118236 | Devi Reddy et al. | Apr 2017 | A1 |
20170118237 | Devi Reddy et al. | Apr 2017 | A1 |
20170118240 | Devi Reddy et al. | Apr 2017 | A1 |
20170123389 | Baez | May 2017 | A1 |
20170134415 | Muddu et al. | May 2017 | A1 |
20170177715 | Chang et al. | Jun 2017 | A1 |
20170180147 | Brandman et al. | Jun 2017 | A1 |
20170188216 | Koskas et al. | Jun 2017 | A1 |
20170205099 | Sanghamitra | Jul 2017 | A1 |
20170212482 | Boettcher et al. | Jul 2017 | A1 |
20170212668 | Shah et al. | Jul 2017 | A1 |
20170220641 | Chi | Aug 2017 | A1 |
20170230930 | Frey | Aug 2017 | A1 |
20170235817 | Deodhar et al. | Aug 2017 | A1 |
20170251182 | Siminoff et al. | Aug 2017 | A1 |
20170270124 | Nagano et al. | Sep 2017 | A1 |
20170277769 | Pasupathy et al. | Sep 2017 | A1 |
20170278003 | Liu | Sep 2017 | A1 |
20170286572 | Hershey et al. | Oct 2017 | A1 |
20170294132 | Colmenares | Oct 2017 | A1 |
20170315522 | Kwon et al. | Nov 2017 | A1 |
20170315697 | Jacobson et al. | Nov 2017 | A1 |
20170322534 | Sinha et al. | Nov 2017 | A1 |
20170323389 | Vavrasek | Nov 2017 | A1 |
20170329289 | Kohn et al. | Nov 2017 | A1 |
20170336770 | Macmillan | Nov 2017 | A1 |
20170345287 | Fuller et al. | Nov 2017 | A1 |
20170351957 | Lecue et al. | Dec 2017 | A1 |
20170357225 | Asp et al. | Dec 2017 | A1 |
20170357490 | Park et al. | Dec 2017 | A1 |
20170357908 | Cabadi et al. | Dec 2017 | A1 |
20180012159 | Kozloski et al. | Jan 2018 | A1 |
20180013579 | Fairweather et al. | Jan 2018 | A1 |
20180024520 | Sinha et al. | Jan 2018 | A1 |
20180039238 | Gaertner et al. | Feb 2018 | A1 |
20180048485 | Pelton et al. | Feb 2018 | A1 |
20180069932 | Tiwari et al. | Mar 2018 | A1 |
20180114140 | Chen et al. | Apr 2018 | A1 |
20180119975 | Park et al. | May 2018 | A1 |
20180137288 | Polyakov | May 2018 | A1 |
20180157930 | Rutschman et al. | Jun 2018 | A1 |
20180162400 | Abdar | Jun 2018 | A1 |
20180176241 | Manadhata et al. | Jun 2018 | A1 |
20180198627 | Mullins | Jul 2018 | A1 |
20180203961 | Aisu et al. | Jul 2018 | A1 |
20180232423 | Park et al. | Aug 2018 | A1 |
20180239322 | Matsuo et al. | Aug 2018 | A1 |
20180239982 | Rutschman et al. | Aug 2018 | A1 |
20180275625 | Park et al. | Sep 2018 | A1 |
20180276962 | Butler et al. | Sep 2018 | A1 |
20180292797 | Lamparter et al. | Oct 2018 | A1 |
20180309818 | Park et al. | Oct 2018 | A1 |
20180336785 | Ghannam et al. | Nov 2018 | A1 |
20180356775 | Harvey | Dec 2018 | A1 |
20180359111 | Harvey | Dec 2018 | A1 |
20180364654 | Locke et al. | Dec 2018 | A1 |
20190003297 | Brannigan et al. | Jan 2019 | A1 |
20190005025 | Malabarba | Jan 2019 | A1 |
20190013023 | Pourmohammad et al. | Jan 2019 | A1 |
20190017719 | Sinha et al. | Jan 2019 | A1 |
20190025771 | Park et al. | Jan 2019 | A1 |
20190037135 | Hedge | Jan 2019 | A1 |
20190042988 | Brown et al. | Feb 2019 | A1 |
20190088106 | Grundstrom | Mar 2019 | A1 |
20190094824 | Xie et al. | Mar 2019 | A1 |
20190096217 | Pourmohammad et al. | Mar 2019 | A1 |
20190102840 | Perl et al. | Apr 2019 | A1 |
20190121801 | Jethwa et al. | Apr 2019 | A1 |
20190138512 | Pourmohammad et al. | May 2019 | A1 |
20190147883 | Mellenthin et al. | May 2019 | A1 |
20190158309 | Park et al. | May 2019 | A1 |
20190163152 | Worrall et al. | May 2019 | A1 |
20190258620 | Itado et al. | Aug 2019 | A1 |
20190268178 | Fairweather et al. | Aug 2019 | A1 |
20190310979 | Masuzaki et al. | Oct 2019 | A1 |
20190361411 | Park et al. | Nov 2019 | A1 |
20190361412 | Park et al. | Nov 2019 | A1 |
20190377306 | Harvey | Dec 2019 | A1 |
20200159173 | Goyal | May 2020 | A1 |
20200159182 | Goyal | May 2020 | A1 |
20200159376 | Goyal | May 2020 | A1 |
20200159723 | Goyal | May 2020 | A1 |
20200226156 | Borra et al. | Jul 2020 | A1 |
20200285203 | Thakur et al. | Sep 2020 | A1 |
20200336328 | Harvey | Oct 2020 | A1 |
20200348632 | Harvey | Nov 2020 | A1 |
20200387576 | Brett et al. | Dec 2020 | A1 |
20200396208 | Brett et al. | Dec 2020 | A1 |
20210042299 | Migliori | Feb 2021 | A1 |
20210043221 | Yelchuru et al. | Feb 2021 | A1 |
20210044957 | Norp | Feb 2021 | A1 |
20210118067 | Muenz et al. | Apr 2021 | A1 |
20210325070 | Endel et al. | Oct 2021 | A1 |
20210342961 | Winter et al. | Nov 2021 | A1 |
20210381711 | Harvey et al. | Dec 2021 | A1 |
20210381712 | Harvey et al. | Dec 2021 | A1 |
20210382445 | Harvey et al. | Dec 2021 | A1 |
20210383041 | Harvey et al. | Dec 2021 | A1 |
20210383042 | Harvey et al. | Dec 2021 | A1 |
20210383200 | Harvey et al. | Dec 2021 | A1 |
20210383219 | Harvey et al. | Dec 2021 | A1 |
20210383235 | Harvey et al. | Dec 2021 | A1 |
20210383236 | Harvey et al. | Dec 2021 | A1 |
20220066402 | Harvey et al. | Mar 2022 | A1 |
20220066405 | Harvey | Mar 2022 | A1 |
20220066432 | Harvey et al. | Mar 2022 | A1 |
20220066434 | Harvey et al. | Mar 2022 | A1 |
20220066528 | Harvey et al. | Mar 2022 | A1 |
20220066722 | Harvey et al. | Mar 2022 | A1 |
20220066754 | Harvey et al. | Mar 2022 | A1 |
20220066761 | Harvey et al. | Mar 2022 | A1 |
20220067226 | Harvey et al. | Mar 2022 | A1 |
20220067227 | Harvey et al. | Mar 2022 | A1 |
20220067230 | Harvey et al. | Mar 2022 | A1 |
20220069863 | Harvey et al. | Mar 2022 | A1 |
20220070293 | Harvey et al. | Mar 2022 | A1 |
20220121965 | Chatterji et al. | Apr 2022 | A1 |
20220138684 | Harvey | May 2022 | A1 |
20220215264 | Harvey et al. | Jul 2022 | A1 |
20220282881 | Sinha et al. | Sep 2022 | A1 |
20230010757 | Preciado | Jan 2023 | A1 |
20230071312 | Preciado et al. | Mar 2023 | A1 |
20230076011 | Preciado et al. | Mar 2023 | A1 |
20230083703 | Meiners | Mar 2023 | A1 |
Number | Date | Country |
---|---|---|
2019226217 | Nov 2020 | AU |
2019226264 | Nov 2020 | AU |
2019351573 | May 2021 | AU |
101415011 | Apr 2009 | CN |
102136099 | Jul 2011 | CN |
102136100 | Jul 2011 | CN |
102650876 | Aug 2012 | CN |
104040583 | Sep 2014 | CN |
104603832 | May 2015 | CN |
104919484 | Sep 2015 | CN |
106204392 | Dec 2016 | CN |
106406806 | Feb 2017 | CN |
106960269 | Jul 2017 | CN |
107147639 | Sep 2017 | CN |
107598928 | Jan 2018 | CN |
2 528 033 | Nov 2012 | EP |
3 268 821 | Jan 2018 | EP |
3 324 306 | May 2018 | EP |
H10-049552 | Feb 1998 | JP |
2003-162573 | Jun 2003 | JP |
2007-018322 | Jan 2007 | JP |
4073946 | Apr 2008 | JP |
2008-107930 | May 2008 | JP |
2013-152618 | Aug 2013 | JP |
2014-044457 | Mar 2014 | JP |
20160102923 | Aug 2016 | KR |
WO-2009020158 | Feb 2009 | WO |
WO-2011100255 | Aug 2011 | WO |
WO-2013050333 | Apr 2013 | WO |
WO-2015106702 | Jul 2015 | WO |
WO-2015145648 | Oct 2015 | WO |
WO-2017035536 | Mar 2017 | WO |
WO-2017192422 | Nov 2017 | WO |
WO-2017194244 | Nov 2017 | WO |
WO-2017205330 | Nov 2017 | WO |
WO-2017213918 | Dec 2017 | WO |
WO-2018132112 | Jul 2018 | WO |
WO-2020061621 | Apr 2020 | WO |
WO-2022042925 | Mar 2022 | WO |
Entry |
---|
C. El Kaed, B. Leida and T. Gray, “Building management insights driven by a multi-system semantic representation approach,” 2016 IEEE 3rd World Forum on Internet of Things (WF-IoT), Reston, VA, USA, 2016, pp. 520-525, doi: 10.1109/WF-IoT.2016.7845433. (Year: 2016). |
International Search Report and Written Opinion on PCT/US2017/052060, dated Oct. 5, 2017, 11 pages. |
International Search Report and Written Opinion on PCT/US2017/052633, dated Oct. 23, 2017, 9 pages. |
International Search Report and Written Opinion on PCT/US2017/052829, dated Nov. 27, 2017, 24 pages. |
International Search Report and Written Opinion on PCT/US2018/024068, dated Jun. 15, 2018, 22 pages. |
International Search Report and Written Opinion on PCT/US2018/052974, dated Dec. 19, 2018, 13 pages. |
International Search Report and Written Opinion on PCT/US2018/052975, dated Jan. 2, 2019, 13 pages. |
International Search Report and Written Opinion on PCT/US2018/052994, dated Jan. 7, 2019, 15 pages. |
Li et al., Event Stream Processing with Out-of-Order Data Arrival, International Conferences on Distributed Computing Systems, 2007, 8 pages. |
Wei Su et al., “Development and Implementation of Software Gateways of Fire Fighting Subsystem Running on EBI,” Control, Automation and Systems Engineering, Jul. 2009. IITA International Conference on, IEEE, pp. 9-12. |
Balaji et al., Brick: Metadata schema for portable smart building applications, dated Sep. 25, 2017, 20 pages. |
Balaji et al., Brick: Towards a Unified Metadata Schema for Buildings, dated Nov. 16-17, 2016, 10 pages. |
Balaji et al., Demo Abstract: Portable Queries Using the Brick Schema for Building Applications, dated Nov. 16-17, 2016, 2 pages. |
Bhattacharya et al., Short Paper: Analyzing Metadata Schemas for Buildings—The Good, The Bad and The Ugly, ACM, Nov. 4-5, 2015, 4 pages. |
Brick: Towards a Unified Metadata Schema For Buildings, dated Nov. 16, 2016, 46 pages. |
Building Blocks for Smart Buildings, BrickSchema.org, Mar. 2019, 17 pages. |
Fierro et al., Beyond a House of Sticks: Formalizing Metadata Tags with Brick, dated Nov. 13-14, 2019, 10 pages. |
Fierro et al., Dataset: An Open Dataset and Collection Tool for BMS Point Labels, dated Nov. 10, 2019, 3 pages. |
Fierro et al., Design and Analysis of a Query Processor for Brick, dated Jan. 2018, 25 pages. |
Fierro et al., Design and Analysis of a Query Processor for Brick, dated Nov. 8-9, 2017, 10 pages. |
Fierro et al., Mortar: An Open Testbed for Portable Building Analytics, dated Nov. 7-8, 2018, 10 pages. |
Fierro et al., Why Brick is a Game Changer for Smart Buildings, Memoori Webinar, 2019, 67 pages. |
Fierro, Writing Portable Building Analytics with the Brick Metadata Schema, UC Berkeley ACM E-Energy, 2019, 39 pages. |
Gao et al., A large-scale evaluation of automated metadata inference approaches on sensors from air handling units, dated May 1, 2018, pp. 14-30. |
Koh et al., Plaster: An Integration, Benchmark, and Development Framework for Metadata Normalization Methods, dated Nov. 7-8, 2018, 10 pages. |
Koh et al., Scrabble: Transferrable Semi-Automated Semantic Metadata Normalization using Intermediate Representation, Nov. 7-8, 2018, 10 pages. |
Koh et al., Who can Access What, and When?, dated Nov. 13-14, 2019, 4 pages. |
Metadata Schema for Buildings, 3 pages, Brickschema.org (Cannot confirm date.). |
Brick: Metadata schema for portable smart building applications, dated Sep. 15, 2018, 3 pages, (Abstract). |
Extended European Search Report issued in EP Application No. 18196948.6 dated Apr. 10, 2019, 9 pages. |
International Search Report and Written Opinion for PCT/US2017/013831, dated Mar. 31, 2017, 14 pages. |
International Search Report and Written Opinion for PCT/US2017/035524, dated Jul. 24, 2017, 14 pages. |
International Search Report and Written Opinion on PCT/US2018/052971, dated Mar. 1, 2019, 19 pages. |
International Search Report and Written Opinion on PCT/US2019/015481, dated May 17, 2019, 78 pages. |
Results of the Partial International Search for PCT/US2018/052971, dated Jan. 3, 2019, 3 pages. |
Priyadarshana et al., “Multi-agent Controlled Building Management System,” International Conference on Innovation in Power and Advanced Computing Technologies (i-PACT2017), 5 pages, Apr. 21, 2017. |
U.S. Appl. No. 17/566,029, Passivelogic, Inc. |
U.S. Appl. No. 17/567,275, Passivelogic, Inc. |
U.S. Appl. No. 17/722,115, Passivelogic, Inc. |
Bhattacharya, A., “Enabling Scalable Smart-Building Analytics,” Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2016-201, Dec. 15, 2016 (121 pages). |
Chinese Office Action on CN Appl. No. 201780003995.9 dated Apr. 8, 2021 (21 pages with English language translation). |
Chinese Office action on CN Appl. No. 201780043400.2 dated Apr. 25, 2021 (15 pages with English language translation). |
Curry, E. et al., “Linking building data in the cloud: Integrating cross-domain building data using linked data.” Advanced Engineering Informatics, 2013, 27 (pp. 206-219). |
Digital Platform Litigation Documents Part 1, includes cover letter, dismissal of case DDE-1-21-cv-01796, IPR2023-00022 (documents filed Jan. 26, 2023-Oct. 7, 2022), and IPR2023-00085 (documents filed Jan. 26, 2023-Oct. 22, 2022) (748 pages total). |
Digital Platform Litigation Documents Part 10, includes DDE-1-21-cv-01796 (documents filed Nov. 1, 2022-Dec. 22, 2021 (1795 pages total). |
Digital Platform Litigation Documents Part 2, includes IPR2023-00085 (documents filed Oct. 20, 2022) (172 pages total). |
Digital Platform Litigation Documents Part 3, includes IPR2023-00085 (documents filed Oct. 20, 2022) and IPR2023-00170 (documents filed Nov. 28, 2022-Nov. 7, 2022) (397 pages total). |
Digital Platform Litigation Documents Part 4, includes IPR2023-00170 (documents filed Nov. 7, 2022) and IPR2023-00217 (documents filed Jan. 18, 2023-Nov. 15, 2022) (434 pages total). |
Digital Platform Litigation Documents Part 5, includes IPR2023-00217 (documents filed Nov. 15, 2022) and IPR2023-00257 (documents filed Jan. 25, 2023-Nov. 23, 2022) (316 pages total). |
Digital Platform Litigation Documents Part 6, includes IPR2023-00257 (documents filed Nov. 23, 2022) and IPR 2023-00346 (documents filed Jan. 3, 2023-Dec. 13, 2022) (295 pages total). |
Digital Platform Litigation Documents Part 7, includes IPR 2023-00346 (documents filed Dec. 13, 2022) and IPR2023-00347 (documents filed Jan. 3, 2023-Dec. 13, 2022) (217 pages total). |
Digital Platform Litigation Documents Part 8, includes IPR2023-00347 (documents filed Dec. 13, 2022), EDTX-2-22-cv-00243 (documents filed Sep. 20, 2022), and DDE-1-21-cv-01796 (documents filed Feb. 3, 2023-Jan. 10, 2023 (480 pages total). |
Digital Platform Litigation Documents Part 9, includes DDE-1-21-cv-01796 (documents filed Jan. 10, 2023-Nov. 1, 2022 (203 pages total). |
El Kaed, C. et al., “Building management insights driven by a multi-system semantic representation approach,” 2016 IEEE 3rd World Forum on Internet of Things (WF-IoT), Dec. 12-14, 2016, (pp. 520-525). |
Ellis, C. et al., “Creating a room connectivity graph of a building from per-room sensor units.” BuildSys '12, Toronto, ON, Canada, Nov. 6, 2012 (7 pages). |
Fierro, G., “Design of an Effective Ontology and Query Processor Enabling Portable Building Applications,” Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2019-106, Jue 27, 2019 (118 pages). |
File History for U.S. Appl. No. 12/776,159, filed May 7, 2010 (722 pages). |
Final Conference Program, ACM BuildSys 2016, Stanford, CA, USA, Nov. 15-17, 2016 (7 pages). |
Harvey, T., “Quantum Part 3: The Tools of Autonomy, How PassiveLogic's Quantum Creator and Autonomy Studio software works,” URL: https://www.automatedbuildings.com/news/jan22/articles/passive/211224010000passive.html, Jan. 2022 (7 pages). |
Harvey, T., “Quantum: The Digital Twin Standard for Buildings,” URL: https://www.automatedbuildings.com/news/feb21/articles/passivelogic/210127124501passivelogic.html , Feb. 2021 (6 pages). |
Hu, S. et al., “Building performance optimisation: A hybrid architecture for the integration of contextual information and time-series data,” Automation in Construction, 2016, 70 (pp. 51-61). |
International Search Report and Written Opinion on PCT/US2020/058381, dated Jan. 27, 2021, 30 pages. |
Japanese Office Action on JP Appl. No. 2018-534963 dated May 11, 2021 (16 pages with English language translation). |
Nissin Electric Co., Ltd., “Smart power supply system (SPSS),” Outline of the scale verification plan, Nissin Electric Technical Report, Japan, Apr. 23, 2014, vol. 59, No. 1 (23 pages). |
Passivelogic, “Explorer: Digital Twin Standard for Autonomous Systems. Made interactive.” URL: https://passivelogic.com/software/quantum-explorer/, retrieved from internet Jan. 4, 2023 (13 pages). |
Passivelogic, “Quantum: The Digital Twin Standard for Autonomous Systems, A physics-based ontology for next-generation control and AI.” URL: https://passivelogic.com/software/quantum-standard/, retrieved from internet Jan. 4, 2023 (20 pages). |
Quantum Alliance, “Quantum Explorer Walkthrough,” 2022, (7 pages) (screenshots from video). |
Sinha, Sudhi and Al Huraimel, Khaled, “Reimagining Businesses with AI” John Wiley & Sons, Inc., Hoboken, NJ, USA, First ed. published 2020 (156 pages). |
Sinha, Sudhi R. and Park, Youngchoon, “Building an Effective IoT Ecosystem for Your Business,” Johnson Controls International, Springer International Publishing, 2017 (286 pages). |
Sinha, Sudhi, “Making Big Data Work For Your Business: A guide to effective Big Data analytics,” Impackt Publishing LTD., Birmingham, UK, Oct. 2014 (170 pages). |
The Virtual Nuclear Tourist, “Calvert Cliffs Nuclear Power Plant,” URL: http://www.nucleartourist.com/us/calvert.htm, Jan. 11, 2006 (2 pages). |
University of California at Berkeley, EECS Department, “Enabling Scalable Smart-Building Analytics,” URL: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-201.html, retrieved from internet Feb. 15, 2023 (7 pages). |
Van Hoof, Bert, “Announcing Azure Digital Twins: Create digital replicas of spaces and infrastructure using cloud, AI and IoT,” URL: https://azure.microsoft.com/en-US/blog/announcing-azure-digital-twins-create-digital-replicas-of-spaces-and-infrastructure-using-cloud-ai-and-iot/, Sep. 24, 2018 (11 pages). |
W3C, “SPARQL: Query Language for RDF,” located on The Wayback Machine, URL: https://web.archive.org/web/20l61230061728/http://www.w3.org/TR/rdf-sparql-query/), retrieved from internet Nov. 15, 2022 (89 pages). |
White et al., “Reduce building maintenance costs with AWS IoT TwinMaker Knowledge Graph,” The Internet of Things on AWS—Official Blog, URL: https://aws.amazon.com/blogs/iot/reduce-building-maintenance-costs-with-aws-iot-twinmaker-knowledge-graph/, Nov. 18, 2022 (10 pages). |
Zhou, Q. et al., “Knowledge-infused and Consistent Complex Event Processing over Real-time and Persistent Streams,” Further Generation Computer Systems, 2017, 76 (pp. 391-406). |
Number | Date | Country | |
---|---|---|---|
20190095520 A1 | Mar 2019 | US |
Number | Date | Country | |
---|---|---|---|
62611962 | Dec 2017 | US | |
62588190 | Nov 2017 | US | |
62588179 | Nov 2017 | US | |
62588114 | Nov 2017 | US | |
62564247 | Sep 2017 | US |