Jämföra 2 temperaturer?

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum

Moderator: elf98

Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
noak
Gillar hemautomation
Inlägg: 40
Blev medlem: 25 dec 2011, 18:02
Ort: Västmanland

Jämföra 2 temperaturer?

Inlägg av noak » 13 sep 2012, 15:38

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

Användarvisningsbild
Plutonium
Moderator
Inlägg: 1237
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Jämföra 2 temperaturer?

Inlägg av Plutonium » 13 sep 2012, 17:21

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";
http://essunga.org
Moderator - Temperatur.nu

noak
Gillar hemautomation
Inlägg: 40
Blev medlem: 25 dec 2011, 18:02
Ort: Västmanland

Re: Jämföra 2 temperaturer?

Inlägg av noak » 13 sep 2012, 21:48

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.

daromer
Hemautomation - det är mer än en hobby
Inlägg: 961
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: Jämföra 2 temperaturer?

Inlägg av daromer » 15 sep 2012, 21:38

I bash jämför man siffror med -gt -eq- -lt o.s.v

Googla Bash advanced scripting så hittar du.

bertilson
Tar hemautomation på allvar
Inlägg: 121
Blev medlem: 21 dec 2009, 11:41
Ort: Borås

Re: Jämföra 2 temperaturer?

Inlägg av bertilson » 25 okt 2012, 14:13

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.

Användarvisningsbild
Plutonium
Moderator
Inlägg: 1237
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Jämföra 2 temperaturer?

Inlägg av Plutonium » 25 okt 2012, 15:06

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.
http://essunga.org
Moderator - Temperatur.nu

bertilson
Tar hemautomation på allvar
Inlägg: 121
Blev medlem: 21 dec 2009, 11:41
Ort: Borås

Re: Sv: Jämföra 2 temperaturer?

Inlägg av bertilson » 25 okt 2012, 17:01

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

bertilson
Tar hemautomation på allvar
Inlägg: 121
Blev medlem: 21 dec 2009, 11:41
Ort: Borås

Re: Jämföra 2 temperaturer?

Inlägg av bertilson » 25 okt 2012, 20:59

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

Skriv svar