52 lines
1.7 KiB
Plaintext
Executable File
52 lines
1.7 KiB
Plaintext
Executable File
TARGETS="192.168.0.51"
|
|
#PLUGINS="load memory pisense_temp 1wire ina219 hue_temp_10 hue_temp_14 433mhz"
|
|
PLUGINS="load memory pisense_temp 1wire ina219 433mhz"
|
|
|
|
PASSWORD="SET_ME"
|
|
source ~/.munin-collector.conf
|
|
|
|
|
|
while true; do
|
|
|
|
IFS=' '; for TARGET in ${TARGETS}; do
|
|
echo "$(date) Fetching data from ${TARGET} ..."
|
|
SOURCE=$(echo "nodes" | nc -N ${TARGET} 4949 | tail -n +2 | head -n -1)
|
|
IFS=' '; for PLUGIN in ${PLUGINS}; do
|
|
CONFIG=$(echo "config ${PLUGIN}" | nc -N ${TARGET} 4949 | tail -n +2 | head -n -1)
|
|
DATA=$(echo "fetch ${PLUGIN}" | nc -N ${TARGET} 4949 | tail -n +2 | head -n -1)
|
|
|
|
#echo "-----------------"
|
|
#echo "$CONFIG"
|
|
#echo "-----------------"
|
|
#echo "$DATA"
|
|
#echo "-----------------"
|
|
|
|
TABLE_NAME="home_${PLUGIN}" # default
|
|
if [[ $PLUGIN == hue_temp_* ]]; then
|
|
TABLE_NAME="home_hue_temp" # FIXME use config data.sql.table
|
|
fi
|
|
|
|
|
|
IFS=$'\n'; for LINE in ${DATA}; do
|
|
# parse data and insert to database
|
|
#echo $LINE
|
|
|
|
# if [ "${PLUGIN}" = "433mhz" ]; then
|
|
# ZONE=$(echo $LINE | sed -E "s/(.*)_(.*)_(.*)\.(.*) (.*)/\1/")
|
|
# METRIC=$(echo $LINE | sed -E "s/(.*)_(.*)_(.*)\.(.*) (.*)/\3/")
|
|
# VALUE=$(echo $LINE | sed -E "s/(.*)_(.*)_(.*)\.(.*) (.*)/\5/")
|
|
#
|
|
# SQL="INSERT INTO readings (source, metric, value) VALUES (\"${ZONE}\",\"${METRIC}\",\"${VALUE}\");"
|
|
# else
|
|
SQL=$(echo $LINE | sed -E "s/(.*)\.(.*) (.*)/INSERT INTO ${TABLE_NAME} (source, metric, value) VALUES (\"${SOURCE}\",\"\1\", \"\3\");/")
|
|
# fi
|
|
#echo $SQL
|
|
echo $SQL | mysql --host="192.168.0.12" --database="grafanaData" --user="grafanaWriter" --password="${PASSWORD}"
|
|
done # LINE
|
|
done # PLUGINS
|
|
done # TARGETS
|
|
|
|
sleep 300
|
|
|
|
done # FOREVER-LOOP
|