GPIO Schalten bei Audiowiedergabe

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

This topic contains 15 replies, has 7 voices, and was last updated by  hofjoh premium 3 months, 2 weeks ago.

Viewing 16 posts - 1 through 16 (of 16 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. May 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. May 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. May 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 5 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 3 months, 2 weeks 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.

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

You must be logged in to reply to this topic.

Register here