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