EMONCMS_WWW | /var/www/emoncms | location of the core package and of the main modules (admin, dashboards, config) |
EMONCMS_DATADIR | /var/opt/emoncms | timeseries database directories |
EMONCMS_DIR | /opt/emoncms | location of symlinked modules (postprocess, sync) and of uploaded tar.gz archives when importing a backup |
OPENENERGYMONITOR_DIR | /opt/openenergymonitor | location of EmonScripts, emonhub and of created backup archives |
EMONCMS_LOG_LOCATION | /var/log/emoncms | log location for emoncms logs emoncms.log is main emoncms log, managed with the EmonLogger PHP class |
web server | Apache2 | |
relational databases | mysql or maria | |
key:value database | redis-server | data buffering for timeseries and backgroud processing for service-runner |
message broker | mosquitto | |
data engine language | php with extensions | pear (for pecl needs) mysql gd dev, common mbstring redis mosquitto (https://github.com/mgdm/Mosquitto-PHP) curl |
emoncms_mqtt.service -> /var/www/emoncms/scripts/services/emoncms_mqtt/emoncms_mqtt.service
emonhub.service -> /opt/openenergymonitor/emonhub/service/emonhub.service
feedwriter.service -> /var/www/emoncms/scripts/services/feedwriter/feedwriter.service
service-runner.service -> /var/www/emoncms/scripts/services/service-runner/service-runner.service
MariaDB and Redis services are in lib/systemd/system, but they are compiled...
mysqld.service -> /lib/systemd/system/mariadb.service
mysql.service -> /lib/systemd/system/mariadb.service
redis.service -> /lib/systemd/system/redis-server.service
phpmqtt input (PHP) | listen to payloads published to the mosquitto broker on topic emon |
---|---|
scriptpath | EMONCMS_WWW/scripts/services/emoncms_mqtt/emoncms_mqtt.php |
Servicepath | EMONCMS_WWW/scripts/services/emoncms_mqtt/emoncms_mqtt.service |
globals | $log , $mysqli, $redis, $user, $feed_settings, $mqtt_server $mqttsettings, $mqtt_client, $feed, $input, $process |
non globals | $connected, $subscribed, $last_retry, $last_heartbeat, $count |
log | uses emoncms main log file journalctl -f -u emoncms_mqtt |
specific conf file | no |
feedwriter (PHP) | writes input data from redis-buffer to disk in order to feed the timeseries database |
---|---|
scriptpath | EMONCMS_WWW/scripts/feedwriter.php |
Servicepath | EMONCMS_WWW/scripts/services/feedwriter/feedwriter.service |
globals | $log, $feed_settings, $mysqli, $redis $user, $feed |
log | uses emoncms main log file journalctl -f -u feedwriter |
specific conf file | no |
Service-runner (Python) | trigger background workers from modules (update, backup, sync, postprocess) |
---|---|
scriptpath | EMONCMS_WWW/scripts/services/service-runner/service-runner.py |
Servicepath | EMONCMS_WWW/scripts/services/service-runner/service-runner.service |
log | uses systemd log file journalctl -f -u service-runner |
specific conf file | no |
emonhub (Python) | listen on serial port or ethernet and publish to mosquitto broker topic emon |
---|---|
scriptpath | OPENENERGYMONITOR_DIR/emonhub/src/emonhub.py |
Servicepath | OPENENERGYMONITOR_DIR/service/emonhub.service |
log | log file is in /var/log/emonhubjournalctl -u emonhub -n 30 –no-pager |
specific conf file | /etc/emonhub/emonhub.conf /etc/emonhub/emonhub.env |
emonPiLCD (Python) | manages the emonpi LCD screen |
---|---|
scriptpath | OPENENERGYMONITOR_DIR/emonpi/lcd/emonPiLCD.py |
Servicepath | OPENENERGYMONITOR_DIR/emonpi/lcd/emonPiLCD.service |
log | log file is in /var/log/emonpilcdjournalctl -u emonPiLCD |
specific conf file | no |
admin | module integrated into the core package - does not have its own git repo |
---|---|
place | EMONCMS_WWW/Modules/admin |
globals | $mysqli,$session,$route,$updatelogin,$allow_emonpi_admin, $redis, $openenergymonitor_dir, $admin_show_update, $path $log, $log_location, $log_enabled, $log_level |
background workers | none |
log | uses emoncms main log file |
specific conf file | no |
config | web interface to supervise and configure emonhub |
---|---|
place | EMONCMS_WWW/Modules/config |
globals | $route, $session, $redis, $homedir |
non globals | $emonhub_config_file, $emonhub_logfile, $restart_log Also in model : $logfile, $config_file, $restart_log_name |
background workers | restart.sh |
log | /var/log/emoncms/emonhub-restart.log |
specific conf file | no |
dashboard | Dashboard Module |
---|---|
place | EMONCMS_WWW/Modules/dashboard |
globals | $mysqli, $session, $route, $path |
background workers | no |
log | no |
specific conf file | no |
graph | main graph module with averaging on the fly |
---|---|
place | EMONCMS_WWW/Modules/graph |
globals | $session,$route,$mysqli,$redis, $path |
background workers | no |
log | no |
specific conf file | no |
backup | import/export all timeseries+mysql database |
---|---|
place | EMONCMS_DIR/modules/backup |
globals | $route, $session, $path, $redis, $linked_modules_dir, $log_location |
background workers | emoncms-import.sh emoncms-export.sh emoncms-copy.sh ? service-runner bash file why ? All things related to service-runner are in controller |
log | EMONCMS_LOG_LOCATION/exportbackup.log EMONCMS_LOG_LOCATION/importbackup.log |
specific conf file | config.cfg which has to be set up during installation |
sync | connect to distant EmonCMS machines to retrieve feeds IOT flavoured alternative to backup |
---|---|
place | EMONCMS_DIR/modules/sync |
globals | $linked_modules_dir,$path,$session,$route $mysqli,$redis,$user,$feed_settings,$log_location $log in model |
background workers | emoncms-sync.sh launching sync_run.php in CLI |
log | EMONCMS_LOG_LOCATION/sync.log also uses emoncms main log file |
specific conf file | no |
postprocess | postprocess feeds - calculation module |
---|---|
place | EMONCMS_DIR/modules/postprocess |
globals | $linked_modules_dir,$session,$route,$mysqli,$redis,$feed_settings, $log_location |
background workers | postprocess.sh launching postprocess_run.php in CLI Postprocess_run.php scans the redis postprocessqueue and start process functions |
log | EMONCMS_LOG_LOCATION/postprocess.log |
specific conf file | no |