Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[TUTO] Scanner Bluetooth (BLE ou non)

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
Zekje
Timide
Messages : 147
Inscription : 19 déc. 2016, 20:27
Contact :

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Zekje » 21 mars 2019, 16:49

je me réponds .... ( suis fort en monologues )

dans /etc/init.d/btscan

il faut remplacer
# Provides: scanner bluetooth
par
# Provides: scanner-bluetooth

il ne me reste que le problème de chemin a résoudre ( a voir sur les pages précedents,il me semble qu un autre utilisateur a eu le soucis )
diving, pour els prochaines versions , possible de mettre les chemins en arguments ? ( bt.log bt.ini et ble.py ? )
-> Zekje

Zekje
Timide
Messages : 147
Inscription : 19 déc. 2016, 20:27
Contact :

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Zekje » 13 mai 2019, 12:19

pour le problème des chemins, j' ai repris le boulot,et donc j ai eu le temps de regarder , j ai modifié mon /etc/init.d/btscan comme suit :

Code : Tout sélectionner

#! /bin/sh
# /etc/init.d/btscan

### BEGIN INIT INFO
# Provides:          scanner-bluetooth
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Simple script to start a program at boot
# Description:       A simple script similar to one from www.stuffaboutcode.com which will start / stop a program a boot / shutdown.
### END INIT INFO

# If you want a command to always run, put it here
touch /tmp/btscan
chmod 666 /tmp/btscan
export PATH=$PATH:/home/pi/Bluetooth-scanner-master/
cd /home/pi/Bluetooth-scanner-master/

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting BTscan"
    # run application you want to start
 sudo /usr/bin/php /home/pi/Bluetooth-scanner-master/BTdaemon.php start
    ;;
  stop)
    echo "Stopping BTscan"
    # kill application you want to stop
    sudo kill `ps -ef | grep BTdaemon.php | grep -v grep | awk '{print $2}'`
    ;;
  *)
    echo "Usage: /etc/init.d/btscan {start|stop}"
    exit 1
    ;;
esac

exit 0
j avais également modifié le fichier BTdaemon.php ligne 58 et 60 pour avoir le chemin en dur

Code : Tout sélectionner

class BTScanner {
        private $_me;                   // name of this script file
        private $_logfile = '/home/pi/Bluetooth-scanner-master/BT.log';
        private $_loglength = 100;      // Max log size in lines
        private $_cfgfile = '/home/pi/Bluetooth-scanner-master/BT.ini';
        // from cfgfile
        private $_adapter;              // BT adapter eg: hci0
        private $_jeedomurl;            // Base URL jeedom API
        private $_log;                  // Boolean to log BT ativity in $_logfile
        private $_tags;                 // Array of BT tags with the parameter BT MAC,Jeedom CmdON,Jeedom CmdOFF,State (0=absent,1=present,x=timestamp since not detected)
désormais un "service btscan start/stop" fonctionne :)
-> Zekje

Bipbip41
Timide
Messages : 479
Inscription : 05 sept. 2014, 09:23

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Bipbip41 » 14 mai 2019, 03:06

Salut,

Suite à ton message dans le poste du BLEA, j'ai installé ton script. IL fonctionne, sauf que je ne sais pas pourquoi, il se (fait) killer à chaque fois.

scripts@jeedom:~/scripts/Bluetooth $ sudo php detect.php stop
Stopping Bluetooth Daemon
Kill Bluetooth Daemon 27131
Kill Bluetooth Daemon 28463
Bluetooth Daemon Stopped
Killed

scripts@jeedom:~/scripts/Bluetooth $ sudo php detect.php start
Kill Bluetooth Daemon 28652
Starting Bluetooth Daemon
version: 1.1.0
Killed

Je suis pas sûr de m'y prendre comme il faut, il est 3h du mat, je vais partir au travail, et j'avoue que j'ai un peu survolé le topic. J'ai testé avec et sans sudo, il a bien les droits (-rwxr-xr-x)

Mais hormis ça il semble fonctionner car il a le temps d'envoyer à Jeedom que mon tel est présent
3 RPI 3B+ (1 Maître, 2 Esclaves) + 1 RPI 1 (Recette)
12 Modules Zwave
8 Sondes Oregon + 1 Pluviomètre + 1 Anémomètre
4 Gateway Xiaomi + 9 modules + 6 prises + 2 interrupteur
1 Prise Chacon

53 Scénarios :D

1 Serveur avec 4 VM, dont 1 Zabbix

Jef73
Timide
Messages : 366
Inscription : 27 déc. 2017, 10:41
Localisation : Nantes

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Jef73 » 14 mai 2019, 06:23

Ce n'est pas simplement le retour de la fonction qui 'kill' les éventuels processus déjà en cours ?
Si tu dis que Jeedom reçois bien les infos de présence du script, ça fait supposer qu'il tourne quand meme, donc c'est ça probablement.

Fait un "ps -aux|grep detect.php" et tu sauras s'il est encore en tâche de fond ;)

Zekje
Timide
Messages : 147
Inscription : 19 déc. 2016, 20:27
Contact :

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Zekje » 14 mai 2019, 10:39

après une journée, je nuance un peu mon enthousiasme, le script en lui même fonctionne ( /etc/init.d/btscan , cf plus haut )
mais sur certaines de mes machines, il refuse de se lancer en service (droits?) , j ai donc viré la fonction service ( systemctl disable btscan.service ) et je l'active au lancement des linux par le rc.local
c est pas propre , mais au moins ca marche sur tout mes pi et clones quelque soit leur distri (j en ai pas 50 mais suffisament pour ne pas tout avoir a l identique :( ) , et surtout cela fonctionne sur celui qui reboot en boucle ( branché derriere un decodeur TV qui a la bonne idée de reseter le port USB a chaque redémarrage ).

en tout cas ca me permet de me passer de BLEA ( cf mes déboires sur le post BLEA ) , et en plus j arrive avec btscan a voir les téléphones ( non BLE donc non detectés par BLEA ).
-> Zekje

Jef73
Timide
Messages : 366
Inscription : 27 déc. 2017, 10:41
Localisation : Nantes

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Jef73 » 14 mai 2019, 11:57

Pour faire un speudo-service, j'ai fait ça de mon côté et ça marche très bien :)

1) Création d'un fichier "startbtscanner.sh" dans le même dossier que le script (/etc/bluetooth-scanner/ pour ma part) avec ce contenu :

Code : Tout sélectionner

#! /bin/sh
# /etc/bluetooth-scanner/startbtscanner

cd /etc/bluetooth-scanner/
php BTdaemon.php start &

exit 0
2) un petit "chmod +x" dessus pour le rendre exécutable

3) et dans ma crontab, j'ai ajouté ces lignes :

Code : Tout sélectionner

# Lancement du script de scanner Bluetooth pour Jeedom :
@reboot root /etc/bluetooth-scanner/startbtscanner.sh &

L'avantage de faire ça, c'est qu'on s’affranchit de tous les éventuels problèmes de chemins pour lancer les commandes, ainsi que ceux qui ne sont pas gérés dans le script pour par exemple les fichiers INI et LOG ;)




Moi aussi je me passe complètement du plugin BLEA pour ma gestion de présence comme ça (beacons G-Tag et smartphones).
Je ne m'en sers encore que pour vérifier les niveaux de pile des G-Tags, et les données de mes sondes Xiaomi (là, je peux me permettre des loupés dans les trames, même sur plusieurs heures en cas de problème).

Bipbip41
Timide
Messages : 479
Inscription : 05 sept. 2014, 09:23

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Bipbip41 » 14 mai 2019, 12:03

Jef73 a écrit :
14 mai 2019, 06:23
Ce n'est pas simplement le retour de la fonction qui 'kill' les éventuels processus déjà en cours ?
Si tu dis que Jeedom reçois bien les infos de présence du script, ça fait supposer qu'il tourne quand meme, donc c'est ça probablement.

Fait un "ps -aux|grep detect.php" et tu sauras s'il est encore en tâche de fond ;)
Nop, je te confirme qu'il est bien killé. Il envoie une info dans les logs et dans jeedom, comme quoi le telephone est présent, puis est killé juste après, et plus rien ^^

Ca peut venir du fait que j'ai le plugin BLEA sur cette raspberry (genre fichiers verrouillés) ?
3 RPI 3B+ (1 Maître, 2 Esclaves) + 1 RPI 1 (Recette)
12 Modules Zwave
8 Sondes Oregon + 1 Pluviomètre + 1 Anémomètre
4 Gateway Xiaomi + 9 modules + 6 prises + 2 interrupteur
1 Prise Chacon

53 Scénarios :D

1 Serveur avec 4 VM, dont 1 Zabbix

Bipbip41
Timide
Messages : 479
Inscription : 05 sept. 2014, 09:23

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Bipbip41 » 14 mai 2019, 14:41

Je me répond à moi même : j'avais un problème de droit sur shmop sur ce user. Je suis passsé sur un autre et ç'est nickel. Du coup je l'ai installé sur mes 2 raspberry

Je suis impressionné de voir que les 2 détectent mon MiBand et mon Tel, où que je sois dans la maison ^^

Super scripts, merci beaucoup :) Je vais pouvoir dégager la geoloc de Tasker, qui me bouffait ma batterie de fou :D
3 RPI 3B+ (1 Maître, 2 Esclaves) + 1 RPI 1 (Recette)
12 Modules Zwave
8 Sondes Oregon + 1 Pluviomètre + 1 Anémomètre
4 Gateway Xiaomi + 9 modules + 6 prises + 2 interrupteur
1 Prise Chacon

53 Scénarios :D

1 Serveur avec 4 VM, dont 1 Zabbix

Avatar de l’utilisateur
m.georgein
Timide
Messages : 299
Inscription : 18 mars 2016, 23:46
Localisation : 13820

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par m.georgein » 19 août 2019, 15:34

Bonjour,

Quelqu'un a t il tenté l'install sur une machine virtuelle eSXI en stretch ???

Perso, j'obtiens ça au lancement :

Code : Tout sélectionner

debian9@debian9:/var/www/html/mg/BTdaemon$ sudo php BTdaemon.php start
Traceback (most recent call last):
  File "BLE.py", line 50, in <module>
    import bluetooth._bluetooth as bluez
ImportError: No module named bluetooth._bluetooth
Kill Bluetooth Daemon 14474
Starting Bluetooth Daemon
version: 1.1.0
Processus arrêté
debian9@debian9:/var/www/html/mg/BTdaemon$ PHP Warning:  file_get_contents(): php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /var/www/html/mg/BTdaemon/BTdaemon.php on line 353
PHP Warning:  file_get_contents(http://http://10.187.70.106/core/api/jeeApi.php?apikey=w35cb9cmgg2ehbsbca1h&type=cmd&id=10872): failed to open stream: php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /var/www/html/mg/BTdaemon/BTdaemon.php on line 353
PHP Warning:  file_get_contents(): php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /var/www/html/mg/BTdaemon/BTdaemon.php on line 353
PHP Warning:  file_get_contents(http://http://10.187.70.106/core/api/jeeApi.php?apikey=w35cb9cmgg2ehbsbca1h&type=cmd&id=10873): failed to open stream: php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /var/www/html/mg/BTdaemon/BTdaemon.php on line 353
PHP Warning:  file_get_contents(): php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /var/www/html/mg/BTdaemon/BTdaemon.php on line 353
PHP Warning:  file_get_contents(http://http://10.187.70.106/core/api/jeeApi.php?apikey=w35cb9cmgg2ehbsbca1h&type=cmd&id=10873): failed to open stream: php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /var/www/html/mg/BTdaemon/BTdaemon.php on line 353
ERROR python-bluez not installed, use: sudo apt-get install python-bluez
^C
debian9@debian9:/var/www/html/mg/BTdaemon$
Plateforme :
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1

guims78
Actif
Messages : 509
Inscription : 30 sept. 2017, 13:00

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par guims78 » 19 août 2019, 21:10

Hello, j'ai parcourus ce sujet qui m'interesse beaucoup.
J'ai suivi le début de tuto proposé ici

Code : Tout sélectionner

https://www.jeedom.com/forum/viewtopic.php?f=31&t=25492&start=80#p680530
Par contre, il m'arrive un truc con :

Code : Tout sélectionner

pi@raspberrypi:~ $ php BTdeamon.php conf
-bash: php : commande introuvable
Je voudrais nstaller PHP, mais je ne sais pas quoi faire.
Mon RPI est un Raspian Stretch de base.

guims78
Actif
Messages : 509
Inscription : 30 sept. 2017, 13:00

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par guims78 » 19 août 2019, 21:23

guims78 a écrit :
19 août 2019, 21:10
Hello, j'ai parcourus ce sujet qui m'interesse beaucoup.
J'ai suivi le début de tuto proposé ici

Code : Tout sélectionner

https://www.jeedom.com/forum/viewtopic.php?f=31&t=25492&start=80#p680530
Par contre, il m'arrive un truc con :

Code : Tout sélectionner

pi@raspberrypi:~ $ php BTdeamon.php conf
-bash: php : commande introuvable
Je voudrais nstaller PHP, mais je ne sais pas quoi faire.
Mon RPI est un Raspian Stretch de base.
EDIT :
J'ai trouver pour l'install :

Code : Tout sélectionner

sudo apt install php php-mbstring
J'ai lancé la config avec un Tag en Test. Cela semble s'être passé correctement, mais je ne sais pas si c'est fonctionnel.

guims78
Actif
Messages : 509
Inscription : 30 sept. 2017, 13:00

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par guims78 » 19 août 2019, 23:17

Hello, en fait cela ne fonctionne pas :

Code : Tout sélectionner

pi@raspberrypi:/etc/bluetooth-scanner/Bluetooth-scanner-master $ sudo php BTdaemon.php start
Kill Bluetooth Daemon 8207
Starting Bluetooth Daemon
version: 1.1.0
ERROR No config file, use: php BTdaemon.php conf
Processus arrêté
mais lorsque je fait la config, cela semble bien fonctionner malgres les messages:

Code : Tout sélectionner

pi@raspberrypi:/etc/bluetooth-scanner/Bluetooth-scanner-master $ php BTdaemon.php conf
Configuring Bluetooth Daemon
PHP Warning:  fopen(BT.ini): failed to open stream: Permission denied in /etc/bluetooth-scanner/Bluetooth-scanner-master/BTdaemon.php on line 144
Select hci adapter (0,1,2,...): 1
PHP Warning:  fwrite() expects parameter 1 to be resource, boolean given in /etc/bluetooth-scanner/Bluetooth-scanner-master/BTdaemon.php on line 156
Select Jeedom IP (x.y.z.w): IP JEEDOM
PHP Warning:  fwrite() expects parameter 1 to be resource, boolean given in /etc/bluetooth-scanner/Bluetooth-scanner-master/BTdaemon.php on line 168
Select Jeedom API key: ffgdfghrztjzrtjrztjrtjrtjrtj
PHP Warning:  fwrite() expects parameter 1 to be resource, boolean given in /etc/bluetooth-scanner/Bluetooth-scanner-master/BTdaemon.php on line 173
Select iTag BT MAC: xx:xx:xx:xx:xx
Select Jeedom cmd id ON (0,1,2,...): 2xxxx
Select Jeedom cmd id OFF (0,1,2,...): 2xxxx
Select Device Type (BT/BLE): BLE
Enter another iTag ? (yes/no): no
PHP Warning:  fwrite() expects parameter 1 to be resource, boolean given in /etc/bluetooth-scanner/Bluetooth-scanner-master/BTdaemon.php on line 233
Activate logs ? (yes/no): yes
PHP Warning:  fwrite() expects parameter 1 to be resource, boolean given in /etc/bluetooth-scanner/Bluetooth-scanner-master/BTdaemon.php on line 243
PHP Warning:  fclose() expects parameter 1 to be resource, boolean given in /etc/bluetooth-scanner/Bluetooth-scanner-master/BTdaemon.php on line 244
Bluetooth Daemon Configured

Zekje
Timide
Messages : 147
Inscription : 19 déc. 2016, 20:27
Contact :

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Zekje » 20 août 2019, 10:13

si tu fait

Code : Tout sélectionner

php BTdaemon.php conf
il doit te générer le fichier de conf ( as tu le droit d ecriture ? )
si cela ne marche pas , tu peut le creer a la main, sa syntaxe est la suivante :

BT.ini

Code : Tout sélectionner

[adapter] 
hci = hci0 
[Jeedom IP] 
ip = <mettre 127.0.0.1 si sur la meme machine, ou 192.168.0.x suivant votre réseau> 
[Jeedom Key] 
key = <taclefjeedom> 
[TAGS] 
;1=commentaire 
1 = adressemacBT,commandeON,commandeOFF,0 
;2=ex mon telephone 
2 = 8C:8C:8C:7D:7D:7D,14911,14912,0 
[logs] 
log = 1
il te faut aussi créer les équipements sur ton jeedom le script php vas activer la commande (dans mon exemple) 14911 quand l appareil est vu, et 14911 quand il se deconnecte
-> Zekje

guims78
Actif
Messages : 509
Inscription : 30 sept. 2017, 13:00

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par guims78 » 20 août 2019, 10:40

Merci Zekje pour ton retour.
en fait je lance la commande en sudo, j'imagine qu'il ne devrait pas y avoir de pb de droit.
Les virtuels sont bien créés avec les N° des commandes récupérés.

C'est bien le fichier BT.ini qui ne se crée pas mais je ne vois pas pourquoi ?
Est-ce le fait de mon arborescence :
/etc/bluetooth-scanner/Bluetooth-scanner-master/

Zekje
Timide
Messages : 147
Inscription : 19 déc. 2016, 20:27
Contact :

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Zekje » 20 août 2019, 10:42

diving, j ai une question ,

sur mon install, j ai 3 antennes où tournent le script (la maison est en longueur, pas le choix si je veux une gestion de présence :p )
tout fonctionnait bien avec un miband2 , mais ma fille l'a changé par un miband4
j ai bien sur changé la mac dans les BT.ini de mes antennes , mais ce dernier n est pas vu, est ce que ce dernier serais dans une version de bluetooth non compatible ? (ce qui me fait dire ça c est que BLE le vois bien par contre)

quelqu un a testé le miband4 ?
-> Zekje

Zekje
Timide
Messages : 147
Inscription : 19 déc. 2016, 20:27
Contact :

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Zekje » 20 août 2019, 10:46

guims78 a écrit :
20 août 2019, 10:40
C'est bien le fichier BT.ini qui ne se crée pas mais je ne vois pas pourquoi ?
Est-ce le fait de mon arborescence :
/etc/bluetooth-scanner/Bluetooth-scanner-master/
je ne pense pas, si je me trompe pas il prend le répertoire courant

chez moi c est /home/pi/Bluetooth-scanner-master/
dedans, j ai

pi@raspberrypi:~/Bluetooth-scanner-master $ ls -la
total 56
drwxr-xr-x 3 root root 4096 Aug 20 10:22 .
drwxr-xr-x 5 pi pi 4096 Jul 24 17:22 ..
-rw-r--r-- 1 root root 7039 Mar 17 17:20 BLE.py
-rw-r--r-- 1 root root 16326 Jul 23 12:57 BTdaemon.php
-rw-r--r-- 1 root root 513 Aug 20 10:21 BT.ini
-rw-r--r-- 1 root root 141 Aug 20 10:36 BT.log
drwxr-xr-x 2 root root 4096 Mar 17 17:20 images
-rw-r--r-- 1 root root 1057 Mar 17 17:20 LICENSE
-rw-r--r-- 1 root root 3015 Mar 17 17:20 README.md
-rw-r--r-- 1 root root 348 Mar 17 17:20 util.py

si cela peut t aider

au pire, fait le BT.ini a la main
-> Zekje

guims78
Actif
Messages : 509
Inscription : 30 sept. 2017, 13:00

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par guims78 » 20 août 2019, 13:53

Je vais regarder ça ce soir.

guims78
Actif
Messages : 509
Inscription : 30 sept. 2017, 13:00

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par guims78 » 20 août 2019, 20:40

Hello,
j'ai créé le BT.ini à la main.

mais toujours rien :

Code : Tout sélectionner

pi@raspberrypi:/etc/bluetooth-scanner/Bluetooth-scanner-master $ sudo php BTdaemon.php start
Kill Bluetooth Daemon 696
Kill Bluetooth Daemon 32508
Starting Bluetooth Daemon
version: 1.1.0
Processus arrêté


guims78
Actif
Messages : 509
Inscription : 30 sept. 2017, 13:00

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par guims78 » 20 août 2019, 22:50

En fait, malgré le message d'erreur, le processus fonctionne.

Jef73
Timide
Messages : 366
Inscription : 27 déc. 2017, 10:41
Localisation : Nantes

Re: [TUTO] Scanner Bluetooth (BLE ou non)

Message par Jef73 » 21 août 2019, 07:47

guims78 a écrit :
20 août 2019, 20:40
Hello,
j'ai créé le BT.ini à la main.

mais toujours rien :

Code : Tout sélectionner

pi@raspberrypi:/etc/bluetooth-scanner/Bluetooth-scanner-master $ sudo php BTdaemon.php start
Kill Bluetooth Daemon 696
Kill Bluetooth Daemon 32508
Starting Bluetooth Daemon
version: 1.1.0
Processus arrêté

C'est simple :
1) Fait un "ps -aux|grep detect.php" et tu sauras s'il est en tâche de fond,
2) Active l'écriture dans le fichier log (en modifiant le fichier BT.ini) et ensuite, regardes dans le fichier BT.log s'il y a de l'activité.

Voilà ;)

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 9 invités