Menggunakan modul, Anda dapat mengontrol API di API lokal di perangkat Yandex:
Pekerjaan hanya dimungkinkan dengan perangkat yang pada saat yang sama:
Pekerjaan membutuhkan token dari yandex.music. Dalam modul, dalam mode eksperimental, kemungkinan mendapatkan token dari paralle login (terima kasih untuk mengirim di sini) diimplementasikan. Jika penerimaan token tidak berhasil, maka Anda harus mencoba menghidupkan dan menonaktifkan otentikasi dua faktor dalam pengaturan Yandex. Sumber. Anda dapat memverifikasi keamanan menggunakan data akuntansi dengan melihat kode
Yang kedua dari varinat penerimaannya dijelaskan dalam FAQ
Yang ketiga dari opsi untuk mendapatkan token dijelaskan di sini
Dimungkinkan untuk bekerja dengan beberapa perangkat (diuji) dan beberapa akun (diuji).
Ini terdiri dari 4 anggukan yang memungkinkan otomatisasi menyesuaikan secara fleksibel dan menggunakan pemberitahuan suara:
Instalasi dilakukan melalui bagian Kelola Palet dalam Node-Red atau menggunakan NPM. Dalam katalog dengan node-merah (biasanya ~/.node-red ) untuk menjalankan perintah:
npm i node-red-contrib-yandex-station-management
Setelah instalasi, untuk mulai bekerja, tambahkan node apa pun, masukkan data akuntansi (token) ke bagian login, simpan dan tekan penyebaran (wajib!). Cara mendapatkan token - ditulis dalam FAQ.
Setelah bungkus di pengaturan NODA di bidang stasiun, stasiun tersedia untuk dikendalikan.
Jika stasiun tidak muncul dalam daftar, maka Anda bisa menunggu beberapa menit atau memulai kembali node-merah.
Pengaturan tambahan untuk stasiun. Ini opsional, yaitu, semuanya akan bekerja tanpa node ini, tetapi bisa lebih interseptik. Node ditempatkan di luar aliran dan tidak memiliki pintu masuk dan output.
Berpakaian ke stasiun. Jika karena alasan tertentu perlu memastikan bahwa koneksi tidak dibuat - masukkan dalam dinonaktifkan.
Dalam keadaan manual, menjadi mungkin untuk secara manual menunjukkan alamat stasiun dan pelabuhan untuk koneksi. Disarankan jika Docker, Homeassistant, dan kasus -kasus lain di mana ia tidak berhasil menentukan penentuan otomatis detail jaringan untuk koneksi.
Kemungkinan pembatasan tepat waktu untuk mendengarkan lagu, radio, dongeng diterapkan, sehingga pecinta kecil cerita malam tertidur sesegera mungkin. Itu disetel untuk setiap hari dalam seminggu. Jika Anda tidak membutuhkan biaya aktif, maka untuk pembatasan hari ini tidak berfungsi. Frasa untuk dikatakan adalah frasa yang akan dikatakan Alice alih -alih musik :) Pada saat yang sama, keterampilan, jam alarm, cuaca, berita, dan sebagainya di tempat kerja.
Itu ditempatkan pada awal aliran dan secara otomatis mengirimkan data pada status kolom saat ini dalam format "keju" dan homeKit.
Ini mengeluarkan data tanpa transformasi, yaitu dalam bentuk di mana mereka diterima dari perangkat. Struktur Pesan:
{ "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 }Pesan dari perangkat dapat datang beberapa bagian per detik, jadi Anda harus memikirkan perlunya menempatkan simpul RBE standar untuk memfilter duplikat sesuai dengan konten (payload.playerstate.itle), nama pemain (payload.playerstate.subtitle)).
Di dalam, transformasi format yang dikeluarkan di bawah HomeKit dan noda dapat bergabung secara langsung dengan HomeKit-Noda, sebagai akibat dari aliran mana yang secara signifikan disederhanakan. Yuzkes dapat ditemukan di akhir dokumentasi.
Ada opsi untuk format yang diformat homeKit:
HomeKit Diformated - Speaker Cerdas:
{ "CurrentMediaState" : 0 , "ConfiguredName" : " International String Trio - Tarantella " }HomeKit Diformated - Televisi:
{ "Active" : 1 }Saat menggunakan perangkat televisi, menjadi mungkin untuk menggunakan "remote control" di iOS.
Itu ditempatkan di tengah aliran dan, dengan pesan yang masuk, mengirimkan status terakhir perangkat ke muatan. Struktur penerbitan mirip dengan node pesan status penuh di.
Itu ditempatkan di akhir aliran dan digunakan untuk mengirim pesan ke perangkat. Diizinkan untuk menggunakan beberapa anggukan untuk perangkat yang sama, sementara data akan ditransmisikan dari mereka melalui satu koneksi dengan perangkat.
Manajemen reproduksi kolom. Node menunggu muatan dengan baris salah satu dari perintah berikut akan datang: mainkan, stop, next, prev, forward (10 detik di depan), mundur (10 detik kembali), volumeUp, volumedownown
Mengirim tim, alih -alih memberi tahu kolomnya dengan suara: "Nyalakan lampu", "Nyalakan musik", "Nyalakan daftar putar saya", "Putuskan sambungan dalam 15 menit" dan seterusnya.
Reproduksi oleh suara frasa yang dikirim - teks ke spech. Ia tidak memiliki batasan simbol. Parameter TTS dapat diatur baik dalam pengaturan dan beberapa di antaranya dapat didefinisikan ulang dengan pesan yang masuk.
Ada sejumlah opsi:
Jika perlu, vokal kejutan dalam kata -kata harus dicatat "+", misalnya:
остр+ота
м+ука
Kata -kata panjang dapat dibagi menjadi kata -kata yang lebih pendek dan stres untuk masing -masing kata pendek ini, misalnya:
MN+WOW PR+Petugas C+EMI Pal+Atinsk
Beberapa kata dapat dicoba untuk ditulis saat didengar:
«ненастный» — нен+асный
«пожалуйста» — пож+алуста
Untuk menjeda antara kata -kata, gunakan sintaks SIL <[number_millisect]>. Misalnya:
смелость sil <[500]> город+а берёт
Setiap tanda baca yang dipisahkan oleh ruang ditunjukkan oleh jeda 50-100 ms.
<speaker audio="alice-sounds-game-win-1.opus"> У вас получилось!
Ini menangkap output dari HomeKit dari perangkat SmartSpeaker (VCL/OKL) dan televisi (VCL/OFF + remote control) dari modul NRCHB. Fungsi verifikasi hap.context dibangun, mencegah kembung. Bergabung langsung dengan Node HomeKit. Opsi "perintah default" menunjukkan perintah suara mana yang akan diluncurkan jika tidak ada trek saat ini untuk awal pemutaran, tetapi Anda harus memainkan sesuatu. Misalnya, "nyalakan musik saya" atau "nyalakan lagu anak -anak."
Dia menerima pesan dalam format JSON di dalam payload dan mentransfernya ke kolom tanpa diproses. Dimungkinkan untuk mengirim beberapa pesan dalam satu pesan dengan muatan dalam bentuk array. Tim terkenal:
{
"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]> город+а берёт "Suara yang Didukung: Jane, Oksana, Omazh, Zahar, Ermil, Levitan, Ermilov, Silaerankan, Kolya, Kostya, Nastya, Sasha, Nick, Erkananyavas, Zhenya, Tanya, Anton_samokhvalov, tatyana_abramova, voiceseMalov, tatyana_abramova, voicese, Zombie, Smoky, Alyss, Nick. (Daftar ini diambil di sini)
"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
}
}
}Gangguan paksa "pendengaran" Alice dengan pesan apa pun di simpul. Demikian pula 12 tim dari bagian sebelumnya
Berhenti bermain musik dan katakan teks dengan volume 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
}
}
}
]Ada sejumlah cara untuk mengelola pemutaran musik di kolom.



Ada opsi lain dari @twocolors, dalam contoh.
Ditambahkan oleh aliran sederhana dan tampak hebat)


Daftar perangkat NRCHB memiliki speaker pintar. Dari kotak dengan aliran sederhana, Anda dapat mengontrol keadaan reproduksi vokal dan melihat nama trek. Ini hanya berfungsi di iOS 14 atau MacOS Big Sur. Elemen manajemen di dalam homeKit tidak berfungsi , mereka belum dibawa oleh node homeKit.
Jika Anda perlu mengerjakan versi lama iOS/macOS atau Anda perlu mengontrol reproduksi dari alat standar remote control dari panel kontrol, maka Anda dapat merakit aliran berdasarkan TV homeKit-nod, node dalam format dan keluar yang sesuai. Pada saat yang sama, format Out-Noda dalam HomeKit tahu bagaimana "memahami" pintu masuk dari SmartSpeaker, televisi dan keduanya bersama-sama. Memeriksa pesan untuk ejekan dibangun ke dalam noda. 

T: Bagaimana cara mendapatkan oauth-acak?
A: Sebagai salah satu opsi-https: //music-anandex-bot.ru
T: Bagaimana cara mendapatkan penutup trek?
A: Anda dapat mengambil tautan ke sampul musik Yandex dari pesan status: payload.playerstra.coveruri
Pada awalnya, tambahkan https: // dan di akhir bukan %% ukuran penutup, misalnya 600x600. https://avatars.yandex.net/get-music-content/2383988/de45408f.a.9039208-1/600x600
T: Bagaimana cara mengetahui stasiun stasiun? Ini mungkin diperlukan untuk membedakan stasiun jika tidak ada.
A: Lampiran Yandex di telepon - Perangkat - Manajemen Perangkat - Pilih stasiun - Informasi Tambahan
T: Mengapa nama trek di HomeKit tidak segera berubah setelah beralih?
A: Ini normal, karena nama perangkat digunakan untuk tampilan, dan perubahan nama di HomeKit tercermin, karena mereka memiliki prioritas terkecil sebelum status dan ketentuan.
T: Elemen manajemen di dalam homeKit "macet" dan tidak berhasil
A: Jika jenis perangkat speaker pintar digunakan, maka ya, mereka tidak bekerja di sana dan saya tidak menemukan cara membuatnya aktif. Jika seseorang dapat membuatnya aktif, maka membuat masalah akan membantu sisanya. Sekarang alternatifnya adalah perangkat TV dan konjungsi remote control untuk itu. Diterima sebagai appletv. Contohnya ada di dalam nrchb
T: Setelah memulai node-merah, perangkat/perangkat tidak terlihat.
A: Ini terjadi jika perangkat tidak ditemukan di jaringan. Harus dipahami bahwa protokol zeroconf, yang digunakan untuk mencari, tidak memberikan hasil yang stabil. Satu pencarian 5 berakhir dengan tidak adanya perangkat yang ditemukan. Sebagai solusi - tunggu saja beberapa menit dan pencarian kedua akan menemukan semua orang yang hilang dari radar
T: Bagaimana cara menambahkan contoh dari node?
A: Di menu Node-Red ada item impor, dan di dalamnya bagian contoh. Di dalam folder dengan nama plugin ada semua contoh.
Tim untuk mengelola stasiun diambil di sini. Terima kasih kepada penulisnya.
- 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
Anda memerlukan token musik Yandex untuk bekerja secara properti.