Sida 1 av 1
Jämföra 2 temperaturer?
Postat: 13 sep 2012, 15:38
av noak
Försöker få till en funktion som läser av två olika mätpunkter och sedan spara lägsta temperaturen för att få ut vilken som är i skugga. Optimala skulle även vara att om värdet från UteTemp2 inte går att läsa eller ger orimligt värde så väljs automatiskt UteTemp1
Det jag är osäker på är hur man använder större/mindre än med två variabler i linux.
Kod: Markera allt
UteTemp1=`cat /mnt/1wire/$OutsideTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
UteTemp2="`wget -qO- http://192.168.2.15:82/gettemp.asp`"
if ["$UteTemp1" <= "$UteTemp2"]
then
echo "$UteTemp1" > /srv/www/temp.ithemmet.se/public_html/index.html
else
echo "$UteTemp2" > /srv/www/temp.ithemmet.se/public_html/index.html
fi
Re: Jämföra 2 temperaturer?
Postat: 13 sep 2012, 17:21
av Plutonium
Testa detta.
Kod: Markera allt
<?php
$north = "-45.50";
$east = "-23.45";
if ($north < $east){
$lowest = "North";
$temp = $north;
}
else{
$lowest = "East";
$temp = $east;
}
echo "$lowest har lägst temp: $temp grader";
Re: Jämföra 2 temperaturer?
Postat: 13 sep 2012, 21:48
av noak
Tackar, hade i första hand hoppas på att kunna köra bash script men nu fick jag till så att det fungerar med php och att scriptet både hämtar från owfs och från en url.
Re: Jämföra 2 temperaturer?
Postat: 15 sep 2012, 21:38
av daromer
I bash jämför man siffror med -gt -eq- -lt o.s.v
Googla Bash advanced scripting så hittar du.
Re: Jämföra 2 temperaturer?
Postat: 25 okt 2012, 14:13
av bertilson
daromer skrev:I bash jämför man siffror med -gt -eq- -lt o.s.v
Jag har själv försökt att få fram ett script som jämför temperaturen ute med den inne, så att jag vet om jag skall vädra eller inte
Har däremot inte lyckats med att få ett bash script att jämnför decimaltal.
Min kod:
Kod: Markera allt
#!/bin/bash
# declare variables
INSIDE=23,32
OUTSIDE=28,43
echo $INSIDE
echo $OUTSIDE
#compare if cooler inside than outside
if [ $OUTSIDE -gt $INSIDE ]
then
echo "it's colder inside"
else
echo "it's colder outside"
fi
svaret jag får när jag kör scriptet:
per@server:~/bin$ ./temp_led.sh
23,32
28,43
./temp_led.sh: rad 10: [: 28,43: heltalsuttryck förväntades
it's colder outside
Några bra ideér för detta?
Kanske bara plocka bort kommatecknet på något bra sätt.
Re: Jämföra 2 temperaturer?
Postat: 25 okt 2012, 15:06
av Plutonium
Finns ett sätt i bash att arbete med kommatecken och det är med kommandot "bc".
Se här:
http://hacktux.com/bash/math
Men labba med det färdiga skriptet längre upp i tråden. Det kör jag med.
Re: Sv: Jämföra 2 temperaturer?
Postat: 25 okt 2012, 17:01
av bertilson
Tack, men ditt script är för php, jag ska ha ett för bash.
Bc har jag varit inne på men då blir det problem med mina komma decimaler, BC vill ha punkter som decimal.
Men det går väl iofs att byta med awk.
Skickat från min LT26i via Tapatalk 2
Re: Jämföra 2 temperaturer?
Postat: 25 okt 2012, 20:59
av bertilson
Detta får jag att fungera,
tar mitt decimalvärde *100 och plockar sedan bort pukten och allt efter.
Kod: Markera allt
#!/bin/bash
# declare variables
#INSIDE=2332
#OUTSIDE=28.43
INSIDE=`cat /var/rrddata/last_value/vardagsrum`
OUTSIDE=`cat /var/rrddata/last_value/outside`
INSIDE=`echo $INSIDE"*100"|bc | awk -F '.' '{ print $1; exit; }'`
OUTSIDE=`echo $OUTSIDE"*100"|bc | awk -F '.' '{ print $1; exit; }'`
#compare if cooler inside than outside
if [ $OUTSIDE -gt $INSIDE ]
then
echo "it's colder inside"
else
echo "it's colder outside"
fi
Alterativ två, för att bara jämnföra:
Kod: Markera allt
#!/bin/bash
# declare variables
INSIDE=`cat /var/rrddata/last_value/vardagsrum`
OUTSIDE=`cat /var/rrddata/last_value/outside`
if (( $(bc <<< $INSIDE">"$OUTSIDE) > 0 ))
then
echo "Colder outside"
else
echo "Colder inside"
fi
exit