It is currently April 26th, 2024, 5:19 am

How to make the Weather work?

Get help with creating, editing & fixing problems with skins
SolarFire
Posts: 6
Joined: December 16th, 2011, 10:40 pm

How to make the Weather work?

Post by SolarFire »

I'm completely new to Rainmeter, and I'm having a very significant issue on how to make Weather applications work. Could someone please be kind enough to give me step-by-step instructions on where to put this URL from Weather.com? Thanks!

(P.S.: I looked in the tips and tricks section on the main site for this, and it told me to put in in the 'appropriate place'. unfortunately, I don't know where that is.)
User avatar
smurfier
Moderator
Posts: 1931
Joined: January 29th, 2010, 1:43 am
Location: Willmar, MN

Re: How to make the Weather work?

Post by smurfier »

Could you please provide a link to the skin you are using.
GitHub | DeviantArt | Tumblr
This is the song that never ends. It just goes on and on my friends. Some people started singing it not knowing what it was, and they'll continue singing it forever just because . . .
SolarFire
Posts: 6
Joined: December 16th, 2011, 10:40 pm

Re: How to make the Weather work?

Post by SolarFire »

User avatar
jsmorley
Developer
Posts: 22630
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: How to make the Weather work?

Post by jsmorley »

First, go to here: http://weather.yahoo.com/

Find the weather for your city, state, country using the "Enter City or Zip Code" field on that page.

Now you will have a new URL at the top of your browser. It will look like:

http://weather.yahoo.com/united-states/virginia/chantilly-2378074/

Only specific to your location instead of mine of course.

Now under "Manage" in Rainmeter (you can get to Manage from the skin or main Rainmeter context menu) find the skin "Aperture Labs\AbertureWeather.ini" and click "Edit" on the top right.

In your text editor, scroll down and change:

[Variables]
WeatherCode=2378074
Unit=F

Putting the number at the end of YOUR Yahoo Weather URL as the WeatherCode=, instead of mine... You can also change the Unit=F to Unit=C if you want Celsius instead of Fahrenheit.

Then, change this line.

Url=http://weather.yahooapis.com/forecastrss?p=#WeatherCode#&u=#Unit#

Where it has ?p=#WeatherCode#, change it to ?w=#WeatherCode#, so you end up with:

Url=http://weather.yahooapis.com/forecastrss?w=#WeatherCode#&u=#Unit#

This is due to this skin using a old weather code system that Yahoo is phasing out. IF you live in the USA, you can leave the ?p=#WeatherCode# and just use your Zip Code as the WeatherCode=, but if you are outside the USA, you will need the new WOEID method, and I encourage it in any case as Yahoo may eventually just do away with the old system in general.

Save and refresh the skin, and it should work fine for you.
SolarFire
Posts: 6
Joined: December 16th, 2011, 10:40 pm

Re: How to make the Weather work?

Post by SolarFire »

Alright, I'll try.

EDIT: My text

Code: Select all

[Rainmeter]
Author=author@wistfulwriter.com
Update=5000
DynamicWindowSize=1

[Metadata]
Name=Aperture Laboratories Climate Hazard Indicator | Portal 2 Weather/Time Display
Description=Themed from the Portal video game from Valve, this is a simple text indicator of the current 

temperature and weather conditions. 
Credits=All credit for the original work goes to P2C who created the ABP weather skin: I just modified it.
Instructions=Please change your weather code. Instructions are at this URL (use the Yahoo Weather 

instructions): http://rainmeter.net/RainCMS/?q=tipsandtricksweathercode
Version=1.36
Tags=Portal | Aperture Laboratories | Weather | Diagram | Video Game | Time
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0
Preview=preview2.jpg

[Variables]
WeatherCode=27253
Unit=F
@Include="#ROOTCONFIGPATH#Fonts\Fonts.inc"
ThisWidth=384
ThisFontSize=43
ThisFontSizeSmall=14
ThisColor=#White#

[CalcCenter]
Measure=Calc
Formula=#ThisWidth#/2
DynamicVariables=1

[CalcImgWidth]
Measure=Calc
Formula=#ThisWidth#*0.7

[MeasureWeatherRSS]
Measure=Plugin
Plugin=Plugins\WebParser.dll
UpdateRate=1800
Url=http://weather.yahooapis.com/forecastrss?p=#WeatherCode#&u=#F#
RegExp=(?siU)<link.*>(.*)</link>.*city=\"(.*)\".*sunrise=\"(.*)\".*sunset=\"(.*)\".*<image>.*<url>(.*)

</url>.*<title>.*:.*m .*(.*)</title>.*lat>(.*)<.*long>(.*)<.*yweather:condition.*text=\"(.*)\".*code=\"(.*)

\".*temp=\"(.*)\".*yweather:forecast.*day=\"(.*)\".*high=\"(.*)\".*code=\"(.*)

\".*yweather:forecast.*day=\"(.*)\".*high=\"(.*)\".*code=\"(.*)\".*
StringIndex=1

[MeasureWeatherTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=http://weather.yahooapis.com/forecastrss?p=#WeatherCode#&u=#F#
StringIndex=11

[MeasureWeatherIcon]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=http://weather.yahooapis.com/forecastrss?p=#WeatherCode#&u=#F#
StringIndex=10

[MeasureWeatherDesc]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=http://weather.yahooapis.com/forecastrss?p=#WeatherCode#&u=#F#
StringIndex=9

[MeasureTime]
Measure=Time
Format=%H:%M

[BackgroundGlow]
Meter=IMAGE
ImageName=bgglow.png
Hidden=1

[Background]
Meter=IMAGE
ImageName=#ROOTCONFIGPATH#Resources\weatherblue.png
W=#ThisWidth#
DynamicVariables=1

[MeterTimeString]
Meter=STRING
MeterStyle=StyledText
X=[CalcCenter]
Y=64
DynamicVariables=1
Text=The time is now

[TheCurrentTime]
MeasureName=MeasureTime
Meter=STRING
MeterStyle=StyledNumbers
X=[CalcCenter]
Y=32r
DynamicVariables=1

[StringTemperatureText]
Meter=STRING
MeterStyle=StyledText
X=[CalcCenter]
Y=128r
DynamicVariables=1
Text=The current temperature is

[CurrentTemperature]
Meter=STRING
MeasureName=MeasureWeatherTemp
MeterStyle=StyledNumbers
X=[CalcCenter]
Y=32r
Postfix="°"
DynamicVariables=1

[CurrentIcon]
Meter=Image
MeasureName=MeasureWeatherIcon
Path="#CURRENTPATH#\icons"
;Path="#SKINSPATH#\ABP\Resources\Weather\LargeIcons"
X=64
Y=64r
W=[CalcImgWidth]
Align=CENTER
Hidden=0
Greyscale=1
ImageTint=#ThisColor#
DynamicVariables=1

[WeatherDescription]
Meter=STRING
MeterStyle=StyledText
MeasureName=MeasureWeatherDesc
X=[CalcCenter]
Y=272r
DynamicVariables=1

;=========================
;====== Decorations ======
[ScreenSides]
Meter=IMAGE
ImageName=#ROOTCONFIGPATH#Resources\screensides.png
ImageAlpha=185
W=#ThisWidth#
DynamicVariables=1

[Overlay]
Meter=IMAGE
ImageName=#ROOTCONFIGPATH#Resources\decoration.png
ImageAlpha=185
W=#ThisWidth#
DynamicVariables=1
;=========================
Where did I go wrong? I followed the footnote AND the instructions.
Last edited by SolarFire on December 17th, 2011, 8:18 pm, edited 1 time in total.
User avatar
jsmorley
Developer
Posts: 22630
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: How to make the Weather work?

Post by jsmorley »

There is no try. Do or do not... ;-)
SolarFire
Posts: 6
Joined: December 16th, 2011, 10:40 pm

Re: How to make the Weather work?

Post by SolarFire »

The edit, sir. o_o
User avatar
jsmorley
Developer
Posts: 22630
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: How to make the Weather work?

Post by jsmorley »

Url=http://weather.yahooapis.com/forecastrss?p=#WeatherCode#&u=#F#

I didn't say to change the u=#Unit# to u=#F#. Leave that line alone, and just change Unit=F up in [Variables] if it is not already set to F. Since there is no variable called "F" in [Variables], Yahoo is getting:

Url=http://weather.yahooapis.com/forecastrss?p=#WeatherCode#&u=

and is probably choking on it.

Set that line back to:

Url=http://weather.yahooapis.com/forecastrss?p=#WeatherCode#&u=#Unit#
SolarFire
Posts: 6
Joined: December 16th, 2011, 10:40 pm

Re: How to make the Weather work?

Post by SolarFire »

Fixed. Still nothing.
User avatar
jsmorley
Developer
Posts: 22630
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: How to make the Weather work?

Post by jsmorley »

There have been some changes made to the original skin that are causing it not to work...

You need to change these sections to look like this:

Code: Select all

[MeasureWeatherRSS]
Measure=Plugin
Plugin=Plugins\WebParser.dll
UpdateRate=1800
Url=http://weather.yahooapis.com/forecastrss?p=#WeatherCode#&u=#Unit#
RegExp="(?siU)<link.*>(.*)</link>.*city=\"(.*)\".*sunrise=\"(.*)\".*sunset=\"(.*)\".*<image>.*<url>(.*)</url>.*<title>.*:.*m.*(.*)</title>.*lat>(.*)<.*long>(.*)<.*yweather:condition.*text=\"(.*)\".*code=\"(.*)\".*temp=\"(.*)\".*yweather:forecast.*day=\"(.*)\".*high=\"(.*)\".*code=\"(.*)\".*yweather:forecast.*day=\"(.*)\".*high=\"(.*)\".*code=\"(.*)\".*"

[MeasureWeatherTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=11

[MeasureWeatherIcon]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=10

[MeasureWeatherDesc]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=9
The two main issues were:
1. Somehow your RegExp= line was physically "wrapped" and no longer was on one line. The statement must be all on one line in your editor.
2. You are misunderstanding how WebParser works with a "main / parent" measure that goes out to the site and gets a bunch of information into "StringIndexes", and how the "secondary / child" measures work that then use that information. See how I changed the "URL=" lines on the secondary measures that want values from the main [MeasureWeatherRSS] measure.