Difference between revisions of "Add-On Services/de"

From meteoplug
Jump to: navigation, search
(Created page with "Zusatzdienste")
 
 
(34 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
<languages /><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.
+
<languages /><br />Der in Meteobridge enthaltene Web-Server kann neben der Realisierung des Administrationsinterfaces auch Anfragen zu den aktuell vorliegenden Wetterdaten beantworten. Es sind drei HTTP-Dienste definiert, unter denen man diese Daten abrufen kann, entweder in standardisierter Form als Textdatei oder als XML-Datenstrom oder in einem bentzerdefinierten Format. Auch wenn es aus Sicherheitsgründen nicht empfehlenswert ist, diesen Zugang für einen Zugriff von außerhalb des LANs zu öffnen, könnte man beim Aufschalten der Firewall des LANs diese Art der Abfragemöglichkeit für Anfragen von Außen zugänglich machen. Für die Anlieferung von Daten ins Internet empfehlen sich die die unter [[Push_Services/de|Sendedienste]] aufgeführten Methoden.
+
Hinweis: Um die HTTP-Dienste aufrufenzu können ist eine HTTP-Authentifizierung mit Benutzernamen und Passwort notwendig. Diese erfolgt als Präfix zur URL in der Form "<Benutzername>:<Passwort>@".
===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:
+
===Live-Daten als XML===
 +
Mit dem Meteobridge HTTP-Request wie "http://ip-of-meteobridge/cgi-bin/livedataxml.cgi", wobei "ip-of-meteobridge" durch die korrekte IP der Meteobridge ersetzt werden muss, liefert Meteobridge Wetterdaten in XML-Notation aus. Die von Meteobridge erzeugte Ausgabe beginnt mit "<logger>" und endet mit "</logger>". Die Werte der Sensoren werden mit den sensorspezifischen Tags "THB", "TH", "SOIL", "LEAF", "WIND", "RAIN", "UV", "SOLAR" berichtet. Das anhängende Beispiel illustriert das XML-Format:
  
 
<pre><logger>
 
<pre><logger>
Line 13: Line 14:
 
</logger></pre>
 
</logger></pre>
  
Each sensor data record has a mandatory "date" and "id" parameter. The other parameters are sensor specific. Meaning of parameters is:
+
Jedes Sensordatenpaket enthält immer die Felder "date" und "id". Die anderen Parameter sind sensorspezifisch. Die Bedeutung der Parameter ist wie folgt:
* '''date''': UTC timestamp of reception of sensor data in format "YYYYMMDDhhmmss"
+
* '''date''': UTC Zeitstempel der Sensordaten im Format "JJJJMMTThhmmss"
* '''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
+
* '''id''': ID des Sensors, die aus einem Sensorkurzbezeichnung gefolgt von einer Zahl ("0") besteht.
* '''temp''': temperature in degrees Celsius (with one decimal)
+
* '''temp''': Temperatur in Grad Celsius (mit einer Nachkommastelle)
* '''hum''': relative humidity in percent (no decimals)
+
* '''hum''': Relative Luftfeuchte in Prozent (keine Nachkommastellen) oder Angabe als wettness oder centibar bei LEAF oder SOIL Sensoren
* '''dew''': dew point temperature in degrees Celsius (with one decimal)
+
* '''dew''': Taupunkttemperatur in Grad Celsius (mit einer Nachkommastelle)
* '''press''': station pressure (without altitude correction) in hPa (with one decimal)
+
* '''press''': Luftdruck auf Stationshöhe ohne Höhenkorrektur in hPa (mit einer Nachkommastelle)
* '''seapress''': normalized pressure with altitude correction (also called sea level pressure) in hPa (with one decimal)
+
* '''seapress''': Luftdruck auf Meeresspiegelhöhe zurückgerechnet in hPa (mit einer Nachkommastelle)
* '''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.
+
* '''fc''': Vorhersage, sofern von der Wetterstation bereitgestellt. Da dieser Wert wenig zuverlässig ist, raten wir davon ab, diesen zu verwenden.
* '''rate''': measured rain rate in mm per hour (with one decimal).
+
* '''rate''': Regenrate in mm pro Stunde (mit einer Nachkommastelle).
* '''total''': current value of rain bucket counter, converted to mm (with one decimal).
+
* '''total''': Aktueller Wert des Regenwippenzählers umgerechnet auf mm (mit einer Nachkommastelle).
* '''delta''': additional rain fall in mm since previous readout of this data (with one decimal).
+
* '''delta''': Hinzugekommene Regenmenge in mm seit dem letzten Auslesen (mit einer Nachkommastelle).
* '''wind''': current average wind speed im m/s (with one decimal).
+
* '''wind''': Aktuelle gemittelte Windgeschwindigkeit im m/s (mit einer Nachkommastelle).
* '''gust''': curent not avergaed wind speed in m/s (with one decimal).
+
* '''gust''': Aktuelle, nicht gemittelte Windgeschwindigkeit in m/s (mit einer Nachkommastelle).
* '''dir''': wind direction in degrees (0-359, no decimals).
+
* '''dir''': Windrichtung in Grad (0-359, keine Nachkommastellen).
* '''chill''': wind chill temperature in degrees Celsius (with one decimal).
+
* '''chill''': Windchill-Temperatur in Grad Celsius (mit einer Nachkommastelle).
* more to come...
+
* ...
  
===Live Data as Plain Text===
+
===Live-Daten als Textdatei===
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:
+
Mit dem HTTP-Request "http://ip-of-meteobridge/cgi-bin/livedata.cgi", wobei "ip-of-meteobridge" durch die IP der Meteobridge zu ersetzen ist, gibt Meteobridge die aktuellen Sensorwerte als Textdatei aus. Das Ergebnis besteht aus einer Reiehe von Zeilen, die jeweils einen Sensor mit seinen Werten repräsentieren. Die Struktur ist gleich der XML-Daten im vorangegangenen Abschnitt, jedoch ohne die umgebende XML-Struktur:
  
 
<pre>20130104142614 thb0 26.9 38 11.4 1020.4 1021.7 2
 
<pre>20130104142614 thb0 26.9 38 11.4 1020.4 1021.7 2
Line 38: Line 39:
 
20130104142636 th0 9.1 95 8.3
 
20130104142636 th0 9.1 95 8.3
 
20130104142652 wind0 160 2.2 1.8 8.0</pre>
 
20130104142652 wind0 160 2.2 1.8 8.0</pre>
 +
 +
===Live-Daten über eine Socket-Verbindung===
 +
Bei den oben angegebenen Verfahren wird eine HTTP-Authentifizierung wie für das gesamte Meteobridge Web-Interface benötigt. Wenn man sich das Skript "livedataxml.cgi" ansieht, kann man erkennen, dass dieses ledglich Daten vom Port 5557 liest, mit einem HTTP-Header versieht und dann an den anfragenden Browser ausliefert:
 +
 +
<pre>#!/bin/sh
 +
echo -ne "Content-type: text/xml; charset=UTF-8\n\n"
 +
nc 127.0.0.1 5557 2>/dev/null
 +
</pre>
 +
 +
Im Ergebnis entspricht ein Auslesen des Ports 5557 dem Aufruf von "livedataxml.cgi" und eine Abfrage von Port 5556 dem Skript "livedata.cgi".
 +
 +
===Template-basierende individuelle Daten===
 +
Der vorangegangenen Skripte liefern Daten in einem Standardformat aus. Unter Verweundung des Meteobridge-Template-Mechanismus, der auch hier im Wiki beschriebven ist, kann mit dem Skript "template.cgi" eine angepasste Ausgabe von Meteobridge-Variablen in Form eines mit Daten gefüllten Templates erreicht werden.
 +
 +
Das Skript wird mit der URL "http://ip-of-meteobridge/cgi-bin/template.cgi" aufgerufen. Dabei ist das zu füllende Template als Parameter in der Form "template=DEIN_TEMPLATE_TEXT" mitzugeben. Als optionaler Parameter kann der in der HTTP-Antwort zu verwendende Content-Type mitgegeben via "contenttype=CONTENT_TYPE" mitgegeben werden. Beide Parameter müssen URL-codiert übergeben werden, wobei Sonderzeichen als "%XX" (XX ist der zweistellige Hexadezimalkode) und Leerzeichen als "+" zu spezifizieren sind.
 +
 +
Beispiel: Um die aktuelle Außentemperatur und Feuchte zu erhalten, liefert die URL <pre>http://ip-des-meteobridge/cgi-bin/template.cgi?template=[DD].[MM].[YY]+[HH]:[mm][APM]%0D[th0temp-act]%BAC%0d[th0hum-act]%25&contenttype= " text/plain;charset=iso-8859-1</pre>
 +
die folgende Ausgabe <pre>01.06.13 04:55PM
 +
23.2ºC
 +
61.0%</pre>
 +
 +
==Zusätzliche Eigenschaften der Meteobridge PRO==
 +
Die Meteobridge PRO ermöglicht Templates auf dem PC-Netzwerklaufwerk "/data/templates/" abzulegen. Durch Aufruf von "http://ip-of-meteobridge/cgi-bin/template.cgi?templatefile=mydata.http" wird die Datei "mydata.http" im Ordner "/data/templates" mit aktuellen Daten gefüllt und ausgeliefert.
 +
 +
Beispiel: Es existiert eine Template-Datei "mydata.http" im Template-Ordner:
 +
<pre>[DD].[MM].[YY] [HH]:[mm][APM]
 +
[th0temp-act]°C
 +
[th0hum-act]%</pre>
 +
Request "http://ip-of-meteobridge/cgi-bin/template.cgi?templatefile=mydata.http&contenttype=text/plain;charset=utf-8" returns this:
 +
<pre>08.01.16 11:00AM
 +
3.5°C
 +
94.0%</pre>

Latest revision as of 08:23, 16 June 2018


Der in Meteobridge enthaltene Web-Server kann neben der Realisierung des Administrationsinterfaces auch Anfragen zu den aktuell vorliegenden Wetterdaten beantworten. Es sind drei HTTP-Dienste definiert, unter denen man diese Daten abrufen kann, entweder in standardisierter Form als Textdatei oder als XML-Datenstrom oder in einem bentzerdefinierten Format. Auch wenn es aus Sicherheitsgründen nicht empfehlenswert ist, diesen Zugang für einen Zugriff von außerhalb des LANs zu öffnen, könnte man beim Aufschalten der Firewall des LANs diese Art der Abfragemöglichkeit für Anfragen von Außen zugänglich machen. Für die Anlieferung von Daten ins Internet empfehlen sich die die unter Sendedienste aufgeführten Methoden. Hinweis: Um die HTTP-Dienste aufrufenzu können ist eine HTTP-Authentifizierung mit Benutzernamen und Passwort notwendig. Diese erfolgt als Präfix zur URL in der Form "<Benutzername>:<Passwort>@".

Live-Daten als XML

Mit dem Meteobridge HTTP-Request wie "http://ip-of-meteobridge/cgi-bin/livedataxml.cgi", wobei "ip-of-meteobridge" durch die korrekte IP der Meteobridge ersetzt werden muss, liefert Meteobridge Wetterdaten in XML-Notation aus. Die von Meteobridge erzeugte Ausgabe beginnt mit "<logger>" und endet mit "</logger>". Die Werte der Sensoren werden mit den sensorspezifischen Tags "THB", "TH", "SOIL", "LEAF", "WIND", "RAIN", "UV", "SOLAR" berichtet. Das anhängende Beispiel illustriert das 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>

Jedes Sensordatenpaket enthält immer die Felder "date" und "id". Die anderen Parameter sind sensorspezifisch. Die Bedeutung der Parameter ist wie folgt:

  • date: UTC Zeitstempel der Sensordaten im Format "JJJJMMTThhmmss"
  • id: ID des Sensors, die aus einem Sensorkurzbezeichnung gefolgt von einer Zahl ("0") besteht.
  • temp: Temperatur in Grad Celsius (mit einer Nachkommastelle)
  • hum: Relative Luftfeuchte in Prozent (keine Nachkommastellen) oder Angabe als wettness oder centibar bei LEAF oder SOIL Sensoren
  • dew: Taupunkttemperatur in Grad Celsius (mit einer Nachkommastelle)
  • press: Luftdruck auf Stationshöhe ohne Höhenkorrektur in hPa (mit einer Nachkommastelle)
  • seapress: Luftdruck auf Meeresspiegelhöhe zurückgerechnet in hPa (mit einer Nachkommastelle)
  • fc: Vorhersage, sofern von der Wetterstation bereitgestellt. Da dieser Wert wenig zuverlässig ist, raten wir davon ab, diesen zu verwenden.
  • rate: Regenrate in mm pro Stunde (mit einer Nachkommastelle).
  • total: Aktueller Wert des Regenwippenzählers umgerechnet auf mm (mit einer Nachkommastelle).
  • delta: Hinzugekommene Regenmenge in mm seit dem letzten Auslesen (mit einer Nachkommastelle).
  • wind: Aktuelle gemittelte Windgeschwindigkeit im m/s (mit einer Nachkommastelle).
  • gust: Aktuelle, nicht gemittelte Windgeschwindigkeit in m/s (mit einer Nachkommastelle).
  • dir: Windrichtung in Grad (0-359, keine Nachkommastellen).
  • chill: Windchill-Temperatur in Grad Celsius (mit einer Nachkommastelle).
  • ...

Live-Daten als Textdatei

Mit dem HTTP-Request "http://ip-of-meteobridge/cgi-bin/livedata.cgi", wobei "ip-of-meteobridge" durch die IP der Meteobridge zu ersetzen ist, gibt Meteobridge die aktuellen Sensorwerte als Textdatei aus. Das Ergebnis besteht aus einer Reiehe von Zeilen, die jeweils einen Sensor mit seinen Werten repräsentieren. Die Struktur ist gleich der XML-Daten im vorangegangenen Abschnitt, jedoch ohne die umgebende XML-Struktur:

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

Live-Daten über eine Socket-Verbindung

Bei den oben angegebenen Verfahren wird eine HTTP-Authentifizierung wie für das gesamte Meteobridge Web-Interface benötigt. Wenn man sich das Skript "livedataxml.cgi" ansieht, kann man erkennen, dass dieses ledglich Daten vom Port 5557 liest, mit einem HTTP-Header versieht und dann an den anfragenden Browser ausliefert:

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

Im Ergebnis entspricht ein Auslesen des Ports 5557 dem Aufruf von "livedataxml.cgi" und eine Abfrage von Port 5556 dem Skript "livedata.cgi".

Template-basierende individuelle Daten

Der vorangegangenen Skripte liefern Daten in einem Standardformat aus. Unter Verweundung des Meteobridge-Template-Mechanismus, der auch hier im Wiki beschriebven ist, kann mit dem Skript "template.cgi" eine angepasste Ausgabe von Meteobridge-Variablen in Form eines mit Daten gefüllten Templates erreicht werden.

Das Skript wird mit der URL "http://ip-of-meteobridge/cgi-bin/template.cgi" aufgerufen. Dabei ist das zu füllende Template als Parameter in der Form "template=DEIN_TEMPLATE_TEXT" mitzugeben. Als optionaler Parameter kann der in der HTTP-Antwort zu verwendende Content-Type mitgegeben via "contenttype=CONTENT_TYPE" mitgegeben werden. Beide Parameter müssen URL-codiert übergeben werden, wobei Sonderzeichen als "%XX" (XX ist der zweistellige Hexadezimalkode) und Leerzeichen als "+" zu spezifizieren sind.

Beispiel: Um die aktuelle Außentemperatur und Feuchte zu erhalten, liefert die URL
http://ip-des-meteobridge/cgi-bin/template.cgi?template=[DD].[MM].[YY]+[HH]:[mm][APM]%0D[th0temp-act]%BAC%0d[th0hum-act]%25&contenttype= " text/plain;charset=iso-8859-1
die folgende Ausgabe
01.06.13 04:55PM
23.2ºC
61.0%

Zusätzliche Eigenschaften der Meteobridge PRO

Die Meteobridge PRO ermöglicht Templates auf dem PC-Netzwerklaufwerk "/data/templates/" abzulegen. Durch Aufruf von "http://ip-of-meteobridge/cgi-bin/template.cgi?templatefile=mydata.http" wird die Datei "mydata.http" im Ordner "/data/templates" mit aktuellen Daten gefüllt und ausgeliefert.

Beispiel: Es existiert eine Template-Datei "mydata.http" im Template-Ordner:

[DD].[MM].[YY] [HH]:[mm][APM]
[th0temp-act]°C
[th0hum-act]%

Request "http://ip-of-meteobridge/cgi-bin/template.cgi?templatefile=mydata.http&contenttype=text/plain;charset=utf-8" returns this:

08.01.16 11:00AM
3.5°C
94.0%