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

ה-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 של המשתמש.

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. במכשירי פרוקסי של רכזות או גשרים, צריך לטפל גם ב-intent‏ REACHABLE_DEVICES.
4 בדיקה וניפוי באגים באפליקציה כדי לבדוק את השילוב (או לבצע אישור עצמי), משתמשים בחבילת הבדיקות של Google Home.

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