Max2Play Home › Forums › Max2Play as Squeezebox (Player / Server) › GPIO Schalten bei Audiowiedergabe
Tagged: Squeezelite GPIO
- This topic has 21 replies, 10 voices, and was last updated 3 years, 9 months ago by MarioM Moderator.
-
5. April 2016 at 7:34 #19618
Hallo,
ich möchte eine Squeeszbox Multiroom Lösung bauen. Wollte an dem RP3 drei USB-Soundkarten anschließen und dann über drei Class-D Verstärker die Lautsprecher in drei verschiedenen Räumen versorgen. Gibt es eine Möglichkeit bei Audiowiedergabe einen GPIO zu schalten. Würde nur ungerne das Netzteils der Verstärker immer eingeschaltet haben.Danke für jeden Hinweis und einen schönen Tag.
6. April 2016 at 16:53 #19672Hallo,
es gibt für Squeezelite eine GPIO Unterstützung, welches genau das macht (GPIO abhängig vom Powerstatus schalten). Dazu muss Squeezelite neu kompiliert werden mit den entsprechenden Optionen. Ich habe die GPIO Unterstützung in das Update von Squeezelite (auf der Audioplayer-Seite im Webinterface) hinzugefügt. Bitte einmal ein Update auf die aktuelle Beta-Version durchführen (Einstellungen/Reboot -> Update auf Beta) und anschließend auf Audioplayer Seite -> erweiterte Einstellungen Squeezelite -> Update aktivieren und speichern.
Anschließend kann in den Kommandozeilenoptionen für jede Squeezelite-Instanz im Webinterface folgendes gesetzt werden:
-SAbsolute path to script to launch on power commands from LMS
-G: Specify the BCM GPIO# to use for Amp Power Relay and if the output should be Active High or Low Viele Grüße
Stefan25. April 2016 at 14:08 #19941Hallo,
ich habe es probiert wie Ihr oben beschrieben habt. Aber irgendwie bekomme ich es nicht zum Laufen. Jedesmal wenn ich Squeezelite starten möchte zeigt er mir die möglichen Befehle an und startet nicht.
Wie soll die Eingabe in der Kommandozeile denn für den parameter -G aussehen?
LG
Tobi25. April 2016 at 16:13 #19965Hi Tobi,
Bei solchen konrketen Fragen zur Anpassung von Squeezelite empfehlen wir dir, den Thread vom Squeezebox-Forum zu konsultieren: http://forums.slimdevices.com/showthread.php?97046-Announce-Squeezelite-a-small-headless-squeezeplay-emulator-for-linux-(alsa-only)/page30817. Mai 2016 at 19:43 #20164Hallo,
habe mittlerweile rausgefunden das der Parameter -G <GPIO-Port>:<H/L> so eingegeben werden muss. Das scheint auch soweit zu klappen nur bekomme ich dann beim starten des Audioplayers folgenden Fehler:
Versucht zu starten … NICHT Erfolgreich Hier klicken für weitere Informationen
wiringPiSetup: Must be root. (Did you forget sudo?)Ich denke dieser Fehler stammt ja irgendwo von Max2Play her. Habt Ihr dafür eine Lösung?
LG Tobi
26. Mai 2016 at 15:25 #20313Hallo Tobi,
unter Max2Play läuft der Audioplayer nicht mit root Rechten, sondern als User „pi“ auf dem Raspberry. Die Option zum Schalten der GPIO Pins erfordert scheinbar durch die genutzte WiringPi-Bibliothek root-Rechte zum Konfigurieren der GPIO-Pins. D.h. in diesem Fall müsste Squeezelite als User root oder mit „sudo“ gestartet werden.
Eine schnelle Lösung wäre in der Datei „/opt/max2play/audioplayer.conf“ die Zeile „SYSTEM_USER=pi“ zu ändern in „SYSTEM_USER=root“. Dann startet Squeezelite korrekt mit der GPIO-Option.
Dazu am besten über SSH auf dem Pi einloggen und mittels „nano /opt/max2play/audioplayer.conf“ die Datei bearbeiten.Bitte berichte mal ob es klappt und das Schalten der GPIO-Pins so funktioniert wie du wolltest.
Viele Grüße
Stefan26. Mai 2016 at 16:19 #20316Hallo Stefan,
danke für deine Antwort. So funktioniert es super. Soblad ich jetzt einen Player aktiviere/deaktiviere wird der entsprechende GPIO Port mitangesteuert.
Danke sehr.
Viele Grüße
Tobi
15. September 2016 at 23:01 #23061Hallo
Meine Konfiguration : RP + Display 7″ + HiFiBerry DAC+
Mein Ziel : Einen GPIO schalten, sobald Squeezelite läuft.Dank den Tipps von Stefan und Tobi habe ich das Schalten des GPIO Ports unterdessen hinbekommen. Wenn ich wie beschrieben in audioplayer.conf SYSTEM_USER=root setze, dann klappt das Schalten des GPIO Ports 12 mit -G 12:H bestens.
ABER : Nachher lässt sich Jivelite nicht mehr starten, als Fehlermeldung erhalte ich „sudo: unknown user: odroid“.
Ich habe das in start_audioplyer zu ändern versucht, dass hat mich aber nicht weitergebracht.Kann mir jemand einen Tip geben, wi ich da weitersuchen muss ?
Besten Dank für jede Hilfen !
Felix
16. September 2016 at 11:26 #23063Hi Felix,
das hat mit dem Ändern des Nutzers zu tun. Es gibt ein paar Scripte (auch das zum Starten von Jivelite), die nach dem Benutzer prüfen (in der audioplayer.conf) und wenn dieser nicht „pi“ ist dann automatisch „odroid“ nehmen. Das liegt ein wenig an der Entwicklung von Max2Play (war anfangs für ODROID).
Um es zum laufen zu bringen müsste man entweder im Startscript von Squeezelite unter /etc/init.d/squeezelite den USER auf „root“ setzen und in der audioplayer.conf wieder auf „pi“ (am einfachsten und sichersten) ODER im Start von Jivelite (Autostart beim Booten sollte reichen) in der Datei /opt/max2play/start_audioplayer.sh die Zeile im Bereich wo Jivelite gestartet wird
USER=$(grep -a "SYSTEM_USER" /opt/max2play/audioplayer.conf | sed -n -e 's/^[A-Z_]*\=//p')
ersetzen durch
USER="pi"
Diese Lösungen sind allerdings nicht Update-Sicher, da bei einem Max2Play Update die Dateien wieder überschrieben werden.Das die WiringPi Bibliothek immer als sudo oder root ausgeführt werden muss, lässt sich wohl so einfach nicht ändern. Damit muss Squeezelite leider mit der GPIO Option auch als sudo oder root laufen. Ich werde dafür noch ein Update für das Squeezelite Startscript bauen, was auf den GPIO-Parameter prüft und anschließend direkt den Nutzer auf „root“ setzt.
16. September 2016 at 11:33 #23064Nachtrag zur Lösung
Diese Änderung wird in einem der nächsten Updates vorhanden sein und setzt automatisch den Nutzer für Squeezelite auf „root“ wenn der GPIO Parameter gesetzt ist (audioplayer.conf SYSTEM_USER bleibt „pi“):
in Datei /etc/init.d/squeezeliteSQUEEZELITE_PARAMETER=$(grep -a "SQUEEZELITE_PARAMETER" /opt/max2play/audioplayer.conf | sed -n -e 's/^[A-Z_]*\=//p') # NEUER CODE if [ $(echo $SQUEEZELITE_PARAMETER | grep " -G " | wc -l) -gt "0" ]; then USER=root fi # ENDE
16. September 2016 at 18:45 #23070Hallo Stefan
Danke für Deine rasche Antwort. Dein Hinweis auf die Updatesicherheit ist wichtig und ich werde gemäss Deinem zweiten Post /etc/init.d/squeezelite anpassen.
Nachtrag : Unterdessen geschehen. Funktioniert wie gewünscht.
Nachmals Danke für die Hilfe
Viele Grüsse
Felix
- This reply was modified 8 years ago by felix.hasler. Reason: Follow up Umsetzung
6. November 2016 at 13:42 #23734Hallo,
gibt es auch eine Möglichkeit, den GPIO-Port nur zu tasten?
Ich möchte den Raspi in einen Verstärker einbauen und den GPIO-Port über ein Relais am Einschalttaster über ein Relais anzuschliesen.
Der Verstärker soll somit auch „manuell“ eingeschaltet werden können.
Besteht auch die Möglichkeit eine zweiten GPIO-Port gleichzeitig zu tasten, damit auch die richtige Audioquelle am Verstärker geschaltet wird?Viele Grüße
Johannes7. November 2016 at 0:28 #23739Hallo,
finde die Idee mit dem ein/aus schalten des Verstärkers eine klasse.
Und würde dies für mein Projekt gern übernehmen.
Leider ist mir aus dem bisherigen Dialog noch nicht klar wie ich das jetzt umsetzen kann.
Welche dateien müssen jetzt angepasst werden?- This reply was modified 7 years, 11 months ago by hauptralf.
8. November 2016 at 1:25 #23761Nach dem ich jetzt die Kommandozeilen Optionen gefunden habe funktioniert es priema.
Ist es auch genau so einfach möglich über einen GPIO Eingang den Player in den Ruhemodus zu schicken?8. November 2016 at 9:41 #23764Das mit der Kommandozeile hab ich auch schon gemacht, da kann ich allerdings nur ein- bzw. ausschalten.
Da mein Verstärker einen Soft-Powerbutton hat und nur ein kurzer Impuls benötigt wird, würde mich der Befehl für die Kommandozeile interessieren, der den Port kurz auf High und gleich wieder auf Low setzt.24. April 2017 at 21:56 #28449Hallo,
nachdem ich Squeezelite mit GPIO Unterstützung laufen habe, sehe ich meinen DAC+ nicht mehr in Kodi. Scheint an dem Benutzerkonto zu liegen. Ohne -G läuft Kodi unter dem Benutzer Pi und ich sehe meinen DAC.
Habe zum Testen mal über Jivelite das Startskript für Kodi mit Root gestartet und dann sehe ich meinen DAC auch.Gibt es eine andere Lösung um sowohl Kodi als auch Squeezelite mit GPIO Unterstützung zu betreiben?
Vielen Dank im Voraus
7. Juni 2017 at 11:50 #29325Hi anesthesia,
Erstmal entschuldige ich mich vielmals für die viel zu späte Antwort. Dieser Thread ist irgendwie in unserer Verwaltung untergegangen. Ich hoffe unsere Hilfestellung erreicht dich noch.
Bitte versuche bei der oben genannten Datei „/etc/init.d/squeezelite“ in der Zeile USER=root ein „#“ davor zu setzen.
Bitte füge zudem ein „-C 10“ in den Kommandozeilenoptionen von Squeezelite hinzu um eine Verzögerung des Dienstes zu erhalten.
Dies sollte dein Problem lösen.
15. Juni 2017 at 23:55 #29554Hallo Heiner,
das funktioniert leider nicht. Ohne den User=root schaltet mein Relais nicht (WiringPi). Außerdem startet Squeezelite nicht mehr automatisch wenn ich -C 10 zusammen mit -G eintrage. Mein Workaround ist das ich im Start-Skript von kodi (/opt/max2play/start_xbmc.sh) ein sudo an den Anfang des Kills von squeezelite stelle ( sudo /etc/init.d/squeezelite stop). Damit wird dann squeezelite beendet und mein Hifiberry DAC für Kodi freigegeben. Nachteil ist jetzt aber das wenn ich Kodi beende, ich erst wieder was über Squeezelite hören kann wenn ich aus Jivelite heraus „Stop Kodi“ aufrufe. Kodi scheint den DAC auch nicht so gut freizugeben.16. Juni 2017 at 10:18 #29560Hi anesthesia,
in neueren Max2Play-Images (ab Version 2.42) sollte root nicht zwingend nötig sein für wiringPi. Ich hatte da in Squeezelite etwas angepasst: während des Updates von Squeezelite auf die neuste Version im Webinterface wird auch eine aktualisierte Version von WiringPi installiert. Das kannst du mal probieren und user root aus dem Squeezelite-Startscript entfernen, wie Heiner meinte.
Hinweis: Vor dem Update von Squeezlite bitte Squeezelite beenden und aus dem Autostart entfernen (Version sollte dann sein: „Squeezelite Max2Play v1.0.2 based on v1.8.4-726“)
Viele Grüße
Stefan- This reply was modified 7 years, 3 months ago by flysurfer.
2. Januar 2021 at 21:04 #50533Hallo, Ich greife das Thema nochmal auf.
Ich habe einen RP3B+ und M2P 2.53 und nutze LMS mit Multiroom. Es funktioniert auch alles soweit ganz prima, sogar mit Fernbedienung, jedoch möchte ich eine LED steuern, damit ich sehen kann, ob Squeezelite an oder aus ist. Ich habe in den erweiterten Einstellungen von Squeezelite in den Kommandozeilenoptionen zusätzlich -G26: H eingegeben, Die LED geht an (GPIO schaltet auf H), aber nicht wieder aus, wenn ich diesen Raum ausschalte. Habe ich irgendetwas falsch gemacht?Gruß
Lars4. Januar 2021 at 15:50 #50546Hallo Lars,
Hast du in den Squeezelite Optionen
-G 26:H
eingegeben? So wäre zumindest die richtige Schreibweise. Vielleicht hilft dir das bereits. Inwiefern hast du das Ganze denn getestet? An/Aus meint ja Soft Power On/Off, entspricht also dem Drücken des Powerbutton des Players im Squeezebox Server. -
You must be logged in to reply to this topic.