Redémarrage de home assistant

Bonjour à tous,

J’ai mon home assistant qui reboot tout seul pour, je ne sais quelles raisons.

Home assistant installer sur HA BLUE

Avez-vous un moyen pour connaitre le pourquoi ?

et pourtant home assitant a reboot ce matin puisque j’ai un message tts qui est annoncer quand home assistant reboot avec cette automation:

alias: Notification home assistant démarré
description: ""
triggers:
  - trigger: homeassistant
    event: start
....
1 « J'aime »

Hello,

Pour ça il faudrait déjà nous donner du grain à moudre :slight_smile: et ici, ce sont des logs,

Il faut aller voir ça dans Paramètres > système > journaux et regarder si il y a des erreurs, et si oui joindre le contenu préformaté avec </> dans la fenêtre ou tu saisis ton messages ( pour la partie logs)

ça donnera un truc comme ça

logs avec tout son contenu

cdt

c’est pas ton stockage qui commence a fatiguer ?

la configuration, c’est aussi pour les fondateurs :grin:

Ma configuration


Texte à remplacer par votre configuration

Comment récupérer ma configuration :
Dans votre HA, Menu latéral Paramètres > Système > Corrections puis les trois petits points en haut a droite > Informations Système puis une fois en bas Copier


3 « J'aime »

il me prend pour un jambon lui :joy:

@freetronic je sais comment envoyer les logs :slight_smile:

les voici:

e[33m2026-02-06 17:30:00.160 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.161 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.162 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.163 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.165 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.166 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.168 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.169 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.170 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.172 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.173 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.174 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.175 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.176 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.178 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.180 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.181 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:30:00.182 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[31m2026-02-06 17:30:04.354 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[31m2026-02-06 17:31:25.059 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[33m2026-02-06 17:31:56.559 WARNING (MainThread) [custom_components.advanced_trading_wallet.const] No data received for stock: XRPe[0m
e[33m2026-02-06 17:31:56.745 WARNING (MainThread) [custom_components.advanced_trading_wallet.const] No data received for crypto: hbare[0m
e[33m2026-02-06 17:31:56.746 WARNING (MainThread) [custom_components.advanced_trading_wallet.const] No new data fetched, retaining previous data.e[0m
e[31m2026-02-06 17:32:45.540 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[31m2026-02-06 17:34:06.219 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[31m2026-02-06 17:35:26.597 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[31m2026-02-06 17:36:46.907 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 102, in unpad
    raise ValueError("PKCS#7 padding is incorrect.")
ValueError: PKCS#7 padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[31m2026-02-06 17:38:07.521 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 102, in unpad
    raise ValueError("PKCS#7 padding is incorrect.")
ValueError: PKCS#7 padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[33m2026-02-06 17:38:30.870 WARNING (SyncWorker_0) [annotatedyaml.constructors] YAML file /config/themes/rounded-bubble.yaml contains duplicate key "icon-active-color". Check lines 136 and 154e[0m
e[31m2026-02-06 17:39:27.795 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[31m2026-02-06 17:40:48.415 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[33m2026-02-06 17:41:56.559 WARNING (MainThread) [custom_components.advanced_trading_wallet.const] No data received for stock: XRPe[0m
e[33m2026-02-06 17:41:56.734 WARNING (MainThread) [custom_components.advanced_trading_wallet.const] No data received for crypto: hbare[0m
e[33m2026-02-06 17:41:56.734 WARNING (MainThread) [custom_components.advanced_trading_wallet.const] No new data fetched, retaining previous data.e[0m
e[31m2026-02-06 17:41:59.691 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo xcn onyxcoin prix: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.691 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 757, in _extract_data_price_main_primary
    return api_data["current_price"] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.693 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo xrp ripple prix: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.694 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 757, in _extract_data_price_main_primary
    return api_data["current_price"] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.696 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo jérome/ludo ada coinbase: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.696 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 757, in _extract_data_price_main_primary
    return api_data["current_price"] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.706 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo jérome/ludo xcn coinbase: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.706 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 757, in _extract_data_price_main_primary
    return api_data["current_price"] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.709 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo ondo cardanp prix: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.709 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 757, in _extract_data_price_main_primary
    return api_data["current_price"] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.712 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo jérome/ludo hbar coinbase: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.712 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 757, in _extract_data_price_main_primary
    return api_data["current_price"] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.715 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo hbar hetera prix: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.715 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 757, in _extract_data_price_main_primary
    return api_data["current_price"] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.718 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo xcn onyxcoin prix: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.719 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 1401, in _async_update
    api_data = await self._fetch_price_data_main(api_data)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 900, in _fetch_price_data_main
    raise ValueError()
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 763, in _extract_data_price_simple_primary
    return api_data[self.currency_name] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.723 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo xrp ripple prix: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.723 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 1401, in _async_update
    api_data = await self._fetch_price_data_main(api_data)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 900, in _fetch_price_data_main
    raise ValueError()
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 763, in _extract_data_price_simple_primary
    return api_data[self.currency_name] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.726 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo jérome/ludo ada coinbase: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.727 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 1401, in _async_update
    api_data = await self._fetch_price_data_main(api_data)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 900, in _fetch_price_data_main
    raise ValueError()
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 763, in _extract_data_price_simple_primary
    return api_data[self.currency_name] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.740 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo jérome/ludo xcn coinbase: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.741 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 1401, in _async_update
    api_data = await self._fetch_price_data_main(api_data)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 900, in _fetch_price_data_main
    raise ValueError()
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 763, in _extract_data_price_simple_primary
    return api_data[self.currency_name] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.746 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo ondo cardanp prix: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.746 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 1401, in _async_update
    api_data = await self._fetch_price_data_main(api_data)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 900, in _fetch_price_data_main
    raise ValueError()
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 763, in _extract_data_price_simple_primary
    return api_data[self.currency_name] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.750 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo jérome/ludo hbar coinbase: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.750 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 1401, in _async_update
    api_data = await self._fetch_price_data_main(api_data)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 900, in _fetch_price_data_main
    raise ValueError()
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 763, in _extract_data_price_simple_primary
    return api_data[self.currency_name] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:41:59.754 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] CryptoinfoAdvanced error fetching update for Cryptoinfo hbar hetera prix: TypeError: 'NoneType' object is not subscriptablee[0m
e[31m2026-02-06 17:41:59.754 ERROR (MainThread) [custom_components.cryptoinfo_advanced.const.const] Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 1401, in _async_update
    api_data = await self._fetch_price_data_main(api_data)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 900, in _fetch_price_data_main
    raise ValueError()
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 739, in _async_api_fetch
    primary_data = extract_primary(api_data)
  File "/config/custom_components/cryptoinfo_advanced/crypto_sensor.py", line 763, in _extract_data_price_simple_primary
    return api_data[self.currency_name] * float(self.multiplier)
           ~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
e[0m
e[31m2026-02-06 17:42:09.054 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[31m2026-02-06 17:43:29.733 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[31m2026-02-06 17:44:50.174 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m
e[33m2026-02-06 17:45:00.116 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.117 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.117 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.117 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.118 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.118 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.118 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.118 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.118 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.119 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.119 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.119 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.119 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.120 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.120 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.120 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.120 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.121 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.121 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.121 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.121 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.121 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.122 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.122 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.123 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.123 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.123 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.123 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.124 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.124 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.124 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.124 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.125 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.125 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.125 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.125 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.126 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.126 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[33m2026-02-06 17:45:00.126 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'precipitation' when rendering '{% if forecast['weather.herblay'].forecast is defined
      and forecast['weather.herblay'].forecast | length > 0 %}
  [
  {%- for f in forecast['weather.herblay'].forecast %}
    {
      "datetime": "{{ as_local(strptime(f.datetime, '%Y-%m-%dT%H:%M:%S%z')) }}",
      "condition": "{{ f.condition }}",
      "temperature": {{ f.temperature }},
      "precipitation": {{ f.precipitation }},
      "wind_speed": {{ f.wind_speed }},
      "wind_bearing": {{ f.wind_bearing }},
      "humidity": {{ f.humidity if f.humidity is defined else 'null' }},
      "cloud_coverage": {{ f.cloud_coverage if f.cloud_coverage is defined else 'null' }},
      "uv_index": {{ f.uv_index if f.uv_index is defined else 'null' }}
    }{{ "," if not loop.last }}
  {%- endfor %}
  ]
{% else %}
  []
{% endif %}'e[0m
e[31m2026-02-06 17:46:10.639 ERROR (MainThread) [custom_components.pronote.coordinator] Unexpected error fetching TIAGO (via compte parent) data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 325, in aes_decrypt
    return Padding.unpad(cipher.decrypt(data), 16)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")
ValueError: Padding is incorrect.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 416, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/pronote/coordinator.py", line 156, in _async_update_data
    client = await self.hass.async_add_executor_job(get_pronote_client, config_data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/pronote/pronote_helper.py", line 40, in get_pronote_client
    client = get_client_from_qr_code(data)
  File "/config/custom_components/pronote/pronote_helper.py", line 140, in get_client_from_qr_code
    ).token_login(
      ~~~~~~~~~~~^
        pronote_url=qr_code_url,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
        client_identifier=qr_code_client_identifier,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 272, in token_login
    return cls(
        pronote_url,
    ...<6 lines>...
        device_name=device_name,
    )
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 987, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        pronote_url,
        ^^^^^^^^^^^^
    ...<7 lines>...
        device_name,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 151, in __init__
    self.logged_in = self._login()
                     ~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/pronotepy/clients.py", line 337, in _login
    dec = e.aes_decrypt(bytes.fromhex(challenge))
  File "/usr/local/lib/python3.13/site-packages/pronotepy/pronoteAPI.py", line 327, in aes_decrypt
    raise CryptoError(
        "Decryption failed while trying to un pad. (probably bad decryption key/iv)"
    )
pronotepy.exceptions.CryptoError: ('Decryption failed while trying to un pad. (probably bad decryption key/iv)', 'exception happened during login -> probably bad username/password')e[0m

1 « J'aime »

je vois que tu as pronote ?

j’ai souvent lu que cette intégration est moisie

c’est pas elle qui partirai en live et mettrai en vrac ton HA blue ?

1 « J'aime »

Bas, j’ai cette intégration depuis des mois sans problème et je ne sais pour quelle raison on n’a pas de log qui indique pourquoi HA restart.

elle crache plein d’erreurs en attendant

si c’est un probleme hardware tu auras rien dans les logs

Re,

Arf désolé, j’ai répondu comme d’hab, à force on ne regarde même plus les pseudos :upside_down_face:

Edit coincidence, ça fait 2 jours de suite que je suis obligé de reboot à chaud, et je me souviens avoir vu une erreur forecast dans mes logs, mais vu que je faisais des tests avec pas mal de minigraph, j’ai mis ça sur le compte des calculs de points à faire, là j’ai tout viré sauf 1 carte, l’observer me donnait tout ok. Hier j’ai pu noter une brusque montée en charge du cpu (pi5)

cdt

1 « J'aime »

@barto_95, pronote qui reviens en cause. Peu être le soucis chez toi. A tester d’arrêter l’addon, pour voir si le système ne reboot plus.

1 « J'aime »

Re,

pas eu de plantage de mon côté aujourd’hui ( je nais pas pronote au cas où ).

cdt

3 messages ont été fusionnés à un sujet existant : Reboot régulier de ha

YEs, je vais coupe pronote et voir si dans la semaine, j’ai encore des reboot ou non.

Je vous tiens au courant

Salut,

de mon côté mes 2 cas de reboots pas prévu étaient, les 2 liés à des integration custom:

  • Reboot sans trace ni indice, une intégration Samsung foireuse.
  • Reboot pour cause de Ram saturée, intégration qui a une fuite de mémoire dès que mon appareil est injoignable..
2 « J'aime »

je reviens car mes soucis de re - start ha ne sont tjs pas résolus ;

  • j’ai ouvert un tiket chez mon fournisseur car j’ai de nombreuse coupure internet depuis 2 mois ( 10 / jours environ )
  • j’ai une question qui pour l’instant est sans réponse ;est que les caméras peuvent me provoquer des déconextions de HA ? ( 15 cameras toutes en rj 45 g )
  • Je vous transmets également mes logs si vous pouvez m’aider de ce cotés ``

Merci

System Information

version core-2026.2.3
installation_type Home Assistant OS
dev false
hassio true
docker true
container_arch amd64
user root
virtualenv false
python_version 3.13.11
os_name Linux
os_version 6.12.67-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.5
Stage running
Available Repositories 2815
Downloaded Repositories 27
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 17.1
update_channel stable
supervisor_version supervisor-2026.02.2
agent_version 1.8.1
docker_version 29.1.3
disk_total 916.2 GB
disk_used 19.6 GB
nameservers 192.168.0.1
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons Z-Wave JS (1.0.0), Matter Server (8.2.1), Duck DNS (1.26.0), Grafana (12.1.0), File editor (5.8.0), WireGuard (0.13.0)
Dashboards
dashboards 9
resources 23
views 24
mode storage
Network Configuration
adapters lo (disabled), enp86s0 (enabled, default, auto), wlp87s0f0 (disabled), hassio (disabled), docker0 (disabled), veth16dc3c5 (disabled), veth0742419 (disabled), vethff8b096 (disabled), veth8fb8c61 (disabled), veth00a6ac4 (disabled), veth7dc494b (disabled), veth43ec0b7 (disabled), veth565e1d9 (disabled), vethf9078cf (disabled)
ipv4_addresses lo (127.0.0.1/8), enp86s0 (192.168.0.160/24), wlp87s0f0 (192.168.0.203/24), hassio (172.30.32.1/23), docker0 (172.30.232.1/23), veth16dc3c5 (), veth0742419 (), vethff8b096 (), veth8fb8c61 (), veth00a6ac4 (), veth7dc494b (), veth43ec0b7 (), veth565e1d9 (), vethf9078cf ()
ipv6_addresses lo (::1/128), enp86s0 (fe80::1535:798d:fe44:9a9c/64), wlp87s0f0 (fe80::c9ab:fb43:5286:bba3/64), hassio (fd0c:ac1e:2100::1/48, fe80::d0aa:6dff:fe0e:a41e/64), docker0 (fe80::6c54:76ff:fecb:7155/64), veth16dc3c5 (fe80::cc35:ccff:fe7b:1365/64), veth0742419 (fe80::f865:6aff:fec5:a397/64), vethff8b096 (fe80::504e:f9ff:fee2:3df4/64), veth8fb8c61 (fe80::54f6:21ff:fe49:aeb4/64), veth00a6ac4 (fe80::640d:a4ff:fe20:bb99/64), veth7dc494b (fe80::6c49:35ff:fed6:d266/64), veth43ec0b7 (fe80::ac78:6aff:fe67:333d/64), veth565e1d9 (fe80::a895:13ff:fec0:b8ba/64), vethf9078cf (fe80::e80f:ff:fed6:6513/64)
announce_addresses 192.168.0.160, fe80::1535:798d:fe44:9a9c
Recorder
oldest_recorder_run 11 février 2026 à 23:22
current_recorder_run 22 février 2026 à 12:45
estimated_db_size 583.16 MiB
database_engine sqlite
database_version 3.49.2

Salut,
ca semble être un sujet différent du port original de Barto…
Vaut mieux créer un nouveau sujet, ou répondre à ton sujet original.
Mais.. 15 Caméras :sweat_smile:

1 « J'aime »

Salut,
Je lui ai déjà dit et déplacé des messages de ce sujet vers son sujet :

Mais, il continue…

1 « J'aime »

pour info depuis que j’ai désactivé pronote et deux autres intégrations plus de problème de reboot chez moi

3 « J'aime »

Hello,

Pour mon cas, c’était à priori bien la masse de minigraph, pas eu besoin de reboot à chaud depuis que j’ai fait le ménage, aucune intégrations / apps désactvées que ce soit en 2026.1 ou en 2026.2 que j’ai maj ce week.

cdt

Salut,
Tu veux dire que tu avais trop de cartes avec mini-graph et que le système rebootait ?