[phone_detection] Besoin de beta testers pour un nouveau plugin

mise a jour faite… plus d’erreur dans http.error
mais le demon reste stoique…
mon tel est eteint depuis 30 min et il me voi tjr present depuis le 18… j’ai l’impression que le demon ne ce lance pas ni ne scan

[2019-11-21 16:21:16][DEBUG][root](MainThread) : Status Code :  200
[2019-11-21 16:21:16][DEBUG][root](MainThread) : Jeedom reply :  {'value': {'53': {'id': '53', 'name': 'TEL_Steph_GalaxyS7', 'state': True, 'humanName': '[Monitoring][TEL_Steph_GalaxyS7]', 'macAddress': '3C:BB:FD:6D:34:E6', 'lastValueDate': '2019-11-18 08:38:10'}}, 'success': True}
[2019-11-22 15:28:22][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=phone_detection function=pre_update callInstallFunction=1
[2019-11-22 15:28:24][INFO] : Début d'activation du plugin
Traceback (most recent call last):
File "/var/www/html/plugins/phone_detection/core/class/../../resources/phone_detectiond/phone_detectiond.py", line 396, in <module>
DEVICES = jc.getDevices()
File "/var/www/html/plugins/phone_detection/core/class/../../resources/phone_detectiond/phone_detectiond.py", line 240, in getDevices
r[key].lastStateDate = datetime.fromisoformat(item['lastValueDate'])
AttributeError: type object 'datetime.datetime' has no attribute 'fromisoformat'
[2019-11-22 15:28:24][DEBUG][root](MainThread) : Signal 15 caught, exiting...
[2019-11-22 15:28:26][INFO][root](MainThread) : =========== Shutdown ===========
[2019-11-22 15:28:26][INFO][root](MainThread) : Stopping all threads
[2019-11-22 15:28:26][INFO][root](MainThread) : Shutting down local server
[2019-11-22 15:28:26][INFO][root](MainThread) : Removing Socket file /tmp/jeedom/phone_detection/daemon.sock
[2019-11-22 15:28:27][INFO][root](MainThread) : Removing PID file /tmp/jeedom/phone_detection/daemon.pid
[2019-11-22 15:28:27][INFO][root](MainThread) : Exit 0
[2019-11-22 15:28:27][INFO][root](MainThread) : =================================
Signal 15 caught, exiting...
[2019-11-22 15:28:28][INFO] : Info sur le démon : {"state":"nok","launchable":"ok","launchable_message":"Gestion automatique d\u00e9sactiv\u00e9e","log":"","auto":"0","last_launch":"2019-11-21 16:21:10"}
[2019-11-22 15:28:28][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=phone_detection function=update callInstallFunction=1
[2019-11-22 15:29:04][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 qIcYq2Kw7ybq81X7SIWaHVCemt8ZeR4O --pidfile /tmp/jeedom/phone_detection/daemon.pid --socket /tmp/jeedom/phone_detection/daemon.sock --callback http://127.0.0.1:80/plugins/phone_detection/core/php/phone_detection.php --interval 10 --present_interval 30 --absentThreshold 60
[2019-11-22 15:29:06][INFO][root](MainThread) : Start phone_detectiond
[2019-11-22 15:29:06][INFO][root](MainThread) : Log level : debug
[2019-11-22 15:29:06][INFO][root](MainThread) : Socket : /tmp/jeedom/phone_detection/daemon.sock
[2019-11-22 15:29:06][INFO][root](MainThread) : PID file : /tmp/jeedom/phone_detection/daemon.pid
[2019-11-22 15:29:06][INFO][root](MainThread) : Device : hci0
[2019-11-22 15:29:06][INFO][root](MainThread) : Callback : http://127.0.0.1:80/plugins/phone_detection/core/php/phone_detection.php
[2019-11-22 15:29:06][INFO][root](MainThread) : Interval : 10
[2019-11-22 15:29:06][INFO][root](MainThread) : Present Interval : 30
[2019-11-22 15:29:06][INFO][root](MainThread) : AbsentThreshold: 60
[2019-11-22 15:29:06][INFO][root](MainThread) : Python version : 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516]
[2019-11-22 15:29:06][DEBUG][root](MainThread) : Writing PID 899 to /tmp/jeedom/phone_detection/daemon.pid
[2019-11-22 15:29:06][INFO][root](MainThread) : Create phone_detection daemon
[2019-11-22 15:29:06][DEBUG][root](MainThread) : Send to test to jeedom
[2019-11-22 15:29:06][DEBUG][root](MainThread) : Send to jeedom :  {'action': 'test'}
[2019-11-22 15:29:06][DEBUG][root](MainThread) : Status Code :  200
[2019-11-22 15:29:06][DEBUG][root](MainThread) : Jeedom reply :  {'value': 0, 'success': True}
[2019-11-22 15:29:06][INFO][root](MainThread) : Get devices from Jeedom
[2019-11-22 15:29:06][DEBUG][root](MainThread) : Send to jeedom :  {'action': 'get_devices'}
[2019-11-22 15:29:06][DEBUG][root](MainThread) : Status Code :  200
[2019-11-22 15:29:06][DEBUG][root](MainThread) : Jeedom reply :  {'value': {'53': {'id': '53', 'macAddress': '3C:BB:FD:6D:34:E6', 'state': True, 'humanName': '[Monitoring][TEL_Steph_GalaxyS7]', 'lastValueDate': '2019-11-18 08:38:10', 'name': 'TEL_Steph_GalaxyS7'}}, 'success': True}
[2019-11-22 15:29:06][INFO] : Démon phone_detection lancé
[2019-11-22 15:32:34][DEBUG] : cmdId:refresh
[2019-11-22 15:32:34][DEBUG] : eqLogic Id:53
[2019-11-22 15:32:34][DEBUG] : mac address: 3C:BB:FD:6D:34:E6
[2019-11-22 15:32:34][INFO] : BT Device: hci0
[2019-11-22 15:32:39][DEBUG] : device name:
[2019-11-22 15:32:39][DEBUG] : device state: 0
[2019-11-22 15:32:39][INFO] : updateGlobalDevice()

Bonjour
J’ai mis a jour, cela a fonctionner quelque minute et toujours la même erreur.
Traceback (most recent call last):
File « /var/www/html/plugins/phone_detection/core/class/…/…/resources/phone_detectiond/phone_detectiond.py », line 396, in
DEVICES = jc.getDevices()
File « /var/www/html/plugins/phone_detection/core/class/…/…/resources/phone_detectiond/phone_detectiond.py », line 240, in getDevices
r[key].lastStateDate = datetime.fromisoformat(item[‹ lastValueDate ›])
AttributeError: type object ‹ datetime.datetime › has no attribute ‹ fromisoformat ›
Signal 15 caught, exiting…

Merci
Loup

Bonjour,
Avez-vous vérifier la version de python utilisée?
Si j’ai bien suivi, @Sebastien_Ferrand développe sous buster (car PHP7.3), du coup je ne serais pas étonné qu’il soit sous python 3.7 ou même 3.8.
Donc à tout ceux ayant une soucis (@Loup, @coke) et @Sebastien_Ferrand, si vous pouviez vérifier la version installée chez vous (et donné la version de dedian aussi, ca peut être utile)
python3 --version

datetime.datetime. fromisoformat a été ajouté en 3.7 je pense.

La plupart des personnes sont encore sous stretch ou même moins;
au passage la version par défaut de python est 2.7 sous stretch mais j’ai vérifié le code et tu lances bien le démon avec python 3.

Par contre sous stretch, la dernière version de python disponible est la 3.5.3 si je ne me trompe pas et donc si tu veux être compatible avec stretch, tu ne devrais pas utiliser de méthode ajoutée après la 3.5.

@Sebastien_Ferrand

Il manque un $ à la ligne 374 de phone_detection/core/class/phone_detection.class.php

if (**$**deviceType == 'GlobalGroup') {

Pour ma part, ça marche bien sinon !

Très bonne remarque, je vais donc corriger ça pour être compatible python 3.5.

Bien vu, je corrige !

Sébastien

1 « J'aime »

mise a jour, faite… ça marche… c d ela bombe et en plus c compatible avec le plugin BLEA, ( cad les deux fonctionne avec la même clé ) au top…
Merci encore.

1 « J'aime »

Merci pour ton retour :slight_smile:

On peut utiliser une antenne BLEA deporté ?

Ce n’est pas prévu pour le moment…
Je verrai dans le futur si la demande est forte :wink:

Sébastien

1 « J'aime »

Ok car ça m’eviterai d’acheter une nouvelle Clef bluetooth

Ça serait clairement un besoin, même plusieurs antennes pour pouvoir couvrir une grande zone.

1 « J'aime »

Bonjour le plugin va-t-il être disponible en beta directement depuis le market ?

Mise a jour fait. Marche super bien :grinning:
SUPER. Merci et BRAVO beau travail.
Loup

C’est déjà le cas…

1 « J'aime »

Si les retours sont bons, je basculerai cette beta en stable dans le courant de la semaine.

J’ai quelques évolutions en tête et je vais ajouter la possibilité d’avoir plusieurs antennes dans le backlog

Merci
Sébastien

Super merci pour ce plugin qui vient enrichir les possibilité due jeedom offre

Bonsoir.
Je suis aussi en train de tester.

J’ai quelques questions
1 - Dans la configuration du plugin
on voit 180s pour considérer que le téléphone est absent.

Après mes tests, j’ai attendu plus de 4 minutes pour qu’il le détecte absent, et encore j’ai rafraichi à la main

Bizzarement par contre la detection de présence est inférieure à 10s sur mes tests…
ces durées sont elles fiable ?

2 - Avez vous pu comparer avec le plugin network et les ping icmp ou arp ?
Est-ce plus fiable et plus rapide ?

3 - Je pense que le fait d’entrer la mac bluetooth ca être compliqué pour les utilisateurs lambda.
au pire dans la doc met comment faire pour Android et Iphone.
L’idéal serait de la découverte.

Bonjour,
Très intéressé au plugin, que je viens d’installer et commence à tester. J’ai une question : serait-il possible de détecter tout téléphone à portée de BT, même si on ne connaît pas les adresses MAC (une sorte de broadcast)? L’idée serait de détecter la présence de téléphones « inconnus », et donc de détecter la présence d’« invités » à la maison…
Merci et très bonne soirée! Laurent

Je viens de voir le plugin c’est super intéressant,j’utilise déjà le plugin bluetooth avec ma clé senna je teste ça rapidement, merci

Ces 180s sont le temps minimum à attendre pour considérer absent un téléphone. Ça évite les faux positifs due aux micro-déconnexions que peuvent subir les connexions bluetooth.
En mode présence, le plugin vérifie toutes les 30s la présence du téléphone et que cette vérification peu prendre 1 ou 2 secondes, il peut y avoir un décalage de quelques secondes. En moyenne, la bascule se fait entre 180 et 195 secondes.

En mode absence, le plugin vérifie toutes les 10 secondes, au premier « ping ok » le téléphone est considérer tout de suite comme présent.

J’ai essayé d’utiliser des ping réseaux via le wifi… malheureusement, ça pose pas mal de problèmes : souvent pour économiser la batterie le wifi se désactive lorsque l’écran s’éteint

Je suis d’accord, je réfléchis à une procédure plus simple pour ajouter un téléphone sans passer par la saisie de l’adresse MAC.

Sébastien