Hallo Forum-Gemeinde,
nach langer Suche im Forum / Google ohne brauchbares Resultat muss ich hier mal eine Frage los werden.
Ich habe auf meinem FHEM die Unwetterzentrale und Telegram installiert.
Mein Plan war nun, dass ich mir bei Erhalt von Warnungen aus der UWZ den Text per Telegram auf meine Handy schicke.
Für mich als Neueinsteiger aber ein Buch mit sieben Siegeln.
Für Tipps und Tricks bin ich aber zu haben.
Vielleicht kann mir jemand helfen?!
Vielen Dank schon mal!
Viele Grüße
Das gefällt mir 8)
ich hab gleich mal probiert das bei mir auch einzubauen ;D
Hier ein code ist aber noch nicht getestet! sollte per Whatsapp senden...
Whatsapp macht mir aber noch Probleme...daher ohne Garantie.
define Unwetterwarnung_Nachrichten1 notify Unwetterzentrale.* \
{ fhem ("set petzewetter Ein") if (ReadingsVal("Unwetterzentrale","Warn_0_uwzLevel","") >= 1 && Value("petzewetter") eq "bereit") }\
{ fhem ("set petzewetter Ein") if (ReadingsVal("Unwetterzentrale","Warn_1_uwzLevel","") >= 1 && Value("petzewetter") eq "bereit") }\
{ fhem ("set petzewetter Ein") if (ReadingsVal("Unwetterzentrale","Warn_2_uwzLevel","") >= 1 && Value("petzewetter") eq "bereit") }
define Unwetterwarnung_Nachrichten2 notify petzewetter:Ein {\
my $wettwa1;;\
$wettwa1 = fhem("get Unwetterzentrale Warn_0_LongText");;\
print $wettwa1;;\
my $wettwa2;;\
$wettwa2 = fhem("get Unwetterzentrale Warn_1_LongText");;\
print $wettwa2;;\
my $wettwa3;;\
$wettwa3 = fhem("get Unwetterzentrale Warn_2_LongText");;\
print $wettwa3;;\
{NMA_send("Achtung","Achtung Wetterwarnung: $wettwa1,$wettwa2,$wettwa3.",5,"Markus")} \
{fhem "set Max send Achtung Wetterwarnung: $wettwa1,$wettwa2,$wettwa3. ;; \
set petzewetter nein ;; delete wetta_petzen ;; define wetta_petzen at +10:00:00 set petzewetter bereit" }\
}
Gruß Markus
danke dir für die Infos...
Statt Whatsapp würde ich aber lieber Telegram einsetzen...
:-)
Mal weiter auf der Suche....
Da sich auf Anbieterseite gerne mal etwas an Inhalten, Formatierung etc. ändert und Du somit gleich mehrere "Baustellen" hast, würde ich das eher autark machen.
Guck Dir z.B. mal das hier http://www.dwd.de/DE/leistungen/warnwetterapp/warnwetterapp.html (http://www.dwd.de/DE/leistungen/warnwetterapp/warnwetterapp.html) an.
Zuhause habe ich natürlich auch das GDS-Modul integriert und lasse mir die Infos auf meinem RSS-Tablet in der Küche anzeigen. :)
ich mache das auch per WhatsApp, nur nicht so schick wie Markus:
define di_uwz_wa DOIF ([Unwetterwarnungen:WarnCount] > 0) (set WhatsApp0 send meineGruppennummer Unwetterwarnung: http://www.unwetterzentrale.de/uwz/getwarning_de.php?plz=meinePLZ&uwz=UWZ-DE&lang=de)
DOELSE
(set WhatsApp0 send meineGruppennummer Ende Unwetterwarnung)
Auch dadurch bekomme ich bei mehreren Warnungen immer eine WhatsApp, wenn der Counter hoch geht, aber auch wenn er runter geht. Beide Ansätze sollten sich ja problemlos auf telegramm umsetzen lassen!
Ich sehe das aber eigentlich wie Hollo - es ist Spielkram, denn dafür gibt es ja die UWZ-App (oder eben die DWD-App), die das besser darstellt. Ich wusste bislang auch nicht, wie viele Unwetterwarnungen es für meinen Wohnort gibt und hätte auch ohne dieses Wissen weiter überlebt 8)
einfache Grüße
Niels
zunächst einmal ein Dank an Euch alle.
Die Idee mit der WarnWetterApp wäre ja zu leicht! :-)
Mich hatte diesbezüglich einfach auch die Technik hinsichtlich Statusmeldungen auf Telegram zu senden interessiert.
Noch mal mein Dank aber trotzdem...
GDS habe ich mir jetzt auch mal installiert.
Schauen wir mal was sich alles damit relaisieren lässt.
Viele Grüße
Da ich das Thema sehr spannend finde, wollte ich fragen, obs dazu inzwischen eine Lösung gibt :)
Viele Grüße
Ich habe in Telegram den bot des DWD abonniert (WettWarnDev). Für mich warnen die bei jeden Verdacht auf xx, der dann selten eintritt.
Wenn mans über fhem machen will, dann kann ich nur mir einer Idee antworten.
Wie wird die Warnung ausgelöst und liegt sie als String vor? Dann kann man ja den String übergeben. Ich habe eine Telegram-Nachrichtenfunktion, der ich Empfänger und Text übergebe. (Meldet mir ob Updates anstehen, die Wetterstation Sturm meldet und ob jemand nach hause gekommen/gegngen ist)
Bei mir läuft das über die Unwetterzentrale mit Pushnachricht per Telegram wie folgt (war irgendwo mal beschrieben):
defmod Unwetterzentrale UWZ DE 55xxx 3600
attr Unwetterzentrale room Wetter
defmod Push_Wetterwarnung_1 DOIF ([Unwetterzentrale:WarnCount] eq "1") (set Telegram message Wetterwarnung: [Unwetterzentrale:Warn_0_LongText]!)
Wenn die Funktion für WarnCount 2 und WarnCount3 noch hinzugefügt wird, kommen beim Wechsel von WarnCount3 auf WarnCount2 bzw von WarnCount2 auf WarnCount1 die vorherigen Meldungen nochmals. Das muss ich irgendwann noch abfangen...
Es gibt eine wunderbare myUtils Funktion für UWZ im Forum.
@Brice:
Cool, ich bekomme jetzt die Nachrichten auf Telegram! Allerdings halt immer 3 Stück, auch wenn es weniger
Meldungen gibt (die 3. ist dann leer)
DEF
([Unwetterzentrale:WarnCount] eq "1") (set Kitt message Wetterwarnung: [Unwetterzentrale:Warn_0_LongText])
([Unwetterzentrale:WarnCount] eq "2") (set Kitt message Wetterwarnung: [Unwetterzentrale:Warn_1_LongText])
([Unwetterzentrale:WarnCount] eq "3") (set Kitt message Wetterwarnung: [Unwetterzentrale:Warn_2_LongText])
NAME
Push_Wetterwarnung_1
NR
32
NTFY_ORDER
50-Push_Wetterwarnung_1
STATE
cmd_1
TYPE
DOIF
@CoolTux:
Sorry, was genau meinst du?
sub uwzWarn($$) {
my ($name,$event) = @_;
my $hash = $defs{$name}; # ermitteln des Hashwertes um später readingsSingleUpdate verwenden zu können
my $countWarn = ReadingsVal($name,"WarnCount","");
my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
my $unwetterText = "<div class=\"top-space-min\">";
my $warnnumber = "";
my $warnbild ="";
############ Sprachbenachrichtigung über Hausinterne Kommunikation
if( ReadingsVal( $name, "WarnCount", 0 ) > ReadingsVal( $name, "lastWarnCount", 0 ) && ($event) > 0 ) {
my $wType = ReadingsVal( $name, "Warn_${wNb}_Type_Str", 0 );
my $wTextShort = ReadingsVal( $name, "Warn_${wNb}_ShortText", 0 );
my $wTextLong = ReadingsVal( $name, "Warn_${wNb}_LongText", 0 );
my $wEnd = ReadingsVal( $name, "Warn_${wNb}_End_Date", 0 )." um ".ReadingsVal( $name, "Warn_${wNb}_End_Time", 0 );
oldVolume("Nexus7Wohnzimmer","safe"); # bitte rausnehmen bei Euch, ist eine Routine um die Lautstärke des Ausgabegerätes zwschen zu speichern
oldVolume("DesireHD_Flur","safe"); # hier das selbe
fhem "set pushmsg msg 'Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd' '' 1 ''"; # Versenden der Warnung über Pushover
fhem "set Nexus7Wohnzimmer|DesireHD_Flur notifySndFile Gong.mp3; sleep 1; set Nexus7Wohnzimmer|DesireHD_Flur volume 8; sleep 1; set Nexus7Wohnzimmer|DesireHD_Flur ttsMsg ACHTUNG! Unwetterwarnung vor $wType. $wTextShort. Unwetterwarnung endet am $wEnd" if( ReadingsVal( "AnniKraussStr","residentsAsleep", 1 ) == 0 );
oldVolume("Nexus7Wohnzimmer","restore"); # bitte rausnehmen bei Euch, ist das wiederherstellen der alten Lautstärke
oldVolume("DesireHD_Flur","restore");
}
Bitte an eigene Vorlieben anpassen.
Danke,
ich versuche mich mal damit :)
Hier mal eine etwas aktuellere Version
sub uwzWarn($$) {
my ($name,$event) = @_;
my $hash = $defs{$name};
my $countWarn = ReadingsVal($name,"WarnCount","");
my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
my $unwetterText = "<div class=\"top-space-min\">";
my $warnnumber = "";
my $warnbild ="";
if( ReadingsVal( $name, "WarnCount", 0 ) > ReadingsVal( $name, "lastWarnCount", 0 ) && ($event) > 0 ) {
my $wType = ReadingsVal( $name, "Warn_${wNb}_Type_Str", 0 );
my $wTextShort = ReadingsVal( $name, "Warn_${wNb}_ShortText", 0 );
my $wTextLong = ReadingsVal( $name, "Warn_${wNb}_LongText", 0 );
my $wEnd = ReadingsVal( $name, "Warn_${wNb}_End_Date", 0 )." um ".ReadingsVal( $name, "Warn_${wNb}_End_Time", 0 );
if( ReadingsVal( $name, "Warn_${wNb}_uwzLevel", 0 ) < 3) {
fhem "set pushmsg msg 'Vorwarnung für Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd' '' 0 ''";
} elsif( ReadingsVal( $name, "Warn_${wNb}_uwzLevel", 0 ) > 2) {
fhem "set pushmsg msg 'Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd' '' 1 ''";
}
}
readingsSingleUpdate ( $hash, "lastWarnCount", $wNb, 0 );
}
Ich hatte noch Code drin um für TabletUI ein Reading mit HTML Code zu füllen. Wenn da Interesse besteht kann ich das nach liefern.
set pushmsg msg
hier bitte pushmsg als Devicenamen für Pushover anpassen.
Und hier das entsprechende Notify
Unwetterzentrale:WarnCount:.[0-9] { uwzWarn($NAME,$EVTPART1); }
Name vom UWZ Device ist bei mir Unwetterzentrale. Bitte anpassen wenn nötig.
Grüße
Danke, ich warte dann mal auf die nächste Warnung um zu sehen, ob es funktioniert :)
Bei mir werden die Readings der UWZ jetzt mehrfach jede Sekunde aktualisiert....
Jedenfalls solange das notify aktiviert ist.
Noch mal auf DEF drücken und dann auf modify. Eventuell geht es dann
Du meinst doch damit das Dein UWZ alle paar Sekunden neue Werte ab holt, oder?
Ja genau. Die Werte werden jede Sekunde mehrfach abgeholt.
Dein Tipp (Def / modify) hilft nicht.
Erst wenn ich das notify deaktiviere, hört es auf.
SORRY!!!
Hatte im notify einen Fehler :-[
Ich denke, es läuft jetzt.
Nach mehreren Tagen gab es nun endlich mal wieder eine Unwetterwarnung ;D
Leider hab ich keine Nachricht bekommen und stelle den Code mal hier rein. Vielleicht kann ja
jemand nochmal helfen
meine 99_myUtils.pm:
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
# Enter you functions below _this_ line.
sub uwzWarn($$) {
my ($name,$event) = @_;
my $hash = $defs{$name};
my $countWarn = ReadingsVal($name,"WarnCount","");
my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
my $unwetterText = "<div class=\"top-space-min\">";
my $warnnumber = "";
my $warnbild ="";
if( ReadingsVal( $name, "WarnCount", 0 ) > ReadingsVal( $name, "lastWarnCount", 0 ) && ($event) > 0 ) {
my $wType = ReadingsVal( $name, "Warn_${wNb}_Type_Str", 0 );
my $wTextShort = ReadingsVal( $name, "Warn_${wNb}_ShortText", 0 );
my $wTextLong = ReadingsVal( $name, "Warn_${wNb}_LongText", 0 );
my $wEnd = ReadingsVal( $name, "Warn_${wNb}_End_Date", 0 )." um ".ReadingsVal( $name, "Warn_${wNb}_End_Time", 0 );
if( ReadingsVal( $name, "Warn_${wNb}_uwzLevel", 0 ) < 3) {
fhem "set pushmsg msg 'Vorwarnung für Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd' '' 0 ''";
} elsif( ReadingsVal( $name, "Warn_${wNb}_uwzLevel", 0 ) > 2) {
fhem "set Kitt msg 'Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd' '' 1 ''";
}
}
readingsSingleUpdate ( $hash, "lastWarnCount", $wNb, 0 );
}
1;
mein Notify:
CFGFN
DEF
Unwetterzentrale:WarnCount:.[0-9] { uwzWarn($NAME,$EVTPART1); }
NAME
Unwetter
NOTIFYDEV
Unwetterzentrale
NR
310
NTFY_ORDER
50-Unwetter
REGEXP
Unwetterzentrale:WarnCount:.[0-9]
STATE
active
TYPE
notify
Das Notify scheint nicht aus zu lösen
Hast du eine Idee, woran das liegen könnte?
Ich dachte, ich hätte es so gemacht wie du geschrieben hattest? :-\
Heißt Dein UWZ Device denn auch Unwetterzentrale.
Gib mal ein list vom UWZ Device
Internals:
CountryCode DE
DEF DE 66892 3600
INTERVAL 3600
INTERVALWARN 0
NAME Unwetterzentrale
NR 28
PLZ 66892
STATE Warnungen: 1
TYPE UWZ
URL http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=UWZDE66892
VERSION 1.6.0
READINGS:
2017-08-07 18:33:31 WarnCount 1
2017-08-07 18:33:31 WarnUWZLevel 2
2017-08-07 18:33:31 WarnUWZLevel_Color gelb
2017-08-07 18:33:31 Warn_0_AltitudeMax 9000
2017-08-07 18:33:31 Warn_0_AltitudeMin -10
2017-08-07 18:33:31 Warn_0_Creation 1502112060
2017-08-07 18:33:31 Warn_0_End 1502227800
2017-08-07 18:33:31 Warn_0_EventID 15021114555112.2
2017-08-07 18:33:31 Warn_0_Hail 1
2017-08-07 18:33:31 Warn_0_IconURL http://www.unwetterzentrale.de/images/icons/gewitter-gelb.gif
2017-08-07 18:33:31 Warn_0_LongText Ab Dienstagmittag sind örtlich Gewitter möglich. Dabei besteht vor allem die Gefahr von Starkregen mit um 10 l/qm Regen im einer Stunde. Auch kleiner Hagel mit einem Durchmesser um 0,5 cm und Sturmböen um 75 km/h sind nicht ausgeschlossen. Dienstagabend lassen die Gewitter nach.
2017-08-07 18:33:31 Warn_0_Severity 7
2017-08-07 18:33:31 Warn_0_ShortText Örtlich Gewitter mit Starkregen um 10 l/qm möglich
2017-08-07 18:33:31 Warn_0_Start 1502179200
2017-08-07 18:33:31 Warn_0_Type 7
2017-08-07 18:33:31 Warn_0_levelName alert_forewarn_orange
2017-08-07 18:33:31 Warn_0_uwzLevel 2
2017-08-07 18:33:30 currentIntervalMode normal
2017-08-07 18:33:31 durationFetchReadings 1.00
2017-08-07 18:33:31 lastConnection 18 values captured in 1.00 s
2017-08-07 18:33:31 lastWarnCount 0
2017-08-07 18:33:31 state Warnungen: 1
fhem:
LOCAL 0
helper:
Attributes:
room Draußen
Mach mal bitte genau so ei list noch mal vom notify.
Internals:
CFGFN
DEF Unwetterzentrale:WarnCount:.[0-9] { uwzWarn($NAME,$EVTPART1); }
NAME Unwetter
NOTIFYDEV Unwetterzentrale
NR 310
NTFY_ORDER 50-Unwetter
REGEXP Unwetterzentrale:WarnCount:.[0-9]
STATE 2017-08-07 20:33:31
TYPE notify
READINGS:
2017-08-07 19:31:27 state active
Attributes:
room Draußen
Also 20:33 ist das Notify das letzte mal angesprungen. Also eigentlich alles schick. Schau mal im log ob es Fehlermeldungen gibt.
Ok, dumme Frage (sorry): Wie mache ich das denn? :-[
FHEMWEB linke Seite ganz unten der Abschnitt steht Logfile. Da bitte rauf klicken
Ich schicke hier mal die letzten Logs:
2017.08.07 19:33:31 3: UWZ Unwetterzentrale: Run.1000 Done fetching data
2017.08.07 19:33:31 3: set pushmsg msg 'Vorwarnung für Unwetterwarnung vor 0' 'Ab Dienstagmittag sind örtlich Gewitter möglich. Dabei besteht vor allem die Gefahr von Starkregen mit um 10 l/qm Regen im einer Stunde. Auch kleiner Hagel mit einem Durchmesser um 0,5 cm und Sturmböen um 75 km/h sind nicht ausgeschlossen. Dienstagabend lassen die Gewitter nach. - Unwetterwarnung endet am 0 um 0' '' 0 '' : Please define pushmsg first
2017.08.07 19:33:31 3: Unwetter return value: lastWarnCount: 0
2017.08.07 19:36:44 3: GenShellSwitch command result: using pin 0
2017.08.07 19:36:44 3: GenShellSwitch command result: sending systemCode[11111] unitCode[1] command[1]
2017.08.07 19:36:44 2: GenShellSwitch set Schreibtischlampe on
2017.08.07 19:36:47 3: GenShellSwitch command result: using pin 0
2017.08.07 19:36:47 3: GenShellSwitch command result: sending systemCode[11111] unitCode[1] command[0]
2017.08.07 19:36:47 2: GenShellSwitch set Schreibtischlampe off
2017.08.07 19:36:50 3: GenShellSwitch command result: using pin 0
2017.08.07 19:36:50 3: GenShellSwitch command result: sending systemCode[11111] unitCode[2] command[1]
2017.08.07 19:36:50 2: GenShellSwitch set Lampe on
2017.08.07 19:36:52 3: GenShellSwitch command result: using pin 0
2017.08.07 19:36:52 3: GenShellSwitch command result: sending systemCode[11111] unitCode[2] command[0]
2017.08.07 19:36:52 2: GenShellSwitch set Lampe off
2017.08.07 20:00:53 3: ABFALL Abfall - CALENDAR:Abfallkalender triggered, updating ABFALL Abfall ...
2017.08.07 20:00:53 3: ABFALL_UPDATE
2017.08.07 20:33:31 3: UWZ Unwetterzentrale: Run.1000 Done fetching data
2017.08.07 20:33:31 3: set pushmsg msg 'Vorwarnung für Unwetterwarnung vor 0' 'Ab Dienstagmittag sind örtlich Gewitter möglich. Dabei besteht vor allem die Gefahr von Starkregen mit um 10 l/qm Regen im einer Stunde. Auch kleiner Hagel mit einem Durchmesser um 0,5 cm und Sturmböen um 75 km/h sind nicht ausgeschlossen. Dienstagabend lassen die Gewitter nach. - Unwetterwarnung endet am 0 um 0' '' 0 '' : Please define pushmsg first
2017.08.07 20:33:31 3: Unwetter return value: lastWarnCount: 0
2017.08.07 21:33:31 3: UWZ Unwetterzentrale: Run.1000 Done fetching data
2017.08.07 21:33:31 3: set pushmsg msg 'Vorwarnung für Unwetterwarnung vor 0' 'Ab Dienstagmittag sind örtlich Gewitter möglich. Dabei besteht vor allem die Gefahr von Starkregen mit um 10 l/qm Regen im einer Stunde. Auch kleiner Hagel mit einem Durchmesser um 0,5 cm und Sturmböen um 75 km/h sind nicht ausgeschlossen. Dienstagabend lassen die Gewitter nach. - Unwetterwarnung endet am 0 um 0' '' 0 '' : Please define pushmsg first
2017.08.07 21:33:31 3: Unwetter return value: lastWarnCount: 0
2017.08.07 22:33:31 3: UWZ Unwetterzentrale: Run.1000 Done fetching data
2017.08.07 22:33:31 3: set pushmsg msg 'Vorwarnung für Unwetterwarnung vor 0' 'Ab Dienstagmittag sind örtlich Gewitter möglich. Dabei besteht vor allem die Gefahr von Starkregen mit um 10 l/qm Regen im einer Stunde. Auch kleiner Hagel mit einem Durchmesser um 0,5 cm und Sturmböen um 75 km/h sind nicht ausgeschlossen. Dienstagabend lassen die Gewitter nach. - Unwetterwarnung endet am 0 um 0' '' 0 '' : Please define pushmsg first
2017.08.07 22:33:31 3: Unwetter return value: lastWarnCount: 0
2017.08.07 23:33:31 3: UWZ Unwetterzentrale: Run.1000 Done fetching data
2017.08.07 23:33:31 3: set pushmsg msg 'Vorwarnung für Unwetterwarnung vor 0' 'Ab Dienstagmittag sind örtlich Gewitter möglich. Dabei besteht vor allem die Gefahr von Starkregen mit um 10 l/qm Regen im einer Stunde. Auch kleiner Hagel mit einem Durchmesser um 0,5 cm und Sturmböen um 75 km/h sind nicht ausgeschlossen. Dienstagabend lassen die Gewitter nach. - Unwetterwarnung endet am 0 um 0' '' 0 '' : Please define pushmsg first
2017.08.07 23:33:31 3: Unwetter return value: lastWarnCount: 0
Hatte ich nicht gesagt du möchtest bitte darauf achten das Du Dein Pushover Devicenamen entsprechend an passt ;D
Lese Dir in der myUtils noch mal genau den set Befehl für Pushover durch.
Und in Zukunft Versuche bitte nicht einfach zu kopieren, sondern schaue Dir den Code an und Versuche zu verstehen was da passiert. Man muss nicht alles gleich auf Anhieb verstehen, aber es hilft für die Zukunft ;)
Grüße
Oh ja, du hast Recht.
Ich hatte den Namen einmal geändert und einmal übersehen...
Und jetzt gehst?
Jein...
Ich bekomme die Nachrichten jetzt auf Handy geschickt. Aber ich habe noch 2 Probleme damit.
Die Nachricht kommt jede Stunde, auch wenn sich der Unwetterstatus nicht ändert. Ich habe es jetzt mal mit
event-on-change-reading WarnCount
in der UWZ versucht, weiß aber nicht, ob das Sinn macht.
Dann sieht die Nachricht so aus:
'Vorwarnung für Unwetterwarnung vor 0' 'Ab Dienstagmittag sind örtlich Gewitter möglich. Dabei besteht vor allem die Gefahr von Starkregen mit um 10 l/qm Regen im einer Stunde. Auch kleiner Hagel mit einem Durchmesser um 0,5 cm und Sturmböen um 75 km/h sind nicht ausgeschlossen. Dienstagabend lassen die Gewitter nach. - Unwetterwarnung endet am 0 um 0' '' 0 ''
Irgendwas stimmt mit der Zeit-/Datumsausgabe nicht, oder?
Das event-on-change-reading ist gut. Setze noch Attribut human-readable
Daaaanke! Ich warte dann mal wieder auf eine Warnung und gebe dann Bescheid :D
Zitat von: Kitt am 09 August 2017, 14:34:15
Daaaanke! Ich warte dann mal wieder auf eine Warnung und gebe dann Bescheid :D
und funktioniert es jetzt richtig? Genau das suche ich nämlich auch
Hallo zusammen,
habe mir mal den Beitrag und die myUtils eingebunden... leider bekomme ich beim define immer eine FM das ein "right curly" fehlt !?
Was mache ich falsch... oder muß ich ne Brille haben ?
Sorry !!
define Push_UWZ notify Unwetterzentrale:WarnCount:.[0-9] { uwzWarn($NAME,$EVTPART1); }
Danke für die Hilfe....
Mach am besten erstmal nur ein leeres { }
Und dann gehst du auf modify und fügst den Rest in die Klammern.
Ich hab das Semicolon weg gelassen dann ging es... hinter her wieder im DEF eingefügt... Aber leider macht das Notify nichts... 3 Warnungen sind aktuell draussen aber es kommt per Push nichts...
Es triggern nur bei Änderung von WarnCount
Ich werde mal beobachten ! Vielen Dank erstmal !
Zitat von: CoolTux am 04 August 2017, 08:10:06
Hier mal eine etwas aktuellere Version
sub uwzWarn($$) {
my ($name,$event) = @_;
my $hash = $defs{$name};
my $countWarn = ReadingsVal($name,"WarnCount","");
my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
my $unwetterText = "<div class=\"top-space-min\">";
my $warnnumber = "";
my $warnbild ="";
if( ReadingsVal( $name, "WarnCount", 0 ) > ReadingsVal( $name, "lastWarnCount", 0 ) && ($event) > 0 ) {
my $wType = ReadingsVal( $name, "Warn_${wNb}_Type_Str", 0 );
my $wTextShort = ReadingsVal( $name, "Warn_${wNb}_ShortText", 0 );
my $wTextLong = ReadingsVal( $name, "Warn_${wNb}_LongText", 0 );
my $wEnd = ReadingsVal( $name, "Warn_${wNb}_End_Date", 0 )." um ".ReadingsVal( $name, "Warn_${wNb}_End_Time", 0 );
if( ReadingsVal( $name, "Warn_${wNb}_uwzLevel", 0 ) < 3) {
fhem "set pushmsg msg 'Vorwarnung für Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd' '' 0 ''";
} elsif( ReadingsVal( $name, "Warn_${wNb}_uwzLevel", 0 ) > 2) {
fhem "set pushmsg msg 'Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd' '' 1 ''";
}
}
readingsSingleUpdate ( $hash, "lastWarnCount", $wNb, 0 );
}
Ich hatte noch Code drin um für TabletUI ein Reading mit HTML Code zu füllen. Wenn da Interesse besteht kann ich das nach liefern.
set pushmsg msg
hier bitte pushmsg als Devicenamen für Pushover anpassen.
Und hier das entsprechende Notify
Unwetterzentrale:WarnCount:.[0-9] { uwzWarn($NAME,$EVTPART1); }
Name vom UWZ Device ist bei mir Unwetterzentrale. Bitte anpassen wenn nötig.
Grüße
Hi Ist das noch so einigermaßen Gültig? :-)
Muss ich am UWZ Device noch event-on-change-reading eintragen?
Kann ich das so machen wenn ich mir das gleichzeitig noch Vorlesen lassen möchte?
Ziel ist das ich eine Pushnachricht bekomme und ein oder zwei Echos mir den Text Vorlesen...
sub uwzWarn($$) {
my ($name,$event) = @_;
my $hash = $defs{$name};
my $countWarn = ReadingsVal($name,"WarnCount","");
my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
my $unwetterText = "<div class=\"top-space-min\">";
my $warnnumber = "";
my $warnbild ="";
if( ReadingsVal( $name, "WarnCount", 0 ) > ReadingsVal( $name, "lastWarnCount", 0 ) && ($event) > 0 ) {
my $wType = ReadingsVal( $name, "Warn_${wNb}_Type_Str", 0 );
my $wTextShort = ReadingsVal( $name, "Warn_${wNb}_ShortText", 0 );
my $wTextLong = ReadingsVal( $name, "Warn_${wNb}_LongText", 0 );
my $wEnd = ReadingsVal( $name, "Warn_${wNb}_End_Date", 0 )." um ".ReadingsVal( $name, "Warn_${wNb}_End_Time", 0 );
if( ReadingsVal( $name, "Warn_${wNb}_uwzLevel", 0 ) < 3) {
fhem "set pushmsg msg 'Vorwarnung für Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd' '' 0 ''";
fhem "set ECHO_G000MW0773560CLX speak 'Vorwarnung für Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd'";
} elsif( ReadingsVal( $name, "Warn_${wNb}_uwzLevel", 0 ) > 2) {
fhem "set pushmsg msg 'Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd' '' 1 ''";
fhem "set ECHO_G000MW0773560CLX speak 'Unwetterwarnung vor $wType' '$wTextLong - Unwetterwarnung endet am $wEnd'";
}
}
readingsSingleUpdate ( $hash, "lastWarnCount", $wNb, 0 );
}
Noty
defmod UWZPushover_Test notify Unwetterzentrale:WarnCount:.[0-9] { uwzWarn($NAME,$EVTPART1);; }
Sorry für die Doofe Frage aber so gut im Coden bin ich nicht...
Mein Notify funktioniert NicoH da fehlt hinten noch ein ; ansonsten ist meines gleich...
Grüßle
Pascal
event-on-change-reading WarnCount,state
Sollte ausreichend sein.
Der Rest passt soweit denke ich.
Danke hab alles so abgeändert... man schauen... Hoffe das die Warnung sich noch mal ändert ;)
So heute Nacht kam dann endlich mal eine Nachricht per Telegram:
'Unwetterwarnung vor 0' 'Am Sonntag frischt der Wind im Bereich von Tief IGOR wieder auf. Dabei treten einzelne Sturmböen aus Südwest zwischen 75 und 80 km/h, örtlich auch mehr, auf. In Zusammenhang mit teils kräftigen Schauern können auch noch etwas stärkere Böen um 90 km/h möglich sein. Am Montag dreht der Wind dann auf Nordwest und lässt am Montagabend nach. - Unwetterwarnung endet am 0 um 0' '' 1 ''
Da stimmt was mit den Variablen anscheinent nicht mehr...
Kann ich das notify irgendwie manuell triggern damit ich die Änderungen testen kann ?
Danke !
Möglich das da was nicht stimmt.
Dazu müsste ich aber wissen was Du genau in myUtils zu stehen hast.
Ich habe Deine Utils komplett übernommen und nur den Namen des Push-Service geändert von kitt in PushN ;)
Dann hast Du vergessen den Namen des UWZ Devices für die ReadingVal Funktionen an zu passen.
Hab das hier erstmal gecancelt... ich habe das humanreadable nicht gesetzt. Teste erst noch einmal !
Gibt es denn eine Möglichkeit das Notify manuell aus zu führen ? Triggern geht irgendwie nicht...
Setze den Code bitte einmal in Codetags. Das ist die Route bei den Symbolen vom Editor hier.
Ich schaue heute Abend einmal in Ruhe.
Hallo,
hab den Code auch gerade versucht mit dem selben Ergebnis.
So wie es aussieht haben sich die Readings geändert.
Die sehen jetzt so aus:WarnCount
1
2019-06-10 09:27:37
WarnUWZLevel
1
2019-06-10 09:27:37
WarnUWZLevel_Color
orange
2019-06-10 09:27:37
Warn_0_AltitudeMax
9000
2019-06-10 09:27:37
Warn_0_AltitudeMin
-10
2019-06-10 09:27:37
Warn_0_Creation
1560124819
2019-06-10 09:27:37
Warn_0_End
1560254400
2019-06-10 09:27:37
Warn_0_EventID
15601177801857
2019-06-10 09:27:37
Warn_0_Hail
0
2019-06-10 09:27:37
Warn_0_IconURL
http://www.unwetterzentrale.de/images/icons/temperatur-orange.gif
2019-06-10 09:27:37
Warn_0_LongText
Wetterhinweis wegen Hitze, gültig von Montag, 10.06. 14:00 Uhr bis Dienstag, 11.06. 14:00 Uhr.
2019-06-10 09:27:37
Warn_0_Severity
4
2019-06-10 09:27:37
Warn_0_ShortText
Wetterhinweis wegen Hitze, gültig von Montag, 10.06. 14:00 Uhr bis Dienstag, 11.06. 14:00 Uhr.
2019-06-10 09:27:37
Warn_0_Start
1560168000
2019-06-10 09:27:37
Warn_0_Type
9
2019-06-10 09:27:37
Warn_0_levelName
notice_warn_orange
2019-06-10 09:27:37
Warn_0_uwzLevel
1
2019-06-10 09:27:37
currentIntervalMode
normal
2019-06-10 09:27:36
durationFetchReadings
1.00
2019-06-10 09:27:37
lastConnection
18 values captured in 1.00 s
2019-06-10 09:27:37
lastWarnCount
0
2019-06-10 09:27:35
state
Warnungen: 1
2019-06-10 09:27:37
Also die Warn_0_Type_Str, Warn_0_End_Date und Warn_0_End_Time gibt es nicht mehr, darum kommt hier 0 im Telegram an.
Da das Datum und die Zeit jetzt als Timestamp übergeben wird muss man die jetzt umwandeln.
War der Type_Str früher auch anders, oder was sagt der Wert Type jetzt in meinem Beispiel mit 9 aus?
Du wirst wohl eher vergessen haben das Attribut humanreadable zu setzen.
Danke, hab ich übersehen!
Hallo.
Ich habe gerade versucht mir das nachzubauen.
Name in der Sub angepasst
Devicename im notify angepasst
Aber ich kann kein event-on-change-reading und humanreadable setzen. Versteh nur nicht warum und deswegen möchte ich hier um Hilfe bitten.
Mein NOTIFY:
defmod uwzWarnmeldungen notify UWZ:.*|UWZ:WarnCount:.[0-9] set UWZ update
list NOTIFY:
Internals:
DEF UWZ:.*|UWZ:WarnCount:.[0-9] set UWZ update
FUUID 604a3d78-f33f-18e0-f202-bf51f7197c0f67a4
NAME uwzWarnmeldungen
NOTIFYDEV UWZ
NR 211
NTFY_ORDER 50-uwzWarnmeldungen
REGEXP UWZ:.*|UWZ:WarnCount:.[0-9]
STATE active
TRIGGERTIME 1615479076.67978
TYPE notify
READINGS:
2021-03-11 17:13:26 state active
Attributes:
room Telegram
Mein UWZ Device:
defmod UWZ UWZ DE XXXXX 3600
attr UWZ download 1
attr UWZ humanreadable 1
attr UWZ lang de
attr UWZ maps deutschland nrw
attr UWZ room Wetter
attr UWZ savepath /opt/fhem/www/images/wetter/
attr UWZ webCmd update
list UWZ Device:
Internals:
CountryCode DE
DEF DE XXXXX 3600
FUUID 60170b82-f33f-18e0-5fe5-d5c48a62ea5a7a7b
FVERSION 77_UWZ.pm:v3.0.1-s21828/2020-05-01
INTERVAL 3600
INTERVALWARN 0
NAME UWZ
NOTIFYDEV global,UWZ
NR 68
NTFY_ORDER 50-UWZ
PLZ 45475
STATE Warnungen: 4
TYPE UWZ
URL http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=UWZDEXXXXX
VERSION v3.0.1
READINGS:
2021-03-11 17:11:16 WarnCount 4
2021-03-11 17:11:16 WarnUWZLevel 4
2021-03-11 17:11:16 WarnUWZLevel_Color rot
2021-03-11 17:11:16 WarnUWZLevel_Str Warnstufe Rot (Unwetterwarnung)
2021-03-11 17:11:16 Warn_0_AltitudeMax 9000
2021-03-11 17:11:16 Warn_0_AltitudeMin -10
2021-03-11 17:11:16 Warn_0_Creation 1615371240
2021-03-11 17:11:16 Warn_0_Creation_Date 10.03.2021
2021-03-11 17:11:16 Warn_0_Creation_Time 11:14
2021-03-11 17:11:16 Warn_0_End 1615586400
2021-03-11 17:11:16 Warn_0_End_Date 12.03.2021
2021-03-11 17:11:16 Warn_0_End_Time 23:00
2021-03-11 17:11:16 Warn_0_EventID 16153704263553
2021-03-11 17:11:16 Warn_0_Hail 0
2021-03-11 17:11:16 Warn_0_IconURL http://www.unwetterzentrale.de/images/icons/sturm-gelb.gif
2021-03-11 17:11:16 Warn_0_LongText Mit Annäherung des nordatlantischer Tiefs lebt der Südwind heute Abend spürbar auf. So sind ab der Nacht Sturmböen möglich. Dabei kann es zu Windspitzen zwischen 65 und 75 km/h, örtlich auch mehr, kommen. Am Donnerstag bleibt es windig, der Wind dreht am Mittag/Nachmittag auf Südwest und legt sogar noch etwas zu und kann insbesondere in der Nähe von Schauern oder einzelnen Gewittern auch um 80 km/h erreichen. Bitte auf Updates der Warnung achten. Freitagabend und -nacht lässt der Wind dann soweit nach, dass voraussichtlich keine Warnkriterien mehr erreicht werden.
2021-03-11 17:11:16 Warn_0_Severity 7
2021-03-11 17:11:16 Warn_0_ShortText Sturmböen aus S/SW 65-75 km/h, am Donnerstag auch um 80 km/h möglich.
2021-03-11 17:11:16 Warn_0_Start 1615417200
2021-03-11 17:11:16 Warn_0_Start_Date 11.03.2021
2021-03-11 17:11:16 Warn_0_Start_Time 00:00
2021-03-11 17:11:16 Warn_0_Type 2
2021-03-11 17:11:16 Warn_0_Type_Str Sturm
2021-03-11 17:11:16 Warn_0_levelName alert_forewarn_orange
2021-03-11 17:11:16 Warn_0_uwzLevel 2
2021-03-11 17:11:16 Warn_0_uwzLevel_Str Stufe Gelb (Vorwarnung für Unwetterwarnung)
2021-03-11 17:11:16 Warn_1_AltitudeMax 9000
2021-03-11 17:11:16 Warn_1_AltitudeMin -10
2021-03-11 17:11:16 Warn_1_Creation 1615461444
2021-03-11 17:11:16 Warn_1_Creation_Date 11.03.2021
2021-03-11 17:11:16 Warn_1_Creation_Time 12:17
2021-03-11 17:11:16 Warn_1_End 1615586400
2021-03-11 17:11:16 Warn_1_End_Date 12.03.2021
2021-03-11 17:11:16 Warn_1_End_Time 23:00
2021-03-11 17:11:16 Warn_1_EventID 16153772364671
2021-03-11 17:11:16 Warn_1_Hail 0
2021-03-11 17:11:16 Warn_1_IconURL http://www.unwetterzentrale.de/images/icons/sturm-rot.gif
2021-03-11 17:11:16 Warn_1_LongText Mit Annäherung des nordatlantischer Tiefs lebt der Südwind heute Abend spürbar auf. So sind ab der Nacht Sturmböen möglich. Dabei kann es zu Windspitzen zwischen 75 und 90 km/h, örtlich auch mehr, kommen. Am Donnerstag bleibt es windig, der Wind dreht am Mittag/Nachmittag mit dem Kaltfrontdurchgang auf Südwest und legt sogar noch etwas zu und kann insbesondere in der Nähe von Schauern oder einzelnen Gewittern auch um 100 km/h erreichen. Bitte auf Updates der Warnung achten. Freitagabend und -nacht lässt der Wind dann soweit nach, dass voraussichtlich keine Warnkriterien mehr erreicht werden.
2021-03-11 17:11:16 Warn_1_Severity 11
2021-03-11 17:11:16 Warn_1_ShortText Sturmböen aus S/SW 75-90 km/h, am Donnerstag um 100 km/h möglich.
2021-03-11 17:11:16 Warn_1_Start 1615417200
2021-03-11 17:11:16 Warn_1_Start_Date 11.03.2021
2021-03-11 17:11:16 Warn_1_Start_Time 00:00
2021-03-11 17:11:16 Warn_1_Type 2
2021-03-11 17:11:16 Warn_1_Type_Str Sturm
2021-03-11 17:11:16 Warn_1_levelName alert_warn_red
2021-03-11 17:11:16 Warn_1_uwzLevel 4
2021-03-11 17:11:16 Warn_1_uwzLevel_Str Warnstufe Rot (Unwetterwarnung)
2021-03-11 17:11:16 Warn_2_AltitudeMax 9000
2021-03-11 17:11:16 Warn_2_AltitudeMin -10
2021-03-11 17:11:16 Warn_2_Creation 1615396454
2021-03-11 17:11:16 Warn_2_Creation_Date 10.03.2021
2021-03-11 17:11:16 Warn_2_Creation_Time 18:14
2021-03-11 17:11:16 Warn_2_End 1615586400
2021-03-11 17:11:16 Warn_2_End_Date 12.03.2021
2021-03-11 17:11:16 Warn_2_End_Time 23:00
2021-03-11 17:11:16 Warn_2_EventID 16153704263553.2
2021-03-11 17:11:16 Warn_2_Hail 0
2021-03-11 17:11:16 Warn_2_IconURL http://www.unwetterzentrale.de/images/icons/sturm-orange.gif
2021-03-11 17:11:16 Warn_2_LongText Mit Annäherung des nordatlantischer Tiefs lebt der Südwind heute Abend spürbar auf. So sind ab der Nacht Sturmböen möglich. Dabei kann es zu Windspitzen zwischen 65 und 75 km/h, örtlich auch mehr, kommen. Am Donnerstag bleibt es windig, der Wind dreht am Mittag/Nachmittag auf Südwest und legt sogar noch etwas zu und kann insbesondere in der Nähe von Schauern oder einzelnen Gewittern auch um 80 km/h erreichen. Bitte auf Updates der Warnung achten. Freitagabend und -nacht lässt der Wind dann soweit nach, dass voraussichtlich keine Warnkriterien mehr erreicht werden.
2021-03-11 17:11:16 Warn_2_Severity 10
2021-03-11 17:11:16 Warn_2_ShortText Sturmböen aus S/SW 65-75 km/h, am Donnerstag auch um 80 km/h möglich.
2021-03-11 17:11:16 Warn_2_Start 1615417200
2021-03-11 17:11:16 Warn_2_Start_Date 11.03.2021
2021-03-11 17:11:16 Warn_2_Start_Time 00:00
2021-03-11 17:11:16 Warn_2_Type 2
2021-03-11 17:11:16 Warn_2_Type_Str Sturm
2021-03-11 17:11:16 Warn_2_levelName alert_warn_orange
2021-03-11 17:11:16 Warn_2_uwzLevel 3
2021-03-11 17:11:16 Warn_2_uwzLevel_Str Warnstufe Orange (Unwetterwarnung)
2021-03-11 17:11:16 Warn_3_AltitudeMax 9000
2021-03-11 17:11:16 Warn_3_AltitudeMin -10
2021-03-11 17:11:16 Warn_3_Creation 1615436460
2021-03-11 17:11:16 Warn_3_Creation_Date 11.03.2021
2021-03-11 17:11:16 Warn_3_Creation_Time 05:21
2021-03-11 17:11:16 Warn_3_End 1615492800
2021-03-11 17:11:16 Warn_3_End_Date 11.03.2021
2021-03-11 17:11:16 Warn_3_End_Time 21:00
2021-03-11 17:11:16 Warn_3_EventID 16153704263553.5
2021-03-11 17:11:16 Warn_3_Hail 0
2021-03-11 17:11:16 Warn_3_IconURL http://www.unwetterzentrale.de/images/icons/sturm-orange.gif
2021-03-11 17:11:16 Warn_3_LongText Mit Annäherung der nordatlantischen Tiefs KLAUS und JOSEF lebt der Südwind spürbar auf. So sind Sturmböen um 75 km/h zu erwarten. Am Mittag und Nachmittag legt der auf Südwest drehende Wind sogar noch etwas zu und kann insbesondere in der Nähe von Schauern oder einzelnen Gewittern auch um 85 km/h erreichen, örtlich noch etwas mehr. Zum Abend hin lässt der Wind leicht, aber immerhin soweit nach, dass voraussichtlich keine Warnkriterien mehr erreicht werden. Am Freitag wird es aber wieder windiger, so dass neuerliche Warnungen möglich sind.
2021-03-11 17:11:16 Warn_3_Severity 10
2021-03-11 17:11:16 Warn_3_ShortText Sturmböen aus S/SW 75-85 km/h, in Schauer- oder Gewitter nähe örtlich etwas mehr
2021-03-11 17:11:16 Warn_3_Start 1615435200
2021-03-11 17:11:16 Warn_3_Start_Date 11.03.2021
2021-03-11 17:11:16 Warn_3_Start_Time 05:00
2021-03-11 17:11:16 Warn_3_Type 2
2021-03-11 17:11:16 Warn_3_Type_Str Sturm
2021-03-11 17:11:16 Warn_3_levelName alert_warn_orange
2021-03-11 17:11:16 Warn_3_uwzLevel 3
2021-03-11 17:11:16 Warn_3_uwzLevel_Str Warnstufe Orange (Unwetterwarnung)
2021-03-11 17:11:06 currentIntervalMode normal
2021-03-11 17:11:16 durationFetchReadings 0.00
2021-03-11 17:11:16 lastConnection 93 values captured in 0.00 s
2021-03-11 17:11:16 lastWarnCount 3
2021-03-11 17:11:16 state Warnungen: 4
fhem:
LOCAL 0
helper:
Attributes:
download 1
humanreadable 1
lang de
maps deutschland nrw
room Wetter
savepath /opt/fhem/www/images/wetter/
webCmd update
Postleitzahl ist hier durch XXXXX ersetzt.
Danke für Eure Hilfe