#!/bin/bash # # log a register (electric energie) of Eastron meter to Volkszaehler.org # # example conjob: # * * * * * root /usr/local/bin/sdm_mbrtu.sh # # PATH for cronjob PATH=/usr/local/bin:$PATH # config Modbus TTY="/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0" BAUD=2400 ADDR=1 REG=342 # config VZ HOST=localhost UUID=6836dd20-00d5-11e0-bab1-856ed5f959ae # read Modbus DATA=( $(mbrtu -d$TTY -b$BAUD -pn -s1 -a$ADDR -fi -tf32_dcba -n2 -r$REG) ) if [ -z ${DATA[2]} ] then echo "no data revcieved on modbus" else echo "${DATA[2]}" # Timestamp TS=$(date +%s) TS=$(($TS*1000)) # write VZ echo wget -O - -q "http://$HOST/middleware.php/data/$UUID.json?operation=add&ts=$TS&value=${DATA[2]#DATA=}" wget -O - -q "http://$HOST/middleware.php/data/$UUID.json?operation=add&ts=$TS&value=${DATA[2]#DATA=}" printf "\n" fi