Warnungen von warnung.bund.de in FHEM einbinden

Begonnen von oesi, 02 Februar 2016, 19:32:26

Vorheriges Thema - Nächstes Thema

KölnSolar

Zitatgerade weil sich urls auch gern mal ändern.
Das würden wir im Log durch eine Fehlermeldung verbose=1 sehen.

Zitatsind eventuell einige funktionsnamen nicht modulspezifisch?
Genau einer, der das evtl. verursacht. Lösch bitte das MoWaS-device. In der nächsten Version ist das dann raus, damit die Gefahr von Überschneidungen mit anderen Modulen gebannt ist.

Im Norden gibt es nun eine neue Meldung mit Category Infra. Bisher habe ich Safety, Fire, Other und met(dwd) "gesammelt". Scheint also gar nichts zu bringen, außer als Reading zur Verfügung zu stellen.

Interessanter wäre vielleicht "Event". Das liefert in diesem Fall 17. Dei Badeseewarnungen haben 8. Ich hab leider nichts gefunden, wie man das übersetzen könnte/sollte.  :'( Hat einer von Euch was dazu ?
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

frank

moin,

die events bei newwarnings sind immer noch falsch.
diese dürfen nicht nur bei change kommen, sondern müssen bei jedem update des readings kommen, sonst gibt es keinen trigger, wenn hintereinander die selbe anzahl erscheint.

inhaltlich passt es natürlich auch noch nicht.
damit es hier deutlich besser passt, möchte ich gerne weiterhin die bereits angesprochene umsortierung (reverse).

eine echte erkennung neuer meldungen, wie von florian beschrieben wäre natürlich vor zu ziehen.

als wichtigstes aber bitte erst einmal die events auf update korrigieren.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

KölnSolar

kann mich Deiner Meinung nicht anschließen.

Ich versuch es ein letztes Mal mit den Anwendungsfällen zu beschreiben, die mir in den Sinn kommen. Wenn es dann noch andere gibt, musst Du die bitte endlich mal aufzeigen.

Der wesentlichste Fall(wie bei Florian, curt und mir):
Ich möchte einen trigger für "neue Warnung", um eine message zu senden oder etwas anderes auszulösen, ggfs. differenziert nach WarnLevelMax. Dazu lässt sich das event auf NewWarnings nutzen. Funktioniert bei mir perfekt. Dabei lässt sich dann noch differenzieren:
a) einmaliges event genügt(so nutze ich das und ignoriere bis zu einer manuellen Aktion jegliches weitere event[Alarm-Modul])
b) man nutzt alle events. Dann löst es halt wiederholt aus. (speziell bei dwd-Warnungen wohl eher nervend)
    Da NewWarnings beim nächsten run-zyklus, sofern nicht zwischenzeitlich eine neue Warnung vorliegt, auf 0 gesetzt wird, erhält man ein eher "unsinniges" event, das eine Aktion auslöst.
    Das lässt sich durch Beschränkung auf events mit NewWarnings > 0 verhindern.
Das Ganze funktioniert auch, wenn latitude/longitude/distance verändert werden.
Den von Dir geschilderten Fall, dass NewWarnings gleich bliebe, gibt es quasi nie bzw. nur wenn im run-Zyklus(bei mir 60s) eine neue Warnung herausgegeben wurde. Was man in einem solchen Ausnahmefall(kurz nachdem man eine Info erhalten hat) vom System automatisch erledigt haben möchte, verschließt sich mir.

Dann gibt es den Fall, dass ich mir ohne einen Trigger den aktuellen Zustand des devices auf was auch immer ausgeben möchte. Das ist keine Frage von events, sondern von readings und deren Inhalten.

Dann der für mich grundsätzlich letzte nachvollziehbare Fall, dass ich vor einem Frontend sitze und mir in der Details-Ansicht die Meldungen ansehe und dabei bewusst die Sortierreihenfolge verändere. Hier führt NewWarnings zu Fehlauslösungen, weil NewWarnings aus technischen Gründen nicht wirklich neue Warnungen ermittelt, sondern  auch Positionsveränderungen bei der Sortierreihenfolge. Das ist, wenn man drauf triggert, unschön, wenn sich inhaltlich nichts an den Warnungen verändert hat. Aber ich frag mich schon, wie oft man das macht bzw. was, bei jemandem der es macht, für automatische Aktionen ablaufen. Zum jetzigen Zeitpunkt sehe ich daher keinen Handlungsbedarf. Wenn wir dann aber mal ein Beta-Stadium erreicht haben, überlege ich mir gerne, wie ich diese Fehlauslösungen abstellen kann.

Schließlich noch, dass wir jetzt beim Test evtl. ein abweichendes von dem grundsätzlichen Verhalten haben möchten. Ich sehe da jetzt keinen Fall, hab aber auch kein Problem damit vorübergehend bis zum Beta-Stadium erst einmal ohne ifchanged und mit events für alle readings  zu arbeiten. Hat dann nur den Nachteil, dass sich manche Alpha-Tester Konstrukte bauen, die dann "plötzlich" nicht mehr funktionieren werden.

Schlussendlich noch zu der allgemeinen Floskel "der User muss selber bestimmen können.....":
userReadings sind des Glückes Schmied. Wer außergewöhnliches will, der muss außergewöhnliches tun und nicht umgekehrt.
Bsp.: (sinnfreies) event für logging von Warn_xy_Category
attr NinaTest userReadings eventWarn_00_Instruction:Warn_00_EventID.* {ReadingsVal($name,"Warn_00_Instruction,"")}

erzeugt bei neuer Warnung aktuell folgende events
2019-07-16 14:08:06 Nina NinaTest Warn_01_EventID: BIWAPP-35949
2019-07-16 14:08:06 Nina NinaTest Warn_00_EventID: BIWAPP-36637
2019-07-16 14:08:06 Nina NinaTest WarnCount: 2
2019-07-16 14:08:06 Nina NinaTest WarnLevelMax: 4
2019-07-16 14:08:06 Nina NinaTest NewWarnings: 2
2019-07-16 14:08:06 Nina NinaTest Warnungen: 2 Lokal: 0
2019-07-16 14:08:06 Nina NinaTest lastConnection: 31 values captured in 1.00 s
2019-07-16 14:08:06 Nina NinaTest eventWarn_00_Category: Safety

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Florian_GT

Zitat von: KölnSolar am 16 Juli 2019, 14:36:19
kann mich Deiner Meinung nicht anschließen.

Ich versuch es ein letztes Mal mit den Anwendungsfällen zu beschreiben, die mir in den Sinn kommen. Wenn es dann noch andere gibt, musst Du die bitte endlich mal aufzeigen.

Der wesentlichste Fall(wie bei Florian, curt und mir):
Ich möchte einen trigger für "neue Warnung", um eine message zu senden oder etwas anderes auszulösen, ggfs. differenziert nach WarnLevelMax. Dazu lässt sich das event auf NewWarnings nutzen. Funktioniert bei mir perfekt. Dabei lässt sich dann noch differenzieren:
a) einmaliges event genügt(so nutze ich das und ignoriere bis zu einer manuellen Aktion jegliches weitere event[Alarm-Modul])
b) man nutzt alle events. Dann löst es halt wiederholt aus. (speziell bei dwd-Warnungen wohl eher nervend)
    Da NewWarnings beim nächsten run-zyklus, sofern nicht zwischenzeitlich eine neue Warnung vorliegt, auf 0 gesetzt wird, erhält man ein eher "unsinniges" event, das eine Aktion auslöst.
    Das lässt sich durch Beschränkung auf events mit NewWarnings > 0 verhindern.
Das Ganze funktioniert auch, wenn latitude/longitude/distance verändert werden.
Den von Dir geschilderten Fall, dass NewWarnings gleich bliebe, gibt es quasi nie bzw. nur wenn im run-Zyklus(bei mir 60s) eine neue Warnung herausgegeben wurde. Was man in einem solchen Ausnahmefall(kurz nachdem man eine Info erhalten hat) vom System automatisch erledigt haben möchte, verschließt sich mir.

Dann gibt es den Fall, dass ich mir ohne einen Trigger den aktuellen Zustand des devices auf was auch immer ausgeben möchte. Das ist keine Frage von events, sondern von readings und deren Inhalten.

Dann der für mich grundsätzlich letzte nachvollziehbare Fall, dass ich vor einem Frontend sitze und mir in der Details-Ansicht die Meldungen ansehe und dabei bewusst die Sortierreihenfolge verändere. Hier führt NewWarnings zu Fehlauslösungen, weil NewWarnings aus technischen Gründen nicht wirklich neue Warnungen ermittelt, sondern  auch Positionsveränderungen bei der Sortierreihenfolge. Das ist, wenn man drauf triggert, unschön, wenn sich inhaltlich nichts an den Warnungen verändert hat. Aber ich frag mich schon, wie oft man das macht bzw. was, bei jemandem der es macht, für automatische Aktionen ablaufen. Zum jetzigen Zeitpunkt sehe ich daher keinen Handlungsbedarf. Wenn wir dann aber mal ein Beta-Stadium erreicht haben, überlege ich mir gerne, wie ich diese Fehlauslösungen abstellen kann.

Schließlich noch, dass wir jetzt beim Test evtl. ein abweichendes von dem grundsätzlichen Verhalten haben möchten. Ich sehe da jetzt keinen Fall, hab aber auch kein Problem damit vorübergehend bis zum Beta-Stadium erst einmal ohne ifchanged und mit events für alle readings  zu arbeiten. Hat dann nur den Nachteil, dass sich manche Alpha-Tester Konstrukte bauen, die dann "plötzlich" nicht mehr funktionieren werden.

Schlussendlich noch zu der allgemeinen Floskel "der User muss selber bestimmen können.....":
userReadings sind des Glückes Schmied. Wer außergewöhnliches will, der muss außergewöhnliches tun und nicht umgekehrt.
Bsp.: (sinnfreies) event für logging von Warn_xy_Category
attr NinaTest userReadings eventWarn_00_Instruction:Warn_00_EventID.* {ReadingsVal($name,"Warn_00_Instruction,"")}

erzeugt bei neuer Warnung aktuell folgende events
2019-07-16 14:08:06 Nina NinaTest Warn_01_EventID: BIWAPP-35949
2019-07-16 14:08:06 Nina NinaTest Warn_00_EventID: BIWAPP-36637
2019-07-16 14:08:06 Nina NinaTest WarnCount: 2
2019-07-16 14:08:06 Nina NinaTest WarnLevelMax: 4
2019-07-16 14:08:06 Nina NinaTest NewWarnings: 2
2019-07-16 14:08:06 Nina NinaTest Warnungen: 2 Lokal: 0
2019-07-16 14:08:06 Nina NinaTest lastConnection: 31 values captured in 1.00 s
2019-07-16 14:08:06 Nina NinaTest eventWarn_00_Category: Safety


Mit NewWarnings kann ich nicht wirklich arbeiten. Ich weiß durch NewWarnings nur, dass es eine neue Warnung gibt, nicht welche. Es wäre also hilfreich, noch ein Feld zu haben, dass für jede neue Warnung einmal ein update bekommt, und z.B. "Warn_00_" ausgibt. Dafür wäre natürlich wichtig, das die Sortierung sich nicht ändert.
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

frank

im letzten post ging es mir ausschliesslich um das reading NewWarnings, wie auch jetzt.

ZitatDen von Dir geschilderten Fall, dass NewWarnings gleich bliebe, gibt es quasi nie bzw. nur wenn im run-Zyklus(bei mir 60s) eine neue Warnung herausgegeben wurde. Was man in einem solchen Ausnahmefall(kurz nachdem man eine Info erhalten hat) vom System automatisch erledigt haben möchte, verschließt sich mir.
ich triggere meine benachrichtigungen ebenfalls auf newwarnings grösser null. also bei jeder neuen meldung eine benachrichtigung. mein zyklus beträgt zur zeit 5min.

wenn in den 5min wieder eine 2. meldung kommt, gibt es keine mitteilung über diese neue meldung.
nur wenn zufällig eine weitere 3. meldung nach mehr als 5min kommt, gibt es die chance, die "verlorene" 2. meldung zu bemerken. kommt die 3. triggernde meldung tage später, ist die 2. "verlorene" meldung eventuell wirklich verloren, da sie bereits nicht mehr existiert (ist dann im prinzip auch egal). auf jeden fall ist es dann zu spät.
je grösser der zyklus, desto grösser die wahrscheinlichkeit. auch weitere meldungen, die nach und nach in den folgenden zyklen erscheinen, gehen ebenso verloren. oder 2x2 hintereinander, oder, oder, ...


Zitatkann mich Deiner Meinung nicht anschließen.
ich verstehe nicht, was so schlimm daran ist, jede neue meldung triggern zu lassen.
schon die möglichkeit einer "verlorenen" meldung empfinde ich als unzuverlässig und zudem völlig unnötig.
hm ..., die gefahr eines bombenfundes, dessen meldung vom bundesamt für bevölkerungsschutz "nur" mit minor eingestuft wird, erscheint dir so gross, dass du die meldung lieber höher bewerten möchtest, aber die zuverlässige zustellung der meldung ist dir scheinbar egal.


ZitatDann der für mich grundsätzlich letzte nachvollziehbare Fall, dass ich vor einem Frontend sitze und mir in der Details-Ansicht die Meldungen ansehe und dabei bewusst die Sortierreihenfolge verändere. Hier führt NewWarnings zu Fehlauslösungen, weil NewWarnings aus technischen Gründen nicht wirklich neue Warnungen ermittelt, sondern  auch Positionsveränderungen bei der Sortierreihenfolge. Das ist, wenn man drauf triggert, unschön, wenn sich inhaltlich nichts an den Warnungen verändert hat. Aber ich frag mich schon, wie oft man das macht bzw. was, bei jemandem der es macht, für automatische Aktionen ablaufen. Zum jetzigen Zeitpunkt sehe ich daher keinen Handlungsbedarf. Wenn wir dann aber mal ein Beta-Stadium erreicht haben, überlege ich mir gerne, wie ich diese Fehlauslösungen abstellen kann.
nicht nur vor dem frontend und auch ohne die attribute zu ändern:
jede echte neue meldung ergibt NewWarnings=WarnCount, da sie an listenplatz 00 einsortiert wird (sort=creation).

wenn newwarning inhaltlich korrekt wäre, könnte ich die echten neuen meldungen ausführlicher als alte meldungen auf dem begrenzten platz des ausgabegerätes darstellen.

ausserdem könnte ich dann endlich die wettermeldungen eleminieren. es ist zur zeit unmöglich neue "nicht_wetter_meldungen" zu erkennen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

ZitatDen von Dir geschilderten Fall, dass NewWarnings gleich bliebe, gibt es quasi nie
nur weil es gerade so gut passt und noch nicht mal konstruiert ist:  8)

1. neue meldung: 16.7.2019 - 18:31:18 Uhr
erhalten durch mein zyklus: 2019-07-16 18:32:27 => newwarnings hat event gefeuert

2. neue meldung: 16.7.2019 - 18:33:16 Uhr
erhalten durch mein zyklus: 2019-07-16 18:37:27 => newwarnings hat kein event gefeuert

seitdem (ca 2std) noch keine neue meldung. nur durch zufall gerade entdeckt.
wenn keine meldungen mehr kommen, sieht es sogar so aus, dass die 2. "verpasste" meldung noch vor der 1. gelöscht wird (wegen end_time). das löst dann zumindestens noch einen "verwunderungstrigger" aus, da keine änderungen zu erkennen sein werden.

zum glück war es nur die entwarnung zum notrufausfall in wiesbaden und nicht ein absichtlich herbeigeführter flugzeugabsturz in eine nahegelegene wellblechhütte in gorleben.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

KölnSolar

#186
Zitatwenn in den 5min wieder eine 2. meldung kommt, gibt es keine mitteilung über diese neue meldung.
Ja, hab ich ja so beschrieben. Auch, wenn ich den Fall für äußerst unwahrscheinlich halte, dass eine Badeseewarnung und innerhalb von 5 Minuten die Bombenwarnung kommt(wahrscheinlich hätte ich noch nicht einmal auf die erste Meldung reagiert/gelesen  ;D) stimme ich Dir zu, dass das mindestens ein Schönheitsfehler ist. Aber da ist doch nicht die Lösung immer bei update ein event zu senden. Ein event mit 0 lässt sich dann überhaupt nicht mehr nutzen. Wäre jetzt z.B. für das Rücksetzen eines Alarmierungsautomatismus nutzbar.  Ich guck mal, ob ich eine alternative Lösung finde, dass für diesen Fall ein update und event ausgelöst wird. Aber nachrangig.
Zitatnicht nur vor dem frontend und auch ohne die attribute zu ändern:
jede echte neue meldung ergibt NewWarnings=WarnCount, da sie an listenplatz 00 einsortiert wird (sort=creation).
Stimmt. Ich hab die Sortierung auf distance. Da hab ich das natürlich nicht. In dem Monat der Modulentwicklung hatte ich bisher 1 lokale dwd Warnung. Jetzt verstehe ich aber, was Du meinst. Das ist dann, wenn man zuviel will. Ursprünglich sollte es nur ein Flag als Trigger " Neue Meldungen" werden. Wenn das besser ist, weil inhaltlich korrekter.  :-\ Aber ich schrieb ja auch schon, dass ich mal gucke, was sich da machen lässt. Aber auch nachrangig.
Zitatwenn newwarning inhaltlich korrekt wäre, könnte ich die echten neuen meldungen ausführlicher als alte meldungen auf dem begrenzten platz des ausgabegerätes darstellen.
Das versteh ich nicht. Wenn richtigerweise 10 neue Warnungen kommen, was dann ? Bei begrenztem Platz kannst Du doch nur ausgeben, was auf das Gerät passt. Da nimmt man dann doch die, die seiner Meinung nach die wichtigsten sind. Nach warnlevel, creation oder distance(Gerne auch andere sinnvolle, aber nach meinen Erkenntnissen gibt es da nicht viel). Hier würde definitiv ein 2. level Sortierkriterium weiter helfen, aber da hat mein Hilferuf noch keine Ergebnisse zu Tage gefördert.  :'(
Zitatausserdem könnte ich dann endlich die wettermeldungen eleminieren. es ist zur zeit unmöglich neue "nicht_wetter_meldungen" zu erkennen.
Naja, violette dwd-Meldungen gab es sehr selten. Und wenn man distance nicht gerade auf 99 km setzt wird sich das vermutlich auch in Grenzen halten mit den dwd-Warnungen mit level4. Ich denke, dass das sich noch einpendeln muss, wie man sinnvoll die distance bestimmt. Ich hab jetzt 2 devices. eins "produktiv" mit 25km und mir wurde sehr schön der Stromausfall in Bonn gemeldet. Ein anderes zum Test. Da hab ich 99km. Latitude/longitude ändere ich dort je nach Warnlage, damit ich überhaupt mal Warnungen für Tests einfange. dwd gibt es seit Tagen keine.

Zitatzum glück war es nur die entwarnung zum notrufausfall in wiesbaden und nicht ein absichtlich herbeigeführter flugzeugabsturz in eine nahegelegene wellblechhütte in gorleben.
Mich wundern Deine Reaktionszeiten. Deine fiktive Warnung, wäre sicherlich nicht schnell verschwunden.  ;D
Zitatdas löst dann zumindestens noch einen "verwunderungstrigger" aus, da keine änderungen zu erkennen sein werden.
Sagt der, der für alles events haben möchte.  ;) Ich versteh das aber gar nicht. Löschung von Warnungen dürften überhaupt kein NewWarnings event auslösen. Es werden ja nur alle aktuellen Meldungen nach ihrer Sortierung per EventID gegen den dann festgelegten "Speicherplatz" geprüft. keine Warnung, keine Prüfung, keine Veränderung des Counters, kein event. Wohl aber ein event für WarnCount und ggfs.  WarnCountInArea, denn die haben sich verkleinert. Verguckt ?

@all: abgesehen von den Fragestellungen von frank: keine Wünsche für weitere Readings, optische Gestaltung von readings, Attribute(no dwd, hab ich auf dem Schirm), die etwas besonderes bewirken, set-, get-Befehle......sprich, das Modul ist optisch vollendet ?   ???
Kein Entwickler, der  einen Tipp hat, wie man technisch 2 Sortierungen in Perl ausführt, also z.B. nach distance UND warnlevel ?
Edit: Wie sieht es mit Mehrsprachigkeit aus ? Macht in meinen Augen wenig Sinn, da die Warntext ja eh nur in deutsch geliefert werden. Ebenso die "Überregionalität" wie bei UWZ. Und das weblink-Gedöns vom UWZ ? Hab mich da noch nicht viel mit auseinandergesetzt. Ist so etwas erstrebenswert ?
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

curt

Zitat von: curt am 15 Juli 2019, 03:57:00
Auf den ersten Blick macht das Modul (bei mir) noch ganz anderen Ärger:


Error https://warnung.bund.de/bbk.mowas/gefahrendurchsagen.json: Can't connect(2) to https://warnung.bund.de:443:  SSL connect attempt failed error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failureError


Warum nun hier bei mir SSLv3 am Start ist - keine Ahnung. Das hätte ich nun am Wenigsten erwartet.

Das Problem habe ich (derzeit) so gelöst, dass Deinem Modul mitgegeben wird, welches SSL-Protokoll genutzt werden soll:


my $param = {
                url        => "$URL",
                timeout    => 5,
                hash       => $hash,
                method     => "GET",
                header     => "",
                sslargs => { SSL_version => 'TLSv12' },
                };


Baue das bitte aber noch nicht ein, Begründung: Anschließend fliegt der Hälfte der Nutzer das Modul weg, weil ein Perl-Modul fehlt. - Schöner wäre wohl "TLSv12:TLSv11:SSLv23:!SSLv3:!SSLv2" - aber das tat nicht, das muss ich nochmal genauer ansehen.

Zitat von: KölnSolar am 16 Juli 2019, 21:15:43
Ich denke, dass das sich noch einpendeln muss, wie man sinnvoll die distance bestimmt.

Da ist ja die Frage, was man überhaupt möchte: Unterstellt, man nutzt das openDWD-Modul, dann fallen die Wetterwarnungen schon mal raus, besser als direkt über DWD wird es ja nicht. Dann würde es primär um Sicherheitswarnungen und Kat(katastrophen)-Meldungen gehen. Also wäre das dann das eigene Wohn- sowie Arbeits- und Lebensgebiet.

Zitat von: KölnSolar am 16 Juli 2019, 21:15:43
Kein Entwickler, der  einen Tipp hat, wie man technisch 2 Sortierungen in Perl ausführt, also z.B. nach distance UND warnlevel ?

Diese Richtung?
https://www.perl-community.de/bat/poard/thread/18011

Zitat von: KölnSolar am 16 Juli 2019, 21:15:43
@all: abgesehen von den Fragestellungen von frank: keine Wünsche für weitere Readings, optische Gestaltung von readings, Attribute(no dwd, hab ich auf dem Schirm), die etwas besonderes bewirken, set-, get-Befehle......sprich, das Modul ist optisch vollendet ?   ???

Dazu müsste ich es erstmal schaffen, Ergebnisse ordentlich in der FHEM-Webbrowserdarstellung (bzw. auch FTUI) zu sehen: Derzeit sehe ich nur das Device selbst.

@KölnSolar Darf ich Dich denn freundlich bitten, mir zu zeigen, wie Du das bei Dir aufbereitest und darstellst? (Und wenn andere das anders/schöner haben, bitte die auch). Ich tue mich bei so etwas immer irre schwer.
RPI 4 - Jeelink HomeMatic Z-Wave

KölnSolar

#188
ZitatDas Problem habe ich (derzeit) so gelöst, dass Deinem Modul mitgegeben wird, welches SSL-Protokoll genutzt werden soll:
Find ich echt komisch. Ich kenne einige Module, die da gar keine generelle Schwierigkeiten haben. Einzelfall ? Aber prima, dass es jetzt bei Dir funktioniert.
ZitatDiese Richtung?
Danke, guck ich mir an.
ZitatDarf ich Dich denn freundlich bitten, mir zu zeigen, wie Du das bei Dir aufbereitest und darstellst?
Ich mach da nicht viel. Bin nicht so der Klicki-Bunti-Typ.  :-X Ich nutze das Alarm-Modul. Dort das quasi-notify myNina:NewWarnings:.[^0]Beim event löst das Alarm-Modul aus und schickt mir (bei Abwesenheit) eine Mail. Als Inhalt ($subject eq "Katastrophe Gefahrenalarm") {
fhem ("set myMail add   !!! ACHTUNG !!! Warnung bei Katastrophenfall" );
fhem ("set myMail add Status: ".ReadingsVal("myNina","state","") ) ; # Katastrophenwarnungen
fhem ("set myMail add Level:  ".ReadingsVal("myNina","WarnLevelMax","n.a.") ) ; # warnlevel
fhem ("set myMail add 1. Warnung ".ReadingsVal("myNina","Warn_00_Distance",0)."km entfernt: ".ReadingsVal("myNina","Warn_00_ShortText","shorttext not found") ); # 1. Warnung shorttext
fhem ("set myMail add 2. Warnung ".ReadingsVal("myNina","Warn_01_Distance",0)."km entfernt: ".ReadingsVal("myNina","Warn_01_ShortText","shorttext not found") ); # 2. Warnung shorttext

Die Alarmierung muss ich aktiv im Modul canceln, damit das dahinterliegende notify wieder aktiviert wird.
Und ansonsten hab ich ein InfoPanel(FHEM-Modul), wo ich alle wichtigen Infos anzeige. Entweder über Browser oder auf dem TV. Dort zeige ich mir bei WarnCount > 0 die kurze Meldung
"Katastrophenwarnungen: "
text 75 570 550 {ReadingsVal('myNina','WarnCount',0)}
text 751 600 550 "Level: "
text 76 665 550 {ReadingsVal('myNina','WarnLevelMax',"catastrophe warn level not found")}

in rot  an.
Ab warnlevel 3 soll mir zukünftig dann noch meine Freundin A. eine Voice-message bei Anwesenheit ausgeben.
Ich hoffe, Du bist nicht zu sehr enttäuscht. :-\

Edit: Achso, und für die detaillierten Info gucke ich tatsächlich einfach nur in die details des device.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

curt

Hmmm.

@frank
Könntest Du bitte zeigen, wie Du das einbindest?
RPI 4 - Jeelink HomeMatic Z-Wave

KölnSolar

Bei dwd-Ausschluss dachte ich ja erst an ein Attribut. Aber irgendwie kann ich mich nun mit einem set device disable_dwd/enable_dwd mehr anfreunden. Dabei denke ich an meinen Einsatz. Ich nutze kein opendwd und möchte daher die dwd-Warnungen. Aber im Falle einer Warnung möchte ich sie vorübergehend(automatisiert für 4h ?) abschalten. Oder nur den warnlevel auf 0 setzen(zur Info bleibt ja color/severity).
Was meint ihr ?
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

curt

Zitat von: KölnSolar am 16 Juli 2019, 23:31:57
Bei dwd-Ausschluss dachte ich ja erst an ein Attribut.

Nun müsste man erstmal wissen, wie der Definitionskatalog von deren JSON-Inferface eigentlich aussieht - kennst Du den? Oder ist das jetzt alles reverse engineering? (Im Zweifel würde ich die anschreiben - das kann gern ich übernehmen. Allerdings ist da nicht ITZ Bund dabei - sondern Telekom.)

Das hier lief mir auch über den Weg - unklar, was das eigentlich ist: Die meisten sind 404. https://warnung.bund.de/bbk.config/config_rel.json

Zu Deiner Frage:
Ich würde mir den Ausschluss in einem Attribut wünschen - und zwar als Liste. Begründung: Vielleicht wollen wir noch weitere Sachen filtern, wissen das aber jetzt noch nicht.
RPI 4 - Jeelink HomeMatic Z-Wave

frank

Zitat von: curt am 16 Juli 2019, 22:50:12
Hmmm.

@frank
Könntest Du bitte zeigen, wie Du das einbindest?
warum stöhnst du, oder was sagt das hmmm?

ich streame bei jedem eingang neuer meldungen das bild (mit RSS modul erstellt) im anhang auf den tv, falls der tv bereits angeschaltet ist (streamingstart über userreading). das streaming bleibt, bis jemand auf der fernbedienung manuel exit drückt, um sicher zu stellen, dass die meldung ankommt. bei weiteren neuen meldungen wird das bild neu erstellt.

hier werden immer die ersten 5 meldungen angezeigt, die erste mit long_text. werden die texte zu lang, verschwinden die unteren meldungen entsprechend wegen zu kleinem bildschirm.

die icons stellen im augenblick nur den severity level (orange, rot, violett) dar, oder bei entwarnung grau, wie im original.
hier sollen später noch gefahrenschilder mit entsprechenden bildchen rein (bombe, trinkwasserhahn, feuer, telefon, sirene, akw, .....).

die 2 karten sind eigentlich nur platzhalter, da ich noch nichts besseres habe. oben: uwz niedersachsen, unten dwd, jeweils wetterwarnungen.

mein wunsch: ich stelle mir eine karte mit den geokoordinaten im mittelpunkt vor. drum herum einen kreis eingezeichnet, der automatisch den radius distance hat. der kartenausschnitt/zoom soll dann eventuell 50% mehr darstellen, als die homezone gross ist. zusätzlich sollen dann natürlich noch alle relevanten polygone mit entsprechenden farbflächen zu sehen sein, ähnlich, wie im original. jede fläche hat im idealfall noch eine markierung mit der listennummer, der entsprechenden meldung. also könnte ich eventuell irgend wann noch die polygondaten in einem reading gebrauchen.

gibt es eventuell jemanden, der so ein bildchen (png, jpg, gif) aus dem ärmel schütteln kann?


hier noch die layout datei für das rss
# This template file can be used for layout creation
# needed by 02_RSS.pm and 55_InfoPanel.pm
#
# Use "save as" once to create the file with your desired name
#

#font /usr/share/fonts/truetype/msttcorefonts/Arial_Bold.ttf
font /usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf

rgb "cccccc"
rect 0 0 1919 60 1
rgb "000000"
pt 40
text 20 45 {\
my $title = AttrVal("rss_tv_07","itemtitle","");\
my $nw = ReadingsVal("nina","NewWarnings",0);\
my $wc = ReadingsVal("nina","WarnCount",0);\
return $title." - ".$nw." von ".$wc." neu";\
}
thalign "right"
time 1500 45
date 1900 45
thalign "left"

img 0 90 h480 png url "http://www.unwetterzentrale.de/images/map/niedersachsen_index.png"
img 0 600 h480 png url "http://www.wettergefahren.de/DWD/warnungen/warnapp_gemeinden/warnungen_gemeinde_map_de.png"


# unwettermeldungen ###############################################################
rgb "ffffff"
pt 20
moveto 510 90

# uwz0
condition {ReadingsVal("nina","WarnCount",0) == 0}
moveby 705 200
pt 40
thalign "center"
text x y "Keine Warnungen für Groß Oesingen"
pt 20
thalign "left"

# uwz1
condition {ReadingsVal("nina","WarnCount",0) > 0}
img x y h100 png file {\
my $wc = "00";\
my $level = ReadingsVal("nina","Warn_".$wc."_Level","?");\
my $img = "/home/pi/icons/117x104_grau.png";\
if ($level) {\
my $severity = ReadingsVal("nina","Warn_".$wc."_Severity","?");\
if ($severity eq "Minor") {\
$img = "/home/pi/icons/117x104_orange.png";\
} elsif ($severity eq "Severe") {\
$img = "/home/pi/icons/117x104_rot.png";\
} elsif ($severity eq "Extreme") {\
$img = "/home/pi/icons/117x104_violett.png";\
} else {\
$img = "/home/pi/icons/117x104_weiss.png";\
}\
}\
return $img;\
}
moveby 140 20
text x y {\
my $wc = "00";\
my $area = ReadingsVal("nina","Warn_".$wc."_Area","?");\
$area =~ s/^(Gemeinde|Landkreis)\/Stadt\:\s//;\
my $distance = sprintf("%.1f",ReadingsVal("nina","Warn_".$wc."_Distance","?"));\
my $creation = ReadingsVal("nina","Warn_".$wc."_Creation","?");\
my $end = ReadingsVal("nina","Warn_".$wc."_End","?");\
return "Ort: (".$distance." km) ".$area."\nStart: ".$creation."\nEnde:  ".$end;\
}
moveby -140 110
text x y {\
my $wc = "00";\
my $text = ReadingsVal("nina","Warn_".$wc."_ShortText","");\
return $text;\
}
moveby 0 15
pt 18
font /usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf
textbox x y 1399 {\
my $wc = "00";\
my $text = ReadingsVal("nina","Warn_".$wc."_LongText","");\
return $text;\
}
pt 20
font /usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf
moveby 0 30

# uwz2
condition {ReadingsVal("nina","WarnCount",0) > 1}
img x y h100 png file {\
my $wc = "01";\
my $level = ReadingsVal("nina","Warn_".$wc."_Level","?");\
my $img = "/home/pi/icons/117x104_grau.png";\
if ($level) {\
my $severity = ReadingsVal("nina","Warn_".$wc."_Severity","?");\
if ($severity eq "Minor") {\
$img = "/home/pi/icons/117x104_orange.png";\
} elsif ($severity eq "Severe") {\
$img = "/home/pi/icons/117x104_rot.png";\
} elsif ($severity eq "Extreme") {\
$img = "/home/pi/icons/117x104_violett.png";\
} else {\
$img = "/home/pi/icons/117x104_weiss.png";\
}\
}\
return $img;\
}
moveby 140 20
text x y {\
my $wc = "01";\
my $area = ReadingsVal("nina","Warn_".$wc."_Area","?");\
$area =~ s/^(Gemeinde|Landkreis)\/Stadt\:\s//;\
my $distance = sprintf("%.1f",ReadingsVal("nina","Warn_".$wc."_Distance","?"));\
my $creation = ReadingsVal("nina","Warn_".$wc."_Creation","?");\
my $end = ReadingsVal("nina","Warn_".$wc."_End","?");\
return "Ort: (".$distance." km) ".$area."\nStart: ".$creation."\nEnde:  ".$end;\
}
moveby -140 110
text x y {\
my $wc = "01";\
my $text = ReadingsVal("nina","Warn_".$wc."_ShortText","");\
return $text;\
}
moveby 0 30

# uwz3
condition {ReadingsVal("nina","WarnCount",0) > 2}
img x y h100 png file {\
my $wc = "02";\
my $level = ReadingsVal("nina","Warn_".$wc."_Level","?");\
my $img = "/home/pi/icons/117x104_grau.png";\
if ($level) {\
my $severity = ReadingsVal("nina","Warn_".$wc."_Severity","?");\
if ($severity eq "Minor") {\
$img = "/home/pi/icons/117x104_orange.png";\
} elsif ($severity eq "Severe") {\
$img = "/home/pi/icons/117x104_rot.png";\
} elsif ($severity eq "Extreme") {\
$img = "/home/pi/icons/117x104_violett.png";\
} else {\
$img = "/home/pi/icons/117x104_weiss.png";\
}\
}\
return $img;\
}
moveby 140 20
text x y {\
my $wc = "02";\
my $area = ReadingsVal("nina","Warn_".$wc."_Area","?");\
$area =~ s/^(Gemeinde|Landkreis)\/Stadt\:\s//;\
my $distance = sprintf("%.1f",ReadingsVal("nina","Warn_".$wc."_Distance","?"));\
my $creation = ReadingsVal("nina","Warn_".$wc."_Creation","?");\
my $end = ReadingsVal("nina","Warn_".$wc."_End","?");\
return "Ort: (".$distance." km) ".$area."\nStart: ".$creation."\nEnde:  ".$end;\
}
moveby -140 110
text x y {\
my $wc = "02";\
my $text = ReadingsVal("nina","Warn_".$wc."_ShortText","");\
return $text;\
}
moveby 0 30

# uwz4
condition {ReadingsVal("nina","WarnCount",0) > 3}
img x y h100 png file {\
my $wc = "03";\
my $level = ReadingsVal("nina","Warn_".$wc."_Level","?");\
my $img = "/home/pi/icons/117x104_grau.png";\
if ($level) {\
my $severity = ReadingsVal("nina","Warn_".$wc."_Severity","?");\
if ($severity eq "Minor") {\
$img = "/home/pi/icons/117x104_orange.png";\
} elsif ($severity eq "Severe") {\
$img = "/home/pi/icons/117x104_rot.png";\
} elsif ($severity eq "Extreme") {\
$img = "/home/pi/icons/117x104_violett.png";\
} else {\
$img = "/home/pi/icons/117x104_weiss.png";\
}\
}\
return $img;\
}
moveby 140 20
text x y {\
my $wc = "03";\
my $area = ReadingsVal("nina","Warn_".$wc."_Area","?");\
$area =~ s/^(Gemeinde|Landkreis)\/Stadt\:\s//;\
my $distance = sprintf("%.1f",ReadingsVal("nina","Warn_".$wc."_Distance","?"));\
my $creation = ReadingsVal("nina","Warn_".$wc."_Creation","?");\
my $end = ReadingsVal("nina","Warn_".$wc."_End","?");\
return "Ort: (".$distance." km) ".$area."\nStart: ".$creation."\nEnde:  ".$end;\
}
moveby -140 110
text x y {\
my $wc = "03";\
my $text = ReadingsVal("nina","Warn_".$wc."_ShortText","");\
return $text;\
}
moveby 0 30

# uwz5
condition {ReadingsVal("nina","WarnCount",0) > 4}
img x y h100 png file {\
my $wc = "04";\
my $level = ReadingsVal("nina","Warn_".$wc."_Level","?");\
my $img = "/home/pi/icons/117x104_grau.png";\
if ($level) {\
my $severity = ReadingsVal("nina","Warn_".$wc."_Severity","?");\
if ($severity eq "Minor") {\
$img = "/home/pi/icons/117x104_orange.png";\
} elsif ($severity eq "Severe") {\
$img = "/home/pi/icons/117x104_rot.png";\
} elsif ($severity eq "Extreme") {\
$img = "/home/pi/icons/117x104_violett.png";\
} else {\
$img = "/home/pi/icons/117x104_weiss.png";\
}\
}\
return $img;\
}
moveby 140 20
text x y {\
my $wc = "04";\
my $area = ReadingsVal("nina","Warn_".$wc."_Area","?");\
$area =~ s/^(Gemeinde|Landkreis)\/Stadt\:\s//;\
my $distance = sprintf("%.1f",ReadingsVal("nina","Warn_".$wc."_Distance","?"));\
my $creation = ReadingsVal("nina","Warn_".$wc."_Creation","?");\
my $end = ReadingsVal("nina","Warn_".$wc."_End","?");\
return "Ort: (".$distance." km) ".$area."\nStart: ".$creation."\nEnde:  ".$end;\
}
moveby -140 110
text x y {\
my $wc = "04";\
my $text = ReadingsVal("nina","Warn_".$wc."_ShortText","");\
return $text;\
}

condition 1




Zitat von: curt am 16 Juli 2019, 23:40:37
Ich würde mir den Ausschluss in einem Attribut wünschen - und zwar als Liste. Begründung: Vielleicht wollen wir noch weitere Sachen filtern, wissen das aber jetzt noch nicht.
genau so stelle ich mir das auch vor.  :)

es gibt doch eh nur 3? oder 4? quellen.
also ein listen attribut mit 1-3 elementen. und zusätzlich ein "set feed <feed1|feed2|feed3> <on|off>". die kombi von attr und set gibt es ja auch zb bei disable.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

curt

#193
Zitat von: KölnSolar am 16 Juli 2019, 22:34:44
ZitatDas Problem habe ich (derzeit) so gelöst, dass Deinem Modul mitgegeben wird, welches SSL-Protokoll genutzt werden soll:
Find ich echt komisch. Ich kenne einige Module, die da gar keine generelle Schwierigkeiten haben. Einzelfall ?

Im Moment ist mir das ein Rätsel. Ich habe mehrere Module im Einsatz, die https abrufen, die gehen alle. Auch httpUtils sollte eigentlich im default sslv3 ausschließen. Das spricht jetzt erstmal dafür, dass Dein Modul anders ist als die anderen Module. Trennung: Ich fuhr vorher Upgrade auf Raspian-10 buster. Trennung. Ich sollte wohl mal @rudolfkoenig fragen - er wäre genau der Richtige.

Zitat von: frank am 17 Juli 2019, 00:43:05
Zitatwarum stöhnst du, oder was sagt das hmmm?
warum stöhnst du, oder was sagt das hmmm?

Das war ein Seufzen. Sowohl Deinen Vorschlag als auch den von KölnSolar kann ich jetzt so einfach nicht umsetzen, da fehlt mir Wissen. Es läuft wohl darauf hinaus, dass ich für FTUI eine schnöde Tabelle bastele. Und wenn nichts da ist, wird die Tabelle weggeschaltet. Dafür fehlt ggf. ein Reading, aber da will ich mich noch nicht zu weit aus dem Fenster lehnen. Siehe nächster Absatz.

Zitat von: frank am 17 Juli 2019, 00:43:05
hier sollen später noch gefahrenschilder mit entsprechenden bildchen rein (bombe, trinkwasserhahn, feuer, telefon, sirene, akw, .....).

Schickfein. Ich habe anderes vor: Auf meiner Taktikseite von FTUI ein Symbol, wenn Meldungen>0 vorliegen. Wenn 0, dann Symbol weggeschaltet. Das Ganze als FTUI-Link, das kann ich.

Zitat von: frank am 17 Juli 2019, 00:43:05
mein wunsch: ich stelle mir eine karte mit den geokoordinaten im mittelpunkt vor. drum herum einen kreis eingezeichnet, der automatisch den radius distance hat. der kartenausschnitt/zoom soll dann eventuell 50% mehr darstellen, als die homezone gross ist. zusätzlich sollen dann natürlich noch alle relevanten polygone mit entsprechenden farbflächen zu sehen sein, ähnlich, wie im original. jede fläche hat im idealfall noch eine markierung mit der listennummer, der entsprechenden meldung. also könnte ich eventuell irgend wann noch die polygondaten in einem reading gebrauchen.
gibt es eventuell jemanden, der so ein bildchen (png, jpg, gif) aus dem ärmel schütteln kann?

In FTUI gibt es das (eher neue) Modul Maps. Das greift sich openstreetmap, zentriert/zoomt nach Vorgabe und stellt dar. Darüber kann man Overlays legen, leaflet habe ich im Hinterkopf abgespeichert. Der Wifget-Autor hatte das mit Feuerlöschern gezeigt, bei mir läuft Verkehrslage auf OSM. Das Ganze ist interaktiv zoombar. - Falls Du FTUI nicht nutzt, könnte trotzdem ein Blick auf die Methodik helfen.

Zitat von: frank am 17 Juli 2019, 00:43:05
ZitatIch würde mir den Ausschluss in einem Attribut wünschen - und zwar als Liste. Begründung: Vielleicht wollen wir noch weitere Sachen filtern, wissen das aber jetzt noch nicht.
es gibt doch eh nur 3? oder 4? quellen.

Naja, wir KENNEN 3 oder 4. Ich gehe eigentlich davon aus, dass die deutlich mehr haben. Daher Hinweis an @Kölnsolar auf Beitrag #191.

Eine weitere Frage: Abrufintervall.
Ist das im Modul derzeit fest codiert? Oder von mir einstellbar?

Das müsste überdacht werden - das geht in einem echten Kat-Fall schief. Hintergrund: Ich habe wie gesagt in den vergangenen 17 Jahren fünf Kat-Fälle recht nahe (allerdings noch ohne NINA/KatWarn) miterlebt, man verzeihe, dass ich nicht genau sage in welcher Funktion. Nun kann ich nicht einschätzen, was NINA im Falle des Falles so rausrotzt - weiß aber was damals auf anderen Wegen kommuniziert wurde.

Ganz kurzer Exkurs:
Es gibt zwei Arten von Katastrophen:
1) Flanke sofort auf 100%, dann weniger werdend (Flugzeugabsturz, Eisenbahnunglück, ABA-Unfall, Chemieunfall) - die sind häufiger
2) Flanke langsam ansteigend auf 100%, langsam abfallend (Hochwasser, Waldbrand)

Beiden ist gemein, dass ab Punkt 100% sehr häufig Meldungen kommen. Wenn man die Region auf 10km fasst, kann ich mir zeitweise 1/min vorstellen. Angenommen, Abfragefrequenz ist fix 600sec - wäre das DANN zu wenig. Das heißt (ähnlich wie GoogleBot, der sowas auch erkennt), dass das Modul folgende Mimik braucht: Wenn weniger als x Meldungen für meine definierte Region vorliegen, frage ich im vorgegebenen Wert ab (hier angenommen 600sec). Wenn aber mehr als x Meldungen vorliegen, wechselt das Modul und fragt häufiger ab. (Häufiger als 60sec scheint mir aber Quatsch).

Ggf. müsste es sodann ein Attribut geben, welches per Default diese Mimik AUS hat, ich sie aber anstellen kann.

Abschließend muss ich beim Thema fachlich dringend klugsheißern:
Wenn wir über Katastrophen(schutz) sprechen, darf nie mit "das ist unwahrscheinlich" bzw. "das wird nicht auftreten" argumentiert werden! Denn genau das ist im Grunde die Definition von Katastrophe - es war ganz unwahrscheinlich und wir haben es alle nicht erwartet. (Wenn es anders wäre, hieße es Regeldienst und wäre Dienstag vormittag.) [¹]

Wir müssen also genau diese unmöglichen Fälle besonders im Auge behalten. Und da wäre deren Doku wichtig - die sie ja eigentlich (Informationsfreiheitsgesetz!) sowieso rausrücken müssen. Ich würde das übernehmen, wenn @KölnSolar #191 entsprechend beantwortet.
(Danach können wir darüber nachdenken, ob/wie wir Meldungen simulieren.)

P.S: Irgendwann muss das Modul narrensicher werden: Erfahrungsgemäß interessiert sich niemand dafür ... bis es heftig knallt. Dann aber - soll es ganzganz schnell gehen.

PP.S:
[¹] Und eins der Probleme ist, dass man Katastrophen ganz schlecht simulieren kann. Auch das wird eines unserer Probleme werden. - Vorstellbar wäre ein Testserver (der NINA simuliert), und mit dem wir sowas durchspielen können. Aber davon sind wir im Moment noch sehrsehr weit entfernt.
RPI 4 - Jeelink HomeMatic Z-Wave

KölnSolar

ZitatVielleicht wollen wir noch weitere Sachen filtern, wissen das aber jetzt noch nicht.
dachte ich auch schon dran, aber
ZitatNun müsste man erstmal wissen, wie der Definitionskatalog von deren JSON-Inferface eigentlich aussieht - kennst Du den?
ist ja recht simpel. Wir haben MoWaS, Katwarn, Biwapp(letztere gehen vielleicht mal ganz in MoWaS auf ?), dwd und Hochwassergefahren. Alle über eine eigene URL, deren JSON sehr ähnlich aufgebaut ist.
ZitatOder nur den warnlevel auf 0 setzen
Ist natürlich Blödsinn, das bringt ja nachts für die, die dwd komplett abschalten möchten. ::)
Zitatalso ein listen attribut mit 1-3 elementen. und zusätzlich ein "set feed <feed1|feed2|feed3> <on|off>".
Ich mag doch keine Redundanzen. Daher entweder oder.
ZitatDas spricht jetzt erstmal dafür, dass Dein Modul anders ist als die anderen Module.
Da der Aufruf vom UWZ stammt, halte ich dagegen.  ;)
Zitatich stelle mir eine karte mit den geokoordinaten im mittelpunkt vor. drum herum einen kreis eingezeichnet, der automatisch den radius distance hat. der kartenausschnitt/zoom soll dann eventuell 50% mehr darstellen, als die homezone gross ist. zusätzlich sollen dann natürlich noch alle relevanten polygone mit entsprechenden farbflächen zu sehen sein, ähnlich, wie im original. jede fläche hat im idealfall noch eine markierung mit der listennummer, der entsprechenden meldung.
Dann befass ich mich mal näher mit der UWZ-Grafik. Mein Bauch sagt mir, dass das in der gewünschten Ausprägung seeeehr sportlich wird. Aber der Wunsch ist verständlich.
Zitatalso könnte ich eventuell irgend wann noch die polygondaten in einem reading gebrauchen.
Ich glaube nicht, dass wir das wollen. Aus Modulbetreuungssicht angenehm, weil dann lass ich den User selber Karten basteln.  ;D Aber die Detailsansicht ist dann ja aufgrund der Massendaten absolut nicht mehr zu gebrauchen.
ZitatSowohl Deinen Vorschlag als auch den von KölnSolar kann ich jetzt so einfach nicht umsetzen, da fehlt mir Wissen.
Das ist aber gar nicht so wild. frank nutzt RSS und ich den Nachfolger InfoPanel(die Module sind fast gleich, aber InfoPanel verlagert den Grafikaufbau auf das Frontend). Betatteilchen hat einen einfach nachvollziehbaren Thread "workshop zu RSS" erstellt. Durcharbeitung wenige Stunden und danach hat man sich recht fix eigene "messages" aufgebaut.
ZitatIst das im Modul derzeit fest codiert? Oder von mir einstellbar?
im define. In meiner lokalen Version habe ich bereits umgesetzt, dass je nach Warnlage die Zyklen verändert werden können.
ZitatNun kann ich nicht einschätzen, was NINA im Falle des Falles so rausrotzt - weiß aber was damals auf anderen Wegen kommuniziert wurde.
Bisher recht wenig. In der Regel genau eine Warnung. Vielleicht noch Ausdehnungen(Brand,Rauch) auf andere Regionen. Und (manchmal) Entwarnungsmeldungen. Nur dwd wütet permanent.
ZitatUnd eins der Probleme ist, dass man Katastrophen ganz schlecht simulieren kann. Auch das wird eines unserer Probleme werden. - Vorstellbar wäre ein Testserver (der NINA simuliert), und mit dem wir sowas durchspielen können.
Ich glaube Du hast aus Deiner fachlichen Sicht zu hohe Erwartungen an Nina. Ich sehe es "nur" als ersten Trigger.

btw. als Monopolistenhasser, bleibt mir die Nina-App verschlossen.  :'( Hat die jemand installiert und kann wichtige/schöne features beschreiben ?


RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt