
#!/bin/sh
# File	: proc_sbeam-data.sh
# By	: MaartenDeBoer.nl, 240801
# Subject	: Script to process SBEAM data for web-page
#(0.2),240802	: Add WWW_UPD
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
TMP="/tmp/${PGM}.$$"
CSV="/tmp/${PGM}.csv"
LOG="${HOME}/log/${PGM}.log"

HOSTNAME=`hostname|cut -d\. -f1`

MONTH_CSV="/tmp/${PGM}_month.csv"
MAILTO="maarten@agrarix.nl"
#MAILTO=""

WWW_UPD=""
WWW_UPD=1
WWW_DIR="/mnt/nas/WWW/domains/sbeam.agrarix.net/pages"
HTML="${WWW_DIR}/index.html"

DATA_DIR="/mnt/nas/DATA/SBEAM"
FILTER="2"

if [ "${1}" != "" ]; then
  FILTER="${1}"
fi  # <> $1

DATI=`date +%Y-%m-%d-%H-%M-%S`
echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
echo "  CSV=${CSV}"
echo "  DATA_DIR=${DATA_DIR}"
echo "  DATI=${DATI}"
echo "  FILTER(1)=${FILTER}"
echo "  HOSTNAME=${HOSTNAME}"
echo "  MAILTO=${MAILTO}"
echo "  MONTH_CSV=${MONTH_CSV}"
echo "  HTML=${HTML}"
echo "  WWW_DIR=${WWW_DIR}"
echo "  WWW_UPD=${WWW_UPD}"
sleep 1

if [ ! -d ${DATA_DIR} ]; then
  echo "  NO DATA_DIR (${DATA_DIR}) found. Exiting ..."|tee -a ${LOG}
  exit 4
fi  # <> DATA_DIR

if [ ! -f ${MONTH_CSV} ]; then
  echo "# MONth ; # kWh; " > ${MONTH_CSV}

  cd ${DATA_DIR}
  ls -1 20[0-9][0-9]-[01][0-9].CSV|grep "${FILTER}"|while read CSV_FILE
  do
    echo "  ${CSV_FILE}"
    FIRST_DAY_LINE=`cat ${CSV_FILE}| grep -v ^#|grep '^01-*-*'`

    if [ "${FIRST_DAY_LINE}" != "" ]; then

      LAST_DAY_LINE=`cat ${CSV_FILE}| tail -1`
      echo "  FIRST_DAY_LINE=${FIRST_DAY_LINE}"
      echo "  LAST_DAY_LINE=${LAST_DAY_LINE}"

      FIRST_DATE=`echo ${FIRST_DAY_LINE}|cut -d\; -f1`
      FIRST_NUMBER=`echo ${FIRST_DAY_LINE}|cut -d\; -f2|cut -d\, -f1`
      FIRST_DAY=`echo ${FIRST_DAY_LINE}|cut -d\; -f3|cut -d\, -f1`
      LAST_DATE=`echo ${LAST_DAY_LINE}|cut -d\; -f1`
      LAST_NUMBER=`echo ${LAST_DAY_LINE}|cut -d\; -f2|cut -d\, -f1`

      FROM_NUMBER=`expr ${FIRST_NUMBER} - ${FIRST_DAY}`
      TO_NUMBER="${LAST_NUMBER}"
      MON_DIFF=`expr ${TO_NUMBER} - ${FROM_NUMBER}`

      echo "  FIRST_DATE=${FIRST_DATE} FIRST_NUMBER=${FIRST_NUMBER} FIRST_DAY=${FIRST_DAY}"
      echo "  LAST_DATE=${LAST_DATE} LAST_NUMBER=${LAST_NUMBER}"
      echo "  TO_NUMBER=${TO_NUMBER} - FROM_NUMBER=${FROM_NUMBER} = MON_DIFF=${MON_DIFF}"

      MON=`echo ${CSV_FILE}|cut -d\. -f1`
      echo "${MON};${MON_DIFF};"|tee -a ${MONTH_CSV}

    fi  # ${FIRST_DAY_LINE}" != ""

  done  # LINE

fi  # ! -f ${MONTH_CSV}


# Proc Month_numbers
echo "# Months =>" > ${TMP} 
echo -n "   ;" >> ${TMP} 

cat ${MONTH_CSV}|grep -v ^#|cut -d\; -f1|cut -d\- -f2|sort -u|while read MONTH
do
  echo -n " ${MONTH} ;"|tee -a ${TMP}
done  # MONTH
echo ""|tee -a ${TMP}

cat ${MONTH_CSV}|grep -v ^#|cut -d\; -f1|cut -d\- -f1|sort -u|while read YEAR
do
  echo -n "${YEAR};"|tee -a ${TMP}
  cat ${MONTH_CSV}|grep -v ^#|cut -d\; -f1|cut -d\- -f2|sort -u|while read MONTH
  do
    YR_MON_VALUE=`grep "^${YEAR}-${MONTH}" ${MONTH_CSV}|cut -d\; -f2`
    echo -n "${YR_MON_VALUE};" |tee -a ${TMP}
  done  # MONTH
  echo ""|tee -a ${TMP}
done  # YEAR
echo ""|tee -a ${TMP}

cat ${TMP}

if [ ${WWW_UPD} ]; then
  echo "  Updating WWW (${HTML})"|tee -a ${LOG}
  echo "<HTML>" > ${HTML}
  echo "  <HEAD>" >> ${HTML}
  echo "  <META NAME=\"generator\" content=\"Agrarix.IT:${PGM} v${VER}\" /> " >> ${HTML}
  echo "  <META NAME=\"up-date\" content=\"${DATI}\" /> " >> ${HTML}
  echo "  </HEAD>" >> ${HTML}
  echo "  <BODY>" >> ${HTML}

  echo "    <H1>SBEAM DATA</H1>" >> ${HTML}
  echo "    <H3>Numbers in kWh</H3>" >> ${HTML}
  echo "    <HR>" >> ${HTML}

  echo "    <TABLE border=1>" >> ${HTML}

  echo "      <TR>" >> ${HTML}
  echo "        <TH>YR/MNT</TH>" >> ${HTML}
  cat ${MONTH_CSV}|grep -v ^#|cut -d\; -f1|cut -d\- -f2|sort -u|while read MONTH
  do
    echo "        <TH> ${MONTH} </TH>" >> ${HTML}
  done  # MONTH
  echo "      </TR>" >> ${HTML}

  echo "      <TR>" >> ${HTML}

  cat ${MONTH_CSV}|grep -v ^#|cut -d\; -f1|cut -d\- -f1|sort -u|while read YEAR
  do
    echo "${YEAR}"
    echo "        <TD>${YEAR}</TD>"  >> ${HTML}
    cat ${MONTH_CSV}|grep -v ^#|cut -d\; -f1|cut -d\- -f2|sort -u|while read MONTH
    do
      YR_MON_VALUE=`grep "^${YEAR}-${MONTH}" ${MONTH_CSV}|cut -d\; -f2`
      echo "      <TD>${YR_MON_VALUE}</TD>"  >> ${HTML}
    done  # MONTH
    echo "      </TR>"  >> ${HTML}
  done  # YEAR

  echo "    </TABLE>" >> ${HTML}


  echo "<HR>" >> ${HTML}
  echo "  <H6>${DATI} ${PGM} v${VER} at ${HOSTNAME} </H6>" >> ${HTML}
  echo "  </BODY>" >> ${HTML}
  echo "</HTML>" >> ${HTML}
fi  # WWW_UPD

if [ "${MAILTO}" != "" ]; then
  cp ${TMP} ${CSV}
  date | mailx -s "SBEAM anal [${PGM} v${VER}]" -A ${CSV} "${MAILTO}"
  echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
fi

rm ${TMP}
echo "`date` ${PGM} v${VER} finished."|tee -a ${LOG}
exit 0

