ערכת ה-SDK של Local Home משפרת את השילוב של הבית החכם עם Google Assistant על ידי הוספת נתיב מקומי לשרשור פעולות (fulfillment) כדי לנתב כוונות (intents) של הבית החכם.
ל-Local Home SDK יש שתי יכולות: הפעלה מקומית ושאילתה מקומית.
- הפעלה מקומית מאפשרת למלא פקודות על ידי שליחת כוונות
EXECדרך נתיב המילוי המקומי, במקום לבצע קריאה ל-API בענן. לדוגמה, הבקשה "תדליק את האור" יכולה להתבצע באמצעות Local Execution. - שאילתה מקומית מאפשרת לטפל בשאילתות שקשורות למצב המכשיר, על ידי שליחת כוונות
QUERYדרך נתיב המילוי המקומי. לדוגמה, Local Query תמלא את השאילתה "האם האור דולק?" בלי לבצע קריאה ל-API בענן.
ה-SDK מאפשר לכם לכתוב אפליקציה למילוי בקשות מקומי, באמצעות TypeScript או JavaScript, שמכילה את הלוגיקה העסקית של הבית החכם שלכם. מכשירי Google Home או מכשירי Google Nest יכולים לטעון את האפליקציה ולהריץ אותה במכשיר. האפליקציה מתקשרת ישירות עם המכשירים החכמים הקיימים שלכם באמצעות Wi-Fi ברשת תקשורת מקומית (LAN) כדי למלא את פקודות המשתמש, באמצעות פרוטוקולים קיימים.
שילוב ה-SDK משפר את הביצועים של השילוב של Cloud-to-cloud, כולל זמן אחזור קצר יותר ואמינות גבוהה יותר. אפשר להשתמש ב-Local Fulfillment בכל סוגי המכשירים והתכונות שלהם, חוץ מאלה שמשתמשים באימות משתמש נוסף (SUV).
איך זה עובד
אחרי קבלת תגובה מסוג SYNC ממילוי הבקשה בענן, פלטפורמת Local Home סורקת את הרשת המקומית של המשתמש באמצעות mDNS, שידור UDP או UPnP כדי לגלות מכשירים חכמים שמחוברים ל-Assistant.
הפלטפורמה שולחת Intent מסוג IDENTIFY כדי לקבוע אם אפשר לשלוט במכשיר באופן מקומי, על ידי השוואה בין מזהה המכשיר בתגובה ל-IDENTIFY לבין המזהים שהוחזרו בתגובה הקודמת ל-SYNC. אם המכשיר שזוהה הוא רכזת או גשר, הפלטפורמה שולחת Intent מסוג REACHABLE_DEVICES ומתייחסת לרכזת כמכשיר ה-proxy לתקשורת מקומית.
כשהפלטפורמה מקבלת תשובה שמאשרת שיש מכשיר מקומי, היא יוצרת נתיב מקומי למילוי בקשות אל מכשיר Google Home או מכשיר Google Nest של המשתמש, ואז מנתבת את הפקודות של המשתמש למילוי בקשות מקומי.
כשמשתמש מפעיל שילוב של Cloud-to-cloud שיש לו נתיב מקומי למילוי בקשות, Assistant שולחת את ה-intent EXECUTE או את ה-intent QUERY למכשיר Google Home או למכשיר Google Nest במקום למילוי הבקשות בענן. לאחר מכן, המכשיר מריץ את אפליקציית המילוי המקומית כדי לעבד את ה-intent.
פלטפורמת Local Home לא קובעת איזה מכשיר Google Home או Google Nest יפעיל את הפקודה. הפקודות EXECUTE ו-QUERY יכולות להגיע מכל מכשיר Google Home או Google Nest שמוגדר באותו מבנה Home Graph כמו מכשיר היעד.
אפליקציית מילוי הזמנות מקומית
אפליקציית מילוי הבקשות המקומית מכילה את הלוגיקה העסקית לעיבוד ה-intents שנשלחים על ידי פלטפורמת Local Home, ולגישה למכשיר החכם דרך הרשת המקומית. לא צפוי שינוי בחומרה כדי לשלב את מילוי ההזמנות המקומי. האפליקציה ממלאת את בקשות השילוב של Cloud-to-cloud על ידי שליחת פקודות בקרה למכשיר החכם באמצעות פרוטוקולים של שכבת האפליקציה, כולל HTTP, TCP או UDP. אם נתיב מילוי הבקשות המקומי נכשל, נתיב מילוי הבקשות בענן משמש כנתיב ביצוע חלופי.
כדי לתמוך בפיתוח האפליקציה, Local Home SDK מספק את שתי המחלקות העיקריות הבאות:
-
DeviceManager: מספק שיטות לתקשורת עם מכשירים חכמים באמצעות TCP, שקעי UDP או בקשות HTTP. -
App: מספקת שיטות לצירוף handlers ל-intent ש-Google שולחת אחרי שהיא מגלה מכשירים שאפשר לשלוט בהם באופן מקומי (IDENTIFY,REACHABLE_DEVICES). המחלקה הזו גם ממלאת פקודות של משתמשים (EXECUTE) ועונה על שאילתות של משתמשים לגבי המצב הנוכחי של המכשיר (QUERY).
במהלך הפיתוח, אתם יכולים ליצור ולבדוק את האפליקציה על ידי טעינה שלה בשרת האירוח שלכם או במחשב הפיתוח המקומי. בסביבת הייצור, Google מארחת את האפליקציה בסביבת JavaScript מאובטחת של ארגז חול במכשיר Google Home או במכשיר Google Nest של המשתמש.
בשלב הזה, ה-API של Report State לא נתמך במילוי בקשות מקומי. Google מסתמכת על מילוי הבקשות בענן כדי לעבד את הבקשות האלה.
מחזור החיים של האפליקציה
אפליקציית ה-Local Fulfillment נטענת על פי דרישה כשפלטפורמת Local Home מזהה מכשירים מקומיים חדשים שתואמים להגדרות הסריקה של הפרויקט, או כשיש לה Intent בהמתנה שקשור למכשיר שזוהה בעבר.
למכשירי 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 Fulfillment תלויה במכשיר. פלטפורמת Local Home תומכת בסביבות זמן הריצה הבאות:
- Chrome: אפליקציית המילוי המקומית פועלת בהקשר של דפדפן Chrome
windowבגרסה Chrome M80 ואילך, עם תמיכה ב-ECMAScript בגרסה ES2018. - Node.js: אפליקציית ה-Fulfillment המקומית מופעלת כסקריפט בתהליך Node.js שבו פועלת גרסת Node v10.x LTS ואילך, עם תמיכה ב-ECMAScript גרסה ES2018.
מבנה קוד המקור
מומלץ לאגד את יחסי התלות בקובץ JavaScript אחד באמצעות הגדרות ה-bundler שסופקו על ידי Local Home SDK, ולארוז את קוד המקור כ-Immediately-invoked Function Expression (IIFE).
שיטת הטמעה
כדי להשתמש ב-Local Home SDK לשילוב הבית החכם, צריך לבצע את המשימות הבאות:
| 1 | הגדרת הסריקה | מגדירים את Google Home Developer Console עם הפרמטרים הנדרשים כדי ש-Assistant תוכל לגלות מכשירים שניתן לשלוט בהם באופן מקומי. |
| 2 | עדכון תגובת הסנכרון במילוי הבקשה בענן | במילוי הבקשות בענן, משנים את ה-request handler של SYNC כדי לתמוך בשדה
otherDeviceIds שהפלטפורמה משתמשת בו כדי ליצור נתיב למילוי בקשות מקומי. בשדה הזה, מציינים את המזהים של המכשירים שאפשר לשלוט בהם באופן מקומי.
|
| 3 | הטמעה של אפליקציית מילוי ההזמנות המקומית | משתמשים ב-Local Home SDK כדי ליצור אפליקציית JavaScript שתטפל בכוונות IDENTIFY,
EXECUTE ו-
QUERY. במכשירים שמשמשים כרכזת או כשרת proxy, צריך לטפל גם ב-intent REACHABLE_DEVICES.
|
| 4 | בדיקה וניפוי באגים באפליקציה | בודקים את השילוב (או מבצעים אישור עצמי) באמצעות חבילת המקרים לבדיקה של Google Home. |
לפני שמתחילים
- כדאי להכיר את העקרונות הבסיסיים של יצירת שילוב עם Cloud-to-cloud.
- בGoogle Home Developer Console, ודאו שיש לכם פרויקט קיים של בית חכם ושהגדרתם קישור לחשבון.
- מוודאים שאתם מחוברים לאותו חשבון Google ב-Developer Console וב-Assistant במכשיר הבדיקה.
- כדי לכתוב את האפליקציה, תצטרכו סביבת Node.js. להתקנת Node.js ו-npm, מומלץ להשתמש ב-Node Version Manager.
- כדי לעבוד עם הגרסה העדכנית של Local Home SDK, צריך לרשום את מכשירי הבדיקה לתוכנית Cast Preview.