7ft8alarm - WSJT/X - DX-Alarm

7ft8alarm ist ein Kommandozeileprogramm für die Text oder aktutische Alarmierung des Benutzer, wenn eine Station mit bestimmten Rufzeichen oder aus bestimmten Regionen erkannt wird.

7ft8alarm verwendet Informationen, die WSJT/X über seine UDP-Server-Verbindung sendet. Es unterstützt die Rückmeldung an WSJT/X. Damit ist ein automatisches Vorbelegen einer CQ-rufenden Station, die den angegebenen Filterbedingungen entspricht möglich.

7ft8alarm arbeitet zusammen mit 7log[2], dem dazu passenden Logprogram

7ft8alarm ist ein Python geschrieben und verwendet die von Brian Moran in auf github veröffentlichten Projekt py-wsjtx. Da Brian nicht das komplette Protokoll implementiert hatte, habe ich dessen Routinen für 7ft8alert erweitert.

Installation

Nach dem Download muss die Datei 7ft8alarm_<version>.tgz mit tar xzvf 7ft8alarm_<version>.tgz an einen beliebigen Ort entpackt werden. Im Anschluss sollte eine symbolischer Link von /usr/bin/7ft8alarm auf die entpackte Datei 7ft8alarm.py erstellt werden.

Bedienung

Alle notwendigen Parameter für 7ft8alarm müssen über die Kommandozeile angegeben werden.

Wenn eine aktustische Alarmierung gewünscht ist, muss diese --ring aktiviert werden. Die Ausgabe erfolgt dabei auf dem Standard-Audiodevice. Sollte dieses Gerät geändert werden, damit es nicht zu Konflikten mit der Soundkarte für WSJT/X kommt, kann das geünschte Device mit --audiodevice <decice>angeben werden. Der Name des gewünschten Geräts kann über aplay -L ermittelt werden.

Mit --ringtone <Name einer wav-Datei> kann ein eigener Klingelton verwendet werden. Der Standardton ist ein einfacher Piepton.

Mit --verbose <level> können die Ausgabe auf der Konsole bestimmt werden. Als Default werden alle erkannten Alarme ausgegeben. Mit 0 kann die Textausgabe unterdrückt werden. Level 2 gibt eine Debuginformationen aus.

--map ermöglicht die Anzeige der Gegenstation im Chromium-Browser auf dem Rasperry PI. Der Browser sollte dazu vor dem Start von 7ft8alert gestartet sein.

Filter

Filter können über die Kommandozeile oder über ein angegeben Filterdatei für öfters verwendete Filter angegeben.

Eine Filterbedingung ist eine Regulärer Ausdruck. Dieses ermöglicht bestimmte Bereiche oder auch einfache Platzhalter zu definieren. Filter können einschließende (positive) oder auschließende (negierende) Filter sein.

Für die positiven Filter muss nur genau der postiven Ausdrücke erfüllt sein. Dieses gilt auch für die negierenden Filter. Sobald einer dieser Filter erfüllt ist, wird das Call nicht berücksichtigt.

Es besteht die Möglichkeit einen bestimmten Bereich zu definieren, aber auch Bereiche auszuschliessen.

Z.B. möchte ich bei alle Stationen aus den Locatorn JO und IO aber ohne Stationen aus JO43 alarmiert werden, kann der Filter wie folgt definiert werden.

--locator [I-J]O !=JO43

Möchte man nur Stationen, die nicht aus Deutschland kommen mit Ausnahme von von Deutschen Klubstationen kann dieses über --call !=D[A-R][1-9] definiert werden. Dabei sind Klubstation alle Stationen, die eine 0 im Call enthalten. Um auf bestimmte Stationen zu warten, können einfach dessen Rufzeichen angegeben werden. --call c56df dp0gvn alarmiert den OP wenn eines der Calls empfangen wird.

Vordefinierte Filter können mit --filter <Dateiname> aus einer Filterdatei eingelesen werden. In der Datei können Zeilen beginnend mit call: oder locator: enthalten sein. Die Zeilen werden die passenden positiven und negierten Filterbedingungen zugeordnet.

Eine einfacher grober Filter, der Stationen aus Europa ausfiltert sieht wie folgte aus.

locator: !=[i-k][m-p]

Dieses kann in einer Datei conf_no_europe.conf gespeichert werden.

Weitere Filteroptionen

--allmsgs kann verwendet werden um das Auftauchen einer DX-Station zu überwachen. Ohne die Angabe werden nur CQ-Rufe für eine Alarmierung für einen Alarm verwendet. Mit der Angabe diese Parameters führen alle Sendungen, die dem Filtern entsprechen zu einem Alarm.

--minsnr <value> definiert einen minimalen SNR bevor ein Alarm für eine Station ausgegeben wird. Wenn die Gegenstation mit relativ hoher Leistung sendet, ich selber aber nur mit QRP, dann kann hier der Schwellwert angegeben werden, bevor ein Alarm ausgegeben wird.

Programmablauf

Beim Start wird ~/.local/share/WSJT-X/wsjtx.log eingelesen, um keinen Alarm für bereits auf einem Band gearbeitete Stationen auszugeben. Das Programm wartet auf die von WSJT/X übergeben Informationen und wendet dann die angegeben Filterbedingungen an. Dazu werden zuerst alle positiven Filter ausgeführt und im Anschluss werden die negierten Filter auf das evtl. gültige Call angewendet. Ist kein positiver Filter angegeben, wird nur der negierte Filter geprüft und damit das Call oder der Locator geprüft.

Wird ein CQ-Ruf von einem gültigen Call erkannt wird das CALL automatisch in WSJT/X eigetragen. Das entspricht dem Click auf dem Call in WSJT/X.

Sobald TX-Enabled gedrückt wird, wird das Call-Eingabefeld nicht mehr überschrieben, bis das QSO abgeschlossen ist.

Ist ein QSO komplett und die Logmaske in WSJT/X bestätigt worden überträgt 7ft8alert das QSO in 7log, wenn dieses Programm installiert ist. Dabei werden Rufzeichen, Frequenz, Locator, Modus, Sende und Empfangs SNR übergeben.

Rechtliches

Copyright Jens Rosebrock, 2020-2022

Das Programm darf von Funkamateuren für den privaten Einsatz frei verwendet werden. Eine kommerzielle Nutzung ist ausgeschlossen.

Die Verwendung des Programms erfolgt auf eigene Gefahr. Der Autor übernimmt keine Haftung für irgendwelche Schäden, die durch die Verwendung des Programms entstehen.

[1] https://github.com/bmo/py-wsjtx.git

[2] https://dg7bbp.darc.de/index.html#7log