به Google Home Developer Center، مقصد جدیدی برای یادگیری نحوه توسعه اقدامات خانه هوشمند خوش آمدید. توجه: به ساخت کنش‌ها در کنسول Actions ادامه خواهید داد.

تحقق محلی

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

Local Home SDK ادغام خانه هوشمند شما با Google Assistant را با افزودن یک مسیر تحقق محلی برای مسیریابی اهداف خانه هوشمند افزایش می دهد.

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

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

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

درک کنید که چگونه کار می کند

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

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

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

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

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

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

برنامه تحقق محلی

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

برای پشتیبانی از ساخت برنامه، 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 پیکربندی اسکن را تنظیم کنید کنسول Actions را با پارامترهای لازم برای دستیار برای کشف دستگاه‌های قابل کنترل محلی پیکربندی کنید.
2 پاسخ SYNC را در انجام ابر خود به روز کنید در اجرای ابری خود، کنترل کننده درخواست SYNC را برای پشتیبانی از فیلد otherDeviceIds که پلتفرم از آن برای ایجاد یک مسیر تحقق محلی استفاده می‌کند، تغییر دهید. در آن فیلد، شناسه دستگاه هایی را که می توان به صورت محلی کنترل کرد، مشخص کنید.
3 برنامه تحقق محلی را پیاده سازی کنید از Local Home SDK برای ایجاد یک برنامه جاوا اسکریپت برای مدیریت IDENTIFY ، EXECUTE و QUERY استفاده کنید. برای دستگاه‌های پراکسی هاب یا پل، باید هدف REACHABLE_DEVICES را نیز مدیریت کنید.
4 برنامه خود را تست و اشکال زدایی کنید با استفاده از مجموعه آزمایشی Google Home ، ادغام خود را آزمایش کنید (یا خود تأیید کنید).

قبل از اینکه شروع کنی