[phone_detection] Besoin de beta testers pour un nouveau plugin

Donc, il fait créer tous les téléphones un par un avant d’utiliser le plugin.
Un détail, dans les paramètres, des valeurs grisées sont présentes. Je pensais qu’elles étaient effectivement définies alors qu’en fait c’était vide. Peut-être deveais-tu mettre réellement des valeurs par défaut.

1 « J'aime »

Merci, je vais regarder ça :wink:

Mais déjà il y a un truc bizarre, tu as plusieurs thread simultané pour un seul device.
Tu peux déjà redémarrer le démon :wink:

Je vais suivre ton conseil et mettre les valeurs par défaut :wink:

J’ai l’impression que la branche master fonctionne mieux que la develop …

[2019-11-15 20:30:21][INFO][root](MainThread) : Start phone_detectiond
[2019-11-15 20:30:21][INFO][root](MainThread) : Log level : debug
[2019-11-15 20:30:21][INFO][root](MainThread) : Socket : /tmp/jeedom/phone_detection/daemon.sock
[2019-11-15 20:30:21][INFO][root](MainThread) : PID file : /tmp/jeedom/phone_detection/daemon.pid
[2019-11-15 20:30:21][INFO][root](MainThread) : Device : hci0
[2019-11-15 20:30:21][INFO][root](MainThread) : Callback : http://127.0.0.1:80/plugins/phone_detection/core/php/phone_detection.php
[2019-11-15 20:30:21][INFO][root](MainThread) : Interval : 10
[2019-11-15 20:30:21][INFO][root](MainThread) : Present Interval : 30
[2019-11-15 20:30:21][INFO][root](MainThread) : AbsentThreshold: 180
[2019-11-15 20:30:21][INFO][root](MainThread) : Python version : 3.7.3 (default, Apr  3 2019, 05:39:12) 
[GCC 8.2.0]
[2019-11-15 20:30:21][DEBUG][root](MainThread) : Writing PID 5047 to /tmp/jeedom/phone_detection/daemon.pid
[2019-11-15 20:30:21][INFO][root](MainThread) : Create phone_detection daemon
[2019-11-15 20:30:21][DEBUG][root](MainThread) : Send to test to jeedom
[2019-11-15 20:30:21][DEBUG][root](MainThread) : Send to jeedom :  {'action': 'test'}
[2019-11-15 20:30:21][DEBUG] : id: 
[2019-11-15 20:30:21][DEBUG][root](MainThread) : Status Code :  200
[2019-11-15 20:30:21][DEBUG][root](MainThread) : Jeedom reply :  {'success': True, 'value': 0}
[2019-11-15 20:30:21][INFO][root](MainThread) : Get devices from Jeedom
[2019-11-15 20:30:21][DEBUG][root](MainThread) : Send to jeedom :  {'action': 'get_devices'}
[2019-11-15 20:30:21][DEBUG] : id: 
[2019-11-15 20:30:21][DEBUG][root](MainThread) : Status Code :  200
[2019-11-15 20:30:21][DEBUG][root](MainThread) : Jeedom reply :  {'success': True, 'value': {'487': {'state': False, 'lastValueDate': '', 'name': 'OnePlusPro 7 BT', 'humanName': '[Vincent][OnePlusPro 7 BT]', 'id': '487', 'macAddress': '40:01:C5:06:7xxxxxx'}}}
[2019-11-15 20:30:22][INFO] : Démon phone_detection lancé
[2019-11-15 20:34:41][DEBUG] : cmdId:refresh
[2019-11-15 20:34:41][DEBUG] : eqLogic Id:487
[2019-11-15 20:34:41][DEBUG] : mac address: 40:01:C5:06:7xxx
[2019-11-15 20:34:41][INFO] : BT Device: hci0
[2019-11-15 20:34:42][DEBUG] : device name: OnePlus 7 Pro 
[2019-11-15 20:34:42][DEBUG] : device state: 1
[2019-11-15 20:34:42][INFO] : updateGlobalDevice()

Suis étonné de ne pas voir l’id dans le debug…
J’ai toujours 0 désormais

Voici mon logphone.pdf (28,8 Ko)

Bon j’ai réussi à faire repartir le plugin, mais je ne sais pas exactement comment.
Parmi les choses que je note :

  • Le menu de gauche ne fonctionne pas, il ne bascule pas sur le device… (perso je le virerai c’est l’ancien « format »)
  • Dans la log, mon téléphone est à 1
[2019-11-15 20:54:18][INFO] : BT Device: hci0
[2019-11-15 20:54:19][DEBUG] : device name: OnePlus 7 Pro 
[2019-11-15 20:54:19][DEBUG] : device state: 1
[2019-11-15 20:54:19][INFO] : updateGlobalDevice()

Côté tous les téléphones, Etat est à 0


Côté téléphone, c’est vide (widget à 0)
image

  • Il ne semble pas y avoir de cron actif, pas de traces dans le logs en dehors de actions manuelles

  • Quelques traces additionnelles

[Fri Nov 15 20:52:29.125287 2019] [php7:warn] [pid 4225] [client 192.168.1.49:58516] PHP Warning:  A non-numeric value encountered in /var/www/html/plugins/phone_detection/core/class/phone_detection.class.php on line 68

démon redémarrer et c’est mieux les téléphones remontent dans le log:

[2019-11-15 20:36:01][INFO] : updateGlobalDevice()
[2019-11-15 20:39:51][DEBUG] : cmdId:refresh
[2019-11-15 20:39:51][DEBUG] : eqLogic Id:190
[2019-11-15 20:39:51][DEBUG] : mac address: x
[2019-11-15 20:39:51][INFO] : BT Device: hci0
[2019-11-15 20:39:52][DEBUG] : device name: CAT S41
[2019-11-15 20:39:52][DEBUG] : device state: 1
[2019-11-15 20:39:52][INFO] : updateGlobalDevice()
[2019-11-15 20:39:58][DEBUG] : cmdId:refresh
[2019-11-15 20:39:58][DEBUG] : eqLogic Id:188
[2019-11-15 20:39:58][DEBUG] : mac address: x
[2019-11-15 20:39:58][INFO] : BT Device: hci0
[2019-11-15 20:39:58][DEBUG] : device name: Xperia M4 Aqua Dual
[2019-11-15 20:39:58][DEBUG] : device state: 1
[2019-11-15 20:39:58][INFO] : updateGlobalDevice()

mais tout comme @naboleo, Etat et Widget à 0

image

idem pour les CRON.
les valeurs restent à 0 même après une commande update depuis le widget. Mais la commande update remonte bien un résultat 1 dans le log. Le résultat est le même lors du test des commandes depuis la configuration de l’objet, ‹ état › remonte vide lors du test, et rafraichir ne remonte rien en widget mais met à jour dans le log.

Par contre la partie gauche fonctionne je suis sur V3.3.37 sur rpi3b+

Si je coupe le Bluetooth des deux téléphones de tests les états respectifs passent bien à 0 mais seulement dans le log, rien coté widget.

Ok, suis sur la 4.1.00

Ne pas utilisez la branche master… c’est une vieille version d’avant le démon python :smiley:

Je viens de mettre à jour la beta normalement, ça devrait être mieux !

Je reprends demain si j’ai le temps :wink:

Bonsoir,
Je viens d’inclure un 2 ème téléphone.
Ça a planté le plugin, tous les téléphones étaient off alors qu’ils étaient à côté.
J’ai tout relancé et maintenant je revois les téléphones.
Ci-joint mon log.
Bonne soirée.
phone_detector.pdf (28,8 Ko)

Bonjour,
Avant de mettre la nouvelle beta voici les résultats de la soirée :
Aprés mon dernier message pour valider le non changement d’état des widgets j’ai remis le Bluetooth sur les deux téléphones-> pas de changement dans le log.
Ce matin :

  • Rien de nouveau dans les log
    -Santée Jeedom me donne

    -Dans la config du plugin tout est OK
    Mais rien n’a changé
    -relance du demon 2 fois, sauvegarde des paramètres, relance du démon, sauvegarde des deux objets téléphones
    -Le plugin fonctionne et même les widgets :thinking:. voici le log si il peut encore servir.
    log_20191116_0850.txt (40,4 Ko)
    Maintenant je vais faire la mise à jour de cette nuit …
    Bonne journée à tous

Installation de la bêta en ligne de commande. Après suppression de la version précédente.
Ajout de mes deux téléphones de tests. tout est OK et du premier coup :sweat_smile:
Je vous tien informé

Bonne journée

1 « J'aime »

Bonjour,

Je n’ai pas testé pour le moment mais cela me semble très intéressant.

Est ce que cela est censé fonctionner avec tout les téléphones ? Android ? IOS ? Il faut une version mini de Bluetooth sur les tél ?

Tu dis que ton plugin utilise la commande hcitool et je ne sais pas sur quoi se base le plugin BLEA mais ne risque t-il pas d’y avoir des conflits si on utilise les deux en même temps ?

Merci.

Hello,

Ça fonctionne avec tous les téléphones à condition que le bluetooth ne soit pas désactivé.
Il n’est pas nécessaire d’appairer le téléphone avec Jeedom, la commande hcitool va juste essayer de connaître le nom du device.

Ça tourne chez moi depuis une bonne semaine avec le demon mais auparavant j’utilisais cette méthode avec un service shell.

Quant au plugin BLEA je ne l’utilise pas, je ne connais pas les intéractions… cependant, il me semble que ce plugin ne permet pas de détecter des téléphones (d’où le fait que j’ai développé celui-ci)

Sébastien

Mise à jour et après un tour dans la config et une resauvegarde, ça fonctionne … Reste à vérifier le cron sur la durée…

Fonctionne en même temps que BLEA… Sachant que BLEA permet également de faire de la détection pour tous les périphériques BT (et de décoder certaines infos BT en fonction du device), mais que niveau ressources, c’est un peu lourd je trouve…
Blea propose en plus le mode « antenne déportée » : le scan BT tourne sur un autre device (pi etc) et envoie les infos de présence via les api en http

Je n’utilise pas le cron mais un démon en python.
C’est donc un thread autonome de jeedom

Effectivement autant préciser les choses, j’entendais par « cron »: la routine de rafraîchissement/détection… Et ça fonctionne

Par curiosité j’ai mis l’adresse mac de mon miband 3 (BLE et pas simple BT) et il n’est pas vu

1 « J'aime »

Ça aurait été cool de voir avec sarakha, pour intégrer cela au plugin Blea

De mémoire le plugin Blea ne vois que les équipements qui advertize les autres non

Toi tu tu le prends dans l’autre sens c’est ton plugin qui va scanner le réseau et remonter ce qu’il voit

Je pense d’ailleurs que ça fonctionne que si tu as mis le bluetooth de ton téléphone en visible

Pas nécessaire que le Bluetooth du téléphone soit visible, il faut juste qu’il soit accessible.

Je confirme mes deux téléphones de tests ne sont pas appairés avec le Bluetooth de ma Framboise, et ont juste celui-ci d’activé mais aucun appareil connecté, pourtant ça fonctionne.
Tien une idée de test voir si un tel appairé à une enceinte est toujours vu ‹ présent › …
Mais ça sera pour demain, je pense avoir donné pas mal de boulot à @Sebastien_Ferrand pour ce soir :grin: