#!/bin/bash

#0 LS
#1 Automatik

#4 Ventil auf 44
#5 Ventil zu 45
#6 Pumpe 44
#7 Heizschwert 47

#8  SekVL
#9 SekRL
#10 PriVL
#11 PriRL
#13 Puffer oben (opt)
#14 Puffer unten
#15 Puffer Mitte/oben

if [ $# -gt 0 ];
	then server="$1"
	else server="localhost"
fi


clear
tput sc # save cursor position

while true; do

temp=( `modpoll -p 1502 -0 -1 -t 3 -r 38 -c16 $server | sed -n 's/\[..\]: //p'` )
rel=( `modpoll -p 1502 -0 -1 -t 0 -r 48 -c8 $server | sed -n 's/\[..\]: //p'` )
pwm=$(modpoll -p 1502 -0 -1 -t 4 -r 38 $server | sed -n 's/\[..\]: //p' )
#temp=( `cat temp` )
#rel=( `cat rel` )

printf "   Wärmetauscher                Puffer\033[K\n"
printf "                              ┌────────┐\n"
printf "%5.1f°C ─┐┌─%5.1f°C           │%5.1f°C │\n" ${temp[10]}e-1 ${temp[8]}e-1 ${temp[13]}e-1
printf "         ││                   │        │\n"
printf "         ││                   │%5.1f°C │\n" ${temp[15]}e-1
printf "         ││                   │        │\n"
printf "%5.1f°C ─┘└─%5.1f°C           │%5.1f°C │\n" ${temp[11]}e-1 ${temp[9]}e-1 ${temp[14]}e-1
printf "                              └────────┘\n"


if [ ${temp[0]} -lt 0 ]
	then echo -e "Fuses: all active  \033[K"
	else echo -e "Fuses: one inactive\033[K"
fi
if [ ${temp[1]} -lt 0 ]
	then echo -e "Switches: all \"Automatisch\"\033[K"
	else echo -e "Switches: one is \"Aus\" or \"Hand\"\033[K"
fi
if [ ${temp[4]} -lt 0 ]
	then echo -e "\"Ventil auf\":  active  \033[K"
	else echo -e "\"Ventil auf\":  inactive\033[K"
fi
if [ ${temp[5]} -lt 0 ]
	then echo -e "\"Ventil zu\":   active  \033[K"
	else echo -e "\"Ventil zu\":   inactive\033[K"
fi
if [ ${temp[6]} -lt 0 ]
	then echo -e "\"Pumpe\":       active  \033[K"
	else echo -e "\"Pumpe\":       inactive\033[K"
fi
if [ ${temp[7]} -lt 0 ]
	then echo -e "\"Heizschwert\": active  \033[K"
	else echo -e "\"Heizschwert\": inactive\033[K"
fi

printf "\nPWM: %5.1f%%\033[K" $((1000-${pwm}))e-1

string="\nRelays:\nAZAZHHPP\n"
for i in {1..8}; do
	if [ ${rel[$(($i-1))]} == 0 ]
		then string+="\e[0m$i"
    
		else string+="\e[47;30m$i"
	fi
done

read -p "$(echo -e "$string\e[0m\033[K")" -n 1 -t 1 relay

case $relay in
	[1-8])
		modpoll -p 1502 -0 -1 -t 0 -r $((47+$relay)) $server "$(((${rel[$(($relay-1))]}+1)%2))" > /dev/null
		;;
	q)
		exit 0
		;;
	-)	
		pwmnew=$(($pwm+100))
		echo $pwmnew
		if [ $pwmnew -gt 1000 ]; then pwmnew=1000; fi
		modpoll -p 1502 -0 -1 -t 4 -r 38 $server $pwmnew > /dev/null
		;;
	+)	
		pwmnew=$(($pwm-100))
		echo $pwmnew
		if [ $pwmnew -lt 0 ]; then pwmnew=0; fi
		modpoll -p 1502 -0 -1 -t 4 -r 38 $server $pwmnew > /dev/null
		;;
esac


tput rc # restore cursor position
done
