Difference between pages "Weather Networks" and "Add-On Services"

From meteoplug
(Difference between pages)
Jump to: navigation, search
(Expert Mode)
 
 
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
On this page you enable upload to Weather Underground and give credentials needed to make Weather Underground processing your data.
+
<languages /><translate>
 +
<br />Web server of Meteobridge client, which presents web interface for adminstration to you, can also deliver weather data. There are two URLs defined that can be polled to get most recent sensor data in XML or plain text. Although we don't recommend this for security reasons, you can make that URLs accessible from the Internet by configuring your router appropriately. However, when you want to bring sensor data to one of your own servers in the Internet we recommend to make use of Meteobridge's [[Push Services]], which will not need you to open up your firewall.
 +
 +
===Live Data as XML=== <!--T:1-->
 +
By sending the meteobridge a HTTP request like "http://ip-of-meteobridge/cgi-bin/livedataxml.cgi" (where "ip-of-meteobridge" must be replaced by the IP itself) meteobridge returns current weather data in XML notation. Each reply starts witch tag <logger> and ends with </logger> with the sensor data as records with sensor specific tags "THB", "TH", "WIND", "RAIN", "UV", "SOLAR". Example below illustrates the XML format:
  
[[File:page2.png]]
+
<!--T:2-->
 +
<pre><logger>
 +
  <THB date="20121227224318" id="thb0" temp="26.0" hum="37" dew="10.2"
 +
      press="1008.8" seapress="1010.1" fc="2"/>
 +
  <TH date="20130104141909" id="th0" temp="9.1" hum="95" dew="8.3"/>
 +
  <RAIN date="20130104141856" id="rain0" rate="0.0" total="3.0" delta="0.0"/>
 +
  <WIND date="20130104141916" id="wind0" dir="109" gust="0.9" wind="2.2" chill="9.1"/>
 +
</logger></pre>
  
==Upload Interval==
+
<!--T:3-->
You can specify upload intervals from every 5 seconds of up to every hour, when you want to keep your outgoing traffic low. Meteobridge makes use of "rapid fire mode" of Weather Underground when data is sent more than once a minute.
+
Each sensor data record has a mandatory "date" and "id" parameter. The other parameters are sensor specific. Meaning of parameters is:
 +
* '''date''': UTC timestamp of reception of sensor data in format "YYYYMMDDhhmmss"
 +
* '''id''': Unique ID of sensor, consists of a sensor type description shortcut followed by a number, which is always "0" in Meteobridge, as additional sensors are not supported
 +
* '''temp''': temperature in degrees Celsius (with one decimal)
 +
* '''hum''': relative humidity in percent (no decimals)
 +
* '''dew''': dew point temperature in degrees Celsius (with one decimal)
 +
* '''press''': station pressure (without altitude correction) in hPa (with one decimal)
 +
* '''seapress''': normalized pressure with altitude correction (also called sea level pressure) in hPa (with one decimal)
 +
* '''fc''': stations forecast code, if provided. As this has low evidence and also largely varies between stations, meteobridge does not recommend to make use of this data.
 +
* '''rate''': measured rain rate in mm per hour (with one decimal).
 +
* '''total''': current value of rain bucket counter, converted to mm (with one decimal).
 +
* '''delta''': additional rain fall in mm since previous readout of this data (with one decimal).
 +
* '''wind''': current average wind speed im m/s (with one decimal).
 +
* '''gust''': curent not avergaed wind speed in m/s (with one decimal).
 +
* '''dir''': wind direction in degrees (0-359, no decimals).
 +
* '''chill''': wind chill temperature in degrees Celsius (with one decimal).
 +
* more to come...
  
==ID and Password==
+
===Live Data as Plain Text=== <!--T:4-->
When you selected an upload interval Meteobridge also needs your Weather Underground user ID and password. The user ID is the one generated by Weather Underground for you (it is not your login account name used for registration at Weather Underground). When you don't have an upload account at Weather Underground so far, please browse to [http://www.wunderground.com/members/signup.asp membership signup] where you get an account to upload data to for free. During the signup process you are given an ID to be used for identifying your station and you can define a password your own. Please don't use special characters in the password as this is known to be error-prone when used in URLs and/or web input fields.
+
By sending the meteobridge a HTTP request like "http://ip-of-meteobridge/cgi-bin/livedata.cgi" (where "ip-of-meteobridge" must be replaced by the IP itself) meteobridge returns current weather data as plain text. Each reply consists of a series of lines, where each line represnets a sensor. Lines do start with a time stamp and a unique sensor id followed by sensor specific parameters. Example below illustrates the format:
  
When you click the Weather Underground symbol, another browser window will open showing data being stored for your account on Weather Underground for the current day.
+
<!--T:5-->
 +
<pre>20130104142614 thb0 26.9 38 11.4 1020.4 1021.7 2
 +
20130104142610 rain0 0.0 3.0 0.0
 +
20130104142636 th0 9.1 95 8.3
 +
20130104142652 wind0 160 2.2 1.8 8.0</pre>
 +
</translate>
  
==Expert Mode==
+
===Data via Socket Connection===
Setting a mark at "expert mode" checkbox and pressing "Save" brings up additional data upload options, that allow you to send weather data to a twitter account or to an individual HTTP server. Please have a look at sub menu "Add-On Services" to understand how that works.
+
Methods introduced above do need HTTP authentification like all elements of Meteobridge web interface. A look at the script "livedataxml.cgi" shows that this just reads data from socket 5557, gives it a suitable HTTP header and returns that to the requesting browser:
  
==Submit Changes==
+
<pre>#!/bin/sh
When you press "Save" your settings are stored permanently and meteobridge does test, if Weather Underground does accept your credentials. Red marks and an error message indicate failure, while green marks indicate that credentials were tested ok.
+
echo -ne "Content-type: text/xml; charset=UTF-8\n\n"
 +
nc 127.0.0.1 5557 2>/dev/null
 +
</pre>
 +
 
 +
Therefore, reading data from socket 5557 is equivalent to calling "livedataxml.cgi" and socket 5556 reports same data as delivered by "livedata.cgi".

Revision as of 08:53, 20 April 2013


Web server of Meteobridge client, which presents web interface for adminstration to you, can also deliver weather data. There are two URLs defined that can be polled to get most recent sensor data in XML or plain text. Although we don't recommend this for security reasons, you can make that URLs accessible from the Internet by configuring your router appropriately. However, when you want to bring sensor data to one of your own servers in the Internet we recommend to make use of Meteobridge's Push Services, which will not need you to open up your firewall.

Live Data as XML

By sending the meteobridge a HTTP request like "http://ip-of-meteobridge/cgi-bin/livedataxml.cgi" (where "ip-of-meteobridge" must be replaced by the IP itself) meteobridge returns current weather data in XML notation. Each reply starts witch tag <logger> and ends with </logger> with the sensor data as records with sensor specific tags "THB", "TH", "WIND", "RAIN", "UV", "SOLAR". Example below illustrates the XML format:

<logger>
  <THB date="20121227224318" id="thb0" temp="26.0" hum="37" dew="10.2" 
       press="1008.8" seapress="1010.1" fc="2"/>
  <TH date="20130104141909" id="th0" temp="9.1" hum="95" dew="8.3"/>
  <RAIN date="20130104141856" id="rain0" rate="0.0" total="3.0" delta="0.0"/>
  <WIND date="20130104141916" id="wind0" dir="109" gust="0.9" wind="2.2" chill="9.1"/>
</logger>

Each sensor data record has a mandatory "date" and "id" parameter. The other parameters are sensor specific. Meaning of parameters is:

  • date: UTC timestamp of reception of sensor data in format "YYYYMMDDhhmmss"
  • id: Unique ID of sensor, consists of a sensor type description shortcut followed by a number, which is always "0" in Meteobridge, as additional sensors are not supported
  • temp: temperature in degrees Celsius (with one decimal)
  • hum: relative humidity in percent (no decimals)
  • dew: dew point temperature in degrees Celsius (with one decimal)
  • press: station pressure (without altitude correction) in hPa (with one decimal)
  • seapress: normalized pressure with altitude correction (also called sea level pressure) in hPa (with one decimal)
  • fc: stations forecast code, if provided. As this has low evidence and also largely varies between stations, meteobridge does not recommend to make use of this data.
  • rate: measured rain rate in mm per hour (with one decimal).
  • total: current value of rain bucket counter, converted to mm (with one decimal).
  • delta: additional rain fall in mm since previous readout of this data (with one decimal).
  • wind: current average wind speed im m/s (with one decimal).
  • gust: curent not avergaed wind speed in m/s (with one decimal).
  • dir: wind direction in degrees (0-359, no decimals).
  • chill: wind chill temperature in degrees Celsius (with one decimal).
  • more to come...

Live Data as Plain Text

By sending the meteobridge a HTTP request like "http://ip-of-meteobridge/cgi-bin/livedata.cgi" (where "ip-of-meteobridge" must be replaced by the IP itself) meteobridge returns current weather data as plain text. Each reply consists of a series of lines, where each line represnets a sensor. Lines do start with a time stamp and a unique sensor id followed by sensor specific parameters. Example below illustrates the format:

20130104142614 thb0 26.9 38 11.4 1020.4 1021.7 2
20130104142610 rain0 0.0 3.0 0.0
20130104142636 th0 9.1 95 8.3
20130104142652 wind0 160 2.2 1.8 8.0

Data via Socket Connection

Methods introduced above do need HTTP authentification like all elements of Meteobridge web interface. A look at the script "livedataxml.cgi" shows that this just reads data from socket 5557, gives it a suitable HTTP header and returns that to the requesting browser:

#!/bin/sh
echo -ne "Content-type: text/xml; charset=UTF-8\n\n"
nc 127.0.0.1 5557 2>/dev/null

Therefore, reading data from socket 5557 is equivalent to calling "livedataxml.cgi" and socket 5556 reports same data as delivered by "livedata.cgi".