Ok, j’ai fais des tests, au final cette solution est une bonne première solution @AlexTrovato ! C’est sur ça ne catchera pas tout, mais au moins pour les problèmes de style “incompatibilité hardware”, ça fait le boulot.
J’ai mis juste une remarque sur une migration que tu as supprimé, je ne suis pas sur qu’on veuille ça dans cette PR, mais sinon je suis d’accord pour merge.
Par contre, il faudra trouver un moyen de réactiver les intégrations dans l’UI, parce que là sinon elles sont “brickée” à vie.
Pour info j’ai tenter de lancer Gladys hors Docker, même erreur
Edit: Problème résolu avec un dongle branché
Sur l’hôte
sudo rfkill unblock all
sudo hciconfig hci0 up
Avec ça Gladys se lance ( y’ un truc qui va pas mais au moins ça tourne )
<info> index.js:20 (Object.start) Starting Open Weather service
<info> index.js:16 (Object.start) Starting zwave service
<info> index.js:15 (Object.start) Starting Bluetooth service
<info> index.js:13 (Object.start) Starting usb service
<info> index.js:19 (Object.start) Starting telegram service
<error> bluetooth.connectDevices.js:37 () Could not start scanning, state is unknown (not poweredOn)
<error> bluetooth.connectDevices.js:37 () Could not start scanning, state is unknown (not poweredOn)
<error> bluetooth.connectDevices.js:37 () Could not start scanning, state is unknown (not poweredOn)
<info> connect.js:38 (MqttClient.<anonymous>) Connected to MQTT server mqtt://127.0.0.1:1883
<info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic stat/+/+
<info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic tele/+/+
<info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic gladys/master/#
<info> index.js:63 (Server.<anonymous>) Server listening on port 80
Puis lors d'un scan....
<error> bluetooth.connectDevices.js:37 () Bluetooth: peripheral node_id not found
<error> bluetooth.connectDevices.js:37 () Bluetooth: peripheral 001788286ece not found
<error> bluetooth.connectDevices.js:37 () Bluetooth: peripheral bridge not found
<error> bluetooth.connectDevices.js:37 () Bluetooth: Peripheral undefined not connectable
<error> bluetooth.connectDevices.js:37 () Bluetooth: peripheral 001788286ece not found
Problème résolu pour toi, mais ce n’est pas normal que ce crash soit arrivé. Cette issue reste une issue critique pour moi.
La solution de @AlexTrovato est bien pour prévenir des crash inattendu sur certains services nouveaux, mais ce bug reste là, brancher un dongle n’est pas une solution.
@AlexTrovato Tu sais ce qui pourrait résoudre ce bug ? C’est du côté de Noble à 100% ou c’est une issue qu’on pourrait résoudre de notre côté ? ( quitte à ne pas lancer le service bluetooth dans certains cas, la solution peut être de tout simplement désactiver le service bluetooth dans certains cas – sans restart de Gladys, car un reboot peut prendre plusieurs minutes sur un Pi, ce n’est pas une solution. )
Juste au niveau de la roadmap, j’ai fini toutes les tâches qui restaient avant la RC, et pour moi il me reste uniquement des todos documentation/site/marketing pour le lancement de la RC.
Donc toute cette semaine je vais travailler sur le site/la doc/contacter les bloggeurs, et ensuite dès que tout est prêt je lancerais Gladys v4.
La stabilité est du coup assez importante vu qu’on va avoir un afflux de nouveaux utilisateurs dans les prochaines semaines
Pour le souci, j’ai créé un ticket sur noble, je pense qu’en jouant avec de la config noble, on peut peut-être éviter le problème, mais le code est assez complexe et très spécifique à l’architecture hôte.
J’attends des réponses sur le github noble.
Et tu sais si il y aurait moyen, hors Noble, de détecter la présence ou non de bluetooth sur l’hôte, et de désactiver le service si le Bluetooth n’est pas présent ?
le casque JBL apparaît autant de fois que j’ai fait de recherches, avec des adresses différentes :
bluetooth:5fcf91887a7e bluetooth:7592c20fbffa bluetooth:72274a02287e bluetooth:4534f2918e7b bluetooth:70d66dcd52a0
mon robot tonseuse Automower apparaît avec son nom.
5 autres appareils sans nom.
Mon téléphone n’est pas détecté. Son adresse bluetooth n’est pas dans la liste, et inversement, il ne détecte pas Gladys.
Mon PC non plus.
Mon porte clé nut mini non plus
Non en effet, la présence d’un device n’est pas géré, la présence d’un utilisateur via un device non plus… c’est assez limité pour le moment : niveau de batterie et température si thermomètre… mais ça permet surtout d’ouvrir la voie aux autres services plus spécifiques.
Oups j’ai loupé celui-là. Non je ne sais pas, pas poussé l’investigation sur ce point. Ce qui ne m’empêche pas de le faire. Je vais tout de meme surveiller les évolutions sur la lib et voir intégrer nouvelles features et fixes.
Est-ce que ça vaudrait pas le coup de mettre un bandeau warning dans le service Bluetooth si ce n’est pas le cas ? (le container n’est pas en NetworkMode=host?)