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

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

כדי לאפשר ל-Google לגלות את המכשיר שלכם ברשת המקומית וליצור את נתיב ההזמנה והאיסוף מהמקום, אתם צריכים להוסיף פרטי גילוי במסוף Actions. צריך גם לעדכן את התגובה של SYNC מה-fulfillment בענן כדי ש-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

אופציונלי. מזהה ייחודי ארגוני.

ערך של 24 ביט שמזהה את יצרן המכשיר. בדרך כלל, שלושת האוקטטות הראשונות של כתובת ה-MAC של המכשיר.
1A:2B:3C
UDP
מאפיין תיאור ערך לדוגמה
כתובת Discovery חובה. כתובת ה-IP של היעד לשידור ה-UDP. 255.255.255.255
יציאת שידור חובה. יציאת היעד לשידור ה-UDP. 5555
יציאה להאזנה חובה. יציאת ההאזנה לתגובת הגילוי של UDP. 5556
חבילת Discovery

חובה. מטען ייעודי למשלוח בשידור UDP.

מעוצב כמחרוזת של בייטים בקידוד הקסדצימלי.
48454C4C4F

עדכון תגובת הסנכרון במערכת הענן לניהול הזמנות

ההגדרה 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": "..."
      }
    }]
  }
}