Hallo Leutz!
Ich (Anfänger) hab mich mal an ein Projekt rangewagt und bin schon ganz stolz auf mich, dass es nach diversen Stunden Arbeit funktioniert. Undzwar habe ich mir mit meiner Pi ein webradio für die morgentliche Beschallung gebastelt. Hierzu habe ich mir das 2015-02-16-raspbian-wheezy.img runtergeladen und dann mpd/mpc istalliert.
Für die Radiosender habe ich mir dann eine Playlist erstellt und steuern tue ich das über eine eigens angefertigte index.html mit php-scripts zur Auswahl der Streams und Laustärkesteuerung. Die Tonausgabe erfolgt über Bluetooth (ein Krampf, aber jetzt geht es :-)) :thumbs1:
Im Netz hängt die Pi via Edimax WLAN-Adapter.
Nun zu meinem eigentlichen Problem.
Ich möchte, dass die Playlist beim Start automatisch eingelesen wird und ein bestimter Sender gestartet wird, wenn die Pi morgens hochfährt.
Hierzu habe ich mir eine bash script geschrieben und hier abgelegt:
/home/pi/mpc_start.sh
Folgender Inhalt:
mpc clear
mpc load sender
mpc play 1
Das ganze habe ich dann in der rc.local für den autostart eingetragen.
Die Playlist wird auch ordnungsgemäß geladen, aber der Stream nicht gestartet. mmh
So wie es aussieht, ist das aber nur der Fall, wenn ich das ganze über WLAN nutze. Sobald ich am LAN hänge funktioniert es einwandfrei. Edit: war wohl nur Zufall, ebend ging es so auch nicht!
Ich vermute daher, das einfach keine Netzwerkverbindung aktiv ist, wenn das Skript läuft und daher der Start nicht erfolgt.
Wie schaffe ich es, dass das erst läuft, wenn die Netzwerkverbindung da ist?
Hab schon so viel recherchiert, aber werde da einfach nicht schlau draus und will mir die müsame Arbeit ja nicht kaputt machen.
Einige schreiben ich soll ein sleep(30) einbauen. Oder so
(/bin/sleep 30 && /home/pi/mpc_start.sh restart)?
Frage ist aber wo schreib ich das rein und so richtig sinnvoll erscheint es mir nicht, da der boot eh schon sehr lange dauert.
Andere schreiben wieder ich soll es mit einem Ping versuchen...Auch hier die Frage: wann? wo? wie? :s
while ! grep -q /net/somenode/somedir </proc/mounts; do
sleep 1
done
Das sieht mir noch komplizierter aus.
Es muss doch die Möglichkeit geben das ganze zu starten, nachdem die Anmeldung im Netzt erfolgt ist?! Vielleicht ist das Skript ja nur an der falschen Stelle?
Was meint Ihr? Danke schon mal für den support.