باستخدام الوحدة النمطية ، يمكنك التحكم في واجهة برمجة التطبيقات في واجهة برمجة التطبيقات المحلية في أجهزة Yandex:
العمل ممكن فقط مع الأجهزة التي في نفس الوقت:
يتطلب العمل رمزًا من yandex.music. في الوحدة النمطية ، في الوضع التجريبي ، يتم تنفيذ إمكانية الحصول على رمز من طراز تسجيل الدخول (بفضل إرسال هنا). إذا لم ينجح استلام الرمز المميز ، فيجب أن تحاول تشغيل وتعطيل المصادقة ثنائية العوامل في إعدادات Yandex. مصدر. يمكنك التحقق من سلامة استخدام بيانات المحاسبة من خلال النظر في الكود
تم وصف الثانية من المتنافئة من إيصاله في الأسئلة الشائعة
تم وصف الثالث من خيارات الحصول على الرمز المميز هنا
من الممكن العمل مع العديد من الأجهزة (اختبار) والعديد من الحسابات (اختبار).
يتكون من 4 إيماءات تسمح بضبط الأتمتة بمرونة واستخدام إشعارات الصوت:
يتم تنفيذ التثبيت من خلال قسم Manage Palette في Node-Red أو باستخدام NPM. في الكتالوج باستخدام Node-Red (عادةً ~/.node-red ) لتنفيذ الأمر:
npm i node-red-contrib-yandex-station-management
بعد التثبيت ، لبدء العمل ، إضافة أي عقدة ، أدخل بيانات المحاسبة (الرمز المميز) إلى قسم تسجيل الدخول ، حفظ واضغط على Deploy (إلزامي!). كيفية الحصول على رمز - مكتوب في الأسئلة الشائعة.
بعد مناديل في إعدادات 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 مكون - مكبر صوت ذكي:
{ "CurrentMediaState" : 0 , "ConfiguredName" : " International String Trio - Tarantella " }HomeKit الذي تم تشكيله - التلفزيون:
{ "Active" : 1 }عند استخدام جهاز التلفزيون ، يصبح من الممكن استخدام "التحكم عن بُعد" على iOS.
يتم وضعه في منتصف التدفق ، وبأي رسالة واردة ، يرسل الحالة الأخيرة من الجهاز إلى حمولة. يشبه هيكل الإصدار عقد رسالة الحالة الكاملة في.
يتم وضعه في نهاية التدفق ويستخدم لإرسال الرسائل إلى الجهاز. يُسمح باستخدام العديد من الإيماءات لنفس الجهاز ، بينما سيتم إرسال البيانات منها من خلال اتصال واحد مع الجهاز.
إدارة استنساخ العمود. العقدة تنتظر الحمولة النافعة بخط واحد من الأوامر التالية سيأتي: اللعب ، توقف ، التالي ، السابق ، إلى الأمام (
إرسال الفريق ، بدلاً من إخبار عمودها بصوت: "قم بتشغيل الضوء" ، و "تشغيل الموسيقى" ، و "تشغيل قائمة التشغيل الخاصة بي" ، و "افصل في 15 دقيقة" وما إلى ذلك.
التكاثر بواسطة صوت العبارات المرسلة - النص إلى seph. ليس له قيود رمز. يمكن تعيين معلمات 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 Devices (VCL/OKL) والتلفزيون (VCL/OFF + التحكم عن بعد) لوحدة 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]> город+а берёт "الأصوات المدعومة: جين ، أوكسانا ، أومازي ، وزهر ، وإيرميل ، وليفيتان ، وإيرميلوف ، و سيلايركان ، وكوليا ، وكوستيا ، وناثيا ، ونيك ، وإركانيافاس ، و Zhenya ، و tanya ، و anton_samokhvalov ، و tatyana_abramova ، 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 ، والعقد في التنسيق المقابل والخارج. في الوقت نفسه ، يعرف Out-Noda في Formkit Confer كيفية "فهم" المدخل من SmartSpeaker والتلفزيون وكلاهما معًا. يتم التحقق من الرسائل للسخرية في نودا خارج. 

س: كيف تحصل على Oauth-token؟
ج: كواحد من الخيارات https: //music-yandex-bot.ru
س: كيف تحصل على غطاء المسار؟
ج: يمكنك أخذ رابط إلى غطاء الموسيقى Yandex من رسالة الحالة: payload.playerstra.coveri
في البداية ، أضف 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 للعمل بشكل خاص.