#!/bin/bash
#------------------------------------------------------------------------------
# /home/home/data/home/bin/solar_power
# Logs solar yield (output) to $LOGFILE and $DB
# driven by cron every 10 minutes (since 11.05.23, previously 5 min.)
#
# Creation:      13.06.2022 kmw
# Last Update:   19.05.2023 kmw
#------------------------------------------------------------------------------

# Variablen
LOGFILE='/home/home/data/home/log/solar.log'
DB='/home/home/data/home/rrdtool/db/solar.rrd'
URL="http://192.168.100.160/status"
DATUM=`date +%Y-%m-%dT%H:%M`

# Ändern der Lokalisierung
# für die Zahlen, hier:
# Kommazeichen '.' statt ','
# für printf
LC_NUMERIC="C"  # LC_COLLATE=C

# Logfile erstellen
if [ ! -f $LOGFILE ]; then
{
echo "#--------------------------------------------------"
echo "# Logfile: $LOGFILE"
echo "# Erstellt: $DATUM"
echo "# Solarleistung - Am Kirschenberg 1"
echo "#--------------------------------------------------"
echo "# Datum                Watt"
echo "# Y-M-DTH:M"
echo "#--------------------------------------------------"
} > $LOGFILE
fi

# create database if not exists
# if [ ! -f $DB ]; then
# {
# /usr/bin/rrdtool create $DB \
# DS:watts:GAUGE:10m:0:U \
# RRA:AVERAGE:0.5:5m:10d \
# RRA:AVERAGE:0.5:30m:90d \
# RRA:AVERAGE:0.5:1h:18M \
# RRA:AVERAGE:0.5:1d:10y
# }
# fi

# Ertrag abfragen an Shelly mit $IP
SOL_POW=`curl "$URL" --silent | jq -r '.meters[].power'`

# float to integer
SOL_POW=${SOL_POW%.*}

# Datum und Zählerstände in Logfile schreiben
if [ $SOL_POW \> 0 ]
  then
  format="%16s %10.0f\n"
  printf "$format" $DATUM $SOL_POW >> $LOGFILE
fi

# fill database ==> actualy not in use
#/usr/bin/rrdtool update $DB N:$SOL_POW
