AlexxIT / YandexStation

Управление Яндекс.Станцией и другими устройствами умного дома с Алисой из Home Assistant
https://t.me/AlexxIT_SmartHome
MIT License
1.27k stars 119 forks source link

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

Closed Vinndimon closed 2 months ago

Vinndimon commented 3 months ago

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

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

AlexxIT commented 3 months ago

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

Vinndimon commented 3 months ago

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

Vinndimon commented 3 months ago

Обновил 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
Krabalex commented 3 months ago

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

Регистратор: 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
deonoize commented 3 months ago

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

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

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

Vinndimon commented 3 months ago

@deonoize

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

deonoize commented 3 months ago

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

Vinndimon commented 3 months ago

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

config_entry-yandex_station-a427a3c55b2b403e250126f6a44b12f0.json error_log.txt

R7tur commented 3 months ago

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

AlexxIT commented 3 months ago

https://github.com/AlexxIT/YandexStation/releases/tag/v3.13.3

Vinndimon commented 3 months ago

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

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

AlexxIT commented 2 months ago

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