AlexxIT / YandexStation

Управление Яндекс.Станцией и другими устройствами умного дома с Алисой из Home Assistant

Home Page:https://t.me/AlexxIT_SmartHome

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Больше не подтягивает пункты в список покупок

Vinndimon opened this issue · comments

С какого-то момента интеграция перестала синхронизировать список покупок Алисы со списком HA. Можно добавить пункт из HA, и при синхронизации он скопируется в Алису. Но после этого список в HA просто очистится в ноль.

Никаких ошибок в логах при этом нет.

Вероятно связано с #466 и уже поправлено в мастер-версии

@AlexxIT не очень понимаю, что это значит. У меня стоит последняя версия интеграции из HACS — 3.13.2. В ней проблема имеет место.

Обновил HA до версии 2024.3.1. Теперь при вызове скрипта для обновления списка покупок вылезает такая ошибка:

Регистратор: homeassistant.components.script.update_shopping_list
Источник: helpers/script.py:485
интеграция: Скрипт (документация, проблемы)
Первое сообщение: 13:27:25 (1 сообщений)
Последнее сообщение: 13:27:25

Обновить список покупок: Error executing script. Unexpected error for call_service at pos 1: 'NoneType' object is not subscriptable
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/homeassistant/helpers/script.py", line 485, in _async_step
    await getattr(self, handler)()
  File "/usr/local/lib/python3.12/site-packages/homeassistant/helpers/script.py", line 723, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/homeassistant/helpers/script.py", line 685, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/homeassistant/core.py", line 2319, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/homeassistant/core.py", line 2356, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/homeassistant/helpers/service.py", line 905, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/homeassistant/helpers/service.py", line 975, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/config/custom_components/yandex_station/core/yandex_station.py", line 858, in async_play_media
    await self._shopping_list()
  File "/config/custom_components/yandex_station/core/yandex_station.py", line 419, in _shopping_list
    alice_list = RE_SHOPPING.findall(card["text"])
                                     ~~~~^^^^^^^^
TypeError: 'NoneType' object is not subscriptable

такая же проблема, очень уж мне нравилась интеграция списков покупок, теперь совсем не могу без нее..
есть какие-то варианты решения?

Регистратор: homeassistant.components.script.1687341843277
Источник: helpers/script.py:485
интеграция: Скрипт ([документация](https://www.home-assistant.io/integrations/script), [проблемы](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+script%22))
Первое сообщение: 17 марта 2024 г. в 11:27:17 (5 сообщений)
Последнее сообщение: 10:56:06

Обновить список покупок: Error executing script. Unexpected error for call_service at pos 2: 'NoneType' object is not subscriptable
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 485, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 723, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 685, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2319, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2356, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 905, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 975, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/config/custom_components/yandex_station/core/yandex_station.py", line 858, in async_play_media
    await self._shopping_list()
  File "/config/custom_components/yandex_station/core/yandex_station.py", line 419, in _shopping_list
    alice_list = RE_SHOPPING.findall(card["text"])
                                     ~~~~^^^^^^^^
TypeError: 'NoneType' object is not subscriptable

В мастер-версии синхронизация списка покупок работает.
Чтобы перейти с 3.13.2 на мастер нужно запустить службу обновления hacs. Для этого:

  1. заходим в "Панель разработчика" > "Службы";
  2. жмем "Перейти в режим yaml" если уже не в нем;
  3. вводим:
service: update.install
target:
  entity_id: update.yandex_station_update
data:
  version: master
  1. жмем "Вызвать службу";
  2. перезагружаем Home Assisant.

После этого синхронизация списка покупок должно заработать.
Надеюсь поможет, у меня заработало.

@deonoize

Сделал всё по инструкции. Перестала вылезать ошибка, но синхронизация не заработала.

Тогда, к сожалению, не знаю что еще может помочь.

Приложил данные диагностики из HA:

config_entry-yandex_station-a427a3c55b2b403e250126f6a44b12f0.json
error_log.txt

Тогда, к сожалению, не знаю, что еще может помочь.
С начала все работало, а потом при синхронизации происходит добавление списка покупок из ХА в Яндекс, но потом список покупок В ХА удаляется полность.

@AlexxIT спасибо за апдейт!

Синхронизация заработала, но только частично. Если в HA отметить пункт выполненным или удалить, при синхронизации Алиса попробует удалить его у себя, но у неё не получится. В итоге удалённый пункт добавится обратно в HA.

Поправлено в рамках новой задачи