alexxit / yandexstation Goto Github PK
View Code? Open in Web Editor NEWУправление Яндекс.Станцией и другими устройствами умного дома с Алисой из Home Assistant
Home Page: https://t.me/AlexxIT_SmartHome
License: MIT License
Управление Яндекс.Станцией и другими устройствами умного дома с Алисой из Home Assistant
Home Page: https://t.me/AlexxIT_SmartHome
License: MIT License
Добрый день! Почему-то перестало нормально работать локальное упр на всех колонках (2 мини и одна станция)
Сначала неск дней локалка (обложки и обратная связь) работала на одной мини, а на второй и на станции не работало, а сегодня локалка стала на второй мини, а на первой перестало. На станции также не работает. Подскажите, в чем может быть причина? Спасибо большое!
Кажется, что команда cancelVoiceDialog либо не работает, либо её вообще нет. По-крайней мере, тут она не встречается.
В качестве замены можно использовать media_player.play_media с данными
{
"media_content_id": "Хватит",
"media_content_type": "command"
}
Не уверен, что это лучшее решение =)
У меня две станции. Большая и мини.
При попытке отправить команду, например:
command: sendText
text: Повтори за мной 'Тестовое уведомление
В логе появляется ошибка:
Unknown host for device ТУТИДЕНТИФИКАТОРСТАНЦИИМИНИ
В конфиге прописано так:
yandex_station:
username: ИМЯПОЛЬЗОВАТЕЛЯ@yandex.ru
password: ПАРОЛЬ
host: 192.168.2.19 #IP Большой станции
Что я делаю не так?
А почему удалили changelog? Как теперь следить за появлением новых версий?)
А есть воможность сделать так, чтобы с алисой могли в телеге общаться несоклько человек и она отвечала конкретно тому, кто ее спрашивал. Пытался сделать через
data_template:
target: '{{ trigger.event.data.user_id }}'
но этот вариант не взлетел
Сейчас оно работает как и задумывалось - воспроизводит текст, однако для алисы ИМХО удобнее чтобы это было полноценной командой для нее (у себя я в коде просто убрал "повторяй за мной").
Это позволяет запустить любую композицию/видео удаленно.
Предлагаю добавить параметр в конфиг, который это регулирует (по умолчанию пусть воспроизводит текст, для совместимости)
Работает управление громкостью и управление плеером станции. Но не работает команда "произнеси текст" и "выполни команду" в медиа плеере. Мигает зеленым потом красным. Версия: 4134f15
Добрый день, перестали работать события из такой автоматизации:
trigger:
platform: event
event_type: yandex_intent
event_data:
text: Какая температура в зале
action:
- service: tts.alice_say
entity_id: media_player.yandex_station_xxxxx
data_template:
message: "blablabla
Еще вчера утром все работало и станция отвечала на мои кастомные команды.
В логах пишет это на любую из автоматизаций с yandex_intent:
Error executing script. Unexpected error for call_service at pos 1: 0, message='Attempt to decode JSON with unexpected mimetype: text/plain; charset=utf-8', url='https://iot.quasar.yandex.ru/m/user/scenarios/blablabla
Не подскажите, куда смотреть?
HA версия: 0.110.4, бежит в докере на synology. Версия компонента - последная. yandex smart home - тоже последней версии.
В инструкции не описано какие права выдать для токена.
Хотелось бы иметь возможность задать вопрос Алисе и получить на него динамический ответ
Например:
В идеале вообще вызывать сервис типа intent_replay
, который бы отвечал обратно.
Но и в первом случае иметь информацию о колонке тоже было бы полезно, например, для определения комнаты, в которой была произнесена команда.
Но судя по тому, что вообще функционал indent
реализован через жопу громкость, то можно на это особо не надеяться на это до тех пор, пока яндекс не прикрутит полноценную апишку.
Если у меня есть api key к оплаченным голосам Яндекса, я могу их использовать с вашим компонентом?
Я новичек и тольно разбираюсь в теме. Пытаюсь сделать уведомление о состоянии датчика через станцию.мини.
Начал с пробного скрипта:
'1591616034809':
alias: test. Alisa temp TTS
sequence:
- data:
media_content_id: Температура в комнате {{ states('sensor.temperature_158d000215b167')|round
}}
media_content_type: text
entity_id: media_player.yandex_station
service: media_player.play_media
По итогу Алиса просто зачитывает всю строку включая скобки и назавание сенсора, но данные с него не вытягивает. Я что-то сделал не так?
При использовании любого из трёх вариантов TTS колонка молчит. При этом возможность управлять музыкой и громкостью сохраняется (по локальному протоколу).
Проверено на двух Яндекс Мини.
Я заметил, что интерфейс сценариев в Квазаре слегка изменился, может, и в апи изменения какие-то произошли? Однако это не объяснит нерабочий TTS по локальному протоколу.
В логах ошибок нет, только штатные дебаг-выводы.
После обновления компонента, станция перестает быть доступной, пробовал удалять .yandex_station.txt не помогает, создается объект media_player.yandex_station_04007884c9143c2907cf с пометкой:
Этот объект в настоящее время недоступен.
Неделю назад все работало, конфигурацию не менял. В чем может быть проблема куда копать?
Спасибо!
на самом деле это конфиг скрипта судя по синтаксису. Или тогда непонятно куда это в НА вписывать. В configuration.yaml оно не проходит проверку
Из HACS исчез компонент - AlexxIT/YandexStation .
У кого вдруг перестало работать, устанавливаем из репозитория ручками.
...а из systemctl перезагружается, но только через 1-2 минуты по SIGKILL.
Конфигурация: homeassistant-0.109.2 in a Virtual Environment (до этого был 108.6 с теми же симптомами)
Версия Python:
Package: python3.7
Version: 3.7.3-2+deb10u1
Последние строки в "syslog | grep hass":
May 2 00:09:23 pi-redarmy hass[15021]: 2020-05-02 00:09:23 ERROR (MainThread) [homeassistant.core] Error doing job: Future exception was never retrieved
May 2 00:09:23 pi-redarmy hass[15021]: Traceback (most recent call last):
May 2 00:09:23 pi-redarmy hass[15021]: File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
May 2 00:09:23 pi-redarmy hass[15021]: result = self.fn(*self.args, **self.kwargs)
May 2 00:09:23 pi-redarmy hass[15021]: File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/zeroconf/init.py", line 111, in stop_zeroconf
May 2 00:09:23 pi-redarmy hass[15021]: zeroconf.close()
May 2 00:09:23 pi-redarmy hass[15021]: File "/srv/homeassistant/lib/python3.7/site-packages/zeroconf/init.py", line 2654, in close
May 2 00:09:23 pi-redarmy hass[15021]: # on send errors, log the exception and keep going
May 2 00:09:23 pi-redarmy hass[15021]: File "/srv/homeassistant/lib/python3.7/site-packages/zeroconf/init.py", line 1239, in del_reader
May 2 00:09:23 pi-redarmy hass[15021]: KeyError: <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_DGRAM, proto=0>
May 2 00:09:23 pi-redarmy hass[15021]: 2020-05-02 00:09:23 ERROR (MainThread) [custom_components.yandex_station.utils] Station connect error:
(последняя строчка отсутствует в логе HA, но есть в syslog, поэтому приложил именно его)
У меня есть Яндекс.Станция (большая) в одной сети WIFI,
прописал аккаунт yandex в configuration.yaml как по мануалу,
но дальше ничего не произошло, перезагружал HA.
Судя по картинке в мануале, у меня в списках entities автоматический должно было появится что то вроде
media_player.yandex_station_12345678901234567890
но увы у меня ничего нет кроме моих google_home_mini, да и в логах пишет что, значить плагин установлен норм!
2020-02-10 11:19:18 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for yandex_station which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
затем вот такая штука
Device 34007890c4084813068c not found in Yandex account.
хотя у себя на телефоне я колонку вижу, колонка работает. ее както поособому надо привязать к аккаунту ?
Встал вопрос как подключить 2 станции в telegram? Хотя бы с двумя ботами.
При локальном управлении компонент не видит актуальную громкость колонки.
Всё остальное подхватывается.
Добрый день.
Подключил по инструкции, колонку в конфигурации создает. Но при попытке прописать скрипт ругается на yandex_tts:
Invalid config for [script]: [yandex_tts] is an invalid option for [script]. Check: script->script->script->yandex_tts
Подскажите, куда копать. TTS гугла закомментирован. Home Assistant 0.105.3
Привет
Я владею LG XBOOM и яндекс мини. Удачно смог запустить локальный режим на мини.
Локальный режим на XBOOM не запускается, могу помочь потестировать, если есть желание допилить функционал для LG
При попытке выполнить команду или произнести фразу из медиаплеера возникает ошибка:
Should use tts.yandex_station_say
service
В автоматизацию ввёл:
- data:
entity_id: media_player.yandex_station_040078
media_content_id: 1008 # ID альбома в Яндекс.Музыка
media_content_type: playlist # album, track or playlist
service: media_player.play_media
Но заиграла песня, которой нет в плейлисте... :(
ID плейлиста взял из урла:
https://music.yandex.ru/users/mylogin/playlists/1008
Что не так? Please, help! )
Unable to find services.yaml for the yandex_station integration
Приветствую! Пользуюсь 4-мя колонками IRBIS A. Хочется таки прикрутить к HA tts от Яндекса. Планируется под колонки IRBIS?
Приветствую, как правильно авторизовываться, если я использую свой домен и двухфакторную авторизацию?
File "/config/custom_components/yandex_station/utils.py", line 43, in get_yandex_token
return r.json()['access_token']
KeyError: 'access_token'
Установил компоненту yandex_station, работает прекрасно пока не переключаю на "ручную lovelace" заданием в configuration.yaml:
lovelace:
mode: yaml
При этом а же компонента gismeteo bp custom_components подхватывается
Есть возможность включить радиостанцию на Я.Станции?
Setup failed for yandex_station: Unable to import component: No module named 'websockets'
Raspberry Pi
Home Assistant 0.106.4
Хочу вызывать TTS, при котором Алиса произнесет заданную фразу и продолжит текущее медиа-действие (например, проигрывание музыки). Однако все варианты вызова tts приводят к тому, что Алиса после вывода фразы ожидает ответа от пользователя (проигрывается звуковой сигнал, сигнализирующий о том, что Алиса слушает, и уменьшается громкость музыки).
Является ли это ограничением Яндекса или багом?
До обновления компонента все работало через токен (яндекс станция большая), после стала выдавать ошибку медиаплеера что нет токена, сессион ид.
Поменял авторизацию на логин пароль и получил ошибку: в аккаунте нет устройств
Вроде у кого-то работает
Добрый день!
Перестал работать компонент, при загрузке HA ошибки:
Logger: custom_components.yandex_station.yandex_quasar
Source: custom_components/yandex_station/yandex_quasar.py:208
Integration: yandex_station (documentation)
First occurred: 9:39:23 (1 occurrences)
Last logged: 9:39:23
Init
Traceback (most recent call last):
File "/config/custom_components/yandex_station/yandex_quasar.py", line 82, in init
speakers = await self.load_speakers()
File "/config/custom_components/yandex_station/yandex_quasar.py", line 208, in load_speakers
resp = await r.json()
File "/usr/local/lib/python3.8/site-packages/aiohttp/client_reqrep.py", line 1026, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/plain; charset=utf-8', url=URL('https://iot.quasar.yandex.ru/m/user/devices')
и
Logger: homeassistant.setup
Source: custom_components/yandex_station/init.py:151
First occurred: 9:39:23 (1 occurrences)
Last logged: 9:39:23
Error during setup of component yandex_station
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 191, in _async_setup_component
result = await task
File "/config/custom_components/yandex_station/init.py", line 151, in async_setup
for speaker in speakers:
TypeError: 'NoneType' object is not iterable
Yandex.Station 2.2.8
Home Assistant 0.114.3
Так же столкнулся с одновременной работой нескольких tts и нескольких колонок ( Google Home Mini, Sonos ) и Яндекс.Станция как в issue #8
На данный момент функция воспроизвести голос на интерфейсе вообще перестала работать для Google Mini
В доке написано что ...
В этом случае вы можете настроить несколько TTS сервисов. Из окна медиа плеера всех колонок всегда будет стартовать первый повавшийся сервис (в алфавитном порядке). Поэтому название TTS сервиса Яндекса можно переименовать, например, в alice_say
получается что если по алфавиту, то alice_say
будет всегда первой, так как на a
, а google_translate_say
будет вторым, соотвественно на интерфейсе медиа плеер для Google Home mini не сможет воспроизвести через alice_say
, будет тишина и при этом Яндекс плеер будет работать. Если переименовать в yandex_say
то будет наоборот, Google Mini заговорит но Яндекс плеер будет молчать,
Как быть ? в доке не сказано, либо мы что то недопонимаем
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host yandex.ru:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1076)')]
Steps to reproduse - install and try to make something with station
Здравствуйте, часто появляются ошибки в логе, после этого нагрузка на процессор возрастает, до перезагрузки "HA".
Home assistant крутится в докере.
По конфигурации у меня одна Яндекс станция и три Мини.
Не самая частая:
Уровень: ERROR
Logger: custom_components.yandex_station.yandex_glagol
Source: custom_components/yandex_station/yandex_glagol.py:58
Integration: YandexStation (documentation)
First occurred: 4:47:53 (4 occurrences)
Last logged: 5:49:11
Station connect
Traceback (most recent call last):
File "/config/custom_components/yandex_station/yandex_glagol.py", line 58, in _connect
self.ws = await session.ws_connect(uri, heartbeat=55, ssl=False)
File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 728, in _ws_connect
proxy_headers=proxy_headers)
File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 504, in _request
await resp.start(conn)
File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 847, in start
message, payload = await self._protocol.read() # type: ignore # noqa
File "/usr/local/lib/python3.7/site-packages/aiohttp/streams.py", line 591, in read
await self._waiter
aiohttp.client_exceptions.ServerDisconnectedError: None
Самая частая:
Уровень: ERROR
Logger: custom_components.yandex_station.yandex_glagol
Source: custom_components/yandex_station/yandex_glagol.py:89
Integration: YandexStation (documentation)
First occurred: 2:27:37 (20 occurrences)
Last logged: 6:02:30
Station connect error [None] Cannot connect to host 192.168.1.21:1961 ssl:False [None]
Station connect error [113] Cannot connect to host 192.168.1.21:1961 ssl:False [Connect call failed ('192.168.1.21', 1961)]
Station connect error [111] Cannot connect to host 192.168.1.21:1961 ssl:False [Connect call failed ('192.168.1.21', 1961)]
Station connect error [110] Cannot connect to host 192.168.1.21:1961 ssl:False [Connect call failed ('192.168.1.21', 1961)]
Был в отпуске, стояла версия 2.2.0 и все отлично работало (Irbis A). Приехал, вижу изменилось API. Поставил последнюю 2.2.8 и не подключается. В логах такое:
Traceback (most recent call last):
File "/config/custom_components/yandex_station/yandex_quasar.py", line 82, in init
speakers = await self.load_speakers()
File "/config/custom_components/yandex_station/yandex_quasar.py", line 208, in load_speakers
resp = await r.json()
File "/usr/local/lib/python3.8/site-packages/aiohttp/client_reqrep.py", line 1026, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/plain; charset=utf-8', url='https://iot.quasar.yandex.ru/m/user/devices
2020-08-10 10:08:59 ERROR (MainThread) [homeassistant.setup] Error during setup of component yandex_station
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 193, in _async_setup_component
result = await asyncio.wait_for(task, SLOW_SETUP_MAX_WAIT)
File "/usr/local/lib/python3.8/asyncio/tasks.py", line 483, in wait_for
return fut.result()
File "/config/custom_components/yandex_station/__init__.py", line 151, in async_setup
for speaker in speakers:
Причем руками при заходе на https://iot.quasar.yandex.ru/m/user/devices все отдается. JSON, хотя и не с первого символа идет, а пару пробелов в начале.
Правда, я пока был в отпуске, то меня на двухфакторную, но потом заметил, что с подключением тут гемор будет и вернул все обратно - колонку переподключил конечно с новым паролем и его же в конфиге прописал.
Уровень: ERROR
Logger: custom_components.yandex_station.yandex_quasar
Source: custom_components/yandex_station/yandex_quasar.py:124
Integration: yandex_station (documentation)
First occurred: 16:35:31 (1 occurrences)
Last logged: 16:35:31Init
Traceback (most recent call last):
File "/config/custom_components/yandex_station/yandex_quasar.py", line 48, in init
self.main_token = await self.get_main_token(username, password)
File "/config/custom_components/yandex_station/yandex_quasar.py", line 124, in get_main_token
assert 'access_token' in resp, resp
AssertionError: {'error': '403', 'error_description': 'CAPTCHA required', 'x_captcha_key': '00AkMIvlxCsrus1DatF2sVVkJLc5C4Iw', 'x_captcha_url': 'https://ext.captcha.yandex.net/image?key=00AkMIvlxCsrus1DatF2sVVkJLc5C4Iw'}
Уровень: ERROR
Logger: custom_components.yandex_station.yandex_quasar
Source: custom_components/yandex_station/yandex_quasar.py:143
Integration: yandex_station
First occurred: 18:59:26 (1 occurrences)
Last logged: 18:59:26
Init
Traceback (most recent call last):
File "/config/custom_components/yandex_station/yandex_quasar.py", line 69, in init
self.main_token = await self.get_main_token(username, password)
File "/config/custom_components/yandex_station/yandex_quasar.py", line 143, in get_main_token
assert 'access_token' in resp, resp
AssertionError: {'error': 'unauthorized_client'}
Удаление файла с расширение .json из папки yandex_station, с последующем перезапуском HA также не решило проблему. Выскакивает таже ошибка.
Пытаюсь установить ваш аддон в homeassistant
Но при добавлении вашего репозитория
https://github.com/AlexxIT/YandexStation
В логе вижу следующий текст
20-04-17 04:03:45 INFO (MainThread) [supervisor.store.git] Clone add-on https://github.com/AlexxIT/YandexStation repository
20-04-17 04:03:48 ERROR (MainThread) [supervisor.utils.json] Can't read json from /data/addons/git/b61114b4/repository.json: [Errno 2] No such file or directory: '/data/addons/git/b61114b4/repository.json'
20-04-17 04:03:48 WARNING (MainThread) [supervisor.store.data] Can't read repository information from /data/addons/git/b61114b4/repository.json
Сам репозиторий появляется среди прочих
Но с именем ‘unknown’ и без каких либо аддонов
Возможно я что-то не так делаю...
Помогите пожалуйста
Logger: custom_components.yandex_station.media_player
Source: custom_components/yandex_station/media_player.py:444
Integration: YandexStation (documentation)
First occurred: 13:54:29 (1 occurrences)
Last logged: 13:54:29
Unsupported media: question
На яндекс станции мини перестала работать произношение фраз голосом алисы.
Так же перестала работать озвучка при нажатии на кнопку лайк, и прочие шорткаты у маленького плеера
Собственно после произнесения фразы Какая температура в комнате: .
Алиса продолжает крутить фиолетовую подсветку и ничего не происходит.
Полная строка Data из node red {"media_content_id":"Повторяю вашу фразу","media_content_type":"text"}
Чтобы остановить фиолетовый индикатор нажимаю на Алисе кнопку команды, и она произносит "Повторяю вашу фразу"
UPD
Много экспериментировал. Видимо проблема в
intents:
Романтический вечер: приятно провести время
Какая температура в комнате: .
Романтический вечер отрабатывает и фиолетовая индикация гаснет.
Какая температура в комнате Индикация продолжает крутиться.
Алиса не может произнести . (точка). Из за этого и продолжает гореть индикатор.
Log Details (WARNING)
Logger: homeassistant.components.media_player
Source: components/media_player/init.py:938
Integration: Media player (documentation, issues)
First occurred: 9:46:58 PM (2 occurrences)
Last logged: 9:46:58 PM
MediaPlayerDevice is deprecated, modify YandexStation to extend MediaPlayerEntity
MediaPlayerDevice is deprecated, modify YandexStationHDMI to extend MediaPlayerEntity
Пытаюсь разобраться с получением команд от станции (Мини). Есть вот такой configuration.yaml:
yandex_station:
username: login
password: pass
tts_service_name: alice_say
intents:
Найди телефон Андрея: .
Найди телефон Кати: .
yandex_smart_home:
filter:
include_entities:
- media_player.yandex_intents
Соответственно, установлены последние версии интеграций YandexStation и yandex_smart_home. Устройства на https://dialogs.yandex.ru/developer/ обновлены, появился медиаплеер Yandex Intents, который я не трогал (не менял имя и не переносил в комнату). Вот такой ответ получаю на https://iot.quasar.yandex.ru/m/user/devices (убрал остальные устройства и айдишники):
{
"groups": [],
"request_id": "ID",
"rooms": "Тут мои другие устройства",
"speakers": [],
"status": "ok",
"unconfigured_devices": [
{
"capabilities": [
{
"last_updated": 0,
"parameters": {
"split": false
},
"retrievable": true,
"state": null,
"type": "devices.capabilities.on_off"
}
],
"groups": [],
"id": "ID",
"name": "Yandex Intents",
"properties": [],
"skill_id": "ID",
"type": "devices.types.media_device"
}
]
}
При произношении обеих ключевых фраз ("Алиса, найди телефон Андрея" и "Алиса, найди телефон Кати") получаю от алисы сообщение, что она не умеет это делать. Ивенты yandex_intent в HA не приходят.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.