Playercheck.sh

Triodes Squeeliteplayer hat ein kleineres Problem, wenn längere Zeit kein Stream gesendet wird. Daher habe ich diesen Workaround geschrieben, der mittels netcat-traditional den LMS Server ausliesst und die Player bei Bedarf ausschaltet.

Werden danach Tracks an den Player gesendet, schaltet dieser sich automatisch wieder ein (LMS standard).

  • chmod +x nicht vergessen 😉

Leider werden die Einrückungen (Tabs) aus dem Script hier nicht übernommen 🙁


#!/bin/bash
## check if any player is playing
## and restart squeezelite if timetoplay is equal on both checks
##vars
port=9090
server=localhost

# use a fresh logfile
mv /tmp/playercheck.log /tmp/playercheck.txt
echo "$(date)">/tmp/playercheck.log
sensors|grep 'Core 0' |awk '{print $3}'|cut -b2,3,4,5,7>>/tmp/playercheck.log

# get number of known players
players=$(printf "player count ?\nexit\n" | nc $server $port | cut -d ' ' -f 3)

## check all known players
for((i=0; i<$players; i++))
do
playerID=$(printf "player id $i ?\nexit\n" | nc $server $port | cut -d ' ' -f 4 | sed 's/%/%%/g')
playermodel=$(printf "player model $i ? \nexit\n" | nc 127.0.0.1 9090 |cut -d ' ' -f 3)

if [ !$playermodel = squeezelite ]
   then
echo Player Nr. $i is not a squeezelite Session>>/tmp/playercheck.log
else
playername=$(printf "$playerID name ?\nexit\n" | nc $server $port | cut -d ' ' -f 3)
playermode=$(printf "$playerID mode ? \nexit\n" | nc 127.0.0.1 9090 |cut -d ' ' -f 3)
if [ $playermode = pause ]
then
grep $playername:$playermode /tmp/playercheck.txt && printf "$playerID power 0 \nexit\n" | nc $server $port
echo $playername:$playermode>>/tmp/playercheck.log
else
timetoplay1=$(printf "$playerID time ?\nexit\n" | nc $server $port | cut -d ' ' -f 3)
echo "$playername:Playtime:$timetoplay1">>/tmp/playercheck.log
timetoplay2=$(printf "$playerID time ?\nexit\n" | nc $server $port | cut -d ' ' -f 3)
if [ $timetoplay1 = $timetoplay2 ]
then
echo no difference between 1st and 2.nd check
timetoplay3=$(printf "$playerID time ?\nexit\n" | nc $server $port | cut -d ' ' -f 3)
if [ $timetoplay1 = $timetoplay3 ]
then
printf "$playerID power 0 \nexit\n" | nc $server $port
fi
else
echo "$playername is playing nothing 2do 4me">>/tmp/playercheck.log
fi
fi
fi
done

squeezelitechecker.sh

Ich benutze squeezelite unter Debian und hab (bin wohl nicht ganz alleine damit) ein paar Probleme, wenn squeezelite ein paar minuten/Stunden nur auf einen Stream wartet und nichts abspielt.

Dann stürzt es einfach ab.

Dieses Script war im Betastatus, die elegantere Variante findet sich Hier
und auch im slimdevices Forum

Raspberry Bilderrahmen

Die 1.024 Neuauflage der Idee, einen Raspberry mit einem digitalen Bilderrahmen zu vereinen… (oder doch nicht?)

Man(n) nehme einen Raspberry und einen Bilderrahmen – so weit so alt die Thematik, aber diesmal wird alles anders.

Anstatt wie im anderen Projekt den Pi unsichtbar zu verstecken wird dieser diesmal „offensichtlich“ versteckt 😉

Sowas hatte ich vor gefühlten 20 Jahren schon mal gemacht, mir ging der damalige Kabelverhau von TAE Dose zu DSL Konverter zu DSL Modem (und so weiter) so tierisch auf den senkel, dass ich das ganze mal auf ein gerahmtes Holzbrett als funktionierendes beschriftetes Schaubild an die Wand gehängt hatte. Damals haben fast alle Freunde zuerst das Kunstwerk angesehen, sich dann (meistens) schmuzelnd über die kranke Kunst ausgelassen, aber das es sich dabei um tatsächlich funktionierende Technik handelte dauerte immer etwas länger 😉
Ok – damals war ich wirklich „krank“ – die ganzen Kabel unterputz in Leerrohren verlegt und das in einer Mietswohnung – würd ich heute nieeeeee mehr machen…

Dieser wird wohl nach ausgiebiger Väterlicher Testphase im Kinderzimmer als „Conni mit der Schleife im Haar Spüler in der Endlosschleife“ enden 😉

Zurück zum Thema:
Fast Ideal ist der Bilderrahmen Ribba von Ikea – Kostenpunkt fümpf maak T€uro – hat aber leider ein Echtglas.

Ikea Bilderrahmen ribba
Ikea Bilderrahmen ribba

Ausser dem Rahmen brauchts noch 2 M3 Schrauben in ~30 mm länge (ich hab erstmal 40 mm genommen – immer frei nach dem Motto schon 3* abgesägt und immer noch zu kurz) und wers mag noch ein paar Kupfer Hutmuttern.

Der Pi läuft als squeezelite Player ein vcgencmd measure_temp liefert im laufenden Betrieb (ohne Kühlkörper und oder Lüftungslöcher im Rahmen in beheizter Umgebung) zwischen 42.8’C und 46.4’C. Währen einer ssh Session steigt die Temperatur etwas an – aber als reiner Softwareplayer passt das.

Was noch auf der 2do Liste stehtand:
Wlan ist etwas eingeschränkt (gegenüber offen ~5 Meter weniger – also in der Wohnung knapp die Hälfte der vorher möglichen Distanz verloren) – wird entweder

  • über ein Plexiglasscheibe
  • über einen Wlan Adapter mit externer Antenne
  • verlegen eines USB Ports nach „aussen“

oder durch Idee #4 gelöst.

Ein 20*4 Zeichen HD44780 kompatibles Display mit blauen LEDs (hat leider bisher den Weg noch nicht zu mir gefunden – geistert seit Wochen durch die div. Packetstationen). Wenn vorhanden (und montiert) gibts ein Update.
Jedoch bin ich mir noch nicht sicher, wie sich das Display und die höhere Prozessorlast um es mit aktuellen Daten zu füttern auf das unbelüftete Gehäuse auswirkt. Vielleicht muß ich dann einen Rahmen um das Passepartout bauen, um die beiden thermisch voneinander zu trennen.
Auch bin ich mir noch nicht ganz sicher, ob ich das Display sichtbar über die Steckleisten der GPIOs oder auf der Rückseite der Platine unsichtbar…

  • evtl ein zweiter identischer Bilderrahmen und die Boxen Lautsprecher noch „hybsch“ zu verstecken. (Ohne Witz – die Soundbar hat gute Küchenradio qualität und ist auch ohne zusätzliche Stromversorgung direkt am Pi betrieben ziemlich laut)

Als Bauteile habe ich bisher diese verwendet:

  • Ikea RIBBA Bilderrahmen
  • Raspberry Pi Rev2 512
  • Raspbian (/var/log und /tmp auf Ramdisk gemountet) auf einer (gekürzten) Sandisk 8 Gb
  • Squeezeliteplayer (mit ein paar Scripten)
  • Cabstone USB Soundbar (USB DAC mit 6 Watt Miniverstärker und zwei Lautsprechern)
  • EDIMAX EW-7811UN Wlan Adapter
  • „Original“ Iphone G2 Ladegerät – Sowohl das WLAN als auch der DAC ziehen kräftig – hier gilt – bloss nix sparen (ausser Ärger) und wenn nicht vorhanden – lieber im Apfelschuppen kaufen, als ohnlein.
  • 2 Schrauben M3x 40mm (gekürzt) mit Hutmuttern
  • 2 Messing Abstandshülsen mit Innen und Aussengewinde (waren früher bei jedem Leer Computergehäuse dabei)
Raspberry Bilderrahmen Fertig
einfach und schlicht
Raspberry Bilderrahmen
Raspberry Bilderrahmen