UWZ: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Formatierung überarbeitet)
Zeile 20: Zeile 20:
== Anwendung ==
== Anwendung ==
=== Define ===
=== Define ===
Abhängig davon, ob man Unwetterwarnungen aus Deutschland oder einem anderen Land abfragen möchte, muss für das Attribut PLZ entweder die Postleitzahl (Deutschland) oder die AREA_ID (Rest der Welt) verwendet werden.


Abhängig davon ob man Unwetterwarnungen aus Deutschland oder einem anderen Land abfragen möchte, muss für das Attribut PLZ entweder die Postleitzahl (Deutschland) oder die AREA_ID (Rest der Welt) verwendet werden.
==== Deutschland ====
==== Deutschland ====
    define <name> UWZ <Ländercode> <PLZ> <INTERVAL>
:<code><nowiki>define <name> UWZ <Ländercode> <PLZ> <INTERVAL> </nowiki></code>


==== Rest der Welt ====
==== Rest der Welt ====
    define <name> UWZ <Ländercode> <AREA_ID> <INTERVAL>
:<code><nowiki>define <name> UWZ <Ländercode> <AREA_ID> <INTERVAL> </nowiki></code>


Die AREA_ID kann folgendermaßen ermittelt werden:
Die AREA_ID kann folgendermaßen ermittelt werden:


===== Geokoordinaten ermitteln =====
===== Geokoordinaten ermitteln =====
Dazu wird folgende URL aufgerufen, und am Ende der URL bei dem ''search'' Parameter der Name des Ortes eingegeben. Im Fall von Oberwaltersdorf AT:
:<code><nowiki>http://alertspro.geoservice.meteogroup.de/weatherpro/SearchFeed.php?search=oberwalt</nowiki></code>


Als Antwort bekommt man eine XML Struktur mit gefundenen Orten:
<pre>
<result>
  <cities previousOffset="-1" nextOffset="-1">
    <city country="49" city="8512" id="18226609" country-name="Germany" province-name="Bavaria" continent="6" inhabitants="7500" longitude="12.17092" latitude="48.57422" name="Oberwaltenkofen (Ergolding)" timezone="Europe/Berlin"/>
    <city country="49" city="8671" id="18226768" country-name="Germany" province-name="Bavaria" continent="6" inhabitants="4000" longitude="12.51418" latitude="48.77301" name="Oberwalting (Leiblfing)" timezone="Europe/Berlin"/>
    <city country="43" city="1161" id="18134912" country-name="Austria" province-name="Niederösterreich" continent="6" inhabitants="2500" longitude="16.3203" latitude="47.9756" name="Oberwaltersdorf" timezone="Europe/Vienna"/>
    <city country="43" city="1305915" id="182199490" country-name="Austria" province-name="Niederösterreich" continent="6" inhabitants="150" longitude="15.0844" latitude="48.5394" name="Oberwaltenreith" timezone="Europe/Vienna"/>
  </cities>
</result>
</pre>


Dazu wird folgende URL aufgerufen, und am Ende der URL bei dem search Parameter den Namen des Ortes eingegeben. Im Fall von Oberwaltersdorf AT:
Dort sucht man sich die beiden Attribute ''latitude'' und ''longitude'' für den passenden Ort heraus. Im verwendeten Beispiel wäre es für Oberwaltersdorf in Österreich:
    http://alertspro.geoservice.meteogroup.de/weatherpro/SearchFeed.php?search=oberwalt
:<code>latitude="47.9756" </code>
 
:<code>longitude="16.3203" </code>
Als Antwort bekommt man ein XML mit gefundenen Orten:
    <result>
      <cities previousOffset="-1" nextOffset="-1">
        <city country="49" city="8512" id="18226609" country-name="Germany" province-name="Bavaria" continent="6" inhabitants="7500" longitude="12.17092" latitude="48.57422" name="Oberwaltenkofen (Ergolding)" timezone="Europe/Berlin"/>
        <city country="49" city="8671" id="18226768" country-name="Germany" province-name="Bavaria" continent="6" inhabitants="4000" longitude="12.51418" latitude="48.77301" name="Oberwalting (Leiblfing)" timezone="Europe/Berlin"/>
        <city country="43" city="1161" id="18134912" country-name="Austria" province-name="Niederösterreich" continent="6" inhabitants="2500" longitude="16.3203" latitude="47.9756" name="Oberwaltersdorf" timezone="Europe/Vienna"/>
        <city country="43" city="1305915" id="182199490" country-name="Austria" province-name="Niederösterreich" continent="6" inhabitants="150" longitude="15.0844" latitude="48.5394" name="Oberwaltenreith" timezone="Europe/Vienna"/>
      </cities>
    </result>
 
Dort sucht man sich die beiden Attribute latitude und longitude für den passenden Ort heraus. Im verwendeten Beispiel wäre es für Oberwaltersdorf in Österreich:
  longitude="16.3203"
  latitude="47.9756"


===== AREA_ID abfragen =====
===== AREA_ID abfragen =====
 
Mit diesen Werten wird nun die nächste URL zusammengebaut (Parameter ''lat'' + ''lon''):
Mit diesen Werten wird nun die nächste URL zusammengebaut (Parameter lat + lon):
:<code><nowiki> http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=lookupCoord&lat=47.9756&lon=16.3203 </nowiki></code>
    http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=lookupCoord&lat=47.9756&lon=16.3203
   
   
Das Resultat:
Das Resultat:
    [{"AREA_TYPE":"UWZ","AREA_ID":"UWZAT00234","CENTER_ID":"2"}]
:<code><nowiki>[{"AREA_TYPE":"UWZ","AREA_ID":"UWZAT00234","CENTER_ID":"2"}] </nowiki></code>


Nun wissen wir dass die AREA_ID für Oberwaltersdorf:
Nun wissen wir, dass die AREA_ID für Oberwaltersdorf:
    UWZAT00234
:<code>UWZAT00234 </code>
Bei dem Define wird nun die Nummer 00234 anstelle der PLZ, und AT bei dem Ländercode verwendet
ist. Bei der Definition wird nun die Nummer ''00234'' anstelle der PLZ, und ''AT'' beim Ländercode verwendet:
    define Unwetterzentrale UWZ AT 00234 3600
:<code>define Unwetterzentrale UWZ AT 00234 3600 </code>


=== Attribute ===
=== Attribute ===
Zeile 70: Zeile 68:


== Links ==
== Links ==
* [http://www.unwetterzentrale.de Unwetterzentrale]
* [http://www.unwetterzentrale.de Unwetterzentrale] (für Deutschland)
* [http://unwetter.wetteralarm.at wetteralarm] (für Österreich)
* Geoservice [http://alertspro.geoservice.meteogroup.de/] zur Bestimmung von Geokoordinaten und Areacode

Version vom 23. Juli 2015, 06:59 Uhr

ContribModul
Zweck / Funktion
Daten von Unwetterzentrale.de holen
Allgemein
Typ Contrib
Details
Dokumentation Thema
Support (Forum) Unterstützende Dienste
Modulname 77_UWZ.pm
Ersteller Tobias (tdoe )
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Das Modul UWZ holt Informationen für eine zu spezifizierende Postleitzahl von der Seite Unwetterzentrale.de und bereitet sie für die Darstellung in Fhem auf.

Voraussetzungen

Installation

Das Modul ist derzeit noch inoffiziell und kann / muss

  • aus dem zugehörigen Forenthread (Siehe Zeile "Dokumentation" in der Infobox) geladen werden
  • oder über den Befehl update 77_UWZ.pm https://raw.githubusercontent.com/tobias-d-oe/fhem-uwz/master/control-uwz.txt installiert / aktualisiert werden.

Anwendung

Define

Abhängig davon, ob man Unwetterwarnungen aus Deutschland oder einem anderen Land abfragen möchte, muss für das Attribut PLZ entweder die Postleitzahl (Deutschland) oder die AREA_ID (Rest der Welt) verwendet werden.

Deutschland

define <name> UWZ <Ländercode> <PLZ> <INTERVAL>

Rest der Welt

define <name> UWZ <Ländercode> <AREA_ID> <INTERVAL>

Die AREA_ID kann folgendermaßen ermittelt werden:

Geokoordinaten ermitteln

Dazu wird folgende URL aufgerufen, und am Ende der URL bei dem search Parameter der Name des Ortes eingegeben. Im Fall von Oberwaltersdorf AT:

http://alertspro.geoservice.meteogroup.de/weatherpro/SearchFeed.php?search=oberwalt

Als Antwort bekommt man eine XML Struktur mit gefundenen Orten:

 <result>
   <cities previousOffset="-1" nextOffset="-1">
     <city country="49" city="8512" id="18226609" country-name="Germany" province-name="Bavaria" continent="6" inhabitants="7500" longitude="12.17092" latitude="48.57422" name="Oberwaltenkofen (Ergolding)" timezone="Europe/Berlin"/>
     <city country="49" city="8671" id="18226768" country-name="Germany" province-name="Bavaria" continent="6" inhabitants="4000" longitude="12.51418" latitude="48.77301" name="Oberwalting (Leiblfing)" timezone="Europe/Berlin"/>
     <city country="43" city="1161" id="18134912" country-name="Austria" province-name="Niederösterreich" continent="6" inhabitants="2500" longitude="16.3203" latitude="47.9756" name="Oberwaltersdorf" timezone="Europe/Vienna"/>
     <city country="43" city="1305915" id="182199490" country-name="Austria" province-name="Niederösterreich" continent="6" inhabitants="150" longitude="15.0844" latitude="48.5394" name="Oberwaltenreith" timezone="Europe/Vienna"/>
   </cities>
 </result>

Dort sucht man sich die beiden Attribute latitude und longitude für den passenden Ort heraus. Im verwendeten Beispiel wäre es für Oberwaltersdorf in Österreich:

latitude="47.9756"
longitude="16.3203"
AREA_ID abfragen

Mit diesen Werten wird nun die nächste URL zusammengebaut (Parameter lat + lon):

http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=lookupCoord&lat=47.9756&lon=16.3203

Das Resultat:

[{"AREA_TYPE":"UWZ","AREA_ID":"UWZAT00234","CENTER_ID":"2"}]

Nun wissen wir, dass die AREA_ID für Oberwaltersdorf:

UWZAT00234

ist. Bei der Definition wird nun die Nummer 00234 anstelle der PLZ, und AT beim Ländercode verwendet:

define Unwetterzentrale UWZ AT 00234 3600

Attribute

Siehe Dokumentation.

Anwendungsbeispiele

Links