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

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

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

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

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
echo "  CSV=${CSV}"
echo "  DATA_DIR=${DATA_DIR}"
echo "  FILTER(1)=${FILTER}"
echo "  MAILTO=${MAILTO}"
echo "  MONTH_CSV=${MONTH_CSV}"
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 [ "${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

