diff options
Diffstat (limited to 'modules/temp')
-rwxr-xr-x | modules/temp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/modules/temp b/modules/temp new file mode 100755 index 00000000..047dfa5b --- /dev/null +++ b/modules/temp @@ -0,0 +1,41 @@ +#! /bin/bash + +main() { + case "$1" in + (--help) + echo "report temperature in K, °C, °R, or °F." + ;; + (-C|--celsius) + echo `temp 'x - 273.15'` Grad Zelsius | to_espeak + ;; + (-F|--fahrenheit) + echo `temp 'x * 9/5 - 459.67'` Grad Fahrenheit | to_espeak + ;; + (-R|--rankine) + echo `temp 'x * 9/5'` Grad Renkin | to_espeak + ;; + (-K|--kelvin|*) + echo `temp` Kelvin | to_espeak + ;; + esac +} + +## temp [<formula with temperature as x>] +## Echo temperature in K. If formula is given then return that result instead. +temp() { + echo "scale=2; x=`dig +short txt outside.elwood.temp.citecs.de | + sed 's/^"DEG \([0-9]\+\.[0-9]\+\)"$/\1/' + ` + 273.15; ${1-x}" | bc +} + +to_espeak() { + sed ' + s/\(\.[0-9]\)0\+/\1/g + s/\(\.[0-9]\)\([0-9]\)[0-9]*/ \1 \2 /; + s/^-/minus /; + s/\./ komma /; + s:^:/espeak -v Die Außen-tempera-tur beträgt :; + ' >$NOISE_linefeed +} + +main "$@" |