การใช้โมดูลคุณสามารถควบคุม API ใน API ท้องถิ่นในอุปกรณ์ของ Yandex:
การทำงานเป็นไปได้เฉพาะกับอุปกรณ์ที่ในเวลาเดียวกัน:
งานต้องใช้โทเค็นจาก Yandex.Music ในโมดูลในโหมดการทดลองความเป็นไปได้ในการได้รับโทเค็นจากการเข้าสู่ระบบพารามิเตอร์ (ขอบคุณส่งที่นี่) ถูกนำมาใช้ หากใบเสร็จรับเงินของโทเค็นไม่ได้ผลคุณควรพยายามเปิดและปิดการรับรองการรับรองความถูกต้องสองปัจจัยในการตั้งค่า Yandex แหล่งที่มา. คุณสามารถตรวจสอบความปลอดภัยของการใช้ข้อมูลการบัญชีโดยดูที่รหัส
ที่สองของการแปรปรวนของใบเสร็จรับเงินอธิบายไว้ในคำถามที่พบบ่อย
ตัวเลือกที่สามสำหรับการรับโทเค็นอธิบายไว้ที่นี่
เป็นไปได้ที่จะทำงานกับอุปกรณ์หลายตัว (ทดสอบ) และหลายบัญชี (ทดสอบ)
ประกอบด้วย 4 พยักหน้าซึ่งอนุญาตให้ปรับระบบอัตโนมัติได้อย่างยืดหยุ่นและใช้การแจ้งเตือนด้วยเสียง:
การติดตั้งจะดำเนินการผ่านส่วน Manage Palette ใน Node-Red หรือใช้ NPM ในแคตตาล็อกที่มีโหนด-แดง (ปกติ ~/.node-red ) เพื่อดำเนินการคำสั่ง:
npm i node-red-contrib-yandex-station-management
หลังจากการติดตั้งเพื่อเริ่มงานให้เพิ่มโหนดใด ๆ ป้อนข้อมูลการบัญชี (โทเค็น) ลงในส่วนเข้าสู่ระบบบันทึกและกดปรับใช้ (บังคับ!) วิธีรับโทเค็น - เขียนในคำถามที่พบบ่อย
หลังจากการห่อหุ้มในการตั้งค่า NODA ในฟิลด์สถานีสถานีสามารถควบคุมได้
หากสถานีไม่ปรากฏในรายการคุณสามารถรอสองสามนาทีหรือรีสตาร์ท Node-Red
การตั้งค่าเพิ่มเติมสำหรับสถานี มันเป็นทางเลือกนั่นคือทุกอย่างจะทำงานได้หากไม่มีโหนดนี้ แต่มันสามารถดักจับได้มากขึ้น โหนดถูกวางไว้นอกการไหลและไม่มีทางเข้าและเอาต์พุต
แต่งตัวไปที่สถานี หากมีเหตุผลบางอย่างจำเป็นเพื่อให้แน่ใจว่าการเชื่อมต่อนั้นไม่ได้ทำไว้ให้ปิดการใช้งาน
ในสถานะของตนเองมันเป็นไปได้ที่จะระบุที่อยู่สถานีและพอร์ตสำหรับการเชื่อมต่อด้วยตนเอง ขอแนะนำหาก Docker, HomeAssistant และกรณีอื่น ๆ ที่ไม่ได้ใช้การกำหนดรายละเอียดเครือข่ายโดยอัตโนมัติสำหรับการเชื่อมต่อ
ความเป็นไปได้ของการ จำกัด เวลาในการฟังเพลงวิทยุ, เทพนิยายถูกนำไปใช้เพื่อให้ผู้รักเรื่องราวเล็ก ๆ ของตอนกลางคืนหลับไปโดยเร็วที่สุด มันถูกปรับสำหรับแต่ละวันของสัปดาห์ หากคุณไม่เสียค่าใช้จ่ายแจ็คที่ใช้งานอยู่สำหรับข้อ จำกัด ในวันนี้จะไม่ทำงาน วลีที่จะพูดเป็นวลีที่อลิซจะพูดแทนดนตรี :) ในเวลาเดียวกันทักษะนาฬิกาปลุกสภาพอากาศข่าวและอื่น ๆ
มันถูกวางไว้ที่จุดเริ่มต้นของการไหลและส่งข้อมูลโดยอัตโนมัติเกี่ยวกับสถานะปัจจุบันของคอลัมน์ในรูปแบบ "ชีส" และ homekit
มันออกข้อมูลโดยไม่มีการแปลงนั่นคือในรูปแบบที่พวกเขาได้รับจากอุปกรณ์ โครงสร้างข้อความ:
{ "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 }ข้อความจากอุปกรณ์สามารถมาได้หลายชิ้นต่อวินาทีดังนั้นคุณควรคิดถึงความจำเป็นในการวางโหนด RBE มาตรฐานเพื่อกรองรายการที่ซ้ำกันตามเนื้อหา (payload.playerstate.title) ชื่อของนักแสดง (payload.playerstate.subtitle)
ภายในการเปลี่ยนแปลงของรูปแบบที่ออกภายใต้ HomeKit และ Noda สามารถเข้าร่วมโดยตรงกับ homekit-noda ซึ่งเป็นผลมาจากการไหลที่ง่ายขึ้นอย่างมีนัยสำคัญ Yuzkes สามารถพบได้ในตอนท้ายของเอกสาร
มีตัวเลือกสำหรับการจัดรูปแบบ homekit:
HomeKit Formated - Smart Speaker:
{ "CurrentMediaState" : 0 , "ConfiguredName" : " International String Trio - Tarantella " }HomeKit Formated - โทรทัศน์:
{ "Active" : 1 }เมื่อใช้อุปกรณ์โทรทัศน์มันเป็นไปได้ที่จะใช้ "การควบคุมระยะไกล" บน iOS
มันถูกวางไว้ตรงกลางของการไหลและด้วยข้อความที่เข้ามาใด ๆ ส่งสถานะสุดท้ายของอุปกรณ์ไปยังน้ำหนักบรรทุก โครงสร้างของการออกมีความคล้ายคลึงกับโหนดข้อความสถานะเต็มใน
มันถูกวางไว้ที่ส่วนท้ายของการไหลและใช้ส่งข้อความไปยังอุปกรณ์ ได้รับอนุญาตให้ใช้พยักหน้าหลายตัวสำหรับอุปกรณ์เดียวกันในขณะที่ข้อมูลจะถูกส่งจากพวกเขาผ่านการเชื่อมต่อเดียวกับอุปกรณ์
การจัดการการทำซ้ำของคอลัมน์ Node Waits for payload โดยบรรทัดหนึ่งของคำสั่งต่อไปนี้จะมา: เล่น, หยุด, ถัดไป, ก่อนหน้า, ไปข้างหน้า (10 วินาทีข้างหน้า), ย้อนกลับ (10 วินาทีหลัง), volumeup, volumedown
การส่งทีมแทนที่จะบอกคอลัมน์ของเธอด้วยเสียง:“ เปิดไฟ”,“ เปิดเพลง”,“ เปิดรายการเพลย์ลิสต์ของฉัน”,“ ปลดการเชื่อมต่อใน 15 นาที” และอื่น ๆ
การทำซ้ำด้วยเสียงของวลีที่ส่ง - ข้อความถึง Spech มันไม่มีข้อ จำกัด สัญลักษณ์ พารามิเตอร์ TTS สามารถตั้งค่าได้ทั้งในการตั้งค่าและบางส่วนสามารถนิยามใหม่ได้ด้วยข้อความที่เข้ามา
มีตัวเลือกมากมาย:
หากจำเป็นควรสังเกตสระในคำพูด“+” ตัวอย่างเช่น:
остр+ота
м+ука
คำยาวสามารถแบ่งออกเป็นคำที่สั้นลงและความเครียดสำหรับแต่ละคำสั้น ๆ เหล่านี้เช่น:
mn+wow pr+เจ้าหน้าที่ c+emi pal+atinsk
บางคำสามารถพยายามเขียนตามที่ได้ยิน:
«ненастный» — нен+асный
«пожалуйста» — пож+алуста
หากต้องการหยุดชั่วคราวระหว่างคำให้ใช้ SIL Syntax <[number_millisect]> ตัวอย่างเช่น:
смелость sil <[500]> город+а берёт
เครื่องหมายวรรคตอนแต่ละเครื่องหมายที่คั่นด้วยช่องว่างจะถูกระบุด้วยการหยุดชั่วคราว 50-100 มิลลิวินาที
<speaker audio="alice-sounds-game-win-1.opus"> У вас получилось!
มันจับเอาท์พุทจาก HomeKit จากอุปกรณ์ SmartSpeaker (VCL/OKL) และโทรทัศน์ (VCL/OFF + Remote Control) ของโมดูล NRCHB ฟังก์ชั่นการตรวจสอบ HAP.Context ถูกสร้างขึ้นเพื่อป้องกันอาการท้องอืด มันเข้าร่วมโดยตรงกับโหนด homekit ตัวเลือก "คำสั่งเริ่มต้น" ระบุว่าคำสั่งเสียงใดที่จะเรียกใช้หากไม่มีแทร็กปัจจุบันสำหรับการเริ่มต้นการเล่น แต่คุณต้องเล่นอะไรบางอย่าง ตัวอย่างเช่น "เปิดเพลงของฉัน" หรือ "เปิดเพลงเด็ก"
เขาได้รับข้อความในรูปแบบ JSON ภายในน้ำหนักบรรทุกและโอนไปยังคอลัมน์โดยไม่ต้องประมวลผล เป็นไปได้ที่จะส่งข้อความหลายข้อความในข้อความเดียวโดยน้ำหนักบรรทุกในรูปแบบของอาร์เรย์ ทีมที่มีชื่อเสียง:
{
"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]> город+а берёт "เสียงที่สนับสนุน: เจน, โอคซา, โอมาซา, Zahar, Ermil, Levitan, Ermilov, Silaerkan, Kolya, Kostya, Nastya, Sasha, Nick, Erkanyavas, Zhenya, Tanya, Anton_samokhvalov, Tatyana Dude, Zombie, Smoky, Alyss, Nick (รายการถูกนำมาที่นี่)
"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 ไม่ทำงาน พวกเขายังไม่ได้ถูกนำโดยโหนด HomeKit
หากคุณต้องการทำงานกับ iOS/MACOS รุ่นเก่าหรือคุณต้องการควบคุมการทำซ้ำจากเครื่องมือมาตรฐานของรีโมทคอนโทรลจากแผงควบคุมคุณสามารถรวบรวมการไหลบนพื้นฐานของทีวี HomeKit-Nod โหนดในรูปแบบที่สอดคล้องกัน ในขณะเดียวกันรูปแบบ HomeKit ก็รู้วิธี“ เข้าใจ” ทางเข้าจาก SmartSpeaker โทรทัศน์และทั้งสองอย่างด้วยกัน การตรวจสอบข้อความสำหรับการเยาะเย้ยจะถูกสร้างขึ้นใน Noda 

ถาม: จะรับ oauth-token ได้อย่างไร?
ตอบ: เป็นหนึ่งในตัวเลือกที่ https: //music-yandex-bot.ru
ถาม: จะรับปกแทร็กได้อย่างไร?
ตอบ: คุณสามารถใช้ลิงก์ไปยังฝาครอบ Yandex Music จากข้อความสถานะ: payload.playerstra.coveruri
ในการเริ่มต้นเพิ่ม https: // และในตอนท้ายแทนที่จะเป็น %% ขนาดฝาครอบตัวอย่างเช่น 600x600 https://avatars.yandex.net/get-music-content/2383988/de45408f.a.9039208-1/600x600
ถาม: จะหาสถานีของสถานีได้อย่างไร? สิ่งนี้อาจจำเป็นต้องแยกแยะสถานีหากไม่มี
ตอบ: ภาคผนวก Yandex บนโทรศัพท์ - อุปกรณ์ - การจัดการอุปกรณ์ - เลือกสถานี - ข้อมูลเพิ่มเติม
ถาม: เหตุใดชื่อของแทร็กใน HomeKit จึงไม่เปลี่ยนทันทีหลังจากสลับ?
ตอบ: นี่เป็นเรื่องปกติเนื่องจากชื่อของอุปกรณ์ใช้สำหรับการแสดงผลและการเปลี่ยนแปลงชื่อใน HomeKit จะสะท้อนให้เห็นเนื่องจากมีลำดับความสำคัญน้อยที่สุดก่อนสถานะและเงื่อนไข
ถาม: องค์ประกอบการจัดการภายใน HomeKit คือ "ติด" และไม่ทำงาน
ตอบ: หากใช้ประเภทของอุปกรณ์สมาร์ทลำโพงแล้วใช่แล้วพวกเขาไม่ทำงานที่นั่นและฉันไม่พบวิธีที่จะทำให้พวกเขาใช้งานได้ หากใครบางคนสามารถทำให้พวกเขาทำงานได้การสร้างปัญหาจะช่วยส่วนที่เหลือ ตอนนี้ทางเลือกคืออุปกรณ์ทีวีและการรวมกันของรีโมทคอนโทรล ได้รับเป็น Appletv ตัวอย่างคือภายใน nrchb
ถาม: หลังจากเริ่มต้นโหนด-แดงอุปกรณ์/อุปกรณ์จะมองไม่เห็น
ตอบ: สิ่งนี้จะเกิดขึ้นหากอุปกรณ์ไม่พบในเครือข่าย ควรเข้าใจว่าโปรโตคอล Zeroconf ซึ่งใช้ในการค้นหาให้ผลลัพธ์ที่ไม่มั่นคง การค้นหาหนึ่งครั้งของ 5 สิ้นสุดในกรณีที่ไม่มีอุปกรณ์ที่พบ เป็นทางออก - รอเพียงไม่กี่นาทีและการค้นหาครั้งที่สองจะพบคนที่หายไปทั้งหมดจากเรดาร์
ถาม: จะเพิ่มตัวอย่างจากโหนดได้อย่างไร?
ตอบ: ในเมนูโหนด-แดงมีรายการนำเข้าและในส่วนตัวอย่าง ภายในโฟลเดอร์ที่มีชื่อปลั๊กอินมีตัวอย่างทั้งหมด
ทีมสำหรับการจัดการสถานีถูกนำมาที่นี่ ขอบคุณผู้แต่ง
- 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 เพื่อทำงานอย่างเป็นคุณสมบัติ