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

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

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

  • הפעלה מקומית מאפשרת לבצע פקודות על ידי שליחת EXEC כוונות דרך נתיב ההפעלה המקומית, במקום לבצע קריאה ל-API בענן. לדוגמה, בקשה כמו 'הדלקת האור' יכולה להיות מטופלת על ידי Local Execution.
  • Local Query מאפשרת לטפל בשאילתות שקשורות למצב המכשיר על ידי שליחת כוונות QUERY דרך נתיב ההשלמה המקומי. לדוגמה, שאילתה מקומית תמלא את השאילתה 'האם האור דולק?' בלי לבצע קריאה ל-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 שיש לו מסלול מקומי לשרשור פעולות (fullfillment),‏ Assistant שולחת את הכוונה (intent) EXECUTE או את הכוונה QUERY למכשיר Google Home או Google Nest במקום לשרשור הפעולות בענן. המכשיר מריץ את אפליקציית המימוש המקומי כדי לעבד את הכוונה.

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

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

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

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

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

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

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

Report State API לא נתמך כרגע בהזמנות מקומיות. ‫Google מסתמכת על תהליך השלמת ההזמנה בענן כדי לעבד את הבקשות האלה.

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

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

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

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

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

פלטפורמת 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.

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

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

נתיב ההטמעה

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

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

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