Push Services/de

From meteobridge
Revision as of 15:56, 25 February 2013 by Admin (Talk | contribs) (Created page with "===Individueller FTP-Upload=== 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 Intern...")

Jump to: navigation, search

<languages />
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.

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.

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.

Grundlegende Sendedienste

In diesem Abschnitt werden zunächst die elementarsten Sendedeinste E-Mail, Twitter und das Versenden bei Erreichen von Alarmbedingungen vorgestellt.


Page6de.png


An Twitter Senden

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.


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

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.


Email0de.png


Der Text weather conditions#temp [th0temp-act.1:--]°C\n[wind0wind-max60=kmh.1:--]km/h 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 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.

Alarmde.png


Der Nachrichtentext Gust Warning#Gust speed of [wind0wind-act=kmh.1:--]km/h 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 formuliert 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, 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 wind0wind-act=kmh.1:0, 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.
  • Der zweite Teil ist der Vergleichsoperator. Definierte Operatoren sind:
    • = gleich, != ungleich
    • < kleiner als, <= kleiner oder gleich
    • > größer als, >= größer oder gleich
  • Der dritte Teil ist der Vergliichswert, der ganzzahlig oder eine Fließkommazahl sein kann.


Fortgeschrittene Sendedienste

Wenn der "Expertenmodus" aktiviert ist, werden drei weitere Sendedienste angeboten, die es erlauben Daten via HTTP-Requests, MYSQL-Anfragen oder FTP an andere Systeme zu übertragen.


Page6bde.png


Individeller HTTP Upload

Diese Option erlaubt es Wetterdaten als HTTP-GET Requests an eine URL zu senden. Die URL und der Parameterstring können frei definiert werden. Die Parameter werden üblicher Weise als Name-Wert-Paare getrennt durch ein "&" in der URL aufgeführt. Dabei können Meteobridge-Variable verwendet werden und somit aktuele Wetterdaten als Parameter übergeben werden. Die Wettrdaten werden beim Senden des HTTP-GET-Requests seitens Meteobridge eingesetzt. Anbei ein Beispiel:


Http-uploadde.png


Das Hochladeintervall ist auf "alle 10 Sekunden" eingestellt, Die URL beschreibt die Adresse des empfangenden Servers ("http://myserver.com/upload.php" im obigen Bespiel). "Erfolgskriterium" nennt die Zeichenkette, die im Falle eines erfolgreichen daten-Uploads vom Server zurückgemeldet wird. Durch Vergleich der Zeichenketten stellt Meteobridge fest, ob das Hochladen gelappt hat oder gegebenenfalls ein erneutes Hochladen desselben Datensatzes versucht werden soll.

Die Wetterdaten werden an den Server als URL-Parameter übertragen. Meteobridge kann in diesen Parametern eingefügte Variable auswerten. Die Seite Templates beschreibt die zur Verfügung stehenden Variable und wie diese parameteriert werden können.

Individualer MYSQL Upload

Wenn man Wetterdaten gerne in eine MYSQL-Datenbank speichern möchte,bietet sich dieser Sendedienst an. Die folgenden Angaben sind erforderlich:

  • Server: Servername oder IP des Servers (wenn DNS den Namen nicht auflösen kann)
  • Port: Portnummer, unter der die MYSQL-Datenbank Verbindungen annimmt.
  • Datenbank: Name der Datenbank, in die Werte gespeichert werden sollen.
  • Benutzer: Name des Benutzers, unter dem sich Meteobridge an der Datenbank anmelden soll.
  • Passwort: Passwort des benutzers für die Datenbank.
  • Anfrage: auszuführendes SQL-Statement. Dies ist typischer Weise ein "INSERT" SQL-Kommando, mit dem pro Datenanlieferung eine Zeile mit Daten in die gewählte Tabelle (hier "upload") der Datenbank (hier "test") eingefügt wird. Der Anfragetext unterliegt dem Meteobridge Variablenersetzungsmechanismus, mit dem bei der Ausführung konkrete Werte in die Anfrage eingesetzt werden.


Mysqlde.png


Die Anfrage insert upload (temp, wind) values ([th0temp-act.1:-9999], [wind0wind-act=kmh.1:-9999]) in obigem Beispiel speichert die aktuelle Außentemperatur in das Feld "temp" der Tabelle "upload" der Datenbank "test". Das Feld "wind" wird mit der aktuellen nicht gemittelten Windgeschwindigkeit in km/h gefüllt. Wenn keine Daten für Wind oder Temperatur vorliegen wrd der Wert -9999 gespeichert.

Details zur Verwendung der Variable in Meteobridge finden sich auf der Seite Template.

Individueller FTP-Upload

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.


Ftp.png


Example above defines an upload schema to FTP server "ftp.myfamousserver.com" for user "myself". Template 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:


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:

<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:--]° C</td>
          <td>[th0temp-dmin.1:--]° C</td>
          <td>[th0temp-dmax.1:--]° 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:--]° C</td>
          <td>[th0dew-dmin.1:--]° C</td>
          <td>[th0dew-dmax.1:--]° C</td></tr>
      <tr><td>Wind Chill Temperature</td>
          <td>[wind0chill-act.1:--]° C</td>
          <td>[wind0chill-dmin.1:--]° C</td>
          <td>[wind0chill-dmax.1:--]° 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:--]°</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>