Multi-antenne pour le plugin phone_detection

Bonjour a tous et merci pour vos retours,

je viens de faire quelques modifications apres avoir recu des nouvelles cles bluetooth, qui m’ont permis de faire des tests avec une antenne locale. J’avoue que je n’avais pas pu tester cette partie, qui comme toute partie de code non testee, contenait quelques bugs suite a l’introduction du multi-antennes. desole :scream:

Voici la liste des mises a jour:

1/ quand on met a jour le plugin, vous ne devriez plus avoir le probleme de la base de donnees. Si la table n’existe pas, elle est cree. (verifie, et fonctionne)

2/ Installation des dependances. Je suis revenu sur la version originale qui fonctionne correctement (verifie et fonctionne)

3/ Gestion l’antenne locale J’ai fait un test dans ma VM en ajoutant un dongle, et les mises a jour des telephones sont bien remontees. (verifie et fonctionne)

4/ Gestion d’une antenne distante.
Quand vous creez l’antenne, il faut remplir les champs ‹ nom ›, ‹ ip ›, utilisateur et mot de passe, et ensuite sauvegarder avant d’envoyer les fichiers.
J’ai verifie, et les mises a jour des telephones (verifie et fonctionne).

Je pense qu’il faudra attendre demain pour que les mises a jour soient publiees par jeedom.

bonne soiree
Benoit

4 « J'aime »

Un grand merci @benoit5672 nous allons donc attendre un peu :wink:

Hello

Quelques petits warning à corriger :

[Sun Jan 10 16:13:33.270562 2021] [php7:warn] [pid 2952] [client 127.0.0.1:48824] PHP Warning:  Use of undefined constant id - assumed 'id' (this will throw an Error in a future version of PHP) in /var/www/html/plugins/phone_detection/core/php/phone_detection.php on line 16
[Sun Jan 10 16:13:33.270678 2021] [php7:warn] [pid 2952] [client 127.0.0.1:48824] PHP Warning:  Use of undefined constant remoteName - assumed 'remoteName' (this will throw an Error in a future version of PHP) in /var/www/html/plugins/phone_detection/core/php/phone_detection.php on line 16
[Sun Jan 10 16:13:33.270695 2021] [php7:warn] [pid 2952] [client 127.0.0.1:48824] PHP Warning:  Use of undefined constant configuration - assumed 'configuration' (this will throw an Error in a future version of PHP) in /var/www/html/plugins/phone_detection/core/php/phone_detection.php on line 16
1 « J'aime »

Merci @naboleo,
il manquait les guillemets autour de la definition des identifiants id, remoteName et configuration. Je viens de le fixer. Je ne remonterai cette modification que dans quelques jours, une fois que j’aurai eu un peu plus de retour.
bonne soiree
Benoit

2 « J'aime »

Bonjour a tous,
je viens de pousser la modification concernant les warnings reportes par naboleo, et également un erreur qui se produit quand on créer un mobile et que le paramètre de configuration 'NoLocal' n’est pas coche.
Si vous ne voulez pas attendre la mise a jour de cette nuit, la correction est facile (au travers de jeexplorer:

editer le ficher core/class/phone_detection.class.php
a la ligne 32, remplacer callDaemon($query, $sock) par phone_detection::callDaemon($query, $sock)

Prochaine étape, mis a jour de la documentation.

Benoit

1 « J'aime »

Merci, tout fonctionne bien de mon côté. Je voudrai juste savoir si on aura une carte du réseau pour voir la position des antennes ainsi que nos téléphones comme le plugin blea.

2 « J'aime »

Bonjour @scottjim,

pour l’instant, ce n’est pas prevu, et pour moi ce n’est pas une priorite (je voudrai travailler sur ma config et un autre plugin en priorite).

En effet, dans BLEA, cette fonctionnalite de vue reseau est liee au RSSI, qui n’est pas disponible dans ce plugin. Ici, on a juste l’information connecte/deconnecte, que tu retrouves dans la page ‹ Sante ›.
En plus. pour BLEA, l’idee est de gerer pas mal d’equipements, alors que pour ce module, on ne doit (normalement) gerer que des telephones.

Je pense que cette fonctionnalite prendra du sens si (ou le jour ou) le RSSI des telphones sera integre au plugin.

@Sebastien_Ferrand est occupe en ce moment, mais je pense ne pas me tromper en disant qu’il est ouvert a toute contribution. :yum: L’implementation du multi-antennes en est la preuve.

Benoit

1 « J'aime »

Bonsoir,
De mon côté le code tourne maintenant depuis plusieurs jours dans deux environnements différents

  • jeedom de test en 4.1 sans antenne mais un cle bluetooth local
  • jeedom 4.0 avec 2 antennes et sans antenne locale.

Je ne constante aucun décrochages ou arrêt intempestifs de démons.

Il reste la doc à mettre à jour, mais pour moi on est pas mal.
Qu’en est-il de votre coté ? Êtes-vous satisfait de l implémentation multi-antennes ?
Benoit

Bonjour,
Ma configuration est la suivante :

  • Jeedom Smart 3.3.54 avec un dongle Bluetooth CSR 4.0
  • Raspberry pi 3B+ en antenne pour BLEA initialement.

Après essai de mon côté, cela à fonctionné pendant quelques heures (~4h) puis l’antenne s’est complètement bloqué. Phone détection et BLEA ne fonctionnaient plus que sur la Smart et les Nut et autres thermomètres connectés via BLEA sur l’antenne Raspberry était noté absent.
J’ai redémarré le Raspberry et les plugins dessus mais dés que Phone Detection est activé, BLEA tombe sur l’antenne.
Karikatore

Bonjour,

Il ne faut pas que les plugins BLEA et Phonedetection partage la même clé Bluetooth.
L’un doit avec une clé à lui (ex.: hci0) et l’autre aussi (ex.: hci1).

2 « J'aime »

Personnellement, je ne suis pas d’accord.
Moi, je fonctionne avec les deux sur la même antenne en déporté.

De mon côté, durant les premières heures tout fonctionné en parallèle mais ça n’a pas tenu et à sauté pendant la nuit.
Je vais attendre une version stable dans ce cas là et aviserai à ce moment là. C’est déjà super que Phone Detection fonctionne sur antenne, si ça pouvait fonctionner sur le bluetooth interne de l’antenne ça serai le top !

Bonjour a tous,

@karikatore. je confirme ce que dit @Fabrice, au moins sur le raspberry.

Le contrôleur interne du raspberry se base sur un driver uart, qui gere tres mal les connections concurrentes, et du coup, peu fonctionner pendant un moment et s’arreter ensuite en fonction des acces BLEA et phone_detection. Il y a pas mal de sujets qui traitent de ce probleme sur internet la dessus sur internet, et donc, ce n’est pas les plugins BLEA ou phone_detection qui vont regler le probleme. Desole, la il n’y a pas de solution miracle :frowning:, sauf peut-etre patcher le driver uart du raspberry !

Pour de la stabilite, il faut 1 cle USB en plus de l’antenne interne, il n’y a pas d’autre solution. Peut-etre que ceux qui utilisent une cle USB (type SENA ou autre) n’ont pas se probleme, car la gestion d’une cle USB se fait au travers du driver USB qui est different.

Pour ma part, j’avais des « plantages » sur raspberry quand je n’avais que l’antenne interne utilisee par BLEA et phone detection. En mettant BLEA sur hci0 et phone_detection sur hci1 (une cle USB externe), plus de probleme du tout.
Apres, j’ai une VM uniquement pour mon bluetooth avec une cle SENA. La dessus, j’arrive a mettre BLEA et phone_detection sur la meme antenne. C’est une gestion differente, car on est sur un host (pas un raspberry) et dans une VM, avec une cle USB.

Merci a tous pour votre retour
Benoit

Merci @Fabrice et @benoit5672 pour vos réponses précises !
J’ai donc mis un dongle Bluetooth sur mon Rpi avec BLEA en hci0 et phone_detection en hci1. Mais phone_detection ne semble pas fonctionner correctement sur l’antenne, j’ai un « Invalid device: No such device » dans les log. En essayant la commande hciconfig en SSH, je constate que le Rpi ne voit que son bluetooth interne en hci0, pas de trace de hci1.
A votre avis, y a-t-il une manip à faire afin que le Rpi détecte le dongle et le prenne en compte?

Bonjour,

Alors, j’ai la réponse et l’origine du problème.
Les RPi ne savent plus voir le port Bluetooth interne quand un port externe est présent.
En d’autre terme. Au moment ou vous raccordez votre clé BT externe, hciconfig voit hci0 (l’interne à ce moment) et l’hci1 (externe à ce moment).
Au reboot : il n’y a plus que hci0 qui est visible (et c’est le BT externe).

Vous pouvez valider cela (mais j’en suis sur) (à la condition d’avoir un Raspberry Pi OS à jour).
=> merci de tester cela

La solution est présente sur le forum de Raspberry. Il faut mettre à jour un fichier (qui n’est, pour d’obscure raison, pas encore en production)
=> Le ficher à mettre à jour est le suivant :
pi-bluetooth/btuart at master · RPi-Distro/pi-bluetooth (github.com)

La source de mon information :
Bluetooth issue after updating to Kernel 5.4.51 on RPi4 - Raspberry Pi Forums

Sinon, 2 clés externes doivent fonctionner.

Édit 2022 :
C’est corrigé depuis

3 « J'aime »

Bonjour @Fabrice ,

je te confirme que cela fonctionne avec le fichier (btuart) mise a jour. On voit bien les 2 interface bluetooth.
Avant le reboot,
1/ hci0 - uart
2/ hci1 - usb

Apres le reboot:
1/ hci0 - usb
2/ hci1 - uart

Merci pour le partage du lien, je pense que pas mal d’utilisateurs de jeedom seront interesses.
Benoit

bon à savoir!
est ce que ca s’applique aussi au Rpi 3?
Je viens d’upgrader mon Pi3B+ de dev sous Buster et kernel 5.4.79-v8+

Si vous lisez ma réponse, vous avez la votre !

  • Vous êtes passé en 64 bits, si vous faites les mises à jour vous devez avoir un Kernel plus récent (au moins 5.10.5).

Pas sur d’avoir compris?
Mon kernel est plus grand que 5.4.51 et je suis bien en 64bits mais sur un Pi3 pas un Pi4 et effectivement je n’ai pas upgradé le kernel récemment par crainte d’effets de bord.

J’ai vérifié je vois bien le BT interne (hci0) une fois l’UART initialisé ceci dit je n’ai pas de clé BT pour tester si ce problème existe aussi sur Pi3.
[EDIT] en relisant l’article il semble que ce problème affecte aussi le Pi3 et le Pi Zero…j’ai eu de la chance ma machine de prod est en v5.4.49 :grin:

Bonsoir,
J’ai oublié de préciser que les informations que j’ai partagé concerne un Pi3+, sous debian 10
Benoit