Difference between pages "Push Services/de" and "Add-On Services/de"

From meteoplug
(Difference between pages)
Jump to: navigation, search
(Created page with "* Der erste Teil ist die '''Variable'''. Variable in Bedingungen haben dieselbe Syntax wie Variable in Meteobridge Templates, man muss also nichts Neues lerne...")
 
(Updating to match new version of source page)
 
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
<languages /><br />Meteobridge stellt eine reihe von individualisierbaren Sendedienste zur Verfügung, die auf verschiedene Arten Wetterdaten an andere Systeme weiterleiten können. Zu den Standardmethoden gehört der zeitgesteuerte Versand von E-Mails und Twitter-Nachrichten mit aktuellen Wetterdaten sowie eine Alarmierungsfunktion, die beim Erreichen individuelle definierbarer Schwellwerte Meldungen per E-Mail oder Twitter versendet.  
+
<languages /><br />Der in Meteobridge enthaltene Web-Server kann neben der Realisierung des Administrationsinterfaces auch Anfragen zu den aktuell vorliegenden Wetterdaten beantworten. Es sind zwei URLs definiert, unter denen man diese Daten abrufen kann, entweder als Textdatei oder als XML-Datenstrom. 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.
 +
 +
===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", "WIND", "RAIN", "UV", "SOLAR" berichtet. Das anhängende Beispiel illustriert das XML-Format:
  
Wenn der "Expertenmodus" ausgewählt und mit "Speichern" bestätigt wurde, stehen weitere, etwas komplexere Übertragunsmodi zur Verfügung. Bei Ausschalten diese Option verschwinden diese Dienste wieder vond er Seite, die sonst recht überladen wäre.
+
<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>
  
Die folgenden Abschnitte erläutern wie die Sendedienste im Detail aufgesetz werden. Die Sendedienste sind eher für den technisch versierten Anwender interessant, da man ein Grundverständis über die Funktionsweise dieser Dienste benötigt. Wenn man nur Wetterdaten an vordefinierte Wetternetzwerke übertragen möchte, sollte man diesen Reiter komplett ignorieren.  
+
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)
 +
* '''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).
 +
* ...
  
==Grundlegende Sendedienste==
+
===Live-Daten als Textdatei===
In diesem Abschnitt werden zunächst die elementarsten Sendedeinste E-Mail, Twitter und das Versenden bei Erreichen von Alarmbedingungen vorgestellt.
+
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
 +
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>
  
[[File:page6de.png]]
+
===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:
  
 +
<pre>#!/bin/sh
 +
echo -ne "Content-type: text/xml; charset=UTF-8\n\n"
 +
nc 127.0.0.1 5557 2>/dev/null
 +
</pre>
  
===An Twitter Senden===
+
Therefore, reading data from socket 5557 is equivalent to calling "livedataxml.cgi" and socket 5556 reports same data as delivered by "livedata.cgi".
Meteobridge erlaubt Wetterdaten als kleine Textpakete an den Sienst Twitter zu senden. Da Twitter eine etwas aufwändige Authentifizierung hat, ist initial das Durchlaufen von 6 Schritten erforderlich.
+
 
+
<gallery perrow=1 widths=500 heigths=350>
+
File:twitter0de.png|1. Die Taste "PIN anfordern" drücken.
+
File:twitter2.png|2. Ein zusätzliches Fenster erscheint im Browser (bitte den Pop-Up Blocker im Browser dafür gegebenenfalls vorübergehend asschalten), in dem man sich mit seinem Twitter-Account anmelden muss.
+
File:twitter2b.png|3. Nach dem Einloggen wird eine PIN angezeigt, diese bitte in die Zwischenablage kopieren.
+
File:twitter4de.png|4. Auf die Meteobridge-Seite zurückwechseln und die PIN von der Zwischenablage in das Feld neben "PIN aktivieren" kopieren und die Aktivierungstaste drücken.
+
File:twitter3de.png|5. Abschließend den Nachrichtentext und das Hochladeintervall sowie die Anzahl von Sendewiederholungen im Fall eines fehlgeschlagenen Sendens eingeben. Diese Einstellungen mit "Speichern" dauerhaft gesichert. Falls die Authentifizierung mit Twitter fehlschlägt, kann der Prozess mit der Taste "Neue PIN anfordern" von vorne gestartet werden.
+
twitter5.png|6. Beim Nachrichtentext können Variable verwendet werden, um Datum, Uhrzeit und Wetterdaten in den Text einzufügen. Wie diese Variable verwendet werden ist im Menupunkt [[Templates/de|Templates]] beschrieben. Das obige Beispiel ist das Ergebnis des Nachrichtentextes: <font face="Courier"><span style="background-color:lightgrey;">[hh]:[mm]h Outdoor temp: [th0temp-act=F.1:--]°F </span></font face>
+
</gallery>
+
 
+
 
+
<span class="mw-translate-fuzzy">
+
===E-mail versenden===
+
Meteobridge kann individuelle E-Mails in definierten Zeitintervallen oder beim Eintritt eines Ererignisses senden. Um diesen Dienst zu aktivieren, müssen die folgenden Einstellungen vorgenommen werden.
+
* '''Sendeinterval''': definiert in welchem zeitabstand E-Mail gesendet werden. Die Einstellung "nur bei ALarm" bewrikt, dass kein zeitgesteuerter Versand erfolgt, sondern nur beim Erfüllen definierter Alarmbedingungen (siehe nächsten Abschnitt) eine E-Mail versendet wird. Das Drop-Down-Menu rechts vom Sendeintervall ermöglicht die Definition ob und wie häufig ein gescheiterter Mailversand wiederholt werden soll. Dabei wird nur der Erfolg des Absetzens der E-Mail an den SMTP-Server berücksichtigt, Weiterleitungsprobleme jenseits diese Servers bemerkt Meteobridge nicht. Das sich daran anschließende Drop-Down-Menu erlaubt die Auswahl der Authentifizierungsmethode, mit der Meteobridge den SMTP-Server kontaktiert:
+
** keine: Der SMTP-Server wird ohne weiter Authentifizierung kontaktet. Diese Zugriffsart gestatten SMTP-Server nur sehr selten und dann auch nur in geschlossenen LANs, da sie sonst als offene Spam-Relays missbraucht werden können.
+
** basis: Ist die klassische Benutzername/Passwort-Authentifikation, die ohne Verschlüsselung dieser Daten auskommt. Zunehmend weniger SMTP-Server erlauben diese gering geschütze Zugriffsart.
+
** tls: Ist eine Authentifizierung mit SSL-Verschlüsselung. Diese Variante der SSL-Verschlüsselung wird allerdings selten von SMTP-Servern verwendet.
+
** starttls: Ist inzwischen die am Häufigsten genutze Zugangsart, die sowohl Zugangs- wie Nutzdaten per SSL verschlüsselt.
+
* '''SMTP-Server''': gibt die IP des oder den Namen des SMTP-Servers an, an den die ausgehenden Mails gesendet werden.
+
* '''Port''': Spezifiziert die Port-Nummer auf der der SMTP-Server auf zur Weiterleitung bestimmte E-Mail lauscht. Standard-Ports sind 25 für non-SSL-Verbindungen und 587 für SSL-verschlüsselte Kommunikation)
+
* '''Name''': Benutzername zur Authentifizierung
+
* '''Passwort''': Passwort zu Authentifizierung
+
* '''Empfänger''': E-mail-Adresse, die als Empfänger der Mail fungieren soll.
+
* '''Absender''': E-mail-Adresse, die als Absender der Mail fungieren soll. Viele SMTP-Server verlangen, dass die Absenderadresse in der dem Server zugeordneten Domain liegt und verweigern sonst den Versand, um Spamming zu verhindern.
+
* '''Text''': Dies ist der eigentliche Inhalt der E-Mail. Man kann mit einem "#" eine Betreffzeile vom Mailtext abtrennen. Diese Zeichenkette ist Gegenstand der Zeichenersetzungsregeln bezüglich der Verwendung von Variable, wie auf der Seite [[Templates/de|Templates]] beschrieben.
+
</span>
+
 
+
Mit dem "Test"-Knopf wird eine E-Mail mit dem Betreff "Meteobridge Test" an die angegebenen Empfänger-Adresse gesendet. Man kann admit prüfen, ob die AMTP-Konfiguration funktioniert. Wenn ein Fehler auftritt, wird eine entsprechende Systemmeldung eingeblendet.
+
 
+
 
+
[[File:email0de.png]]
+
 
+
 
+
Der Text <font face="Courier"><span style="background-color:lightgrey;">weather conditions#temp [th0temp-act.1:--]°C\n[wind0wind-max60=kmh.1:--]km/h</span></font face> imobigen Beispiel sendet eine E-Mail an "test@mydomain.com" mit dem Betrefff "weather conditions" und einem zweizeiligen Nachrichtentext (Zeilen sind durch das Zeilenumbruchzeichen "\n" getrennt). Die erste Zeile enthält die aktuelle Außentemperatur (wie z.B. "13.4°C") und die zweite Zeile zeigt die maximale Böengeschwindigkeit der letzten 60 Minuten (z.B. "34.7km/h"). Details zur Verwendung von Variable sind auf der Seite [[Templates/de|Template]] beschrieben.
+
 
+
===Alarmierungsdienst===
+
Meteobridge ermöglicht das Versenden von E-Mails oder Twitter-Kurznachichten, wenn individuell definierte Bedingungen erfüllt sind. Um diese Option auswählen zu können, muss mindestens einer der Dienste E-Mail oder Twitter in Meteobridge aktiviert un konfiguriert sein. Der Alarmierungsdienst greift auf bereits für E-Mail und Twitter spezifizierten Einstellungen zurück und definiert diese nicht neu. Die Eingabefelder haben die folgenden Bedeutungen:
+
* '''Alarmierungsmodus''': Dieser kann entweder "ausgeschaltet" oder "Sende E-Mail" oder "Sende Twitter" sein. Desweiteren kann man zwischen "Einmalalarm" und "inkrementelle Alarme" wählen. Beim "Einmalalarm" wird bei Erfüllen einer Auslösebedingung exakt eine Alarmmeldung gesendet. Es bedarf dann des Eintretens der Rücksetzbedingung, um eine erneute Alarmauslösung zu ermöglichen. Bei inkrementellen Alarmen wird eine Nachricht beim erstmaligen Zutreffen der Auslösebedingung gesendet. Tritt danach ein weiteres Ereignis ein, bei dem die bisher überschrittene Alarmierungsschwelle noch deutlicher überschritten wird, erfolgt ein erneuter Alarmversand.
+
* '''Auslösebedingung''': definiert die Bedingung die in Form einer Ungleichung oder Gleicung erfüllt sein muss, damit der Alarm ausgelöst wird. Details zur Formulierung von Bedingungen sind im folgenden Abschnit "Bedingungen" beschrieben.
+
* '''Rücksetzbedingung''': definiert die Bedingung die zum Zurücksetzen der Alarmierung erfüllt sein muss. Details zur Fomulierung der Bedingungen sind im folgenden Abschnitt "Bedingungen" beschrieben.
+
* '''Nachricht''': beschreibt den Text der via Twitter oder E-Mail im Alarmierungsfall versendet wird. Der Text kann Meteobridge Variable enthalten.
+
 
+
[[File:alarmde.png]]
+
 
+
 
+
Der Nachrichtentext <font face="Courier"><span style="background-color:lightgrey;">Gust Warning#Gust speed of [wind0wind-act=kmh.1:--]km/h</span></font face> im obigen Beispiel erzeugt eine E-Mail mit dem Betreff "Gust Warning" und die Nachricht in der Art "Gust speed of 65.2km/h", wenn die Auslösebedingung des Beispiels bei einer Böengeschwindigkeit größer 50 km/h erfüllt ist.
+
 
+
====Bedingungen====
+
Es gibt zwei unterschiedliche Felder zum Eintragen von Bedingungen, in denen Bedingungen identisch formliert sind und lediglich unterschiedliche Auswirkungen haben. Die "Auslösebedingung" bestimmt, wann ein Alarm gesendet wird. Handelt es sich um einen "Einmalalarm" führen auch weitere Erfüllungen der Auslösebedingung zu keinen weiteren Alarmnachrichten. Bei inkrementeller Alarmierung werden erneut Alarmmeldungen gesendet, wenn die in der Auslösebedingung definierte Schwelle noch deutlicher überschritten wird als bei der letzten Alarmauslösung. Der Sinn inkrementeller Alarmierungen liegt darin, über eine Verschärfung der Situation laufend informiert zu werden. Da die Alarmnachrichten Wetterdaten enthalten können, kann die Nachricht konkrete Werte enthalten und man kann erkennen, um welche Verschärfung es sich handelt. Beispiel: Wenn die Auslösebedingung auf "Außentemperatur von mindestens 35°C" gesetzt ist und die Rücksetzbedingung auf "Außentemperatur unter 30 °C" gesetzt ist und die zu verwendende Auflösung auf "keine Dezimalstellen" eingestellt ist, erhält man beim Erreichen der 35°C einmalig eine Alarmmeldung aber keine Folgealarme, bis die Temperatur wieder unter 30°C gefallen ist. Wenn man jedoch "inkremetelle Alarme" aktiviert hat und die Temperatur von 34°C auf 37.2°C steigt, wird man eine Nachricht über das Erreichen von 35°C, eine über 36°C und eine über 37°C erhalten. Dies ermöglicht den Grad der Schwellüberschreitung und das Maximum dieser Überschreitung als Nachricht zu erfahren. 
+
 
+
Bedingungen bestehen aus drei Teilen, die durch Leerzeichen getrennt sind:
+
 
+
* Der erste Teil ist die '''Variable'''. Variable in Bedingungen haben dieselbe Syntax wie Variable in Meteobridge [[Templates/de|Templates]], man muss also nichts Neues lernen. Während die Variable in den Templates in eckige Klammern eingeschlossen sind,, um sie vom rest des Textes abzusetzen, stehen die Variable in Bedingungen ohne diese Klammern. Die Auslösebedingung im obigen Beispiel verwendet die Variable <font face="Courier"><span style="background-color:lightgrey;">wind0wind-act=kmh.1:0</span></font face>, die für die aktuelle Böengeschwindigkeit, konvertiert in km/h und ohne Nachkommastellen steht. Wenn der Sensor keine Daten liefert wird stattdessen der Wert "0" verwendet.
+
 
+
* Second part is a '''comparison operator'''. Defined operators are
+
** '''=''' equal, '''!=''' non equal
+
** '''<''' less than, '''<=''' less than or equal
+
** '''>''' greater than, '''>=''' greater than or equal
+
 
+
* Third part is a '''numerical value''', which can be integer or float.
+
 
+
 
+
==Advanced Push Services==
+
When you select "Expert Mode" you have additional options to send weather data to. All these services need a server somewhere which can take data from your Meteobridge client. Supported protocols are HTTP-GET, mySQL and FTP.
+
 
+
 
+
[[File:page6b.png]]
+
 
+
 
+
===Individual HTTP Upload===
+
Data will be sent as HTTP GET requests with URL parmeters you can define to your liking. Parameters of a URL consist of name-value pairs seperated by '&'. You can define names yourself and can use a certain set of variables provided by Meteobridge to be used as values. Variable names will be automatically replaced by their current values, each time a HTTP request is sent. Please have a look at the example below.
+
 
+
 
+
[[file:http-upload.png]]
+
 
+
 
+
Upload schedule is defined to every 10 seconds. URL specifies server address, where to deliver data ("http://myserver.com/upload.php" in the example above). "Success Condition" allows to specify a matching string which is compared to to the return message from the server to decide if upload was successful or not.
+
 
+
Weather data is transported to the server by means of URL parameters. Meteobridge provides a large set of variables that can be used to feed URL parameters with current sensor data. Section [[Templates]] will explain how to use these variables to fill URL parameters with recent sensor data.
+
 
+
===Individual MYSQL Uploads===
+
When you prefre to store your weather station's data in your own MYSQL database, Meteobridge can feed sensor data to it in a very easy way. Just state
+
* '''Host''': server name or IP of server (when DNS can't resolve the name)
+
* '''Port''': port number where to reach MYSQL database on your server
+
* '''Database''': name of database to feed
+
* '''User''': name of database user to use for data upload
+
* '''Password''': password for user name.
+
* '''Query''': payload that should be sent to the database. Query usually contains a MSQL insert statement followed by a table name and a list of column names and values. The query ist subject to template replacement, so you can use Meteobridge variables to upload weather data to your database.
+
 
+
 
+
[[File:mysql.png]]
+
 
+
 
+
Query <font face="Courier"><span style="background-color:lightgrey;">insert upload (temp, wind) values ([th0temp-act.1:-9999], [wind0wind-act=kmh.1:-9999])</span></font face> in example above stores actual outdoor temperature to field "temp" of table "upload" of database "test". Field "wind" is filled with current non averaged wind speed in km/h. When temperature or wind data is not there a value of -9999 is stored.
+
 
+
Details of using variables in templates are explained in [[Templates]] section.
+
 
+
===Individual FTP Uploads===
+
Meteobridge allows you define a FTP server where it can upload up to 4 different files. FIles to be uploaded have to be accessable in the Internet via HTTP. Meteobridge downloads the files pointed to, replaces Meteobridge variables inside the downloaded file by current weather data and uploads resulting file to the specified directory. Meteobridge can just handle one FTP server, but distinct directories and file names for each of the four uploads. Setup of FTP upload credentials is done as follows:
+
* '''FTP Host''': server name or IP of server (when DNS can't resolve the name)
+
* '''Port''': port number where to reach MYSQL database on your server
+
* '''FTP User''': user name to be used for FTP upload
+
* '''FTP Password''': password to be used for FTP upload
+
 
+
In order to check if FTP credentials do work, you can press "Test Upload" button. Meteobridge will upload a file named "test-upload" with current time stamp as content to your FTP server. File will be located at directory that is default when doing FTP login. When you want to test upload to different directories you can specify an path in "Test Path" field. This path is used for test uploads only.
+
 
+
In oder to define the payload Meteobridge should upload in regular intervals you have 4 lines to select content. Each line specifies an upload schema determined by three input fields.
+
* Upload Interval: can have values from "no upload", "once per minute" up to "every hour".
+
* Template file: this specifies an URL where to find the template in the Internet that Meteobridge should download, fill in weather data and upload to FTP server.
+
* Path: defines the path where to store the data on the FTP server. Path includes directory and file name in Linux style (separated by "/"). Filename of the template is not used as default, you always have to specify a complete target file name.
+
 
+
To minimize traffic, Meteobridge does not download the referenced template files each time it does prepare a FTP upload. Templates are downloaded once during startup of Meteobridge and stay untouched until you press "Reload Templates" button. When you are working on the design of new templates, don't forget to press the reload button to make template changes effective to Meteobridge.
+
 
+
 
+
[[File:ftp.png]]
+
 
+
 
+
Example above defines an upload schema to FTP server "ftp.myfamousserver.com" for user "myself". Template [http://template.meteobridge.com/simpledash.html template.meteobridge.com/simpledash.html] has been loaded on start up of Meteobridge and will be updated with recent data every minute and then uploaded to FTP server as file "mydash.html". When you view "mydash.html" with your browser it looks like this:
+
 
+
 
+
[[File:mydash.png]]
+
 
+
 
+
Details of using variables in templates are explained in [[Templates]] section.
+
To illustrate that using these varibales is quite easy the HTML body part (omitting the CSS styles for formating it nicely) of the template used in above's example is attached below:
+
<pre>
+
<body>
+
  <table id="table-2">
+
    <thead><tr><th>Sensor</th>
+
              <th>Current</th>
+
              <th>Today (min)</th>
+
              <th>Today (max)</th></tr></thead>
+
    <tbody>
+
      <tr><td>Outdoor Temperature</td>
+
          <td>[th0temp-act.1:--]&deg; C</td>
+
          <td>[th0temp-dmin.1:--]&deg; C</td>
+
          <td>[th0temp-dmax.1:--]&deg; C</td></tr>
+
      <tr><td>Outdoor Humidity</td>
+
          <td>[th0hum-act.0:--] %</td>
+
          <td>[th0hum-dmin.0:--] %</td>
+
          <td>[th0hum-dmax.0:--] %</td></tr>
+
      <tr><td>Outdoor Dew Point</td>
+
          <td>[th0dew-act.1:--]&deg; C</td>
+
          <td>[th0dew-dmin.1:--]&deg; C</td>
+
          <td>[th0dew-dmax.1:--]&deg; C</td></tr>
+
      <tr><td>Wind Chill Temperature</td>
+
          <td>[wind0chill-act.1:--]&deg; C</td>
+
          <td>[wind0chill-dmin.1:--]&deg; C</td>
+
          <td>[wind0chill-dmax.1:--]&deg; C</td></tr>
+
      <tr><td>Air Pressure</td>
+
          <td>[thb0seapress-act.1:--] hPa</td>
+
          <td>[thb0seapress-dmin.1:--] hPa</td>
+
          <td>[thb0seapress-dmax.1:--] hPa</td></tr>
+
      <tr><td>Wind Direction</td>
+
          <td>[wind0dir-act.0:--]&deg;</td>
+
          <td></td><td></td></tr>
+
      <tr><td>Wind Speed (averaged)</td>
+
          <td>[wind0avgwind-act.1:--] m/s</td>
+
          <td>[wind0avgwind-dmin.1:--] m/s</td>
+
          <td>[wind0avgwind-dmax.1:--] m/s</td></tr>
+
      <tr><td>Gust Speed</td>
+
          <td>[wind0wind-max5.1:--] m/s</td>
+
          <td>[wind0wind-dmin.1:--] m/s</td>
+
          <td>[wind0wind-dmax.1:--] m/s</td></tr>
+
      <tr><td>Rain</td>
+
          <td>rate: [rain0rate-act.1:--] mm/h</td>
+
          <td>sum [rain0total-sumday.1:--] mm</td>
+
          <td></td></tr>
+
      <tr><td>Solar Radiation</td>
+
          <td>[sol0rad-act.0:--] W/qm</td>
+
          <td>[sol0rad-dmin.0:--] W/qm</td>
+
          <td>[sol0rad-dmax.0:--] W/qm</td></tr>
+
      <tr><td>UV Index</td>
+
          <td>[uv0index-act.1:--] uvi</td>
+
          <td>[uv0index-dmin.1:--] uvi</td>
+
          <td>[uv0index-dmax.1:--] uvi</td></tr>
+
    </tbody>
+
  </table>
+
</body>
+
</pre>
+

Revision as of 08:54, 20 April 2013


Der in Meteobridge enthaltene Web-Server kann neben der Realisierung des Administrationsinterfaces auch Anfragen zu den aktuell vorliegenden Wetterdaten beantworten. Es sind zwei URLs definiert, unter denen man diese Daten abrufen kann, entweder als Textdatei oder als XML-Datenstrom. 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.

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", "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)
  • 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

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".