The BEMOSS™ UI layer has two components: user interface and user management. BEMOSS™ web UI is a dashboard type interface with visuals and graphs to show current settings of devices in each zone. Authenticated users can also control these devices through an on-site interface. Regarding user management in BEMOSS™, role-based access control is implemented to allow different levels of access to different individuals. For example, building engineers will have full authority to adjust set points and schedules of loads in buildings, while tenants will have limited access to view current status and historical load data, or control selected loads in specific zones. In BEMOSS™, this role-based access control is achieved using access control lists.
Layer 1: User Interface (UI)
Layer 2: Application and Data Management
This layer embeds algorithms to allow monitoring and control of hardware devices interfaced with BEMOSS™. Examples of possible applications include demand response, price-based management, planning and scheduling, behavior pattern analysis, load management, as well as alarm/notifications. Apache Cassandra is selected for storing BEMOSS™ time-series data in a distributed fashion. A relational database management system (PostgreSQL) is used to satisfy the need to store the metadata for identifying users, devices, and process controls.
Layer 3: Operating System and Framework
In this layer, VOLTTRON™, a distributed agent platform developed by Pacific Northwest National Laboratory (PNNL), is chosen as the software platform for BEMOSS™. As shown in the figure below several BEMOSS™ agents have been developed, including a device discovery agent, device agents (e.g., thermostat agents, lighting load agents and plug load agents), and other system agent. All agents communicate over VOLTTRON™ VIP. The entire BEMOSS system is also designed to allow email/SMS notifications through its alarm/notification app.
- is responsible for detecting the presence of devices in a building, querying their model numbers, identifying their APIs and launching a control agent to monitor/control the discovered device. With this approach, there is no need to manually identify each device beforehand using an approach, like bar code or QR code.
- Device agent – includes device agents for thermostat, lighting and plug load. These agents are instantiated to monitor, communicate and control hardware devices after being discovered by the device discovery agent. Once a device agent is initiated, it is assigned particularly to one hardware device.
- Other System agents – Other agents such as the network agent, approval helper agent, applauncher agent and platform monitor agent, are responsible for the functioning of the BEMOSS system by facilitating the packaging, installation, starting, stopping, monitoring and managing the agent execution.
Layer 4: Connectivity Layer
This layer takes care of the communication between the Operating System and Framework layer and all physical hardware devices. To allow BEMOSS to communicate with hardware devices that use different communication technologies, data exchange protocols and have device functionalities (different device APIs), the BEMOSS team created several API interfaces. Each API interface allows BEMOSS agents to communicate with a group of devices based on their unique APIs. Basically, API interfaces provide a translation service for BEMOSS agents so that agents can get readings and send control commands to devices (without knowing their APIs) using simple function calls: getDeviceStatus and setDeviceStatus. The BEMOSS team also develops auto API translator codes. This allows automated generation of APIs for different devices that follow supported protocols.