Code Monkey home page Code Monkey logo

https-flows.nodered.org-node-node-red-contrib-yandex-alice-command's Introduction

Node-RED nodes for send command and tts to Yandex Alice

Nodes:

  • alice-send Send voice command or text to speach to any Yandex.Alice speakers.

Examples:
https://www.youtube.com/watch?v=kY6g7x9B-PU
https://www.youtube.com/watch?v=ldF4b11SaiQ

Installation:
npm install node-red-contrib-yandex-alice-command

Changes in version 1.05 14/06/20:

  • Added Alice icon
  • Added Debug option in login page
  • Added Status messages
  • Fixed Set node name

Changes in version 1.07 15/06/20:

  • Fixed Get token with pasword that include special chars

Changes in version 1.08 15/06/20:

  • Added Send to All speakers or to selected speaker

Changes in version 1.10 16/06/20:

  • Added Send to selected speakers: speaker_id and speaker_name as list separated by sybmol ;

Changes in version 1.12 16/06/20:

  • Added Separator sybmol ; or , or |

Changes in version 1.14 19/06/20:

  • Changed Get cookies procedure, now not needed get token

Changes in version 1.15 05/08/20:

  • Fixed for new Yandex Alice API

Changes in version 1.17 27/11/20:

  • Fixed speaker not in room

Changes in version 1.18 18/03/21:

  • Fixed for scenario new API

Changes in version 1.19 11/05/21:

  • Fixed spec chars in password

THNAKS TO:

Если вам понравился проект - линк для благодарностей https://yasobe.ru/na/ya_alice_command

Альтернативный способ получения Cookies:

  1. Зайти на https://yandex.ru/quasar/iot
  2. Открыть панель разработчика
  3. Найти запрос к странице и там взять отправленные cookies

https-flows.nodered.org-node-node-red-contrib-yandex-alice-command's People

Contributors

antontumilovich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

https-flows.nodered.org-node-node-red-contrib-yandex-alice-command's Issues

need readme or tutorial to use

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

залипание при наличии нескольких колонок

В настоящее время стоит две колонки Irbis и Станция Мини

с ирбисом все окей, а вот со станцией все плохо. Она сутки отработала нормально, как в индивидуальном режиме, так и при работе без указания ID колонок, а потом она стала залипать.

Залипание выглядит так:

отправляем один TTS - она его произносит, отправляем другой, а она произносит первый... при отправке на несколько колонок она вообще молчит.

в общем с мини все непросто и выловить что является причиной невозможно.

Настройка и использование

Не получается запустить, вообще.

Установил ноду, в настройках прописал логин, пароль, кукисы, включил дебаг. С неправильным логином, паролем или кукисами ругается, без них нет. Но и ничего не происходит, совершенно, при отправлении текста или команды. Инжект стринг, дебаг всех сообщений.

В дебаге сообщения типа:

{"payload":"Get csrf token: begin","_msgid":"603b43ab6bdd8fba"}
{"payload":"Get csrf token: ok","_msgid":"4721535be8c38ba2"}
{"payload":"Get devices: begin","_msgid":"242c764ce54583fb"}
{"payload":"Get devices: ok","_msgid":"1c3026d4deca9036"}
{"payload":"Get devices: found speaker Станция Мини new 6537, id: 556d7176-d49c-4b23-8128-1aeceb0fd478","_msgid":"7a94066f6df42b21"}

... Get/add scenarios: begin/ok ... 

{"payload":"Show all data: ok","_msgid":"ded761c13e8dc751"}

{"_msgid":"9f18cd632d048ea4","payload":"{\"cookies\":\"_yasc=D++arMuХХХХХХХХХХ; Silicon=1; Session_id=ХХХХХХХХХ; sessionid2=ХХХХХХХХХХХХХХХ; yandex_login=ptath; is_gdpr=0; is_gdpr_b=ХХХХХХХХХХХ; i=}

И на этом все заканчивается. Куда смотреть?

Ошибка логина при наличии спецсимволов

наличие спецсимволов в пароле приводит к ошибкам в процедуре аунтификации. Опытным путем установлено, что обработка строки с помощью encodeURIComponent решает проблему

TTS error

Ни с того, ни с его сломалась алиса, редеплой и перезапуск не помагает

"Alice:error:update:scenarios:StatusCodeError: 400 - "{"request_id":"40af0791-d800-4f12-8fc2-6e88b589aca8","status":"error","code":"INVALID_VALUE"}""
Возникает в момент, когда я шлю TTS команду, при этом она произносит предыдущий текст, а не тот, что я отправил.
Чудеса какие-то.
Команды работают нормально.

Есть идеи что с этим сделать?

Перестали работать ноды Алисы

Добрый день
Спасибо за простой способ команд Алисе.

3 дня назад работало все. Но сейчас выдает ошибку Execute command: run scenario: fail StatusCodeError: 404 - "{"request_id":"55268f91-eb8f-4d70-ae89-86471655c05b","status":"error","code":"SCENARIO_NOT_FOUND"}" , как будто АПИ Яндекс изменил...

image

как настроить ноду, если установлена двухфактораня авторизация на учетной записи yanex

Поставил данную ноду к себе. Есть 2 колонки irbis A.
Напишите пожалуйста как завезти это чудо.
можете предоставить json экспорт простой схемы сценария ?
что должно быть в топике и payload в элементе inject?

добавил coockies из ссылки на /iot добавил идентификатор колонки из настроек.
в инжекте в payload поставил тескт, который хочу чтобы колонка сказала.
в итоге колонка молчит

Перестали обновляться сценарии.

Похоже API у Яндекса поменялись. После запуска alice-send в целевом сценарии пусто.
Ещё заметил что если запускать сценарий не голосом, а кнопкой в приложении - не работают команды и TTS. При этом управление устройствами функционирует. У меня Irbis A с облачным управлением.
Здесь кое что есть на эту тему.

Проблемы появились 3.08.2020. До того работало отлично, за что вам большое спасибо.

"Потерял" 1 из 4 колонок

Приветствую, Антон!
Вчера 8.04.21 приблизительно с 16 часов потерялась одна из четырех колонок в node-red (каждая со своим аккаунтом, т.е. 4 отдельных аккаунта Яндекса). Никаких особых манипуляций не производил.
Дебаг выводит с одного обращения по порядку:

Get cookies: begin
Get cookies: stage 2: begin
Get cookies: stage 2: end
Get csrf token: begin
Get csrf token: ok
Get devices: begin
TypeError: Cannot read property 'length' of undefined
Get devices: fail StatusCodeError: 401 - "Unauthorized\n"
Get devices: error: no devices in account
Get devices: error: no devices in account
Get devices: error: no speaker in account
Get scenarios: begin
TypeError: Cannot read property 'length' of undefined
Get scenarios: fail StatusCodeError: 401 - "Unauthorized\n"
Get scenarios: no scenarios in account
Add scenario: begin
Add scenarios: fail StatusCodeError: 401 - "Unauthorized\n"
undefined

Аккаунт в NR обновлял, NR перезапускал. Колонку сбрасывал, переподключал к яндексу и после этого опять переподключал аккаунт в NR и перезагружал. "Выходил из всех устройств" в Я.аккаунте и заново всё подключал, вводил, перезагружал... )) не знаю, чего еще придумать...
Остальные 3 колонки со своими аккаунтами как работали - так и работают.
Подскажите, пожалуйста, что можно сделать, чтобы восстановить работу!
Спасибо!
Сергей.

Add scenarios: fail StatusCodeError: 403 - "Forbidden\n

При попытке заставить алису произнести что-то, получаю при включенном дебаге вот такую ошибку.

Get csrf token: begin
Get csrf token: ok
Get scenarios: begin
Get scenarios: ok
Add scenario: begin
Add scenarios: fail StatusCodeError: 403 - "Forbidden\n"
Show all data: ok
{"cookies":"{cookies:yandexuid=...skipped....;}"}

Устройства выполняют последнюю запомненную команду

Добрый день!
После недавнего изменения Yandex API нода перестала работать нормальным образом.
При подаче любой команды любые станции выполняют только последнюю ранее выполненную команду.
Поправьте, пожалуйста, ноду.

Краш Node Red

Добрый день!
Использую только Yandex OUT узел. Переодически раз в день node red падает, я логирую это событие.
Не знаю, какая информация конфиденциальна, буду вместо потенциально не нужной информации вставлять прочерки.
Примерно начинается все с такого:

8 Jun 13:48:38 - [info] [yandex-login:Яндекс Станция] Status update event: {"color":"yellow","text":"connecting..."} for ______
8 Jun 13:48:38 - [info] [yandex-login:Яндекс Станция] Connecting to wss://192.168.1.63:1961
8 Jun 13:48:38 - [info] [yandex-login:Яндекс Станция] Connected to 192.168.1.63, data: undefined
8 Jun 13:48:38 - [info] [yandex-login:Яндекс Станция] Status update event: {"color":"green","text":"connected"} for ______
8 Jun 13:48:38 - [info] [yandex-login:Яндекс Станция] connection of ______ success!
8 Jun 13:48:51 - [info] [yandex-login:Яндекс Станция] Status update event: {"color":"red","text":"disconnected"} for ______
8 Jun 13:48:51 - [info] [yandex-login:Яндекс Станция] Closed connection code 1000 with reason . Reconnecting...
8 Jun 13:48:51 - [info] [yandex-login:Яндекс Станция] Connecting to device ______. ws is {"_events":{},"_eventsCount":4,"_binaryType":"nodebuffer","_closeCode":1000,"_closeFrameReceived":true,"_closeFrameSent":true,"_closeMessage":"","_closeTimer":{"_idleTimeout":-1,"_idlePrev":null,"_idleNext":null,"_idleStart":99865414,"_onTimeout":null,"_repeat":null,"_destroyed":true},"_extensions":{},"_protocol":"","_readyState":3,"_receiver":{"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":true,"ended":true,"finished":true,"destroyed":false,"decodeStrings":true,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":false,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"bufferedRequest":null,"lastBufferedRequest":null,"pendingcb":0,"prefinished":tr

Там очень длинная простыня такого лога строчного лога, затем после него идет

8 Jun 13:48:51 - [info] [yandex-login:Яндекс Станция] ws.state: 3
8 Jun 13:48:51 - [info] [yandex-login:Яндекс Станция] Status update event: {"color":"yellow","text":"connecting..."} for 643078f6401c5c2904d0
8 Jun 13:48:51 - [info] [yandex-login:Яндекс Станция] Connecting to wss://192.168.1.63:1961
8 Jun 13:48:51 - [info] [yandex-login:Яндекс Станция] Connected to 192.168.1.63, data: undefined
8 Jun 13:48:51 - [info] [yandex-login:Яндекс Станция] Status update event: {"color":"green","text":"connected"} for 643078f6401c5c2904d0
8 Jun 13:48:51 - [info] [yandex-login:Яндекс Станция] connection of 643078f6401c5c2904d0 success!
8 Jun 13:49:04 - [info] [yandex-login:Яндекс Станция] Status update event: {"color":"red","text":"disconnected"} for 643078f6401c5c2904d0
8 Jun 13:49:04 - [info] [yandex-login:Яндекс Станция] Lost server, reconnect in 60 seconds...1006 +
8 Jun 13:49:04 - [info] [yandex-login:Яндекс Станция] Status update event: {"color":"red","text":"disconnected"} for 643078f6401c5c2904d0
8 Jun 13:49:04 - [info] [yandex-login:Яндекс Станция] Closed connection code 1000 with reason . Reconnecting...
8 Jun 13:49:04 - [info] [yandex-login:Яндекс Станция] Connecting to device 643078f6401c5c2904d0. ws is {"_events":{},"_eventsCount":4,"_binaryType":"nodebuffer","_closeCode":1000,"_closeFrameReceived":true,"_closeFrameSent":true,"_closeMessage":"","_closeTimer":{"_idleTimeout":-1,"_idlePrev":null,"_idleNext":null,"_idleStart":99878571,"_onTimeout":null,"_repeat":null,"_destroyed":true},"_extensions":{},"_protocol":"","_readyState":3,"_receiver":{"_writableState":{"obje

Т.е история с реконнектом продолжается.
Затем происходит еще один реконнект и идут вот такие логи , если я пришлю все я положу гит)

"encoding":"buffer","next":{"chunk":{"type":"Buffer","data":[88,15,172,83,77,91,170,78,80,76,187,85,76,67,155,83,72,72,161,30,25,15,170,69,105,69,173,123,64,68,128,85,105,100,154,70,106,28,129,85,106,94,134,82,113,24,172,127,106,27,134,87,83,117,153,127,105,20,225,89,90,103,167,88,116,124,166,115,74,103,161,94,100,107,161,94,17,90,166,112,96,103,163,89,107,108,166,115,73,104,253,113,73,96,182,113,89,120,252,113,119,78,188,117,78,65,181,95,90,100,249,117,77,107,254,101,123,99,167,95,74,28,166,101,116,99,189,102,116,24,164,117,74,90,166,95,100,85,255,117,73,66,166,89,116,107,186,102,100,123,251,95,16,127,167,88,100,65,185,94,74,100,188,117,77,99,254,101,74,100,249,117,73,116,255,113,89,108,252,115,100,116,253,114,103,108,183,101,89,123,165,113,73,70,184,114,100,124,184,117,77,29,225,81,70,85,185,14,79,84,162,104,21,101,174,102,81,91,157,72,113,103,149,113,97,73,139,85,102,116,152,123,19,105,129,88,14,114,185,82,98,68,253,84,109,94,237,16,1,68,171,30,25,15,249,8,16,29,248,4,69,27,251,12,18,78,250,95,17,20,255,8,71,29,237,16,1,93,174,69,79,66,174,88,1,23,180,30,64,66,162,81,66,67,171,30,25,15,191,85,77,74,237,65,15,15,188,89,77,89,155,85,78,72,237,6,18,27,253,15,18,25,246,15,23,28,250,10,21,80]},"encoding":"buffer","next":{"chunk":{"type":"Buffer","data":[129,254,1,74,26,187,21,55]},"encoding":"buffer","next":{"chunk":{"type":"Buffer"

Прямо перед смертью Node Red он присылает вот это:

e,"parser":null,"_httpMessage":null,"timeout":0},"_bufferedAmount":0,"_isServer":false,"_redirects":0,"_url":"wss://192.168.1.63:1961","_req":null}
8 Jun 13:59:38 - [info] [yandex-login:Яндекс Станция] ws.state: 3
8 Jun 13:59:38 - [info] [yandex-login:Яндекс Станция] Status update event: {"color":"yellow","text":"connecting..."} for _______
8 Jun 13:59:38 - [info] [yandex-login:Яндекс Станция] Connecting to wss://192.168.1.63:1961
8 Jun 13:59:38 - [info] [yandex-login:Яндекс Станция] Connected to 192.168.1.63, data: undefined
8 Jun 13:59:38 - [info] [yandex-login:Яндекс Станция] Status update event: {"color":"green","text":"connected"} for _____
8 Jun 13:59:38 - [info] [yandex-login:Яндекс Станция] connection of ______ success!
8 Jun 13:59:46 - [red] Uncaught Exception:
8 Jun 13:59:46 - RangeError: Maximum call stack size exceeded
at JSON.stringify ()
at Timeout.connect [as _onTimeout] (/home/pi/.node-red/node_modules/node-red-contrib-yandex-station-management/nodes/yandex-login.js:204:79)
at listOnTimeout (internal/timers.js:556:17)
at processTimers (internal/timers.js:497:7)
nodered.service: Main process exited, code=exited, status=1/FAILURE
nodered.service: Failed with result 'exit-code'.
nodered.service: Service RestartSec=20s expired, scheduling restart.
nodered.service: Scheduled restart job, restart counter is at 8.
Stopped Node-RED graphical event wiring tool.
Started Node-RED graphical event wiring tool.
8 Jun 14:00:08 - [info]
Welcome to Node-RED

8 Jun 14:00:08 - [info] Node-RED version: v1.2.9
8 Jun 14:00:08 - [info] Node.js version: v12.22.1
8 Jun 14:00:08 - [info] Linux 5.10.17-v7l+ arm LE
8 Jun 14:00:08 - [info] Loading palette nodes
Initializing HAP-NodeJS v0.9.4...
8 Jun 14:00:12 - [info] Settings file : /home/pi/.node-red/settings.js
8 Jun 14:00:12 - [info] Context store : 'default' [module=localfilesystem]
8 Jun 14:00:13 - [info] User directory : /home/pi/.node-red
8 Jun 14:00:13 - [warn] Projects disabled : editorTheme.projects.enabled=false
8 Jun 14:00:13 - [info] Flows file : /home/pi/.node-red/flows_raspberrypi.json
8 Jun 14:00:13 - [info] Server now running at http://127.0.0.1:1880/
8 Jun 14:00:13 - [warn]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.