תמיכה בזיהוי מכשירים

נתיב מילוי בקשות מקומי נוצר כש-Google מתאימה מכשיר שניתן לשלוט בו באופן מקומי למכשיר שמוחזר בתגובה SYNC ממילוי הבקשות בענן.

כדי לאפשר ל-Google לגלות את המכשיר ברשת המקומית וליצור את נתיב מילוי הבקשה המקומי, צריך להוסיף את פרטי הגילוי בקונסולה ל-Actions. צריך גם לעדכן את התגובה של SYNC מהמילוי בענן כדי להודיע ל-Google על המכשיר שניתן לשלוט בו באופן מקומי.

הגדרת פרטי התצורה של הסריקה

כדי לציין את פרטי הגילוי:

  1. עוברים לשילוב של Cloud-to-cloud ב-Google Home Developer Console:

    נכנסים ל-Play Console.

  2. בצד שמאל של המסך, עוברים אל Project > Cloud-to-cloud ובוחרים באפשרות Edit כדי לערוך את השילוב. בדף הגדרה וקביעת תצורה, גוללים אל מילוי הזמנות מקומי ומפעילים את ההגדרה. מזינים את כתובת ה-URL הבאה בכל שדה של כתובת URL לבדיקה, מוסיפים את מזהה הפרויקט ולוחצים על שמירה:

    https://<project-id>.web.app/local-home/index.html

  3. כדי להוסיף הגדרת סריקה חדשה, לוחצים על + הוספת הגדרת סריקה בקטע גילוי מכשירים.

  4. בוחרים סוג פרוטוקול להתאמת סריקה מהתפריט הנפתח ומזינים ערכים ש-Google תסרוק.

בטבלאות הבאות מוצגים המאפיינים שאפשר להוסיף, בהתאם לפרוטוקולים שבהם אתם רוצים ש-Google תשתמש כדי לסרוק את המכשיר:

mDNS
מאפיין תיאור ערך לדוגמה
שם השירות חובה. שם השירות שפורסם על ידי המכשיר בפורמט service.domain. _http._tcp.local
שם

חובה. סינון לפי מופע ייחודי של שירות בפורמט instance.service.domain.

‫הפלטפורמה מתייחסת לערך הזה כביטוי רגולרי ומחזירה את כל המכשירים שתואמים לו.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
מאפיין תיאור ערך לדוגמה
סוג השירות חובה. מזהה מלא של שירות ה-UPnP בפורמט domain:service:type:version. schemas-upnp-org:service:SwitchPower:1
OUI

אופציונלי. מזהה ייחודי ברמת הארגון (OUI).

ערך של 24 ביט שמזהה את יצרן המכשיר. בדרך כלל, שלוש השמיניות הראשונות של כתובת ה-MAC של המכשיר.
1A:2B:3C
UDP
מאפיין תיאור ערך לדוגמה
כתובת 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.

מכשיר עצמאי או Hub
{
  "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": "..."
      }
    }]
  }
}