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

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

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

הפעל אירועים

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

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

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

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

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

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

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

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

מינוי משיכה הוא המקום שבו משתמש יוזם בקשות לשרת 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 משתנה, אירוע של המאפייןטמפרטורה יישלח באופן אוטומטי עם ערך ambientTemperatureCelsius חדש.

כדי ליצור ידנית אירוע כזה:

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

הצגת ההודעות

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

למינויים של Google Cloud Pub/Sub

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

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

gcloud pubsub subscriptions pull subscription-id

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

ניהול הודעות

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

למינויים של Google Cloud Pub/Sub

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

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

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

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

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

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

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