#!/bin/sh # -*- sh -*- : << =cut =head1 NAME usb-wde1 - Munin plugin to report usb-wde1 temperature and humidity data =head1 CONFIGURATION The plugin offers two modes: temperature and humidity graphing. Symlink usb-wde1_ as "usb-wde1_temperature" and/or "usb-wde1_humidity". =head2 EXAMPLE CONFIGURATION [usb-wde1_*] env.logfile /var/log/usb-wde1.log env.host_name House env.sensors 0 1 2 3 4 7 env.sensor0 Living room env.sensor1 Kitchen =head1 MAGIC MARKERS #%# family=manual #%# capabilities=autoconf suggest =cut TYPE=`basename $0 | sed 's/^.*_//g'` if [ "$1" = "autoconf" ]; then if [ ! -r "$logfile" ]; then echo "no (Logfile \"$logfile\" does not exist)" elif [ "$TYPE" != "temperature" -a "$TYPE" != "humidity" ]; then echo "no (Type \"$TYPE\" not supported, try \"./usb-wde1_ suggest\")" else echo yes fi exit 0 elif [ "$1" = "suggest" ]; then echo temperature echo humidity exit 0 fi ############### #load variables ############### # Sensors to display if [ "$sensors" = "" ]; then sensors="0 1 2 3 4 5 6 7" fi # Sensor names for i in $sensors; do code="sensor$i=\${sensor$i:=Sensor $i}" eval $code done # FIXME: Warning/critical values if [ "$1" = "config" ]; then if [ "$host_name" != "" ]; then echo "host_name $host_name" fi if [ "$TYPE" = "temperature" ]; then echo 'graph_title Temperature' #echo 'graph_args --base 1000 --lower-limit -30 --upper-limit 60' echo 'graph_args --base 1000' echo 'graph_vlabel Temperature' echo 'graph_info Shows the temperature of different thermometers' else echo 'graph_title Humidity' #echo 'graph_args --base 1000 --lower-limit 0 --upper-limit 100' echo 'graph_args --base 1000' echo 'graph_vlabel Humidity' echo 'graph_info Shows the air humidity of different thermometers (in %)' fi echo 'graph_scale no' echo 'graph_category sensors' #FIXME: warning/critical values for i in $sensors; do eval "name=\$sensor$i" echo "sensor$i.label $name" done exit 0 fi #split by semicolons OLDIFS="$IFS" IFS=";" read -r startzeichen zustand zeitstempel\ t0 t1 t2 t3 t4 t5 t6 t7\ h0 h1 h2 h3 h4 h5 h6 h7\ tc hc ws ns rain checksum\ < "$logfile" IFS=$OLDIFS #FIXME: check startzeichen #FIXME: check timestamp if [ "$TYPE" = "temperature" ]; then varprefix=t else varprefix=h fi for i in $sensors; do eval "value=\$$varprefix$i" value=`echo $value|sed s/,/./` echo "sensor$i.value $value" done