UWZ: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Randnotiz überarbeitet ( falschen Hinweis entfernt das der UWZ Dienst nicht mehr arbeitet und damit das Modul obsolet ist ))
 
(32 dazwischenliegende Versionen von 11 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox Modul
{{Infobox Modul
|ModPurpose=Daten von Unwetterzentrale.de holen
|ModPurpose=Daten von Unwetterzentrale.de holen
|ModType=contrib
|ModType=d
|ModFTopic=33549
|ModForumArea=Unterstützende Dienste/Wettermodule
|ModCmdRef=ContribModul
|ModForumArea=Unterstützende Dienste
|ModTechName=77_UWZ.pm
|ModTechName=77_UWZ.pm
|ModOwner=Tobias ({{Link2FU|11054|tdoe}})
|ModOwner=Tdoe, CoolTux ({{Link2Forum|Topic=51233|LinkText=Forum}})
}}
}}


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.
Das Modul [[UWZ]] holt Informationen für eine zu spezifizierende Postleitzahl von der Seite [http://unwetterzentrale.de/ Unwetterzentrale.de] und bereitet sie für die Darstellung in FHEM auf.


== Voraussetzungen ==
== Voraussetzungen ==
{{Randnotiz|RNTyp=Fehl|RNText=Diese Anleitung ist etwas in die Tage gekommen. Es hat viele Änderungen und Neuerungen gegeben. Die {{Link2CmdRef|Anker=UWZ}} ist aktuell und sollte eine gute Hilfestellung geben. Ansonsten bitte ins Forum schauen, ob hier bereits Lösungen zum Problem bestehen.
Die Wikiseite wird nach und nach aktualisiert. Wenn du dies liest und du dich mit dem Modul auskennst, bist du recht herzlich eingeladen, den Artikel zu aktualisieren. So bleibt uns (Entwicklern) mehr Zeit, um uns um das Modul zu kümmern und dies zu verbessern/erweitern.}}
Standardinstallation und eine Internetverbindung werden für das Funktionieren des Moduls benötigt.


== Installation ==
== Installation ==
Das Modul ist derzeit noch inoffiziell und kann / muss
Das Modul wird als offizielles Modul per [[update]] verteilt und muss nicht extra installiert werden.
* aus dem zugehörigen Forenthread (Siehe Zeile "Dokumentation" in der Infobox) geladen werden
* oder über den Befehl <code><nowiki>update 77_UWZ.pm https://raw.githubusercontent.com/tobias-d-oe/fhem-uwz/master/control-uwz.txt</nowiki></code> installiert / aktualisiert werden.


== Anwendung ==
Falls nach dem "define" der Fehler "unable..." kommt und im Log "...Can't locate XML/Simple.pm in @INC (you may need to install the XML::Simple module)..." steht, so kommt man auf der Konsole mit der folgenden Installation weiter:
=== 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.
<code>cpan install XML::Simple</code>


'''Deutschland:'''
Es geht auf der Konsole aber auch mit:
    define <name> UWZ <Ländercode> <PLZ> <INTERVAL>


'''Rest der Welt:'''
<code>apt-get install libxml-simple-perl</code>
    define <name> UWZ <Ländercode> <AREA_ID> <INTERVAL>


Die AREA_ID kann folgendermaßen ermittelt 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 ====
:<code><nowiki>define <name> UWZ <Ländercode> <PLZ> <INTERVAL> </nowiki></code>


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


Die AREA_ID kann folgendermaßen ermittelt werden:


Dazu wird folgende URL aufgerufen, und am Ende der URL bei dem search Parameter den Namen des Ortes eingegeben. Im Fall von Oberwaltersdorf AT:
===== Geokoordinaten ermitteln =====
    http://alertspro.geoservice.meteogroup.de/weatherpro/SearchFeed.php?search=oberwalt
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 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"


== 2. AREA_ID abfragen ==
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>


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:
:<code>latitude="47.9756" </code>
:<code>longitude="16.3203" </code>


Mit diesen Werten wird nun die nächste URL zusammengebaut (Parameter lat + lon):
===== AREA_ID abfragen =====
    http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=lookupCoord&lat=47.9756&lon=16.3203
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>
   
   
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 74:


== Anwendungsbeispiele ==
== Anwendungsbeispiele ==
Zur Anzeige der Warnhinweise bietet das Modul vordefinierte Funktionen an, die in [[weblink|Weblinks]] benutzt werden können.
<!-- Beispiele für UWZAsHtmlLite und UWZAsHtmlKarteLand werden ergänzt, sobald (zur Erhöhung der Variationen) andere/mehr/weniger Warnhinweise vorliegen -->
[[Datei:UWZAsHtmlFP.png|mini|right|400px|Warnmeldungen als reine Icons (Format ''UWZAsHtmlFP'') mit Teilen der Objektdetails]]
=== Anzeige der Warnhinweise nur als Icon ===
Die UWZ-Warnhinweise können über die Definition
:<code>define ''UnwetterFloorplan'' weblink htmlCode {FHEM::UWZ::UWZAsHtmlFP("''Unwetterzentrale''")}</code>
als reine Icons angezeigt werden. Diese Darstellung eignet sich besonders für die Einbindung in einen [[FLOORPLAN]].
Im gezeigten Beispiel ist ''Unwetterzentrale'' der Name des UWZ-Objekts und ''UnwetterDetailliert'' der Name des erzeugten weblink-Objekts.
<br clear=all>
[[Datei:UWZAsHtml.png|mini|right|400px|Warnmeldungen im Format ''UWZAsHtml'']]
=== Detaillierte Anzeige der Warnhinweise ===
Zur Anzeige der Warnhinweise in der ausführlichsten Form kann mit
:<code>define ''UnwetterDetailliert'' weblink htmlCode {FHEM::UWZ::UWZAsHtml("''Unwetterzentrale''")}</code>
ein weblink definiert werden.
Im gezeigten Beispiel ist ''Unwetterzentrale'' der Name des UWZ-Objekts und ''UnwetterDetailliert'' der Name des erzeugten weblink-Objekts.
=== Unwetterkarten ===
Auch diverse Unwetterkarten können eingebunden und gedownloadet werden.
Hierfür stehen eine Reihe von Karten zur Verfügung.
Mögliche Karten sind:
*europa
*deutschland
*deutschland-small
*bayern
*bremen
*baden-wuerttemberg
*brandenburg
*berlin
*hessen
*niedersachsen
*rheinland-pfalz
*saarland
*sachsen
*sachsen-anhalt
*thueringen
*nordrhein-westfalen
*mecklenburg-vorpommern
*schleswig-holstein
*hamburg
*oesterreich
*burgenland
*kaernten
*niederoesterreich
*oberoesterreich
*salzburg
*steiermark
*tirol
*vorarlberg
*wien
*schweiz
*aargau
*appenzell_ausserrhoden
*appenzell_innerrhoden
*basel_landschaft
*basel_stadt
*bern
*fribourg
*geneve
*glarus
*graubuenden
*jura
*luzern
*neuchatel
*nidwalden
*obwalden
*schaffhausen
*schwyz
*solothurn
*stgallen
*ticino
*thurgau
*uri
*waadt
*wallis
*zug
*zuerich
*liechtenstein
*belgique
*denmark
*finnland
*france
*letzebuerg
*nederland
*norwegen
*portugal
*sverige
*espana
*unitedkingdom
*eastofengland
*eastmidlands
*london
*northeastengland
*northernireland
*northwestengland
*scotland
*southeastengland
*southwestengland
*wales
*westmidlands
*yorkshireandthehumber
*isobaren1
*isobaren2
*isobaren3
==== Anzeige von Unwetterkarten ====
Dies erfolgt ebenfalls durch einem weblink.
:<code>define ''UnwetterKarteDeutschland'' weblink htmlCode {FHEM::UWZ::UWZAsHtmlKarteLand("''Unwetterzentrale''","''Deutschland''")}</code>
==== Download von Unwetterkarten ====
Um die Karten herunterzuladen um sie beispielsweise mit dem RSS Modul zu nutzen, muss dies am UWZ Device via Attribute konfiguriert werden.
Hierfür stehen folgende Attribute zur Verfügung:
*download [0|1]
*savepath (default:"/tmp/")
*maps (leerzeichen separierte Liste der zu speichernden Unwetterkarten)
:<code>attr ''Unwetterzentrale'' download 1</code>
:<code>attr ''Unwetterzentrale'' savepath /tmp/</code>
:<code>attr ''Unwetterzentrale'' maps deutschland europa bayern</code>
Die angegebenen Karten werden bei jedem Lauf erneut heruntergeladen und überschreiben das alte File.
==== Wetteranimation ====
Ab der Version 1.4.1 bietet das Modul auch die Möglichkeit diverse Wetteranimationen zu integrieren. Diese können ebenfalls mittels weblink genutzt werden.
Beispiel:
:<code>define ''UnwetterKarteMovie'' weblink htmlCode {FHEM::UWZ::UWZAsHtmlMovie("Unwetterzentrale","stroemung")}</code>
Der erste Parameter definiert das zugehörige UWZ Device.
Der zweite Parameter kann einer der folgenden sein:
*niederschlag-wolken
*stroemung
*temperatur
*niederschlag-wolken-de
*stroemung-de
*niederschlag-wolken-ch
*stroemung-ch
*niederschlag-wolken-at
*stroemung-at
*niederschlag-wolken-uk
*stroemung-uk


== 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
* Modulthread im Forum: {{Link2Forum|Topic=51233}}

Aktuelle Version vom 27. Mai 2022, 08:36 Uhr

UWZ
Zweck / Funktion
Daten von Unwetterzentrale.de holen
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Unterstützende Dienste/Wettermodule
Modulname 77_UWZ.pm
Ersteller Tdoe, CoolTux (Forum)
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

X mark.svgDiese Anleitung ist etwas in die Tage gekommen. Es hat viele Änderungen und Neuerungen gegeben. Die commandref/UWZ ist aktuell und sollte eine gute Hilfestellung geben. Ansonsten bitte ins Forum schauen, ob hier bereits Lösungen zum Problem bestehen. Die Wikiseite wird nach und nach aktualisiert. Wenn du dies liest und du dich mit dem Modul auskennst, bist du recht herzlich eingeladen, den Artikel zu aktualisieren. So bleibt uns (Entwicklern) mehr Zeit, um uns um das Modul zu kümmern und dies zu verbessern/erweitern.

Standardinstallation und eine Internetverbindung werden für das Funktionieren des Moduls benötigt.

Installation

Das Modul wird als offizielles Modul per update verteilt und muss nicht extra installiert werden.

Falls nach dem "define" der Fehler "unable..." kommt und im Log "...Can't locate XML/Simple.pm in @INC (you may need to install the XML::Simple module)..." steht, so kommt man auf der Konsole mit der folgenden Installation weiter:

cpan install XML::Simple

Es geht auf der Konsole aber auch mit:

apt-get install libxml-simple-perl

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

Zur Anzeige der Warnhinweise bietet das Modul vordefinierte Funktionen an, die in Weblinks benutzt werden können.

Warnmeldungen als reine Icons (Format UWZAsHtmlFP) mit Teilen der Objektdetails

Anzeige der Warnhinweise nur als Icon

Die UWZ-Warnhinweise können über die Definition

define UnwetterFloorplan weblink htmlCode {FHEM::UWZ::UWZAsHtmlFP("Unwetterzentrale")}

als reine Icons angezeigt werden. Diese Darstellung eignet sich besonders für die Einbindung in einen FLOORPLAN.

Im gezeigten Beispiel ist Unwetterzentrale der Name des UWZ-Objekts und UnwetterDetailliert der Name des erzeugten weblink-Objekts.


Warnmeldungen im Format UWZAsHtml

Detaillierte Anzeige der Warnhinweise

Zur Anzeige der Warnhinweise in der ausführlichsten Form kann mit

define UnwetterDetailliert weblink htmlCode {FHEM::UWZ::UWZAsHtml("Unwetterzentrale")}

ein weblink definiert werden.

Im gezeigten Beispiel ist Unwetterzentrale der Name des UWZ-Objekts und UnwetterDetailliert der Name des erzeugten weblink-Objekts.

Unwetterkarten

Auch diverse Unwetterkarten können eingebunden und gedownloadet werden. Hierfür stehen eine Reihe von Karten zur Verfügung. Mögliche Karten sind:

  • europa


  • deutschland
  • deutschland-small
  • bayern
  • bremen
  • baden-wuerttemberg
  • brandenburg
  • berlin
  • hessen
  • niedersachsen
  • rheinland-pfalz
  • saarland
  • sachsen
  • sachsen-anhalt
  • thueringen
  • nordrhein-westfalen
  • mecklenburg-vorpommern
  • schleswig-holstein
  • hamburg


  • oesterreich
  • burgenland
  • kaernten
  • niederoesterreich
  • oberoesterreich
  • salzburg
  • steiermark
  • tirol
  • vorarlberg
  • wien


  • schweiz
  • aargau
  • appenzell_ausserrhoden
  • appenzell_innerrhoden
  • basel_landschaft
  • basel_stadt
  • bern
  • fribourg
  • geneve
  • glarus
  • graubuenden
  • jura
  • luzern
  • neuchatel
  • nidwalden
  • obwalden
  • schaffhausen
  • schwyz
  • solothurn
  • stgallen
  • ticino
  • thurgau
  • uri
  • waadt
  • wallis
  • zug
  • zuerich


  • liechtenstein
  • belgique
  • denmark
  • finnland
  • france
  • letzebuerg
  • nederland
  • norwegen
  • portugal
  • sverige
  • espana


  • unitedkingdom
  • eastofengland
  • eastmidlands
  • london
  • northeastengland
  • northernireland
  • northwestengland
  • scotland
  • southeastengland
  • southwestengland
  • wales
  • westmidlands
  • yorkshireandthehumber


  • isobaren1
  • isobaren2
  • isobaren3

Anzeige von Unwetterkarten

Dies erfolgt ebenfalls durch einem weblink.

define UnwetterKarteDeutschland weblink htmlCode {FHEM::UWZ::UWZAsHtmlKarteLand("Unwetterzentrale","Deutschland")}

Download von Unwetterkarten

Um die Karten herunterzuladen um sie beispielsweise mit dem RSS Modul zu nutzen, muss dies am UWZ Device via Attribute konfiguriert werden. Hierfür stehen folgende Attribute zur Verfügung:

  • download [0|1]
  • savepath (default:"/tmp/")
  • maps (leerzeichen separierte Liste der zu speichernden Unwetterkarten)
attr Unwetterzentrale download 1
attr Unwetterzentrale savepath /tmp/
attr Unwetterzentrale maps deutschland europa bayern

Die angegebenen Karten werden bei jedem Lauf erneut heruntergeladen und überschreiben das alte File.


Wetteranimation

Ab der Version 1.4.1 bietet das Modul auch die Möglichkeit diverse Wetteranimationen zu integrieren. Diese können ebenfalls mittels weblink genutzt werden.

Beispiel:

define UnwetterKarteMovie weblink htmlCode {FHEM::UWZ::UWZAsHtmlMovie("Unwetterzentrale","stroemung")}


Der erste Parameter definiert das zugehörige UWZ Device.

Der zweite Parameter kann einer der folgenden sein:

  • niederschlag-wolken
  • stroemung
  • temperatur


  • niederschlag-wolken-de
  • stroemung-de


  • niederschlag-wolken-ch
  • stroemung-ch


  • niederschlag-wolken-at
  • stroemung-at


  • niederschlag-wolken-uk
  • stroemung-uk

Links