تحقق محلی

Local Home SDK با افزودن مسیر اجرای محلی برای هدایت کردن اهداف خانه هوشمند، ادغام خانه هوشمندتان با «دستیار Google» را بهبود می‌بخشد.

کیت توسعه نرم‌افزار Local Home دو قابلیت ارائه می‌دهد: «اجرای محلی» و «پرس‌وجوی محلی».

  • اجرای محلی امکان اجرای فرمان‌ها را با ارسال EXEC هدف‌ها ازطریق مسیر اجرای محلی، به‌جای برقراری تماس میانای برنامه‌سازی کاربردی ابری، فراهم می‌کند. برای مثال، درخواست «چراغ را روشن کن» می‌تواند توسط «اجرای محلی» انجام شود.
  • Local Query امکان رسیدگی به پُرسمان‌های مربوط به وضعیت دستگاه را با ارسال هدف‌های QUERY ازطریق مسیر اجرای محلی فراهم می‌کند. برای مثال، «پُرسمان محلی» پُرسمان «آیا چراغ من روشن است؟» را بدون برقراری تماس میانای برنامه‌سازی کاربردی ابری انجام می‌دهد.

کیت توسعه نرم‌افزار به شما امکان می‌دهد بااستفاده از TypeScript یا JavaScript، برنامه اجرای محلی بنویسید که حاوی منطق کسب‌وکار خانه هوشمند شما باشد. دستگاه‌های Google Home یا Google Nest می‌توانند برنامه شما را در دستگاه بار کنند و اجرا کنند. برنامه شما مستقیماً با دستگاه‌های هوشمند موجودتان ازطریق Wi-Fi در شبکه محلی (LAN) ارتباط برقرار می‌کند تا فرمان‌های کاربر را ازطریق پروتکل‌های موجود اجرا کند.

ادغام کیت توسعه نرم‌افزار باعث بهبود عملکرد ادغام Cloud-to-cloud شما می‌شود، ازجمله تأخیر کمتر و قابلیت اطمینان بالاتر. اجرای محلی برای همه انواع دستگاه‌ها و ویژگی‌های دستگاه پشتیبانی می‌شود، به‌جز مواردی که از درستی‌سنجی ثانویه کاربر استفاده می‌کنند.

شروع ساخت امتحان کردن نمونه

آشنایی با نحوه عملکرد آن

پس‌از دریافت پاسخ SYNC از اجرای ابری، پلاتفرم Local Home شبکه محلی کاربر را بااستفاده از mDNS، پخش UDP، یا UPnP اسکن می‌کند تا دستگاه‌های هوشمند متصل به «دستیار» را پیدا کند.

پلاتفرم یک هدف IDENTIFY ارسال می‌کند تا با مقایسه شناسه دستگاه در پاسخ IDENTIFY با شناسه‌هایی که پاسخ قبلی SYNC برگردانده است، تعیین کند که آیا دستگاه به‌صورت محلی قابل کنترل است یا نه. اگر دستگاه شناسایی‌شده یک کانون یا پل باشد، پلاتفرم یک هدف REACHABLE_DEVICES ارسال می‌کند و با کانون به‌عنوان دستگاه پراکسی برای ارتباط محلی رفتار می‌کند.

وقتی پلاتفرم پاسخی مبنی بر تأیید دستگاه محلی دریافت می‌کند، مسیر اجرای محلی را به دستگاه Google Home یا Google Nest کاربر برقرار می‌کند و سپس فرمان‌های کاربر را برای اجرای محلی هدایت می‌کند.

وقتی کاربر ادغام Cloud-to-cloud را که مسیر اجرای محلی دارد راه‌اندازی می‌کند، «دستیار» به‌جای اجرای ابری، هدف EXECUTE یا هدف QUERY را به دستگاه Google Home یا Google Nest ارسال می‌کند. سپس دستگاه برنامه اجرای محلی را برای پردازش قصد اجرا می‌کند.

این شکل جریان اجرا را برای تحقق محلی نشان می‌دهد. مسیر
            اجرا قصد کاربر را از تلفن با
            «دستیار Google» دریافت می‌کند، سپس قصد کاربر توسط
            Google Cloud پردازش می‌شود، سپس به‌صورت محلی در دستگاه Google Home
            اجرا می‌شود و فرمان مستقیماً به کانون دستگاه یا
            مستقیماً به دستگاه صادر می‌شود. ابر توسعه‌دهنده به‌عنوان
            ابر جایگزین دردسترس است.
شکل ۱: افزودن مسیر اجرای محلی برای «کنش» خانه هوشمند.

پلاتفرم Local Home در انتخاب اینکه کدام دستگاه Google Home یا Google Nest فرمان را راه‌اندازی کند، غیرقطعی است. هدف‌های EXECUTE و QUERY ممکن است ازطریق هر دستگاه Google Home یا Google Nest که در همان ساختار Home Graph دستگاه هدف تعریف شده است، دریافت شوند.

برنامه برآورده‌سازی محلی

برنامه اجرای محلی حاوی منطق کسب‌وکار برای پردازش اهداف ارسال‌شده توسط پلاتفرم Local Home و دسترسی به دستگاه هوشمند شما ازطریق شبکه محلی است. برای ادغام کردن اجرای محلی، نیازی به اصلاح سخت‌افزارتان نیست. برنامه درخواست‌های ادغام Cloud-to-cloud را با ارسال فرمان‌های کنترلی به دستگاه هوشمند ازطریق پروتکل‌های لایه برنامه، ازجمله HTTP،‏ TCP، یا UDP برآورده می‌کند. درصورتی‌که مسیر اجرای محلی ناموفق باشد، اجرای ابری شما به‌عنوان مسیر اجرای جایگزین استفاده می‌شود.

برای پشتیبانی از ساخت برنامه، Local Home SDK این دو کلاس اصلی را ارائه می‌دهد:

  • DeviceManager: روش‌هایی برای برقراری ارتباط با دستگاه‌های هوشمند بااستفاده از TCP، سوکت‌های UDP، یا درخواست‌های HTTP ارائه می‌دهد.
  • App: روش‌هایی برای پیوست کردن گرداننده‌ها برای هدف‌هایی که Google پس‌از کشف دستگاه‌های قابل‌کنترل محلی (IDENTIFY، REACHABLE_DEVICES) ارسال می‌کند ارائه می‌دهد. این کلاس همچنین فرمان‌های کاربر را اجرا می‌کند (EXECUTE) و به پُرسمان‌های کاربر درباره وضعیت فعلی دستگاه پاسخ می‌دهد (QUERY).

درطول توسعه، می‌توانید برنامه را با بار کردن آن در سرور میزبان خودتان یا ماشین توسعه محلی بسازید و آزمایش کنید. در تولید، Google برنامه‌تان را در محیط جعبه امن جاوا اسکریپت در دستگاه Google Home یا Google Nest کاربر میزبانی می‌کند.

درحال‌حاضر از میانای برنامه‌سازی کاربردی گزارش وضعیت برای اجرای محلی پشتیبانی نمی‌شود. Google برای پردازش این درخواست‌ها به انجام ابری شما متکی است.

چرخه حیات برنامه

وقتی پلاتفرم Local Home دستگاه‌های محلی جدیدی را که با پیکربندی اسکن پروژه مطابقت دارند کشف می‌کند، یا قصد معوقی برای ارائه مربوط به دستگاهی که قبلاً شناسایی شده است دارد، برنامه اجرای محلی شما درصورت درخواست بار می‌شود.

دستگاه‌های Google Home یا Google Nest محدودیت حافظه دارند و برنامه اجرای محلی شما ممکن است به‌دلیل فشار حافظه در سیستم در هرزمانی خاتمه یابد. این اتفاق زمانی می‌افتد که برنامه شما شروع به مصرف بیش‌ازحد حافظه کند یا سیستم نیاز به ایجاد فضا برای برنامه دیگری داشته باشد. پلاتفرم Local Home برنامه شما را فقط زمانی بازراه‌اندازی می‌کند که هدف‌های جدیدی برای ارائه وجود داشته باشد و منابع حافظه کافی برای اجرای برنامه دردسترس باشد.

وقتی کاربر حسابش را لغو پیوند می‌کند یا دیگر دستگاهی که از اجرای محلی پشتیبانی کند با agentUserId کاربر مرتبط نیست، پلاتفرم Local Home پس‌از اتمام مهلت عدم فعالیت، برنامه شما را بارگیری نمی‌کند.

دستگاه‌های پشتیبانی‌شده

پلاتفرم Local Home برنامه اجرای محلی شما را در دستگاه‌های Google Home یا Google Nest پشتیبانی‌شده اجرا می‌کند. جدول زیر دستگاه‌های پشتیبانی‌شده و زمان اجرای استفاده‌شده در هر دستگاه را شرح می‌دهد. برای کسب اطلاعات بیشتر درباره الزامات زمان اجرا، محیط اجرا را ببینید.

دستگاه نوع محیط زیست
Google Home بلندگو Chrome
Google Home Mini بلندگو Chrome
Google Home Max بلندگو Chrome
‫Nest Mini بلندگو Chrome
Nest Hub نمایشگر Chrome
Nest Hub Max نمایشگر Chrome
Nest Wifi رهیاب Node.js
نقطه Chrome

محیط اجرا

محیط اجرای برنامه برآورده‌سازی محلی شما به دستگاه شما بستگی دارد. پلاتفرم Local Home از محیط‌های زمان اجرای زیر پشتیبانی می‌کند:

  • Chrome: برنامه اجرای محلی شما در بافت مرورگر Chrome window اجرا می‌شود که Chrome M80 یا جدیدتر را با پشتیبانی از ECMAScript نسخه ES2018 اجرا می‌کند.
  • Node.js: برنامه اجرای محلی شما به‌عنوان یک اسکریپت در فرایند Node.js اجرا می‌شود که Node v10.x LTS یا جدیدتر را با پشتیبانی از ECMAScript نسخه ES2018 اجرا می‌کند.

ساختار کد منبع

توصیه می‌کنیم وابستگی‌هایتان را بااستفاده از پیکربندی‌های بسته‌بندی ارائه‌شده توسط Local Home SDK در یک فایل JavaScript بسته‌بندی کنید و کد منبعتان را به‌عنوان عبارت تابع فراخوانی‌شده فوری (IIFE) بسته‌بندی کنید.

مسیر پیاده‌سازی

برای استفاده از Local Home SDK برای ادغام خانه هوشمندتان، باید این کارها را انجام دهید:

۱ پیکربندی اسکن را راه‌اندازی کنید Google Home Developer Console را با پارامترهای لازم برای «دستیار» پیکربندی کنید تا دستگاه‌های قابل‌کنترل محلی را کاوش کند.
۲ به‌روزرسانی پاسخ همگام‌سازی در اجرای ابری در اجرای ابری، SYNC مدیریت‌کننده درخواست را اصلاح کنید تا از فیلد otherDeviceIds که پلاتفرم برای ایجاد مسیر اجرای محلی استفاده می‌کند پشتیبانی کند. در آن فیلد، شناسه‌های دستگاه‌هایی را که می‌توانند به‌طور محلی کنترل شوند مشخص کنید.
3 پیاده‌سازی برنامه اجرای محلی از Local Home SDK برای ایجاد برنامه JavaScript برای رسیدگی به هدف‌های IDENTIFY، EXECUTE، و QUERY استفاده کنید. برای دستگاه‌های پراکسی هاب یا پل، باید قصد REACHABLE_DEVICES را نیز مدیریت کنید.
‫۴ آزمایش و اشکال‌زدایی برنامه بااستفاده از مجموعه آزمون Google Home، ادغام خود را آزمایش کنید (یا خودتأیید کنید).

قبل‌از شروع