[Unwetterwarnung] 77_UWZ.pm Modul für unwetterzentrale.de und wetteralarm.at

Begonnen von CoolTux, 23 März 2016, 12:06:02

Vorheriges Thema - Nächstes Thema

CoolTux

Zitat von: FrankieSOC am 22 Juli 2017, 13:52:04
Hey Leon,

ich bin noch bei Fhem und mal wieder über ein Modul gestolpert, wo du aktiv bist.
Klappt alles gut, vielen Dank!

Die Niederschlags Movies finde ich aber nichts so toll.
Kann man auch die Seite von Kachelmann Wetter einbauen? https://kachelmannwetter.com/de/regenradar/mayen-koblenz#play

Viele Grüße
Frank

Hallo Frank,

Freut mich das Du noch dabei bist. Zeigt ja das FHEM das ist was Du Dir so vorgestellt hast.
Sicherlich wäre es möglich andere Quellen ein zu binden. Bei dem Modul geht es aber hauptsächlich um unwetter.de. Und ich muss gestehen das Du der erste bist der an fragt. Somit wäre zur Zeit der Aufwand in meinen Augen höher wie der Nutzen.


Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Hanjo

Hi Leon,

ich habe den Use-Case, dass ich mir die aktuellste Warnung auf's Handy schicken lasse. Dazu muss ich aber wissen, welches die aktuellste Warnung ist. Für diesen Fall ist es praktisch, wenn man die Warnungen nach "Creation" sortiert hat, so dass die neuste Warnung immer die Nummer 0 hat.

Ich habe dazu einen Patch geschrieben, vielleicht magst du dir das ja mal anschauen und bei Gefallen einchecken :-)

Danke & Gruß
Hanjo

--- /home/pi/77_UWZ.pm 2017-08-05 15:22:14.452046147 +0200
+++ /opt/fhem/FHEM/77_UWZ.pm 2017-08-05 16:08:12.015607496 +0200
@@ -277,7 +277,7 @@
                         "htmltitleclass ".
                         "htmlsequence:ascending,descending ".
                         "lang ".
-                        "sort_readings_by:severity,start ".
+                        "sort_readings_by:severity,start,creation ".
                         "localiconbase ".
                         $readingFnAttributes;
   
@@ -709,7 +709,10 @@
     UWZ_Log $hash, 4, "There are ".$uwz_warncount." warnings active";
     my $sortby = AttrVal( $name, 'sort_readings_by',"" );
     my @sorted;
-    if ( $sortby ne "severity" ) {
+    if ( $sortby eq "creation" ) {
+        UWZ_Log $hash, 4, "Sorting by creation";
+        @sorted =  sort { $b->{payload}{creation} <=> $a->{payload}{creation} } @{ $uwz_warnings->{'results'} };
+    } elsif ( $sortby ne "severity" ) {
         UWZ_Log $hash, 4, "Sorting by dtgStart";
         @sorted =  sort { $a->{dtgStart} <=> $b->{dtgStart} } @{ $uwz_warnings->{'results'} };
     } else {
@@ -1593,7 +1596,7 @@
       </li>
       <li><code>sort_readings_by</code>
          <br>
-         define how readings will be sortet (start|severity).
+         define how readings will be sortet (start|severity|creation).
          <br>
       </li>
       <li><code>htmlsequence</code>
@@ -1980,7 +1983,7 @@
       </li>
       <li><code>sort_readings_by</code>
          <br>
-         Sortierreihenfolge der Warnmeldungen. (start|severity).
+         Sortierreihenfolge der Warnmeldungen. (start|severity|creation).
          <br>
       </li>
       <li><code>htmlsequence</code>

CoolTux

Hallo Hanjo,

Sieht auf den ersten Blick ganz gut aus. Vielen Dank. Werde ich die Tage einarbeiten.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

dora71

Hallo zusammen,

habe mir auch das UWZ-Modul installiert und bin auch soweit zufrieden damit.

Gibt es die Möglichkeit (oder wurde schon danach gefragt?), dass man nicht nur die Maps, sondern auch das gerade aktuelle Icon (dessen Link ja in der aktuellen Warnung drinnesteht), auch herunterlädt?

Hintergrund: Ich lasse mir z. Zt. die Warnungen mittels RSS anzeigen, das wird ja minütlich aktualisiert. Jetzt mache ich es so, dass ich mir bei einer entsprechenden Warnung das Icon von der URL laden lasse. Klappt prima, verursacht aber nach meinem Verständnis unnötig Traffic. Daher wäre es schön, wenn bei einer Warnung das Symbol (wahlweise) mit heruntergeladen werden könnte in einen lokalen Ordner (gerne auch wieder /tmp/ wie bei den Maps), dann könnte man darauf zugreifen.

Hoffe, mich verständlich ausgedrückt zu haben.

Danke für die tolle Arbeit, weiter so.

Gruß

Rainer

CoolTux

Hallo Rainer,

Es ist nicht vorgesehen das Icons mit runter geladen werden. Die Links sollten ausreichend sein, da die Daten sehr sehr klein sind.



Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

holle75

Gerade mit UWZ gespielt. Auf Anhieb funktional. Danke!

Könntet ihr die Maps für Italien noch mit aufnehmen?

:



my $uwz_it_url = "http://allarmi.meteo-allerta.it/images/map/";

## IT
    $lmap->{'italia'}=$uwz_it_url.'italia_index.png';
    $lmap->{'valledaosta'}=$uwz_it_url.'valledaosta_index.png';
    $lmap->{'piemonte'}=$uwz_it_url.'piemonte_index.png';
    $lmap->{'lombardia'}=$uwz_it_url.'lombardia_index.png';
    $lmap->{'trentinoaltoadige'}=$uwz_it_url.'trentinoaltoadige_index.png';
    $lmap->{'friuliveneziagiulia'}=$uwz_it_url.'friuliveneziagiulia_index.png';
    $lmap->{'veneto'}=$uwz_it_url.'veneto_index.png';
    $lmap->{'liguria'}=$uwz_it_url.'liguria_index.png';
    $lmap->{'emiliaromagna'}=$uwz_it_url.'emiliaromagna_index.png';
    $lmap->{'toscana'}=$uwz_it_url.'toscana_index.png';
    $lmap->{'marche'}=$uwz_it_url.'marche_index.png';
    $lmap->{'umbria'}=$uwz_it_url.'umbria_index.png';
    $lmap->{'lazio'}=$uwz_it_url.'lazio_index.png';
    $lmap->{'molise'}=$uwz_it_url.'molise_index.png';
    $lmap->{'abruzzo'}=$uwz_it_url.'abruzzo_index.png';
    $lmap->{'campania'}=$uwz_it_url.'campania_index.png';
    $lmap->{'puglia'}=$uwz_it_url.'puglia_index.png';
    $lmap->{'basilicata'}=$uwz_it_url.'basilicata_index.png';
    $lmap->{'calabria'}=$uwz_it_url.'calabria_index.png';
    $lmap->{'sicilia'}=$uwz_it_url.'sicilia_index.png';
    $lmap->{'sardegna'}=$uwz_it_url.'sardegna_index.png';


Filme:


## IT
    $lmap->{'niederschlag-wolken-it'}=$uwz_movie_url.'UWZ_EUROPE_ITALY_COMPLETE_niwofi.mp4';
    $lmap->{'stroemung-it'}=$uwz_movie_url.'UWZ_EUROPE_ITALY_COMPLETE_stfi.mp4';


.... wenn ich mich jetzt nicht irgendwo vertippt habe ...

Danke und Gruß

H.

CoolTux

Zitat von: holle75 am 15 August 2017, 15:40:48
Gerade mit UWZ gespielt. Auf Anhieb funktional. Danke!

Könntet ihr die Maps für Italien noch mit aufnehmen?

:



my $uwz_it_url = "http://allarmi.meteo-allerta.it/images/map/";

## IT
    $lmap->{'italia'}=$uwz_it_url.' italia_index.png';
    $lmap->{'valledaosta'}=$uwz_it_url.'valledaosta_index.png';
    $lmap->{'piemonte'}=$uwz_it_url.'piemonte_index.png';
    $lmap->{'lombardia'}=$uwz_it_url.'lombardia_index.png';
    $lmap->{'trentinoaltoadige'}=$uwz_it_url.'trentinoaltoadige_index.png';
    $lmap->{'friuliveneziagiulia'}=$uwz_it_url.'friuliveneziagiulia_index.png';
    $lmap->{'veneto'}=$uwz_it_url.'veneto_index.png';
    $lmap->{'liguria'}=$uwz_it_url.'liguria_index.png';
    $lmap->{'emiliaromagna'}=$uwz_it_url.'emiliaromagna_index.png';
    $lmap->{'toscana'}=$uwz_it_url.'toscana_index.png';
    $lmap->{'marche'}=$uwz_it_url.'marche_index.png';
    $lmap->{'umbria'}=$uwz_it_url.'umbria_index.png';
    $lmap->{'lazio'}=$uwz_it_url.'lazio_index.png';
    $lmap->{'molise'}=$uwz_it_url.'molise_index.png';
    $lmap->{'abruzzo'}=$uwz_it_url.'abruzzo_index.png';
    $lmap->{'campania'}=$uwz_it_url.'campania_index.png';
    $lmap->{'puglia'}=$uwz_it_url.'puglia_index.png';
    $lmap->{'basilicata'}=$uwz_it_url.'basilicata_index.png';
    $lmap->{'calabria'}=$uwz_it_url.'calabria_index.png';
    $lmap->{'sicilia'}=$uwz_it_url.'sicilia_index.png';
    $lmap->{'sardegna'}=$uwz_it_url.'sardegna_index.png';


Filme:


## IT
    $lmap->{'niederschlag-wolken-it'}=$uwz_movie_url.'UWZ_EUROPE_ITALY_COMPLETE_niwofi.mp4';
    $lmap->{'stroemung-it'}=$uwz_movie_url.'UWZ_EUROPE_ITALY_COMPLETE_stfi.mp4';


.... wenn ich mich jetzt nicht irgendwo vertippt habe ...

Danke und Gruß

H.

Mache ich gerne, wenn Du das bitte bei Dir testest. Also Du Dir sicher bist das Du Dich nicht vertippt hast.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

holle75

... ein leerzeichen hatte sich reingeschlichen. Oben verbessert. Sonst gut.

Die Warnungen kommen ja, wenn ich das richtig gesehen habe, von einer Quelle egal welches Land?

CoolTux

Sollte passen. Ich werde es bei Gelegenheit dann gerne einbauen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net


Spiff

Hi,

kann man iconv auch durch etwas anderes ersetzen? Ich habe Probleme, iconv unter Windows ActivePerl zu installieren.
Ich habe sowas als Beispiel gefunden:

my $str = "A string in Perl internal format ....";
my $octets = encode("utf-8",$str,Encode::FB_CROAK);

#to check for utf you can use function
is_utf8($str,Encode::FB_CROAK)


Wäre das möglich?

Danke & Gruß
Spiff.

CoolTux

Zitat von: Spiff am 17 August 2017, 13:46:04
Hi,

kann man iconv auch durch etwas anderes ersetzen? Ich habe Probleme, iconv unter Windows ActivePerl zu installieren.
Ich habe sowas als Beispiel gefunden:

my $str = "A string in Perl internal format ....";
my $octets = encode("utf-8",$str,Encode::FB_CROAK);

#to check for utf you can use function
is_utf8($str,Encode::FB_CROAK)


Wäre das möglich?

Danke & Gruß
Spiff.

Sorry aber ich werde das nicht machen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

holle75

Hello, heute bekomme ich folgende Fehlermeldung im log:

2017.08.17 11:55:44 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/77_UWZ.pm line 937.
2017.08.17 12:55:43 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/77_UWZ.pm line 937.
2017.08.17 13:55:53 1: UWZ Unwetterwarnungen: JSONAcquire.529 Error: Can't get http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=UWZIT00256 -- 500 Can't connect to feed.alertspro.meteogroup.com:80
malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "Error|Error 500 Can'...") at ./FHEM/77_UWZ.pm line 733.
2017.08.17 14:55:43 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/77_UWZ.pm line 937.
2017.08.17 15:55:44 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/77_UWZ.pm line 937.
2017.08.17 16:55:43 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/77_UWZ.pm line 937.
2017.08.17 17:55:43 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/77_UWZ.pm line 937.
2017.08.17 18:55:43 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/77_UWZ.pm line 937.


gestern gab es die noch nicht, da keine Warnungen vorlagen. Liegt das an meiner Modifikation mit den Italienischen Regionen? Sollte ja aber nicht, da die Warnungs-URL wohl universal ist ... und in Zeile 937 habe ich nichts verändert.

list

Internals:
   CountryCode IT
   DEF        IT 00261 3600
   INTERVAL   3600
   NAME       Unwetterwarnungen
   NR         426
   PLZ        00261
   STATE      Warnings: 1
   TYPE       UWZ
   URL        http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=UWZIT00256
   VERSION    1.4.7
   Readings:
     2017-08-17 18:55:43   WarnCount       1
     2017-08-17 18:55:43   WarnUWZLevel    1
     2017-08-17 18:55:43   WarnUWZLevel_Color orange
     2017-08-17 18:55:43   WarnUWZLevel_Str level dark green (weather notice)
     2017-08-17 18:55:43   Warn_0_AltitudeMax 1000
     2017-08-17 18:55:43   Warn_0_AltitudeMin -10
     2017-08-17 18:55:43   Warn_0_Creation 1502963520
     2017-08-17 18:55:43   Warn_0_Creation_Date 17.08.2017
     2017-08-17 18:55:43   Warn_0_Creation_Time 11:52
     2017-08-17 18:55:43   Warn_0_End      1503068400
     2017-08-17 18:55:43   Warn_0_End_Date 18.08.2017
     2017-08-17 18:55:43   Warn_0_End_Time 17:00
     2017-08-17 18:55:43   Warn_0_EventID  15029635701228
     2017-08-17 18:55:43   Warn_0_Hail     0
     2017-08-17 18:55:43   Warn_0_IconURL  http://www.unwetterzentrale.de/images/icons/temperatur-orange.gif
     2017-08-17 18:55:43   Warn_0_LongText Wetterhinweis wegen Hitze, gültig von Donnerstag, 17.08. 14:00 Uhr bis Freitag, 18.08. 17:00 Uhr.
     2017-08-17 18:55:43   Warn_0_Severity 4
     2017-08-17 18:55:43   Warn_0_ShortText Wetterhinweis wegen Hitze, gültig von Donnerstag, 17.08. 14:00 Uhr bis Freitag, 18.08. 17:00 Uhr.
     2017-08-17 18:55:43   Warn_0_Start    1502971200
     2017-08-17 18:55:43   Warn_0_Start_Date 17.08.2017
     2017-08-17 18:55:43   Warn_0_Start_Time 14:00
     2017-08-17 18:55:43   Warn_0_Type     9
     2017-08-17 18:55:43   Warn_0_Type_Str heat
     2017-08-17 18:55:43   Warn_0_levelName notice_warn_orange
     2017-08-17 18:55:43   Warn_0_uwzLevel 1
     2017-08-17 18:55:43   Warn_0_uwzLevel_Str level dark green (weather notice)
     2017-08-17 18:55:43   durationFetchReadings 0.27
     2017-08-17 18:55:43   lastConnection  27 values captured in 0.27 s
     2017-08-17 18:55:43   state           Warnings: 1
   Fhem:
     LOCAL      0
   Helper:
Attributes:
   group      Wetter
   humanreadable 1
   lang       de
   verbose    2


Die Warnung wird korrekt angezeigt.

Jemand eine Idee?

Danke und Gruß

H.

Edit: der feed an sich sieht so aus
{"results":[{"center":"UWZ","areaID":"UWZIT00324","dtgEnd":1503068400,"areaType":"UWZCODE","dtgStart":1502971200,"payload":{"translationsLongText":{"DE":"Wetterhinweis wegen Hitze, g\u00fcltig von Donnerstag, 17.08. 14:00 Uhr bis Freitag, 18.08. 17:00 Uhr."},"id":"15029635701228","creation":1502963520000,"uwzLevel":4,"translationsShortText":{"DE":"Wetterhinweis wegen Hitze, g\u00fcltig von Donnerstag, 17.08. 14:00 Uhr bis Freitag, 18.08. 17:00 Uhr."},"fileName":"meteogroup_warn_15029635701228_20170817095251_1503068400_1502963602.xml","levelName":"notice_warn_orange","shortText":"Weather notice concerning heat, valid from Thursday, 17.08. 14:00 till Friday, 18.08. 17:00.","longText":"Weather notice concerning heat, valid from Thursday, 17.08. 14:00 till Friday, 18.08. 17:00.","altMin":-10,"altMax":1000},"severity":4,"type":9}],"generator":"PHPjf"}

Spiff

Moin,

Zitat von: CoolTux am 17 August 2017, 14:41:06
Sorry aber ich werde das nicht machen.

Gibt es auch eine technische Begründung dazu?
Warum muss hier überhaupt etwas konvertiert werden? Hat das mit Umlauten zu tun?
Da das ausgehende Format ja anscheinend eine Windows-Codierung ist, die man unter Windows dann evtl. nicht bräuchte, gibt es vielleicht die Möglichkeit, die Konvertierung je nach Betriebssystem abzuschalten?

Gruß
Spiff.

CoolTux

Es gibt keine techn. Begründung. Ich habe nur keine Lust dazu. Wüsste auch nicht wieso ich meine Entscheidungen begründen muss.
Du hast die Möglichkeit uns einen getesteten Patch an zu bieten der Deinen Wunsch erfüllt.  Wenn wir den Code für sauber und funktional halten wird er sicherlich eingearbeitet.
Das was Du mir da aber vor die Füße geworfen hast ist nichts halbes und nichts ganzes. Hier mach mal! Das ist weder in England noch hier im Forum eine nette Art.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net