אפליקציה לדוגמה
אם נתקלתם בבעיות כלשהן במהלך השימוש בממשקי ה-API של Home, אתם יכולים לאסוף יומנים כדי לבצע ניפוי באגים נוסף. כדי לאסוף יומנים מהמכשיר הנייד, צריך להשתמש ב-Xcode. אם אתם צריכים עזרה מ-Google, אתם יכולים לאסוף את היומנים ממכשיר iOS וממרכז הבקרה ולפתוח כרטיס במעקב הבעיות עם המידע הרלוונטי והיומנים שמשויכים אליו.
איסוף יומנים מ-iOS
בכל השלבים שקשורים ל-Xcode, המכשיר הנייד צריך להיות מחובר למחשב המקומי.
יומני האפליקציות ויומני ה-SDK מוצגים ואפשר לאסוף אותם ישירות בקונסולת Xcode. כשהמכשיר הנייד מחובר למחשב המקומי ומריצים את האפליקציה דרך Xcode, המסוף לוכד באופן אוטומטי את הפלט הרגיל (stdout) ואת יומני השגיאות הרגילים (stderr) משכבת האפליקציה ומערכת ה-SDK המשולבת לבית, ומזרים אותם. כך אפשר לעקוב בקלות אחרי תהליכי אתחול בזמן אמת, אינטראקציות עם API ואירועים ב-SDK במהלך פיתוח וניפוי באגים.
איסוף יומני תוספים מ-Xcode
אם נתקלים בבעיות כלשהן בשימוש בממשקי ה-API של Home, אפשר לאסוף יומנים לצורך ניפוי באגים נוסף.
ב-Xcode, עוברים אל Debug בסרגל התפריטים העליון ולוחצים על Attach to Process by PID or Name.

בקטע PID or Process Name (מזהה תהליך או שם תהליך), בוחרים באפשרות MatterExtension ולוחצים על Attach (צירוף).

אם לוחצים על הפינה השמאלית העליונה, מוצגת ההודעה Waiting to attach to MatterAddDeviceExtension on iPhone.

לוחצים על הכרטיסייה ובוחרים באפשרות MatterAddExtension.

היומן של התוסף יירשם במסוף.
Sherlog: מעקב אחר אירועים בכמה סטאקים
Sherlog הוא שירות מעקב בזמן אמת שמספק תצוגה מקצה לקצה של אינטראקציות בין התשתית של Google לבין שירותי ענן של שותפים.
דרישה מוקדמת: כדי לבצע מעקב, צריך להשתמש בחשבון משותף שמתואם עם Google (למשל, חשבון רשום ב-GReg או חשבון הדגמה).
המטרה העיקרית: ניפוי באגים בפגמים פונקציונליים ובבעיות בשילוב בין ענן לענן (C2C) (למשל, כשלים בקישור חשבונות או מצבי מכשיר שגויים) בלי שנדרשים שינויים בקוד הייצור.
יכולות: מספק גרפים מלאים של קריאות RPC, מטען ייעודי (payload) של בקשות ותגובות ומטא-נתונים לגבי כוונות SYNC, EXECUTE, QUERY ו-Account Linking.
מקובצי היומן במכשיר Fuchsia Hub
אפשר לאסוף יומנים ממרכזי Fuchsia הבאים באמצעות השיטה הזו: * Google Nest Hub (דור שני) * Google Nest Hub Max
כדי להפעיל רכזת לאחזור יומנים מקומיים:
- שולחים אימייל עם המספר הסידורי והדגם של המכשירים למנהל החשבונות הטכני (TAM) שלכם ב-Google. הם מופיעים באותיות קטנות מתחת למכשיר.
- אחרי שמוסיפים אתכם לרשימת ההיתרים, צריך להפעיל את התכונה. כך עושים את זה:
- במרכז:
- מחליקים למטה מהחלק העליון של המסך.
- מקישים על סמל ההגדרות
- כדי למצוא את גרסת Fuchsia: ב-Nest Hub (דור שני), עוברים אל פרטי המכשיר > מידע טכני > גרסת Fuchsia
- מקישים על 'גרסת פוקסיה' 7 פעמים. הפעולה הזו תפעיל את האפשרויות למפתחים
- חזרה לתפריט הראשי
- מקישים על 'אפשרויות למפתחים'.
- מקישים על 'רישום ביומן של שותפים'.
- התכונה תופעל למשך 24 שעות. לאחר מכן, מפעילים מחדש את תכונת הרישום ביומן משלב 5 ואילך.
- במרכז:
- כדי לקבל את כתובת ה-IP של הרכזת:
- במרכז הבקרה, אם יש לו מסך:
- מחליקים למטה מהחלק העליון של המסך.
- מקישים על סמל ההגדרות
- כדי למצוא את כתובת ה-IP של המכשיר: ב-Nest Hub (דור שני), עוברים אל פרטי המכשיר > מידע טכני > כתובת IP.
- באפליקציית Google Home (GHA) בטלפון:
- מקישים על המכשיר כדי לפתוח את דף הפרטים שלו.
- מקישים על סמל ההגדרות כדי לפתוח את דף ההגדרות.
- כדי למצוא את כתובת ה-IP של המכשיר: עוברים אל פרטי המכשיר > מידע טכני > כתובת IP
- במרכז הבקרה, אם יש לו מסך:
- כדי לאחזר יומנים מהרכזת, תצטרכו לשלוח בקשת GET HTTP לרכזת ממחשב שמחובר לאותה רשת Wi-Fi.
- רושמים את היציאה והנתיב של נקודת הקצה:
curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file - החיבור יכול להישאר פתוח רק למשך דקה אחת, אבל הנתונים שאוחזרו מהמאגר בדרך כלל כוללים אירועים מה-20 עד 30 דקות האחרונות.
- מומלץ לחלץ את היומנים באמצעות השיטה הזו מיד אחרי השלמת הליך בדיקה, כדי לוודא שהמאגר הזמני מכיל תוכן שרלוונטי לבדיקה (בדומה לדוחות באגים ב-Android).
- רושמים את היציאה והנתיב של נקודת הקצה:
פעולות אוטומטיות
זיהוי קצוות
אוטומציות במערכת האקולוגית של Google Home כוללות זיהוי קצה, שהוא לוגיקה שמוודאת שהפעלה מתרחשת רק כשחל שינוי בפועל במצב, ולא כשמתבצע עדכון מצב שפשוט חוזר על המצב הקודם של המכשיר.
לדוגמה, אם הפעלת אור היא פעולת התחלה, זיהוי קצה מוודא שפעולת ההתחלה מופעלת רק אם מכשיר האור עובר ממצב כבוי למצב דלוק, ולא ממצב דלוק למצב דלוק (ללא שינוי).
הפעולה האוטומטית לא מתבצעת כמו שציפיתי
אחרי שמתחשבים בזיהוי הקצוות, אם האוטומציה לא מתנהגת כמצופה:
בודקים כל מכשיר כדי לוודא שהוא פועל בצורה תקינה ללא קשר לאוטומציה.
כדאי לעיין בתרשים האוטומציה של האוטומציה שלכם, ולהשוות אותו ל-DSL של האוטומציה, כדי לגלות הנחות שגויות פוטנציאליות מצדכם.
אפשר לעקוב אחרי מצב המכשיר באפליקציית Google Home במהלך ההפעלה של האוטומציה.
בודקים שכל המכשירים שהאוטומציה מתייחסת אליהם נמצאים במבנה שבו אתם מצפים שהם יהיו. למחיקה של מכשיר שהאוטומציה תלויה בו יכולות להיות השלכות לא רצויות. השפעת מחיקת מכשיר על אוטומציות
הפעולה האוטומטית מופעלת כשהיא לא אמורה לפעול
אם הפעולות האוטומטיות פועלות כשהן לא אמורות לפעול, צריך לבדוק את קריטריוני ההתחלה. יכול להיות שיהיה צורך להוסיף לוגיקה נוספת כדי לוודא ששינוי בערך דינמי מתועד רק פעם אחת ומפעיל את האוטומציה רק פעם אחת.
הפעולה האוטומטית לא עוברת קומפילציה
חשוב לוודא שהאפליקציה מכילה את כל הייבוא הנדרש, כולל כל מחלקה שתואמת לסוגי הצמתים השונים, וגם את התכונות שאתם מפנים אליהן.
יצירת האוטומציה נכשלת באימות
אם יצירת האוטומציה לא עוברת את האימות, תוצג אזהרה או הודעת שגיאה עם מידע על הבעיה. מידע נוסף זמין במאמר בנושא ValidationIssueType.
OAuth
אם יש לכם לקוח OAuth קיים
אם כבר יש לכם לקוח OAuth מאומת לאפליקציה שפורסמה, אתם יכולים להשתמש בלקוח ה-OAuth הקיים כדי לבדוק את Home APIs.
אין צורך ברישום ל-Google Home Developer Console כדי לבדוק את ממשקי ה-API של Home ולהשתמש בהם. עם זאת, עדיין תצטרכו רישום מאושר של Developer Console כדי לפרסם את האפליקציה, גם אם יש לכם לקוח OAuth מאומת משילוב אחר.
חשוב לשים לב לנקודות הבאות:
קיימת מגבלה של 100 משתמשים כשמשתמשים בלקוח OAuth קיים. מידע על הוספת משתמשים למטרות בדיקה זמין במאמריצירת מזהה לקוח OAuth. בנוסף לאימות OAuth, יש מגבלה של 100 משתמשים שיכולים להעניק הרשאות לאפליקציה שלכם, שמוגדרת על ידי Home APIs. המגבלה הזו תוסר לאחר השלמת הרישום של Developer Console.
Developer Console registration צריך לשלוח לאישור כשמוכנים להגביל הרשאות לפי סוג המכשיר באמצעות OAuth, כהכנה לעדכון האפליקציה באמצעות Home APIs.
במקרה של אפליקציות Google Cloud שעדיין ממתינות לאימות OAuth, המשתמשים לא יכולים להשלים את תהליך OAuth עד שהאימות יסתיים. ניסיונות להעניק הרשאות ייכשלו עם השגיאה הבאה:
Access blocked: <Project Name> has not completed the Google verification process.