NEWS
DWD Warnung als Telegramm
-
Ich will mir, wenn es eine Wetterwarnung gibt ein Telegramm zusenden lassen.
Ebenso wenn die Warnung aufgehoben wurde.
Das funktioniert auch, allerdings nur bedingt.
Ich bekomme ein Telegramm in dem der erste Teil mit Beginn und Ende enthalten ist.
Der Teil in dem text, Headline und Description stehen sollte fehlt. (wobei unter Objekten in diesen etwas drinnen steht)
Telegramm sieht so aus:
"Achtung Wetterwarnungen g
ü
ltig vom 13.12.2016 05:22 bis 13.12.2016 10:00 : "Kann sich das mal jemand ansehen und evtl. korrigieren ?
var Severity = "dwd.0.warning.severity"/*Warning severity*/; on(Severity, function (obj){ if (obj.newState.val !==0) { var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val; var End = getState("dwd.0.warning.end"/*Warning end*/).val; var text = getState("dwd.0.warning.text"/*Warning text*/).val; var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val; var Description = getState("dwd.0.warning.description"/*Warning description*/).val; var DWD_telegramm = "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ": " + Description ; sendTo ("telegram.0", DWD_telegramm); //sendTo('telegram.0', "Wetterwarnungen " + ': ' + text + " gültig vom " + Begin + " bis " + End + ': ' + Description); //setState (idSayIt2, "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description); } if (obj.newState.val === 0) { sendTo ("telegram.0", "Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben") ; //sendTo('telegram.0', "de;80;Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben") ; } //log ("Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description); log ( "Wetterwarnungen " + text + " gültig vom " + Begin + " bis " + End + ': ' + Description); }); -
Funktioniert bei mir einwandfrei.
Folgendes ist mir aufgefallen:
1.) Der Text per Telegram und der Logtext sind unterschiedlich, da Du einmal "Description" und einmal "Text" verwendest.
2.) Die Description ist aber genau das, was man eigentlich will, die Meldung im Telegram ist perfekt.
3.) Der Logtext wird in der normalen Anzeige abgeschnitten, was mich selber wundert. Geht man mit der Maus ohne klicken rauf, zeigt die Hoverfunktion aber den gesamten text.
<u>Meine Ausgabe sieht so aus:</u> ````
Achtung Wetterwarnungen
Amtliche WARNUNG vor FROST g
ü
ltig vom 14.12.2016 18:00 bis 15.12.2016 11:00: Es tritt leichter Frost zwischen 0
°
C und -3
°
C auf.Man kann schön testen, indem man bei den Objecten die Severity verändert. So muss man nicht auf echte Änderungen warten. Schaue es Dir also nochmal an. Das Skript ist in Ordnung. So long, Fitti -
Falls es doch nicht klappt
…
Nur eine Vermutung...
kann es vielleicht an der asyncronen Abarbeitung liegen?
Das telegram wird geschickt, aber die Werte sind noch nicht gef
ü
llt? -
Falls es doch nicht klappt
…
Nur eine Vermutung...
kann es vielleicht an der asyncronen Abarbeitung liegen?
Das telegram wird geschickt, aber die Werte sind noch nicht gef
ü
llt? `Genau das ist es wohl.
Habe die Bedingung zum Ausl
ö
sen h
ä
ndisch ge
ä
ndert.Die Variablen sind durch eine momentan anstehende Warnung bereits gef
ü
llt.Dann kommt auch der ganze Text per Telegramm an.
Also m
ü
sste wohl eine Verz
ö
gerung in das Script ?Kann mir (als Vollnoob) jemand zeigen an welcher Stelle diese am besten rein sollte und wie diese auszusehen hat ?
-
Falls es doch nicht klappt
…
Nur eine Vermutung...
kann es vielleicht an der asyncronen Abarbeitung liegen?
Das telegram wird geschickt, aber die Werte sind noch nicht gef
ü
llt? `Genau das ist es wohl.
Habe die Bedingung zum Ausl
ö
sen h
ä
ndisch ge
ä
ndert.Die Variablen sind durch eine momentan anstehende Warnung bereits gef
ü
llt.Dann kommt auch der ganze Text per Telegramm an.
Also m
ü
sste wohl eine Verz
ö
gerung in das Script ?Kann mir (als Vollnoob) jemand zeigen an welcher Stelle diese am besten rein sollte und wie diese auszusehen hat ? `
Hast du die Verz
ö
gerung inzwischen eingebaut? Habe dein oberes Script auch seit paar Wochen im Einsatz. -
Falls es doch nicht klappt
…
Nur eine Vermutung...
kann es vielleicht an der asyncronen Abarbeitung liegen?
Das telegram wird geschickt, aber die Werte sind noch nicht gef
ü
llt? `Genau das ist es wohl.
Habe die Bedingung zum Ausl
ö
sen h
ä
ndisch ge
ä
ndert.Die Variablen sind durch eine momentan anstehende Warnung bereits gef
ü
llt.Dann kommt auch der ganze Text per Telegramm an.
Also m
ü
sste wohl eine Verz
ö
gerung in das Script ?Kann mir (als Vollnoob) jemand zeigen an welcher Stelle diese am besten rein sollte und wie diese auszusehen hat ?
Hast du die Verzögerung inzwischen eingebaut? Habe dein oberes Script auch seit paar Wochen im Einsatz.
Angeregt durch den thread http://forum.iobroker.net/viewtopic.php?f=21&t=4622 habe ich etwas rumprobiert, aber ohne Erfolg.Habe dann versucht mit Blockly.

F
ü
r den Bereich "1. mache" hinter dem "timeout" von 10s muss noch was rein.Und zwar soll an telegram geschickt werden die Daten vom DWD-Adapter:
dwd.0.warning.begin
dwd.0.warning.end
dwd.0.warning.text
dwd.0.warning.headline
dwd.0.warning.description
Wie
ü
bergebe ich diese Werte
ü
ber Blockly an telegram?Hier mein bisheriger Block zum Importieren:
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="Za9:z_OdHrl8gT]^gQ[c" x="-562" y="-237"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="{YQ%X[0%aZ?wT=y5x(E-"><field name="oid">dwd.0.warning.severity</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="plycChL,3pMlxYR65=0r"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="S+LPUIh7VMv@[]rVKTyz"><field name="OP">NEQ</field> <value name="A"><block type="get_value" id="_4aPvN2IM%4J:.YTPNEt"><field name="ATTR">val</field> <field name="OID">dwd.0.warning.severity</field></block></value> <value name="B"><block type="math_number" id="cI~Jnwi%eY+-81OZ81c2"><field name="NUM">0</field></block></value></block></value> <statement name="DO0"><block type="timeouts_settimeout" id="A?rWXoM=A?4m6iP3sK8V"><field name="NAME">timeout</field> <field name="DELAY">10000</field></block></statement> <value name="IF1"><block type="logic_compare" id="[qlBv{(7-QMPq`|?^vuz"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="{{iqDnb:d^{~VF1f}K!A"><field name="ATTR">val</field> <field name="OID">dwd.0.warning.severity</field></block></value> <value name="B"><block type="math_number" id="F,+_tEi%aV/0!K)czU8n"><field name="NUM">0</field></block></value></block></value> <statement name="DO1"><block type="telegram" id="bj;-+)BQ+pYRIL#wkOj?"><field name="INSTANCE">.1</field> <value name="MESSAGE"><shadow type="text" id="rfJDep:!7yaK~PbK.h%B"><field name="TEXT">Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben</field></shadow></value></block></statement></block></statement></block></xml>EDIT: der Trigger muss auf "aktualisiert" anstatt "geändert" eingestellt sein! -
Falls es doch nicht klappt
…
Nur eine Vermutung...
kann es vielleicht an der asyncronen Abarbeitung liegen?
Das telegram wird geschickt, aber die Werte sind noch nicht gef
ü
llt? `Genau das ist es wohl.
Habe die Bedingung zum Ausl
ö
sen h
ä
ndisch ge
ä
ndert.Die Variablen sind durch eine momentan anstehende Warnung bereits gef
ü
llt.Dann kommt auch der ganze Text per Telegramm an.
Also m
ü
sste wohl eine Verz
ö
gerung in das Script ?Kann mir (als Vollnoob) jemand zeigen an welcher Stelle diese am besten rein sollte und wie diese auszusehen hat ? `
Vielleicht so:var Severity = "dwd.0.warning.severity"/*Warning severity*/; on(Severity, function (obj){ if (obj.newState.val !==0) { var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val; var End = getState("dwd.0.warning.end"/*Warning end*/).val; var text = getState("dwd.0.warning.text"/*Warning text*/).val; var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val; var Description = getState("dwd.0.warning.description"/*Warning description*/).val; var DWD_telegramm = "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ": " + Description ; setTimeout(function() { sendTo ("telegram.0", DWD_telegramm); //sendTo('telegram.0', "Wetterwarnungen " + ': ' + text + " gültig vom " + Begin + " bis " + End + ': ' + Description); //setState (idSayIt2, "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description); }, 1000); } if (obj.newState.val === 0) { sendTo ("telegram.0", "Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben") ; //sendTo('telegram.0', "de;80;Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben") ; } //log ("Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description); log ( "Wetterwarnungen " + text + " gültig vom " + Begin + " bis " + End + ': ' + Description); }); -
Also ich habe mittlerweile ne L
ö
sung f
ü
r das Problem! Ich stelle sp
ä
ter mal das Script hier rein wenn es gew
ü
nscht ist!Gru
ß
Johnny -
Hallo,
hier eine m
ö
gliche L
ö
sung
~~<link_text text="http://uploads.tapatalk-cdn.com/2017010 ... 482b62.jpg">http://uploads.tapatalk-cdn.com/20170107/ee6a0a17c5f0b3e1500b4ce092482b62.jpg</link_text>" />Gru
ß
SvenGesendet von iPhone mit Tapatalk~~
-
Also ich habe mittlerweile ne L
ö
sung f
ü
r das Problem! Ich stelle sp
ä
ter mal das Script hier rein wenn es gew
ü
nscht ist!Gru
ß
Johnny `
Nat
ü
rlich. Immer her damit! 
-
Hallo,
hier eine m
ö
gliche L
ö
sung
~~<link_text text="http://uploads.tapatalk-cdn.com/2017010 ... 482b62.jpg">http://uploads.tapatalk-cdn.com/20170107/ee6a0a17c5f0b3e1500b4ce092482b62.jpg</link_text>" />Gru
ß
SvenGesendet von iPhone mit Tapatalk~~ `
Danke. Wieder was f
ü
r Blockly gelernt. -
So, hier mein L
ö
sungsansatz.!
/* Script zum Übertragen der DWD-Wetterwarnungen an Telegram */ ! var idWarnung = "dwd.0.warning.description"; var idWarnung1 = "dwd.0.warning1.description"; var idWarnung2 = "dwd.0.warning2.description"; ! function check(){ var Warnung = getState(idWarnung).val; if (Warnung !== "") { var Begin = getState("dwd.0.warning.begin").val; var End = getState("dwd.0.warning.end").val; var text = getState("dwd.0.warning.text").val; var Headline = getState("dwd.0.warning.headline").val; var Description = getState("dwd.0.warning.description").val; var DWD_telegramm = Headline + "\ngültig vom " + Begin + " bis " + End + "\n" + Description ; setTimeout(function() { sendTo ("telegram.0", DWD_telegramm); }, 1 * 1000); } else { sendTo ("telegram.0", "Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben") ; } } ! function check1(){ var Warnung1 = getState(idWarnung1).val; if (Warnung1 !== "") { var Begin = getState("dwd.0.warning1.begin").val; var End = getState("dwd.0.warning1.end").val; var text = getState("dwd.0.warning1.text").val; var Headline = getState("dwd.0.warning1.headline").val; var Description = getState("dwd.0.warning1.description").val; var DWD_telegramm = Headline + "\ngültig vom " + Begin + " bis " + End + "\n" + Description ; setTimeout(function() { sendTo ("telegram.0", DWD_telegramm); }, 1 * 1000); } else { sendTo ("telegram.0", "Wetterwarnung No.2 des Deutschen Wetterdienstes wurden aufgehoben") ; } } ! function check2(){ var Warnung2 = getState(idWarnung2).val; if (Warnung2 !== "") { var Begin = getState("dwd.0.warning2.begin").val; var End = getState("dwd.0.warning2.end").val; var text = getState("dwd.0.warning2.text").val; var Headline = getState("dwd.0.warning2.headline").val; var Description = getState("dwd.0.warning2.description").val; var DWD_telegramm = Headline + "\ngültig vom " + Begin + " bis " + End + "\n" + Description ; setTimeout(function() { sendTo ("telegram.0", DWD_telegramm); }, 1 * 1000); } else { sendTo ("telegram.0", "Wetterwarnung No.3 des Deutschen Wetterdienstes wurden aufgehoben") ; } } ! on(idWarnung, function (obj){ if (obj.newState.val !== obj.oldState.val) { check(); } }); ! on(idWarnung1, function (obj){ if (obj.newState.val !== obj.oldState.val) { check1(); } }); ! on(idWarnung2, function (obj){ if (obj.newState.val !== obj.oldState.val) { check2(); } }); !Bei mir klappt es einwandfrei.
Bis jetzt fg
Gru
ß
Johnny
-
So, hier mein L
ö
sungsansatz.!
/* Script zum Übertragen der DWD-Wetterwarnungen an Telegram */ ! var idWarnung = "dwd.0.warning.description"; var idWarnung1 = "dwd.0.warning1.description"; var idWarnung2 = "dwd.0.warning2.description"; ! function check(){ var Warnung = getState(idWarnung).val; if (Warnung !== "") { var Begin = getState("dwd.0.warning.begin").val; var End = getState("dwd.0.warning.end").val; var text = getState("dwd.0.warning.text").val; var Headline = getState("dwd.0.warning.headline").val; var Description = getState("dwd.0.warning.description").val; var DWD_telegramm = Headline + "\ngültig vom " + Begin + " bis " + End + "\n" + Description ; setTimeout(function() { sendTo ("telegram.0", DWD_telegramm); }, 1 * 1000); } else { sendTo ("telegram.0", "Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben") ; } } ! function check1(){ var Warnung1 = getState(idWarnung1).val; if (Warnung1 !== "") { var Begin = getState("dwd.0.warning1.begin").val; var End = getState("dwd.0.warning1.end").val; var text = getState("dwd.0.warning1.text").val; var Headline = getState("dwd.0.warning1.headline").val; var Description = getState("dwd.0.warning1.description").val; var DWD_telegramm = Headline + "\ngültig vom " + Begin + " bis " + End + "\n" + Description ; setTimeout(function() { sendTo ("telegram.0", DWD_telegramm); }, 1 * 1000); } else { sendTo ("telegram.0", "Wetterwarnung No.2 des Deutschen Wetterdienstes wurden aufgehoben") ; } } ! function check2(){ var Warnung2 = getState(idWarnung2).val; if (Warnung2 !== "") { var Begin = getState("dwd.0.warning2.begin").val; var End = getState("dwd.0.warning2.end").val; var text = getState("dwd.0.warning2.text").val; var Headline = getState("dwd.0.warning2.headline").val; var Description = getState("dwd.0.warning2.description").val; var DWD_telegramm = Headline + "\ngültig vom " + Begin + " bis " + End + "\n" + Description ; setTimeout(function() { sendTo ("telegram.0", DWD_telegramm); }, 1 * 1000); } else { sendTo ("telegram.0", "Wetterwarnung No.3 des Deutschen Wetterdienstes wurden aufgehoben") ; } } ! on(idWarnung, function (obj){ if (obj.newState.val !== obj.oldState.val) { check(); } }); ! on(idWarnung1, function (obj){ if (obj.newState.val !== obj.oldState.val) { check1(); } }); ! on(idWarnung2, function (obj){ if (obj.newState.val !== obj.oldState.val) { check2(); } }); !Bei mir klappt es einwandfrei.
Bis jetzt fg
Gru
ß
Johnny `
Sauber! Werde ich wohl
ü
bernehmen wegen der 3 Wetter-Warnungen.Ansonsten, mit dem Blockly hat es auch funktioniert:
1146_unbenannt.jpg -
Sauber! Werde ich wohl
ü
bernehmen wegen der 3 Wetter-Warnungen. `
[Spielverderber_on]Wir hatten heute morgen 4 Wetterwarnungen, von denen die ersten drei gelb, die vierte rot war

[Spielverderber_off]
Gru
ß
Rainer
-
Ich erweitere Blockly grade f
ü
r die 3 Warnungsstufen.Poste es wenn es fertig ist

Gru
ß
SvenGesendet von iPhone mit Tapatalk
-
Meins kann man auch ohne probleme auf eine Wetterwarnung reduzieren oder auf 10 erh
ö
hen. Wie man es am liebsten will.Ist im Script glaube ich selbsterkl
ä
rend.Da muss mal also keinen M
ä
dchenmodus (Spielverderber) anwenden
…
Lach -
Freut mich das es klappt bei dir.
Ist zwar noch nicht ganz perfekt das Script aber nach m Urlaub setz ich mich nochmal ran.
Hab da noch ein zwei Ideen.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
