Problème de résolution de nom de domaine zeroconf.
romalb47 opened this issue · 1 comments
Description
Sur un jeedom en VM je n'avais aucune détection des chromecast. Après avoir cherché un peu dans les logs j'ai trouvé ça:
[2020-01-05 19:58:30][DEBUG] : Starting new HTTP connection (1): record[a,in-unique,29184da5-dcb2-a5e1-1577-a836df4e1289.local.]=120
[2020-01-05 19:58:38][ERROR] : Failed to connect. No retries.
[2020-01-05 19:58:38][DEBUG] : Starting new HTTP connection (1): record[a,in-unique,0f177f54-c9d1-f261-0095-601f271c3429.local.]=120
[2020-01-05 19:58:47][ERROR] : Failed to connect. No retries.
En cherchant plus en détail il s’avère que le module pyzeroconf renvois "record[a,in-unique,0f177f54-c9d1-f261-0095-601f271c3429.local.]" au lieu de l'ip...
Je ne sais pas si c'est suite a une mise a jour que le fonctionnement a changé mais cela casse complement le plugin (forcement, la connection tcp échoue).
Pour compensé cela j'ai modifié le fichier discovery.py de pychromecast, ligne 58:
-- host = repr(ips[0]) if ips else service.server
++ host = service.server
Afin de n'avoir que le nom de domaine zeroconf du chromecast ("0f177f54-c9d1-f261-0095-601f271c3429.local.")
J'avais déjà rajouté mdns a la config nss de ma VM, la résolution du .local ne pose pas de soucis. A voir si c'est obligatoire.
Étapes à reproduire (pour les bugs)
- Lancé une détection de chromecast
Contexte:
VM Debian 9.11 sur proxmox
Tout a jour
Proposition de solution (optionnel):
Modification du fichier discovery.py de pychromecast, ligne 58:
-- host = repr(ips[0]) if ips else service.server
++ host = service.server
Issue is the latest release of zeroconf dependency (version 0.24.4 released on 30th of December). Any other version of 0.24.X will work.
As a workaround, you can force installation of previous zeroconf version
pip3 install zeroconf==0.24.3