פתרון בעיות

אפליקציה לדוגמה

אם נתקלתם בבעיות בשימוש בממשקי ה-API של Home, אתם יכולים לאסוף יומנים כדי להמשיך בניפוי הבאגים. כדי לאסוף יומנים מהמכשיר הנייד, צריך את Xcode. אם אתם צריכים עזרה מ-Google, אספו את היומנים ממכשיר ה-iOS ומהרכזת ופתחו כרטיס ב-Issue Tracker עם המידע הרלוונטי והיומנים שמשויכים אליו.

איסוף יומנים ב-iOS

המכשיר הנייד צריך להיות מחובר למחשב המקומי בכל השלבים שקשורים ל-Xcode.

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

איסוף יומני תוספים מ-Xcode

אם נתקלתם בבעיות בשימוש ב-Home API, אתם יכולים לאסוף יומנים כדי להמשיך בניפוי הבאגים.

  1. ב-Xcode, עוברים אל Debug בסרגל התפריטים העליון ולוחצים על Attach to Process by PID or Name.

    ניפוי באגים באפליקציה לדוגמה

  2. בקטע PID or Process Name, בוחרים באפשרות MatterExtension ולוחצים על Attach.

    תוסף לדוגמה של App Attach

  3. אם תלחצו בפינה השמאלית העליונה, תראו את ההודעה בהמתנה לצירוף אל MatterAddDeviceExtension באייפון.

    סטטוס ההמתנה של האפליקציה לדוגמה

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

    אפליקציה לדוגמה שמוסיפה תוסף Matter

  5. המסוף יתעד את יומן התוסף.

‫Sherlog: מעקב אחר אירועים במחסניות שונות

‫Sherlog הוא שירות מעקב בזמן אמת שמספק תצוגה מקצה לקצה של האינטראקציות בין התשתית של Google לבין שירותי הענן של השותפים.

דרישה מוקדמת: כדי לבצע מעקב, צריך להשתמש בחשבון משותף בתיאום עם Google (למשל, חשבון רשום ב-GReg או חשבון הדגמה).

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

יכולות: מספק תרשימים מלאים של קריאות RPC, מטען ייעודי (payload) של בקשות ותגובות ומטא-נתונים של כוונות SYNC,‏ EXECUTE,‏ QUERY וקישור חשבונות.

קובצי יומן במכשיר Fuchsia Hub

אתם יכולים לאסוף יומנים מהרכזות הבאות של Fuchsia באמצעות השיטה הזו: * Google Nest Hub (דור שני) * Google Nest Hub Max

כדי להפעיל רכזת לאחזור יומנים מקומיים:

  1. שולחים אימייל עם המספר הסידורי והדגם של המכשירים למנהל החשבונות הטכני (TAM) שלכם ב-Google. הם מופיעים באותיות קטנות מתחת למכשיר.
  2. אחרי שאתם ברשימת ההיתרים, אתם צריכים להפעיל את התכונה לפי השלבים הבאים:
    • מהמרכז:
      1. מחליקים למטה מהחלק העליון של המסך.
      2. לוחצים על סמל ההגדרות .
      3. כדי למצוא את גרסת Fuchsia: ב-Nest Hub (דור שני), עוברים אל פרטי המכשיר > מידע טכני > גרסת Fuchsia
      4. לוחצים על "גרסת Fuchsia"‏ 7 פעמים. הפעולה הזו תפעיל את האפשרויות למפתחים
      5. חזרה לתפריט הראשי
      6. לוחצים על "אפשרויות למפתחים".
      7. לוחצים על "רישום ביומן של שותפים".
    • התכונה תופעל למשך 24 שעות. לאחר מכן, מפעילים מחדש את תכונת הרישום ביומן משלב 5 ואילך.
  3. מאתרים את כתובת ה-IP של הרכזת:
    • מהרכזת, אם יש לה מסך:
      1. מחליקים למטה מהחלק העליון של המסך.
      2. לוחצים על סמל ההגדרות .
      3. מוצאים את כתובת ה-IP של המכשיר: ב-Nest Hub (דור שני), עוברים אל פרטי המכשיר > מידע טכני > כתובת IP.
    • באפליקציית Google Home (GHA) בטלפון:
    • לוחצים על המכשיר כדי לפתוח את דף הפרטים שלו.
    • לוחצים על סמל ההגדרות כדי לפתוח את דף ההגדרות.
    • מוצאים את כתובת ה-IP של המכשיר: עוברים אל פרטי המכשיר > מידע טכני > כתובת IP.
  4. כדי לאחזר יומנים מהרכזת, צריך לשלוח בקשת HTTP לרכזת ממחשב שמחובר לאותה רשת Wi-Fi.
    • שימו לב ליציאה ולנתיב של נקודת הקצה:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • אפשר להשאיר את החיבור פתוח למשך דקה אחת בלבד, אבל הנתונים שאוחזרו מהמאגר מכילים בדרך כלל אירועים קודמים של 20-30 דקות.
      • כדי לוודא שהמאגר הזמני מכיל תוכן שרלוונטי לבדיקה (בדומה לדוחות על באגים ב-Android), מומלץ לחלץ את היומנים בשיטה הזו מיד אחרי שמסיימים את הליך הבדיקה.

פעולות אוטומטיות

זיהוי קצוות

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

לדוגמה, אם הגורם להפעלה הוא הדלקת אור, זיהוי קצה מוודא שהגורם להפעלה מופעל רק אם מכשיר התאורה עובר ממצב כבוי למצב מופעל, ולא ממצב מופעל למצב מופעל (ללא שינוי).

הפעולה האוטומטית לא פועלת כמו שציפיתי

אם אחרי שבדקתם את זיהוי הקצוות, האוטומציה לא פועלת כמו שצריך:

  1. בודקים כל מכשיר כדי לוודא שהוא פועל כמו שצריך, בלי קשר לאוטומציה.

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

  3. צפו במצב המכשיר באפליקציית Google Home בזמן שהאוטומציה פועלת.

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

הפעולה האוטומטית פועלת כשלא צריך

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

הפעולה האוטומטית לא עוברת קומפילציה

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

האימות של יצירת הפעולה האוטומטית נכשל

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

OAuth

אם יש לכם לקוח OAuth קיים

אם כבר יש לכם לקוח OAuth מאומת לאפליקציה שפורסמה, אתם יכולים להשתמש בלקוח הקיים של OAuth כדי לבדוק את ממשקי ה-API של Home.

לא צריך להירשם ל-Google Home Developer Console כדי לבדוק את ממשקי ה-API של Home ולהשתמש בהם. עם זאת, עדיין תצטרכו רישום מאושר של Developer Console כדי לפרסם את האפליקציה, גם אם יש לכם לקוח OAuth מאומת משילוב אחר.

צריך להתחשב בשיקולים הבאים:

  • יש מגבלה של 100 משתמשים כשמשתמשים בלקוח OAuth קיים. במאמריצירת מזהה לקוח ב-OAuth מוסבר איך מוסיפים משתמשים לבדיקה. בלי קשר לאימות OAuth, יש מגבלה של 100 משתמשים שיכולים לתת הרשאות לאפליקציה שלכם, שנקבעת על ידי ממשקי ה-API של Home. ההגבלה הזו תוסר אחרי השלמת הרישום של Developer Console.

  • Developer Console registration צריך לשלוח לאישור כשמוכנים להגביל את ההרשאות של סוגי המכשירים באמצעות OAuth כהכנה לעדכון האפליקציה באמצעות ממשקי ה-API של Home.

ב-Google Cloud אפליקציות שעדיין ממתינות לאימות OAuth, המשתמשים לא יכולים להשלים את תהליך ה-OAuth עד שהאימות יושלם. אם תנסו לתת הרשאות, תופיע הודעת השגיאה הבאה:

Access blocked: <Project Name> has not completed the Google verification process.