Okej, jag har pulat lite nu med hjälp av det som finns tillgängligt på nätet.
Vindhastigheten tar jag i mitt "vanliga" script för övrig mätning med hjälp av följande logik:
Kod: Markera allt
vind=`cat /var/1-wire/mnt/uncached/1D.987101000000/counters.A|tr -d " "`
vind_raw=/var/http/reimer/tmp/onewire/vind_raw.txt
vind_ms=/var/http/reimer/tmp/onewire/vind_ms.txt
#Vindstyrka
vind_last=`cat $vind_raw`
echo $vind > $vind_raw
echo scale=2\; \( $vind - $vind_last \) / 120 \* 0.2453 | bc > $vind_ms
vind_mps=`cat $vind_ms`
Tyvärr får jag aldeles för låga värden med det, som nu när vägverkets stationer i området ger ett snitt på ungefär 5m/s och variationen är mellan 2 och 9m/s får jag ett max på 1.2m/s
Då är altså min station placerad strax ovanför taknocken och vinden sliter rätt bra i huset.
Vindriktningen är däremot lite enklare, om än betydligt omständigare, så det blev ett eget script:
Kod: Markera allt
#/bin/bash
vindvoltA=`cat /var/1-wire/mnt/uncached/20.CDFE00000000/volt.A`
vindvoltB=`cat /var/1-wire/mnt/uncached/20.CDFE00000000/volt.B`
vindvoltC=`cat /var/1-wire/mnt/uncached/20.CDFE00000000/volt.C`
vindvoltD=`cat /var/1-wire/mnt/uncached/20.CDFE00000000/volt.D`
low="2"
high="4.5"
if [ $(echo "$vindvoltA < $low"|bc) -eq 1 ]
then
vindriktningA="0"
fi
if [ $(echo "$vindvoltA > $low"|bc) -eq 1 ] && [ $(echo "$vindvoltA < $high"|bc) -eq 1 ]
then
vindriktningA="1"
fi
if [ $(echo "$vindvoltA > $high"|bc) -eq 1 ]
then
vindriktningA="2"
fi
if [ $(echo "$vindvoltB < $low"|bc) -eq 1 ]
then
vindriktningB="0"
fi
if [ $(echo "$vindvoltB > $low"|bc) -eq 1 ] && [ $(echo "$vindvoltB < $high"|bc) -eq 1 ]
then
vindriktningB="1"
fi
if [ $(echo "$vindvoltB > $high"|bc) -eq 1 ]
then
vindriktningB="2"
fi
if [ $(echo "$vindvoltC < $low"|bc) -eq 1 ]
then
vindriktningC="0"
fi
if [ $(echo "$vindvoltC > $low"|bc) -eq 1 ] && [ $(echo "$vindvoltC < $high"|bc) -eq 1 ]
then
vindriktningC="1"
fi
if [ $(echo "$vindvoltC > $high"|bc) -eq 1 ]
then
vindriktningC="2"
fi
if [ $(echo "$vindvoltD < $low"|bc) -eq 1 ]
then
vindriktningD="0"
fi
if [ $(echo "$vindvoltD > $low"|bc) -eq 1 ] && [ $(echo "$vindvoltD < $high"|bc) -eq 1 ]
then
vindriktningD="1"
fi
if [ $(echo "$vindvoltD > $high"|bc) -eq 1 ]
then
vindriktningD="2"
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 0 ]
then
vindriktning=0
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 0 ] && [ $vindriktningD -eq 0 ]
then
vindriktning=1
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 0 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=2
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 0 ] && [ $vindriktningC -eq 0 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=3
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 0 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=4
fi
if [ $vindriktningA -eq 0 ] && [ $vindriktningB -eq 0 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=5
fi
if [ $vindriktningA -eq 0 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=6
fi
if [ $vindriktningA -eq 0 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 1 ]
then
vindriktning=7
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 1 ]
then
vindriktning=8
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 1 ] && [ $vindriktningD -eq 1 ]
then
vindriktning=9
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 1 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=10
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 1 ] && [ $vindriktningC -eq 1 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=11
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 1 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=12
fi
if [ $vindriktningA -eq 1 ] && [ $vindriktningB -eq 1 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=13
fi
if [ $vindriktningA -eq 1 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=14
fi
if [ $vindriktningA -eq 1 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 0 ]
then
vindriktning=15
fi
echo $vindriktning >/var/http/reimer/tmp/onewire/vindriktning.txt
#Graphs
time=`date +%s`
rrdvindriktning=`echo "$time:$vindriktning"`
rrdtool update /var/rrd/vind-riktning.rrd $rrdvindriktning
Den ger altså ut ett värde på 0-15 för vindriktningar från norr till nord, nord-väst. Den verkar vara helt rimlig.
(Även om grafen behöver masseras lite för att ge ett snyggt medel-värde)
De två graferna finns här:
http://reimer.nu/tmp/onewire/24-vind.png och
http://reimer.nu/tmp/onewire/24-vindriktning.png
Jag bifogar dem även, eftersom jag tydligen har något strul med min lina fortfarande. Men vindriktningen har inte hunnit få speciellt mycket data i sig ännu.

- Vindstyrka

- Vindriktning