Local Home SDK ادغام خانه هوشمند شما با Google Assistant را با افزودن یک مسیر تحقق محلی برای مسیریابی اهداف خانه هوشمند افزایش می دهد.
Local Home SDK دو قابلیت را ارائه می دهد: اجرای محلی و پرس و جو محلی.
- Local Execution توانایی انجام دستورات را با ارسال مقاصد
EXEC
در مسیر تحقق محلی، به جای برقراری تماس API ابری، فراهم می کند. برای مثال، درخواست «چراغ را روشن کنید» میتواند توسط Local Execution رسیدگی شود. - Local Query توانایی رسیدگی به پرس و جوهای مربوط به وضعیت دستگاه را با ارسال مقاصد
QUERY
در مسیر تحقق محلی فراهم می کند. به عنوان مثال، Local Query عبارت "آیا چراغ من روشن است؟" را برآورده می کند. بدون برقراری تماس API ابری.
SDK به شما امکان میدهد با استفاده از TypeScript یا JavaScript یک برنامه اجرایی محلی بنویسید که حاوی منطق کسب و کار خانه هوشمند شما باشد. دستگاههای Google Home یا Google Nest میتوانند برنامه شما را در دستگاه بارگیری و اجرا کنند. برنامه شما مستقیماً با دستگاه های هوشمند موجود شما از طریق Wi-Fi در یک شبکه محلی (LAN) ارتباط برقرار می کند تا دستورات کاربر را از طریق پروتکل های موجود انجام دهد.
ادغام SDK بهبودهایی در عملکرد ادغام Cloud-to-cloud شما ارائه می دهد، از جمله تأخیر کمتر و قابلیت اطمینان بیشتر. انجام محلی برای همه انواع دستگاه و ویژگیهای دستگاه پشتیبانی میشود، به جز مواردی که از تأیید کاربر ثانویه استفاده میکنند.
شروع به ساختن کنید نمونه را امتحان کنید
درک کنید که چگونه کار می کند
پس از دریافت پاسخ SYNC
از اجرای ابری شما، پلتفرم Local Home شبکه محلی کاربر را با استفاده از mDNS، پخش UDP یا UPnP اسکن میکند تا دستگاههای هوشمند متصل به دستیار را کشف کند.
پلتفرم با مقایسه شناسه دستگاه در پاسخ IDENTIFY
با مواردی که توسط پاسخ SYNC
قبلی برگردانده شده است، یک هدف IDENTIFY
ارسال می کند تا مشخص کند آیا دستگاه به صورت محلی قابل کنترل است یا خیر. اگر دستگاه شناسایی شده یک هاب یا پل باشد، پلتفرم یک هدف REACHABLE_DEVICES
ارسال می کند و هاب را به عنوان دستگاه پراکسی برای برقراری ارتباط محلی در نظر می گیرد.
هنگامی که پلتفرم پاسخی مبنی بر تأیید یک دستگاه محلی دریافت میکند، یک مسیر تکمیل محلی به Google Home یا دستگاه Google Nest کاربر ایجاد میکند و متعاقباً دستورات کاربر را برای انجام محلی هدایت میکند.
وقتی کاربری یکپارچهسازی Cloud-to-cloud را راهاندازی میکند که یک مسیر انجام محلی دارد، «دستیار» بهجای اجرای ابری، هدف EXECUTE
یا QUERY
را به دستگاه Google Home یا Google Nest ارسال میکند. سپس دستگاه برنامه تحقق محلی را برای پردازش هدف اجرا می کند.
پلتفرم Local Home در انتخاب دستگاه Google Home یا Google Nest برای اجرای فرمان غیر قطعی است. مقاصد EXECUTE
و QUERY
ممکن است از طریق هر دستگاه Google Home یا Google Nest که در همان ساختار Home Graph تعریف شده است به عنوان دستگاه هدف ارائه شود.
برنامه تحقق محلی
برنامه تحقق محلی حاوی منطق تجاری برای پردازش اهداف ارسال شده توسط پلت فرم Local Home و دسترسی به دستگاه هوشمند شما از طریق شبکه محلی است. هیچ تغییری در سخت افزار شما برای ادغام اجرای محلی انتظار نمی رود. این برنامه با ارسال دستورات کنترلی به دستگاه هوشمند از طریق پروتکل های لایه برنامه، از جمله HTTP، TCP یا UDP، درخواست های یکپارچه سازی Cloud-to-cloud را انجام می دهد. در صورتی که مسیر انجام محلی با شکست مواجه شود، تکمیل ابر شما به عنوان مسیر اجرای بازگشتی استفاده می شود.
برای پشتیبانی از ساخت برنامه، Local Home SDK این دو کلاس اصلی را ارائه می دهد:
-
DeviceManager
: روش هایی را برای برقراری ارتباط با دستگاه های هوشمند با استفاده از سوکت های TCP، UDP یا درخواست های HTTP ارائه می دهد. -
App
: روشهایی را برای پیوست کردن کنترلکنندهها برای اهدافی که Google پس از کشف دستگاههای قابل کنترل محلی (IDENTIFY
،REACHABLE_DEVICES
) ارسال میکند، ارائه میکند. این کلاس همچنین دستورات کاربر (EXECUTE
) را انجام می دهد و به سؤالات کاربر در وضعیت فعلی دستگاه (QUERY
) پاسخ می دهد.
در طول توسعه، می توانید برنامه را با بارگیری آن بر روی سرور میزبان یا ماشین توسعه محلی خود بسازید و آزمایش کنید. در مرحله تولید، Google برنامه شما را در محیط جعبه ایمنی جاوا اسکریپت در Google Home یا دستگاه Google Nest کاربر میزبانی میکند.
گزارش وضعیت API در حال حاضر برای انجام محلی پشتیبانی نمی شود. Google برای پردازش این درخواستها به انجام ابر شما متکی است.
چرخه عمر برنامه
زمانی که پلتفرم Local Home دستگاههای محلی جدیدی را که با پیکربندی اسکن پروژه مطابقت دارند یا اهداف معلقی برای ارائه مربوط به دستگاهی که قبلاً شناسایی شده است، پیدا کند، برنامه تحقق محلی شما بارگیری میشود.
دستگاههای Google Home یا Google Nest دارای حافظه محدود هستند و برنامه تکمیل محلی شما ممکن است در هر زمانی به دلیل فشار حافظه در سیستم خاتمه یابد. اگر برنامه شما شروع به مصرف بیش از حد حافظه کند، یا اگر سیستم نیاز به باز کردن فضا برای برنامه دیگری داشته باشد، ممکن است این اتفاق بیفتد. پلت فرم Local Home تنها زمانی برنامه شما را مجدداً راه اندازی می کند که اهداف جدیدی برای ارائه و منابع حافظه کافی برای اجرای برنامه وجود داشته باشد.
هنگامی که کاربر حساب خود را لغو پیوند میکند یا دیگر دستگاههایی وجود ندارند که از اجرای محلی مرتبط با agentUserId
کاربر پشتیبانی میکنند، پلتفرم Local Home برنامه شما را پس از مهلت زمانی بیکار بارگیری میکند.
دستگاه های پشتیبانی شده
پلتفرم Local Home برنامه اجرای محلی شما را در دستگاههای Google Home یا Google Nest پشتیبانیشده اجرا میکند. جدول زیر دستگاه های پشتیبانی شده و زمان اجرا استفاده شده در هر دستگاه را توضیح می دهد. برای کسب اطلاعات بیشتر در مورد الزامات زمان اجرا، به محیط اجرا مراجعه کنید.
دستگاه | تایپ کنید | محیط زیست |
---|---|---|
Google Home | بلندگو | کروم |
Google Home Mini | بلندگو | کروم |
Google Home Max | بلندگو | کروم |
Nest Mini | بلندگو | کروم |
Nest Hub | نمایش | کروم |
Nest Hub Max | نمایش | کروم |
Nest Wifi | روتر | Node.js |
نقطه | کروم |
محیط اجرا
محیط اجرای برنامه تکمیل محلی شما به دستگاه شما بستگی دارد. پلت فرم Local Home از محیط های زمان اجرا زیر پشتیبانی می کند:
- Chrome : برنامه تکمیل محلی شما در چارچوب یک
window
مرورگر Chrome که Chrome M80 یا جدیدتر را اجرا می کند با پشتیبانی از ECMAScript نسخه ES2018 اجرا می شود. - Node.js : برنامه تکمیل محلی شما به عنوان یک اسکریپت در یک فرآیند Node.js اجرا می شود که Node v10.x LTS یا جدیدتر را با پشتیبانی از ECMAScript نسخه ES2018 اجرا می کند.
ساختار کد منبع
ما توصیه میکنیم وابستگیهای خود را در یک فایل جاوا اسکریپت با استفاده از پیکربندیهای باندلر ارائهشده توسط Local Home SDK و بستهبندی کد منبع خود بهعنوان یک عبارت تابع فراخوانی فوری (IIFE) بستهبندی کنید.
مسیر پیاده سازی
برای استفاده از Local Home SDK برای ادغام خانه هوشمند خود، باید این وظایف را انجام دهید:
1 | پیکربندی اسکن را تنظیم کنید | Google Home Developer Console با پارامترهای لازم برای دستیار برای کشف دستگاههای قابل کنترل محلی پیکربندی کنید. |
2 | پاسخ SYNC را در انجام ابر خود به روز کنید | در اجرای ابری خود، کنترلکننده درخواست SYNC را برای پشتیبانی از فیلد otherDeviceIds که پلتفرم از آن برای ایجاد یک مسیر انجام محلی استفاده میکند، تغییر دهید. در آن فیلد، شناسه دستگاه هایی را که می توان به صورت محلی کنترل کرد، مشخص کنید. |
3 | برنامه تحقق محلی را پیاده سازی کنید | از Local Home SDK برای ایجاد یک برنامه جاوا اسکریپت برای مدیریت مقاصد IDENTIFY ، EXECUTE و QUERY استفاده کنید. برای دستگاههای پراکسی هاب یا پل، باید هدف REACHABLE_DEVICES را نیز مدیریت کنید. |
4 | برنامه خود را تست و اشکال زدایی کنید | با استفاده از مجموعه آزمایشی Google Home، ادغام خود را آزمایش کنید (یا خود تأیید کنید ). |
قبل از شروع
- با اصول اولیه ایجاد یکپارچگی Cloud-to-cloud آشنا شوید.
- در Google Home Developer Console ، مطمئن شوید که یک پروژه خانه هوشمند موجود دارید و پیوند حساب پیکربندی شده است .
- مطمئن شوید که با همان حساب Google در Developer Console و Assistant در دستگاه آزمایشی خود وارد شده اید.
- برای نوشتن برنامه خود به یک محیط Node.js نیاز دارید. برای نصب Node.js و npm، Node Version Manager توصیه می شود.
- برای کار با آخرین نسخه Local Home SDK، باید دستگاه های آزمایشی خود را در برنامه پیش نمایش Cast ثبت نام کنید .