Einzelne Radios ab einer bestimmten Uhrzeit sperren

floppybox
Beiträge: 4
Registriert: 5. Februar 2019 20:02
SqueezeBox: Touch
SqueezeBox: Radio
SqueezeBox: Boom
SqueezeBox: SqueezePlay
SqueezeBox Server läuft auf: Raspberry Pi

Einzelne Radios ab einer bestimmten Uhrzeit sperren

Beitrag von floppybox » 5. Februar 2019 20:51

Hallo Ihr,

kennt jemand eine Möglichkeit, einzelnen Radios ab einer bestimmten Uhrzeit den Zugriff auf den LMS zu verweigern?

Hintergrund:
Ich habe hier zwei Kinder, die am liebsten die ganze Nacht mit "Harry Potter gelesen von Rufus Beck" verbringen.
Meistens schlafen sie ein, bevor Lord Voldemort auftritt, aber Rufus Beck liest tapfer weiter und weiter und weiter.

Ich würde meinen Kurzen gerne einfach sagen, dass ab 20:00 Uhr ihr Radio keinen Zugriff mehr auf den Server hat und es am Morgen dann automatisch wieder geht. Das würden sie auch verstehen.

Aktuell habe ich auf meinem Raspberry Pi, auf dem der LMS läuft, mit

sudo crontab -e

00 20 * * * sudo service logitechmediaserver stop
00 21 * * * sudo service logitechmediaserver start

den Server ausgeschaltet und eine Stunde später wieder einschaltet.
Das klappt zuverlässig, aber die beiden anderen (großen) Kinder verstehen da natürlich gar keinen Spaß, wenn Ihr Radio dann auch für eine Stunde aus ist.

Daher meine Frage an Euch, ob es einen Weg gibt, einzelne Radios für bestimmte Zeiten zu sperren.

Nachtrag:
Eine Alternative wäre ein eigener Raspberry Pi, auf dem ein eigener LMS läuft und den ich dann die ganze Nacht ausschalten könnte.
Das habe ich tatsächlich gerade bei mir eingerichtet, aber jetzt kann man am Radio einfach die Musiksammlungen umschalten...
Da kommen meine findigen Kinder leider früher oder später auch drauf...
Zuletzt geändert von floppybox am 6. Februar 2019 20:07, insgesamt 1-mal geändert.

JoeMod2015
Doktor Squeezebox
Beiträge: 139
Registriert: 6. Oktober 2015 17:12
SqueezeBox: Transporter
SqueezeBox: Boom
SqueezeBox: Classic
SqueezeBox Server läuft auf: Windows 2008 R2 Server

Re: Einzelne Radios ab einer bestimmten Uhrzeit sperren

Beitrag von JoeMod2015 » 6. Februar 2019 12:18

Mit CLI könnte das gehen. Das ist normalerweise auf dem Logitech Media Server der Port 9090, mit dem man sich via Telnet verbindet. Dort kannst Du dann folgenden Befehl absetzen:

Code: Alles auswählen

00:04:20:xx:xx:xx sleep {n}
Wobei xx:xx:xx durch die zweite Hälfte der MAC-Adresse des gewünschten Players zu ersetzen ist und {n} durch die Anzahl Sekunden, bis der Player in den Standby-Modus geht. Die Lautstärke wird langsam ausgefadet.

Also müsste ein CRON-Job nur diese Telnet-Verbindung zur gegebenen Uhrzeit kurz aufnehmen, den Befehl abfeuern, und fertig. Das ist auch netter, als den Playern den Server unter den Füßen wegzuziehen :D

floppybox
Beiträge: 4
Registriert: 5. Februar 2019 20:02
SqueezeBox: Touch
SqueezeBox: Radio
SqueezeBox: Boom
SqueezeBox: SqueezePlay
SqueezeBox Server läuft auf: Raspberry Pi

Re: Einzelne Radios ab einer bestimmten Uhrzeit sperren

Beitrag von floppybox » 6. Februar 2019 20:02

Herzlichen Dank!
Das mit dem CLI war mit völlig neu und eröffnet ja ganz neue Welten!
Ich schreibe das mal so für mich auf. Vielleicht ist es ja auch für andere interessant.
Und falls ich hier irgendwas Blödes mache, dürft Ihr mich gerne verbessern :-)
0. Verbindung im Terminal meines Mac mit dem Raspberry Pi Zero W, auf dem der LMS läuft:

Code: Alles auswählen

ssh pi@192.168.1.73
1. Ich habe auf dem Raspberry Pi, auf dem auch der LMS läuft, erstmal Telnet installieren müssen:

Code: Alles auswählen

sudo apt-get install telnet
2. Danach konnte ich mich per Telnet am LMS anmelden:

Code: Alles auswählen

telnet 192.168.1.73 9090
3. Mit der Player-ID (= MAC-Adresse) vorneweg kann man ein einzelnes Radio sanft (z. B. innerhalb von 20 s) einschlummern lassen:

Code: Alles auswählen

00:04:20:xx:xx:xx sleep 20
Eine Befehlsreferenz für das CLI kann man hier finden:

Code: Alles auswählen

http://192.168.1.73:9000/html/docs/cli-api.html?player=#Supported%20Commands
Wie ich das ganze Prozedere in die Crontab bekomme, muss ich noch rausfinden. So fit bin ich (noch) nicht mit Linux.

Eine weitere Frage bleibt noch offen:
Wie kann ich nach dem Einschlummern verhindern, dass das Radio bis zum Morgen wieder eingeschaltet wird?

Eine Holzfällermethode kommt mir da noch in den Sinn:
Mit einem gemanagten Switch könnten man doch evtl. die Verbindung für einen Port für eine gewisse Zeit unterbrechen, oder?
Das ist natürlich wieder eine ganz andere Baustelle, aber vielleicht für sowas auch jemand einen Tipp? Freue mich über alles!

Viele Grüße,
Florian

JoeMod2015
Doktor Squeezebox
Beiträge: 139
Registriert: 6. Oktober 2015 17:12
SqueezeBox: Transporter
SqueezeBox: Boom
SqueezeBox: Classic
SqueezeBox Server läuft auf: Windows 2008 R2 Server

Re: Einzelne Radios ab einer bestimmten Uhrzeit sperren

Beitrag von JoeMod2015 » 6. Februar 2019 20:39

Es gibt da ja auch ein stopserver- sowie ein restartserver-Kommando. Ich glaube nicht, dass man die Geräte sperren kann. Vielleicht gibt es mit CLI noch raffiniertere Methoden, die Geräte selektiv vom Server abzumelden und bei Bedarf wieder anzumelden, aber dasselbe kann man mit ein paar Tasten auch selbst machen. Ist also eigentlich keine Option.
Ein Managed Switch wäre eine Möglichkeit, aber was ist mit Wi-Fi? Das kann man ja alternativ auch verwenden (sofern Kennwort eingetragen). Die meisten nutzen die Boom ja eh ohne Netzwerkkabel.
Letztendlich gibt es da viele, abernie ganz perfekte Lösungen. Wenn die Kinder es aber doch eh einsehen, dass irgendwann mal Schluss sein muss, meinst Du nicht, sie würden die Regel akzeptieren, dass die Boom nach dem automatischen Abschalten nicht mehr wieder angeschaltet wird bis zum nächsten Morgen? Wenn ich das richtig verstanden habe, schlafen sie ja eh vorher ein.
Einsicht wäre wahrscheinlich die einfachste Lösung für alle. Oder Belohnung, wenn Du morgens dann feststellst, dass die Boom über Nacht tatsächlich nicht angerührt wurde? (kann man in den Server-Logs ja nachvollziehen)

JoeMod2015
Doktor Squeezebox
Beiträge: 139
Registriert: 6. Oktober 2015 17:12
SqueezeBox: Transporter
SqueezeBox: Boom
SqueezeBox: Classic
SqueezeBox Server läuft auf: Windows 2008 R2 Server

Re: Einzelne Radios ab einer bestimmten Uhrzeit sperren

Beitrag von JoeMod2015 » 6. Februar 2019 20:44

oh, und übrigens, statt Telnet und manueller Eingabe kann man in Linux auch folgenden Einzeiler verwenden:

echo "00:04:20:xx:xx:xx power 1" >/dev/tcp/{ IP-Adresse des Servers}/9090

(z.B., um das Gerät einzuschalten. Andere Kommandos gehen natürlich auch)
Unix beeindruckt immer wieder...

floppybox
Beiträge: 4
Registriert: 5. Februar 2019 20:02
SqueezeBox: Touch
SqueezeBox: Radio
SqueezeBox: Boom
SqueezeBox: SqueezePlay
SqueezeBox Server läuft auf: Raspberry Pi

Re: Einzelne Radios ab einer bestimmten Uhrzeit sperren

Beitrag von floppybox » 7. Februar 2019 17:36

JoeMod2015 hat geschrieben:
6. Februar 2019 20:39
Ein Managed Switch wäre eine Möglichkeit, aber was ist mit Wi-Fi? Das kann man ja alternativ auch verwenden (sofern Kennwort eingetragen). Die meisten nutzen die Boom ja eh ohne Netzwerkkabel.
Wir haben ein altes, recht langes Haus, eigentlich sind es zwei Häuser aneinander gebaut. Da bräuchten wir noch einen Repeater zusätzlich zur Fritzbox.
Eigentlich habe ich das WLAN gerne abgeschaltet.
In jedes der vier Kinderzimmer habe ich dafür ein Netzwerkkabel verlegt, damit sie die Squeezebox Radios dort anschließen können.
"One Squeezebox per child" - nur der Papa hat ein paar mehr :-)
JoeMod2015 hat geschrieben:
6. Februar 2019 20:39
Einsicht wäre wahrscheinlich die einfachste Lösung für alle. Oder Belohnung, wenn Du morgens dann feststellst, dass die Boom über Nacht tatsächlich nicht angerührt wurde? (kann man in den Server-Logs ja nachvollziehen)
Man kann echt nur erstaunt sein, auf welche Ideen die Kleinen kommen:
Da wurden schon ganze Hörspiele mit der Digitalkamera vom Radio abgefilmt (!), damit sie das Hörspiel unter der Bettdecke trotz heruntergefahrem LMS weiter hören konnten... Handys gibt es bei unseren Kindern nicht, also durfte die Digitalkamera herhalten...

Das mit dem Vorschlag der positiven Verstärkung finde ich daher besonders gut. Ich werde berichten, was die Kleinen von diesem Deal halten :-)

Das mit dem Einzeiler funktioniert übrigens bestens - für alle möglichen Befehle, die ich gefunden habe.
Herzlichen Dank für diese tolle Anregung!
Nach einem "Wunschbefehl" musste ich etwas länger suchen, deshalb "verewige" ich ihn hier mal:

Code: Alles auswählen

echo "00:04:20:2e:54:55 button preset_1.single" >/dev/tcp/192.168.1.73/9090
Dadurch wird die Preset Taste 1 auf dem Squeezebox Radio "gedrückt".

Und zur relativen Änderung der Lautstärke passt das hier:

Code: Alles auswählen

echo "00:04:20:2e:54:55 mixer volume +5" >/dev/tcp/192.168.1.73/9090
bzw.

Code: Alles auswählen

echo "00:04:20:2e:54:55 mixer volume -5" >/dev/tcp/192.168.1.73/9090
So, jetzt muss ich wieder an die Arbeit.
Meine Frau wundert sich schon ein bisschen, wie viel Zeit man mit dem Einrichten eines Radios verbringen kann.
Für sie ist ein Radio ein Radio. Dabei versprüht eine Squeezebox doch einen besonderen Zauber...
Viele Grüße

JoeMod2015
Doktor Squeezebox
Beiträge: 139
Registriert: 6. Oktober 2015 17:12
SqueezeBox: Transporter
SqueezeBox: Boom
SqueezeBox: Classic
SqueezeBox Server läuft auf: Windows 2008 R2 Server

Re: Einzelne Radios ab einer bestimmten Uhrzeit sperren

Beitrag von JoeMod2015 » 7. Februar 2019 17:45

Ja, Vorsicht Suchtgefahr.
Es macht beispielsweise auch sehr viel Spaß, auf dem Display Textnachrichten anzuzeigen! (Kommando show)
Ist schon cool, wie flexibel die Plattform gemacht ist. Es wäre toll gewesen, Logitech hätte das nicht einfach so aufgegeben. Ich glaube, die wissen bis heute nicht, was da alles drinsteckt.