From 5a148cfdc9d76f4aa18fdcc8fe9694025e35ab73 Mon Sep 17 00:00:00 2001 From: TrystanLea Date: Wed, 19 Jun 2019 13:43:45 +0100 Subject: [PATCH 1/6] Implementation of /opt/emoncms & /opt/openenergymonitor installation dirs --- defaults/emoncms/default.settings.php | 5 ++-- install/apache.sh | 4 +-- install/base.sh | 3 --- install/config.ini | 21 ++++++++------- install/emoncms_core.sh | 15 ++++++----- install/emoncms_modules.sh | 38 +++++++++++++-------------- install/emonhub.sh | 14 +++++----- install/emonpilcd.sh | 12 +++------ install/emonsd.sh | 14 +++++----- install/firmware.sh | 10 +++---- install/init.sh | 10 +++---- install/main.sh | 27 ++++++++++--------- install/readme.md | 4 +-- install/wifiap.sh | 14 +++++----- update/config.ini | 4 ++- update/emoncms_core.sh | 14 +++++----- update/emoncms_modules.sh | 20 +++++++------- update/emonhub.sh | 12 ++++----- update/emonpi.sh | 4 +-- update/main.sh | 28 ++++++++++---------- update/rfm69pi.sh | 12 ++++----- update/service-runner-update.sh | 11 ++++---- 22 files changed, 149 insertions(+), 147 deletions(-) delete mode 100755 install/base.sh diff --git a/defaults/emoncms/default.settings.php b/defaults/emoncms/default.settings.php index cc5a818..5a97ad7 100644 --- a/defaults/emoncms/default.settings.php +++ b/defaults/emoncms/default.settings.php @@ -69,8 +69,9 @@ 'keyspace' => 'emoncms' ) ); - - $homedir = "USRDIR"; + + $emoncms_dir = "EMONCMS_DIR"; + $openenergymonitor_dir = "OPENENERGYMONITOR_DIR"; // Max number of allowed different inputs per user. For limiting garbage rf data $max_node_id_limit = 32; diff --git a/install/apache.sh b/install/apache.sh index d7f6b76..1590a02 100755 --- a/install/apache.sh +++ b/install/apache.sh @@ -12,11 +12,11 @@ sudo sed -i "s/^CustomLog/#CustomLog/" /etc/apache2/conf-available/other-vhosts- sudo a2enmod rewrite # Default apache2 configuration -sudo cp $usrdir/EmonScripts/defaults/apache2/emonsd.conf /etc/apache2/conf-available/emonsd.conf +sudo cp $openenergymonitor_dir/EmonScripts/defaults/apache2/emonsd.conf /etc/apache2/conf-available/emonsd.conf sudo a2enconf emonsd.conf # Configure virtual host -sudo cp $usrdir/EmonScripts/defaults/apache2/emoncms.conf /etc/apache2/sites-available/emoncms.conf +sudo cp $openenergymonitor_dir/EmonScripts/defaults/apache2/emoncms.conf /etc/apache2/sites-available/emoncms.conf sudo a2dissite 000-default.conf sudo a2ensite emoncms diff --git a/install/base.sh b/install/base.sh deleted file mode 100755 index 98b13c9..0000000 --- a/install/base.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -usrdir=${DIR/\/EmonScripts\/install/} diff --git a/install/config.ini b/install/config.ini index f6114eb..4929c36 100755 --- a/install/config.ini +++ b/install/config.ini @@ -1,7 +1,10 @@ #!/bin/bash # Do not change these lines, they are used to auto detect the installation location DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -usrdir=${DIR/\/EmonScripts\/install/} +# usrdir=${DIR/\/EmonScripts\/install/} + +openenergymonitor_dir=/opt/openenergymonitor +emoncms_dir=/opt/emoncms # usernames and passwords below are for default raspberrypi installation # these can all be changed to own preference @@ -39,16 +42,16 @@ emoncms_modules[wifi]=master emoncms_modules[device]=master -# Modules installed in $usrdir/modules +# Modules installed in $emoncms_dir/modules # Configure branches as applicable -declare -A emoncms_modules_usrdir -emoncms_modules_usrdir[demandshaper]=master -emoncms_modules_usrdir[sync]=master -emoncms_modules_usrdir[backup]=master -emoncms_modules_usrdir[usefulscripts]=master -emoncms_modules_usrdir[postprocess]=emonpi +declare -A symlinked_emoncms_modules +symlinked_emoncms_modules[demandshaper]=master +symlinked_emoncms_modules[sync]=master +symlinked_emoncms_modules[backup]=master +symlinked_emoncms_modules[usefulscripts]=master +symlinked_emoncms_modules[postprocess]=emonpi -emoncms_datadir=/var/opt/emon +emoncms_datadir=/var/opt/emoncms # Components enabled apt_get_upgrade_and_clean=true diff --git a/install/emoncms_core.sh b/install/emoncms_core.sh index 1bb11c5..fd4b5f2 100755 --- a/install/emoncms_core.sh +++ b/install/emoncms_core.sh @@ -30,8 +30,9 @@ fi # Copy and install default.settings.php if [ ! -f $emoncms_www/settings.php ]; then echo "- installing default emoncms settings.php" - cp $usrdir/EmonScripts/defaults/emoncms/default.settings.php $emoncms_www/settings.php - sed -i "s~USRDIR~$usrdir~" $emoncms_www/settings.php + cp $openenergymonitor_dir/EmonScripts/defaults/emoncms/default.settings.php $emoncms_www/settings.php + sed -i "s~EMONCMS_DIR~$emoncms_dir~" $emoncms_www/settings.php + sed -i "s~OPENENERGYMONITOR_DIR~$emoncms_dir~" $emoncms_www/settings.php else echo "- emoncms settings.php already exists" fi @@ -58,8 +59,8 @@ if [ ! -d /var/www/html/emoncms ]; then # Redirect (review) echo "- creating redirect to $emoncms_www" - echo "" > $usrdir/index.php - sudo mv $usrdir/index.php /var/www/html/index.php + echo "" > $emoncms_dir/index.php + sudo mv $emoncms_dir/index.php /var/www/html/index.php sudo rm /var/www/html/index.html fi @@ -68,13 +69,13 @@ echo "Install Emoncms Services" echo "-------------------------------------------------------------" for service in "emoncms_mqtt" "feedwriter" "service-runner"; do servicepath=$emoncms_www/scripts/services/$service/$service.service - $usrdir/EmonScripts/common/install_emoncms_service.sh $servicepath $service + $openenergymonitor_dir/EmonScripts/common/install_emoncms_service.sh $servicepath $service done echo # Sudoers entry (review) -sudo visudo -cf $usrdir/EmonScripts/sudoers.d/emoncms-rebootbutton && \ -sudo cp $usrdir/EmonScripts/sudoers.d/emoncms-rebootbutton /etc/sudoers.d/ +sudo visudo -cf $openenergymonitor_dir/EmonScripts/sudoers.d/emoncms-rebootbutton && \ +sudo cp $openenergymonitor_dir/EmonScripts/sudoers.d/emoncms-rebootbutton /etc/sudoers.d/ sudo chmod 0440 /etc/sudoers.d/emoncms-rebootbutton echo "- Install emonPi Emoncms admin reboot button sudoers entry" diff --git a/install/emoncms_modules.sh b/install/emoncms_modules.sh index 79b5164..71a6d6a 100755 --- a/install/emoncms_modules.sh +++ b/install/emoncms_modules.sh @@ -17,32 +17,32 @@ for module in ${!emoncms_modules[@]}; do done # wifi module sudoers entry -sudo visudo -cf $usrdir/EmonScripts/sudoers.d/wifi-sudoers && \ -sudo cp $usrdir/EmonScripts/sudoers.d/wifi-sudoers /etc/sudoers.d/ +sudo visudo -cf $openenergymonitor_dir/EmonScripts/sudoers.d/wifi-sudoers && \ +sudo cp $openenergymonitor_dir/EmonScripts/sudoers.d/wifi-sudoers /etc/sudoers.d/ sudo chmod 0440 /etc/sudoers.d/wifi-sudoers echo "wifi sudoers entry installed" # wpa_supplicant permissions sudo chmod 644 /etc/wpa_supplicant/wpa_supplicant.conf # Install emoncms modules that do not reside in /var/www/emoncms/Modules -if [ ! -d $usrdir/modules ]; then - mkdir $usrdir/modules +if [ ! -d $emoncms_dir/modules ]; then + mkdir $emoncms_dir/modules fi -cd $usrdir/modules -for module in ${!emoncms_modules_usrdir[@]}; do - branch=${emoncms_modules_usrdir[$module]} +cd $emoncms_dir/modules +for module in ${!symlinked_emoncms_modules[@]}; do + branch=${symlinked_emoncms_modules[$module]} if [ ! -d $module ]; then echo "- Installing module: $module" git clone -b $branch https://github.com/emoncms/$module.git # If module contains emoncms UI folder, symlink to $emoncms_www/Modules - if [ -d $usrdir/modules/$module/$module-module ]; then + if [ -d $emoncms_dir/modules/$module/$module-module ]; then echo "-- UI directory symlink" - ln -s $usrdir/modules/$module/$module-module $emoncms_www/Modules/$module + ln -s $emoncms_dir/modules/$module/$module-module $emoncms_www/Modules/$module fi # run module install script if present - if [ -f $usrdir/modules/$module/install.sh ]; then - $usrdir/modules/$module/install.sh $usrdir + if [ -f $emoncms_dir/modules/$module/install.sh ]; then + $emoncms_dir/modules/$module/install.sh $emoncms_dir echo fi else @@ -51,21 +51,21 @@ for module in ${!emoncms_modules_usrdir[@]}; do done # backup module -if [ -d $usrdir/modules/backup ]; then - cd backup +if [ -d $emoncms_dir/modules/backup ]; then + cd $emoncms_dir/modules/backup if [ ! -f config.cfg ]; then cp default.config.cfg config.cfg sed -i "s~USER~$user~" config.cfg - sed -i "s~BACKUP_SCRIPT_LOCATION~$usrdir/modules/backup~" config.cfg + sed -i "s~BACKUP_SCRIPT_LOCATION~$emoncms_dir/modules/backup~" config.cfg sed -i "s~EMONCMS_LOCATION~$emoncms_www~" config.cfg - sed -i "s~BACKUP_LOCATION~$usrdir/data~" config.cfg + sed -i "s~BACKUP_LOCATION~$openenergymonitor_dir/data~" config.cfg sed -i "s~DATABASE_PATH~$emoncms_datadir~" config.cfg - sed -i "s~EMONHUB_CONFIG_PATH~$usrdir/data~" config.cfg - sed -i "s~EMONHUB_SPECIMEN_CONFIG~$usrdir/emonhub/conf~" config.cfg - sed -i "s~BACKUP_SOURCE_PATH~$usrdir/data/uploads~" config.cfg + sed -i "s~EMONHUB_CONFIG_PATH~/etc/emonhub~" config.cfg + sed -i "s~EMONHUB_SPECIMEN_CONFIG~$openenergymonitor_dir/emonhub/conf~" config.cfg + sed -i "s~BACKUP_SOURCE_PATH~$openenergymonitor_dir/data/uploads~" config.cfg fi cd fi echo "Update Emoncms database" -php $usrdir/EmonScripts/common/emoncmsdbupdate.php +php $openenergymonitor_dir/EmonScripts/common/emoncmsdbupdate.php diff --git a/install/emonhub.sh b/install/emonhub.sh index cc34112..7d324f5 100755 --- a/install/emonhub.sh +++ b/install/emonhub.sh @@ -4,23 +4,23 @@ source config.ini echo "-------------------------------------------------------------" echo "emonHub install" echo "-------------------------------------------------------------" -cd $usrdir +cd $openenergymonitor_dir -if [ ! -d $usrdir/emonhub ]; then +if [ ! -d $openenergymonitor_dir/emonhub ]; then git clone https://github.com/openenergymonitor/emonhub.git else echo "- emonhub repository already installed" git pull fi -if [ -f $usrdir/emonhub/install.sh ]; then - $usrdir/emonhub/install.sh $emonSD_pi_env +if [ -f $openenergymonitor_dir/emonhub/install.sh ]; then + $openenergymonitor_dir/emonhub/install.sh $emonSD_pi_env else - echo "ERROR: $usrdir/emonhub/install.sh script does not exist" + echo "ERROR: $openenergymonitor_dir/emonhub/install.sh script does not exist" fi # Sudoers entry (review!) -sudo visudo -cf $usrdir/EmonScripts/sudoers.d/emonhub-sudoers && \ -sudo cp $usrdir/EmonScripts/sudoers.d/emonhub-sudoers /etc/sudoers.d/ +sudo visudo -cf $openenergymonitor_dir/EmonScripts/sudoers.d/emonhub-sudoers && \ +sudo cp $openenergymonitor_dir/EmonScripts/sudoers.d/emonhub-sudoers /etc/sudoers.d/ sudo chmod 0440 /etc/sudoers.d/emonhub-sudoers echo "emonhub service control sudoers entry installed" diff --git a/install/emonpilcd.sh b/install/emonpilcd.sh index 0e01617..ca43c64 100755 --- a/install/emonpilcd.sh +++ b/install/emonpilcd.sh @@ -17,10 +17,6 @@ if [ ! -d /var/log/emonpilcd ]; then touch /var/log/emonpilcd/emonpilcd.log fi -# EmonBase / EmonPi flags are stored in /home/pi/data (needs removing) -cd -if [ ! -d data ]; then mkdir data; fi - # --------------------------------------------------------- # Install service # --------------------------------------------------------- @@ -36,14 +32,14 @@ else fi # Install emonpi repo if it doesnt already exist -if [ ! -d $usrdir/emonpi ]; then +if [ ! -d $openenergymonitor_dir/emonpi ]; then echo "Installing emonpi repository" - cd $usrdir + cd $openenergymonitor_dir git clone https://github.com/openenergymonitor/emonpi.git fi -sudo cp $usrdir/emonpi/lcd/$service.service /lib/systemd/system -sudo sed -i "s~ExecStart=.*~ExecStart=/usr/bin/python $usrdir/emonpi/lcd/emonPiLCD.py~" /lib/systemd/system/$service.service +sudo cp $openenergymonitor_dir/emonpi/lcd/$service.service /lib/systemd/system +sudo sed -i "s~ExecStart=.*~ExecStart=/usr/bin/python $openenergymonitor_dir/emonpi/lcd/emonPiLCD.py~" /lib/systemd/system/$service.service sudo systemctl enable $service.service sudo systemctl restart $service.service diff --git a/install/emonsd.sh b/install/emonsd.sh index 63c1fbf..9cb96f0 100755 --- a/install/emonsd.sh +++ b/install/emonsd.sh @@ -6,7 +6,7 @@ source config.ini # Logs are written to disk every hour or at shutdown # log2ram forked from @pb66 repo here https://github.com/pb66/log2ram # -------------------------------------------------------------------------------- -cd $usrdir +cd $openenergymonitor_dir git clone -b rsync_mods https://github.com/openenergymonitor/log2ram.git cd log2ram chmod +x install.sh && sudo ./install.sh @@ -22,10 +22,10 @@ if [ ! -d /var/log/logrotate ]; then sudo chown -R root:adm /var/log/logrotate fi # custom logrotate config -sudo ln -sf $usrdir/EmonScripts/defaults/etc/logrotate.CUSTOM /etc/logrotate.CUSTOM -sudo ln -sf $usrdir/EmonScripts/defaults/etc/logrotate.d/00_defaults /etc/logrotate.d/00_defaults -sudo ln -sf $usrdir/EmonScripts/defaults/etc/logrotate.d/emonhub /etc/logrotate.d/emonhub -sudo ln -sf $usrdir/EmonScripts/defaults/etc/logrotate.d/emoncms /etc/logrotate.d/emoncms +sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/logrotate.CUSTOM /etc/logrotate.CUSTOM +sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/logrotate.d/00_defaults /etc/logrotate.d/00_defaults +sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/logrotate.d/emonhub /etc/logrotate.d/emonhub +sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/logrotate.d/emoncms /etc/logrotate.d/emoncms sudo chown root /etc/logrotate.CUSTOM sudo chown root /etc/logrotate.d/00_defaults @@ -33,10 +33,10 @@ sudo chown root /etc/logrotate.d/emonhub sudo chown root /etc/logrotate.d/emoncms # log2ram cron hourly entry -sudo ln -sf $usrdir/EmonScripts/defaults/etc/cron.hourly/log2ram /etc/cron.hourly/log2ram +sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/cron.hourly/log2ram /etc/cron.hourly/log2ram sudo chmod +x /etc/cron.hourly/log2ram # copy in commented out placeholder logrotate file -sudo cp $usrdir/EmonScripts/defaults/etc/cron.daily/logrotate /etc/cron.daily/logrotate +sudo cp $openenergymonitor_dir/EmonScripts/defaults/etc/cron.daily/logrotate /etc/cron.daily/logrotate # -------------------------------------------------------------------------------- # Misc diff --git a/install/firmware.sh b/install/firmware.sh index f54ad39..d220340 100755 --- a/install/firmware.sh +++ b/install/firmware.sh @@ -4,16 +4,16 @@ source config.ini # -------------------------------------------------------------------------------- # Enable serial uploads with avrdude and autoreset # -------------------------------------------------------------------------------- -cd $usrdir -if [ ! -d $usrdir/avrdude-rpi ]; then +cd $openenergymonitor_dir +if [ ! -d $openenergymonitor_dir/avrdude-rpi ]; then git clone https://github.com/openenergymonitor/avrdude-rpi.git - $usrdir/avrdude-rpi/install + $openenergymonitor_dir/avrdude-rpi/install else echo "- avrdude-rpi already exists" fi -cd $usrdir -if [ ! -d $usrdir/RFM2Pi ]; then +cd $openenergymonitor_dir +if [ ! -d $openenergymonitor_dir/RFM2Pi ]; then git clone https://github.com/openenergymonitor/RFM2Pi else echo "- RFM2Pi already exists" diff --git a/install/init.sh b/install/init.sh index 5e446b9..45b32c8 100755 --- a/install/init.sh +++ b/install/init.sh @@ -1,18 +1,18 @@ #!/bin/bash user=$USER -usrdir=/opt/emon +openenergymonitor_dir=/opt/openenergymonitor sudo apt-get update -y sudo apt-get install -y git-core -sudo mkdir $usrdir -sudo chown $user $usrdir -cd $usrdir +sudo mkdir $openenergymonitor_dir +sudo chown $user $openenergymonitor_dir +cd $openenergymonitor_dir git clone https://github.com/openenergymonitor/EmonScripts.git -cd $usrdir/EmonScripts/install +cd $openenergymonitor_dir/EmonScripts/install ./main.sh cd diff --git a/install/main.sh b/install/main.sh index 47c1a2e..cca72c5 100755 --- a/install/main.sh +++ b/install/main.sh @@ -37,24 +37,27 @@ if [ "$apt_get_upgrade_and_clean" = true ]; then sudo apt --fix-broken install fi +# Required for backup, emonpiLCD, wifi, rfm69pi firmware (review) +if [ ! -d $openenergymonitor_dir/data ]; then mkdir $openenergymonitor_dir/data; fi + echo "-------------------------------------------------------------" sudo apt-get install -y git build-essential python-pip python-dev gettext echo "-------------------------------------------------------------" -if [ "$install_apache" = true ]; then $usrdir/EmonScripts/install/apache.sh; fi -if [ "$install_mysql" = true ]; then $usrdir/EmonScripts/install/mysql.sh; fi -if [ "$install_php" = true ]; then $usrdir/EmonScripts/install/php.sh; fi -if [ "$install_redis" = true ]; then $usrdir/EmonScripts/install/redis.sh; fi -if [ "$install_mosquitto" = true ]; then $usrdir/EmonScripts/install/mosquitto.sh; fi -if [ "$install_emoncms_core" = true ]; then $usrdir/EmonScripts/install/emoncms_core.sh; fi -if [ "$install_emoncms_modules" = true ]; then $usrdir/EmonScripts/install/emoncms_modules.sh; fi -if [ "$install_emonhub" = true ]; then $usrdir/EmonScripts/install/emonhub.sh; fi +if [ "$install_apache" = true ]; then $openenergymonitor_dir/EmonScripts/install/apache.sh; fi +if [ "$install_mysql" = true ]; then $openenergymonitor_dir/EmonScripts/install/mysql.sh; fi +if [ "$install_php" = true ]; then $openenergymonitor_dir/EmonScripts/install/php.sh; fi +if [ "$install_redis" = true ]; then $openenergymonitor_dir/EmonScripts/install/redis.sh; fi +if [ "$install_mosquitto" = true ]; then $openenergymonitor_dir/EmonScripts/install/mosquitto.sh; fi +if [ "$install_emoncms_core" = true ]; then $openenergymonitor_dir/EmonScripts/install/emoncms_core.sh; fi +if [ "$install_emoncms_modules" = true ]; then $openenergymonitor_dir/EmonScripts/install/emoncms_modules.sh; fi +if [ "$install_emonhub" = true ]; then $openenergymonitor_dir/EmonScripts/install/emonhub.sh; fi if [ "$emonSD_pi_env" = "1" ]; then - if [ "$install_firmware" = true ]; then $usrdir/EmonScripts/install/firmware.sh; fi - if [ "$install_emonpilcd" = true ]; then $usrdir/EmonScripts/install/emonpilcd.sh; fi - if [ "$install_wifiap" = true ]; then $usrdir/EmonScripts/install/wifiap.sh; fi - if [ "$install_emonsd" = true ]; then $usrdir/EmonScripts/install/emonsd.sh; fi + if [ "$install_firmware" = true ]; then $openenergymonitor_dir/EmonScripts/install/firmware.sh; fi + if [ "$install_emonpilcd" = true ]; then $openenergymonitor_dir/EmonScripts/install/emonpilcd.sh; fi + if [ "$install_wifiap" = true ]; then $openenergymonitor_dir/EmonScripts/install/wifiap.sh; fi + if [ "$install_emonsd" = true ]; then $openenergymonitor_dir/EmonScripts/install/emonsd.sh; fi # Enable service-runner update # update checks for image type and only runs with a valid image name file in the boot partition diff --git a/install/readme.md b/install/readme.md index b3f59a0..fe0863d 100644 --- a/install/readme.md +++ b/install/readme.md @@ -97,8 +97,8 @@ On reboot, login and run: Create a directory that will be a mount point for the rw data partition - sudo mkdir /var/opt/emon - sudo chwon www-data /var/opt/emon + sudo mkdir /var/opt/emoncms + sudo chwon www-data /var/opt/emoncms Use modified fstab diff --git a/install/wifiap.sh b/install/wifiap.sh index e6e3098..ce60b0f 100755 --- a/install/wifiap.sh +++ b/install/wifiap.sh @@ -4,9 +4,9 @@ source config.ini # Based on https://github.com/openenergymonitor/emonpi/tree/master/wifiAP # Install emonpi repo if it doesnt already exist -if [ ! -d $usrdir/emonpi ]; then +if [ ! -d $openenergymonitor_dir/emonpi ]; then echo "Installing emonpi repository" - cd $usrdir + cd $openenergymonitor_dir git clone https://github.com/openenergymonitor/emonpi.git fi @@ -24,7 +24,7 @@ echo "-------------------------------------------------------------" if [ ! -f /etc/hostapd/hostapd.conf ]; then echo "Installing hostapd.conf" - sudo cp $usrdir/emonpi/wifiAP/hostapd.conf /etc/hostapd/hostapd.conf + sudo cp $openenergymonitor_dir/emonpi/wifiAP/hostapd.conf /etc/hostapd/hostapd.conf # Manual start: you should see a Wifi network called emonPi and emonpi2016 raspberry # sudo hostapd -dd /etc/hostapd/hostapd.conf @@ -41,7 +41,7 @@ if grep -Fq "lease-file-name" /etc/dhcp/dhcpd.conf; then echo "dhcpd.conf configuration already exists" else echo "Appending dhcpd.conf configuration" - conf=$(cat $usrdir/emonpi/wifiAP/append-dhcpd.conf) + conf=$(cat $openenergymonitor_dir/emonpi/wifiAP/append-dhcpd.conf) echo "$conf" | sudo tee -a /etc/dhcp/dhcpd.conf fi @@ -59,8 +59,8 @@ option='authoritative;' sudo sed -i "s~^#$option~$option~" /etc/dhcp/dhcpd.conf # ------------------------------------------------------------- -# echo "Creating: "$usrdir/data/dhcpd.leases -# sudo touch $usrdir/data/dhcpd.leases +# echo "Creating: "$openenergymonitor_dir/data/dhcpd.leases +# sudo touch $openenergymonitor_dir/data/dhcpd.leases # ------------------------------------------------------------- echo "Applying modifications to dhcpd.conf" @@ -104,7 +104,7 @@ sudo sed -i "s~^#$option~$option~" /etc/default/isc-dhcp-server # Add /etc/rc.local: # /opt/emon/emonpi/wifiAP/startAP.sh -sudo ln -s $usrdir/emonpi/wifiAP/wifiAP.sh /usr/local/sbin/wifiAP +sudo ln -s $openenergymonitor_dir/emonpi/wifiAP/wifiAP.sh /usr/local/sbin/wifiAP sudo systemctl unmask hostapd # sudo systemctl enable hostapd diff --git a/update/config.ini b/update/config.ini index 02c9774..3900179 100755 --- a/update/config.ini +++ b/update/config.ini @@ -1,7 +1,9 @@ #!/bin/bash # Do not change these lines, they are used to auto detect the installation location DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -usrdir=${DIR/\/EmonScripts\/update/} +# usrdir=${DIR/\/EmonScripts\/update/} +openenergymonitor_dir=/opt/openenergymonitor +emoncms_dir=/opt/emoncms # usernames and passwords below are for default raspberrypi installation # these can all be changed to own preference diff --git a/update/emoncms_core.sh b/update/emoncms_core.sh index e7eeb32..b876c79 100755 --- a/update/emoncms_core.sh +++ b/update/emoncms_core.sh @@ -17,10 +17,10 @@ fi # ----------------------------------------------------------------- cd echo -current_settings_md5="$($usrdir/EmonScripts/common/./md5sum.py $emoncms_www/settings.php)" +current_settings_md5="$($openenergymonitor_dir/EmonScripts/common/./md5sum.py $emoncms_www/settings.php)" echo "current settings.php md5: $current_settings_md5" -current_default_settings_md5="$($usrdir/EmonScripts/common/md5sum.py $emoncms_www/default.emonpi.settings.php)" +current_default_settings_md5="$($openenergymonitor_dir/EmonScripts/common/md5sum.py $emoncms_www/default.emonpi.settings.php)" echo "Default settings.php md5: $current_default_settings_md5" if [ "$current_default_settings_md5" == "$current_settings_md5" ]; then @@ -53,7 +53,7 @@ fi # check to see if user has modifed settings.php and if update is need. Auto apply of possible # ----------------------------------------------------------------- echo -new_default_settings_md5="$($usrdir/EmonScripts/common/md5sum.py $emoncms_www/default.emonpi.settings.php)" +new_default_settings_md5="$($openenergymonitor_dir/EmonScripts/common/md5sum.py $emoncms_www/default.emonpi.settings.php)" echo "NEW default settings.php md5: $new_default_settings_md5" # check to see if there is an update waiting for settings.php @@ -72,7 +72,7 @@ fi ######################################################################################### echo "Update Emoncms database" -php $usrdir/EmonScripts/common/emoncmsdbupdate.php +php $openenergymonitor_dir/EmonScripts/common/emoncmsdbupdate.php echo echo "-------------------------------------------------------------" @@ -80,7 +80,7 @@ echo "Update Emoncms Services" echo "-------------------------------------------------------------" for service in "emoncms_mqtt" "feedwriter" "service-runner"; do servicepath=$emoncms_www/scripts/services/$service/$service.service - $usrdir/EmonScripts/common/install_emoncms_service.sh $servicepath $service + $openenergymonitor_dir/EmonScripts/common/install_emoncms_service.sh $servicepath $service done echo @@ -106,8 +106,8 @@ if [ "$emonSD_pi_env" = "1" ]; then # Sudoers installation (provides sudo access to specific commands from emoncms) for sudoersfile in "emoncms-rebootbutton"; do if [ ! -f /etc/sudoers.d/$sudoersfile ]; then - sudo visudo -cf $usrdir/EmonScripts/sudoers.d/$sudoersfile && \ - sudo cp $usrdir/EmonScripts/sudoers.d/$sudoersfile /etc/sudoers.d/ + sudo visudo -cf $openenergymonitor_dir/EmonScripts/sudoers.d/$sudoersfile && \ + sudo cp $openenergymonitor_dir/EmonScripts/sudoers.d/$sudoersfile /etc/sudoers.d/ sudo chmod 0440 /etc/sudoers.d/$sudoersfile echo echo "$sudoersfile sudoers entry installed" diff --git a/update/emoncms_modules.sh b/update/emoncms_modules.sh index 87d2c03..f9d991d 100755 --- a/update/emoncms_modules.sh +++ b/update/emoncms_modules.sh @@ -41,8 +41,8 @@ for M in $emoncms_www/Modules/*; do fi done -# Update modules installed in the $usrdir/modules folder -for M in $usrdir/modules/*; do +# Update modules installed in the $emoncms_dir/modules folder +for M in $emoncms_dir/modules/*; do if [ -d "$M/.git" ]; then echo "------------------------------------------" echo "Updating $M module" @@ -72,21 +72,21 @@ for M in $usrdir/modules/*; do done # backup module -if [ -d $usrdir/modules/backup ]; then - cd $usrdir/modules/backup +if [ -d $emoncms_dir/modules/backup ]; then + cd $emoncms_dir/modules/backup if [ ! -f config.cfg ]; then cp default.config.cfg config.cfg sed -i "s~USER~$user~" config.cfg - sed -i "s~BACKUP_SCRIPT_LOCATION~$usrdir/modules/backup~" config.cfg + sed -i "s~BACKUP_SCRIPT_LOCATION~$emoncms_dir/modules/backup~" config.cfg sed -i "s~EMONCMS_LOCATION~$emoncms_www~" config.cfg - sed -i "s~BACKUP_LOCATION~$usrdir/data~" config.cfg + sed -i "s~BACKUP_LOCATION~$openenergymonitor_dir/data~" config.cfg sed -i "s~DATABASE_PATH~$emoncms_datadir~" config.cfg - sed -i "s~EMONHUB_CONFIG_PATH~$usrdir/data~" config.cfg - sed -i "s~EMONHUB_SPECIMEN_CONFIG~$usrdir/emonhub/conf~" config.cfg - sed -i "s~BACKUP_SOURCE_PATH~$usrdir/data/uploads~" config.cfg + sed -i "s~EMONHUB_CONFIG_PATH~/etc/emonhub~" config.cfg + sed -i "s~EMONHUB_SPECIMEN_CONFIG~$openenergymonitor_dir/emonhub/conf~" config.cfg + sed -i "s~BACKUP_SOURCE_PATH~$openenergymonitor_dir/data/uploads~" config.cfg fi cd fi echo "Update Emoncms database" -php $usrdir/EmonScripts/common/emoncmsdbupdate.php +php $openenergymonitor_dir/EmonScripts/common/emoncmsdbupdate.php diff --git a/update/emonhub.sh b/update/emonhub.sh index 8eb900c..04c412e 100755 --- a/update/emonhub.sh +++ b/update/emonhub.sh @@ -4,18 +4,18 @@ source config.ini echo "-------------------------------------------------------------" echo "emonHub update" echo "-------------------------------------------------------------" -cd $usrdir +cd $openenergymonitor_dir -if [ -d $usrdir/emonhub ]; then +if [ -d $openenergymonitor_dir/emonhub ]; then - echo "git pull $usrdir/emonhub" - cd $usrdir/emonhub + echo "git pull $openenergymonitor_dir/emonhub" + cd $openenergymonitor_dir/emonhub git branch git status git pull # can be used to change service source location in future - # sudo ln -sf $usrdir/emonhub/service/emonhub.service /lib/systemd/system + # sudo ln -sf $openenergymonitor_dir/emonhub/service/emonhub.service /lib/systemd/system sudo systemctl restart $service.service state=$(systemctl show $service | grep ActiveState) @@ -23,7 +23,7 @@ if [ -d $usrdir/emonhub ]; then # --------------------------------------------------------- # echo "Running emonhub automatic node addition script" - # $usrdir/emonhub/conf/nodes/emonpi_auto_add_nodes.sh $usrdir + # $openenergymonitor_dir/emonhub/conf/nodes/emonpi_auto_add_nodes.sh $openenergymonitor_dir else echo "EmonHub not found" diff --git a/update/emonpi.sh b/update/emonpi.sh index c3fe3b4..de8d1e5 100755 --- a/update/emonpi.sh +++ b/update/emonpi.sh @@ -11,9 +11,9 @@ echo "Start ATmega328 serial upload using avrdude with latest.hex" echo "Discrete Sampling" -echo "avrdude -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 115200 -U flash:w:$usrdir/emonpi/firmware/compiled/latest.hex" +echo "avrdude -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 115200 -U flash:w:$openenergymonitor_dir/emonpi/firmware/compiled/latest.hex" -avrdude -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 115200 -U flash:w:$usrdir/emonpi/firmware/compiled/latest.hex +avrdude -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 115200 -U flash:w:$openenergymonitor_dir/emonpi/firmware/compiled/latest.hex sudo service emonhub start diff --git a/update/main.sh b/update/main.sh index 30e4ef8..a791bbb 100755 --- a/update/main.sh +++ b/update/main.sh @@ -12,7 +12,7 @@ datestr=$(date) echo "Date:" $datestr echo "EUID: $EUID" -echo "usrdir: $usrdir" +echo "openenergymonitor_dir: $openenergymonitor_dir" echo "type: $type" echo "firmware: $firmware" @@ -25,8 +25,8 @@ fi if [ "$emonSD_pi_env" = "1" ]; then # Check if we have an emonpi LCD connected, # if we do assume EmonPi hardware else assume RFM69Pi - lcd27=$(sudo $usrdir/emonpi/lcd/emonPiLCD_detect.sh 27 1) - lcd3f=$(sudo $usrdir/emonpi/lcd/emonPiLCD_detect.sh 3f 1) + lcd27=$(sudo $openenergymonitor_dir/emonpi/lcd/emonPiLCD_detect.sh 27 1) + lcd3f=$(sudo $openenergymonitor_dir/emonpi/lcd/emonPiLCD_detect.sh 3f 1) if [ $lcd27 == 'True' ] || [ $lcd3f == 'True' ]; then hardware="EmonPi" @@ -42,7 +42,7 @@ if [ "$emonSD_pi_env" = "1" ]; then # Display update message on LCD echo "Display update message on LCD" - sudo $usrdir/emonpi/lcd/./emonPiLCD_update.py + sudo $openenergymonitor_dir/emonpi/lcd/./emonPiLCD_update.py fi fi @@ -52,31 +52,31 @@ if [ "$type" == "all" ]; then sudo rm -rf hardware/emonpi/emonpi2c/ for repo in "emonpi" "RFM2Pi" "usefulscripts" "huawei-hilink-status" "oem_openHab" "oem_node-red"; do - if [ -d $usrdir/$repo ]; then - echo "git pull $usrdir/$repo" - cd $usrdir/$repo + if [ -d $openenergymonitor_dir/$repo ]; then + echo "git pull $openenergymonitor_dir/$repo" + cd $openenergymonitor_dir/$repo git branch git status git pull fi done fi -cd $usrdir/EmonScripts/update +cd $openenergymonitor_dir/EmonScripts/update # ----------------------------------------------------------------- if [ "$type" == "all" ] || [ "$type" == "firmware" ]; then if [ "$firmware" == "emonpi" ]; then - $usrdir/EmonScripts/update/emonpi.sh + $openenergymonitor_dir/EmonScripts/update/emonpi.sh fi if [ "$firmware" == "rfm69pi" ]; then - $usrdir/EmonScripts/update/rfm69pi.sh + $openenergymonitor_dir/EmonScripts/update/rfm69pi.sh fi if [ "$firmware" == "rfm12pi" ]; then - $usrdir/EmonScripts/update/rfm12pi.sh + $openenergymonitor_dir/EmonScripts/update/rfm12pi.sh fi fi @@ -84,7 +84,7 @@ fi if [ "$type" == "all" ] || [ "$type" == "emonhub" ]; then echo "Start emonhub update script:" - $usrdir/EmonScripts/update/emonhub.sh + $openenergymonitor_dir/EmonScripts/update/emonhub.sh echo fi @@ -92,8 +92,8 @@ fi if [ "$type" == "all" ] || [ "$type" == "emoncms" ]; then echo "Start emoncms update:" - $usrdir/EmonScripts/update/emoncms_core.sh - $usrdir/EmonScripts/update/emoncms_modules.sh + $openenergymonitor_dir/EmonScripts/update/emoncms_core.sh + $openenergymonitor_dir/EmonScripts/update/emoncms_modules.sh echo fi diff --git a/update/rfm69pi.sh b/update/rfm69pi.sh index 0515ada..4665b4c 100755 --- a/update/rfm69pi.sh +++ b/update/rfm69pi.sh @@ -12,20 +12,20 @@ echo "Latest RFM69Pi firmware: V"$version echo "downloading latest RFM69Pi firmware from github releases:" echo $download_url -echo "Saving to $usrdir/data/firmware/rfm69pi-"$version".hex" +echo "Saving to $openenergymonitor_dir/data/firmware/rfm69pi-"$version".hex" -if [ ! -d $usrdir/data/firmware ]; then - mkdir $usrdir/data/firmware +if [ ! -d $openenergymonitor_dir/data/firmware ]; then + mkdir $openenergymonitor_dir/data/firmware fi -wget -q $download_url -O $usrdir/data/firmware/rfm69pi-$version.hex +wget -q $download_url -O $openenergymonitor_dir/data/firmware/rfm69pi-$version.hex -if [ -f $usrdir/data/firmware/rfm69pi-$version.hex ]; then +if [ -f $openenergymonitor_dir/data/firmware/rfm69pi-$version.hex ]; then sudo service emonhub stop echo echo "Flashing RFM69Pi with V" $version echo - avrdude -v -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 38400 -U flash:w:$usrdir/data/firmware/rfm69pi-$version.hex + avrdude -v -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 38400 -U flash:w:$openenergymonitor_dir/data/firmware/rfm69pi-$version.hex sudo service emonhub start echo "Flashing RFM69Pi with V" $version " done" else diff --git a/update/service-runner-update.sh b/update/service-runner-update.sh index 6f6fb42..319b781 100755 --- a/update/service-runner-update.sh +++ b/update/service-runner-update.sh @@ -1,6 +1,5 @@ #!/bin/bash -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -usrdir=${DIR/\/EmonScripts/} +source config.ini if [ -z "$2" ]; then type="all" @@ -11,7 +10,7 @@ else fi # Clear log update file -cat /dev/null > $usrdir/data/emonupdate.log +cat /dev/null > $openenergymonitor_dir/data/emonupdate.log echo "Starting update via service-runner-update.sh (v2.0) >" @@ -51,11 +50,11 @@ fi # ----------------------------------------------------------------- # Pull in latest EmonScripts repo before then running updated update scripts -echo "git pull $usrdir/EmonScripts" -cd $usrdir/EmonScripts +echo "git pull $openenergymonitor_dir/EmonScripts" +cd $openenergymonitor_dir/EmonScripts git branch git status git pull # Run update in main update script -$usrdir/EmonScripts/update/main.sh $type $firmware +$openenergymonitor_dir/EmonScripts/update/main.sh $type $firmware From 72befcd7d8cd67cba33e9e0f4e2111636436c821 Mon Sep 17 00:00:00 2001 From: Trystan Lea Date: Wed, 19 Jun 2019 14:16:57 +0100 Subject: [PATCH 2/6] Update init.sh --- install/init.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install/init.sh b/install/init.sh index 45b32c8..d71ede4 100755 --- a/install/init.sh +++ b/install/init.sh @@ -8,6 +8,10 @@ sudo apt-get install -y git-core sudo mkdir $openenergymonitor_dir sudo chown $user $openenergymonitor_dir + +sudo mkdir $emoncms_dir +sudo chown $user $openenergymonitor_dir + cd $openenergymonitor_dir git clone https://github.com/openenergymonitor/EmonScripts.git From ce0c8c8fdfd222d687a35f18d42053a1a8e45045 Mon Sep 17 00:00:00 2001 From: TrystanLea Date: Wed, 19 Jun 2019 14:55:10 +0100 Subject: [PATCH 3/6] fix init script --- install/init.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install/init.sh b/install/init.sh index d71ede4..aa90219 100755 --- a/install/init.sh +++ b/install/init.sh @@ -2,6 +2,7 @@ user=$USER openenergymonitor_dir=/opt/openenergymonitor +emoncms_dir=/opt/emoncms sudo apt-get update -y sudo apt-get install -y git-core @@ -15,6 +16,8 @@ sudo chown $user $openenergymonitor_dir cd $openenergymonitor_dir git clone https://github.com/openenergymonitor/EmonScripts.git +cd EmonScripts +git checkout oem_emoncms_dirs cd $openenergymonitor_dir/EmonScripts/install ./main.sh From bedad899e8844193caba2b6fe1497c46aaf132c8 Mon Sep 17 00:00:00 2001 From: TrystanLea Date: Wed, 19 Jun 2019 15:03:24 +0100 Subject: [PATCH 4/6] fix emoncms settings, wifiAP startup --- defaults/emoncms/default.settings.php | 6 +++--- {install => defaults/etc}/fstab | 2 +- defaults/etc/rc.local | 23 +++++++++++++++++++++++ install/readme.md | 3 +-- install/wifiap.sh | 7 ++++--- 5 files changed, 32 insertions(+), 9 deletions(-) rename {install => defaults/etc}/fstab (85%) create mode 100644 defaults/etc/rc.local diff --git a/defaults/emoncms/default.settings.php b/defaults/emoncms/default.settings.php index 5a97ad7..2b01d44 100644 --- a/defaults/emoncms/default.settings.php +++ b/defaults/emoncms/default.settings.php @@ -57,13 +57,13 @@ // On windows or shared hosting you will likely need to specify a different data directory-- // Make sure that emoncms has write permission's to the datadirectory folders 'phpfiwa'=>array( - 'datadir' => '/var/opt/emon/phpfiwa/' + 'datadir' => '/var/opt/emoncms/phpfiwa/' ), 'phpfina'=>array( - 'datadir' => '/var/opt/emon/phpfina/' + 'datadir' => '/var/opt/emoncms/phpfina/' ), 'phptimeseries'=>array( - 'datadir' => '/var/opt/emon/phptimeseries/' + 'datadir' => '/var/opt/emoncms/phptimeseries/' ), 'cassandra'=>array( 'keyspace' => 'emoncms' diff --git a/install/fstab b/defaults/etc/fstab similarity index 85% rename from install/fstab rename to defaults/etc/fstab index b04f86b..e73e8f1 100644 --- a/install/fstab +++ b/defaults/etc/fstab @@ -1,7 +1,7 @@ proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime,nodiratime 0 1 -/dev/mmcblk0p3 /var/opt/emon ext2 defaults,noatime,nodiratime 0 2 +/dev/mmcblk0p3 /var/opt/emoncms ext2 defaults,noatime,nodiratime 0 2 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that diff --git a/defaults/etc/rc.local b/defaults/etc/rc.local new file mode 100644 index 0000000..e17892b --- /dev/null +++ b/defaults/etc/rc.local @@ -0,0 +1,23 @@ +#!/bin/sh -e +# +# rc.local +# +# This script is executed at the end of each multiuser runlevel. +# Make sure that the script will "exit 0" on success or any other +# value on error. +# +# In order to enable or disable this script just change the execution +# bits. +# +# By default this script does nothing. + +# Print the IP address +_IP=$(hostname -I) || true +if [ "$_IP" ]; then + printf "My IP address is %s\n" "$_IP" +fi + +/opt/openenergymonitor/emonpi/wifiAP/startAP.sh + +exit 0 + diff --git a/install/readme.md b/install/readme.md index fe0863d..5079202 100644 --- a/install/readme.md +++ b/install/readme.md @@ -13,7 +13,6 @@ The following build script is currently development in progress. It is already m - Review logrotate configuration - Review disk wear results from 1st release, investigate ext filesystem commit interval vs app level buffering - Review service install path: /lib/systemd/system or /etc/systemd/system -- Review /opt/emon vs /opt/emoncms & /opt/openenergymonitor install paths The following build script can be used to build a fully fledged emoncms installation on debian operating systems, including: installation of LAMP server and related packages, redis, mqtt, emoncms core, emoncms modules, emonhub and if applicable: raspberrypi support for serial port and wifi access point. @@ -102,7 +101,7 @@ Create a directory that will be a mount point for the rw data partition Use modified fstab - wget https://raw.githubusercontent.com/openenergymonitor/EmonScripts/master/install/fstab + wget https://raw.githubusercontent.com/openenergymonitor/EmonScripts/master/defaults/etc/fstab sudo cp fstab /etc/fstab sudo reboot diff --git a/install/wifiap.sh b/install/wifiap.sh index ce60b0f..f92d086 100755 --- a/install/wifiap.sh +++ b/install/wifiap.sh @@ -101,11 +101,12 @@ sudo sed -i "s~^#$option~$option~" /etc/default/isc-dhcp-server # Now edit the file /etc/network/interfaces and add the following line to the bottom of the file: # up iptables-restore < /etc/iptables.ipv4.nat -# Add /etc/rc.local: -# /opt/emon/emonpi/wifiAP/startAP.sh - sudo ln -s $openenergymonitor_dir/emonpi/wifiAP/wifiAP.sh /usr/local/sbin/wifiAP +# Add /etc/rc.local: +# /opt/openenergymonitor/emonpi/wifiAP/startAP.sh +sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/rc.local /etc/rc.local + sudo systemctl unmask hostapd # sudo systemctl enable hostapd From 27caed4a60f0377de31150623d9bdfaf276e49d0 Mon Sep 17 00:00:00 2001 From: Trystan Lea Date: Wed, 19 Jun 2019 15:26:22 +0100 Subject: [PATCH 5/6] Update init.sh --- install/init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/init.sh b/install/init.sh index aa90219..e53c5fe 100755 --- a/install/init.sh +++ b/install/init.sh @@ -11,7 +11,7 @@ sudo mkdir $openenergymonitor_dir sudo chown $user $openenergymonitor_dir sudo mkdir $emoncms_dir -sudo chown $user $openenergymonitor_dir +sudo chown $user $emoncms_dir cd $openenergymonitor_dir From defbe8846aaadef57067ab4dd4062f092209f67e Mon Sep 17 00:00:00 2001 From: Trystan Lea Date: Wed, 19 Jun 2019 16:02:18 +0100 Subject: [PATCH 6/6] Update emoncms_core.sh --- install/emoncms_core.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/emoncms_core.sh b/install/emoncms_core.sh index fd4b5f2..6878ad4 100755 --- a/install/emoncms_core.sh +++ b/install/emoncms_core.sh @@ -32,7 +32,7 @@ if [ ! -f $emoncms_www/settings.php ]; then echo "- installing default emoncms settings.php" cp $openenergymonitor_dir/EmonScripts/defaults/emoncms/default.settings.php $emoncms_www/settings.php sed -i "s~EMONCMS_DIR~$emoncms_dir~" $emoncms_www/settings.php - sed -i "s~OPENENERGYMONITOR_DIR~$emoncms_dir~" $emoncms_www/settings.php + sed -i "s~OPENENERGYMONITOR_DIR~$openenergymonitor_dir~" $emoncms_www/settings.php else echo "- emoncms settings.php already exists" fi