GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bluetooth Low Energy:Abhören von Benachrichtigungen/Hinweisen unter Linux

Sieht so aus, als ob die ältere Version von Bluez (hcitool &gatttool) es Ihnen nicht erlaubt, auf Bluetooth Low Energy-Geräte zu schreiben. Am Ende installierte ich eine neuere Version (5.17 zum Zeitpunkt dieses Schreibens), um Benachrichtigungen usw. zu aktivieren.

Um eine Liste aller Ihrer Handles zu erhalten, können Sie Folgendes ausführen:

char-desc

Sie können dann von einem Handle lesen:

char-read-hnd 0x000e

(Der obige Griff ist für meinen Batteriestand nrf51822)

Wobei der Handle einer aus der Liste ist, die Sie von char-desc. erhalten haben

Genau wie Tim oben sagte, können Sie an das Benachrichtigungs-bezogene Handle schreiben, um Hinweise oder Benachrichtigungen zu erhalten. (in meinem Fall hatte mein Gerät nur Benachrichtigungen)

char-write-req 0x000f 0100

(Das obige Handle ist für meine nrf51822-Benachrichtigung über den Batteriestand)

In meinem Fall sollte die Batteriebenachrichtigung nichts senden, bis sich der Batteriestand geändert hat.

Ich habe einen ziemlich langen Blogbeitrag über die Einrichtung von Bluez geschrieben. Sie finden es hier:Erste Schritte mit Bluetooth Low Energy Probieren Sie es aus!


Versuchen Sie Folgendes...

Führen Sie gatttool -b <MAC Address> --interactive aus wie du es vorher getan hast. Sie erhalten eine Eingabeaufforderung und geben dann connect ein . Sie sollten eine CON sehen in der Eingabeaufforderung, die anzeigt, dass Sie mit dem Gerät verbunden sind. Geben Sie dann char-read-uuid 2902 ein . Sie sollten eine Liste aller CCC-Attribute (Client Characteristic Configuration) auf dem Gerät erhalten. Sie können versuchen, sie alle auf 0100 einzustellen, um Benachrichtigungen zu erhalten, 0200 für Hinweise, 0300 für beide oder 0000 für alles Aus. Geben Sie help ein um alle Befehle und ihre Argumente zu sehen.

BEARBEITEN:

Die Verwendung des --listen argument erfordert, dass Sie es mit anderen Befehlen koppeln, um die Benachrichtigungen und/oder Anzeigen einzuschalten. Hier ist also ein Beispiel, das in Bluez 4.101 funktioniert:

gatttool -b <MAC Address> --char-write-req --handle=0x0031 --value=0100 --listen

Offensichtlich müssen Sie das Handle auf das Handle des CCC ändern, für das Sie Benachrichtigungen aktivieren möchten. Ich finde es jedoch immer noch viel einfacher, einfach den interaktiven Modus zu verwenden.


Endgültige Antwort zum Lesen der Herzfrequenz auf Mio Alpha :

gatttool -b xx:xx:xx:xx:xx:xx -t random --char-write-req -a 0x0025 -n 0100 --listen

Characteristic value was written successfully
Notification handle = 0x0024 value: 10 4b 33 03 
Notification handle = 0x0024 value: 10 4b 33 03 
Notification handle = 0x0024 value: 10 4b 33 03 
Notification handle = 0x0024 value: 10 4a 3e 03 
Notification handle = 0x0024 value: 10 4c 28 03 28 03 
Notification handle = 0x0024 value: 10 4c 28 03 
Notification handle = 0x0024 value: 10 4b 33 03 
Notification handle = 0x0024 value: 10 4a 3e 03 3e 03

Um den CCC-Wert beizubehalten, müssen Sie die beiden Geräte koppeln. Sobald sie gekoppelt sind, müssen Sie den CCC nicht erneut einstellen. Bei der nächsten Wiederverbindung findet es die Einstellung , die im c FLASH des Schlüsselanhängers gespeichert wird. Versuchen Sie die Konfiguration nach dem Pairing über SMP.


Linux
  1. Linux – Lautstärke des Bluetooth-Headsets zu niedrig (nur in Arch)?

  2. Fehlerbehebung bei geringem Speicherplatz für einen Linux-Cloud-Server

  3. Java (J2SE) Bluetooth Low Energy (BLE)

  4. Bluetooth Low Energy in C - Verwendung von Bluez zum Erstellen eines GATT-Servers

  5. Nagios:Benachrichtigungen von der Befehlszeile unter Windows/Linux deaktivieren

So suchen Sie unter Linux nach Listening Ports (Ports in use)

Beste Distributionen für Spiele unter Linux

25 kostenlose Bücher, um Linux kostenlos zu lernen

Verwandeln Sie Ihren Linux-PC in Bluetooth-Lautsprecher für Ihr Telefon

Zorin OS für Linux-Neulinge

Die 10 besten E-Mail-Benachrichtigungstools für Linux-Systeme