נתיב מילוי בקשות מקומי נוצר כש-Google מתאימה מכשיר שניתן לשלוט בו באופן מקומי למכשיר שמוחזר בתגובה SYNC ממילוי הבקשות בענן.
כדי לאפשר ל-Google לגלות את המכשיר ברשת המקומית וליצור את נתיב מילוי הבקשה המקומי, צריך להוסיף את פרטי הגילוי בקונסולה ל-Actions.
צריך גם לעדכן את התגובה של SYNC מהמילוי בענן כדי להודיע ל-Google על המכשיר שניתן לשלוט בו באופן מקומי.
הגדרת פרטי התצורה של הסריקה
כדי לציין את פרטי הגילוי:
עוברים לשילוב של Cloud-to-cloud ב-Google Home Developer Console:
בצד שמאל של המסך, עוברים אל Project > Cloud-to-cloud ובוחרים באפשרות Edit כדי לערוך את השילוב. בדף הגדרה וקביעת תצורה, גוללים אל מילוי הזמנות מקומי ומפעילים את ההגדרה. מזינים את כתובת ה-URL הבאה בכל שדה של כתובת URL לבדיקה, מוסיפים את מזהה הפרויקט ולוחצים על שמירה:
https://<project-id>.web.app/local-home/index.htmlכדי להוסיף הגדרת סריקה חדשה, לוחצים על + הוספת הגדרת סריקה בקטע גילוי מכשירים.
בוחרים סוג פרוטוקול להתאמת סריקה מהתפריט הנפתח ומזינים ערכים ש-Google תסרוק.
בטבלאות הבאות מוצגים המאפיינים שאפשר להוסיף, בהתאם לפרוטוקולים שבהם אתם רוצים ש-Google תשתמש כדי לסרוק את המכשיר:
| מאפיין | תיאור | ערך לדוגמה |
|---|---|---|
| שם השירות |
חובה. שם השירות שפורסם על ידי המכשיר בפורמט service.domain.
|
_http._tcp.local |
| שם |
חובה. סינון לפי מופע ייחודי של שירות בפורמט |
my-device-[0-9]{4}\._http\._tcp\.local |
| מאפיין | תיאור | ערך לדוגמה |
|---|---|---|
| סוג השירות |
חובה. מזהה מלא של שירות ה-UPnP בפורמט domain:service:type:version.
|
schemas-upnp-org:service:SwitchPower:1 |
| OUI |
אופציונלי. מזהה ייחודי ברמת הארגון (OUI). ערך של 24 ביט שמזהה את יצרן המכשיר. בדרך כלל, שלוש השמיניות הראשונות של כתובת ה-MAC של המכשיר. |
1A:2B:3C |
| מאפיין | תיאור | ערך לדוגמה |
|---|---|---|
| כתובת Discovery | חובה. כתובת ה-IP של היעד לשידור UDP. | 255.255.255.255 |
| יציאת השידור | חובה. יציאת היעד לשידור ה-UDP. | 5555 |
| יציאת האזנה | חובה. יציאת האזנה לתגובת הגילוי של UDP. | 5556 |
| חבילת גילוי | חובה. המטען הייעודי (payload) שיישלח בשידור ה-UDP. בפורמט של מחרוזת בייטים בקידוד הקסדצימלי. |
48454C4C4F |
עדכון תגובת הסנכרון במילוי הבקשה בענן
ה-intent SYNC מדווח ל-Assistant אילו מכשירים נמצאים בשליטת המשתמש ומה היכולות שלהם.
כדי לתמוך במילוי בקשות מקומי, פלטפורמת Local Home בודקת את התגובה SYNC ממילוי הבקשות בענן של פעולת הבית החכם, ומנסה להתאים בין מזהי המכשירים בשדה otherDeviceIds לבין מזהה האימות שמוחזר על ידי ה-handler של IDENTIFY. רשומות של מכשירים בלי השדה otherDeviceIds לא נכללות במילוי בקשות מקומי.
בשדה otherDeviceIds בתגובה של SYNC, צריך להגדיר את מזהי המכשירים לבית החכם שאפשר לשלוט בהם באופן מקומי. השדה מופיע ברמה device בתשובה. Google יכולה ליצור נתיב מילוי בקשות מקומי בכל מכשיר עם המזהה שצוין.
בשדה customData מציינים את כל הנתונים הנוספים ש-Google צריכה כדי להתחבר למכשיר עצמאי, או כדי לטרגט מכשירי קצה באמצעות רכזת (לדוגמה, מספר היציאה ומידע אחר שספציפי לפרוטוקול).
דוגמה
בקטע הקוד הבא אפשר לראות איך יוצרים handler של SYNC.
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": [{ "id": "123", "type": "action.devices.types.OUTLET", "traits": [ "action.devices.traits.OnOff" ], "name": { "name": "Night light" }, "willReportState": false, "otherDeviceIds": [{ "deviceId": "local-device-id" }], "customData": { "port": 5555, "authToken": "..." } }] } }