Bluetooth steuern über Website (python, cgi, rfcomm)

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

    ich bin relativ neu in der Welt des Raspberry Pi, bis jetzt habe ich mich viel mit den Arduino boards und anderen µC beschäftigt.
    Nachdem ich mich mit dem Arduino ganz gut auskenne, hab ich mir bald einmal gedacht beides zu verbinden. Also hab ich schnell mal ein kleines Programm für Arduino geschrieben, mit diesem kann ich über eine Serielle Schnittstelle eine led ein und ausschalten. Die Schnittstelle, stellt ein Bluetooth Modul HC05 dar. Den RPi hab ich mit Wlan an das netzwerk gebunden und mit einem Bluetooth dongle will ich mit dem Arduino reden. Das hat auch soweit funktioniert. Ein nettes Python skript erledigt das problemlos.
    Weiters wollte ich dann auf einer html seite einen radiobutton auswählen dann auf einen knopf drücken und dadurch die led steuern. Wenn ich auf den Button klicke sollte sich ein cgi Skript (geschrieben mit python) öffnen und anschließend die BT Verbindung aufbauen, entsprechenden String senden und wieder beenden und die html Seite wieder anzeigen.
    Alllerrdings: Wenn ich auf den button klicke kommt eine Fehlermeldung die sich (so denke ich) auf folgende Zeilen reduzieren lässt:

    Code
    <class 'serial.serialutil.SerialException'>: could not open port /dev/rfcomm1: [Errno 13] Permission denied: '/dev/rfcomm1'
          args = ("could not open port /dev/rfcomm1: [Errno 13] Permission denied: '/dev/rfcomm1'",)
          errno = None
          filename = None[code]
          message = "could not open port /dev/rfcomm1: [Errno 13] Permission denied: '/dev/rfcomm1'"
          strerror = None


    Mein cgi skript schaut folgendermaßen aus:

    Ich schätze mal dass der apache user keine Rechte hat eine rfcomm aufzubauen. Aber ich weiß nicht so recht wie ich das ändern kann, weil ich durch diese rechte sache noch nicht so richtig durchblicke (vielleicht hat jemand ein gutes Tutorial für mich?).
    Hat jemand eine Idee wie ich das Problem lösen kann? Wäre sehr dankbar! :)

  • Bluetooth steuern über Website (python, cgi, rfcomm)? Schau mal ob du hier fündig wirst!

  • Hi,

    Zitat

    Ich schätze mal dass der apache user keine Rechte hat eine rfcomm aufzubauen.


    Sieht so aus. :)

    Schau dir mal mit "ls -l /dev/rfcomm1" die Rechte dieser Datei an dann müsstest du sehen können das nur
    entweder der Bentutzer root oder jeder der sich in der Gruppe dialout befindet darauf zugreifen darf.

    Da du das Skript nicht als root laufen lassen solltest würd sich anbieten den Benutzer www-data (unter dem läuft der Apache standardmäßig) in die Gruppe dialout aufzunehmen:

    Code
    sudo usermod -a -G dialout www-data

    -------

    Zitat


    vielleicht hat jemand ein gutes Tutorial für mich?


    Also bei google findest du dazu enorm viel. Als Suchbegriff reicht eigentlich "Linux Rechte"
    So auf den ersten Blick: :)
    http://wiki.ubuntuusers.de/Rechte
    http://linuxwiki.org/DateiRechte
    http://www.selflinux.org/selflinux/html…er_linux05.html
    http://de.wikibooks.org/wiki/Linux-Pra…tigungskonzepte
    http://de.linwiki.org/wiki/Linuxfibe…_Zugriffsrechte

    DON'T PANIC!

    Einmal editiert, zuletzt von joh.raspi (13. Mai 2015 um 20:20)

  • Danke für die schnelle Antwort!
    Es hat zwar noch einen neustart gebraucht aber es funktioniert! :D:D :danke_ATDE:
    Eine kurze frage hätte ich noch:
    Wie kann ich mir am besten anzeigen lassen welche user und gruppe es gibt und wer in welcher gruppe mitglied ist?
    Ich werd mich da wohl mal ein bisschen einlesen in die Rechteverwaltung von Linux :)

Jetzt mitmachen!

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