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

רענון_date: 6.1.2023

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

זו לא בעיה ולא נדרשת שום פעולה.
INVALID_AUTH_TOKEN Google קיבלה קוד שגיאה 401 של HTTP מהשירות שלך.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

לוגי חיפוש

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

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

יומנים של שאילתות בענן

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

יצירת שאילתות ביומן של Cloud

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

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

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

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

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

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