モジュールを使用して、YandexのデバイスのローカルAPIでAPIを制御できます。
作業は、同時にデバイスでのみ可能です。
この作業には、yandex.musicからのトークンが必要です。モジュールでは、実験モードでは、ログインパレルからトークンを取得する可能性があります(こちらを送信したおかげで)実装されています。トークンの受領がうまくいかない場合は、Yandex設定で2因子認証をオンにして無効にしようとする必要があります。ソース。コードを調べて、会計データを使用する安全性を確認できます
領収書のバリネートの2番目はFAQで説明されています
トークンを取得するためのオプションの3番目はここで説明されています
いくつかのデバイス(テスト)およびいくつかのアカウント(テスト済み)で動作することができます。
これは、自動化を柔軟に調整し、音声通知を使用できる4つのうなずきで構成されています。
インストールは、Node-RedのManage PaletteセクションまたはNPMを使用して実行されます。コマンドを実行するためのノードレッド(通常は~/.node-red )を使用したカタログで:
npm i node-red-contrib-yandex-station-management
インストール後、作業を開始するには、ノードを追加し、ログインセクションにアカウンティングデータ(トークン)を入力し、保存して展開を押します(必須!)。トークンの取得方法 - FAQで書かれています。
ステーションフィールドのノーダ設定のラップ後、ステーションは制御できます。
ステーションがリストに表示されなかった場合は、数分待ったり、ノードレッドを再起動したりできます。
ステーションの追加設定。オプションです。つまり、すべてがこのノードなしで機能しますが、より傍受することができます。ノードはフローの外側に配置されており、入り口や出力はありません。
駅へのドレッシング。何らかの理由で、接続が行われないことを確認する必要がある場合 - それを無効にしてください。
マニュアルの状態では、接続用のステーションアドレスとポートを手動で示すことが可能になります。 Docker、Homeassistant、および接続のネットワーク詳細の自動決定が機能しない他のケースが使用される場合はお勧めします。
曲、ラジオ、おとぎ話を聴くための時間通りに制限が実装されているため、夜の物語の小さな愛好家ができるだけ早く眠りに落ちるようになります。曜日ごとに調整されています。アクティブなジャックのコストがかからない場合、この日は制限が機能しません。言うべきフレーズは、アリスが音楽の代わりに言うフレーズです:)同時に、スキル、目覚まし時計、天気、ニュースなどの仕事です。
フローの開始時に配置され、「チーズ」形式とホームキットの列の現在のステータスに関するデータを自動的に送信します。
変換なしでデータを発行します。つまり、デバイスから受信される形式です。メッセージ構造:
{ "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 }デバイスからのメッセージは1秒あたり数枚のピースになる可能性があるため、標準のRBEノードを配置して、コンテンツ(payload.playerstate.title)、パフォーマーの名前(payload.playerstate.subtitle)に従って複製をフィルタリングする必要性を考える必要があります。
内部では、HomeKitおよびNodaの下で発行された形式の変換は、HomeKit-Nodaと直接結合できます。その結果、流れは大幅に簡素化されます。 Yuzkesはドキュメントの最後にあります。
HomeKitフォーマットのオプションがあります。
HomeKitフォーミング - スマートスピーカー:
{ "CurrentMediaState" : 0 , "ConfiguredName" : " International String Trio - Tarantella " }HomeKitフォーミング - テレビ:
{ "Active" : 1 }テレビデバイスを使用すると、iOSで「リモートコントロール」を使用することが可能になります。
フローの中央に配置され、着信メッセージを使用すると、デバイスの最後のステータスをペイロードに送信します。発行の構造は、完全なステータスメッセージノードに似ています。
フローの最後に配置され、デバイスにメッセージを送信するために使用されます。同じデバイスにいくつかのうなずきを使用することができますが、データはデバイスとの1つの接続を介してそれらから送信されます。
コラムの複製の管理。ノードはペイロードを待機します。次のコマンドのいずれかが来ます:再生、停止、次へ、前、フォワード(10秒先)、後方(10秒前)、ボリュームアップ、ボリュームダウン
チームを送り、「ライトをオンにする」、「音楽をオンにする」、「プレイリストをオンにする」、「15分で切断」など:声でコラムを声で伝える代わりに。
送られたフレーズの声による複製 - テキストへのテキスト。シンボルの制限はありません。 TTSパラメーターは設定の両方で設定でき、それらのいくつかは着信メッセージによって再定義できます。
いくつかのオプションがあります。
必要に応じて、言葉の衝撃母音は「+」に注意する必要があります。
остр+ота
м+ука
長い単語は、これらの短い単語のそれぞれについて、より短く、ストレスに分けることができます。
MN+WOW PR+OFFICER C+EMI PAL+ATINSK
いくつかの言葉は、彼らが聞いたときに書くことを試みることができます:
«ненастный» — нен+асный
«пожалуйста» — пож+алуста
単語間で一時停止するには、SIL Syntax <[number_millisect]>を使用します。例えば:
смелость sil <[500]> город+а берёт
スペースで区切られた各句読点は、50〜100ミリ秒の一時停止によって示されます。
<speaker audio="alice-sounds-game-win-1.opus"> У вас получилось!
NRCHBモジュールのSmartSpeakerデバイス(VCL/OKL)およびテレビ(VCL/OFF +リモートコントロール)からのHomeKitからの出力をキャッチします。 hap.context検証関数は構築されており、膨張を防ぎます。 HomeKitノードに直接結合します。 「デフォルトコマンド」オプションは、再生の開始のための現在のトラックがない場合に起動する音声コマンドを示しますが、何かをプレイする必要があります。たとえば、「Turn On My Music」または「Turn On On Children's Songs」。
彼はペイロード内のJSON形式でメッセージを受信し、処理せずに列に転送します。配列の形式でペイロードで複数のメッセージを1つのメッセージに送信することができます。有名なチーム:
{
"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]> город+а берёт "サポートされている声:ジェーン、オクサナ、オマズ、ザハール、エルミル、レビタン、エルミロフ、シラエルカン、コリカ、コスティア、ナスティア、サーシャ、ニック、エルカニヤバス、Zhenya、ターニャ、アントン_samohvalov、タタヤナ男、ゾンビ、スモーキー、アリス、ニック。 (リストはここで撮影されています)
"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
}
}
}ノード内のメッセージによるアリスの「聴覚」の強制中断。同様に、前のセクションの12チーム
音楽を演奏するのをやめ、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
}
}
}
]コラムで音楽の再生を管理する方法はいくつかあります。



例として、@twocolorsから別のオプションがあります。
シンプルなフローによって追加され、見栄えがします)


NRCHBデバイスのリストにはスマートスピーカーがあります。シンプルなフローのあるボックスから、ボーカルの複製の状態を制御し、トラックの名前を見ることができます。 iOS 14またはMacOS Big Surでのみ機能します。 HomeKit内の管理要素は機能しません。ホームキットノードによってまだ持ち込まれていません。
古いバージョンのiOS/macOSで作業する必要がある場合、またはコントロールパネルからリモートコントロールの標準ツールからの再現を制御する必要がある場合は、Homekit-Nod TVに基づいてフローを組み立てることができます。同時に、HomeKit形式のAut-Nodaは、SmartSpeaker、テレビ、両方の入り口を「理解」する方法を知っています。 mockeryのメッセージのチェックは、nodaに組み込まれています。 

Q:Oauth-Tokenを取得する方法は?
A:options-https://music-yandex-bot.ruの1つとして
Q:トラックカバーを入手する方法は?
A:ステータスメッセージからYandex Musicカバーへのリンクを取得できます:payload.playerstra.coveruri
最初は、たとえば600x600など、カバーサイズの代わりにhttps://を追加します。 https://avatars.yandex.net/get-music-content/2383988/de45408f.a.9039208-1/600x600
Q:駅の駅を見つける方法は?これは、ステーションがない場合は、ステーションを区別するために必要になる場合があります。
A:電話のYandex付録 - デバイス - デバイス管理 - ステーションを選択 - 追加情報
Q:ホームキットのトラックの名前が切り替え後すぐに変更されないのはなぜですか?
A:これは正常です。デバイスの名前は表示に使用され、ホームキットの名前の変更は、ステータスと条件の前に最小の優先度があるため、反映されます。
Q:HomeKit内の管理要素は「スタック」されており、機能しません
A:スマートスピーカーデバイスの種類が使用されている場合、はい、それらはそこでは機能せず、それらをアクティブにする方法が見つかりませんでした。誰かがそれらをアクティブにすることができれば、問題を作成することは残りを助けます。現在、代替案はテレビデバイスであり、リモートコントロールを組み合わせたものです。 AppletVとして受信。例はNRCHB内にあります
Q:ノードレッドを起動した後、デバイス/デバイスが表示されません。
A:これは、デバイスがネットワーク上で見つからない場合に発生します。検索に使用されるZeroconfプロトコルは、安定した結果を与えないことを理解する必要があります。 5つの検索で、見つかったデバイスがない場合に1つの検索が終了します。解決策として - 数分待ってください。2回目の検索で、レーダーから行方不明のすべての人が見つかります
Q:ノードから例を追加する方法は?
A:ノードレッドメニューには、インポートアイテムがあり、その中に例があります。プラグインの名前のフォルダー内には、すべての例があります。
ステーションを管理するためのチームはここに連れて行かれます。著者に感謝します。
- 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
Yandex Musicトークンがプロパティに動作する必要があります。