פתרון בעיות הקשורות לשגיאות שילוב בתקן Matter

רענון_date: 6.01.2023

Google Cloud מספק כלים למעקב אחרי האמינות של הפרויקטים באמצעות Google Cloud Monitoring ולניפוי באגים עם יומני שגיאות של Google Cloud Logging. בכל פעם שמתרחשת כשל בהשלמת כוונות המשתמשים, צינור עיבוד הנתונים של Google Home Analytics מתעד את הכשל במדדים שלכם ומפרסם יומן שגיאות ביומני הפרויקט.

יש שני שלבים לפתרון בעיות בשגיאות:

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

מעקב אחרי שגיאות

אפשר להשתמש בGoogle Cloud Monitoring dashboard כדי לגשת למדדי הפרויקט. יש כמה תרשימים עיקריים שימושיים במיוחד למעקב אחרי איכות וניפוי באגים:

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

קודי שגיאות פלטפורמה

ריכזנו כאן כמה קודי שגיאה נפוצים שעשויים להופיע ביומני הפרויקטים כדי לזהות בעיות שזוהו על ידי Google Home platform. בטבלה הבאה מפורט מידע לפתרון בעיות.

קוד שגיאה תיאור
BACKEND_FAILURE_URL_ERROR Google קיבלה מהשירות שלך קוד שגיאה מסוג HTTP 4xx שאינו 401.

אפשר להשתמש ב-requestId ביומן GCP כדי לבדוק את יומני השירות של הבית החכם.
BACKEND_FAILURE_URL_TIMEOUT פג הזמן הקצוב לעיבוד הבקשה של Google בניסיון להגיע לשירות שלכם.

מוודאים שהשירות פעיל, מקבל חיבורים ולא חורג מהקיבולת. בנוסף, צריך לוודא שמכשיר היעד פועל, אונליין ומסונכרן.
BACKEND_FAILURE_URL_UNREACHABLE Google קיבלה קוד שגיאה מסוג HTTP 5xx מהשירות שלך.

אפשר להשתמש ב-requestId ביומן GCP כדי לבדוק את יומני השירות של הבית החכם.
DEVICE_NOT_FOUND המכשיר לא קיים בצד שירות השותף.

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

אפשר להשתמש ב-requestId ביומן GCP כדי לבדוק את יומני השגיאות בשירות לקישור החשבון.
GAL_INTERNAL אירעה שגיאה פנימית ב-Google כש-Google ניסתה לאחזר אסימון גישה.

אם תבחינו בעלייה בשיעור של השגיאה הזו ביומן GCP, תוכלו ליצור איתנו קשר לקבלת מידע נוסף.
GAL_INVALID_ARGUMENT אירעה שגיאה פנימית ב-Google כש-Google ניסתה לאחזר אסימון גישה.

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

אם מופיע שיעור מוגבר של השגיאה הזו ב-GCP Logging, ניתן ליצור איתנו קשר לקבלת מידע נוסף.
GAL_PERMISSION_DENIED אירעה שגיאה פנימית ב-Google כששיתוף האסימון לא אושר.

אם תבחינו בעלייה בשיעור של השגיאה הזו ביומן GCP, תוכלו ליצור איתנו קשר לקבלת מידע נוסף.
GAL_REFRESH_IN_PROGRESS פג התוקף של אסימון הגישה של המשתמש, ונעשית כבר ניסיון רענון בו-זמנית.

אין זו בעיה ואין צורך לבצע פעולה כלשהי.
INVALID_AUTH_TOKEN Google קיבלה קוד שגיאה מסוג HTTP 401 מהשירות שלך.

אסימון הגישה לא פג תוקף, אבל השירות שלכם ביטל אותו. אפשר להשתמש ב-requestId ב-GCP Logging כדי לבדוק את יומני השירות של הבית החכם.
INVALID_JSON אי אפשר לנתח או להבין את תגובת ה-JSON.

בודקים את המבנה של תגובת ה-JSON כדי לאתר תחביר לא תקין, כמו סוגריים לא תואמים, נקודות פסיק חסרות או תווים לא חוקיים.
OPEN_AUTH_FAILURE פג התוקף של אסימון הגישה של המשתמש ו-Google לא יכולה לרענן אותו, או ש-Google קיבלה מהשירות שלכם קוד שגיאה מסוג HTTP 401.

אם יש עלייה בשיעור של הקוד הזה, כדאי לבדוק אם יש גם עלייה בשיעור השגיאות שקשורות לכוונות לבית חכם או לבקשות לרענון אסימונים.
PARTNER_RESPONSE_INVALID_ERROR_CODE התגובה מציינת קוד שגיאה לא מזוהה.

אם התשובה לבקשה מציינת שגיאה, חשוב להשתמש בקודי השגיאה הנתמכים.
PARTNER_RESPONSE_INVALID_PAYLOAD לא ניתן לנתח את השדה payload בתגובה כאובייקט JSON.

בודקים אם לשדה של עומס העבודה בתשובה לבקשה יש סוגריים תואמים והוא בנוי כראוי כשדה JSON.
PARTNER_RESPONSE_INVALID_STATUS התגובה לא מציינת סטטוס, או שהיא מציינת סטטוס שגוי.

בתשובות לבקשות להשלמת כוונה צריך לציין סטטוס באמצעות SUCCESS, OFFLINE, ERROR, EXCEPTIONS. מידע נוסף זמין במאמר טיפול בשגיאות ובחריגות.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES כוונה אחת או יותר שקיימת בבקשה חסרה בתשובה.

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

צריך לוודא ש תגובת הביצוע בנויה בצורה תקינה ושכל מזהי המכשירים מהבקשה נמצאים בתשובה שלך.
PARTNER_RESPONSE_MISSING_PAYLOAD התשובה לא מכילה את השדה payload.

חשוב לכלול שדה של עומס נתונים בתגובה לבקשה. למידע נוסף על יצירה נכונה של תגובה לביצוע.
PARTNER_RESPONSE_NOT_OBJECT אי אפשר לנתח את התגובה כאובייקט JSON.

בודקים את כל השדות בתשובה לבקשה כדי לאתר תווים לא מכוונים, סוגריים לא תואמים או שגיאות בפורמט. יכול להיות שחלק מתווי Unicode לא נתמכים. בנוסף, חשוב לוודא שהתגובה מובנית כראוי כאובייקט JSON.
PROTOCOL_ERROR עיבוד הבקשה נכשל.

אפשר להשתמש ב-requestId ב-Google Cloud Logging כדי לבדוק את יומני השירות של הבית החכם.
RESPONSE_TIMEOUT תם הזמן הקצוב לתפוגה של הבקשה בזמן ההמתנה לתגובה.

תקופת הזמן הקצובה לשליחת תגובה היא 9 שניות מרגע שליחת הבקשה. חשוב לשלוח תשובה במהלך פרק הזמן הזה.
RESPONSE_UNAVAILABLE לא מתקבלת תגובה, או שהתגובה לא מציינת סטטוס.

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

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

לוגי חיפוש

אחרי שתרגישו בנוח לעקוב אחרי השילובים באמצעות מדדים, תוכלו להשתמש ב-Cloud Logging כדי לפתור בעיות בשגיאות ספציפיות. יומן שגיאות הוא רשומה שדומה ל-JSON עם שדות שמכילים מידע שימושי כמו זמן, קוד שגיאה ופרטים לגבי הכוונה המקורית לבית החכם.

יש כמה מערכות ב-Google Cloud ששולחות יומנים לפרויקט שלכם כל הזמן. צריך לכתוב שאילתות כדי לסנן את היומנים ולמצוא את היומנים הנחוצים. אפשר להתבסס על שאילתות על סמך Time Range, Resource, Severity או רשומות בהתאמה אישית.

שליחת שאילתות ל-Cloud Logs

תוכלו להשתמש בלחצני השאילתות כדי ליצור מסננים מותאמים אישית.

יצירת שאילתות ב-Cloud Log

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

כדי לציין משאב, לוחצים על התפריט הנפתח Resource ובוחרים באפשרות Google Assistant Action Project. הפעולה הזו מוסיפה מסנן לשאילתה כדי להציג יומנים שמקורם בפרויקט שלכם.

אפשר להשתמש בלחצן Severity כדי לסנן לפי Emergency,‏ Info,‏ Debug ורמות חומרה אחרות ביומן.

אפשר גם להשתמש בשדה השאילתה ב-Logs Explorer כדי להזין רשומות בהתאמה אישית. מנוע השאילתות שבו נעשה שימוש בשדה הזה תומך גם בשאילתות בסיסיות כמו התאמת מחרוזות, וגם בסוגי שאילתות מתקדמים יותר, כולל משוואות (<, >=, !=) ואופרטורים בוליאניים (AND, OR, NOT).

לדוגמה, הרשומה בהתאמה אישית שבהמשך תחזיר שגיאות שמגיעות מסוג מכשיר LIGHT:

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

אפשר להיכנס לספריית השאילתות כדי למצוא דוגמאות נוספות לשליחת שאילתות על יומנים בצורה יעילה.

בדיקת התיקונים

אחרי שמזהים שגיאות ומחילים עדכונים לתיקון שלהן, מומלץ לבדוק היטב את התיקונים באמצעות Google Home Test Suite. יש לנו מדריך למשתמש בנושא השימוש ב-Test Suite, שמסביר איך לבדוק את השינויים בצורה יעילה.

מקורות מידע ללמידה

במסמך הזה מפורטים השלבים לפתרון שגיאות בפעולה של Smart Home. אפשר גם לעיין בקורסים שלנו ב-codelabs כדי לקבל מידע נוסף על ניפוי באגים: