GPIO Schalten bei Audiowiedergabe

Max2Play Home Forums Max2Play as Squeezebox (Player / Server) GPIO Schalten bei Audiowiedergabe

Viewing 22 posts - 1 through 22 (of 22 total)
  • 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 #19672

    Hallo,

    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:
    -S Absolute 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
    Stefan

    6. April 2016 at 18:53 #19683

    Super vielen Dank, teste ich dann mal.

    Gruß

    25. April 2016 at 14:08 #19941

    Hallo,

    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
    Tobi

    25. April 2016 at 16:13 #19965

    Hi 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)/page308

    17. Mai 2016 at 19:43 #20164

    Hallo,

    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 #20313

    Hallo 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
    Stefan

    26. Mai 2016 at 16:19 #20316

    Hallo 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 #23061

    Hallo

    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 #23063

    Hi 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 #23064

    Nachtrag 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/squeezelite

    
    SQUEEZELITE_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 #23070

    Hallo 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 7 years, 7 months ago by felix.hasler. Reason: Follow up Umsetzung
    6. November 2016 at 13:42 #23734

    Hallo,

    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
    Johannes

    7. November 2016 at 0:28 #23739

    Hallo,

    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, 5 months ago by hauptralf.
    8. November 2016 at 1:25 #23761

    Nach 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 #23764

    Das 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 #28449

    Hallo,
    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 #29325

    Hi 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 #29554

    Hallo 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 #29560

    Hi 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 6 years, 10 months ago by flysurfer.
    2. Januar 2021 at 21:04 #50533

    Hallo, 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ß
    Lars

    4. Januar 2021 at 15:50 #50546

    Hallo 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.

Viewing 22 posts - 1 through 22 (of 22 total)

You must be logged in to reply to this topic.

Register here