Jämföra 2 temperaturer?

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum
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 »

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: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Jämföra 2 temperaturer?

Inlägg 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";
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 »

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: 962
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: Jämföra 2 temperaturer?

Inlägg av daromer »

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

Googla Bash advanced scripting så hittar du.
Användarvisningsbild
bertilson
Tar hemautomation på allvar
Inlägg: 133
Blev medlem: 21 dec 2009, 11:41
Ort: Borås

Re: Jämföra 2 temperaturer?

Inlägg 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.
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Jämföra 2 temperaturer?

Inlägg 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.
http://essunga.org
Moderator - Temperatur.nu
Användarvisningsbild
bertilson
Tar hemautomation på allvar
Inlägg: 133
Blev medlem: 21 dec 2009, 11:41
Ort: Borås

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

Inlägg 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
Användarvisningsbild
bertilson
Tar hemautomation på allvar
Inlägg: 133
Blev medlem: 21 dec 2009, 11:41
Ort: Borås

Re: Jämföra 2 temperaturer?

Inlägg 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
Skriv svar