À l'aide du module, vous pouvez contrôler l'API dans une API locale dans les appareils de Yandex:
Le travail n'est possible qu'avec des appareils qui en même temps:
Le travail nécessite un jeton de yandex.usic. Dans le module, en mode expérimental, la possibilité d'obtenir un jeton à partir d'un paralle de connexion (grâce à l'envoi ici) est implémentée. Si la réception du jeton ne fonctionne pas, vous devez essayer d'allumer et de désactiver l'authentification à deux facteurs dans les paramètres des yandex. Source. Vous pouvez vérifier la sécurité de l'utilisation des données comptables en regardant le code
La seconde des varines de son reçu est décrite dans la FAQ
Le tiers des options d'obtention de jetons est décrit ici
Il est possible de travailler avec plusieurs appareils (testés) et plusieurs comptes (testés).
Il se compose de 4 hochements de tête qui permettent d'ajuster de manière flexible l'automatisation et d'utiliser des notifications vocales:
L'installation est effectuée via la section Gérer la palette dans le rouge-rouge ou en utilisant NPM. Dans le catalogue avec Node-Red (généralement ~/.node-red ) pour exécuter la commande:
npm i node-red-contrib-yandex-station-management
Après l'installation, pour commencer à travailler, ajoutez n'importe quel nœud, entrez les données comptables (jeton) à la section de connexion, enregistrez et appuyez sur Déploiement (obligatoire!). Comment obtenir un jeton - écrit en FAQ.
Après les enveloppes des paramètres NODA dans le champ de la station, les stations sont disponibles pour le contrôle.
Si la station n'apparaissait pas sur la liste, vous pouvez attendre quelques minutes ou redémarrer le nœud-rouge.
Paramètres supplémentaires pour la station. Il est facultatif, c'est-à-dire que tout fonctionnera sans ce nœud, mais il peut être plus interceptique. Le nœud est placé à l'extérieur du débit et n'a pas d'entrées et de sorties.
S'habiller à la gare. Si pour une raison quelconque, il est nécessaire de s'assurer que la connexion n'est pas établie - mettez-la en désactivé.
Dans l'état du manuel, il devient possible d'indiquer manuellement l'adresse de la station et le port pour la connexion. Il est recommandé si Docker, HomeSSistant et d'autres cas dans lesquels il ne permet pas de déterminer automatiquement les détails du réseau pour la connexion.
La possibilité de restrictions à l'heure pour écouter des chansons, la radio, les contes de fées est mis en œuvre, de sorte que les petits amoureux des histoires de nuit s'endorment dès que possible. Il est réglé pour chaque jour de la semaine. Si vous ne coûtez pas à une prise active, pour ce jour, les restrictions ne fonctionnent pas. La phrase est une phrase qu'Alice dira au lieu de la musique :) En même temps, les compétences, les réveils, la météo, les nouvelles, etc.
Il est placé au début du flux et envoie automatiquement des données sur l'état actuel de la colonne au format "Cheese" et HomeKit.
Il émet des données sans transformation, c'est-à-dire sous la forme dans laquelle ils sont reçus de l'appareil. Structure des messages:
{ "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 }Les messages de l'appareil peuvent venir plusieurs pièces par seconde, vous devriez donc réfléchir à la nécessité de mettre le nœud RBE standard pour filtrer les doublons en fonction du contenu (Payload.PlayerState.title), le nom de l'interprète (Payload.PlayerState.Subtitle)).
À l'intérieur, la transformation du format émis sous HomeKit et le NODA peut être jointe directement à la Homekit-NODA, à la suite de laquelle le flux est considérablement simplifié. Yuzkes peut être trouvé à la fin de la documentation.
Il existe des options pour HomeKit Formatted:
Homekit formé - Conférencier intelligent:
{ "CurrentMediaState" : 0 , "ConfiguredName" : " International String Trio - Tarantella " }Homekit formé - Télévision:
{ "Active" : 1 }Lorsque vous utilisez le périphérique de télévision, il devient possible d'utiliser la "télécommande" sur iOS.
Il est placé au milieu du flux et, avec tout message entrant, envoie le dernier statut de l'appareil à la charge utile. La structure de l'émission est similaire aux nœuds de message d'état complet dans.
Il est placé à la fin de l'écoulement et utilisé pour envoyer des messages à l'appareil. Il est autorisé à utiliser plusieurs hochements de tête pour le même appareil, tandis que les données seront transmises à partir d'eux via une connexion avec l'appareil.
Gestion de la reproduction de la colonne. Le nœud attend la charge utile par une ligne l'une des commandes suivantes viendra: jouer, arrêter, ensuite, prev, en avant (10 secondes avant), en arrière (10 secondes en arrière), volume, volumedown
Envoi de l'équipe, au lieu de raconter sa chronique d'une voix: «allumez la lumière», «allumer la musique», «allumer ma liste de lecture», «déconnecter en 15 minutes» et ainsi de suite.
Reproduction par la voix des phrases envoyées - Texte à SPECH. Il n'a aucune restriction de symbole. Les paramètres TTS peuvent être définis à la fois dans les paramètres et certains d'entre eux peuvent être redéfinis par un message entrant.
Il existe un certain nombre d'options:
Si nécessaire, les voyelles de choc dans les mots doivent être notées «+», par exemple:
остр+ота
м+ука
Les mots longs peuvent être divisés en mots plus courts et en stress pour chacun de ces mots courts, par exemple:
MN + WOW PR + OFFICIEL C + EMI PAL + ATINSK
Certains mots peuvent être essayés d'écrire au fur et à mesure qu'ils sont entendus:
«ненастный» — нен+асный
«пожалуйста» — пож+алуста
Pour faire une pause entre les mots, utilisez la syntaxe SIL <[Number_Millisect]>. Par exemple:
смелость sil <[500]> город+а берёт
Chaque marque de ponctuation séparée par des espaces est indiquée par une pause de 50 à 100 ms.
<speaker audio="alice-sounds-game-win-1.opus"> У вас получилось!
Il attrape la sortie de HomeKit à partir de périphériques SmartSpeaker (VCL / OKL) et de télévision (VCL / OFF + Remote Control) du module NRCHB. La fonction de vérification HAP.Context est construite, empêchant les ballonnements. Il se joint directement au nœud HomeKit. L'option "Commande par défaut" indique la commande vocale à lancer s'il n'y a pas de piste actuelle pour le début de la lecture, mais vous devez lire quelque chose. Par exemple, "Turn On My Music" ou "Turn on Children's Songs".
Il reçoit un message au format JSON à l'intérieur de la charge utile et le transfère à la colonne sans traitement. Il est possible d'envoyer plusieurs messages dans un message par charge utile sous forme d'un tableau. Équipes célèbres:
{
"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, Mec, zombie, fumé, Alyss, Nick. (La liste est prise ici)
"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
}
}
}Interruption forcée de "l'audition" d'Alice avec n'importe quel message dans le nœud. De même, 12 équipes de la section précédente
Arrêtez de jouer de la musique et dites du texte avec un 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
}
}
}
]Il existe plusieurs façons de gérer la lecture de la musique sur les colonnes.



Il existe une autre option de @TwoColors, dans des exemples.
Ajouté par un simple flux et a fière allure)


La liste des appareils NRCHB a un haut-parleur intelligent. De la boîte avec un simple flux, vous pouvez contrôler l'état de la reproduction vocale et voir le nom de la piste. Cela ne fonctionne que sur iOS 14 ou MacOS Big Sur. Les éléments de gestion à l'intérieur de HomeKit ne fonctionnent pas , ils n'ont pas encore été apportés par le nœud HomeKit.
Si vous devez travailler sur les anciennes versions d'iOS / MacOS ou si vous devez contrôler la reproduction à partir de l'outil standard de la télécommande à partir du panneau de commande, vous pouvez assembler le flux sur la base du téléviseur homekit-nod, les nœuds dans le format et l'extérieur correspondant. Dans le même temps, Out-Noda au format Homekit sait «comprendre» l'entrée de SmartSpeaker, de la télévision et les deux ensemble. La vérification des messages pour une moquerie est intégrée à Noda. 

Q: Comment obtenir un OAuth-token?
R: Comme l'une des options-https: //music-yandex-bot.ru
Q: Comment obtenir une couverture de piste?
R: Vous pouvez prendre un lien vers la couverture musicale Yandex à partir du message de statut: Payload.Playerstra.coveruri
Au début, ajoutez https: // et à la fin au lieu de %% la taille de la couverture, par exemple 600x600. https://avatars.yandex.net/get-mic-content/2383988/de45408f.a.9039208-1/600x600
Q: Comment découvrir la station de la station? Cela peut être nécessaire pour distinguer les stations s'il n'y en a pas.
R: Annexe Yandex sur le téléphone - Appareils - Gestion des périphériques - Sélectionnez la station - Informations supplémentaires
Q: Pourquoi le nom de la piste dans HomeKit ne change-t-il pas immédiatement après le changement?
R: Ceci est normal, car le nom de l'appareil est utilisé pour l'affichage, et les modifications des noms de HomeKit sont reflétées, car elles ont la moindre priorité avant les statuts et les conditions.
Q: Les éléments de gestion à l'intérieur de HomeKit sont "coincés" et ne fonctionnent pas
R: Si le type de dispositif de haut-parleur intelligent est utilisé, alors oui, ils ne fonctionnent pas là-bas et je n'ai pas trouvé comment les rendre actifs. Si quelqu'un peut les rendre actifs, la création de problèmes aidera le reste. Maintenant, l'alternative est un appareil TV et la conjonction de la télécommande. Reçu en tant qu'Appletv. Un exemple est à l'intérieur de NRCHB
Q: Après avoir démarré le Node-Red, le périphérique / périphérique n'est pas visible.
R: Cela se produit si le périphérique n'est pas trouvé sur le réseau. Il convient de comprendre que le protocole Zeroconf, qui est utilisé pour rechercher, ne donne pas un résultat stable. Une recherche de 5 se termine en l'absence de dispositifs trouvés. En tant que solution - attendez quelques minutes et une deuxième recherche trouvera toutes les personnes disparues des radars
Q: Comment ajouter un exemple d'un nœud?
R: Dans le menu Node-Red, il y a un élément d'importation, et dans la section Exemples. À l'intérieur du dossier avec le nom du plugin, il y a tous les exemples.
Les équipes pour gérer la station sont prises ici. Merci à l'auteur.
- 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
Vous avez besoin d'un jeton musical Yandex pour travailler à peu près.