„edl21.sh“ hinzufügen
Initial upload from backup.
This commit is contained in:
parent
222089a61f
commit
0b0980adf1
68
edl21.sh
Normal file
68
edl21.sh
Normal file
@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
#Eingabegerät
|
||||
INPUT_DEV="/dev/ttyUSB0";
|
||||
stty -F $INPUT_DEV 1:0:8bd:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
|
||||
|
||||
#Datum, Zeit und Datei.
|
||||
DATE=$(/bin/date +%Y%m%d-%H%M%S);
|
||||
PFAD=$(dirname "$(readlink -e "$0")");
|
||||
FILE=$PFAD"/"$DATE."txt";
|
||||
LOG=$PFAD"/edl.log";
|
||||
|
||||
#Datenbank
|
||||
DB_USER="";
|
||||
DB_PASS="";
|
||||
DB_HOST="";
|
||||
DB_NAME="";
|
||||
DB_TAB="EdlData";
|
||||
|
||||
#Startsequenz
|
||||
SEQ_START="1B1B1B1B01010101";
|
||||
#Endsequenz
|
||||
SEQ_END="001B1B1B1B1A00";
|
||||
#Beginn Zähler 1.8.0 (Wirkarbeit Bezug)
|
||||
SEQ_180="070100010800FF";
|
||||
#Beginn Zähler 2.8.0 (Wirkarbeit Lieferung)
|
||||
SEQ_280="070100020800FF";
|
||||
#Beginn aktuelle Wirkleistung
|
||||
SEQ_PWR="070100100700FF";
|
||||
|
||||
INOUT=2147483647;
|
||||
|
||||
cat $INPUT_DEV 2>/dev/null | xxd -p -u -l 600 1> $FILE;
|
||||
|
||||
STRING=`tr -d "\n" < $FILE`;
|
||||
STRING=${STRING#*$SEQ_START};
|
||||
STRING=${STRING%%$SEQ_END*};
|
||||
|
||||
STRING_180=${STRING#*$SEQ_180};
|
||||
let STRING_180=0x${STRING_180:20:10};
|
||||
|
||||
STRING_280=${STRING#*$SEQ_280};
|
||||
let STRING_280=0x${STRING_280:20:10};
|
||||
|
||||
STRING_PWR=${STRING#*$SEQ_PWR};
|
||||
let STRING_PWR=0x${STRING_PWR:14:8};
|
||||
|
||||
#Richtung der Leistung abfangen und in W umrechnen..
|
||||
if [ $STRING_PWR -gt $INOUT ]; then
|
||||
STRING_PWR_OUT=$(echo "(4294967295 - $STRING_PWR) / (10)"|bc);
|
||||
STRING_PWR_IN=0;
|
||||
else
|
||||
STRING_PWR_IN=$(echo "$STRING_PWR / 10"|bc);
|
||||
STRING_PWR_OUT=0;
|
||||
fi
|
||||
#Zählerstände in Wh!
|
||||
STRING_180=$(echo "scale=4; $STRING_180 / 10" |bc);
|
||||
STRING_280=$(echo "scale=4; $STRING_280 / 10" |bc);
|
||||
|
||||
#LOG
|
||||
echo $DATE";"$STRING_180";"$STRING_280";"$STRING_PWR_IN";"$STRING_PWR_OUT >> $LOG ;
|
||||
|
||||
#DATENBANK
|
||||
mysql -u $DB_USER -p$DB_PASS -h $DB_HOST -D $DB_NAME <<EOF
|
||||
INSERT INTO $DB_TAB (TimeStamp,zaehlerstand_in,zaehlerstand_out,active_in,active_out) VALUES (CURRENT_TIMESTAMP,'$STRING_180','$STRING_280','$STRING_PWR_IN','$STRING_PWR_OUT')
|
||||
EOF
|
||||
|
||||
#AUFRAEUMEN
|
||||
rm $FILE;
|
||||
Loading…
Reference in New Issue
Block a user