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

ה-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, כולל זמני אחזור קצרים יותר ומהימנות גבוהה יותר. מילוי בקשה מקומי נתמך בכל סוגי המכשירים ובכל מאפייני המכשירים, למעט מכשירים שבהם נעשה שימוש באימות משתמש נוסף (SUV).

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

איך זה עובד

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

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

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

כשמשתמש מפעיל שילוב של Cloud-to-cloud שיש לו מסלול מקומי לשרשור פעולות (fulfillment),‏ 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. אם נתיב ההגשמה המקומי נכשל, נתיב ההגשמה בענן ישמש כנתיב ביצוע חלופי.

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

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

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

בשלב הזה, אין תמיכה ב-API של Report State לצורך ביצוע הזמנות מקומיות. ‫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 עדכון תגובת הסנכרון ב-Cloud Fulfillment בשרשור הפעולות (fulfillment) בענן, משנים את SYNC request handler כדי לתמוך בשדה otherDeviceIds שבו הפלטפורמה משתמשת כדי ליצור מסלול מקומי לשרשור פעולות. בשדה הזה מציינים את המזהים של המכשירים שאפשר לשלוט בהם באופן מקומי.
3 הטמעת האפליקציה לניהול משלוחים מקומיים משתמשים ב-Local Home SDK כדי ליצור אפליקציית JavaScript שתטפל בכוונות IDENTIFY,‏ EXECUTE ו- QUERY. במכשירי פרוקסי של רכזות או גשרים, צריך לטפל גם ב-intent‏ REACHABLE_DEVICES.
4 בדיקה וניפוי באגים באפליקציה כדי לבדוק את השילוב (או לקבל אישור עצמי), צריך להשתמש בחבילת הבדיקות של Google Home.

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