You are not logged in.


Been using this great script for years, but it's suddenly moved from Fahrenheit to Celsius. I can't find the handle to jiggle back to Fahrenheit. Any advice?
#!/bin/bash
wxcache=${HOME}/tmp/wxdata-cached
SITE="Silver Spring"
LATITUDE="39.085100"
LONGITUDE="-77.059000"
CLICK_COMMAND="xfce4-terminal -H --geometry=126x41 -T "Weather" -x curl -s wttr.in/$LATITUDE,$LONGITUDE"
function toDate
{
HOUR=$(echo $1 | awk -F':' '{print $1}')
MINUTE=$(echo $1 | awk -F':' '{print $2}')
case $HOUR in
"00") HOUR="12" AMPM="am" ;;
"01") HOUR="1" AMPM="am" ;;
"02") HOUR="2" AMPM="am" ;;
"03") HOUR="3" AMPM="am" ;;
"04") HOUR="4" AMPM="am" ;;
"05") HOUR="5" AMPM="am" ;;
"06") HOUR="6" AMPM="am" ;;
"07") HOUR="7" AMPM="am" ;;
"08") HOUR="8" AMPM="am" ;;
"09") HOUR="9" AMPM="am" ;;
"10") HOUR="10" AMPM="am" ;;
"11") HOUR="11" AMPM="am" ;;
"12") HOUR="12" AMPM="am" ;;
"13") HOUR="1" AMPM="pm" ;;
"14") HOUR="2" AMPM="pm" ;;
"15") HOUR="3" AMPM="pm" ;;
"16") HOUR="4" AMPM="pm" ;;
"17") HOUR="5" AMPM="pm" ;;
"18") HOUR="6" AMPM="pm" ;;
"19") HOUR="7" AMPM="pm" ;;
"20") HOUR="8" AMPM="pm" ;;
"21") HOUR="9" AMPM="pm" ;;
"22") HOUR="10" AMPM="pm" ;;
"23") HOUR="11" AMPM="pm" ;;
esac
echo "$HOUR:$MINUTE $AMPM"
}
OUT=$(curl ${wxcache} -s wttr.in/$LATITUDE,$LONGITUDE?format="%c\n%h\n%t\n%f\n%w\n%l\n%m\n%M\n%p\n%P\n%D\n%S\n%z\n%s\n%d\n%C\n")
WEATHERICON=$(echo $OUT | awk '{print $1}')
HUMIDITY=$(echo $OUT | awk '{print $2}')
TEMPERATURE=$(echo $OUT | awk '{print $3}' | sed -e 's/+//g' | sed -e 's/^-0/0/g' )
FEELSLIKE=$(echo $OUT | awk '{print $4}' | sed -e 's/+//g' | sed -e 's/^-0/0/g' )
WIND=$(echo $OUT | awk '{print $5}')
LOCATION=$(echo $OUT | awk '{print $6}')
MOONPHASE=$(echo $OUT | awk '{print $7}')
MOONDAY=$(echo $OUT | awk '{print $8}')
PRECIPITATION=$(echo $OUT | awk '{print $9}')
PRESSURE=$(echo $OUT | awk '{print $10}')
DAWN=$(toDate "$(echo $OUT | awk '{print $11}')")
SUNRISE=$(toDate "$(echo $OUT | awk '{print $12}')")
ZENITH=$(toDate "$(echo $OUT | awk '{print $13}')")
SUNSET=$(toDate "$(echo $OUT | awk '{print $14}')")
DUSK=$(toDate "$(echo $OUT | awk '{print $15}')")
WEATHERCONDITION=$(echo $OUT | awk '{print $16" "$17" "$18}')
if [ "$1" == "debug" ]; then
echo "OUT=$OUT"
echo "WEATHERICON=$WEATHERICON"
echo "HUMIDITY=$HUMIDITY"
echo "TEMPERATURE=$TEMPERATURE"
echo "FEELSLIKE=$FEELSLIKE"
echo "WIND=$WIND"
echo "LOCATION=$LOCATION"
echo "MOONPHASE=$MOONPHASE"
echo "MOONDAY=$MOONDAY"
echo "PRECIPITATION=$PRECIPITATION"
echo "PRESSURE=$PRESSURE"
echo "DAWN=$DAWN"
echo "SUNRISE=$SUNRISE"
echo "ZENITH=$ZENITH"
echo "SUNSET=$SUNSET"
echo "DUSK=$DUSK"
echo "WEATHERCONDITION=$WEATHERCONDITION"
fi
#do the genmon
echo -e "<txt><span size='x-large'>$WEATHERICON</span><span rise='5000'> $TEMPERATURE</span></txt>"
echo -e "<txtclick>$CLICK_COMMAND</txtclick>"
echo -e "<tool><span font_desc='Bold 16'>$WEATHERICON</span> <b><big>$SITE</big></b>
$TEMPERATURE <small>and</small> $WEATHERCONDITION
<small>
Feels like:\t$FEELSLIKE
Humidity:\t$HUMIDITY
Wind:\t\t$WIND
Precipitation:\t$PRECIPITATION
Pressure:\t$PRESSURE
Rise/Set:\t$SUNRISE / $SUNSET
Moon:\t\t$MOONPHASE
</small>
<span size='x-small'>$(date)</span></tool>"
exit 0Last edited by jakfish (2026-03-18 14:37:41)
Offline


Are you using a VPN that places you outside the US? It uses geo-location to determine whether to use F or C.
Try add a "&?u" to the end of curl command to force imperial:
OUT=$(curl ${wxcache} -s wttr.in/$LATITUDE,$LONGITUDE?format="%c\n%h\n%t\n%f\n%w\n%l\n%m\n%M\n%p\n%P\n%D\n%S\n%z\n%s\n%d\n%C\n&?u")You might also want to change the CLICK_COMMAND to match:
CLICK_COMMAND="xfce4-terminal -H --geometry=126x41 -T "Weather" -x curl -s wttr.in/$LATITUDE,$LONGITUDE&?u"Mark solved threads as [SOLVED] to make it easier for others to find solutions.
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline


OUT=$(curl ${wxcache} -s wttr.in/$LATITUDE,$LONGITUDE?format="%c\n%h\n%t\n%f\n%w\n%l\n%m\n%M\n%p\n%P\n%D\n%S\n%z\n%s\n%d\n%C\n&?u")That change was all I needed, back to Fahrenheit 451! And no, I'm not using a VPN and I didn't play with the script until just now (perhaps a change in wttr.in itself, as they were down a couple of weeks ago).
Glad it happened, though, as I had always wondered how to set up a Fahrenheit output.
Many thanks, ToZ, and I'm marking the thread as solved.
Last edited by jakfish (2026-03-18 14:38:48)
Offline
[ Generated in 0.011 seconds, 7 queries executed - Memory usage: 535.04 KiB (Peak: 536.94 KiB) ]