מילוי הזמנה מקומי

ה-Local Home SDK משפר את השילוב של הפתרון שלכם לבתים חכמים עם Google Assistant על ידי הוספת מסלול מקומי לשרשור פעולות (fullfillment) כדי לנתב את הכוונות (intents) של הבית החכם.

ה-Local Home SDK מספק שתי יכולות: ביצוע מקומי ושאילתה מקומית.

  • ביצוע מקומי מאפשר לבצע פקודות על ידי שליחת כוונות EXEC דרך נתיב הטיפול המקומי, במקום לבצע קריאה ל-Cloud API. לדוגמה, הבקשה 'הדלקת האור' יכולה להיות מטופלת על ידי Local Execution.
  • שאילתות מקומיות מאפשרות לטפל בשאילתות לגבי מצב המכשיר על ידי שליחת כוונות QUERY דרך נתיב הביצוע המקומי. לדוגמה, שאילתה מקומית תענה על השאילתה 'האם הנורה שלי דולקת?' בלי לבצע קריאה ל-Cloud API.

באמצעות ה-SDK תוכלו לכתוב אפליקציית השלמה מקומית באמצעות TypeScript או JavaScript, שמכילה את הלוגיקה העסקית של הבית החכם. מכשירי Google Home או Google Nest יכולים לטעון ולהריץ את האפליקציה במכשיר. האפליקציה מתקשרת ישירות עם המכשירים החכמים הקיימים שלכם באמצעות Wi-Fi ברשת מקומית (LAN) כדי לבצע את פקודות המשתמשים, באמצעות פרוטוקולים קיימים.

שילוב ה-SDK מאפשר לשפר את הביצועים של השילוב עם Cloud-to-cloud, כולל זמן אחזור קצר יותר ואמינות גבוהה יותר. אפשר לבצע השלמה מקומית בכל סוגי המכשירים ובכל מאפייני המכשירים, מלבד אלה שמשתמשים באימות משתמש משני.

מתחילים לבנות מנסים את הדוגמה

איך זה עובד

אחרי קבלת התגובה SYNC מהביצוע בענן, פלטפורמת Local Home סורקת את הרשת האזורית של המשתמש באמצעות mDNS, שידור UDP או UPnP כדי לזהות מכשירים חכמים שמחוברים ל-Assistant.

הפלטפורמה שולחת כוונה מסוג IDENTIFY כדי לקבוע אם אפשר לשלוט במכשיר באופן מקומי, על ידי השוואה של מזהה המכשיר בתשובה IDENTIFY לזה שהוחזר בתשובה הקודמת SYNC. אם המכשיר שזוהה הוא צומת או גשר, הפלטפורמה שולחת כוונה מסוג REACHABLE_DEVICES ומתייחסת לצומת כמכשיר proxy לתקשורת מקומית.

כשהיא מקבלת תשובה שמאשרת מכשיר מקומי, הפלטפורמה יוצרת נתיב מילוי מקומי למכשיר Google Home או Google Nest של המשתמש, ולאחר מכן מפנה את פקודות המשתמש למילוי מקומי.

כשמשתמש מפעיל שילוב של Cloud-to-cloud עם מסלול שרשור פעולות מקומי, Assistant שולחת את הכוונה EXECUTE או את הכוונה QUERY למכשיר Google Home או Google Nest, במקום לשרשור הפעולות בענן. לאחר מכן, המכשיר מפעיל את אפליקציית המילוי המקומית כדי לעבד את כוונת הרכישה.

באיור הזה מוצג תהליך הביצוע של מילוי הזמנות מקומי. נתיב הביצוע מתעד את כוונת המשתמש מטלפון עם Google Assistant, לאחר מכן כוונת המשתמש עוברת עיבוד ב-Google Cloud, ואז היא מתבצעת באופן מקומי במכשיר Google Home והפקודה מונפקת ישירות למרכז המכשיר או ישירות למכשיר. ענן המפתחים זמין כחלופה לענן.
איור 1: הוספת מסלול מקומי לשרשור פעולות (fulfillment) לפעולה של הבית החכם.

בחירת מכשיר Google Home או Google Nest שיפעיל את הפקודה בפלטפורמה המקומית של Home היא לא גורמית. הכוונות EXECUTE ו-QUERY יכולות להגיע דרך כל מכשיר Google Home או Google Nest שמוגדר באותה מבנה של Home Graph כמו המכשיר היעד.

אפליקציה למילוי הזמנות מקומי

אפליקציית ה-Fulfillment המקומית מכילה את הלוגיקה העסקית לעיבוד הכוונות שנשלחות על ידי פלטפורמת הבית החכם המקומי, ומאפשרת גישה למכשיר החכם דרך הרשת האזורית. לא צפוי צורך בשינוי החומרה כדי לשלב את האפשרות של מילוי הזמנות מקומי. האפליקציה מטפלת בבקשות השילוב של Cloud-to-cloud על ידי שליחת פקודות בקרה למכשיר החכם באמצעות פרוטוקולים בשכבת האפליקציה, כולל HTTP,‏ TCP או UDP. אם נתיב הביצוע המקומי נכשל, נתיב הביצוע החלופי הוא נתיב הביצוע בענן.

כדי לתמוך ביצירת האפליקציה, Local Home SDK מספק את שתי הכיתות הראשיות הבאות:

  • DeviceManager: ‏API שמספק שיטות לתקשורת עם מכשירים חכמים באמצעות שקעי TCP,‏ UDP או בקשות HTTP.
  • App: ‏השיעור מספק שיטות לצרף מנהלים לכוונות (intents) ש-Google שולחת אחרי שמגלה מכשירים שאפשר לשלוט בהם באופן מקומי (IDENTIFY,‏ REACHABLE_DEVICES). השיעור הזה גם ממלא פקודות של משתמשים (EXECUTE) ועונה על שאילתות של משתמשים לגבי המצב הנוכחי של המכשיר (QUERY).

במהלך הפיתוח, אפשר ליצור ולבדוק את האפליקציה על ידי טעינת האפליקציה בשרת האירוח שלכם או במחשב הפיתוח המקומי. בסביבת הייצור, Google מארחת את האפליקציה בסביבת חול מאובטחת של JavaScript במכשיר Google Home או Google Nest של המשתמש.

בשלב הזה אין תמיכה ב-API של Report State לצורך השלמה מקומית. Google מסתמכת על שירותי ה-Cloud Fulfillment שלכם כדי לעבד את הבקשות האלה.

מחזור החיים של אפליקציה

אפליקציית המילוי המקומי נטענת על פי דרישה כשפלטפורמת Local Home מזהה מכשירים מקומיים חדשים שתואמים להגדרות הסריקה של הפרויקט, או כשיש כוונות שליחה בהמתנה שקשורות למכשיר שזוהה בעבר.

במכשירי Google Home או Google Nest יש מגבלת זיכרון, ויכול להיות שאפליקציית המילוי המקומי תיסגר בכל שלב בגלל לחץ זיכרון במערכת. זה יכול לקרות אם האפליקציה מתחילה לצרוך יותר מדי זיכרון, או אם המערכת צריכה לפנות מקום לאפליקציה אחרת. פלטפורמת Home המקומית מפעילה מחדש את האפליקציה רק כשיש כוונות חדשות להעברה ומשאבי זיכרון מספיקים להפעלת האפליקציה.

פלטפורמת Home המקומיה פורקת את האפליקציה אחרי זמן קצוב לתפוגה של חוסר פעילות, כשהמשתמש מבטל את הקישור לחשבון שלו או כשאין יותר מכשירים שתומכים בהשלמה מקומית שמשויכים ל-agentUserId של המשתמש.

מכשירים נתמכים

פלטפורמת Local Home מפעילה את אפליקציית ה-Fulfillment המקומי במכשירי 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 תומכת בסביבות זמן הריצה הבאות:

מבנה קוד המקור

מומלץ לארוז את יחסי התלות בקובץ JavaScript יחיד באמצעות הגדרות ה-bundler שסופקו על ידי Local Home SDK, ולארוז את קוד המקור כביטוי פונקציה שמופעל באופן מיידי (IIFE).

נתיב ההטמעה

כדי להשתמש ב-Local Home SDK לשילוב עם הבית החכם, צריך לבצע את המשימות הבאות:

1 הגדרת ההגדרות של הסריקה מגדירים את Google Home Developer Console עם הפרמטרים הנחוצים כדי ש-Assistant תוכל לזהות מכשירים שניתן לשלוט בהם באופן מקומי.
2 עדכון התשובה של SYNC בשירותי המילוי בענן ב-Cloud fulfillment, משנים את הטיפול בבקשות של SYNC כך שיתמוך בשדה otherDeviceIds שבו הפלטפורמה משתמשת כדי ליצור מסלול שרשור פעולות מקומי. בשדה הזה מציינים את המזהים של המכשירים שאפשר לשלוט בהם באופן מקומי.
3 הטמעת האפליקציה לטיפול במשלוחים מקומיים משתמשים ב-Local Home SDK כדי ליצור אפליקציית JavaScript לטיפול בכוונות IDENTIFY,‏ EXECUTE ו- QUERY. במכשירי שרת proxy מסוג רכזת או גשר, צריך לטפל גם בכוונה REACHABLE_DEVICES.
4 בדיקה וניפוי באגים באפליקציה אפשר לבדוק את השילוב (או לספק אישור עצמי) באמצעות חבילת הבדיקה של Google Home.

לפני שמתחילים