Perte des antennes BLEA si désactivation/activation du plugin

Salut @Ludovic

Petite question, c’est normal que les antennes BLEA ne réaparraisent pas quand le plugin est réactivé ?
Voilà les étapes, sur des pi3 avec buster et la version beta à jour du plugin

1- Ajouter une antenne BLEA
2- Désactiver le plugin
3- Activer le plugin

Le demon tourne sur l’antenne mais pas visible dans la config.

[2019-09-06 21:10:42][INFO] : Début d'activation du plugin
[2019-09-06 21:10:43][INFO] : Info sur le démon : {"launchable_message":"","launchable":"nok","state":"nok","log":"nok","auto":0}
[2019-09-06 21:10:43][ERROR] : Attention l'antenne définie en réception pour [xxxxx][BLE Mi Band 3] n'existe plus.
[2019-09-06 21:11:07][INFO] : This is a heartbeat from antenna OctopiBT
[2019-09-06 21:11:26][INFO] : Launching remotes ...
[2019-09-06 21:11:28][INFO] : Lancement démon blea : sudo /usr/bin/python3 /var/www/html/plugins/blea/resources/blead/blead.py --loglevel info --device hci0 --socketport 55008 --sockethost 127.0.0.1 --callback http://127.0.0.1:80/plugins/blea/core/php/jeeBlea.php --apikey c0JDxAKTwYbjOCXYEcfhtKnpyWNs4XPm --daemonname local --noseeninterval 4 --scaninterval 90 --scanmode passive --pid /tmp/jeedom/blea/deamon.pid
[2019-09-06 21:11:30][INFO] : Antenna local alive sending known devices
[2019-09-06 21:11:30][ERROR] : Attention l'antenne définie en réception pour [xxxxx][BLE Mi Band 3] n'existe plus.
[2019-09-06 21:11:30][INFO] : Sending ready to daemons
[2019-09-06 21:11:30][INFO] : Launching remotes ...
[2019-09-06 21:12:03][INFO] : This is a heartbeat from antenna OctopiBT
[2019-09-06 21:12:24][INFO] : This is a heartbeat from antenna local

image
D’ailleurs, au passage, pourquoi 2 boutons pour ajouter une antenne ???

Dans la base, l’antenne est bien présente AVANT la désactivation


La table est complètement détruite dès la désactivation

Le plugin n’est pas responsable de ce comportement.

Lorsqu’on fait un plugin on peut déclarer des fonctions tel que plugin_remove pour éventuellement nettoyer des choses sur suppression du plugin. Tu peux le voir dans le fichier install.php du plugin. C’est l’endroit où est créé la table lors d’une maj ou a l’installation. Et c’est le seul endroit où est défini le nettoyage de la table dans la fonction blea_remove.

Ce que tu observes c’est que sur désactivation d’un plugin jeedom appelle vraisemblablement les fonctions remove des plugins.

En ce qui concerne les deux boutons oui c’est voulu. C’était l’habitude et le standard sur les pages équipement quand yavait le bandeau a gauche. Vu que je le garde sur la modal des antennes car j’y affiche des infos j’ai laissé le bouton ajout ici aussi.

OK donc pas de différence niveau jeedom entre un disable et remove… par contre tout ça me mets dans une situation pénible: sur ma configuration j’ai pas de dongle usb bt, j’utilise le bt interne du pi3

Or le plugin Zwave désactive les services uart à chaque compilation. Une solution pour remettre tout en route c’était de désactiver le plugin Blea de remettre le service uart (et relancer celui du bt) puis de réactiver le plugin blea…
Si là à chaque fois les antennes sautent c’est beaucoup moins efficace comme technique !

@Loic @Ludovic, vous avez une idée d’amélioration potentielle ?

Je n’ai pas ce problème sur mon installation.

PI3B+ Stretch + Jeedom v3.30

Les mises à jour Z-wave ne désactivent pas le BT.

La mise à jour : non. Mais la compilation des dépendances : oui
Ligne 142 de install_apt.sh

   systemctl disable hciuart
RPI_BOARD_REVISION=`grep Revision /proc/cpuinfo | cut -d: -f2 | tr -d " "`
if [[ $RPI_BOARD_REVISION ==  "a02082" || $RPI_BOARD_REVISION == "a22082" ]]

Donc, que pour le PI3 et PI3B
J’ai le PI3B+ et pas cette désactivation.

Je pense que c’est un résidu qui n’a jamais été supprimé dans l’installation des dépendances.

A voir sur le zwave si ya pas une raison. Par contre ton process ne nécessite pas de désactiver le plugin de ce que je comprends que tu fais’ juste couper le démon et désactiver la gestion auto du core. Puis une fois fait ta tambouille tu réactives la gestion auto du démon et relance ton démon.

@Fabrice
Rigolo dans le code actuel (2019-08-24 02:14:19) j’ai :

if [[ $RPI_BOARD_REVISION ==  "a02082" || $RPI_BOARD_REVISION == "a22082" || $RPI_BOARD_REVISION == "**a020d3**" ]]

Donc avec le 3B+

@Ludovic
Oui j’ai essayé aussi de faire plus simple, mais sauf si j’ai loupé une grosse évolution récente dans blea, le fait de juste couper le demon ne suffit pas, car il ne retrouve pas le port/l’adresse du device BT lorsque l’on relance après remise en place des services uart/bt. Je vais refaire un essai pour confirmer quand même
Quand au reliquat, j’ai compris que c’est pour assurer la compatibilité avec la carte Razberry

EDIT Voilà ce que ça donne en simplifiant
image

Ne le prends pas mal, j’ai regardé sur la version Master.
C’est celle que j’utilise, et le PI3B+ n’est pas dans cette version.

Un redémarrage ne suffit pas après avoir réactivé le service ?

OK donc on a pas les mêmes sources (je fais tourner la bêta) donc comportement différent ça semble normal.

Concernant le redémarrage, oui ça fonctionne aussi, mais si on mets de côté les antennes qui sautent, c’est beaucoup plus radical que de réactiver juste le nécessaire avec en plus le risque d’un redémarrage qui plante quand on est à distance et indisponibilité totale de jeedom pendant quelques minutes au mieux

Sans redémarrage :

sudo systemctl enable hciuart
sudo systemctl start hciuart

Oui ça fait déjà partie de ce que j’utilise mais c’est pas toujours suffisant. Il faut parfois en plus :

  • Arrêter/redémarrer le service bt qui est lié à uart
  • Désactiver/activer le plugin blea pour qu’il retrouve l’adresse…

voilà la séquence la plus complète
image

Pour ma part sujet clos :

--- /jeedom/plugins/openzwave/resources/install_apt.sh  2019-08-24 11:52:01.000000000 +0200
+++ /jeedom/plugins/openzwave/resources/install_apt.sh  2019-09-08 20:18:45.219830873 +0200
@@ -139,7 +139,7 @@
 RPI_BOARD_REVISION=`grep Revision /proc/cpuinfo | cut -d: -f2 | tr -d " "`
 if [[ $RPI_BOARD_REVISION ==  "a02082" || $RPI_BOARD_REVISION == "a22082" || $RPI_BOARD_REVISION == "a020d3" ]]
 then
-   systemctl disable hciuart
+   //systemctl disable hciuart
    if [[ ! `grep "dtoverlay=pi3-miniuart-bt" /boot/config.txt` ]]
    then
       echo "Raspberry Pi 3 Detected. If you use a Razberry board you must Disabling Bluetooth"

et

--- /var/www/html/plugins/blea/plugin_info/install.php  2019-09-04 08:52:55.281929695 +0200
+++ /var/www/html/plugins/blea/plugin_info/install.php  2019-09-08 20:24:58.037192888 +0200
@@ -42,7 +42,7 @@
 }

 function blea_remove() {
-       DB::Prepare('DROP TABLE IF EXISTS `blea_remote`', array(), DB::FETCH_TYPE_ROW);
+       //DB::Prepare('DROP TABLE IF EXISTS `blea_remote`', array(), DB::FETCH_TYPE_ROW);
 }

 ?>

salut,

je ne comprend pas pourquoi tu cites:

Je pense que tu confonds raspberry et Razberry, cela n’a « prequ’ » aucun rapport: la carte Razberry est une carte extension zwave qui peut être installée sur un raspberry mais le lien s’arrête là.

Il n’est pas du tout nécessaire de couper le bluetooth sur un raspberry qui gère aussi du zwave via un dongle usb par exemple.

@Mips

Je ne pense pas mélanger…

La seule modification que j’apporte est de mettre en commentaire une action faite par la compilation des dépendances zwave
systemctl disable hciuart
devient
//systemctl disable hciuart

Dans la mesure où il ne détecte pas l’extension razberry… mais qu’il désactive l’uart qui lui est indispensable pour le BT uniquement quand on est sur raspberry sans clé usb
Le reste du texte n’est pas le mien, c’est juste le script d’origine., produit par le diff

Idem pour la partie BT dans le deuxième diff, je vire le drop qui m’ennuie

Ainsi je n’ai plus systématiquement besoin de désactiver BLEA, je ne perds pas ma config des antennes, et zwave ne vient pas casser mon système en douce

je suis pas le seul
https://www.jeedom.com/forum/viewtopic.php?f=157&t=28608&start=100

Et un autre avec le combo BT/ZWAVE https://www.jeedom.com/forum/viewtopic.php?p=764647#p764647