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

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

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

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

כדי לציין את פרטי הגילוי, מבצעים את השלבים הבאים:

  1. פותחים את הפרויקט של הבית החכם במסוף Actions.
  2. בחלונית הניווט הימנית, לוחצים על פעולות.
  3. בקטע Configure local home SDK (optional)‏ > Add device scan configuration, לוחצים על New scan config.
  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
מאפיין תיאור ערך לדוגמה
כתובת שידור חובה. כתובת ה-IP של היעד לשידור ה-UDP. 255.255.255.255
יציאת שידור חובה. יציאת היעד לשידור ה-UDP. 5555
יציאת הקשבה חובה. יציאת ההאזנה לתגובת הגילוי של UDP. 5556
Discovery Packet

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

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

עדכון תגובת ה-SYNC בהשלמה בענן

הכוונה SYNC מדווחת ל-Assistant אילו מכשירים המשתמש שולט בהם ואילו יכולות יש להם.

כדי לתמוך במילוי האוטומטי, פלטפורמת 'בית מקומי' בודקת את התשובה SYNC ממילוי ההזמנות של הפעולה בבית החכם בענן, ומנסה להתאים את מזהי המכשיר בשדה otherDeviceIds למזהה האימות שמוחזר על ידי ה-handler של IDENTIFY. רשומות של מכשירים ללא השדה otherDeviceIds לא נכללות בביצוע הזמנות מקומי.

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

משתמשים בשדה customData כדי לציין נתונים נוספים ש-Google צריכה כדי להתחבר למכשיר נפרד, או לטרגט מכשירי קצה דרך רכזת (לדוגמה, מספר היציאה ומידע אחר שספציפי לפרוטוקול).

דוגמה

קטע הקוד הבא מראה איך אפשר ליצור את הטיפול ב-SYNC.

Standalone/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": "..."
      }
    }]
  }
}