dl1hrc / SvxLink-Contributions

Additional stuff for SvxLink
1 stars 0 forks source link

Help for WeatherInfo #1

Open DH3PAE opened 3 years ago

DH3PAE commented 3 years ago

I have make some Experiments on my Computer for running Weatherwarning without Mail In home/svxlink there is a file with Name WarnWetter.tcl with the following content

/home/svxlink/WarnWetter.tcl

aktuelle Uhrzeit ermitteln

set now [clock seconds]; set hour [clock format $now -format "%H"]; set minute [clock format $now -format "%M"];

das hier macht aus "08" Minuten "8" Minuten

scan $hour %d hour; scan $minute %d minute;

eigene Ausgabezeiten definieren:

zur 20. Minute einer ohne Teilungsrest durch 6

teilbaren Stunde erfolgen, also um 0:20, 0:40,1 :00 etc.

set interval 20;

hier prüfen ob Ausgabekriterium erreicht ist

if {($minute % $interval) == 0 } {

set dir "/usr/share/svxlink/sounds/de_DE/WeatherInfo/archive" set file_list [glob -nocomplain "$dir/*"]

if {[llength $file_list] != 0} {

 # puts "Ausgabe Wetterwarnung-> Minute: $minute , Interval: $interval";
 set iterations 20;
 set base 2;
 set max [expr {pow($base, $iterations)}];
 for {set i $iterations} {$i>0} {set i [expr $i - 1]} {
   playTone 440 [expr {round(pow($base, $i) * 150 / $max)}] 100;
   playTone 510 [expr {round(pow($base, $i) * 150 / $max)}] 100;
 }

 WeatherInfo::getNumberOfRecords;
 } else {
 # puts "nix neues vom Wetter..."

} }

under home/svxlink/Wetter there is a file with Name dwd.sh this will be startet per cronjob every 30 Minutes this is creating in the folder /tmp a file with the name dwd.log2 (its empty)

under usr/share/svxlink/events.d there is a file with Name WeatherInfo.tcl under usr/share/svxlink/events.d/local there is a file with Name Wetter.tcl and locale.tcl under usr/share/svxlink/modules.d there ar more files but i have coppied the file ModuleWeatherInfo.tcl under usr/share/svxlink/sounds/de_DE/Weatherinfo there is a folder with the name /archive but its empty

When i now start svxlink with restart the comes the following mistake:

dh3pae@weewx-reserve:~$ systemctl restart svxlink.service ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Legitimierung ist zum Neustarten von »svxlink.service« notwendig. Authenticating as: dh3pae,,, (dh3pae) Password: ==== AUTHENTICATION COMPLETE ===

dh3pae@weewx-reserve:~$ tail -f /var/log/svxlink Mon Jan 18 13:30:19 2021: *** WARNING: Calling deprecated TCL event handler addTimerTickSubcriber. Mon Jan 18 13:30:19 2021: Use addMinuteTickSubscriber instead Mon Jan 18 13:30:19 2021: SimplexLogic: Event handler script successfully loaded. Mon Jan 18 13:30:19 2021: Connected to APRS server 85.90.180.26 on port 14580 Mon Jan 18 13:30:19 2021: EchoLink directory status changed to ON Mon Jan 18 13:30:35 2021: --- EchoLink directory server message: --- Mon Jan 18 13:30:35 2021: EchoLink Server v2.5.9997 Mon Jan 18 13:30:35 2021: Mon Jan 18 13:30:35 2021: ECHOEC2-1: Herndon, VA USA Mon Jan 18 13:30:35 2021:

Please Help where can be my mistake??

dl1hrc commented 3 years ago

Mon Jan 18 13:30:19 2021: *** WARNING: Calling deprecated TCL event handler addTimerTickSubcriber. Mon Jan 18 13:30:19 2021: Use addMinuteTickSubscriber instead

Which SvxLink version do you have installed?

DH3PAE commented 3 years ago

Hallo mein liéber, ich habe die neueste nach der letzten Änderung das ist die 42 am Ende. Habe festgestellt mir fehlt auch noch eine conf.datei und zwar ModuleWeatherModule.conf

DH3PAE commented 3 years ago

Habe mir das alles von svxlink.de und mit DL7ATA erarbeitet, es müssten die neuesten Dateien sein. Muss ich denn in der svxlink.conf auch noch ein Modul laden z.B. ModuleWeatherInfo, und wenn ja wo bekomme ich das??

DH3PAE commented 3 years ago

--- EchoLink info message received from DH3PAE --- Mon Jan 18 15:46:46 2021: SvxLink 1.7.99.42 - DH3PAE-L (1)

DH3PAE commented 3 years ago

You can send me all files how i need to my mailadress call@web.de

I am always interesting to your Traffic Modul

dl1hrc commented 3 years ago

dann hast Du aber noch irgendwo alte Dateien oder locale Änderungen, denn die Prozedur addTimerTickSubcriber wird so nicht mehr verwendet. Möglicherweise liegt es auch an der Anleitung auf der svxlink.de-Seite. Die Infos auf svxlink.de dort werden nicht mehr gepflegt.

Aus Logic::addTimerTickSubscriber WarnWetter; ist Logic::addMinuteTickSubscriber WarnWetter;

Ich muß da erst mal wieder nachlesen wie das ging, ist ja gefühlt eine halbe Ewigkeit her. Das hier funktioniert eigentlich als eMail-Pushservice und damit ertwas anders als das von Frank erstellte. Trafficinfo geht leider nicht mehr, da der Online-Dienst, der die Infos als Textnachricht bereitgestellt hat eingestellt wurde. Esist leider ein Katz- und Mausspiel.

DH3PAE commented 3 years ago

Hallo Adi,

ja lass dir Zeit, ich gebe mir echt Mühe, treffe aber leider immer wieder auf falsche und alte Links, kein Vorwurf an dich.

Du sag mal ich habe ein Python script, das läuft per cronjob alle 5 Minuten und sucht nach Warnnachrichten für den Kreis Euskirchen.

Das starte ich per cron und es legt alle 5 Minuten eine warn.txt in /tmp ab. Kann man das nicht einfach in eine wav.-Datei umwandeln und per DTMF abrufen via Svxlink.

Kann ich eigene DTMF Töne mit Zahlencodes irgendwo erstellen?

Hintergrund ist:

Ich möchte das SVXLINK jede 30 Minuten die Warnmeldung falls vorhanden ausgibt. Wenn keine vorhanden ist kommt eine Ansage zur Zeit keine Warnung aktiv System ist in Bereitschaft weitere Warnungen werden angesagt.

Oder der OM der auf meinem Link local Abfragen macht könnte zum Beispiel mit dem DTMF Code 110 die Warnung selbst abrufen.

Schau mal hier: ist in Python geschrieben:

! /usr/bin/env python2.7

-- coding: utf-8 --

MAIN_URL = "https://wettwarn.de/txt/EUS.html"

MAIN_URL = "https://wettwarn.de/txt/HBX.html"

MAIN_URL = "https://wettwarn.de/txt/HAX.html"

MAIN_URL = "https://wettwarn.de/txt/OAL.html"

MAX_WARN_ITEMS = 10 # Maximale Anzahl an Warnungen verarbeiten

OUTPUT = "/tmp/warn.txt"

ERRORS = "/tmp/pynrw_errors.txt" # Fehlerausgabe in errors.txt

TIMEOUT = 60 # hoechstens 60 Sekunden auf die Daten warten

################################################## ######

################################################## ######

from HTMLParser import HTMLParser

from urllib2 import urlopen

import logging

import codecs

LOG_FORMAT = "%(asctime)s %(levelname)s: %(filename)s : %(message)s"

DATE_FORMAT = "%d.%m.%Y %H:%M:%S"

logging.basicConfig(filename=ERRORS, format=LOG_FORMAT, datefmt=DATE_FORMAT)

class SimpleHTMLParser(HTMLParser):

    def __init__(self):

            HTMLParser.__init__(self)

            self.parse = False

            self.parse_details = False

            self.parse_short_only = False

            self.table_count = 0

            self.data = []

            self.last_block = ""

    def handle_entityref(self, name):

            if self.parse and name == 'deg': # HTML-Codierung fuer ° 

                    self.data.append(' °') 

    def handle_starttag(self, tag, attrs):

            if tag == 'h2':

                self.parse = True

            # Details nur für die erste Meldung

            elif tag == 'table':

                self.table_count += 1

                if self.table_count == 2:

                    self.parse_details = True

                else:

                    self.parse_short_only = True

                    self.parse_details = False                

    def handle_endtag(self, tag):

            if tag == 'h2':

                self.parse = False

            elif tag == 'table':

                self.parse_details = False

                self.parse_short_only = True

            elif tag == 'td' and self.parse_short_only and self.last_block:

                self.data.append(self.last_block)

                self.last_block = ""

    def handle_data(self, data):

        if self.table_count < MAX_WARN_ITEMS+1:

            if self.parse or self.parse_details:

                    self.data.append(data)

            elif self.parse_short_only:

                self.last_block = data

def main():

    try:

            url = MAIN_URL

            parser = SimpleHTMLParser()

            parser.feed(urlopen(url, timeout = TIMEOUT).read())

            wortfilter = ["für", "gültig von","Detaillierte Warninformationen erhalten"] # = []

            ersatzfilter = [ ("m/s", " Meter pro Sekunde "),

                            ("km/h", " Kilometer pro Stunde "),

                            ("kn,", " Knoten, "),

                            ("Bft ", " Boofor-Skala Wert "),

                            ("1 Warnung", "Eine Warnung"),

                            ("1 Hinweis", "Ein Hinweis"),

                            ("\r\n", ''),

                            ("..\n",".\n"),

                            ("\n.\n", "\n\n"),

                          ]          

            data = ".\n".join([line for line in parser.data 

                                            if line != ' ' and not filter(line.startswith, wortfilter)])

            for old, new in ersatzfilter:

                data = data.replace(old, new)

            if "Keine Warnungen für" in data:

                    data = "Zur Zeit liegen keine Warnungen für den Kreis Euskirchen vor , das System ist jedoch in Bereitschaft, neue Wetterwarnungen werden angesagt."

            with codecs.open(OUTPUT, 'w', "utf-8") as output:

                output.write(data.decode('utf-8'))

    except Exception as ex:

            logging.critical(str(ex))

main()

Danke dir für jede Hilfe.

Von: Adi Bier notifications@github.com Gesendet: Montag, 18. Januar 2021 16:03 An: dl1hrc/SvxLink-Contributions SvxLink-Contributions@noreply.github.com Cc: DH3PAE wolken2019@web.de; Author author@noreply.github.com Betreff: Re: [dl1hrc/SvxLink-Contributions] Help for WeatherInfo (#1)

dann hast Du aber noch irgendwo alte Dateien oder locale Änderungen, denn die Prozedur addTimerTickSubcriber wird so nicht mehr verwendet. Möglicherweise liegt es auch an der Anleitung auf der svxlink.de-Seite. Die Infos auf svxlink.de dort werden nicht mehr gepflegt.

Aus Logic::addTimerTickSubscriber WarnWetter; ist Logic::addMinuteTickSubscriber WarnWetter;

Ich muß da erst mal wieder nachlesen wie das ging, ist ja gefühlt eine halbe Ewigkeit her. Das hier funktioniert eigentlich als eMail-Pushservice und damit ertwas anders als das von Frank erstellte. Trafficinfo geht leider nicht mehr, da der Online-Dienst, der die Infos als Textnachricht bereitgestellt hat eingestellt wurde. Esist leider ein Katz- und Mausspiel.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/dl1hrc/SvxLink-Contributions/issues/1#issuecomment-762305017 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ASNKGJQ2LWR4I2J6FHXQ24TS2RETVANCNFSM4WHHY2GQ . https://github.com/notifications/beacon/ASNKGJXBC33IR7YTZ74C273S2RETVA5CNFSM4WHHY2G2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFVX5T6I.gif

DH3PAE commented 3 years ago

Ja das sind in der Tat alte Dateien von SVXLINK.

Dann werfe ich das alles mal wieder herunter .

73 de Stefan DH3PAE

http://www.eichenwetter.homelinux.net

Von: Adi Bier notifications@github.com Gesendet: Montag, 18. Januar 2021 16:03 An: dl1hrc/SvxLink-Contributions SvxLink-Contributions@noreply.github.com Cc: DH3PAE wolken2019@web.de; Author author@noreply.github.com Betreff: Re: [dl1hrc/SvxLink-Contributions] Help for WeatherInfo (#1)

dann hast Du aber noch irgendwo alte Dateien oder locale Änderungen, denn die Prozedur addTimerTickSubcriber wird so nicht mehr verwendet. Möglicherweise liegt es auch an der Anleitung auf der svxlink.de-Seite. Die Infos auf svxlink.de dort werden nicht mehr gepflegt.

Aus Logic::addTimerTickSubscriber WarnWetter; ist Logic::addMinuteTickSubscriber WarnWetter;

Ich muß da erst mal wieder nachlesen wie das ging, ist ja gefühlt eine halbe Ewigkeit her. Das hier funktioniert eigentlich als eMail-Pushservice und damit ertwas anders als das von Frank erstellte. Trafficinfo geht leider nicht mehr, da der Online-Dienst, der die Infos als Textnachricht bereitgestellt hat eingestellt wurde. Esist leider ein Katz- und Mausspiel.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/dl1hrc/SvxLink-Contributions/issues/1#issuecomment-762305017 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ASNKGJQ2LWR4I2J6FHXQ24TS2RETVANCNFSM4WHHY2GQ . https://github.com/notifications/beacon/ASNKGJXBC33IR7YTZ74C273S2RETVA5CNFSM4WHHY2G2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFVX5T6I.gif