שאלות נפוצות על בית חכם

כללי

ש:איפה ובאיזו שפה יש להטמיע את תשתית האספקה שלנו ל-Actions on Google?

תשובה: כל עוד הוא תומך ב-SSL (TLS) וב-OAuth 2.0 מודרניים, אתם יכולים להטמיע את התשתית שלכם בכל פלטפורמה ובכל שפה שתבחרו. מומלץ לפרוס כמה שיותר קרוב לשאר התשתית, כדי לשפר את האמינות ולקצר את זמן האחזור לביצוע במכשירים של המשתמשים בפועל.


ש: האם מזהי המכשירים צריכים להיות ייחודיים?

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


ש: האם שמות המכשירים צריכים להיות ייחודיים?

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

הנה מדריך מהיר למתן שמות:

  • שמות צריכים להיות דברים שאנשים יכולים לומר בפועל.
  • אנחנו מזהים קבוצות משנה של מחרוזות, כך שאם יש לכם את המילה 'acme light', נענה גם על 'acme light'.
  • מומלץ להשתמש בשם תיאורי למוצר ובשם אחד או יותר שהוגדרו על ידי המשתמשים.
  • המשתמשים לא צריכים לבחור שמות לחדרים בתאורה, כי יש לנו חדרים בשביל זה. לכן צריך לתת להם שמות ייחודיים לכל חדר, אבל הם תמיד יכולים להשתמש בלשון רבים כדי לתפקד בכל מקום (לדוגמה, שתי הנורות בצמודות במשרד הן 'אור צפון' ו'אור מזרחי', אבל אפשר לתפקד כך רק על 'אורות').

ש': באיזו תדירות מתעדכן מצב המכשיר?

ת: המצב הזמני מאוחזר ב-QUERY או ב-EXECUTE, שהן פעולות ביוזמת המשתמש. אם המשתמש שואל "האם הנורה דולק?" או שהוא רוצה להבהיר אור, נצטרך להריץ שאילתה כדי לברר מה המצב הנוכחי.


ש: האם ניתן לעדכן את תרשים הבית ישירות במצב הנוכחי של מכשיר?

ת: כן, אפשר להשתמש בקריאה ל-API של Report State.


קישור חשבונות ו-OAuth

ת:כן, נדרש קישור חשבונות כדי לחבר מכשירים של משתמשים לשירותי הענן של הספק.


ש:כשמדובר ב-OAuth, התוקף של אסימוני הגישה פג כל 15.213 שעות, זה בסדר?

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


כוונות

ש': מתי מתבצע הסנכרון?

תשובה: הסנכרון מתרחש מיד אחרי השלמת OAuth ואחרי קריאה ל-Request Sync.


ש: למה SYNC לא פועל?

ת: יש כמה סיבות נפוצות לכך.

  • סוגי המכשירים שנשלחים על ידך שגויים.

    • לדוגמה, אנחנו מצפים לקבל action.devices.types.LIGHT, אבל אתם שולחים action.devices.types.Light.
  • בחרת לשלוח סוגי מכשירים שאינם נתמכים.

    • לדוגמה, אתם שולחים action.devices.types.FLASHLIGHT – אנחנו לא תומכים באפשרות הזו.
  • בחרת לשלוח שדות לא חוקיים או לא נתמכים.

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

    • בדקו את הסוגריים שלכם!
  • נתקלת בבעיה בקישור החשבון.

    • עליך לוודא שקיבלת אסימון גישה חוקי בכותרת Auth של בקשת SYNC.
  • לוקח לך יותר מדי זמן להגיב לבקשת הסנכרון.

    • ודאו שאתם מגיבים לבקשת SYNC תוך 5 שניות.

ש:האם אפשר להשיב 'בהמתנה'?

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


בדיקה והגשה

שאלה:האם אפשר להגדיר סביבת Staging?

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


ש:באיזו תדירות צריך לעדכן את טיוטת הפרויקט?

ת: טיוטה של פרויקט צריכה לעבור רענון כל 3 ימים. לאחר 3 ימים, סוכן הבדיקה ייעלם מההגדרות של mobile-HomeControl. אם נתקלתם בבעיה, תוכלו ללחוץ על לחצן הטיוטה לבדיקה של הפרויקט ב-Actions on Google Console.


ש': האם אפשר לבצע בדיקה ביותר ממכשיר אחד בו-זמנית?

תשובה: ב-Actions on Google יש תמיכה רק ב-AP אחד מסוג "try-on-device" בכל פעם. אם אתם משתמשים לראשונה ב-TEST DRAFT ב-"ap1" ובמכשירי סנכרון, אז (בלי לבטל את הקישור של ap1) מריצים ישירות את TEST DRAFT "ap2", "ap1" ייעלם מההגדרות של Mobile-HomeControl. כדי לתקן את הבעיה, מריצים שוב את TEST DRAFT ב-"ap1" ומבטלים את הקישור של "ap1" בהגדרות.

חשוב לשים לב שחבילת הפעולה היחידה הזו תהיה זמינה למשתמש בכל מכשירי Google Assistant. לדוגמה, אפשר לבדוק את שילוב החומרה החדש גם ברמקולים שמופעלים באמצעות קול וגם ב-Android.


ש:שליחת פרויקט הפעולות שלי נדחתה בגלל השם או ההגייה. מה צריך לשנות?

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

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


ש:הפעולה שלי לא מופיעה בקטע 'פקדים לשליטה בבית חכם' באפליקציית Google Home. מה בדיוק קורה?

ת: הבעיה יכולה להיות אחת מאלה:

  • לא לחצתם על לחצן הבדיקה של הפרויקט ב-Actions Console.
  • אפשר להפעיל רק פעולה אחת ב'בדיקה במכשיר' בכל פעם.
  • ב-Actions Console, נכנסים לכרטיסייה 'סימולטור' של פרויקט הפעולות ומחליפים את המצב של 'פעיל/לא פעיל' ל'לא פעיל' ואז ל'פעיל' שוב.
  • אם זו פעולה ששותפה איתכם, ודאו שפעלתם לפי כל הוראות השיתוף.
  • תוקף הבדיקה של המכשיר פג לאחר שלושה ימים. לוחצים על לחצן הטיוטה לבדיקה של הפרויקט ב-Actions Console.

ש: למה מופיעה הודעת שגיאה כשמקלידים "דברו אל <my agent name>" בסימולטור?

תשובה: פעולות של בית חכם לא כוללות שמות הפעלה. כדי לבצע בדיקה בסימולטור, צריך להריץ את קישור החשבונות בטלפון Android או בטלפון iOS עם התקנת Google Home app (GHA). כמו כן, לפני שאתם מפעילים את קישור החשבונות, אתם צריכים שיהיו לכם מכשירים שמשויכים לחשבון.


ש: מדוע אני מקבל שגיאות כשאני מנסה להשתמש בסימולטור?

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


מצב הדוח

ש: האם יש דרישות מוקדמות להטמעת מצב הדוח?

תשובה: הפרויקט צריך להשתמש ב-Smart Home API ולתמוך ב-OAuth2, וצריך לכלול בו תכונות שניתן לדווח עליהן.


ש': באיזו תדירות עלינו לדווח על המצב במכשיר?

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


ש:האם צריך לשלוח את מצב המכשיר המלא כשמתקשרים לגבי מצב הדיווח?

תשובה: אין תמיכה בעדכוני מצב חלקיים, ולכן קריאות ל-Report State צריכות תמיד לכלול את כל הנתונים של תכונה מסוימת שעודכנו. אם שתי תכונות יוצרות חוסר עקביות, צריך לדווח עליהן ביחד.


ש': האם Google יכולה לשלוח שאילתות לגבי המכשיר שלי כדי לקבל את המצב (כלומר, לדגום את המכשיר)?

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


ש: אילו תכונות תומכות במצב הדוח כרגע?

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

שימו לב שלסצנות אין מצבים. עם זאת, ייתכן שהם יובילו לשינוי במצבים. אם במכשיר כלשהו ב-Google Home Graph יש מצב שינוי, צריך לדווח עליו.


ש:האם מצב הדוח דורש שליחה של חותמת זמן?

ת: אנחנו לא דורשים חותמת זמן. המדינה האחרונה שנשלחה תבטל שיחות קודמות.


ש: האם עליי לדווח על המצב בנפרד אם אני כבר שולח את המצב בשאילתה ו/או 'ביצוע'?

ת: השדה Home Graph שומר רק את המצב שנשלח דרך Report State. המצב שמוחזר כתגובה לאובייקטים מסוג EXECUTE ו-QUERY משמש רק לתגובות קוליות למשתמש, ולא נשמר. כתוצאה מכך, צריך לבצע קריאה ל-Report State גם אם המצב החדש של המכשיר כבר הוחזר כתגובה ל-Intent EXECUTE או QUERY.


ש: מהן ההשלכות של אי-הטמעה מלאה של מצב הדוח בתאריך היעד הנתון?

תשובה: כתוצאה מכך, חוויית המשתמש תיפגע, למשל ב-GHA ובפלטפורמות החזותיות. המשמעות היא שהרבה אובייקטים מסוג QUERY Intent יישלחו לסקר למדינה, ואנחנו לא יכולים להבטיח מה תהיה התוצאה של עומס נוסף בענן השותף.


ש: איך אפשר לבדוק את ההטמעה של מצב הדיווח?

תשובה: השתמשו ב-Home Graph Viewer – כלי בדיקה בשירות עצמי שמציג את מצבי המכשיר הנוכחיים שמאוחסנים ב-Home Graph.


ש:האם אפשר להשתמש ב-RequestId אקראי במצב הדוח?

A: אנחנו ממליצים לשותפים להשתמש באותו requestId שהם קיבלו מבקשת ה-EXECUTE אם Report State מופעל על ידי בקשת EXECUTE, אחרת ניתן להשתמש ב-RequestId אקראי.


ש:אם למשתמש יש כמה מכשירים והמצב של אחד מהם משתנה, האם אנחנו צריכים לדווח על המצב העדכני של כל המכשירים?

ת: לא. צריך לדווח רק על המצב של המכשיר הספציפי.


שיטות מומלצות

ש: מהו סוג זמן האחזור המקובל?

ת: פחות מ-200 אלפיות השנייה הוא אידיאלי, בין 2 ל-5 שניות מותר. אם זמן האחזור נמשך כ-5 שניות, צרו איתנו קשר.


ש: איך אפשר לגרום לרמקול המופעל באמצעות קול להגיב כראוי כשהוא במצב אופליין?

תשובה: החזרת המצב של אופליין למכשירים לא מקוונים. במקרה של השגיאה הזו, אנחנו מחזירים את הכיתוב 'not available now' (לא זמין כרגע) כ-TTS. למידע נוסף, קראו את המאמר שגיאות וחריגים.