0% found this document useful (0 votes)
93 views

Eden EMS Architecture

The document describes the functions and services of an energy management system (EMS) called Eden. The EMS allows users to view property settings and reports, make changes to settings, and access an API. It collects data from PTAC units, interprets the data into different database tables, and uses it to generate savings reports and invoices. The data flows between the Eden website, database tables, and PTAC units via APIs, update files, and a staging table. The system has production, staging, and local development environments hosted on AWS servers.

Uploaded by

Kin Kaw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
93 views

Eden EMS Architecture

The document describes the functions and services of an energy management system (EMS) called Eden. The EMS allows users to view property settings and reports, make changes to settings, and access an API. It collects data from PTAC units, interprets the data into different database tables, and uses it to generate savings reports and invoices. The data flows between the Eden website, database tables, and PTAC units via APIs, update files, and a staging table. The system has production, staging, and local development environments hosted on AWS servers.

Uploaded by

Kin Kaw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Functions and Services

Premium
Weekly Issues Quarterly Savings Subscription
Weekly Savings
Report Report Invoice
Report

User

eden-ems.com website

- Display properties and settings


- Make/schedule changes to settings
- Display (& download) reports:
savings, issues…

Background

- Generate savings
- Generate quarterly savings
- Calculate rolling kwh API for own use and
- Rotate PTAC data 3rd party access
- Premium subscription
payment processing
Data Flow

eden-
ems.com set_config load/refresh

UpdateHistory save
table Update RoomData
table table

send in update file

save
get_config

Controller/PTAC

set config: send changes from website to DB (current code: eden\eden\api\views.py – UpdateViewSet())

get_config: PTAC gets website changes (current code: eden\eden\eden\views.py – get_config())

load/refresh: website loads current data from DB

send in update file: PTAC updates DB with changes from unit (current code: eden\eden\eden\utils\
controller.py - receive_controller_data())
Sending in Update File (Importing)

Start

PTAC sends in update file (CSV)

RoomData
Next file
table

Dump file into DB


Is with stored procedure
m61_data.put Yes import_m61_data PTACData
file?
table
via Staging table

No

Runtime
Throw away Archive in table
AWS
AWS Servers

New PTAC Old PTAC


controller controller

Background Haproxy (old IP)


Tasks
Docker
Logs & search
Container
Django Nginx Apache

Production AWS AWS Staging


AWS Arm-test AWS Arm-elk
Production
(Pre-production)

Git worker Git worker Git worker

Continuous Development/Continuous Integration

(CD/CI)
AWS RDS

Database

git.eden-ems.com

Gitlab Code
Repository

Beside what is described above, there’s also a local development environment. It’s built & works the
same way Production or Staging does, except that it works with a local database with a tiny amount of
data.

Terms/Definitions
PTAC: Packaged Terminal Air Conditioner

12-digit MAC address: address of a controller (example: 00063F057CEB)

16-digit MAC address: address of a PTAC (example: 00063F000004D7AF)

Update table: holds settings that user makes on the web site waiting to be pushed to controller/PTAC.

Staging table: CSV data a PTAC sends in is dumped into this temporary table.

RoomData table: contains interpreted Staging data. For example, an Occupied column in RoomData is
Staging’s Current Status column AND’ed with 1 (i.e., Staging.current_status & 1), a Rented column in
RoomData is Staging’s Current Status AND’ed with 2. RoomData generally is ready-for-display-to-end-
user data .

PTACData table: holds copies of Staging tables, used for deriving & displaying more technical data.

Runtime table: holds only Staging data columns specifically for calculating PTAC energy savings.

Savings table: holds savings per room/per day/per property data

** Notes: specific types of data are stored in different tables in order to cut down search & processing
time when there is a need to display or report data. It’s kind of like preprocessing data, and it’s done
either at data import time, or in other background tasks.

Thermistor: a sensor that senses or holds information about a specific type of temperature. An example
is the IAT thermistor for Indoor Ambient Temperature.

You might also like