#!/bin/bash

data=$*

echo "$(date +%s) $*" >> /openhab/bsb

################################################################################

# WP Status ********************************************************************
if echo "$data"|egrep "^DC 80 0A 0D 07 05 3D 07 B0 00" >/dev/null
then
#cmd=$(echo $data | cut -d' ' -f-10)
 data=$(echo $data | cut -d' ' -f11-)

 # Notbetrieb
 [ "$data" = "25 9A 87" ] && oh_cmd set Heizung_Modus "Begrenzungszeit aktiv" 

 # Störung
 [ "$data" = "02 CE 02" ] && oh_cmd set Heizung_Modus Störung 

 # EVU-Sperre
 [ "$data" = "0A 4F 0A" ] && oh_cmd set Heizung_Modus EVU-Sperre

 # WP aus
 [ "$data" = "19 6D 58" ] && oh_cmd set Heizung_Modus Aus

 # Abtauen
 [ "$data" = "7D 41 7A" ] && oh_cmd set Heizung_Modus Abtauen 

 # Frostschutz
 [ "$data" = "18 7D 79" ] && oh_cmd set Heizung_Modus Frostschutz 

 # Heizbetrieb
 [ "$data" = "89 EE E1" ] && oh_cmd set Heizung_Modus Heizbetrieb 
 exit
fi

# Innengerät********************************************************************
if echo $data|egrep "^DC 86 00 0E 02 3D 2D 02 15 " >/dev/null
then
 data=$(echo $data|cut -d' ' -f10,11|tr -d ' ')

 data=$(printf "%d\n" 0x$data)
 data=$(echo "scale=5; $data / 64" | bc)
 echo "Innen: $data"
 oh_cmd set Temp_Ist $data
 exit
fi

# Aussen ***********************************************************************
if echo $data|egrep "^DC 80 7F 17 02 05 00 02 19" >/dev/null
then
 data=$(echo $data|cut -d' ' -f10,11|tr -d ' ')
 data=$(printf "%d\n" 0x$data)

 data=$(echo "scale=5; $data / 64" | bc)
 echo "Außen: $data"
 oh_cmd set Temp_Outside $data
 exit
fi


# Vorlauf ***********************************************************************
if echo $data|egrep "^DC 84 00 12 02 05 00 02 29" >/dev/null
then
 data=$(echo $data|cut -d' ' -f10,11|tr -d ' ')
 data=$(printf "%d\n" 0x$data)
 data=$(echo "scale=5; $data / 64" | bc)
 echo "Vorlauf: $data"
 oh_cmd set Temp_HK_VL $data
 exit
fi

# TWW & Puffer
if echo $data|egrep "^DC 83 00 12 02 05 00 02 29" >/dev/null
then
 data_orig=$data
 data=$(echo $data|cut -d' ' -f10,11|tr -d ' ')
 data=$(printf "%d\n" 0x$data)
 data=$(echo "scale=5; $data / 64" | bc)
 echo "TWW: $data"
 oh_cmd set Temp_Speicher $data

 data=$(echo $data_orig|cut -d' ' -f12,13|tr -d ' ')
 data=$(printf "%d\n" 0x$data)
 data=$(echo "scale=5; $data / 64" | bc)
 echo "Puffer: $data"
 oh_cmd set Temp_Puffer $data
 exit
fi


