Meldungen der Unwetterzentrale per Telegram auf Handy senden

Begonnen von Tutti_Bomovski, 21 Januar 2016, 08:31:33

Vorheriges Thema - Nächstes Thema

Tutti_Bomovski

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

Markus

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
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Tutti_Bomovski

danke dir für die Infos...
Statt Whatsapp würde ich aber lieber Telegram einsetzen...
:-)

Mal weiter auf der Suche....

Hollo

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 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.  :)
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Muschelpuster

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
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Tutti_Bomovski

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

Kitt

Da ich das Thema sehr spannend finde, wollte ich fragen, obs dazu inzwischen eine Lösung gibt  :)

Viele Grüße

rabehd

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)
Auch funktionierende Lösungen kann man hinterfragen.

Brice

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

FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

CoolTux

Es gibt eine wunderbare myUtils Funktion für UWZ im Forum.
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

Kitt

@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?

CoolTux


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

Kitt


CoolTux

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

Kitt

Danke, ich warte dann mal auf die nächste Warnung um zu sehen, ob es funktioniert  :)