Unwetterwarnung ohne E-Mai

  • Hi liebe Forum Experten,

    ich habe die praktische "Unterwetterwarnung ohne E Mail" Phase I teilweise zum laufen gebracht. Für die letzen Anpassungen würde ich mich über Hilfe freuen. Ich bin kein Linux Experte.

    Nach Eingabe dieses Befehls pi@raspberrypi ~ $ sudo /home/svxlink/Wetter/dwd.sh >> /tmp/dwd.log 2>&1 wurden dwd.log, dwd_msg und dwd_msg.old in /tmp und in /var/spool/svxlink/weatherinfo eine .wav und eine .info erzeugt. Wenn ich svxlink starte mit pi@raspberrypi ~ $ sudo svxlink, wird u.a. das Weather Module gestartet. Wenn ich 12# eingebe, wird es auch aufgerufen und es erscheint folgender Fehler:

    SimplexLogic: Activating module WeatherInfo...
    *** WARNING: Could not find audio clip "name" in context "WeatherInfo"
    WeatherInfo: Module activated
    Tx1: Turning the transmitter ON
    Tx1: Turning the transmitter OFF

    Nun, daß es keine Audioansage des eigentlichen Moduls gibt, ist klar, weil im Verzeichnis /usr/share/svxlink/sounds/de_DE nichts liegt.

    1.Aber wor kann es liegen, daß die Audiodatei der Warnung nicht vorgelesen wird?

    Zur Anleitung http://svxlink.de/?page_id=2942 habe ich auch noch Fragen:

    2. Was heißt das "gehört als /home/svxlink/WarnWetter.tcl gespeichert". Soll dwd.sh unter dem Namen WarnWetter.tcl dort gespeichert werden (und unter /home/svxlink/Wetter als dwd.sh? Oder soll in WarnWetter.tcl das Script aus Phase II stehen?

    3. Wenn ich diese Datei Wetter.tcl in /usr/share/svxlink/events.d/local ablege und WarnWetter.tcl mit dem Phase II script in /home/svxlink/ lege, kommt folgender Fehler

    /usr/share/svxlink/events.tcl in logic SimplexLogic: missing close-brace
    *** ERROR: Could not initialize Logic object "SimplexLogic". Skipping...
    *** ERROR: No logics available. Bailing out...

    (weswegen ich Wetter.tcl wieder gelöscht habe).

    4. Habe ich crontab richtig angelegt? Das steht in meiner /etc/crontab Datei:

    # /etc/crontab: system-wide crontab
    # Unlike any other crontab you don't have to run the `crontab'
    # command to install the new version when you edit this file
    # and files in /etc/cron.d. These files also have username fields,
    # that none of the other crontabs do.

    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    # m h dom mon dow user command
    17 * * * * root cd / && run-parts --report /etc/cron.hourly
    25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
    47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
    52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
    #

    */20 * * * * root sudo /home/svxlink/Wetter/dwd.sh >> /tmp/dwd.log 2>&1

    Angaben zum System: Raspberry Pi B+ SvxLink v1.4.99.33, läuft tadellos.

    Danke,

    svxlink-wx

  • Hallo svxlink-wx - hast du auch einen Namen?


    Was heißt dort liegt nichts? Es sollten zumindest die Standard - Soundfiles dort liegen. Das vom Script erzeugte WAV-File wir hierher kopiert:
    /var/spool/svxlink/weatherinfo/$call.$MD5_1.info
    Von dort aus holt sich "Wetterwarnung" die neuen Ansagen und verschiebt sie nach .../sounds/de_DE/WeahterInfo/Archive. Diese Verzeichnis muß natürlich vorhanden sein.
    Es liest sich so, dass die Zugriffsrechte in Deinem System nicht stimmen, da Du alles unter root laufen läßt. Auf die jeweiligen Pfade sollte mindestens der user svxlink zugreifen können. Ich habe mein System so eingerichtet, dass svxlink in der der Gruppe user ist und die relevanten Dateien und Pfade ausserhalb des Homverzeichnis der Gruppe user freigegeben.

    Quote from svxlink-wx


    Zur Anleitung http://svxlink.de/?page_id=2942 habe ich auch noch Fragen:
    2. Was heißt das "gehört als /home/svxlink/WarnWetter.tcl gespeichert". Soll dwd.sh unter dem Namen WarnWetter.tcl dort gespeichert werden (und unter /home/svxlink/Wetter als dwd.sh? Oder soll in WarnWetter.tcl das Script aus Phase II stehen?
    svxlink-wx


    Da war noch ein Schreibfehler in meiner Anleitung, sorry. Es muß heißen : und gehört unter /home/svxlink/Wetter gespeichert,. Ich habe es soeben in der Anleitung korrigiert.

    Quote from svxlink-wx


    3. Wenn ich diese Datei Wetter.tcl in /usr/share/svxlink/events.d/local ablege und WarnWetter.tcl mit dem Phase II script in /home/svxlink/ lege, kommt folgender Fehler

    /usr/share/svxlink/events.tcl in logic SimplexLogic: missing close-brace
    *** ERROR: Could not initialize Logic object "SimplexLogic". Skipping...
    *** ERROR: No logics available. Bailing out...
    svxlink-wx


    Da fehlte noch zum Ende der Prozedur eine "}", ist jetzt auch in der Anleitung ergänzt.

    Quote from svxlink-wx


    4. Habe ich crontab richtig angelegt? Das steht in meiner /etc/crontab Datei:
    ....
    */20 * * * * root sudo /home/svxlink/Wetter/dwd.sh >> /tmp/dwd.log 2>&1
    svxlink-wx

    Der Eintrag muß so aussehen
    */20 * * * * /home/svxlink/Wetter/dwd.sh >> /tmp/dwd.log 2>&1
    Soll es als root laufen, mußt Du den crontab mit "sudo cronatb -e" starten, als normaler user reicht "crontab -e".

    Ich hoffe ich konnte Dir helfen.

  • Danke für die schnelle und ausführliche Antwort Frank!

    Quote from DL7ATA

    Hallo svxlink-wx - hast du auch einen Namen?

    Ja, ich heiße Daniel

    Quote from DL7ATA

    Was heißt dort liegt nichts? Es sollten zumindest die Standard - Soundfiles dort liegen.

    Ich habe nur die englischen Dateien installiert, aber das Verichnis ist angelegt: /usr/share/svxlink/sounds/de_DE/WeatherInfo/Archive

    Quote from DL7ATA

    Das vom Script erzeugte WAV-File wir hierher kopiert: /var/spool/svxlink/weatherinfo/$call.$MD5_1.info

    Das funktioniert auch. Hier liegen zwei Dateien, d.h. die .info und die .wav.

    Quote from DL7ATA

    Von dort aus holt sich "Wetterwarnung" die neuen Ansagen und verschiebt sie nach .../sounds/de_DE/WeahterInfo/Archive. Diese Verzeichnis muß natürlich vorhanden sein.

    Dieser Schritt funktioniert (bei mir) (noch) nicht. Was mache ich falsch?

    Quote from DL7ATA

    Es liest sich so, dass die Zugriffsrechte in Deinem System nicht stimmen, da Du alles unter root laufen läßt. Auf die jeweiligen Pfade sollte mindestens der user svxlink zugreifen können. Ich habe mein System so eingerichtet, dass svxlink in der der Gruppe user ist und die relevanten Dateien und Pfade ausserhalb des Homverzeichnis der Gruppe user freigegeben.

    Das ist vermutlich richtig. Es gibt einen user svxlink, den ich beim svxlink setup angelegt habe (sonst würde das Programm glaube ich nicht funktionieren), aber ich logge mich immer als pi ein. Ich habe aber versucht alle Verzeichnisse und Pfade mit 777 Rechten auszustatten. Hoffe das war richtig?

    Quote from DL7ATA

    Da war noch ein Schreibfehler in meiner Anleitung, sorry. Es muß heißen : und gehört unter /home/svxlink/Wetter gespeichert,. Ich habe es soeben in der Anleitung korrigiert.

    Danke!

    Quote from DL7ATA

    Da fehlte noch zum Ende der Prozedur eine "}", ist jetzt auch in der Anleitung ergänzt.

    Danke, habe ich eingebaut.

    Quote from DL7ATA

    Der Eintrag muß so aussehen
    */20 * * * * /home/svxlink/Wetter/dwd.sh >> /tmp/dwd.log 2>&1
    Soll es als root laufen, mußt Du den crontab mit "sudo cronatb -e" starten, als normaler user reicht "crontab -e".

    Habe es so */20 * * * * /home/svxlink/Wetter/dwd.sh >> /tmp/dwd.log 2>&1 in /etc/crontab eingetragen.

    Bin sehr für jeden Rat und die Hilfe dankbar.

  • Hallo Daniel,

    dann erstmal willkommen im Forum.

    Das Thema Benutzerrechte ist unter Linux nicht ganz trivial. Ich benutze gerne den MidnightCommander mit dem man ganz schnell Chown und Chmod prüfen und anpassen kann. Der erfahrene Terminalist wird hier schmunzeln ...

    Ausschlaggebend für die ganzen Rechte ist, unter welchem Benutzer der (Daemon)Prozess svxlink läuft.
    Aus der Ferne / per Thread alle Parameter durch gehen ist mühsam, das beste ist, sich per ssh-Session auf Deinen Rechner zu schalten.
    Alle relevanten Pfade und Dateien müssen überprüft werden - hat der Benutzer unter dem der (Daemon)Prozess svxlink läuft Lese- und gegebenenfalls auch Schreibrechte?
    Um die generelle Funktion des Moduls zu testen, kannst Du svxlink als root im Terminal starten und die Terminalausgaben prüfen.

    Als Grundeinstellung solltest Du beide Nutzer - svxlink und pi - in die Gruppe "user" eintragen und die Dateien/Ordner für die Grupper "user" freigegen.

    Mehr kann ich aus der Ferne zunächst auch nicht machen.
    Viel Erfolg!

  • Danke für Deine Mühe Frank. Ich schaffe es einfach nicht... Habe zwar zwei user angelegt, aber vermutlich stimmen die Rechte nicht genau. Eigentlich schade, alles andere läuft inklusive METAR. Könntest Du Dich eigentlich remote in meinen RPi / BPi einloggen? (Zugangsdaten könnte man ja per PM austauschen). Der neue BPi M3 ist ja sehr ressoucenstark: http://www.banana-pi.org/m3.html Auch der Zugang zu den Audio Leitungen ist deutlich einfacher, als beim Vormodell. Daniel

  • Hallo Frank,

    ich kling mich mal hier mit ein. Auch ich wollte mal diese Variante testen. Wir hatten ja erst die normale Email-Variante aber es wurden zum Schluss nur Bruchstücke der Mail weiter geleitet.

    Ich habe nun alles so gemacht wie von Dir beschrieben , leider klappt es nicht wirklich. Im /tmp/dwd.log steht nur folgendes :
    /bin/sh: 1: /home/svxlink/Wetter/dwd: not found
    /bin/sh: 1: /home/svxlink/Wetter/dwd: not found

    Ich habe dann gleich vermutet das es vielleicht an einer Router-Einstellung an unserem Standort liegen könnte und habe mal versucht mit folgender Zeile die Meldung abzurufen.

    wget http://www.warnmodul.wettergefahren.de/php/warnings.php?id=OHV

    Er lädt aber die Meldung auf den Raspberry runter.

    Aber warum der andere Weg nicht läuft weiß ich nicht.

  • Hallo Jan,

    ruf doch das Script einfach mal im Terminalmodus auf:
    - gehe in das Verzeichnis mit

    Code
    cd /home/svxlink/Wetter


    - Aufruf mit

    Code
    ./dwd


    Was bekommst Du dort als Ausgabe? Werden Dateien in /tmp angelegt?

    Offensichlich fehlt irgendein Pfad oder ein Benutzerrecht.

  • Hallo Frank,

    jetzt läuft es.
    Komisch ist allerdings das ich direkt bash dwd.sh eingeben muss , ein ./dwd reicht nicht warum auch immer.

    Beim Crontab Eintrag habe ich auch was geändert ist mir jetzt erst aufgefallen das da wohl was fehlt. In der Anleitung steht

    Code
    */20 * * * * /home/svxlink/Wetter/dwd >> /tmp/dwd.log 2>&1

    Ich habe es darauf geändert

    Code
    */20 * * * * /home/svxlink/Wetter/dwd.sh >> /tmp/dwd.log 2>&1

    Zumindest läuft es jetzt und warnte uns gerade vor strengem Frost .

  • Prima Jan, das freut mich.
    Bei mir läuft das Script so, wie auch die Datei heißt, also dwd. Beim Hochladen des Scripts auf den Forumsserver ist daraus, wie es auch von der Nomenklatur korrekt ist, ein dwd.sh geworden. Das Deutet darauf hin, dass es sich um ein Bashscript handelt. So - also als dwd.sh, bzw. Aufruf im Pfad wo es sich befindet als ./dwd.sh - muß es dann auch aufgerufen werden. Ich habe mir mittlerweile angewöhnt, Programme und Scripte inkl. des kompletten Pfadnamens aufzurufen, insbesondere bei Crontab, Scripten etc. Also so, wie Du jetzt auch eingetragen hast.
    Viel Spaß damit!

  • Hallo,

    Ich habe grade das Wetter Warn Modul bei uns am Relais eingebaut,
    Es funktioniert auch aber die Ansage könte lauter sein ich habe schon versucht noch ein Parameter einzubauen aber es endert sich leider nichts.


    audioeffect-full?effect=Volume¶ms=amount:20.0")
    effect_Volume_amount:20.0

    Diese Parameter habe ich z.B ausprobiert aber es wird nichts lauster

    Ich habe es in der Zeile mit eingebaut.

    tM2=$(echo "&OUTPUT_TEXT=AUDIO_OUT=WAVE_FILE&LOCALE=de&VOICE=$voice&AUDIO=WAVE_FIL&audioeffect-full?effect=Volume¶ms=amount:20.0")

    MFG DO7SK- Sven

  • Hallo Sven,

    der Parameter steht an der richtigen Stelle - ist allerdings zu hoch und wird wahrscheinlich dadurch nicht berücksichtigt. Ich habe die Lautstärke mit

    Code
    effect_Volume_parameters=amount%3A1.5%3B

    mit 1.5 um 50% angehoben. Bei 100%, also 2.0, klirrt die erzeute WAV-Datei. Spiel einfach mal mit einer Meldung rum. Das geht unter http://marytts.phonetik.uni-muenchen.de:59125/ gut, mit "Show Audioeffects" kann man dann "Volume" im Feld "amount:2.0;" verändern und sich das Ergebnis gleich anhören.

  • Hallo Frank,

    Ich habe das jetzt mal ausprobiert

    tM2=$(echo "&OUTPUT_TEXT=AUDIO_OUT=WAVE_FILE&LOCALE=de&VOICE=$voice&AUDIO=WAVE_FIL&effect_Volume_parameters=amount%3A4.0%3B")

    aber es ändert sich leider nichts an der Lautstärke...

    73 DO7SK - Sven

  • Hallo Sven,

    Du hast mit dem Parameter die Erzeugung der 4-fachen (!) Lautstärke mitgegeben, das kann nicht gu gehen soweit ich Mary kenne.
    Mach Deine Versuche mit der Ermittlung des Parameters direkt auf der Maryseite und notieren Dir dann den optimalen Parameter für das Script.

    Wenn alle Stränge reissen kannst Du auch mit soX https://wiki.ubuntuusers.de/SoX/ vor der Ausgabe die Lautstärke der generierten Mary-WAV verändern.

  • Hallo Frank,

    Das mit dem Wert 4 wahr nur ein Versuch ob sich was ändert.
    Ich habe auch 1.5 auch 2.0 ausprobiert aber es gibt keinen Veränderung.

    Ich werde das mal mit dem SoX ausprobiren ob das besser geht.

    DO7SK -Sven

  • Hallo Forum,

    ich habe ein kleines Problem mit dem Skript. Wenn ich es auslöse kommt die Meldung : Ungültige Option

    Ich kann das Skript kopieren und in die Kommandozeile einfügen, das löst es aus und die Unwetterwarnungen können abgerufen werden.
    Die Rechte sind entsprechend vergeben.

    Vielleicht kann mir jemand einen Tip geben.

    73 de Frank

  • Hallo Frank,

    Ich habe es mit der Lautstätke endlich zum laufen bekommen es fehlte nur ein Parameter es sieht jetzt so aus.

    &effect_Volume_selected=on&effect_Volume_parameters=amount:1.5;"

    nach dem ich das

    &effect_Volume_selected=on

    mit eingetragen hatte leuft es jetzt.

    73 DO7SK - Sven

  • Quote from DG2GG

    ....Wenn ich es auslöse kommt die Meldung : Ungültige Option
    Ich kann das Skript kopieren und in die Kommandozeile einfügen, das löst es aus und die Unwetterwarnungen können abgerufen werden.
    ...

    Hallo Frank,

    kannst du noch etwas ausführlicher beschreiben, an welcher Stelle du was machst? Was heisst, Du kannst das Script kopieren und in die Kommandozeile einfügen - meinst Du, Du kannst es auf der Kommandozeile ausführen?

  • Quote from DO7SK

    ... leuft es jetzt.

    Gratuliere! Trotz Script und Anleitung dennoch nicht ganz trivial das Ganze aufzusetzen, gell?