100 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# -*- bash -*-
: << =cut
=head1 NAME
433mhz - Plugin to capture readings from wireless sensors via serial
=head1 NOTES
=head1 AUTHOR
Contributed by Florian Klemenz
=head1 LICENSE
GPLv2
=head1 MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf
=cut
source $MUNIN_LIBDIR/plugins/plugin.sh
if [ "$1" = "autoconf" ]; then
echo yes
exit 0
fi
if [ "$1" = "config" ]; then
echo 'graph_title Wireless temperature sensor readings'
echo 'graph_args --base 1 -l 0 '
echo 'graph_scale no'
echo 'graph_vlabel °C'
echo 'graph_category temperature'
echo 'temp.label Vorratskammer'
echo 'temp.draw LINE'
print_warning temp
print_critical temp
exit 0
fi
# DATA TYPE IDs
#define TYPE_TEMPERATURE 1
#define TYPE_HUMIDITY 2
#define TYPE_VOLTAGE 3
TYPES=( none tmp hmd vlt )
CMD="arduino | tail -n +2"
IFS=$'\n'
SENSORS=( $(eval $CMD) )
#declare -p SENSORS
IFS=' '
for ROW in "${SENSORS[@]}"; do
ENTRY=( $ROW )
NODE=${ENTRY[0]}
SENSOR=${ENTRY[1]}
VALUE=${ENTRY[2]}
TYPE=${ENTRY[3]}
TTL=$(echo "${ENTRY[4]}" | tr -d '[:space:]')
if [ "$TTL" != "0" ] || [ ${ignore_ttl} ]; then
# Overrides NODE - Example: env.node_0 Wohnzimmer
ENV_NODE_VAR_NAME="node_${NODE}"
ENV_NODE_NAME=${!ENV_NODE_VAR_NAME}
# Overrides SENSOR - Example: env.sensor_0_0 Batterie
ENV_SENSOR_VAR_NAME="sensor_${NODE}_${SENSOR}"
ENV_SENSOR_NAME=${!ENV_SENSOR_VAR_NAME}
if [ -n "${ENV_SENSOR_NAME}" ]; then
echo "${ENV_NODE_NAME:-$NODE}_${SENSOR}_${ENV_SENSOR_NAME}.value ${VALUE}"
else
# Overrides TYPE - Example: env.type_1 Batterie
ENV_TYPE_VAR_NAME="type_${TYPE}"
ENV_TYPE_NAME=${!ENV_TYPE_VAR_NAME}
if [ -n "${ENV_TYPE_NAME}" ]; then
echo "${ENV_NODE_NAME:-$NODE}_${SENSOR}_${ENV_TYPE_NAME}.value ${VALUE}"
else
echo "${ENV_NODE_NAME:-$NODE}_${SENSOR}_${TYPES[$TYPE]}.value ${VALUE}"
fi
fi
#echo "${ENV_NODE_NAME:-$NODE}_${ENV_SENSOR_NAME:-$SENSOR}_${TYPES[$TYPE]}.value ${VALUE}"
fi
done
#echo "Vorratskammer.value $TEMP"