הרשמה לאירועים

האירועים הם אסינכרוניים ומנוהלים על ידי Google Cloud Pub/Sub, בנושא אחד לכל Project. אירועים מספקים עדכונים לכל המכשירים והמבנים, וקבלה של אירועים מובטחת כל עוד משתמש לא ביטל את אסימון הגישה ופג התוקף של הודעות האירוע.

אירועים הם תכונה אופציונלית של SDM API. אפשר להטמיע ולאמת אותם בקלות באמצעות הפרויקט ב-Google Cloud.

הפעל אירועים

אפשר להפעיל אירועים Device Access במסוף. אם עדיין לא עשיתם זאת, בוחרים את הפרויקט במסוף.

כניסה ל Device Access מסוף

אם כבר הפעלתם את האירועים (למשל, במהלך יצירת הפרויקט), בשדה Pub/Sub topic בקטע Project Info אמור להיות ערך שנקרא 'מזהה נושא', בפורמט הבא:

projects/sdm-prod/topics/enterprise-project-id

אם לא הפעלתם את האירועים:

  1. לוחצים על הסמל לצד נושא Pub/Sub ובוחרים באפשרות Edit.
  2. מסמנים את התיבה הפעלת אירועים ולוחצים על שמירה.
  3. מזהה הנושא נוצר עבורך בפורמט שמוצג למעלה.

מעתיקים את מזהה הנושא, צריך אותו ליצירת מינוי לנושא כדי שאפשר יהיה לאחזר את ההודעות על האירועים.

יצירת מינוי pull

מינוי משיכה הוא מצב שבו מנוי שולח בקשות לשרת Pub/Sub כדי לשלוח הודעות לאירועים בתור. זוהי דרך מהירה וקלה לוודא שנוצרים אירועים במכשירים המורשים.

פותחים את Cloud Shell לפרויקט ב-Google Cloud:

כניסה ל-Google Cloud Shell

בהנחיה של Cloud Shell, מריצים את הפקודה הבאה כדי ליצור מינוי משיכה לנושא, עם כל subscription-id רצוי ומזהה הנושא הייחודי:

gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].

הפעלת אירועים

כדי להתחיל אירועים בפעם הראשונה לאחר יצירת מינוי Pub/Sub, אפשר לבצע קריאה להצגת המכשירים כטריגר חד-פעמי:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

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

יצירת אירועים

אירועים נוצרים לכל השינויים בשדות של מאפיינים. חלקם מתבצעים באופן אוטומטי וחלקם ידניים.

לדוגמה, אם טמפרטורת הסביבה ליד Nest Thermostat משתנה, אירוע מסוים במאפייןהטמפרטורה ישלח באופן אוטומטי עם ערך ambientTemperatureCelsius חדש.

כדי ליצור תיעוד באופן ידני, אפשר:

  1. שינוי פיזי של מצב המכשיר, למשל שינוי המצב של Nest Thermostat.
  2. הפעלת אירוע, כמו תנועה, אדם או צליל ב-Google Nest Cam Internal.
  3. מריצים פקודה במכשיר באמצעות SDM API.

הצגת ההודעות

אפשר לראות הודעות לאירועים בפרויקט ב-Google Cloud, בקטע 'מינויים ב-Pub/Sub':

מעבר לדף המינויים של Google Cloud Pub/Sub

  1. לוחצים על מזהה המינוי שיצרתם קודם.
  2. במסך פרטי המינוי אמורה להופיע פעילות בתרשים מספר ההודעות שלא נכללו. המשמעות היא שהגיעו הודעות אירועים במינוי שלכם. אם לא מופיעה פעילות, כדאי להמתין זמן מה או ליצור עוד כמה אירועים.
  3. לוחצים על VIEW Messaging כדי לפתוח את החלונית Messages.
  4. לוחצים על PULL כדי להציג את ההודעות. הן צריכות להתאים לפעולות שבהן השתמשתם כדי ליצור אירועים.

אפשר לראות את ההודעות ב-Cloud Shell גם באמצעות פקודת pull בסיסית:

gcloud pubsub subscriptions pull subscription-id

למידע נוסף על סוגי מינויים, ועל סוגי האירועים שנשלחים על ידי SDM API ועל אופן השימוש בהם, ראו אירועים.

ניהול ההודעות

הודעות צריכות לקבל אישור באופן קבוע ולמחוק אותן באופן סופי, כדי לשמור על ניקיון המינוי ולמנוע שליחה של הודעות כפולות למנויים אחרים. אפשר למחוק באופן ידני את כל ההודעות של המנויים בקטע 'מינויים ב-Pub/Sub':

מעבר לדף המינויים של Google Cloud Pub/Sub

  1. לוחצים על מזהה המינוי.
  2. יש כמה דרכים לאשר ולמחוק באופן סופי:
    1. לוחצים על VIEW Messaging כדי לפתוח את החלונית Messages. מסמנים את התיבה Enable ack messages (הפעלת הודעות ack) ולוחצים על PULL כדי להציג ולאשר את כל ההודעות.
    2. לוחצים על PURGE הודעות כדי למחוק את כל ההודעות הקיימות על ידי אישור מבלי לראות אותן. לוחצים על PURGE כדי לאשר.

אפשר גם למחוק הודעות ב-Cloud Shell באופן סופי באמצעות הדגל --auto-ack עם פקודת pull בסיסית:

gcloud pubsub subscriptions pull subscription-id --auto-ack

ניהול המינויים

אפשר להגדיר מינויים במגוון דרכים, כפי שמתואר במאמר שימוש במאפייני מינויים.

אופן הניהול של המינויים וההודעות תלוי בכם, אבל אם אתם משתמשים באפליקציית ייצור, מומלץ להשתמש בחשבונות שירות לצורך האימות, ולא בחשבון משתמש כמו ש שמופיע עד עכשיו במדריך למתחילים. חשבון שירות משמש אפליקציה או מכונה וירטואלית ולא אנשים, ויש לו מפתח חשבון ייחודי משלו.

למידע נוסף על אימות של חשבונות שירות באמצעות Device Access, ראו אירועים.