-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2 appareil détecté #27
Comments
Bonjour, ça fait longtemps (toujours ?) que j'ai aussi cet affichage de 2 appareils un vide et un rempli mais je n'ai jamais prêté d'importance car ça n'impacte pas le fonctionnement du module Quant au problème de connexion au redémarrage de la VM HA, je crois que j'avais eu ça en mode historique et j'avais peut-être résolu ça avec un changement de baudrate au démarrage de HAOS (j'ai un LiXee USB). Aussi si jamais ça peut t'aider, pour fiabiliser la connexion au démarrage (vu que j'ai plusieurs appareils USB en série comme le SkyConnect et le LinXee), j'utilise le chemin |
Bonjour, |
Merci @tomleglaunec pour ton retour rapide. Pour la partie Proxmox, je suis en version 8.0.3, mais de mémoire j'avais deja le probleme en 7. Et un Hebdomadaire, stocké sur mon Nas en NFS qui elle pose probleme avec le linky : J'ai donc refait un automatisme pour la prochaine fois au cas ou, pas encore testé (fait hier) : |
Bonjour @DizHell, Concernant le double appareil c'est un bug qui a normalement été corrigé en v3.0.0-beta2 je vous laisse prendre connaissance des releases notes. Attention si vous faites l'upgrade, le module en est actuellement une version plus loin (la v3.0.0-beta3) : quelle version du module utilisez-vous ? Concernant la perte de lien après le redémarrage de votre VM, sans logs de l'extension je ne peux me prononcer. Mais les pistes de @theblackhole et @tomleglaunec me semblent être pertinentes. |
Je n'ai qu'une entrée pour le domaine linkytic que voici : {
"entry_id": "1cacc261c51d77ab6fbd732d8cf13c9e",
"version": 1,
"minor_version": 1,
"domain": "linkytic",
"title": "/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0",
"data": {
"serial_device": "/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0",
"tic_mode": "std",
"producer_mode": false,
"three_phase": false
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": "linkytic_/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0",
"disabled_by": null
}, De mon côté question setup c'est une VM HAOS hébergée sur ma Freebox Delta. Je sais que c'est du QEMU derrière et que je peux monter un port USB de la box (ce que j'ai fait avec un hub) mais je n'ai pas plus de détails sur le fonctionnement. Édit suite au message simultané de @hekmon : Je suis bien sur la |
Je suis en version officielle 2.0.7 Si tu ne cherche pas de testeur, et que la version finale ne tarde pas, je vais rester en version prod car il fait partie des modules obligatoire que j'utilise H24 du coup, je suis pas chaud pour passer sur la beta. |
Merci @theblackhole et @DizHell pour vos retours, le doublon ne provient donc pas d'une desynchro du port matériel (passer sur le chemin par id est néanmoins la chose à faire pour supprimer le risque). |
Le doublon n'a aucun appareil attaché il est vierge |
Un appareil vide finira par être supprimé par HA lui même (c'est justement en voyant le double appareil que j'ai fais le fix pour la beta-02 et le miens a fini par disparaitre). Seulement sans le fix, a chaque démarrage vous avez une petite chance, suivant l'ordonnancement d'initialisation de HA, de ré avoir la sonde binaire de connection dans un appareil séparé (réinitialisant de fait le temps nécessaire à HA pour nettoyer cet appareil vide).
La beta concerne surtout le nouveau code pour le mode standard, de ce que je vois des messages précédents vous êtes en mode historique : le risque d'avoir un problème est très faible, cette partie du code n'ayant pas changé. Je suis moi même en beta-3 alors que je suis aussi en mode historique. La version stable de la v3 sortira une fois que je serai passé moi même en mode standard et fais un test extensif de toutes les entités (et là dessus je ne saurai m'engager sur une date pour le moment). Peut-être que ce fix devrait être backport en v2 pour une v2.0.8 comme le suggère @tomleglaunec . |
Le doublon provient de la sonde binaire pouvant s'initialiser avec les sondes "normales". Mais les informations permettant de créer et d'identifier l'appareil provenant de la sonde ADS, si la sonde binaire s'initialise avant la lecture et le parsing des infos sur le lien série de la sonde ADS, la sonde série déclare appartenir à un appareil sans informations a proprement parler. Les sondes suivantes ayant bien les informations ADS lues, elles se déclarent correctement dans un appareil avec les bonnes infos. C'est le but du fix de la beta-02 : là où avant la sonde ADS portait le role de lecture et de parsing des infos ADS (puis les partageaient avec le contrôleur central) c'est maintenant le conteneur central qui porte cette logique permettant une extraction et la mises à disposition de ces infos AVANT l'initialisation des sondes. Ces dernières s'initialisent donc toutes avec les infos disponibles et se rattachent donc au même appareil. |
@theblackhole Si tu es en beta3, tu devrais pourvoir supprimer le doublon car l'intégration n'est plus sensé le fournir (patché en beta2 d'après @hekmon). Est-ce le cas ? |
@tomleglaunec Sauf s'il y a une option que je ne connais pas, dans l'interface on ne peut que désactiver un appareil, pas le supprimer complètement. Après au niveau du dessus c'est toujours possible de supprimer complètement l'intégration (qui contient les 2 appareils) mais je n'ai pas envie de faire ça juste pour régler un problème purement visuel ^^ |
Ok effectivement j'ai confondu entrée et appareil... La dernière option serait de retirer manuellement l'entrée de l'appareil doublon dans le fichier .storage/core.device_registry mais si aucune info n'est remontée l'appareil devrait disparaitre de lui même |
J'ai réussi à reproduire le bug en v3.0.0-beta3. Au démarrage, l'intégration va initier les capteurs même si le lecteur série n'est pas disponible (par exemple le dongle USB n'est plus connecté, migration de /dev/ttyXXX, pas de TIC connectée ou erreur de lecture) : les infos d'identification étant nulles, HA va créer un nouvel appareil (device_registry). Les entités restent identiques mais sont rattachés à l'appareil qui porte le même identifiant, ce qui explique les appareils vides constatés (une fois le bon identifiant, les entités sont rattachés au bon appareil). La solution est donc de vérifier la bonne réception de la TIC (au moins le S/N) puis ensuite instancier les différents capteurs. Les capteurs ne doivent pas être instanciés si cet identifiant unique ne peut être lu (problème de connectivité au démarrage). La documentation développeur au sujet des registres d'appareils dit :
Finalement, ne devrait-il pas y avoir un appareil qui représente l'interface TIC/USB et un second qui représente le compteur ? PS: On peut supprimer sans risque les entrées du core.device_registry puisque ce sont les entités qui déclarent l'appareil à qui elles appartiennent. |
Cette partie de la documentation (et l'usage du L'utilisation du
Étant donné qu'une fois une connection effectuée (avec le patch de la version beta) toutes les sondes sont rapatriées dans le bon appareil et qu'un appareil vide finira par être nettoyé par HA je me pose la question de savoir si complexifier le code pour gérer un cas à la marge vaut bien le coup. TL;DR
Je laisse cette issue ouverte pour y réfléchir. |
Pour ma part ça fait longtemps que cet appareil vide existe et vu que ça n'impacte pas les fonctionnalités, ça ne m'a jamais dérangé. Peut-être qu'une solution pas trop compliquée (?) serait éventuellement de proposer, dans la configuration de l'intégration > dans une section "avancée" cachée de base, le nettoyage de cet appareil vide ? Ou une détection avec notif avec proposition de nettoyage ? (A moins que ce soit déjà le cas avec le commit de @tomleglaunec ?) |
Je suis d'accord, il n'y a pas d'intérêt à ajouter un appareil juste pour l'interface TIC/USB.
Si l'un des items échoue au démarrage de l'intégration, la fonction HA essayera périodiquement de relancer l'intégration, donc s'il s'agit d'un défaut temporaire ça n'impactera pas le fonctionnement global de l'intégration. Les entités resteront dans un état indisponible en attendant la résolution du problème (automatique ou nécessitant l'intervention de l'utilisateur). En plus de ça, le chemin PS: @theblackhole oui il me semble qu'une telle option est disponible, à voir si ça peut résoudre le conflit actuel sans trop de travail, je commence à douter du fait que HA nettoiera le registre d'appareil de lui-même... |
Belle collection ! 😄 |
heureusement qu'un seul ne fonctionne, mais je n'arrive pas à supprimer les 2 qui n'ont pas d'identités .. |
@tomleglaunec J'aime bien l'approche
D'ailleurs avec une telle approche je me demande même si le binary sensor est encore bien utile : le simple fait que les sensors soient fonctionnels donne l'information de savoir si le lien série est ok ou non. Cela permettrait de supprimer le binary sensor, seul sensor de la plateform binary sensor et de n'initialiser que la plateforme sensor. J'aime bien. Pour ce qui est du
Par contre je suis d'accord avec vous que (comme pour les disques ou les interfaces réseaux sous linux) les identifiants dynamiques sont à éviter. Donc pour moi la question est plutôt de l'ordre : Comment orientez l'utilisateur pour qu'il rentre un chemin d'identifiant unique au moment de l'initialisation ? Cela pourrait être :
|
Alors peut-être que c'est le privilège des addons officiels mais il existe un mécanisme bien fait sur les addons Silab Multiprotocol et OpenThread Border Router : les appareils série sont récoltés et listés dans un menu déroulant, et le fait d'y trouver un nom incite naturellement à le choisir 🙂 . J'ai vu cette section dans leur fichier de conf qui pourrait être lié, je ne sais pas si c'est un standard HA, un truc que seul les addons officiels peuvent avoir ou un truc custom qu'ils ont fait (et qu'il y a bien plus de choses derrière) mais ça pourrait être une piste à explorer peut-être si ce n'est pas déjà fait ? |
Le module Dans les deux cas, je me suis inspiré de l'intégration officielle De la même manière, comme propose @theblackhole, lister les ports séries/USB (via |
Bonjour,
Cela fait un moment que j'utilise votre solution avec mon capteur TIC USB, je recontre 2 problemes :
Je sais pas si les 2 sont lié, j'ai essayé de faire une automatisation pour redemarrer HomeAssistant le dimanche 2h aprés la sauvegarde mais cela ne fonctionne pas tout le temps.
Pour les appareils en doublon là je viens d'en desactiver un (faute de pouvoir supprimer) à voir si cela pose probleme.
The text was updated successfully, but these errors were encountered: