Mit dem Modul können Sie die API in einer lokalen API in Yandex -Geräten steuern:
Die Arbeit ist nur mit Geräten möglich, die gleichzeitig:
Die Arbeit erfordert ein Token von yandex.music. Im Modul im experimentellen Modul wird die Möglichkeit, ein Token aus einem Anmeldungsparalle (dank des Sendens hier) zu erhalten, implementiert. Wenn der Erhalt von Token nicht funktioniert, sollten Sie versuchen, die Zwei-Faktor-Authentifizierung in den Yandex-Einstellungen einzuschalten und zu deaktivieren. Quelle. Sie können die Sicherheit der Verwendung der Buchhaltungsdaten überprüfen, indem Sie sich den Code ansehen
Die zweite der Varinaten seiner Quittung ist in den FAQs beschrieben
Die dritte der Optionen zum Erhalten von Token wird hier beschrieben
Es ist möglich, mit mehreren Geräten (getestet) und mehreren Konten (getestet) zu arbeiten.
Es besteht aus 4 Nicken, die es ermöglichen, die Automatisierung flexibel anzupassen und Sprachbenachrichtigungen zu verwenden:
Die Installation erfolgt über den Abschnitt Palette verwalten in Node-rot oder mit NPM. Im Katalog mit Knotenrot (normalerweise ~/.node-red ), um den Befehl auszuführen:
npm i node-red-contrib-yandex-station-management
Fügen Sie nach der Installation, um den Arbeiten zu starten, einen beliebigen Knoten hinzu, geben Sie die Buchhaltungsdaten (Token) in den Anmeldeabschnitt ein, speichern und drücken Sie die Bereitstellung (obligatorisch!). Wie man ein Token bekommt - in FAQ geschrieben.
Nach den Wraps in den NODA -Einstellungen im Stationsfeld stehen Stationen zur Kontrolle zur Verfügung.
Wenn die Station nicht auf der Liste angezeigt wurde, können Sie ein paar Minuten warten oder die Knotenredukt neu starten.
Zusätzliche Einstellungen für die Station. Es ist optional, das heißt, alles funktioniert ohne diesen Knoten, kann aber interzeptischer sein. Der Knoten wird außerhalb des Flusses platziert und hat keine Eingänge und Ausgänge.
Dressing zum Bahnhof. Wenn aus irgendeinem Grund sichergestellt wird, dass die Verbindung nicht hergestellt wird, stellen Sie sie in Behinderungen ein.
Im Handbuch ist es möglich, die Stationsadresse und den Anschluss für die Verbindung manuell anzuzeigen. Es wird empfohlen, wenn Docker, Homasen und andere Fälle, in denen die automatische Bestimmung der Netzwerkdetails für die Verbindung nicht funktioniert, verwendet wird.
Die Möglichkeit von Einschränkungen pünktlich zum Hören von Liedern, Radio und Märchen wird umgesetzt, so dass kleine Liebhaber von Nachtgeschichten so schnell wie möglich einschlafen. Es ist für jeden Wochentag abgestimmt. Wenn Sie keine aktive Buchse kosten, funktionieren für diese Tagesbeschränkungen nicht. Die Phrase zu sagen ist eine Phrase, die Alice anstelle von Musik sagen wird :) Gleichzeitig Fähigkeiten, Wecker, Wetter, Neuigkeiten usw.
Es wird zu Beginn des Flusses platziert und sendet automatisch Daten zum aktuellen Status der Spalte im Format "Käse" und HomeKit.
Es gibt Daten ohne Transformation aus, dh in der Form, in der sie vom Gerät empfangen werden. Nachrichtenstruktur:
{ "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 }Nachrichten aus dem Gerät können mehrere Teile pro Sekunde geliefert werden. Sie sollten daher über die Notwendigkeit nachdenken, den Standard -RBE -Knoten zu setzen, um Duplikate gemäß dem Inhalt (payload.PlayerState.title), dem Namen des Darstellers (payload.playlastState.subtitle)) zu filtern.
Im Inneren kann die Transformation des ausgegebenen Formats unter HomeKit und dem Noda direkt mit der HomeKit-Noda verbunden werden, wobei der Fluss erheblich vereinfacht wird. Yuzkes finden Sie am Ende der Dokumentation.
Es gibt Optionen für HomeKit -Formatierung:
HomeKit Formated - Smart Lautsprecher:
{ "CurrentMediaState" : 0 , "ConfiguredName" : " International String Trio - Tarantella " }HomeKit formated - Fernsehen:
{ "Active" : 1 }Bei der Verwendung des Fernsehgeräts kann die "Fernbedienung" auf iOS verwendet werden.
Es befindet sich in der Mitte des Flusses und sendet mit jeder eingehenden Nachricht den letzten Status des Geräts an die Nutzlast. Die Struktur der Ausgabe ähnelt den vollständigen Statusnachrichtenknoten in.
Es wird am Ende des Flusses platziert und verwendet, um Nachrichten an das Gerät zu senden. Für dasselbe Gerät können mehrere NODs verwendet werden, während die Daten durch eine Verbindung mit dem Gerät von ihnen übertragen werden.
Verwaltung der Reproduktion der Spalte. Der Knoten wartet auf die Nutzlast durch eine Zeile. Einer der folgenden Befehle wird kommen: Spielen, Stop, Weiter, vorwärts, vorwärts (10 Sekunden voraus), rückwärts (10 Sekunden zurück), VolumeUp, Volumedown
Senden Sie das Team, anstatt ihre Kolumne mit einer Stimme zu sagen: "Schalten Sie das Licht ein", "Schalten Sie die Musik ein", "Schalten Sie meine Wiedergabeliste ein", "Trennen Sie in 15 Minuten" und so weiter.
Reproduktion durch die Stimme von gesendeten Phrasen - Text zu Spech. Es hat keine Symbolbeschränkungen. TTS -Parameter können beide in den Einstellungen und einige von ihnen durch eine eingehende Nachricht neu definiert werden.
Es gibt eine Reihe von Optionen:
Bei Bedarf sollten Schockvokale in Worten "+" bezeichnet werden, zum Beispiel:
остр+ота
м+ука
Lange Wörter können für jedes dieser kurzen Wörter in Wörter unterteilt werden, zum Beispiel:
Mn+Wow PR+Offizier C+Emi Pal+Atinsk
Einige Wörter können versucht zu schreiben, wie sie gehört werden:
«ненастный» — нен+асный
«пожалуйста» — пож+алуста
Verwenden Sie die SIL -Syntax <[number_millisect]>, um zwischen den Wörtern zu pausieren. Zum Beispiel:
смелость sil <[500]> город+а берёт
Jede durch Leerzeichen getrennte Zeichensetzung wird durch eine Pause von 50 bis 100 ms angegeben.
<speaker audio="alice-sounds-game-win-1.opus"> У вас получилось!
Es fängt die Ausgabe von HomeKit von SmartSpeaker -Geräten (VCL/OKL) und Fernsehen (VCL/Off + Fernbedienung) des NRCHB -Moduls auf. Die HAP.Context -Überprüfungsfunktion wird erstellt, wodurch Blähungen verhindern. Es verbindet sich direkt mit dem HomeKit -Knoten. Die Option "Standardbefehl" gibt an, welcher Sprachbefehl Sie starten soll, wenn es keinen aktuellen Track für den Start der Wiedergabe gibt, aber Sie müssen etwas abspielen. Zum Beispiel "My Music on On My Music" oder "Turn On Lieder einschalten".
Er erhält eine Nachricht im JSON -Format in der Nutzlast und überträgt sie ohne Verarbeitung in die Spalte. Es ist möglich, mehrere Nachrichten in einer Nachricht per Nutzlast in Form eines Arrays zu senden. Berühmte Teams:
{
"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, Smoky, Alyss, Nick. (Die Liste wird hier aufgenommen)
"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
}
}
}Zwangsunterbrechung von Alice '"Hören" mit jeder Nachricht im Knoten. Ebenso 12 Teams des vorherigen Abschnitts
Hören Sie auf Musik zu spielen und sagen Sie Text mit einer Lautstärke von 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
}
}
}
]Es gibt eine Reihe von Möglichkeiten, die Musikwiedergabe in Spalten zu verwalten.



In Beispielen gibt es eine weitere Option von @twocolors.
Hinzugefügt durch einen einfachen Fluss und sieht toll aus)


Die Liste der NRCHB -Geräte enthält Smart Speaker. Aus der Box mit einem einfachen Fluss können Sie den Zustand der Stimmreproduktion steuern und den Namen des Tracks sehen. Es funktioniert nur auf iOS 14 oder macos big sur. Managementelemente in HomeKit funktionieren nicht , sie wurden noch nicht vom Homekit -Knoten mitgebracht.
Wenn Sie an alten Versionen von iOS/macOS arbeiten müssen oder die Fortpflanzung aus dem Standardwerkzeug der Fernbedienung aus dem Bedienfeld steuern müssen, können Sie den Fluss auf der Grundlage des HomeKit-NOD-Fernsehgeräts, die Knoten im entsprechenden Format und Out zusammenstellen. Gleichzeitig weiß Out-Noda im HomeKit-Format, wie man den Eingang von Smartspeaker, Fernsehen und beiden zusammen „versteht“. Das Überprüfen von Nachrichten für einen Spott ist in das Noda integriert. 

F: Wie bekomme ich einen OAuth-Token?
A: Als eine der Optionen https: //music-yandex-bot.ru
F: Wie bekomme ich ein Track -Cover?
A: Sie können einen Link zum Yandex -Musikcover aus der Statusnachricht: Payload.Playerstra.coveruri nehmen
Fügen Sie am Anfang https: // und am Ende anstelle von %% der Covergröße hinzu, zum Beispiel 600x600. https://avatars.yandex.net/get-music-content/2383988/de45408f.a.9039208-1/600x600
F: Wie kann ich die Station der Station herausfinden? Dies kann erforderlich sein, um die Stationen zu unterscheiden, wenn es keine gibt.
A: Yandex -Anhang auf dem Telefon - Geräte - Geräteverwaltung - Wählen Sie die Station - zusätzliche Informationen aus
F: Warum ändert sich der Name der Strecke in HomeKit nicht unmittelbar nach dem Umschalten?
A: Dies ist normal, da der Name des Geräts für die Anzeige verwendet wird und die Änderungen der Namen in HomeKit reflektiert werden, da sie die kleinste Priorität vor Status und Bedingungen haben.
F: Managementelemente in HomeKit sind "festgefahren" und funktionieren nicht
A: Wenn die Art des intelligenten Lautsprechergeräts verwendet wird, dann funktionieren sie dort nicht und ich habe nicht gefunden, wie man sie aktiv macht. Wenn jemand sie aktiv machen kann, hilft das Erstellen von Problemen dem Rest. Jetzt ist die Alternative ein TV -Gerät und die Konjunktion der Fernbedienung. Als Appletv erhalten. Ein Beispiel ist in NRCHB
F: Nach dem Start des Knotenrote ist das Gerät/das Gerät nicht sichtbar.
A: Dies geschieht, wenn das Gerät nicht im Netzwerk gefunden wird. Es ist zu verstehen, dass das zum Suchen verwendete Zeroconf -Protokoll kein stabiles Ergebnis erzielt. Eine Suche von 5 endet ohne gefundene Geräte. Warten Sie als Lösung - warten Sie nur ein paar Minuten und eine zweite Suche findet alle fehlenden Personen aus den Radaren
F: Wie füge ich ein Beispiel aus einem Knoten hinzu?
A: Im Node-Red-Menü befindet sich ein Importelement und im Abschnitt Beispiele. Im Ordner mit dem Namen des Plugins gibt es alle Beispiele.
Die Teams zur Verwaltung der Station werden hier genommen. Vielen Dank an den 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
Sie brauchen Yandex Music Token, um Eigenschaften zu arbeiten.