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