Eigene udev-Regel für Bluetooth

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,

    ich hab mir eine eigene udev-Regel erstellt, die bei einer Bluetooth-Verbindung ein Skript aufrufen soll. Das Skript wird soweit aufgerufen und ausgeführt, aber drei Befehle werden einfach nicht beachtet. Wenn ich diese manuell ausführe funktionieren sie aber einwandfrei, nur nicht von diesem Skript aus. Könnt ihr mir da weiterhelfen, wie ich das zum Laufen bekomme?

    Meine Regel eingefügt in /etc/udev/rules.d/99-input.rules:

    Code
    SUBSYSTEM=="input",GROUP="input",MODE="0660"
    KERNEL=="input[0-9]*",RUN+="/home/pi/projects/bluetooth/bluetooth_music.sh"

    Das Skript sieht so aus:


    ----------- EDIT ------------

    Ich habe die Befehle auch schon in einem anderen Skript ausgeführt und da funktionieren sie auch. Wenn ich dieses Skript von dem oben gepostetem Skript ausführe klappt es auch wieder nicht. Das Problem liegt also wirklich an dem Aufruf durch die udev-Regel denke ich, aber so wirklich weiter bringt mich das auch nicht. :s

    Vielen Dank schonmal für eure Hilfe!


  • Öffne mal zwei Konsolen zb mit MTPutty, in der Konsole 1 gibst du ein

    Code
    $ udevadm monitor --udev

    und in der Konsole 2 führst du deine Udev-Regel aus. Poste hier mal die Ausgabe von Konsole 1.

    Gruss

    Habe ich jetzt gemacht und das kommt dabei raus:

    Ich habe mein Handy mit dem Pi verbunden und wieder getrennt. Das Skript wurde auch aufgerufen, was ich an der dabei erstellten Textdatei sehen kann, aber die drei Befehle wurden wieder einfach ignoriert! :helpnew:

    Vielen Dank schon mal für deine Hilfe!! :danke_ATDE:

  • Das sieht doch gar nicht so schlecht aus. Kannst du mal zeigen was in deinen Texdateien drin steht, werde nicht ganz schlau draus. Was ich auch merkwürdig finde ist diese Zeile

    Code
    bluetoothSource=$(pactl list sources short | grep bluez_source)

    dort kannst du doch gar kein bluez source greppen oder wo hast du die Source definiert? Schau mal bitte hier, schau dir mal das Script an, hilft dir das weiter Bluetooth Audiosignal via AD2P automatisch an den Pi Std. Audioausgang weiterleiten

    Gruss


  • Das sieht doch gar nicht so schlecht aus. Kannst du mal zeigen was in deinen Texdateien drin steht, werde nicht ganz schlau draus. Was ich auch merkwürdig finde ist diese Zeile

    Code
    bluetoothSource=$(pactl list sources short | grep bluez_source)

    dort kannst du doch gar kein bluez source greppen oder wo hast du die Source definiert? Schau mal bitte hier, schau dir mal das Script an, hilft dir das weiter Bluetooth Audiosignal via AD2P automatisch an den Pi Std. Audioausgang weiterleiten

    Gruss

    Habe das Skript wie folgt abgeändert und es funktioniert jetzt!!! :danke_ATDE::thumbs1:

    Warum der vorher die Adresse nicht bekommen hat, weiß ich nicht, aber es funktioniert ja so jetzt...

    Eine Frage habe ich noch und zwar was bedeutet sudo -u pi? Der Befehl funktioniert dadurch nämlich jetzt auch einwandfrei! :bravo2:


  • Bedeutet eigentlich nur das der Benutzer pi den Befehl als Superuser, also root Rechten ausführt.


    :danke_ATDE:
    Alles klar vielen Dank!

    Eine Sache habe ich aber noch zu bemängeln :blush:
    Und zwar dauert es jetzt fast eine halbe Minute bis die Musik abgespielt wird nachdem ich mein Handy mit dem Pi verbunden habe. Ich streamen nämlich per Bluetooth Musik auf den Pi. Eine Idee wie ich diese Lücke verkleinern könnte?

  • Ich glaube ich muss mich korrigieren.

    Code
    Bedeutet eigentlich nur das der Benutzer pi den Befehl als Superuser, also root Rechten ausführt.

    Das Script wird ja durch die Udev-Regel als root ausgeführt, es ist jedoch nicht notwendig den Befehl also root auszuführen. Also behelfen wir uns mit sudo und ermöglichen uns durch dessen Berechtigung über den Parameter -u den Befehl als Benutzer Pi auszuführen. Ich glaube das ist so richtig, bitte korrigiert mich falls die Aussage falsch ist.

    #EDIT: Zu deiner Frage: Hab es gerade bei mir getestet es dauert zwischen 10-12 Sekunden. Was mache ich? Auf dem Smartphone starte ich über die App Tasker inkl. SSH Plugin einen Task. Dieser Task startet Bluetooth und WLAN automatisch, schaltet den Verstärker durch den Aufruf eines Scriptes auf dem Pi per SSH ein und führt abschliessend die App Spotify aus, Play drücken und fertig. Beim Beenden wird alles eben rückgängig gemacht. bis auf die WLAN Verbindung, die geht nach 2 Stunden aus wen der Display aus ist. Beschleunigen konnte ich die Bluetooth Verbindung durch die App "Bluetoot Auto Connect".

    Einmal editiert, zuletzt von PiBorg (20. August 2015 um 20:44)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!