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

_images/hemapp.jpg

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

Software Flow

Software stack and packages

Download and Deployment of HEMApp

Bugs