Sundtek Support Forum
Deutsch => Sundtek DAB/DAB+/FM/FM HD => Thema gestartet von: ckleinknecht am Juli 30, 2018, 07:06:29 Nachmittag
-
Hallo,
lt. dem DAB HowTo kann ich ja mit dem Mediaclient:
- die Frequenzen scannen und
- die DAB Services scannen.
Soweit ich das verstanden habe muß ich zuerst die Frequenz tunen und dann
mit dem Befehl
# /opt/bin/mediaclient -m DAB -f 194064000 --sid 0xd321
den entsprechenden Service abspielen. Soweit bekomme ich das manuell auch hin. Mit aplay kommt dann richtig Musik auf dem Raspberry.
Aber die Zuordnung:
gefundene Frequenzen zu gefundene Service iDs
habe ich bisher nur durch Try and Error hinbekommen. Da ich aber eventuell ein eigenes Frontend bauen möchte stellt sich die Frage:
Gibt es einen, von mir übersehenen, Befehl im mediaclient, der den Frequenzen die SIDs zuordnen kann? Denn die Services scheinen nicht auf allen gefundenen Frequenzen zu funktionieren.
Gruß Christoph
-
Hallo,
die Services sind mit der jeweils eingestellten Frequenz verknüpft.
Eine Frequenz enthält mehrere DAB Services (bei uns in Berlin sind einige Sender auch doppelt auf verschiedenen Frequenzen vorhanden).
Erklärt dass Deine Frage?
Ich hoffe dass wir unseren Qt-Player demnächst auch freigeben können dann kann man den Tuner auch einfach mit der Maus steuern. Ein Plugin für Kodi ist auch in Arbeit.
-
Hallo,
nicht ganz. Auch bei uns ist es so, daß die Services auf 2 von 3 Frequenzen laufen.
Da ich das aber nicht für ganz Deutschland im voraus weiß, wäre es gut, wenn ich z.B. die Frequenzen auf verfügbare Services abscannen könnte.
Bisher scanne ich die Frequenzen und danach die Services separat.
Die Verknüpfung zwischen Frequenzen und Services fehlt mir, da ich ja erst die passende Frequenz einstellen muß, bevor ich den Service abspielen kann.
Bewege ich mich in Deutschland, wäre es gut, wenn ich das finden und einstellen automatisieren könnte. (Also wenn ich Sender SWR1 abspielen will, stelle erst die passende Frequenz und dann den Service ein).
Gruß Christoph
-
Was ist das Problem mit dem Scannen der Frequenzen?
Das ließe sich ja mit einem Skript automatisieren.
Zuerst die Frequenzen scannen - die Frequenzen wo etwas gefunden wurde in eine Liste geben und danach diese Frequenzen nach Services scannen.
Eventuell auch noch die Signalstärke auslesen um dann die jeweils beste Frequenz für den jeweiligen Sender verwenden.
Kann mir das heute im Laufe des Tages noch ansehen und ein Beispielskript hier online stellen.
/opt/bin/mediaclient --scandabfrequencies > /tmp/scannedfreqs.log
cat /tmp/scannedfreqs.log | while read a b c;
do
# überprüfe ob die Zeile [LOCKED] enthält
if [ "$a" = "[LOCKED]" ]; then
echo $freq $a $b;
# stelle Tuner auf die letzte Frequenz vor dem [LOCKED]
/opt/bin/mediaclient -m DAB -f $freq
# 10 mal die Signalstärke auslesen (eventuell in einer Datenbank hinterlegen)
/opt/bin/mediaclient --readsignal=10 -d /dev/dab0
# scanne DAB Services:
/opt/bin/mediaclient --scandabservices -d /dev/dab0
# die Ausgabe von scandabservices kann wiederum mittels pipe
# irgendwo ausgelesen und in eine Datenbank geschrieben werden.
# Die jeweilige Frequenz ist in der Variable $freq hinterlegt
else
# Filtere aktuelle Frequenz
freq=$(echo $c | awk '{ print $2 }');
fi;
done
Hilft die Antwort weiter?
-
Hallo,
danke für die Antwort.
Das mit der Variablen $freq hat mir gefehlt. Wenn ich --scandabservices auf der Konsole ausführe wird die Frequenz in der Ausgabe nicht angezeigt, deshalb habe ich die Frage aufgemacht :).
Werd ich morgen (...nach menschlichem Ermessen...) gleich testen mit dem Beispielskript (hab Zuhause leider keinen Empfang...) und Rückmeldung geben.
Danke dafür.
Gruß Christoph
-
Hallo,
hat ein bisschen länger gedauert bis ich es testen konnte. Hab das Skript wie folgt umgebaut:
/opt/bin/mediaclient --scandabfrequencies /dev/dab0 > /tmp/scannedfreqs.log
#echo "frequenzen gescannt"
cat /tmp/scannedfreqs.log | while read a b;
do
# überprüfe ob die Zeile [LOCKED] enthält
if [ "$a" == "[LOCKED]" ]; then
echo $freq $a $b;
/opt/bin/mediaclient -m DAB -f $frequenz
/opt/bin/mediaclient --readsignal=2 -d /dev/dab0
echo "Hier sollten die Services gescannt werden";
echo "Frequenz ist" $frequenz
/opt/bin/mediaclient --scandabservices /dev/dab0 | awk -v frequenz=$frequenz '{gsub(/ /,"."); print $1, $2, frequenz }' >> /home/pi/scannedservices.log
else
# Filtere aktuelle Frequenz
frequenz=$(echo $b | awk '{ print $1 }');
fi;
done
und bekomme als Ergebnis eine Datei mit folgendem Inhalt:
Service.Name,.Service.ID,.Component.ID 208064000
EPG............. 0xe0d010c9 208064000
TPEG............ 0xe0d020eb 208064000
SWR4.S.......... 0xd904 208064000
SWR4.KA......... 0xd804 208064000
SWR4.MA......... 0xdc04 208064000
SWR4.HN......... 0xdd04 208064000
SWR4.UL......... 0xde04 208064000
DASDING......... 0xd3a5 208064000
SWR3............ 0xd3a3 208064000
SWR2............ 0xd3a2 208064000
SWR1.BW......... 0xd301 208064000
SWR.Aktuell..... 0xd3a6 208064000
Service.Name,.Service.ID,.Component.ID 222064000
RADIO7.......... 0xd30b 222064000
BuergerMedien-BW 0x1d07 222064000
RADIO.TEDDY..... 0x1b2e 222064000
ROCK.ANTENNE.... 0xd319 222064000
antenne1........ 0xd30a 222064000
egoFM........... 0x1014 222064000
HITRADIO.OHR.... 0xd40d 222064000
RADIO.REGENBOGEN 0xd308 222064000
DONAU3FM........ 0xda08 222064000
die.neue.welle.. 0xd50c 222064000
RadioTon........ 0xd70d 222064000
bigFM........... 0x100f 222064000
REGENBOGEN.2.... 0xd30e 222064000
baden.fm........ 0x1702 222064000
DIE.NEUE.107.7.. 0x130a 222064000
Schwarzwaldradio 0x100d 222064000
Dies ist ungefähr das, was ich haben wollte. Wenn noch jemand weiß, wie man es noch schöner machen kann - ich lerne gerne dazu.
Vielen Dank nochmal an Sundtek für die schnelle und ausführliche Hilfe.
Von meiner Seite aus ist die Frage vollständig beantwortet.
Muß/kann ich den Thread irgendwie schließen?
Gruß Christoph
-
Der Beitrag kann hier so offen bleiben - falls jemand später eine Frage diesbezüglich hat kann er/sie es hier anhängen.