Bluetooth Verbindung JBL Go, Raspbian Buster Desktop, l2ping

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo Zusammen,


    hier eine kurz Anleitung, wie ich es geschafft habe, einen JBL Go mit Raspbian Buster und l2ping zum Laufen zu bringen.

    Das ganze habe ich gemacht mit dem momentan aktuellsten Buster 2020-09-26 mit Desktop.


    Mein Setup sieht wie folgt aus:

    - Raspberry Pi 2B

    - Externe Bluetooth Adapter

    - JBL Go


    Was ich erreichen wollte:

    - Ich wollte den JBL Go nur Einschalten und die Musik sollte zum Spielen beginnen.


    • Bluetooth Symbol rechts oben anklicken und Add Device wählen
    • Den gefundenen Lautsprecher auswählen und Pair klicken
    • Lautsprecher Symbol oben rechts per Rechtsklick anklicken und Audio Outputs wählen
    • Jetzt den Lautsprecher, in meinem Fall der JBL Go auswählen.
    • Raspi sollte jetzt per Bluetooth mit dem Lautsprecher verbunden sein


    • Installieren von mpd und mpc und die Rechte setzen
    • sudo apt-get install mpd mpc
    • sudo chmod g+w /var/lib/mpd/music/ /var/lib/mpd/playlists/
    • sudo chgrp audio /var/lib/mpd/music/ /var/lib/mpd/playlists/
    • Die Konfiguration von mpd jetzt so anpassen, dass der Lautsprecher als Audio Output verwendet wird
    • sudo nano /etc/mpd.conf
    • Jetzt die Zeilen suche, die mit audio_output beginnen
    • Ich habe mir eine neue Audio Output "Tabelle" angelegt diese sieht wie folgt aus
    Code
    audio_output {
            type                "alsa"
            name                "jbl"
            device              "bluealsa:DEV=MAC ADRESSE VOM JBL,Profile=a2dp"
            profile             "a2dp"
            mixer               "software"
    
    }
    • Service von MPD neustarten sudo /etc/init.de/mpd restart



    • Ein Playlist anlegen
    • mpc add http://br-br3-live.cast.addradio.de/br/br3/live/mp3/128/stream.mp3
    • Jetzt mpc mit der neuesten Playlist Updaten
    • sudo mpc update


    Ab jetzt lieft das ganze bei mir schon.

    Der Lautsprecher hat sich automatisch verbunden und mit einem mpc play lieft die Musik über den Lautsprecher


    Nächste Hürde war, dass die Musik auch dann wieder Abspielen sollte, wenn der Lautsprecher aus war.

    Hierzu verwende ich l2ping. l2ping ist bereits vorinstalliert und muss nicht separat installiert werden.


    Vorgegangen bin ich wie folgt

    • Lautsprecher einschalten und versuchen ob ein Ping von l2ping zurück kommt
    • sudo l2ping -c 2 MAC ADRESSE vom Lautsprecher
    • Die sollte jetzt ein positives Ergebnis liefern
    • als nächstes testete ich l2ping in Verbindung mit mpc play
    • sudo l2ping -c 2 MAC ADRESSE vom Lautsprecher && mpc play
    • Jetzt sollte der Ping ausgeführt werden und wenn dieser Erfolgreich ist, wird die Musik abgespielt


    Als nächstes versuchte ich dies in einen Cronjob zu packen und bemerkte relativ schnell, dass es per Cronjob nur bedingt funktioniert.

    Der Cronjob wurde jede Minute ausgeführt.

    Problem war hierbei, wenn der Lautsprecher aus war und eingeschaltet wird, dann läuft vom letzten Cronjob das mpc play noch.

    Heißt es wird über irgendeine andere Audio Quelle ausgegeben.

    Nun habe ich versucht einen l2ping in Verbindung mit mpc stop und mpc play abzusetzen. Jetzt bemerkte ich aber, dass zwar der Lautsprecher wieder funktioniert, aber die Musik jede Minute kurz durch mpc stop abgebrochen hat und gleich wieder per mpc play das Abspielen wieder aufgenommen hat.

    Das war nicht die Lösung.


    Schließlich bin ich dann auf diese Lösung gekommen.

    • Bash Script anlegen mit folgendem Inhalt (zu Testzwecken auf dem Desktop abgelegt)
    Bash: bt.sh
    #!/bin/bash
    if /usr/bin/l2ping -c 1 "MAC ADRESSE vom Lautsprecher" /dev/null
        then
            mpc play
        else
            mpc stop
    fi
    • Script in Cronjob hinterlegen
    • sudo crontab -e
    Code
    */1 * * * * sudo sh /home/pi/Desktop/bt.sh


    Jetzt habe ich für mich genau die Lösung die ich gesucht habe.


    Der Lautsprecher wird eingeschaltet, verbindet sich automatisch und per l2ping kommt spätestens nach einer Minute die Musik.


    Jetzt kann nach belieben der Lautsprecher ein- und ausgeschaltet werden.



    Ich hoffe, dass ich jemanden mit der Anleitung helfen kann.

    Kritik gerne willkommen!

  • Respekt für Deine Tüftelei. Ich möchte Deinen Beitrag nicht abwerten, aber Du hast 2 Desktop Mechanismen nicht berücksichtigt.

    1. Die grafische Oberfläche legt das gewählte Audio-Ausgabegerät in der Datei ~/.asoundrc als default alsa pcm device ab, auch den Bluetooth-Lautsprecher.
    2. mpd hängt sich auf nach Wechsel des Audio-Ausgabegeräts.

    Zu 1.: damit muß /etc/mpd.conf nur minimal geändert werden (nur die Zeile mixer_type "software" für Bluetooth ist neu)

    zu 2: Ursache sind mpd-Probleme mit Zugriffs-Rechten nach Änderung des Audio-Ausgabegeräts (alsa-Konfiguration) (so das mpd-Logfile /var/log/mpd/mpd.log). Das behebt ein Copy der neuen ~/.asoundrc nach /etc/asound.conf und ein mpd-Restart. Das kann man mit einer desktop-Datei erledigen (quelle).

    Code: Desktop/restart-mpd.desktop
    [Desktop Entry]
    Name=restart MPD
    Comment=mpd neu starten
    Exec=sh -c "sudo cp ~/.asoundrc /etc/asound.conf && sudo service mpd restart && mpc play"
    Terminal=false
    Type=Application

    alsa-Konfiguration für Bluetooth (von Raspbian-Buster Desktop-Controls erstellt)

    Schönen Gruß, kle


    hyle Deine Badetuch-Bemerkung verstehe ich...

    Edited 2 times, last by kle ().