Internal Documentation for HEM Developers¶
HEM is the hardware/software platform for managing homegrids.
Contents:¶
HEM Architecture¶
For information regarding the HEM hardware and architecture see here
You can also check out the publications for more detailed info. Check this
HEMApp¶
This is the core software which runs them HEM boards. It’s a multi-threaded program written in C and does all the heavy lifting.
Main functions of HEMApp¶
- Energy Metering
- Data and event logging
- Cellular communication capabilities - GSM/GPRS/3G
- Wired/wireless Internet
- Cloud connected
- Enables energy app deployment
- Support for external sensors
- Relay control
- HEM Daemon (monitors and manages operation of different peripherals and services)
Architecture Overview¶

Directory and File Structure¶
The HEMApp repository can be downloaded from GitLab. hemapp
is the main directory. This includes
include
ac.h
cJSON.h
cloudManager.h
commmandParser.h
dc.h
fileManager.h
gsm.h
homeManager.h
home_screen.h
i2cMux.h
ledBar.h
loads_screen.h
lsquared.h
nodeManager.h
relay.h
rtc.h
scheduler.h
settings_screen.h
sslManager.h
timeConverter.h
uart.h
src
ac.c
cJSON.c
cloudManager.c
commmandParser.c
dc.c
fileManager.c
gsm.c
homeManager.c
home_screen.c
i2cMux.c
ledBar.c
loads_screen.c
lsquared.c
nodeManager.c
relay.c
rtc.c
scheduler.c
settings_screen.c
sslManager.c
timeConverter.c
uart.c
supportWare
.gitignore
Xinitscript.sh
activateAgent.sh
config.txt.save
connectwifi.sh
hem_init.service
home.ui
init.sh
lcdinit.sh
loads.ui
monitrc
networkprobe.sh
settings.ui
setup.sh
wlanName.sh
.gitignore
ChangeLog.md
Makefile
README.md
build.sh