Plus de détection

Bonjour,
Depuis quelques temps j’ai des soucis. Le plugin fonctionne bien pendant une dizaine de jours sans aucune décroche du bluetooth et d’un coup plus rien.
La dernière fois j’ai relancé les dépendances ça s’est mis à refonctionner ou alors je dois redémarrer le pi3b+.
J’ai toujours utilisé le bluetooth du pi.
je viens de tester le service avec la commande " sudo service bluetooth status " et le service est bien actif.
Qu’est ce que je peux tester d’autres ?
Téléphones utilisés : iphone
Voici le log debug

[2021-10-27 19:45:54][DEBUG] : This is a heartbeat from antenna local
[2021-10-27 19:45:58][INFO] : Launching remotes ...
Signal 15 caught, exiting...
[2021-10-27 19:45:59][INFO] : Lancement démon phone_detection : /usr/bin/python3 /var/www/html/plugins/phone_detection/core/class/../../resources/phone_detectiond/phone_detectiond.py  --device hci0 --loglevel debug --apikey dMAShIEC7RPhPpYmrvKwJtkivRulvWxR --pidfile /tmp/jeedom/phone_detection/phone_detectiond.pid --socket /tmp/jeedom/phone_detection/daemon.sock --callback http://127.0.0.1:80/plugins/phone_detection/core/php/phone_detection.php --daemonname "local" --interval 10 --present_interval 30 --absentThreshold 180
[2021-10-27 19:46:00][INFO][root](MainThread) : Start phone_detectiond
[2021-10-27 19:46:00][INFO][root](MainThread) : Log level : debug
[2021-10-27 19:46:00][INFO][root](MainThread) : Socket : /tmp/jeedom/phone_detection/daemon.sock
[2021-10-27 19:46:00][INFO][root](MainThread) : SocketHost :
[2021-10-27 19:46:00][INFO][root](MainThread) : SocketPort : 0
[2021-10-27 19:46:00][INFO][root](MainThread) : PID file : /tmp/jeedom/phone_detection/phone_detectiond.pid
[2021-10-27 19:46:00][INFO][root](MainThread) : Device : hci0
[2021-10-27 19:46:00][INFO][root](MainThread) : Callback : http://127.0.0.1:80/plugins/phone_detection/core/php/phone_detection.php
[2021-10-27 19:46:00][INFO][root](MainThread) : Daemon Name : local
[2021-10-27 19:46:00][INFO][root](MainThread) : Interval : 10
[2021-10-27 19:46:00][INFO][root](MainThread) : Present Interval : 30
[2021-10-27 19:46:00][INFO][root](MainThread) : AbsentThreshold: 180
[2021-10-27 19:46:00][INFO][root](MainThread) : Python version : 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0]
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Writing PID 7786 to /tmp/jeedom/phone_detection/phone_detectiond.pid
[2021-10-27 19:46:00][INFO][root](MainThread) : Create phone_detection daemon
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Send to test connection to jeedom
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Send to jeedom :  {'action': 'test', 'source': 'local'}
[2021-10-27 19:46:00][INFO] : Receive a test from antenna local
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Status Code :  200
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Jeedom reply :  {'success': True, 'value': 0}
[2021-10-27 19:46:00][INFO][root](MainThread) : Start heartbeat thread
[2021-10-27 19:46:00][DEBUG][root](Thread-1) : Send to jeedom :  {'action': 'heartbeat', 'source': 'local'}
[2021-10-27 19:46:00][INFO][root](MainThread) : Use Unix socket for Jeedom -> daemon communication
[2021-10-27 19:46:00][INFO][root](MainThread) : Get devices from Jeedom
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Send to jeedom :  {'action': 'get_devices', 'source': 'local'}
[2021-10-27 19:46:00][DEBUG] : This is a heartbeat from antenna local
[2021-10-27 19:46:00][DEBUG][root](Thread-1) : Status Code :  200
[2021-10-27 19:46:00][DEBUG][root](Thread-1) : Jeedom reply :  {'success': True, 'value': 0}
[2021-10-27 19:46:00][INFO] : Receive get_devices from antenna local
[2021-10-27 19:46:00][DEBUG] : [Membres][bluetooth Christophe]-->0
[2021-10-27 19:46:00][DEBUG] : [Membres][bluetooth Coralie]-->0
[2021-10-27 19:46:00][DEBUG] : updateGlobalDevice: state=0/nb1=0/nbDevices=1
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Status Code :  200
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Jeedom reply :  {'success': True, 'value': {'144': {'state': False, 'lastValueDate': '2021-10-27 16:14:37', 'name': 'bluetooth Christophe', 'humanName': '[Membres][bluetooth Christophe]', 'id': '144', 'macAddress': '40:9C:28:76:DB:5B'}, '146': {'state': False, 'lastValueDate': '2021-10-27 06:37:59', 'name': 'bluetooth Coralie', 'humanName': '[Membres][bluetooth Coralie]', 'id': '146', 'macAddress': 'D0:2B:20:5F:09:23'}}}
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Send to jeedom :  {'action': 'refresh_group', 'source': 'local'}
[2021-10-27 19:46:00][INFO] : Receive refresh_group from antenna local
[2021-10-27 19:46:00][DEBUG] : [Membres][bluetooth Christophe]-->0
[2021-10-27 19:46:00][DEBUG] : [Membres][bluetooth Coralie]-->0
[2021-10-27 19:46:00][DEBUG] : updateGlobalDevice: state=0/nb1=0/nbDevices=1
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Status Code :  200
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Jeedom reply :  {'success': True, 'value': 0}
[2021-10-27 19:46:00][INFO][root](MainThread) : Start thread detection for bluetooth Christophe [40:9C:28:76:DB:5B]
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Send to jeedom :  {'action': 'get_status', 'id': 144, 'source': 'local'}
[2021-10-27 19:46:00][INFO] : Receive get_status for from antenna local
[2021-10-27 19:46:00][DEBUG] : id: 144
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Status Code :  200
[2021-10-27 19:46:00][INFO] : Launching remotes ...
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Jeedom reply :  {'success': True, 'value': 0}
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Jeedom 144 device status: False
[2021-10-27 19:46:00][DEBUG][root](Thread-3) : Get phone information 144
[2021-10-27 19:46:00][INFO][root](MainThread) : Start thread detection for bluetooth Coralie [D0:2B:20:5F:09:23]
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Send to jeedom :  {'action': 'get_status', 'id': 146, 'source': 'local'}
[2021-10-27 19:46:00][INFO] : Démon phone_detection lancé
[2021-10-27 19:46:00][INFO] : Receive get_status for from antenna local
[2021-10-27 19:46:00][DEBUG] : id: 146
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Status Code :  200
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Jeedom reply :  {'success': True, 'value': 0}
[2021-10-27 19:46:00][DEBUG][root](MainThread) : Jeedom 146 device status: False
[2021-10-27 19:46:00][DEBUG][root](Thread-4) : Get phone information 146
[2021-10-27 19:46:00][DEBUG][root](Thread-3) : 144 is absent
[2021-10-27 19:46:00][DEBUG][root](Thread-3) : lastStateDate: 2021-10-27 16:14:37
[2021-10-27 19:46:00][DEBUG][root](Thread-3) : thresholdDate: 2021-10-27 16:17:37
[2021-10-27 19:46:00][DEBUG][root](Thread-3) : datetime.utcnow(): 2021-10-27 17:46:00.594567
[2021-10-27 19:46:00][DEBUG][root](Thread-3) : is datetime.utcnow() > thresholdDate ? True
[2021-10-27 19:46:00][DEBUG][root](Thread-3) : 144 is up to date
[2021-10-27 19:46:00][DEBUG][root](Thread-4) : 146 is absent
[2021-10-27 19:46:00][DEBUG][root](Thread-4) : lastStateDate: 2021-10-27 06:37:59
[2021-10-27 19:46:00][DEBUG][root](Thread-4) : thresholdDate: 2021-10-27 06:40:59
[2021-10-27 19:46:00][DEBUG][root](Thread-4) : datetime.utcnow(): 2021-10-27 17:46:00.631899
[2021-10-27 19:46:00][DEBUG][root](Thread-4) : is datetime.utcnow() > thresholdDate ? True
[2021-10-27 19:46:00][DEBUG][root](Thread-4) : 146 is up to date
[2021-10-27 19:46:10][DEBUG][root](Thread-3) : Get phone information 144
[2021-10-27 19:46:10][DEBUG][root](Thread-4) : Get phone information 146
[2021-10-27 19:46:10][DEBUG][root](Thread-3) : 144 is absent
[2021-10-27 19:46:10][DEBUG][root](Thread-3) : lastStateDate: 2021-10-27 16:14:37
[2021-10-27 19:46:10][DEBUG][root](Thread-3) : thresholdDate: 2021-10-27 16:17:37
[2021-10-27 19:46:10][DEBUG][root](Thread-3) : datetime.utcnow(): 2021-10-27 17:46:10.662377
[2021-10-27 19:46:10][DEBUG][root](Thread-3) : is datetime.utcnow() > thresholdDate ? True
[2021-10-27 19:46:10][DEBUG][root](Thread-3) : 144 is up to date
[2021-10-27 19:46:10][DEBUG][root](Thread-4) : 146 is absent
[2021-10-27 19:46:10][DEBUG][root](Thread-4) : lastStateDate: 2021-10-27 06:37:59
[2021-10-27 19:46:10][DEBUG][root](Thread-4) : thresholdDate: 2021-10-27 06:40:59
[2021-10-27 19:46:10][DEBUG][root](Thread-4) : datetime.utcnow(): 2021-10-27 17:46:10.709072
[2021-10-27 19:46:10][DEBUG][root](Thread-4) : is datetime.utcnow() > thresholdDate ? True
[2021-10-27 19:46:10][DEBUG][root](Thread-4) : 146 is up to date

Merci

@benoit5672 c’est peut-être pas le plugin mais je sais pas ou chercher le problème.

Bonjour @kristobal,
le fait que d’installer les dépendances résout le problème semble indiquer que cela vient bien du démon. En effet, quand tu installes les dépendances, cela redémarre le démon.
Tu peux faire un scénario qui tourne tous les jours (pendant la nuit), et redémarre tes antennes. Pour cela, il te suffit d’ajouter cette ligne dans un bloc code.

phone_detection::launch_allremotes();

j’essaierai de regarder, mais en ce moment je suis pas mal occupe au travail. Ce qui serait intéressant comme trace, c’est au moment ou ça ne fonctionne plus, d’avoir les traces quand tu constates le problème (la il me semble que tu as fournis les traces après le redémarrage) , noter l’heure, est essayer a ce moment la de générer des événements en allumant et éteignant le bluetooth d’un téléphone. Le but étant de comprendre si le problème est localise dans le démon, ou dans la partie jeedom.
Benoit

Merci de ton retour.
Alors c’est arrivé hier après-midi vers 16h.
J’ai tenté de réinstaller les dépendances (ce qui avant fonctionné il y a 10jours ) mais là rien!
J’ai réactivé le service en ligne de commande et vérifier il est donc bien actif.
J’ai toujours pas redémarré le pi3b+ au cas où quelqu’un a une idée pendant que ca ne fonctionne pas.
Je suis quasi sure que si je redémarre le pi c refonctionne ce que je ferai ce soir en rentrant alors.
Je laisse le log en debug ?
Je n’ai pas d’antenne pour info.

tu peux faire un « dmesg » sur le raspberry et le rediriger la sortie dans un fichier. Cela montrera peut être des problèmes bluetooth.

Désolé je maitrise pas les commandes.
Je suppose que c’est " sudo dmesg "
Je fais ça avant de redémarrer mon pi ce soir ?

oui s’il te plait. pas besoin de sudo. juste dmesg. si tu veux rediriger dans un fichier « dmesg > /tmp/monlog.txt »

je fais ça en rentrant et je te copie le resultat dans un fichier :wink:
Merci

je t’ai envoyé le fichier, je viens de redémarrer le pi et ça refonctionne comme prévu mais jusque quand !

Depuis mon redémarrage hier soir c’est super stable comme d’habitude.


si ça plante encore je verrai pour rebasculer mon pi en 32bits après presque 1an de stabilité :slight_smile:

Bonjour @kristobal,
avant de repasser en 32bits, il faudrait comprendre d’abord comprendre si le problème vient du démon qui n’arrive plus a obtenir les informations du mobile, ou de la communication avec jeedom, ou du système.
Si tu es en mode debug, le démon envoie des informations a intervalles régulier:

  • toutes les 30 secondes, un message ‹ heartbeat › a jeedom
  • a chaque changement d’état détecté, un message ‹ update_device_status › a jeedom
  • toutes les 5 minutes, l’état du mobile est systématiquement renvoyé a jeedom a l’aide du message ‹ update_device_status ›

tu peux vérifier ce comportement lorsque cela fonctionne correctement, et voir si tu vois une différence quand cela ne fonctionne plus.

Ensuite, tu peux essayer de redémarrer le démon sans réinstaller les dépendances. Si cela ne fonctionne pas, comme ça avait l’air d’être le cas hier, et que cela nécessite un reboot du pi, je dirai que çà vient plus du système.

Tu peux également comme je te l’ai suggérer redémarrer ton démon toutes les nuits.

Benoit

@benoit5672 bonjour,

Merci pour ton aide.

Je viens de créer mon scénario on verra bien.
Je vais déjà essayer de comparer le log d’aujourd’hui avec celui que j’ai mis dans mon 1er message, car c’était le log quand ca ne fonctionnait plus.

Je surveille tout ça et je te tiens informé :wink:
J’ai un doute sur le plugin car je suis le seul dans ce cas !! ça craint !!

Bonjour @benoit5672

J’ai mon scénario qui tourne depuis plusieurs jours pour redémarrer le demon tout les jours à 6h00.
Tout les 2 ou 3 jours j’ai ce message:
[2021-11-17 06:00:17][ERROR] : Impossible de lancer le démon phone_detection, relancer le démon en debug et vérifiez la log
Et pourtant le démon est bien lancé quand je vérifie.
Je vais changer l’heure afin d’être présent pour la relance du démon et faire un relevé du log en mode debug.
Qu’en penses tu ?

voici mon scénario

bonjour @kristobal,
désolé pour la réactivité, je suis très occupe par le travail en ce moment.
Oui bien sur, capture des logs pour voir ce qui se passe.

Benoit

1 « J'aime »

Bonjour @benoit5672
Aucun soucis pour l’instant ça fait 27 jours que le scénario est en place et ça fonctionne. J’hésite à le stopper.
Je vais attendre quand même le prochain message d’erreur.

1 « J'aime »