n0name45 / node-red-contrib-yandex-station-management

Модуль node-red-contrib-yandex-station-management для управления умными колонками от Яндекс
25 stars 6 forks source link

Не находит станцию #18

Open romanitch86 opened 1 year ago

romanitch86 commented 1 year ago

Добрый день. Присоединяюсь в первый очередь к благодарностям за вашу работу. Использую ваши ноды для того чтобы Алиса озвучивала презентации. Но столкнулся с проблемой. У нас сеть на базе роутера Микротик. Две колонки одна яндекс станция мини (первая версия), вторая колонка тоже мини второй версии подключены по вайфаю к микроту. Нод ред установлен на сервер с хоум асистант сам сервер подключен по ethernet. изначально обе колонки нод ред видит хорошо, все команюы с нод реда поступают отлично на колонку. Затем мы в отдельную подсеть в микротике подключаем третью станцию яндекс мини 2, в этой же подсети отдельный нод ред и клонока в нем не находится, пробовал прописать айпишник, вроде как после кнопки обновления рядом со станциями колонка появляется ее выбираю но она не сохраняется и не работает, пробовал нод ред ставить на разные устройства не помогло. Затем я яндекс мини первой версии с перевожу в подсеть там где была проблема и она без проблем находится. А ту которую колонку не мог найти я переношу в первую подсеть она тоже находтися. Ну вроде все проблемы решились сами по себе. Сегодня там где у меня работали две колонки начинаются проблемы, на колонку по сценарию отправляются определенные голосовые сценарии и вместо нужного текста колонка периодически произносила чтото другое по типу: "не хочу" и так далее...., я попробовал перезапустить нод-ред, и сейчас вообще обе колонки не определяются. В чем может быть проблема? Задавал вопросы в техническую поддержку яндекса они советуют обратиться к разработчикам. Могу предоставить все нужные коментарии по данному вопросу, для оперативности оставлю свой телеграмм @rominon Готов оплатить за решение нашей проблемы.

n0name45 commented 1 year ago

Добрый день. Для автоматического поиска и подключения к колонкам требуется одновременное выполнение 2 условий: колонки привязаны к аккаунту, от которого получен API ключ им они расположены в одной локальной сети с НР.

Вот после всех переносов и перезагрузок, надо проверить пару вещей:

1) сервер НР, на котором установлен нода и колонки в одной подсети и роутер пропускает пинги от нужного сервера к нужным колонкам. В настройках DHCP сервера на микроте адреса для станций сделать статичными. 2) Если запуск идет из HA, то значит НР работает в докере. Проверить корректность сетевых настроек докера. ДЛя автоматического поиска режим сети в докере должен быть типа host. К сожалению, я не являюсь пользователем HA и не могу рассказать как там это сделать. 3) проверить, что колонки подключены к нужному аккаунту.

Когда в один сегмент локальной сети колонки и сервер поместить не удается, то можно для каждой станции развернуть "слепую" ноду station, а которой явно указать адрес и порт колонки для подключения и после этого перезапустить НР.

Если хотите получить результат быстро и сразу, то выполните выделенную установку НР(не в докере или ХА) на сервере в одной локальной сети со станциями.

romanitch86 commented 1 year ago

Два условия конечно же соблюдены, пользуюсь уже достаточно давно данными нодами, это усвоили сразу. Проверил 1 и 3 рекомендованный вами пункт, все подключено верно, все пингуется. 2 пункт не смог проверить так как не понимаю как это сделать. Пробовал перезагружать сервер и роутер ничего не помогает. В итоге оставил этот вопрос нерешенным на несколько дней, сегодня зашел в нод ред, смотрю станции подключены. Не пойму что могло быть причиной, повторюсь до этого в HA в нод реде работало стабильно на протяжении наверное чуть меньше полугода. Проблема появилась после появления третьей колонки и когда пытались запустить ее в отдельной подсети. Может быть причина что одна учетка используется в разных нод редах одновременно и еще в разных подсетях? И может быть что в одном нод реде в разных потоках я использую одну и ту же колонку? То есть один нод ред фактически дважды либо трижды подключается к одной колонке? Кстати я установил отдельную установку нод реда (не в докере или ХА) в одной локальной сети, и та самая третья колонка на которую я до этого "грешил" подключаться захотела только после того как поставил на нее "слепую" ноду station, при этом она работает пока стабильно и в ноде station постоянно происходит переподключение. Может ли все таки быть причиной колонка? После удаления ноды station колонка все равно работает, то есть она понадобилась только пока она не была подключена.

n0name45 commented 1 year ago

Может быть причина что одна учетка используется в разных нод редах одновременно и еще в разных подсетях? И может быть что в одном нод реде в разных потоках я использую одну и ту же колонку? То есть один нод ред фактически дважды либо трижды подключается к одной колонке?

Да скорее всего это оно и есть. При этом, какие то колонки нормально относятся с 2 подключениями к себе(три не пробовал), а какие-то начинают отваливаться. "Одна колонка - одно соединение с ней" явно исключает эту ситуацию. Надо отметить, что NR соединяется с колонкой только тогда, когда есть ноды(in, get или out) ее использующие. То есть можно одну учетку использовать в нескольких местах и это не приведет к одновременным подключениям к колонке, если во флоу нет обращений к ней.

MaxSkh commented 1 year ago

Добрый день. Получил примерно такую же проблему... колнка yandexmini-2 одна в сети... сеть на базе микротика... нодеред на вайренборде все работало отлично ровно один день... колнка видна с хоста с нодеред.. порт открыт пинги есть... но в нодеред пропала из списка и не появляется... подскажите пожалуйста куда копать.

romanitch86 commented 1 year ago

Добрый день. Получил примерно такую же проблему... колнка yandexmini-2 одна в сети... сеть на базе микротика... нодеред на вайренборде все работало отлично ровно один день... колнка видна с хоста с нодеред.. порт открыт пинги есть... но в нодеред пропала из списка и не появляется... подскажите пожалуйста куда копать.

Микрот думаю тут врятли может быть причастен, в момент когда была проблема я пробовал и на обычном роутере с коробки подключать, ничего не менялось. Сейчас добился более менее стабильной работы с прописанным ip в ноде station, но есть ощущение что проблема с колонкой, потому как именно с одной колонкой в основном проблема, при этом в поддержке яндекса задают вопросы: Колонка играет, колонка команды отрабатывает? Если да, то ничего не знаем обращайтесь к разработчикам стороннего ПО. Но у меня все работало отлично практически год с двумя колонками, и после появления новой колонки (третьей), я ее пробовал и на отдельный аккаунт подключать и на разные роутеры - все безуспешно. Потом сама заработала спустя несколько дней, но весь этот процесс явно отличается от стандартного подключения колонки.

MaxSkh commented 1 year ago

Но у меня все работало отлично практически год с двумя колонками, и после появления новой колонки (третьей), я ее пробовал и на отдельный аккаунт подключать и на разные роутеры - все безуспешно. Потом сама заработала спустя несколько дней, но весь этот процесс явно отличается от стандартного подключения колонки.

Ну вот и у меня на сл день после комента тут колонка сама по себе появилась, правда я убрал до этого любые связи с ней. Далее получилось, что колонка прекрасно воспроизводила заданый текст, но перестал работать ее штатный функционал, верней при начале воспроизведения музыки или детской сказки, воспроизведение обрывалось после 30-40 секунд... отключение ноды station-management моментально решило проблему... вероятно нужно подебажить, возможно яндексу не нравится, что-то что летит в его сторону...

romanitch86 commented 1 year ago

Но у меня все работало отлично практически год с двумя колонками, и после появления новой колонки (третьей), я ее пробовал и на отдельный аккаунт подключать и на разные роутеры - все безуспешно. Потом сама заработала спустя несколько дней, но весь этот процесс явно отличается от стандартного подключения колонки.

Ну вот и у меня на сл день после комента тут колонка сама по себе появилась, правда я убрал до этого любые связи с ней. Далее получилось, что колонка прекрасно воспроизводила заданый текст, но перестал работать ее штатный функционал, верней при начале воспроизведения музыки или детской сказки, воспроизведение обрывалось после 30-40 секунд... отключение ноды station-management моментально решило проблему... вероятно нужно подебажить, возможно яндексу не нравится, что-то что летит в его сторону...

Я такого у себя не наблюдал, воспроизводилась музыка всегда четко, было лишь что в нод реде не подключается и все. Но тут хотелось бы чтоб уже подключились разработчики возможно мы не единственные кто с этой проблемой. Я в свое время когда пытался решить проблему, пробовал разные аккаунты яндекса, нод-реды на разных платформах, и разные сети (роутеры). Все безуспешно, проблема есть.

Zullikz commented 1 year ago

Всех с новым годом. я продолжу так сказать.. у меня так же все оборудования на микротике.. точнее обьедененная сеть в cap но не суть.. подсеть одна что на провод что на wifi токен вписал но станция не появляеться в списке.. пробовал перезагружать НР так же сам сервер ХА. сервер стоит на виртуалке но у него сетка как bridge тоесть локалка как и везьде.. незнаю куда копать..

Zullikz commented 1 year ago

Всех с новым годом. я продолжу так сказать.. у меня так же все оборудования на микротике.. точнее обьедененная сеть в cap но не суть.. подсеть одна что на провод что на wifi токен вписал но станция не появляеться в списке.. пробовал перезагружать НР так же сам сервер ХА. сервер стоит на виртуалке но у него сетка как bridge тоесть локалка как и везьде.. незнаю куда копать..

Причем я поднял НР на компе у себя.. таже фигня.. такое чуство что он не видет устройство через токен.. потому как через логин в ХА в дополнения яндекс станции он заходит а через токен нет.. пишет что не верный

n0name45 commented 1 year ago

Всем привет. Так давайте я тут расскажу о насовсем красивом способе дебага, который должен чуть-чуть помочь понять причины проблем. Пока все выглядит не по-человечьи и пользовалось для отладки в процессе разработки. Что можно узнать:

  1. Список станций, зарегистрированных в Яндексе по введенному токену

  2. Список станций, видимых в локальной сети с помощью поиска

  3. Список станций, готовых к подключению(то есть они есть и в 1 и во 2 пункте или они есть 1 пункте и адрес по ним прописан вручную).

  4. Сперва надо узнать id конфигурационной ноды. Для этого в НР открываем окно где надо вводится токен Яндекса, в правой панели НР жмем "i" и в пункте узел забираем требуемый ID id

Этот id не меняется после перезапусков, поэтому его надо записать на будущее)

  1. А дальше с помощью этого ID формируем ссылки для получения нужной информации Что найдено из станций в локальной сети http://{ip}:1880/mdns/{id} Какие станции известны Яндексу по токену http://{ip}:1880/stations/{id} К каким станциям проводится подключение и по каким реквизитам http://{ip}:1880/yandexdevices_{id}

Вместо {ip} свой ip НР, а вместо {id} свой id, полученный ранее.

Если смотреть большие портянки не удобно, то пользуем https://jsonformatter.curiousconcept.com/ или свой форматтер-бьютифаер по вкусу.

Вот, а теперь давайте проверим у вас на местах выхлоп по всем трем ссылкам и попробуем разобраться с этими докерами, сетями и прочими микротиками. У меня у самого 4 станции, 4 микротика дома, пока все работает. Докера правда ни единого, видимо поэтому и работает все))

Abbad00n commented 1 year ago

Всем привет. Так давайте я тут расскажу о насовсем красивом способе дебага, который должен чуть-чуть помочь понять причины проблем. Пока все выглядит не по-человечьи и пользовалось для отладки в процессе разработки. Что можно узнать:

  1. Список станций, зарегистрированных в Яндексе по введенному токену
  2. Список станций, видимых в локальной сети с помощью поиска
  3. Список станций, готовых к подключению(то есть они есть и в 1 и во 2 пункте или они есть 1 пункте и адрес по ним прописан вручную).
  4. Сперва надо узнать id конфигурационной ноды. Для этого в НР открываем окно где надо вводится токен Яндекса, в правой панели НР жмем "i" и в пункте узел забираем требуемый ID id

Этот id не меняется после перезапусков, поэтому его надо записать на будущее)

  1. А дальше с помощью этого ID формируем ссылки для получения нужной информации Что найдено из станций в локальной сети http://{ip}:1880/mdns/{id} Какие станции известны Яндексу по токену http://{ip}:1880/stations/{id} К каким станциям проводится подключение и по каким реквизитам http://{ip}:1880/yandexdevices_{id}

Вместо {ip} свой ip НР, а вместо {id} свой id, полученный ранее.

Если смотреть большие портянки не удобно, то пользуем https://jsonformatter.curiousconcept.com/ или свой форматтер-бьютифаер по вкусу.

Вот, а теперь давайте проверим у вас на местах выхлоп по всем трем ссылкам и попробуем разобраться с этими докерами, сетями и прочими микротиками. У меня у самого 4 станции, 4 микротика дома, пока все работает. Докера правда ни единого, видимо поэтому и работает все))

Столкнулся со схожей прблемой - колонки яндекс мини 2 в разных подсетях(колонки в одной, NR в другой) с сервером NR. Одна работает, вторая отказывается. Что найдено из станций в локальной сети http://{ip}:1880/mdns/{id} Какие станции известны Яндексу по токену http://{ip}:1880/stations/{id} К каким станциям проводится подключение и по каким реквизитам http://{ip}:1880/yandexdevices_{id} Попробовал, не работает.

mDNS в этой связке случайно не используется?

Abbad00n commented 1 year ago

Выявил закономерность - как только добавляю вторую станцию в NR, первая сразу же теряет связь. Вторая при этом работает

Zullikz commented 1 year ago

Всем привет. Так давайте я тут расскажу о насовсем красивом способе дебага, который должен чуть-чуть помочь понять причины проблем. Пока все выглядит не по-человечьи и пользовалось для отладки в процессе разработки. Что можно узнать:

  1. Список станций, зарегистрированных в Яндексе по введенному токену
  2. Список станций, видимых в локальной сети с помощью поиска
  3. Список станций, готовых к подключению(то есть они есть и в 1 и во 2 пункте или они есть 1 пункте и адрес по ним прописан вручную).
  4. Сперва надо узнать id конфигурационной ноды. Для этого в НР открываем окно где надо вводится токен Яндекса, в правой панели НР жмем "i" и в пункте узел забираем требуемый ID id

Этот id не меняется после перезапусков, поэтому его надо записать на будущее)

  1. А дальше с помощью этого ID формируем ссылки для получения нужной информации Что найдено из станций в локальной сети http://{ip}:1880/mdns/{id} Какие станции известны Яндексу по токену http://{ip}:1880/stations/{id} К каким станциям проводится подключение и по каким реквизитам http://{ip}:1880/yandexdevices_{id}

Вместо {ip} свой ip НР, а вместо {id} свой id, полученный ранее.

Если смотреть большие портянки не удобно, то пользуем https://jsonformatter.curiousconcept.com/ или свой форматтер-бьютифаер по вкусу.

Вот, а теперь давайте проверим у вас на местах выхлоп по всем трем ссылкам и попробуем разобраться с этими докерами, сетями и прочими микротиками. У меня у самого 4 станции, 4 микротика дома, пока все работает. Докера правда ни единого, видимо поэтому и работает все))

У меня вовсе не показывает станцию.. токен ввел но вот калонки не видно.. у меня всего 1 станция.. куда копать не знаю... Screenshot 2023-01-29 180912

demosspro commented 1 year ago

Добрый день. Та же беда. Перестало работать ( работало с модулем и станцией мини). Ничего из конфигурации сети или НР не менялось. Обновление с версии 0.37 на 0.38 решения не принесло. Единственное, что обновлялось - это сами станции и модуль - там каждые несколько дней прошивки пилят. Помогите пожалуйста.

Abbad00n commented 1 year ago

Добрались наконец руки заглянуть под капот. И вот что я имею сказать по этому поводу: 1) На хосте с Node-RED должен быть нормально настроен(разрешен) mDNS, смотрите инструкции на свою ОС. В серверных дистрибутивах, например RPi 4 Ubuntu 22.04 он по умолчанию выключен, скорее всего аналогичным образом и у Wirenboard обстоят дела. 2) Транспортом для mDNS служит мультикаст(ip адреса вида 224.0.0.0), потому без настройки сетевого оборудования можно не мечтать о нормальной работе станций в разных подсетях. 90% домашних роутеров не умеют в нормальный мультикаст по своим внутренним сетям. 3) Обязательно запускайте перенастройку станций при любых изменениях в сети - сменили подсеть wifi, ещё что-то поменяли. Для решения 95% проблем хватает первого пункта.

dearlive2010 commented 8 months ago

Доброго времени. Не видно колонку. Я только не совсем понимаю от какого приложения нужен oAuthToken ? От яндекс музыки? И как получить этот oAuthToken ? правда настроена аунтентификация с присыланием кода в смс телефона. Может ее нужно выключить? Get oAuthToken (Experimental) не работает.

Станции нет в списке тестированных. Это новая max с zigbee.

dearlive2010 commented 8 months ago

Колонку подключил. статус connected

liver commented 8 months ago

Если Node-RED развернут в Docker, станция так же недоступна. Предполагаю, что связано с различными подсетями хостовой машины и самого контейнера. Станция в одной сети с хостовой машиной докера.

Zullikz commented 8 months ago

Колонку подключил. статус connected

Поделитесь опытом как подключать? У меня так же нет в списке колонки.