#!/bin/bash # calling the script with "test" parameter will display the values on screen instead of sending to VZ export PATH=/usr/bin:/bin echo "Can_Logger starting on `date`" CANDUMPER="candump can0" CANDUMP_IN[1]="200" HUMAN_INFO[1]="Vorlauf Max" VZ_UUIDFOR[1]="80089ae0-fa81-11e9-bdc6-b99d5fa0fe8b" CANDUMP_IN[2]="252" HUMAN_INFO[2]="Vorlauf Soll" VZ_UUIDFOR[2]="af1863e0-fa81-11e9-8d30-337b7499db8e" CANDUMP_IN[3]="201" HUMAN_INFO[3]="Vorlauf Ist" VZ_UUIDFOR[3]="cbf99f10-fa81-11e9-9709-d55e7ad0883e" CANDUMP_IN[4]="203" HUMAN_INFO[4]="Warmwasser Ist" VZ_UUIDFOR[4]="521a0ca0-fa8d-11e9-970f-752aababd342" CANDUMP_IN[5]="20A" HUMAN_INFO[5]="Heizung Ein" VZ_UUIDFOR[5]="a5958bf0-fa8f-11e9-bf34-4f7c2163b201" CANDUMP_IN[6]="209" HUMAN_INFO[6]="Brenner Ein" VZ_UUIDFOR[6]="5ec31d30-fa90-11e9-98b7-3b9f4a33ba29" VZ_UUIDFORBS="d403e120-115a-11ea-b273-05a1540bacf1" typeset -i MAXP=6 typeset -i P=1 typeset -i BR=0 ############ M A I N ############ while read LINE do while [[ ${P} -le ${MAXP} ]] do if [[ "$( echo -e "${LINE}" | grep "${CANDUMP_IN[${P}]}" | wc -l )" -gt 0 ]] then VAL="$( echo -e "ibase=16;obase=A;$( echo -e ${LINE} | cut -c14-15 )" | bc )" if [[ ( "${CANDUMP_IN[${P}]}" == 20A ) ]] then VALUE=${VAL} elif [[ ( "${CANDUMP_IN[${P}]}" == 209 ) ]] then VALUE=${VAL} if [[ ( "${VAL}" == 1 ) && ( "${BR}" == 0 ) ]] then BR=1 if [[ "${1}" == "test" ]] then echo -e "$( date "+%H:%M:%S") - Brennerstart" else R_BS="$( wget -4 -O - -q --post-data "" "http://localhost/middleware/data/${VZ_UUIDFORBS}.json" )" fi elif [[ ( "${VAL}" == 0 ) ]] then BR=0 fi else VALUE="$( echo "scale=1 ; ${VAL} / 2" | bc )" fi if [[ "${1}" == "test" ]] then echo -e "$( date "+%H:%M:%S") - ${HUMAN_INFO[${P}]}: ${VALUE} (${LINE})" elif [[ $(echo "$VALUE > 80" | bc) -eq 1 ]] then echo -e "$( date "+%H:%M:%S") - ${HUMAN_INFO[${P}]}: Value ${VALUE} larger than 80, ignoring" else RESPONSE="$( wget -4 -O - -q --post-data "value=${VALUE}" "http://localhost/middleware/data/${VZ_UUIDFOR[${P}]}.json" )" fi fi P=${P}+1 done P=1 done < <( ${CANDUMPER} )