Closed cyr-ius closed 3 months ago
Bonsoir, Pour le test de la nouvelle version c'est biensur OK j'ai essayé la beta 2.0.3
Sur un nouveau Home assistant RPI5 la connexion echoue systématiquement J'ai supprimé cette version puis installé et configure la version 1.9.0 J'ai réinstallé la version beta 2.0.3, la configuration échoué ci joint un fichier de log avec
le message d'erreur périodique les messages suite à une demande de configuration
@LGO44 , je viens de corriger je suis preneur de ton retour, version beta 2.0.4
j'ai installé la beta 2.0.4 je n'arrive toujours pas au bout de la configuration... Erreur lors du scan de la liveboxbeta 2 0 4.txt
Je viens de mettre à jour vers la version 2.0.4 beta et depuis, mon log Home Assistant est spamé par ceci :
2024-01-20 10:48:47.731 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:48:55.662 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:49:06.682 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:49:27.568 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:50:08.638 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:51:29.610 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:52:50.603 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:54:11.554 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:55:32.768 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:56:53.669 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:58:14.688 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 10:59:35.554 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 11:00:56.407 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 11:02:17.395 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 11:03:38.211 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
2024-01-20 11:04:59.153 ERROR (MainThread) [custom_components.livebox.coordinator] Unexpected error fetching livebox data: cannot access local variable 'count_wired_devices' where it is not associated with a value
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 50, in _async_update_data
devices = await self.async_get_devices(lan_tracking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/coordinator.py", line 99, in async_get_devices
return devices_tracker, count_wireless_devices, count_wired_devices
^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'count_wired_devices' where it is not associated with a value
@LGO44 , @Nardol , les deux erreurs ont été corrigés en version 2.0.5-beta. Ne possèdant plus de livebox. Je vous remercie pour votre participation à ces tests. On avance...
Effectivement, je n'ai plus cette erreur.
Par contre, j'ai ceci dans le log au démarrage de HA :
2024-01-20 12:51:12.987 ERROR (MainThread) [homeassistant.components.button] Error while setting up livebox platform for button
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity_platform.py", line 360, in _async_setup_platform
await asyncio.shield(task)
File "/home/homeassistant/config/custom_components/livebox/button.py", line 20, in async_setup_entry
async_add_entities([RestartButton(coordinator), RingButton(coordinator)], True)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/button.py", line 32, in __init__
super().__init__(coordinator)
TypeError: object.__init__() takes exactly one argument (the instance to initialize)
@Nardol , corrigé en 2.0.7 , on avance. Pas hésiter aussi à déposer le fichier diagnostic qui se base sur un nouveau devellopement.
Chez moi tout fonctionne correctement à priori : les devices trackers semblent OK, les switchs pour le WAN access également et le bouton de reboot fonctionne également.
Chez moi tout fonctionne correctement à priori : les devices trackers semblent OK, les switchs pour le WAN access également et le bouton de reboot fonctionne également.
Génial
Chez moi j'ai installé la version 2.0.7, lors de la configuration impossible de se connecter à la box aucune erreur ne monte deans les logs....
corrigé en 2.0.7 , on avance.
Je confirme, plus d'erreur au démarrage.
Pas hésiter aussi à déposer le fichier diagnostic qui se base sur un nouveau devellopement.
Impossible de télécharger le fichier de diagnostiques, voici ce que j'ai dans le log :
2024-01-20 15:16:03.209 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/aiohttp/web_app.py", line 543, in _handle
resp = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 114, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/ban.py", line 80, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/auth.py", line 233, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/headers.py", line 31, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/view.py", line 149, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/diagnostics/__init__.py", line 249, in get
data = await info.config_entry_diagnostics(hass, config_entry)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/diagnostics.py", line 104, in async_get_config_entry_diagnostics
coordinator.api.system.async_get_remoteaccess,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'System' object has no attribute 'async_get_remoteaccess'
ça y est ça marche . mais il a fallu que je réinstalle une version 1.9.0 que je la configure puis que je fasse une mise a jour.
Pas hésiter aussi à déposer le fichier diagnostic qui se base sur un nouveau devellopement.
Impossible de télécharger le fichier de diagnostiques, voici ce que j'ai dans le log :
C'était un bête problème d'appel des méthodes de l'API, corrigé ici : https://github.com/cyr-ius/hass-livebox-component/pull/95/commits/4d19fc8d1bad8dfed5750f0da883e15757744a9e
Chez moi j'ai installé la version 2.0.7, lors de la configuration impossible de se connecter à la box
Reproduit chez moi aussi, c'était un souci pour récupérer le serial ID de la Livebox, corrigé ici : https://github.com/cyr-ius/hass-livebox-component/pull/95/commits/67aa589f9940e1a5d81985d6dfdfba7c681b3ab2
J'ai également ajouté un peu de debug si une autre erreur se produit lors de la configuration initiale, ça aidera peut-être à debugger les erreurs qui arrivait chez d'autres personnes.
ok , j'ai mergé le PR @brenard , et j'en ai profité pour faire une grosse refonte en créant le fichier entity.py qui permet d'éviter les doublons de déclarations sur les class des sensors et j'en ai profité pour passer les maximums sous EntityDescription.
en 2.0.8-beta A tester.
j'ai testé la 2.0.7 avec ma motif de device tracker OK ci joint ma carte de visu des tracker:
**card: show_header_toggle: false title: Devices type: entities filter: include:
entity_id: device_tracker.* attributes: scanner: LiveboxDeviceScanner options: entities:
icon: mdi:router
secondary_info:
attribute: band
option:
secondary_info: first_seen
show_state: true
state_color: true
card_mod:
style: >-
/ marge entre / div.entity:nth-child(1),div.entity:nth-child(2)
{ margin-right:1em;} / Une longueur relative à la taille du texte
/ / choix adresse Ip ou MAC / div.entity:nth-child( {% if
state_attr(config.entity, 'ip_address') in [ '',None] %}2 {% else
%}1 {% endif %}
)
{display: none !important;
visibility: hidden !important;
position: absolute !important;
} .secondary {padding-left:16px;} / remplissage de 16 pixel a
gauche / {% if state_attr(config.entity, 'is_wireless') == false %}
.secondary
{visibility: hidden;}
.secondary:before
{content: 'Ethernet';
visibility: visible;}
{% else %}
.secondary:after
{content: ' (Level
{% if state_attr(config.entity, 'mesh_node_id') == 0 %}1
{% elif state_attr(config.entity, 'mesh_node_id') == 1 %}3
{% elif state_attr(config.entity, 'mesh_node_id') == 3 %}4
{% else %}?
{% endif %})';
}
{% endif %}
div.entity:nth-child(4),div.entity:nth-child(5),div.entity:nth-child(6),div.entity:nth-child(7),div.entity:nth-child(3)
{ --iron-icon-height: 16px; position: absolute; top: 0px; left:
220px; visibility: hidden; } div.entity:nth-child(
{% if state_attr(config.entity, 'is_wireless')== false %}3
{% elif state_attr(config.entity, 'signal_quality') == 'very bad'
or state_attr(config.entity, 'signal_quality') == 'bad'%}4
{% elif state_attr(config.entity, 'signal_quality') == 'very low'
or state_attr(config.entity, 'signal_quality') == 'low'%}5
{% elif state_attr(config.entity, 'signal_quality') == 'good'
or state_attr(config.entity, 'signal_quality') == 'very good'
or state_attr(config.entity, 'signal_quality') == 'excellent' %}6
{% elif state_attr(config.entity, 'signal_quality') == 'unknown'%}7
{% endif%})
{ visibility: visible;}
:host>state-badge
{
{% if state_attr(config.entity, 'dev_type') != 'others' and state_attr(config.entity, 'dev_type') != 'default' %}
visibility: hidden;
{% endif %}
}
div.entity:nth-child(n+8) {
position: absolute;
top: 0px;
left: 8px;
visibility: hidden;
}
/* Choix de l'icone */ /*
div.entity:nth-child(
{% if state_attr(config.entity, 'dev_type') =='gamebox' %} 8
{% elif state_attr(config.entity, 'dev_type') == 'phone'%} 9
{% elif state_attr(config.entity, 'dev_type') == 'tv' %} 10
{% elif state_attr(config.entity, 'dev_type') == 'dlna' %} 11
{% elif state_attr(config.entity, 'dev_type') == 'computer' %}12
{% elif state_attr(config.entity, 'dev_type') == 'nas' %} 13
{% elif state_attr(config.entity, 'dev_type') == 'notebook' %}14
{% elif state_attr(config.entity, 'dev_type') == 'tablet' %}15
{% elif state_attr(config.entity, 'dev_type') == 'ipcam' %}16
{% elif state_attr(config.entity, 'dev_type') == 'printer' %}17
{% elif state_attr(config.entity, 'dev_type') == 'router' %}18
{% endif %}
)
{ visibility: visible;}
*/
type: custom:multiple-entity-row sort: ignore_case: true method: state numeric: false reverse: false type: custom:auto-entities show_empty: false**
Toujours impossible de récupérer le fichier de diagnostique, et sauf erreur de ma part j'ai toujours la même chose :
2024-01-20 18:57:19.806 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/aiohttp/web_app.py", line 543, in _handle
resp = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 114, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/ban.py", line 80, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/auth.py", line 233, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/headers.py", line 31, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/http/view.py", line 149, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/diagnostics/__init__.py", line 249, in get
data = await info.config_entry_diagnostics(hass, config_entry)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/diagnostics.py", line 104, in async_get_config_entry_diagnostics
coordinator.api.system.async_get_remoteaccess,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'System' object has no attribute 'async_get_remoteaccess'
J'ai pourtant bien mis à jour depuis HACS et redémarré HA.
@Nardol , j'ai commenté cette partie dans la 2.0.9 car cela n'existe pas dans aiosysbus
C'est bien ce qu'il me semblait, je venais justement de vérifier si je trouvais cette méthode dans aiosysbus et j'en étais arrivé à cette conclusion :slightly_smiling_face:
Effectivement, j'arrive maintenant à télécharger le fichier de diagnostiques. Par contre je ne vais pas l'envoyer ici, parce que tous les numéro de téléphone sont écrits.
Encore pour les IP locales aussi je comprends, par contre IP externe (v4 et v6 aussi) je ne sais pas trop, en tout cas elles y sont. Le plus embêtant reste vraiment les numéros de téléphone.
C'est bien ce qu'il me semblait, je venais justement de vérifier si je trouvais cette méthode dans aiosysbus et j'en étais arrivé à cette conclusion 🙂
Effectivement, j'arrive maintenant à télécharger le fichier de diagnostiques. Par contre je ne vais pas l'envoyer ici, parce que tous les numéro de téléphone sont écrits.
Encore pour les IP locales aussi je comprends, par contre IP externe (v4 et v6 aussi) je ne sais pas trop, en tout cas elles y sont. Le plus embêtant reste vraiment les numéros de téléphone.
Si tu peux anonymisé le fichier avec des N° bidons , type 123456 , je suis preneur. voir à laisser juste un ou deux N° bidon C'est juste pour avoir un exemple de mon côté , car n'ayant plus de livebox pas simple pour débugger pour les ip pareills tu met 1.2.3.4 ou ::1 pour ipv6
@LGO44 , la version 2.1.0-beta contient les propostitions que tu avais fait pour enrichir les trackers. Dis moi si cela répnd à ton besoin et bien vérifier si tout cela se met à jour correctement.
Si tu peux anonymisé le fichier avec des N° bidons , type 123456 , je suis preneur. voir à laisser juste un ou deux N° bidon C'est juste pour avoir un exemple de mon côté , car n'ayant plus de livebox pas simple pour débugger pour les ip pareills tu met 1.2.3.4 ou ::1 pour ipv6
Je suis en train de préparer une PR, ça me paraît plus simple qu'anonymiser un tel fichier json :slightly_smiling_face: Y a juste un truc qui me chagrine un peu, c'est que pour l'IPv4 par exemple, il y a un champ json qui s'appelle status. Du coup si on masque tout ce qui s'appelle status, ça va un peu trop filtrer...
@LGO44 , la version 2.1.0-beta contient les propostitions que tu avais fait pour enrichir les trackers. Dis moi si cela répnd à ton besoin et bien vérifier si tout cela se met à jour correctement.
on y est presque 👍
Pour les trackers j'ai amendé cf fichier joint
"connection": "Wifi invité" pour surveiller le type de lien câblé, wifi, wifi invité
"scanner" : "LiveboxDeviceScanner", pour pouvoir filtrer les device tracker en fonction de leur origine
"is_online" : self._device.get("Active"), pour surveiller la présence active d'un équipement
if device.get("InterfaceName") in ["eth6", "wlan0", "wl0","wlguest2","wlguest5"]: wlguest2, wlguest5 wifi invité 2,4Ghz et 5Ghz
Pour la mise à jour: au chargement ou rechargement de l'intégration c'est OK, par contre la mise à jour périodique ne fonctionne pas .
fichier device_tracker.py
"""Support for the Livebox platform.""" from datetime import datetime, timedelta import logging from typing import Any
from homeassistant.components.device_tracker import SourceType from homeassistant.components.device_tracker.config_entry import ScannerEntity from homeassistant.components.sensor import SensorEntityDescription from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import CONF_TRACKING_TIMEOUT, DEFAULT_TRACKING_TIMEOUT, DOMAIN from .coordinator import LiveboxDataUpdateCoordinator from .entity import LiveboxEntity
_LOGGER = logging.getLogger(name)
async def async_setup_entry( hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback ) -> None: """Set up device tracker from config entry.""" coordinator = hass.data[DOMAIN][entry.entry_id] entities = [ LiveboxDeviceScannerEntity( coordinator, SensorEntityDescription(key=f"{uid}_tracker"), device ) for uid, device in coordinator.data.get("devices", {}).items() if "IPAddress" and "PhysAddress" in device ] async_add_entities(entities, True)
class LiveboxDeviceScannerEntity(LiveboxEntity, ScannerEntity): """Represent a tracked device."""
def __init__(
self,
coordinator: LiveboxDataUpdateCoordinator,
description: SensorEntityDescription,
device: dict[str, Any],
) -> None:
"""Initialize the device tracker."""
super().__init__(coordinator, description)
self._device = device
self._old_status = datetime.today()
self._attr_name = device.get("Name")
self._attr_unique_id = device.get("Key")
self._attr_device_info = {
"name": device.get("Name"),
"identifiers": {(DOMAIN, device.get("Key"))},
"via_device": (DOMAIN, coordinator.unique_id),
}
@property
def is_connected(self) -> bool:
"""Return true if the device is connected to the network."""
timeout_tracking = self.coordinator.config_entry.options.get(
CONF_TRACKING_TIMEOUT, DEFAULT_TRACKING_TIMEOUT
)
device = self.coordinator.data.get("devices", {}).get(self.unique_id, {})
status = device.get("Active", False)
if status is True:
self._old_status = datetime.today() + timedelta(seconds=timeout_tracking)
if status is False and self._old_status > datetime.today():
_LOGGER.debug("%s will be disconnected at %s", self.name, self._old_status)
return True
return status
@property
def source_type(self) -> SourceType:
"""Return the source type, eg gps or router, of the device."""
return SourceType.ROUTER
@property
def ip_address(self) -> str:
"""Return ip address."""
return self._device.get("IPAddress")
@property
def mac_address(self) -> str:
"""Return mac address."""
return self._device.get("Key")
@property
def extra_state_attributes(self) -> dict[str, Any]:
"""Return the device state attributes."""
device = self.coordinator.data.get("devices", {}).get(self.unique_id, {})
attrs = {
"interface_name": device.get("InterfaceName"),
"type": device.get("DeviceType"),
"vendor": device.get("VendorClassID"),
"manufacturer": device.get("Manufacturer"),
"first_seen": device.get("FirstSeen"),
"last_connection": device.get("LastConnection"),
"last_changed": device.get("LastChanged"),
"scanner" : "LiveboxDeviceScanner",
"is_online" : self._device.get("Active"),
#"ip_address" : self._device.get("IPAddress"),
}
if device.get("InterfaceName") in [
"eth1",
"eth2",
"eth3",
"eth4",
"eth5"
]:
attrs.update({"is_wireless": False, "band": "Wired","connection":"Ethernet"})
if device.get("InterfaceName") in ["eth6", "wlan0", "wl0","wlguest2","wlguest5"]:
match device.get("SignalStrength", 0) * -1:
case x if x > 90:
signal_quality = "very bad"
case x if 80 <= x < 90:
signal_quality = "bad"
case x if 70 <= x < 80:
signal_quality = "very low"
case x if 67 <= x < 70:
signal_quality = "low"
case x if 60 <= x < 67:
signal_quality = "good"
case x if 50 <= x < 60:
signal_quality = "very good"
case x if 30 <= x < 50:
signal_quality = "excellent"
case _:
signal_quality = "unknown"
attrs.update(
{
"is_wireless": True,
"band": self._device.get("OperatingFrequencyBand"),
"signal_strength": self._device.get("SignalStrength"),
"signal_quality": signal_quality,
"connection": "Wifi"
}
)
if device.get("InterfaceName") in ["wlguest2","wlguest5"]:
attrs.update(
{
"is_wireless": True,
"band": self._device.get("OperatingFrequencyBand"),
"connection": "Wifi invité"
}
)
return attrs
@property
def icon(self) -> str:
"""Return icon."""
match self._device.get("DeviceType"):
case "Computer" | "Desktop iOS" | "Desktop Windows" | "Desktop Linux":
return "mdi:desktop-tower-monitor"
case "Laptop" | "Laptop iOS" | "Laptop Windows" | "Laptop Linux":
return "mdi:laptop"
case "Switch4" | "Switch8" | "Switch":
return "mdi:switch"
case "Acces Point":
return "mdi:access-point-network"
case "TV" | "TVKey" | "Apple TV":
return "mdi:television"
case "HomePlug":
return "mdi:network"
case "Printer":
return "mdi:printer"
case "Set-top Box TV UHD" | "Set-top Box":
return "mdi:dlna"
case "Mobile iOS" | "Mobile" | "Mobile Android":
return "mdi:cellphone"
case "Tablet iOS" | "Tablet" | "Tablet Android" | "Tablet Windows":
return "mdi:cellphone"
case "Game Console":
return "mdi:gamepad-square"
case "Homepoint":
return "mdi:home-automation"
case _:
return "mdi:devices"
je n'ai pas pu encore tester l'accès distant
@LGO44 ,
"scanner" n'est pas utile car si tu veux prendre uniquement les trackers de la livebox , il te suffit de préciser dans auto-entites , le domain et l'intégration , je ne mets pas d'information redondante
``````filter:
include:
- domain: device_tracker
integration: livebox
Pareil concernant l'informartion is_wireless à True/False alors qu'il existe Connection qui vaut ethernet,wifi,guestwifi C'es très simple de savoir que nous sommes en Wifi , il suffit de faire un
state_attr(config.entity, 'connection') != "ethernet"
Peux tu m'expliquer pourquoi tu mets eth6 dans la liste des Wifi ? es-tu sur ? car il faut que cela fonctionne chez tous le monde.
Par contre , j'ai ajouté ta proposition de Guest Wifi
Voir la version 2.1.3-beta
@LGO44 ,
"scanner" n'est pas utile car si tu veux prendre uniquement les trackers de la livebox , il te suffit de préciser dans auto-entites , le domain et l'intégration , je ne mets pas d'information redondante
``````filter: include: - domain: device_tracker integration: livebox
Pareil concernant l'informartion is_wireless à True/False alors qu'il existe Connection qui vaut ethernet,wifi,guestwifi C'es très simple de savoir que nous sommes en Wifi , il suffit de faire un
state_attr(config.entity, 'connection') != "ethernet"
Peux tu m'expliquer pourquoi tu mets eth6 dans la liste des Wifi ? es-tu sur ? car il faut que cela fonctionne chez tous le monde.
Par contre , j'ai ajouté ta proposition de Guest Wifi
Voir la version 2.1.3-beta
eth6 : est renvoyé pour le port wifi
test version beta 2.1.4
les équipements sont mis à jour, si un équipement se connecte il est tracé mais ses attributs ne sont pas mis à jour.
exemple : je passe un téléphone du réseau wifi vers wifi_invité il est visualisé en présent sur les 2 réseaux...
Je pense que l'attribut is_online est nécessaire pour surveiller la présence active.
test version beta 2.1.4
les équipements sont mis à jour, si un équipement se connecte il est tracé mais ses attributs ne sont pas mis à jour.
exemple : je passe un téléphone du réseau wifi vers wifi_invité il est visualisé en présent sur les 2 réseaux...
Je pense que l'attribut is_online est nécessaire pour surveiller la présence active.
is_online correspond simplement à is_connected , il s'agit du même code. Dans la logique , ton téléphone passant de Wifi à Wifi invité , d'une certaine manière , il ne bouge pas , il est toujours Is_connected à True tout les attributs changent pas sauf "connection" qui passe de wifi à guestwifi
Après peut être qu'il apparait deux fois dans la livebox. Mais comme la clé unique est la mac adress cela devrait pas être le cas. Si tu as un cas , je suis preneur du fichier de diagnostic pour voir sous quel forme cela se présente
Les attributs des device-trackers ne sont pas mis a jour Iphone connecté sur wifi guest.pdf l'integration n'a pas mis à jour l'adresse IP de iPhone car..
J'y pense, pendant que je fais ma PR je m'apperçois qu'il y a #89 qui touche aussi aux données de diagnostique, entre autres un peu aux données à masquer que je suis en train de compléter. Sauf erreur il n'y a que pour la clé Wi-Fi, du coup je risque de causer des conflits...
J'y pense, pendant que je fais ma PR je m'apperçois qu'il y a #89 qui touche aussi aux données de diagnostique, entre autres un peu aux données à masquer que je suis en train de compléter. Sauf erreur il n'y a que pour la clé Wi-Fi, du coup je risque de causer des conflits...
je ne sais pas si cela touche les trackers, mais mon problème est inchangé, pas de mise à jour dynamique des attributs
je ne sais pas si cela touche les trackers, mais mon problème est inchangé, pas de mise à jour dynamique des attributs
Non, ça touche uniquement au fichier de diagnostiques et je n'ai pas encore ouvert la PR, j'ajoute des données dans un nombre monstrueux, peut-être que je veux en masquer trop d'ailleurs mais c'est un autre sujet :laughing:
le #89 est obsolète . Je vais pas le merger. Si vous regardez bien j'ai mis à jour le fichier de diag
@LGO44 , il y a un truc que je comprends pas , tu me parles de l'attribut is_online mais je l'ai retiré du code. Donc du coup , je comprends comment tu peux le voir dans ton pdf
@LGO44 , il y a un truc que je comprends pas , tu me parles de l'attribut is_online mais je l'ai retiré du code. Donc du coup , je comprends comment tu peux le voir dans ton pdf
@cyr-ius Désolé, je l'ai recréé pour rechercher l'origine du problème, "is_online" : self._device.get("Active"), pour surveiller la présence active d'un équipement Je pense que l'origine du problème c'est que les données device tracker ne sont pas recalculées périodiquement
@LGO44 , il y a un truc que je comprends pas , tu me parles de l'attribut is_online mais je l'ai retiré du code. Donc du coup , je comprends comment tu peux le voir dans ton pdf
@cyr-ius Désolé, je l'ai recréé pour rechercher l'origine du problème, "is_online" : self._device.get("Active"), pour surveiller la présence active d'un équipement Je pense que l'origine du problème c'est que les données device tracker ne sont pas recalculées périodiquement
Ce que je comprends pas c'est qu'on voit bien le Last_changed qui est à jour. Je vais ajouter des traces de debug comme ça si tu actives le mode debug tu verras si cela bouge ou pas. Je vais en mettre dans le extra_attributes , ainsi si tu vois ce debug c'est que le code est bien executé Je te fais une 2.1.6-beta de suite
le #89 est obsolète . Je vais pas le merger. Si vous regardez bien j'ai mis à jour le fichier de diag
Ah oui, au temps pour moi. J'ai bien la clé Wi-Fi par exemple dans les données à masquer Je n'avais pas fait gaffe désolé. Je test ce que j'ai rajouté et je fais une PR du coup.
le #89 est obsolète . Je vais pas le merger. Si vous regardez bien j'ai mis à jour le fichier de diag
Ah oui, au temps pour moi. J'ai bien la clé Wi-Fi par exemple dans les données à masquer Je n'avais pas fait gaffe désolé. Je test ce que j'ai rajouté et je fais une PR du coup.
Pas de soucis , tu peux pousser un PR , et si il y a conflit , je ferais la correction nécessaire
@LGO44 , j'ai poussé une 2.1.6 tu vaus pouvoir active le debug mode. Mais j'ai vérifié en créant une champs alératoire dans le coordinator sur les device trackers . je vois bien la valeur changé à chaque fois , que celui est rejoué. Ce champs apparait correctement dans l'extra attribute. Donc pour moi , il y a aucun pbl de rafraichissement de valeur.
@LGO44 , je crois savoir ce qui te fait penser que cela change pas. Oublie pas que j'ai codé un timeout tracking que tu peux changer dans les options du Config Flow pour éviter des déconnexions intempestives quand l'équipement est à la limite du Wifi. Le status is_connected ne change que si la valeur est conservé pendant toute la durée. Par default , c'est 300 secondes , soit 5minutes Il faut donc que l'équipement reste 5min absent du réseau avant qu'il change de status A change dans le config flow option si tu veux plus court
@LGO44 , je crois savoir ce qui te fait penser que cela change pas. Oublie pas que j'ai codé un timeout tracking que tu peux changer dans les options du Config Flow pour éviter des déconnexions intempestives quand l'équipement est à la limite du Wifi. Le status is_connected ne change que si la valeur est conservé pendant toute la durée. Par default , c'est 300 secondes , soit 5minutes Il faut donc que l'équipement reste 5min absent du réseau avant qu'il change de status A change dans le config flow option si tu veux plus court
@cyr-ius j'ai poursuivi mes tests, les valeurs des attributs sont bien rafraichies cycliquement , donc désolé pour cette incompréhension, toutefois au démarrage de l'intégration les device_trackers récupèrent l'adresse IP des équipements connectés puis plus ensuite, j'ai rajouté un extra attribut: "ip" : device.get("IPAddress"),
Le délai de 5 minutes me parait long.
Il me faudra procéder à quelques mises à jour de ma carte de surveillance:
@LGO44 , effectivement l'adresse ip restait fixe. Je viens de corriger cela dans le version 2.1.9-beta. J'ai fait simple, à présent tous les champs du device_tracker sont dynamique.
Concernant le 5min , tu peux le régler via les options de l'addon. Cela a été mise en place il y a longtemps en raison de l' iPhone qui se connecte/déconecte toutes les minutes quand il est en veille (économie de batterie)
Dis moi ce que tu penses de cette version ? peut être la dernière avant la bascule vers la branche principale. Toujours preneur d'un fichier de daignostic. Sahant que @Nardol a censuré tout ce qui était sensible.
Hm... à moins que j'étais passé à côté avant, après la mise à jour j'ai des entités en double avec une indisponible sur les deux.
Et du coup, le journal est totalement vide.
Voici un fichier de diagnostique : config_entry-livebox-6dcc945708e06fff6ed29331209bfa41.json.txt
J'ai dû remplacer mon IP publique par 1.2.3.4, pour ce qui est des IP locales j'ai tout laissé, il en reste pas mal (config de base) mais avec des noms genre status ou autres génériques que je n'avais pas censuré dans la PR mais si tu penses que ça ne peut pas poser d'autres soucis à toi de voir :slightly_smiling_face:
@LGO44 , effectivement l'adresse ip restait fixe. Je viens de corriger cela dans le version 2.1.9-beta. J'ai fait simple, à présent tous les champs du device_tracker sont dynamique.
Concernant le 5min , tu peux le régler via les options de l'addon. Cela a été mise en place il y a longtemps en raison de l' iPhone qui se connecte/déconecte toutes les minutes quand il est en veille (économie de batterie)
Dis moi ce que tu penses de cette version ? peut être la dernière avant la bascule vers la branche principale. Toujours preneur d'un fichier de daignostic. Sahant que @Nardol a censuré tout ce qui était sensible.
Pour moi c'est tout bon! merci pour tout ton travail
@Nardol, un grand merci, ton fichier est précieux. Du coup , j ai identifié le bug du status Wan. Pour le fichier diag, les IP local n ont aucune importance on a tous les mêmes. J ai vu quelques champs a censuré comme SelfPin ou secretRadius Pour l IP public , je vais ajouter une fonction spéciale qui censure l IP plutôt que tout le status.
Sinon pour les capteurs en doublons, j ai aussi identifié le bug donc corrigé dans la 2.2.0-beta Dis moi si tout est revenu à la normale
Toujours preneur d'un fichier de daignostic
Ok sur adresse mail privée
@cyr-ius , pour info tous mes test ont été effectuée sur une livebox 4
j ai identifié le bug du status Wan.
Je confirme, il est maintenant à connecter.
Pour le fichier diag, les IP local n ont aucune importance on a tous les mêmes.
Il me semblait que ça pouvait se paramétrer.
Sinon pour les capteurs en doublons, j ai aussi identifié le bug donc corrigé dans la 2.2.0-beta Dis moi si tout est revenu à la normale
J'ai toujours tout en double après la MAJ, rien n'a été supprimé malheureusement.
@Nardol , Même si tu changes les ip locales , cela ne change rien. les ips locales sont identique sur toute la planète. Il s'agit de range réservé pour ces usages. https://fr.wikipedia.org/wiki/R%C3%A9seau_priv%C3%A9
Malheureusement je peux pas supprimer les sensors en double. J'ai simplement rebasculer vers les sensors que tu utilisais à l'origine. (si j'ai bien corrigé le truc). Un senseur ne peut être détruit que par un admin. Il suffit de cliquer sur celui griser et faire delete. Sinon si tu installes la dernière version , j'ai rajouté un nouveau senseur , autour du Dynamic DNS , celui-ci t'informe si il y a un pbl d'uptate vers OVH ou pas. Voyant que cette fonction était disponible , je me suis dis que cela pouvait être bien de vérifier ce type de chose. Le capteur est désactivé par défault , à toi de l'activé au besoin. J'en ai profité aussi pour rajouter deux senseurs sur les stats Wifi. Je sais pas si cela peut être utile.
@Nardol , Même si tu changes les ip locales , cela ne change rien. les ips locales sont identique sur toute la planète. Il s'agit de range réservé pour ces usages. https://fr.wikipedia.org/wiki/R%C3%A9seau_priv%C3%A9
Oui bien sûr, ce que je voulais dire c'est que d'une personne à l'autre on n'utilise pas tous le même de ces rangs réservés donc ça révèle une partie de la config qu'on ne souhaite pas forcément révéler. Après bon les IPv4 locales d'une LiveBox il y a le NAT donc peut-être que je pouce un peu loin la confidentialité :smile:
Malheureusement je peux pas supprimer les sensors en double. J'ai simplement rebasculer vers les sensors que tu utilisais à l'origine. (si j'ai bien corrigé le truc). Un senseur ne peut être détruit que par un admin. Il suffit de cliquer sur celui griser et faire delete.>
Ah oui d'accord, c'est un point que je n'ai jamais su, si on pouvait supprimer une entité depuis l'intégration. Encore du mal à saisir toutes les subtilités de coder pour HA, ce qui me bloque d'ailleurs pour y contribuer plus...
Sinon si tu installes la dernière version , j'ai rajouté un nouveau senseur , autour du Dynamic DNS , celui-ci t'informe si il y a un pbl d'uptate vers OVH ou pas. Voyant que cette fonction était disponible , je me suis dis que cela pouvait être bien de vérifier ce type de chose. Le capteur est désactivé par défault , à toi de l'activé au besoin. J'en ai profité aussi pour rajouter deux senseurs sur les stats Wifi. Je sais pas si cela peut être utile.
Il semble y avoir un souci avec le capteur DDNS, en l'activant j'ai ça dans le log :
2024-01-25 10:25:36.193 ERROR (MainThread) [homeassistant.components.binary_sensor] Error adding entities for domain binary_sensor with platform livebox
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity_platform.py", line 507, in async_add_entities
await asyncio.gather(*tasks)
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity_platform.py", line 752, in _async_add_entity
await entity.add_to_platform_finish()
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 1282, in add_to_platform_finish
self.async_write_ha_state()
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 945, in async_write_ha_state
self._async_write_ha_state()
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 1066, in _async_write_ha_state
state, attr, capabilities, shadowed_attr = self.__async_calculate_state()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 1003, in __async_calculate_state
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 951, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/binary_sensor/__init__.py", line 300, in state
if (is_on := self.is_on) is None:
^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/binary_sensor.py", line 106, in is_on
return self.entity_description.value_fn(self.coordinator.data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/binary_sensor.py", line 72, in <lambda>
value_fn=lambda x: x.get("ddns", {}).get("status", "").lower() != "updated",
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'get'
2024-01-25 10:25:36.206 ERROR (MainThread) [homeassistant.components.binary_sensor] Error while setting up livebox platform for binary_sensor
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity_platform.py", line 368, in _async_setup_platform
await asyncio.gather(*pending)
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity_platform.py", line 507, in async_add_entities
await asyncio.gather(*tasks)
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity_platform.py", line 752, in _async_add_entity
await entity.add_to_platform_finish()
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 1282, in add_to_platform_finish
self.async_write_ha_state()
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 945, in async_write_ha_state
self._async_write_ha_state()
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 1066, in _async_write_ha_state
state, attr, capabilities, shadowed_attr = self.__async_calculate_state()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 1003, in __async_calculate_state
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity.py", line 951, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/components/binary_sensor/__init__.py", line 300, in state
if (is_on := self.is_on) is None:
^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/binary_sensor.py", line 106, in is_on
return self.entity_description.value_fn(self.coordinator.data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/homeassistant/config/custom_components/livebox/binary_sensor.py", line 72, in <lambda>
value_fn=lambda x: x.get("ddns", {}).get("status", "").lower() != "updated",
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'get'
En ce qui concerne le Wi-Fi ça n'est pas ma livebox qui le gère (vilain double-NAT sans mode bridge) du coup je ne pourrais pas tester mais ça reste sympa ! C'est normal qu'ils s'appellent wifif ?
This version implements asynchronous calls in order to gain performance. While maintaining the same functionalities Your feedback is necessary before implementation in the standard branch
https://github.com/cyr-ius/hass-livebox-component/tree/2.0.0-beta
This issue is available to provide feedback on version 2.x.x-beta