ה-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 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 תומכת בסביבות זמן הריצה הבאות:
- Chrome: אפליקציית המילוי המקומית מופעלת בהקשר של דפדפן Chrome
window
עם גרסת Chrome M80 ואילך, עם תמיכה ב-ECMAScript בגרסה ES2018. - Node.js: אפליקציית המילוי המקומית מופעלת כסקריפט בתהליך Node.js שפועל בגרסה Node v10.x LTS ואילך עם תמיכה ב-ECMAScript בגרסה ES2018.
מבנה קוד המקור
מומלץ לארוז את יחסי התלות בקובץ 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. |
לפני שמתחילים
- מומלץ לעיין במאמר בנושא יצירת שילוב עם Cloud-to-cloud.
- ב-Google Home Developer Console, מוודאים שיש לכם פרויקט בית חכם קיים ושהקישור לחשבון מוגדר.
- מוודאים שנכנסתם לאותו חשבון Google ב-Developer Console וב-Assistant במכשיר הבדיקה.
- כדי לכתוב את האפליקציה, תצטרכו סביבה של Node.js. מומלץ להשתמש ב-Node Version Manager כדי להתקין את Node.js ו-npm.
- כדי לעבוד עם הגרסה האחרונה של Local Home SDK, תצטרכו להירשם עם מכשירי הבדיקה לתוכנית Cast Preview.