Bluetooth verbindung vom Smartphon zu einem headless Pi mit pin herstellenn

  • Hallo zusammen,


    erst mal was ich vor habe. Ich möchte gerne ein Smartphone per Bluetooth zu meinem Pi verbinden um dann über diese verbindung das wifi einzurichten da der Pi 3 Ja leider kein WPS hat (ok WPS ist so oder so unsicher). Vorstellen tue ich mir das so: ich nutze einen GPIO pin mit taster zum einschalter der sichtbarkeit des Pi's für ca 3 min. habe dann eine app auf dem Smartphone zum einrichten vom Wifi die eine bluetooth verbindung aufbaut. Das Problem ist folgendes entweder muss ich ohne pin arbeiten oder es geht nicht den sobalt ich es mit pin mache schlägt das pairing fehl da der raspberry den pin dann auch bestätigen muss was nicht geht da er headless ist. Bluetothctl ist da leider nicht sehr hilfreich die "man page" ist mehr oder wehniger leer da gibt es nur 4 optionen wovon 2 nicht mal funktionieren den bluetoothctl -h oder --help gehen nicht das geht nur wenn man in der bluetooth console ist einfach nur help tippt um an die list der befehle zu kommen nur leider ist diese liste auch unvollständig (da hat der programierer ja richtig gute arbeit geleistet ;) die hälfte ist fertig). ich kann also in der bluetooth console "agent NoInputNoOutput" machen und dann "default-agent" dann funktioniert das pairing aber ohne pin oder "agent" und "default-agent" dann fragt er beim pairing nach einem pin den ich am Smartphone bestätigen kann nur funktioniert das pairing dann nicht weil der Pi die verbindung nach einer zeit ablehnt schaut man sich jetzt dabei mal die console des pi's an weiß man auch warum der pi muss diesen pin den der agent bereitgestellt hat auch noch mal mit "yes" bestätigen. wie bekommt man es hin das der agent einen pin bereit stellt den nur das smartphone bestätigen muss den der pi hat zu diesem zeitpunk weder Maus noch Tastatur noch Monitor und eine wifi verbindung gibt es auch nicht das man über ein ssh terminal den Pi einrichten kann der pi soll standalone arbeiten und hat keine anschluss möglichkeit. ich möchte mir also ein image erstellen wo das bluetooth soweit eingerichtet ist das ich die sd karte in den pi schiebe strom drauf und es ist eine Bluetooth verbindung möglich die beim pairing nur von seiten des smartphones aus den pairing pin bestätigen muss so das ich über die App dann das wifi einrichten kann ohne das ich noch irgendetwas am pi machen muss ausser den taster für die sichtbarkeit drücken. Und bevor fragen kommen die App zum einrichten des Wifi habe ich noch nicht da das Pairing ja schon fehlschlägt also zumindestens mit pin ohne geht es ist aber zu unsicher selbst wen das gerät nicht dauerhaft sichtbar ist.


    also kurz mir fehlt der agent für eine einseitige pin bestätigung.


    :danke_ATDE: im voraus Shurik

  • Das würde ich nicht über Bluetooth machen, sondern über WiFi:


    Du erstellst ein Image, das sich mit einem vordefinierten Wifi-Netzwerk (z.B. "InitialesWiFiNetzwerk") und -Kennwort verbindet. Nachdem du das Image gebootet hast, erstellst du mit Hilfe deines Smartphones einen temporären Hotspot mit genau diesem Namen und Kennwort. Dadurch verbindet sich der Raspberry mit diesem WiFi Netzwerk auf deinem Smartphone. Deinen Computer verbindest du ebenfalls mit dem WiFi Netzwerk deines Smartphone Hotspots. Nun kannst du per ssh/putty vom Computer aus auf den Raspberry zugreifen und die WiFi Konfiguration so anpassen, dass sie sich mit deinem regulären WiFi Netzwerk verbinden kann.


    Eine andere Möglichkeit wäre, dein Image so einzurichten, dass der Raspberry selbst einen initialen WiFi Hotspot aufbaut, mit dem sich dein Computer verbinden kann. Diese Lösung kommt ohne Smartphone aus, ist aber schwieriger einzurichten.

  • Hi kaiuwe, vielen dank für deine Antwort. Das ist leider nicht möglich da es sich um ein gerät handelt das auf dem pi basiert das ich auch verkaufen möchte, und so etwas umständliches kann man vom kunden nicht verlangen mit hospot den sie selber einrichten müssen nach bestimmten vorgaben nur um das wlan ein zu richten damit sie dann im lokalem netzwerk an das config tool kommen.


    ich habe aber mitlerweile eine Lösung gefunden und zwar mit "expact" habe ein Script gefunden das ich noch etwas überarbeitet habe und jetzt geht es wunderbar ein script das immer läuft überwacht den pin für den taster sobalt ich den taster am pi drücke wird das expect script gestartet was wiederum das BT für 3 min sichtbar macht und macht eigenständig die bestätigung des pairing pins.
    quelle: https://www.reddit.com/r/linux…to_automate_bluetoothctl/



    das expact script bt.sh




    so ist der Pi nur für 3 min sichtbar wenn der taster gedrückt worden ist und es ist nur 1 pairing möglich so verhindert man auch das sich irgendwer fremdes über BT verbindet.
    an der android app zum einrichten des wifi arbeite ich gerade. Aber pairing und verbinden mit rfcomm (serielleschnitstelle rfcomm muss man natürlich auch einrichen).
    vieleicht kann es ja noch wer brauchen.


    MfG Shurik