אפליקציה לדוגמה
אם נתקלים בבעיות במהלך השימוש בממשקי ה-API של Home, אפשר לאסוף יומנים כדי לבצע ניפוי באגים נוסף. כדי לאסוף יומנים מהמכשיר הנייד, צריך להשתמש ב-Xcode. אם אתם צריכים עזרה מ-Google, עליכם לאסוף את היומנים ממכשיר iOS וממרכז הבקרה ולפתוח כרטיס במעקב הבעיות עם המידע הרלוונטי והיומנים שמשויכים אליו.
איסוף יומנים מ-iOS
בכל השלבים שקשורים ל-Xcode, המכשיר הנייד צריך להיות מחובר למחשב המקומי.
יומני האפליקציות ויומני ה-SDK מוצגים וניתנים לאיסוף ישירות בקונסולת Xcode. כשהמכשיר הנייד מחובר למחשב המקומי ומריצים את האפליקציה דרך Xcode, המסוף מתעד באופן אוטומטי את היומן של הפלט הרגיל (stdout) והשגיאה הרגילה (stderr) משכבת האפליקציה ומערכת ה-SDK המשולבת של Home, ומשדר אותו. כך אפשר לעקוב בקלות אחרי תהליכי אתחול בזמן אמת, אינטראקציות עם 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 הקיים כדי לבדוק את ממשקי ה-API של Home.
אין צורך ברישום 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.