האירועים הם אסינכרוניים והם מנוהלים על ידי Google Cloud Pub/Sub, בנושא יחיד לכל Project. אירועים מספקים עדכונים לכל המכשירים והמבנים, והקבלה של האירועים מובטחת כל עוד אסימון הגישה לא בוטל על ידי המשתמש ותוקף ההודעות על האירועים לא פג.
אירועים הם תכונה אופציונלית של SDM API. אפשר להטמיע אותם בקלות ולאמת אותם באמצעות הפרויקט ב-Google Cloud.
הפעל אירועים
אפשר להפעיל אירועים ב Device Access מסוף. בוחרים את הפרויקט במסוף, אם עדיין לא עשיתם זאת.
אם כבר הפעלתם אירועים (לדוגמה, במהלך יצירת הפרויקט), בשדה נושא Pub/Sub בקטע פרטי הפרויקט כבר אמור להיות ערך שנקרא מזהה נושא, בפורמט:
projects/sdm-prod/topics/enterprise-project-id
אם לא הפעלתם את התכונה 'אירועים':
- לוחצים על הסמל של נושא Pub/Sub ובוחרים באפשרות עריכה.
- מסמנים את התיבה הפעלת אירועים ולוחצים על שמירה.
- מערכת Google יוצרת עבורכם מזהה נושא בפורמט שמופיע למעלה.
מעתיקים את מזהה הנושא. המזהה הזה יידרש כדי ליצור מינוי לנושא, וכך יהיה אפשר לאחזר הודעות על אירועים.
יצירת מינוי משיכה
במינוי משיכה, המנוי יוצר בקשות לשרת Pub/Sub לקבלת הודעות אירועים שנמצאות בתור. זו דרך מהירה ופשוטה לוודא שנוצרים אירועים במכשירים המורשים.
פותחים את Cloud Shell לפרויקט ב-Google Cloud:
בשורת הפקודה של 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 משתנה, יישלח באופן אוטומטי אירוע של המאפייןTemperature עם ערך ambientTemperatureCelsius
חדש.
כדי ליצור ניתוח באופן ידני:
- שינוי פיזי של מצב המכשיר, למשל שינוי המצב של Nest Thermostat.
- הפעלת אירוע, כמו תנועה, אדם או צליל, במצלמת Google Nest Cam Indoor.
- ביצוע פקודה במכשיר באמצעות ה-API של SDM.
הצגת הודעות
אפשר לראות את הודעות האירועים בפרויקט Google Cloud, בקטע Pub/Sub Subscriptions:
כניסה לדף 'מינויים ל-Google Cloud Pub/Sub'
- לוחצים על מזהה המינוי שיצרתם מקודם.
- במסך Subscription detail אמורה להופיע פעילות בתרשים Unacked message count. המשמעות היא שהודעות על אירועים הגיעו למינוי שלכם. אם לא מופיעה פעילות כלשהי, צריך להמתין קצת או ליצור עוד כמה אירועים.
- לוחצים על הצגת הודעות כדי להציג את החלונית הודעות.
- לוחצים על PULL כדי להציג את ההודעות. הן צריכות להתאים לפעולות שבהן השתמשתם כדי ליצור אירועים.
אפשר גם להציג את ההודעות ב-Cloud Shell באמצעות הפקודה הבסיסית pull
:
gcloud pubsub subscriptions pull subscription-id
מידע נוסף על סוגי המינויים, על סוגי האירועים שנשלחים על ידי SDM API ועל אופן השימוש בהם זמין במאמר אירועים.
ניהול ההודעות
מומלץ לאשר ולמחוק הודעות באופן קבוע כדי לשמור על רשימת תפוצה נקייה ולהימנע משליחת הודעות כפולות למנויים אחרים. אפשר למחוק באופן ידני את כל הודעות המינוי בקטע 'מינויים ל-Pub/Sub':
כניסה לדף 'מינויים ל-Pub/Sub ב-Google Cloud'
- לוחצים על מזהה המינוי.
- יש כמה דרכים לאשר ולמחוק:
- לוחצים על הצגת הודעות כדי להציג את החלונית הודעות. מסמנים את התיבה Enable ack messages ולוחצים על PULL כדי להציג את כל ההודעות ולאשר אותן.
- לוחצים על מחיקה של כל ההודעות כדי לאשר את כל ההודעות הקיימות בלי לצפות בהן. לוחצים על ניקוי כדי לאשר.
אפשר גם למחוק הודעות ב-Cloud Shell באמצעות הדגל --auto-ack
עם הפקודה הבסיסית pull
:
gcloud pubsub subscriptions pull subscription-id --auto-ack
ניהול מינויים
אפשר להגדיר מינויים במגוון דרכים, כפי שמתואר במאמר שימוש במאפייני מינויים.
אתם יכולים לנהל את המינויים וההודעות כרצונכם, אבל באפליקציה בסביבת הייצור מומלץ להשתמש בחשבונות שירות לצורך אימות, במקום בחשבון משתמש כמו שעשינו עד עכשיו במדריך למתחילים המהיר הזה. חשבון שירות משמש אפליקציה או מכונה וירטואלית, ולא אדם, ויש לו מפתח חשבון ייחודי משלו.
למידע נוסף על אימות של חשבון שירות באמצעות Device Access, ראו אירועים.