ה-SDK של ה-Local Home משפר את השילוב של הבית החכם עם Google Assistant על ידי הוספת מסלול מקומי לשרשור פעולות (fullfillment) כדי לנתב את הכוונות של הבית החכם.
ה-SDK מאפשר לכם לכתוב אפליקציה מקומית למילוי הזמנות באמצעות JavaScript או JavaScript, שמכילה את הלוגיקה העסקית של הבית החכם. מכשירי Google Home או Google Nest יכולים לטעון ולהפעיל את האפליקציה שלכם במכשיר. האפליקציה שלכם מתקשרת ישירות עם המכשירים החכמים הקיימים ברשת Wi-Fi (zone) ברשת מקומית, כדי לבצע פקודות משתמשים בפרוטוקולים קיימים.
השילוב של ה-SDK מציע שיפורים בביצועים של הבית החכם, כולל זמן אחזור קצר יותר ואמינות גבוהה יותר. מילוי הזמנות של חנויות מקומיות נתמך בכל סוגי המכשירים ובכל תכונות המכשיר, חוץ מאלה שמשתמשות באימות משני של משתמשים.
הסבר על התהליך
אחרי שמתקבלת תגובה של SYNC
ממילוי ההזמנות בענן, הפלטפורמה של Local Home סורקת את הרשת המקומית של המשתמש באמצעות mDNS, שידור UDP או UPnP, כדי לגלות מכשירים חכמים שמחוברים ל-Assistant.
הפלטפורמה שולחת כוונה למצוא את IDENTIFY
כדי לקבוע אם המכשיר יכול לשלוט באופן מקומי, על ידי השוואת מזהה המכשיר בתגובת IDENTIFY
לאלו שהוחזרו על ידי התגובה הקודמת של SYNC
. אם המכשיר שזוהה הוא מרכז או גשר, הפלטפורמה שולחת כוונה (REACHABLE_DEVICES
) ומתייחסת למעבדת כאל שרת proxy לתקשורת מקומית.
כשהמשתמשים מקבלים תגובה עם אישור על מכשיר מקומי, הפלטפורמה יוצרת נתיב מילוי מקומי של המכשיר למכשיר Google Home או Google Nest של המשתמש, ולאחר מכן מנתבת פקודות משתמש למילוי הזמנות מקומיות.
כשמשתמש מפעיל פעולה ביתית חכמה שיש בה נתיב מילוי מקומי, Assistant שולחת את הכוונה EXECUTE
או את הערך QUERY
למכשיר Google Home או Google Nest, ולא למילוי ההזמנות בענן. לאחר מכן, המכשיר מפעיל את אפליקציית האספקה המקומית כדי לעבד את הכוונה.

הפלטפורמה המקומית של Google Home לא מאפשרת להחליט איזה מכשיר Google Home או Google Nest יפעיל את הפקודה. הכוונות של EXECUTE
ו-QUERY
עשויות להגיע דרך כל מכשיר Google Home או Google Nest שמוגדר באותו מבנה הבית כמו של מכשיר היעד.
אפליקציה מקומית למילוי הזמנות
אפליקציית האספקה המקומית מכילה את הלוגיקה העסקית כדי לעבד את הכוונות שנשלחות על ידי פלטפורמת Home המקומית, ולגשת למכשיר החכם שלכם דרך הרשת המקומית. לא צפוי שינוי בחומרה שלך כדי לשלב מילוי הזמנות באופן מקומי. האפליקציה ממלאת בקשות פעולה לבית החכם על ידי שליחת פקודות בקרה למכשיר החכם באמצעות פרוטוקולים של שכבות אפליקציה, כולל HTTP , TCP או UDP. אם נתיב מילוי ההזמנות המקומי שלכם נכשל, מילוי ההזמנות בענן הוא מסלול הפצה חלופי.
כדי לתמוך בבניית האפליקציה, ל-Local Home SDK יש את שתי המחלקות הראשיות האלה:
DeviceManager
: מספקים שיטות לתקשורת עם מכשירים חכמים באמצעות בקשות TCP, UDP או בקשות HTTP.App
: מספק שיטות לצירוף גורמי handler לכוונות ש-Google שולחת אחרי גילוי מכשירים עם שליטה מקומית (IDENTIFY
,REACHABLE_DEVICES
). הכיתה הזו גם ממלאת פקודות משתמשים (EXECUTE
) ועונה על שאילתות משתמשים במצב המכשיר הנוכחי (QUERY
).
במהלך הפיתוח, תוכלו ליצור ולבדוק את האפליקציה על ידי טעינתה בשרת האירוח או במכונת הפיתוח המקומית שלכם. בסביבת הייצור, Google מארחת את האפליקציה שלכם בסביבת ארגז חול של JavaScript מאובטחת במכשיר Google Home או Google Nest של המשתמש.
ה-Report State API לא נתמך כרגע למילוי הזמנות באופן מקומי. Google מסתמכת על מילוי ההזמנות בענן כדי לעבד את הבקשות האלה.
מחזור החיים של אפליקציה
האפליקציה שלכם למילוי הזמנות מקומית נטענת על פי דרישה, כשבפלטפורמת Local Home מגלים מכשירים מקומיים חדשים שתואמים להגדרת הסריקה של הפרויקט, או אם יש להם כוונות בהמתנה שתואמות למכשיר שזוהה בעבר.
המכשירים של Google Home או Google Nest מוגבלים. יכול להיות שאפליקציית האספקה המקומית שלכם תפסיק לפעול בכל שלב בגלל לחץ זיכרון במערכת. זה יכול לקרות אם האפליקציה צורכת יותר מדי זיכרון, או אם המערכת צריכה לפנות מקום לאפליקציה אחרת. פלטפורמת Home פועלת מחדש רק אם יש כוונות חדשות לספק מספיק משאבי זיכרון כדי שהאפליקציה תפעל.
הפלטפורמה של דף הבית פורסת את האפליקציה אחרי זמן קצוב לתפוגה של חוסר פעילות כאשר המשתמש מבטל את קישור החשבון, או כשאין מכשירים נוספים שתומכים במימוש מקומי שמשויך ל-agentUserId
של המשתמש.
מכשירים נתמכים
פלטפורמת Local Home מפעילה את אפליקציית המשלוחים המקומית שלכם במכשירים נתמכים של Google Home או Google Nest. בטבלה הבאה מפורטים המכשירים הנתמכים וזמן הריצה בכל מכשיר. למידע נוסף על הדרישות לגבי זמן ריצה, ראו סביבת ביצוע.
מכשיר | סוג | סביבה |
---|---|---|
Google Home | רמקול | Chrome |
Google Home Mini | רמקול | Chrome |
Google Home מקס' | רמקול | Chrome |
Nest Mini | רמקול | Chrome |
Nest Hub | מסך | Chrome |
Nest Hub Max | מסך | Chrome |
Nest Wifi | נתב | Node.js |
נקודה | Chrome |
סביבת ביצוע
סביבת הביצוע של אפליקציית מילוי ההזמנות המקומית שלכם תלויה במכשיר שלכם. פלטפורמת Home 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 | להגדרת התצורה של הסריקה | צריך להגדיר את ה-Actions Console עם הפרמטרים הנחוצים ל-Assistant כדי לגלות מכשירים שניתן לשלוט בהם באופן מקומי. |
2 | עדכון של תגובת SYNC למילוי הזמנות בענן | במילוי ההזמנות בענן צריך לשנות את ה-handler של הבקשות ב-SYNC כך שיתמוך בשדה
otherDeviceIds שבו הפלטפורמה משתמשת כדי ליצור נתיב מקומי למילוי הזמנות. בשדה הזה, מציינים את מזהי המכשירים שניתן
לשלוט בהם באופן מקומי.
|
3 | הטמעה של אפליקציית המשלוחים המקומית | צריך להשתמש ב-Local Home SDK כדי ליצור אפליקציית JavaScript
כדי לטפל בכוונות IDENTIFY ,
EXECUTE ו-
QUERY . במכשירים עם Proxy של רכזת או גשר, עליך
גם לטפל בכוונה (REACHABLE_DEVICES ).
|
4 | בודקים את האפליקציה ומנפים באגים | בודקים את השילוב (או אישור עצמי) באמצעות חבילת הבדיקה של Google Home. |
לפני שמתחילים
- ללמוד את העקרונות הבסיסיים של יצירת פעולה לבית חכם.
- במסוף הפעולות, ודאו שיש לכם פרויקט קיים לבית החכם ושקישור החשבון מוגדר.
- חשוב לוודא שאתם מחוברים לאותו חשבון Google במסוף הפעולות וב-Assistant במכשיר הבדיקה.
- כדי לכתוב את האפליקציה נדרשת סביבה מסוג Node.js. כדי להתקין את Node.js ו-npm, מומלץ להשתמש במנהל גרסאות צומת.
- כדי לעבוד עם הגרסה האחרונה של ה-SDK של דף הבית המקומי, צריך לרשום את מכשירי הבדיקה לתוכנית ההפצה המקדימה של ההעברה.