Usando el módulo, puede controlar la API en una API local en los dispositivos de Yandex:
El trabajo es posible solo con dispositivos que al mismo tiempo:
El trabajo requiere una ficha de Yandex. Music. En el módulo, en modo experimental, se implementa la posibilidad de obtener un token de un paralero de inicio de sesión (gracias a enviar aquí). Si la recepción de token no funciona, entonces debe intentar encender y deshabilitar la autenticación de dos factores en la configuración de Yandex. Fuente. Puede verificar la seguridad de usar los datos contables mirando el código
El segundo de los varinados de su recibo se describe en las preguntas frecuentes
La tercera de las opciones para obtener token se describe aquí.
Es posible trabajar con varios dispositivos (probados) y varias cuentas (probadas).
Consiste en 4 asentimientos que permiten ajustar de manera flexible la automatización y usar notificaciones de voz:
La instalación se lleva a cabo a través de la sección Administrar paleta en Node-Red o usando NPM. En el catálogo con nodo-rojo (generalmente ~/.node-red ) para ejecutar el comando:
npm i node-red-contrib-yandex-station-management
Después de la instalación, para comenzar a trabajar, agregue cualquier nodo, ingrese los datos contables (token) a la sección de inicio de sesión, guarde y presione la implementación (¡obligatorio!). Cómo obtener un token - escrito en las preguntas frecuentes.
Después de las envolturas en la configuración de Noda en el campo de la estación, las estaciones están disponibles para el control.
Si la estación no apareció en la lista, puede esperar un par de minutos o reiniciar el nodo-rojo.
Configuración adicional para la estación. Es opcional, es decir, todo funcionará sin este nodo, pero puede ser más intercepte. El nodo se coloca fuera del flujo y no tiene entradas y salidas.
Vestirse a la estación. Si por alguna razón es necesario asegurarse de que la conexión no esté realizada, colóquela en discapacitados.
En el estado del manual, es posible indicar manualmente la dirección de la estación y el puerto para la conexión. Se recomienda si Docker, Homeassistant y otros casos en los que no resuelven la determinación automática de los detalles de la red para la conexión.
Se implementa la posibilidad de restricciones a tiempo para escuchar canciones, radio, cuentos de hadas, de modo que los pequeños amantes de las historias nocturnas se duermen lo antes posible. Está sintonizado para cada día de la semana. Si no cuesta un gato de activo, entonces para este día las restricciones no funcionan. La frase que decir es una frase que Alice dirá en lugar de la música :) Al mismo tiempo, habilidades, despertadores, clima, noticias, etc. en el trabajo.
Se coloca al comienzo del flujo y envía automáticamente datos sobre el estado actual de la columna en el formato "Cheese" y HomeKit.
Emite datos sin transformación, es decir, en la forma en que se reciben del dispositivo. Estructura de mensajes:
{ "aliceState" : " IDLE " ,
"canStop" : false ,
"hdmi" :
{ "capable" : true ,
"present" : false },
"playerState" :
{ "duration" : 180.91 ,
"extra" :
{ "coverURI" : " avatars.yandex.net/get-music-content/2383988/de45408f.a.9039208-1/%% " ,
"stateType" : " music " },
"hasNext" : true ,
"hasPause" : false ,
"hasPlay" : false ,
"hasPrev" : true ,
"hasProgressBar" : true ,
"liveStreamText" : " " ,
"progress" : 20 ,
"showPlayer" : true ,
"subtitle" : " Крематорий " ,
"title" : " Мусорный ветер " },
"playing" : false ,
"timeSinceLastVoiceActivity" : 30454 ,
"volume" : 0 }Los mensajes del dispositivo pueden venir varias piezas por segundo, por lo que debe pensar en la necesidad de colocar el nodo RBE estándar para filtrar duplicados de acuerdo con el contenido (Payload.playerState.title), el nombre del intérprete (la carga de pago.playstate.subtitle)).
En el interior, la transformación del formato emitido en HomeKit y el Noda se puede unir directamente con el HomeKit-Noda, como resultado de qué flujo se simplifica significativamente. Yuzkes se puede encontrar al final de la documentación.
Hay opciones para HomeKit formateado:
Formado de HomeKit - Altavoz inteligente:
{ "CurrentMediaState" : 0 , "ConfiguredName" : " International String Trio - Tarantella " }Formado de HomeKit - Televisión:
{ "Active" : 1 }Al usar el dispositivo de televisión, es posible usar el "control remoto" en iOS.
Se coloca en el medio del flujo y, con cualquier mensaje entrante, envía el último estado del dispositivo a la carga útil. La estructura de la emisión es similar a los nodos de mensaje de estado completo en.
Se coloca al final del flujo y se usa para enviar mensajes al dispositivo. Se permite usar varios asentimientos para el mismo dispositivo, mientras que los datos se transmitirán a través de una conexión con el dispositivo.
Gestión de la reproducción de la columna. El nodo espera la carga útil por una línea Uno de los siguientes comandos vendrá: Play, Stop, Next, Prev, Forward (10 segundos por delante), hacia atrás (10 segundos de atrás), VolumeUp, Volumedown
Enviando al equipo, en lugar de contarle su columna con una voz: "Enciende la luz", "Enciende la música", "Enciende mi lista de reproducción", "Desconecte en 15 minutos", etc.
Reproducción por la voz de frases enviadas - texto a Spech. No tiene restricciones de símbolos. Los parámetros TTS se pueden establecer tanto en la configuración como algunos de ellos se pueden redefinir mediante un mensaje entrante.
Hay una serie de opciones:
Si es necesario, las vocales de choque en palabras deben tenerse en cuenta "+", por ejemplo:
остр+ота
м+ука
Las palabras largas se pueden dividir en palabras más cortas y estrés para cada una de estas palabras cortas, por ejemplo:
MN+Wow PR+Oficial C+EMI Pal+Atinsk
Algunas palabras se pueden intentar escribir como se escucha:
«ненастный» — нен+асный
«пожалуйста» — пож+алуста
Para hacer una pausa entre las palabras, use la sintaxis SIL <[number_millisect]>. Por ejemplo:
смелость sil <[500]> город+а берёт
Cada signo de puntuación separado por espacios se indica mediante una pausa de 50-100 ms.
<speaker audio="alice-sounds-game-win-1.opus"> У вас получилось!
Atrapa la salida de HomeKit de dispositivos SmartSpeaker (VCL/OKL) y Television (VCL/OFF + control remoto) del módulo NRCHB. La función de verificación HAP.Context se construye, evitando la hinchazón. Se une directamente al nodo HomeKit. La opción "Comando predeterminada" indica qué comando de voz iniciar si no hay una pista actual para el inicio de la reproducción, pero necesita jugar algo. Por ejemplo, "enciende mi música" o "enciende las canciones infantiles".
Recibe un mensaje en el formato JSON dentro de la carga útil y lo transfiere a la columna sin procesar. Es posible enviar varios mensajes en un mensaje por carga útil en forma de una matriz. Equipos famosos:
{
"command" : " rewind " ,
"position" : 120
}{
"command" : " play "
}{
"command" : " stop "
}{
"command" : " prev "
}{
"command" : " next "
}{
"command" : " playMusic " ,
"id" : " 2 " ,
"type" : " artist "
}{
"command" : " playMusic " ,
"id" : " 44731403 " ,
"type" : " track "
}{
"command" : " playMusic " ,
"id" : " 44731403:1234556 " ,
"type" : " playlist "
}{
"command" : " setVolume " ,
"volume" : 0.2
}{
"command" : " playRadio " ,
"id" : " detskoe "
}{
"command" : " repeat " ,
"mode" : " One "
}{
"command" : " shuffle " ,
"enable" : true
}{
"command" : " showAliceVisualState " ,
"aliceStateName" : " LISTENING " ,
"recognizedPhrase" : " "
}{
"command" : " sendText " ,
"text" : " Повторяй за мной 'Текст' "
}{
"command" : " sendText " ,
"text" : " Включи музыку "
}{
"command" : " serverAction " ,
"serverActionEventPayload" : {
"type" : " server_action " ,
"name" : " on_suggest "
}
}{
"command" : " serverAction " ,
"serverActionEventPayload" : {
"type" : " server_action " ,
"name" : " update_form " ,
"payload" : {
"form_update" : {
"name" : " personal_assistant.scenarios.repeat_after_me " ,
"slots" : [
{
"type" : " string " ,
"name" : " request " ,
"value" : " <speaker effect='megaphone'>Ехал Грека через реку <speaker effect='-'>видит Грека в реке рак "
}
]
},
"resubmit" : true
}
}
} "value" : " <speaker voice='kostya'>смелость sil <[500]> город+а берёт "Voces compatibles: Jane, Oksana, Omazh, Zahar, Ermil, Levitan, Ermilov, Silaerkan, Kolya, Kostya, Nastya, Sasha, Nick, Erkanyavas, Zhenya, Tanya, Anton_samokhvalov, Tatyana_Abramova, Vocessearch, ermil_with, ermily, ermil, Amigo, Zombie, Smoky, Alyss, Nick. (La lista se toma aquí)
"value" : " смелость sil <[500]> город+а берёт " "value" : " <speaker effect='megaphone'>Ехал Грека через реку <speaker effect='-'>видит Грека в реке рак " "value" : " <speaker audio='alice-sounds-game-win-1.opus'>У вас получилось! " "value" : " <speaker is_whisper= " true"'>Я говорю тихо-тихо!" "value" : " <speaker voice='kostya' audio='alice-sounds-game-win-1.opus' effect='megaphone'>добро пожаловать "{
"command" : " serverAction " ,
"serverActionEventPayload" : {
"type" : " server_action " ,
"name" : " update_form " ,
"payload" : {
"form_update" : {
"name" : " personal_assistant.automotive.greeting "
},
"resubmit" : true
}
}
}{
"command" : " serverAction " ,
"serverActionEventPayload" : {
"type" : " server_action " ,
"name" : " update_form " ,
"payload" : {
"form_update" : {
"name" : " personal_assistant.scenarios.bluetooth_on "
},
"resubmit" : true
}
}
}{
"command" : " serverAction " ,
"serverActionEventPayload" : {
"type" : " server_action " ,
"name" : " update_form " ,
"payload" : {
"form_update" : {
"name" : " personal_assistant.scenarios.bluetooth_off "
},
"resubmit" : true
}
}
}Interrupción forzada de la "audiencia" de Alice con cualquier mensaje en el nodo. Del mismo modo, 12 equipos de la sección anterior
Deja de tocar música y diga texto con un volumen de 0.8
[
{ "command" : " stop " },
{
"command" : " serverAction " ,
"serverActionEventPayload" : {
"type" : " server_action " ,
"name" : " on_suggest "
}
},
{ "command" : " setVolume " , "volume" : 0.8 },
{
"command" : " serverAction " ,
"serverActionEventPayload" : {
"type" : " server_action " ,
"name" : " update_form " ,
"payload" : {
"form_update" : {
"name" : " personal_assistant.scenarios.repeat_after_me " ,
"slots" : [
{
"type" : " string " ,
"name" : " request " ,
"value" : " <speaker effect='megaphone'>Ехал Грека через реку <speaker effect='-'>видит Грека в реке рак "
}
]
},
"resubmit" : true
}
}
}
]Hay varias formas de administrar la reproducción de música en las columnas.



Hay otra opción de @twocolors, en ejemplos.
Agregado por un flujo simple y se ve genial)


La lista de dispositivos NRCHB tiene altavoz inteligente. De la caja con un flujo simple, puede controlar el estado de la reproducción vocal y ver el nombre de la pista. Solo funciona en iOS 14 o MacOS Big Sur. Los elementos de gestión dentro de HomeKit no funcionan , aún no han sido traídos por el nodo HomeKit.
Si necesita trabajar en versiones antiguas de iOS/MacOS o necesita controlar la reproducción desde la herramienta estándar del control remoto del panel de control, puede ensamblar el flujo sobre la base del televisor HomeKit-Nod, los nodos en el formato correspondiente y la salida. Al mismo tiempo, Out-Noda en el formato de HomeKit sabe cómo "comprender" la entrada de SmartSpeaker, Television y ambos juntos. La revisión de mensajes para una burla está integrado en el noda. 

P: ¿Cómo obtener una OAuth-Token?
R: Como una de las opciones-https: //music-yandex-bot.ru
P: ¿Cómo obtener una tapa de pista?
R: Puede tomar un enlace a la portada de Yandex Music desde el mensaje de estado: Payload.playerstra.Coveruri
Al principio, agregue https: // y al final en lugar de %% el tamaño de la cubierta, por ejemplo 600x600. https://avatars.yandex.net/get-music-content/2383988/de45408f.a.9039208-1/600x600
P: ¿Cómo averiguar la estación de la estación? Esto puede ser necesario para distinguir las estaciones si no hay una.
R: Apéndice Yandex en el teléfono - dispositivos - Administración de dispositivos - Seleccione la estación - Información adicional
P: ¿Por qué el nombre de la pista en HomeKit no cambia inmediatamente después de cambiar?
R: Esto es normal, ya que el nombre del dispositivo se usa para la visualización, y los cambios en los nombres en HomeKit se reflejan, ya que tienen la prioridad más pequeña antes de los estados y condiciones.
P: Los elementos de gestión dentro de HomeKit están "atascados" y no funcionan
R: Si se usa el tipo de dispositivo de altavoz inteligente, entonces sí, no funcionan allí y no encontré cómo hacerlos activos. Si alguien puede hacerlos activos, la creación de problemas ayudará al resto. Ahora la alternativa es un dispositivo de TV y la conjunción del control remoto con él. Recibido como appletv. Un ejemplo está dentro de NRCHB
P: Después de iniciar el nodo-rojo, el dispositivo/dispositivo no es visible.
R: Esto sucede si el dispositivo no se encuentra en la red. Debe entenderse que el protocolo Zeroconf, que se usa para buscar, no da un resultado estable. Una búsqueda de 5 termina en ausencia de dispositivos encontrados. Como solución: solo espera un par de minutos y una segunda búsqueda encontrará a todas las personas desaparecidas de los radares
P: ¿Cómo agregar un ejemplo de un nodo?
R: En el menú rojo nodo hay un elemento de importación, y en él la sección de ejemplos. Dentro de la carpeta con el nombre del complemento hay todos los ejemplos.
Los equipos para administrar la estación se toman aquí. Gracias al autor.
- Yandex Station(tested)
- Yandex Mini(tested)
- Yandex Station Max(tested)
- Yandex Module(not tested)
- JBL Link Music(not tested)
- JBL Link Portable(tested)
Run the following command in your Node-RED user directory - typically `~/.node-red`
npm i node-red-contrib-yandex-station-management
Necesita token de música Yandex para funcionar propiedad.