SHOW:
|
|
- or go back to the newest paste.
1 | require 'net/http' | |
2 | require 'xmlsimple' | |
3 | ||
4 | # Get a WOEID (Where On Earth ID) | |
5 | # for your location from here: | |
6 | # http://woeid.rosselliot.co.nz/ | |
7 | - | woe_id = 12770218 |
7 | + | woe_id_array = [12770217,12770218,12770219] |
8 | ||
9 | # Temerature format: | |
10 | # 'c' for Celcius | |
11 | # 'f' for Fahrenheit | |
12 | format = 'f' | |
13 | ||
14 | SCHEDULER.every '15m', :first_in => 0 do |job| | |
15 | http = Net::HTTP.new('weather.yahooapis.com') | |
16 | - | response = http.request(Net::HTTP::Get.new("/forecastrss?w=#{woe_id}&u=#{format}")) |
16 | + | woe_id_array.each do |woe_id| |
17 | - | weather_data = XmlSimple.xml_in(response.body, { 'ForceArray' => false })['channel']['item']['condition'] |
17 | + | response = http.request(Net::HTTP::Get.new("/forecastrss?w=#{woe_id}&u=#{format}")) |
18 | - | weather_city = XmlSimple.xml_in(response.body, { 'ForceArray' => false })['channel']['location'] |
18 | + | weather_data = XmlSimple.xml_in(response.body, { |
19 | - | send_event('weather', { :temp => "#{weather_data['temp']}°#{format.upcase}", :condition => weather_data['text'], :title => weather_city['city'] }) |
19 | + | 'ForceArray' => false })['channel']['item']['condition'] |
20 | weather_city = XmlSimple.xml_in(response.body, { | |
21 | 'ForceArray' => false })['channel']['location'] | |
22 | send_event('weather', { | |
23 | :temp => "#{weather_data['temp']}°#{format.upcase}", | |
24 | :condition => weather_data['text'], | |
25 | :title => weather_city['city'] }) | |
26 | end | |
27 | end |