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

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

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

הפעל אירועים

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

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

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

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

אם לא הפעלתם את התכונה 'אירועים':

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

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

יצירת מינוי משיכה

מינוי משיכה הוא מצב שבו מנוי יוזם בקשות לשרת 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. ביצוע פקודה במכשיר באמצעות ה-API של SDM.

הצגת הודעות

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

כניסה לדף 'מינויים ל-Google Cloud Pub/Sub'

  1. לוחצים על מזהה המינוי שיצרתם מקודם.
  2. במסך Subscription detail אמורה להופיע פעילות בתרשים Unacked message count. המשמעות היא שהודעות על אירועים הגיעו למינוי שלכם. אם לא מופיעה פעילות כלשהי, צריך להמתין קצת או ליצור עוד כמה אירועים.
  3. לוחצים על הצגת הודעות כדי להציג את החלונית הודעות.
  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 ולוחצים על PULL כדי להציג את כל ההודעות ולאשר אותן.
    2. לוחצים על מחיקה של ההודעות כדי למחוק את כל ההודעות הקיימות על ידי אישור בלי לצפות בהן. לוחצים על ניקוי כדי לאשר.

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

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

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

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

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

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