Usando o módulo, você pode controlar a API em uma API local nos dispositivos de Yandex:
O trabalho é possível apenas com dispositivos que, ao mesmo tempo:
O trabalho requer um token de yandex.music. No módulo, no modo experimental, a possibilidade de obter um token de um paralle de login (graças ao envio aqui) é implementada. Se o recebimento do token não funcionar, tente ativar e desativar a autenticação de dois fatores nas configurações do Yandex. Fonte. Você pode verificar a segurança do uso dos dados contábeis observando o código
O segundo das varinatas de seu recibo é descrito nas perguntas frequentes
O terceiro das opções para obter token é descrito aqui
É possível trabalhar com vários dispositivos (testados) e várias contas (testadas).
Consiste em 4 acenos que permitem ajustar de maneira flexível a automação e usar notificações de voz:
A instalação é realizada através da seção de paleta de gerenciamento em Red Node ou usando o NPM. No catálogo com nó-vermelho (geralmente ~/.node-red ) para executar o comando:
npm i node-red-contrib-yandex-station-management
Após a instalação, para iniciar o trabalho, adicione qualquer nó, digite os dados contábeis (token) na seção de login, salve e pressione a implantação (obrigatória!). Como obter um token - escrito em perguntas frequentes.
Após os envoltórios nas configurações de NODA no campo da estação, as estações estão disponíveis para controle.
Se a estação não apareceu na lista, você poderá esperar alguns minutos ou reiniciar o Node-Red.
Configurações adicionais para a estação. É opcional, ou seja, tudo funcionará sem esse nó, mas pode ser mais interceptico. O nó é colocado fora do fluxo e não possui entradas e saídas.
Vestir -se para a estação. Se, por algum motivo, for necessário garantir que a conexão não seja feita - coloque -a em desativação.
No estado do manual, torna -se possível indicar manualmente o endereço da estação e a porta para conexão. Recomenda -se se o Docker, o HomeAssistante e outros casos em que não resolverá a determinação automática dos detalhes da rede para conexão forem usados.
A possibilidade de restrições a tempo de ouvir músicas, rádio, contos de fadas é implementada, para que pequenos amantes de histórias noturnos adormeçam o mais rápido possível. Está ajustado para cada dia da semana. Se você não custar um macaco ativo, para este dia as restrições não funcionam. Phrase a dizer é uma frase que Alice dirá em vez de música :) ao mesmo tempo, habilidades, despertadores, clima, notícias e assim por diante.
Ele é colocado no início do fluxo e envia automaticamente dados sobre o status atual da coluna no formato "queijo" e no HomeKit.
Ele emite dados sem transformação, isto é, na forma em que eles são recebidos do dispositivo. Estrutura de mensagens:
{ "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 }As mensagens do dispositivo podem vir várias peças por segundo, portanto, você deve pensar na necessidade de colocar o nó RBE padrão para filtrar duplicatas de acordo com o conteúdo (Payload.Playerstate.title), o nome do artista (Payload.PlayerState.Subtitle)).
No interior, a transformação do formato emitido no HomeKit e o Noda pode ser unido diretamente com o HomeKit-Noda, como resultado do qual o fluxo é significativamente simplificado. Yuzkes pode ser encontrado no final da documentação.
Existem opções para o HomeKit Formatted:
HomeKit formado - alto -falante inteligente:
{ "CurrentMediaState" : 0 , "ConfiguredName" : " International String Trio - Tarantella " }HomeKit formado - televisão:
{ "Active" : 1 }Ao usar o dispositivo de televisão, torna -se possível usar o "controle remoto" no iOS.
Ele é colocado no meio do fluxo e, com qualquer mensagem recebida, envia o último status do dispositivo para a carga útil. A estrutura da emissão é semelhante aos nós de mensagem de status total.
Ele é colocado no final do fluxo e usado para enviar mensagens para o dispositivo. É permitido usar vários acenos para o mesmo dispositivo, enquanto os dados serão transmitidos deles através de uma conexão com o dispositivo.
Gerenciamento da reprodução da coluna. O nó aguarda a carga útil por uma linha um dos seguintes comandos virá: brincar, parar, próximo, prev, avançar (10 segundos à frente), para trás (10 segundos atrás), volumeUp, volumedown
Enviando o time, em vez de contar sua coluna em uma voz: “Ligue a luz”, “Ligue a música”, “Ligue minha lista de reprodução”, “Desconecte -se em 15 minutos” e assim por diante.
Reprodução pela voz das frases enviadas - texto para Spech. Não tem restrições de símbolo. Os parâmetros TTS podem ser definidos nas configurações e alguns deles podem ser redefinidos por uma mensagem recebida.
Existem várias opções:
Se necessário, as vogais de choque em palavras devem ser observadas "+", por exemplo:
остр+ота
м+ука
Palavras longas podem ser divididas em palavras mais curtas e estresse para cada uma dessas palavras curtas, por exemplo:
Mn+wow pr+oficial c+emi pal+atinsk
Algumas palavras podem ser tentadas para escrever como são ouvidas:
«ненастный» — нен+асный
«пожалуйста» — пож+алуста
Para pausar entre as palavras, use SIL Syntax <[Number_millisect]>. Por exemplo:
смелость sil <[500]> город+а берёт
Cada marca de pontuação separada por espaços é indicada por uma pausa de 50-100 ms.
<speaker audio="alice-sounds-game-win-1.opus"> У вас получилось!
Ele captura a saída do HomeKit de dispositivos SmartSpeaker (VCL/OKL) e televisão (controle remoto VCL/OFF +) do módulo NRCHB. A função de verificação do Hap.Context é construída, impedindo inchaço. Ele se junta diretamente ao nó HomeKit. A opção "Comando padrão" indica qual comando de voz iniciar se não houver faixa atual para o início da reprodução, mas você precisa reproduzir alguma coisa. Por exemplo, "Turn On My Music" ou "Turn on Children's Songs".
Ele recebe uma mensagem no formato JSON dentro da carga útil e a transfere para a coluna sem processamento. É possível enviar várias mensagens em uma mensagem por carga útil na forma de uma matriz. Equipes famosas:
{
"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]> город+а берёт "Supported Voices: Jane, Oksana, Omazh, Zahar, Ermil, Levitan, Ermilov, Silaerkan, Kolya, Kostya, Nastya, Sasha, Nick, Erkanyavas, Zhenya, Tanya, Anton_samokhvalov, Tatyana_Abramova, Voicesesearch, Ermil_with_tuning, Robot, Dude, Zombie, esfumaçado, Alyss, Nick. (A lista é tirada aqui)
"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
}
}
}Interrupção forçada da "audição" de Alice com qualquer mensagem no nó. Da mesma forma, 12 equipes da seção anterior
Pare de tocar música e diga texto com um volume 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
}
}
}
]Existem várias maneiras de gerenciar a reprodução musical nas colunas.



Há outra opção do @twocolors, em exemplos.
Adicionado por um fluxo simples e parece ótimo)


A lista de dispositivos NRCHB possui alto -falante inteligente. A partir da caixa com um fluxo simples, você pode controlar o estado da reprodução vocal e ver o nome da faixa. Funciona apenas no iOS 14 ou MacOS Big Sur. Os elementos de gerenciamento dentro do HomeKit não funcionam , eles ainda não foram trazidos pelo nó HomeKit.
Se você precisar trabalhar em versões antigas do iOS/macOS ou precisar controlar a reprodução a partir da ferramenta padrão do controle remoto do painel de controle, poderá montar o fluxo com base na TV HomeKit-Nod, os nós no formato correspondente e fora. Ao mesmo tempo, o Formato Homekit Out-Noda sabe como "entender" a entrada do SmartSpeaker, da televisão e dos dois juntos. Verificando as mensagens para uma zombaria é incorporada ao NODA. 

P: Como obter um OAuth-Token?
R: Como uma das opções https: //music-yandex-bot.ru
P: Como obter uma capa de pista?
R: Você pode levar um link para a capa da música Yandex da mensagem de status: Payload.playerstra.coveruri
No início, adicione https: // e no final, em vez de %% o tamanho da capa, por exemplo, 600x600. https://avatars.yandex.net/get-music-content/2383988/de45408f.a.9039208-1/600x600
P: Como descobrir a estação da estação? Isso pode ser necessário para distinguir as estações, se não houver uma.
R: Apêndice Yandex no telefone - Dispositivos - Gerenciamento de dispositivos - Selecione a estação - Informações adicionais
P: Por que o nome da faixa no HomeKit não muda imediatamente após a troca?
R: Isso é normal, pois o nome do dispositivo é usado para exibição, e as alterações nos nomes do HomeKit são refletidas, pois elas têm a menor prioridade antes dos status e condições.
P: Os elementos de gerenciamento dentro do HomeKit estão "presos" e não funcionam
R: Se o tipo de dispositivo de alto -falante inteligente for usado, sim, eles não funcionam lá e eu não encontrei como torná -los ativos. Se alguém puder torná -los ativos, criar problemas ajudará o resto. Agora, a alternativa é um dispositivo de TV e a conjunção do controle remoto. Recebido como appletv. Um exemplo está dentro do NRCHB
P: Depois de iniciar o Node-RED, o dispositivo/dispositivo não é visível.
R: Isso acontece se o dispositivo não for encontrado na rede. Deve -se entender que o protocolo Zeroconf, usado para pesquisar, não fornece um resultado estável. Uma pesquisa de 5 extremidades na ausência de dispositivos encontrados. Como solução - apenas espere alguns minutos e uma segunda pesquisa encontrará todas as pessoas desaparecidas dos radares
P: Como adicionar um exemplo de um nó?
R: No menu Node-vermelho, há um item de importação e nele a seção Exemplos. Dentro da pasta com o nome do plug -in, existem todos os exemplos.
As equipes para gerenciar a estação são levadas aqui. Obrigado ao 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
Você precisa do Yandex Music Token para funcionar bem.