La première étape est de voir si le Bluetooth est bien lancé au démarrage :
$ dmesg | grep -i blue [ 11.903994] Bluetooth: Core ver 2.22 [ 11.904056] Bluetooth: HCI device and connection manager initialized [ 11.904073] Bluetooth: HCI socket layer initialized [ 11.904080] Bluetooth: L2CAP socket layer initialized [ 11.904098] Bluetooth: SCO socket layer initialized [ 11.913494] Bluetooth: HCI UART driver ver 2.3 [ 11.913506] Bluetooth: HCI UART protocol H4 registered [ 11.913509] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 11.913652] Bluetooth: HCI UART protocol Broadcom registered [ 12.098214] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 12.098223] Bluetooth: BNEP filters: protocol multicast [ 12.098245] Bluetooth: BNEP socket layer initialized $ sudo systemctl status bluetooth* ● bluetooth.target - Bluetooth Loaded: loaded (/lib/systemd/system/bluetooth.target; static; vendor preset: enabled) Active: active since Tue 2018-10-09 16:17:10 UTC; 2 days ago Docs: man:systemd.special(7) Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2018-10-09 16:17:10 UTC; 2 days ago Docs: man:bluetoothd(8) Main PID: 812 (bluetoothd) Status: "Running" CGroup: /system.slice/bluetooth.service └─812 /usr/lib/bluetooth/bluetoothd Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
A noter pour que cela fonctionne bien j’ai du ajouter le service hciuart :
$ sudo systemctl enable hciuart
$ sudo systemctl start hciuart
$ systemctl status hciuart.service
● hciuart.service - Configure Bluetooth Modems connected by UART
Loaded: loaded (/lib/systemd/system/hciuart.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-10-09 16:17:10 UTC; 2 days ago
Main PID: 803 (hciattach)
CGroup: /system.slice/hciuart.service
└─803 /usr/bin/hciattach /dev/serial1 bcm43xx 3000000 flow - b8:27:eb:23:8b:15
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Je vais me servir du projet suivant : https://github.com/sourceperl/smartplugctl ( Little utility for control Awox BLE smartPlug SMP-B16-FR : http://www.awox.com/wp-content/uploads/2016/07/User_Guide_SMP-B16.pdf ) .
Voici donc la liste des commandes pour faire un plugin pour Munin afin de mieux suivre la consommation :
$ sudo apt-get install -y python-pip libglib2.0-dev $ sudo pip install bluepy $ sudo apt-get install -y python-setuptools Reading package lists... Done Building dependency tree Reading state information... Done python-setuptools is already the newest version (33.1.1-1). python-setuptools set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 44 not upgraded. $ git clone https://github.com/sourceperl/smartplugctl.git $ cd smartplugctl $ sudo python setup.py install
Une fois l’installation faite, on fait un SCAN afin d’avoir la référence du AWOX :
$ sudo smartplugscan
Pour faire un scan, on peut aussi faire :
$ sudo hcitool lescan --duplicates
Ou encore
$ sudo bluetoothctl [NEW] Controller B8:27:EB:23:8B:15 RASP3 [default] [bluetooth]# power on Changing power on succeeded [bluetooth]# agent on Agent registered [bluetooth]# default-agent Default agent request successful [bluetooth]# scan on Discovery started
A noter aussi que pour supprimer l’erreur : « Failed to obtain handles for « Service Changed » characteristic »
$ sudo systemctl status bluetooth.service ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2018-10-11 20:07:44 UTC; 4s ago Docs: man:bluetoothd(8) Main PID: 1079 (bluetoothd) Status: "Running" CGroup: /system.slice/bluetooth.service └─1079 /usr/lib/bluetooth/bluetoothd Oct 11 20:07:43 RASP3 systemd[1]: Starting Bluetooth service... Oct 11 20:07:44 RASP3 bluetoothd[1079]: Bluetooth daemon 5.43 Oct 11 20:07:44 RASP3 systemd[1]: Started Bluetooth service. Oct 11 20:07:44 RASP3 bluetoothd[1079]: Starting SDP server Oct 11 20:07:44 RASP3 bluetoothd[1079]: Bluetooth management interface 1.14 initialized Oct 11 20:07:44 RASP3 bluetoothd[1079]: Failed to obtain handles for "Service Changed" characteristic Oct 11 20:07:44 RASP3 bluetoothd[1079]: Sap driver initialization failed. Oct 11 20:07:44 RASP3 bluetoothd[1079]: sap-server: Operation not permitted (1)
Il faut faire:
sudo sed -i 's|^ExecStart=/usr/lib/bluetooth/bluetoothd$|ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap|' /lib/systemd/system/bluetooth.service
A noter aussi qu’il faut faire ceci :
$ sudo adduser pi bluetooth $ newgrp bluetooth
Cela permet aussi de débloquer certains problèmes de droits, ..
La fin de l’article a été supprimé, car AWOX n’est pas de bonne qualité ….