مقاصد

اهداف خانه هوشمند، اشیاء پیام‌رسان ساده‌ای هستند که توصیف می‌کنند ادغام Cloud-to-cloud چه کاری را باید انجام دهد، مانند روشن کردن یک چراغ یا پخش صدا به بلندگو.

تمام اهداف smart home در فضای نام action.devices قرار دارند و شما باید برای آنها تکمیل فرآیند (compliance) را فراهم کنید. هر زمان که Google Assistant یک هدف (intent) را برای تکمیل فرآیند ارسال می‌کند، توکن دسترسی OAuth 2 شخص ثالث کاربر در هدر Authorization ارسال می‌شود.

اینها اهداف پشتیبانی شده smart home هستند:

همگام‌سازی

از تابع action.devices.SYNC برای درخواست فهرست دستگاه‌های smart home که کاربر به آنها متصل شده و برای استفاده در دسترس هستند، استفاده می‌شود.

وقتی کاربری دستگاه‌های خود را با Google Home app (GHA) تنظیم می‌کند، در زیرساخت ابری شما نیز احراز هویت می‌شود. سپس، Assistant یک توکن OAuth2 دریافت می‌کند. در این مرحله، Assistant یک action.devices.SYNC intent به درخواست شما ارسال می‌کند تا لیست اولیه دستگاه‌ها و قابلیت‌های کاربر را از زیرساخت ابری شما بازیابی کند.

این شکل تعامل بین زیرساخت گوگل و زیرساخت شریک را نشان می‌دهد. از زیرساخت گوگل، فهرستی از شرکا وجود دارد که برای برنامه کلاینت دستیار در دسترس است و سپس برای تکمیل احراز هویت OAuth به زیرساخت شریک منتقل می‌شود. احراز هویت OAuth در سمت شریک، تنظیمات وب ویو شریک، OAuth webview، تنظیمات و شرایط اختیاری و سرویس‌های ابری شریک است. زیرساخت شریک، سپس اعتبارنامه‌های OAuth را به برنامه کلاینت دستیار برمی‌گرداند. سرویس‌های ابری شریک، دستگاه‌ها و قابلیت‌های موجود را به سرویس‌های دستیار ارسال می‌کنند که سپس اطلاعات را در نمودار خانه ذخیره می‌کنند.
شکل ۱: تعامل بین زیرساخت گوگل و شرکا

برای جلوگیری از قطع و وصل مجدد حساب کاربری، می‌توانید یک درخواست همگام‌سازی به Assistant ارسال کنید. این کار، قصد action.devices.SYNC را برای همگام‌سازی لیست دستگاه‌ها و قابلیت‌ها به تکمیل‌کننده شما ارسال می‌کند. برای اطلاعات بیشتر به بخش پیاده‌سازی درخواست همگام‌سازی مراجعه کنید.

نمودار جریان یک هدف همگام‌سازی (SYNC intent)
شکل ۲: هدف همگام‌سازی

در طول راه‌اندازی محلی سفارش ، پلتفرم Local Home پاسخ SYNC را از محل انجام سفارش در فضای ابری Action smart home شما بررسی می‌کند. برای کسب اطلاعات بیشتر در مورد نحوه تغییر پاسخ SYNC خود برای پشتیبانی از محل انجام سفارش، به بخش به‌روزرسانی پاسخ SYNC در محل انجام سفارش در فضای ابری مراجعه کنید.

پرس و جو

از تابع action.devices.QUERY برای پرس و جو در مورد وضعیت فعلی دستگاه‌های smart home استفاده می‌شود.

وقتی کاربران در حال پرس‌وجوی وضعیت دستگاه هستند، برای پاسخ به سوالی مانند «سلام گوگل، چه چراغ‌هایی در آشپزخانه روشن است؟» ، Assistant یک action.devices.QUERY intent به تکمیل‌کننده شما ارسال می‌کند.

نمودار جریان یک هدف QUERY
شکل ۳: هدف پرس و جو

برای بهترین تجربه کاربری، باید قابلیت گزارش وضعیت (Report State) را پیاده‌سازی کنید تا وضعیت فعلی دستگاه‌های کاربر را مستقیماً به Google Home Graph گزارش دهد. به عنوان مثال، این قابلیت به Assistant گوگل اجازه می‌دهد تا بداند که آیا کاربر شما یک چراغ هوشمند را با کلید فیزیکی روشن کرده است یا خیر.

گزارش وضعیت دستگاه با استفاده از Report State
شکل ۴: گزارش وضعیت دستگاه

اجرا

هدف action.devices.EXECUTE برای ارائه دستوراتی جهت اجرا در دستگاه‌های smart home استفاده می‌شود.

وقتی کاربران دستوراتی را به دستگاه‌های دارای Assistant ارسال می‌کنند، تکمیل فرآیند شما یک intent به نام action.devices.EXECUTE برای تکمیل فرآیند شما دریافت می‌کند که عمل و دستگاه‌هایی که باید روی آنها عمل شود را توصیف می‌کند. کاربر می‌تواند با دستوری مانند Hey Google, turn on my living room lights یک عمل را روی دستگاه اجرا کند.

نمودار جریان یک قصد اجرا (EXECUTE intent)
شکل ۵: اجرای هدف

قطع ارتباط

تابع action.devices.DISCONNECT زمانی فعال می‌شود که کاربری حساب کاربری برنامه را از Assistant جدا کرده باشد. پس از دریافت تابع action.devices.DISCONNECT ، نباید وضعیت دستگاه‌های این کاربر را گزارش دهید.