عیب یابی

نمونه برنامه

اگر هنگام استفاده از APIهای Home با مشکلی مواجه شدید، می‌توانید لاگ‌ها را برای اشکال‌زدایی بیشتر جمع‌آوری کنید. جمع‌آوری لاگ‌ها از دستگاه تلفن همراه به Xcode نیاز دارد. اگر به کمک گوگل نیاز دارید، لاگ‌ها را هم از دستگاه iOS و هم از هاب جمع‌آوری کنید و یک تیکت در ردیاب مشکل با اطلاعات مربوطه و لاگ‌های مرتبط با آن باز کنید.

جمع‌آوری گزارش‌های iOS

برای تمام مراحل مربوط به Xcode، دستگاه تلفن همراه شما باید به دستگاه محلی شما متصل باشد.

گزارش‌های برنامه و گزارش‌های SDK مستقیماً در کنسول Xcode نمایش داده می‌شوند و قابل جمع‌آوری هستند. هنگامی که دستگاه تلفن همراه شما به دستگاه محلی شما متصل است و برنامه را از طریق Xcode اجرا می‌کنید، کنسول به طور خودکار گزارش‌های خروجی استاندارد (stdout) و خطای استاندارد (stderr) را از لایه برنامه و SDK داخلی ضبط و پخش می‌کند. این یک روش ساده برای نظارت بر فرآیندهای مقداردهی اولیه در زمان واقعی، تعاملات API و رویدادهای SDK در طول توسعه و اشکال‌زدایی فراهم می‌کند.

جمع‌آوری لاگ‌های افزونه از Xcode

اگر هنگام استفاده از APIهای Home با مشکلی مواجه شدید، می‌توانید گزارش‌ها را برای اشکال‌زدایی بیشتر جمع‌آوری کنید.

  1. در Xcode، به بخش Debug در نوار منوی بالا بروید و روی Attach to Process by PID یا Name کلیک کنید.

    نمونه اشکال زدایی برنامه

  2. در قسمت PID یا Process Name ، گزینه MatterExtension را انتخاب کرده و روی Attach کلیک کنید.

    افزونه ضمیمه برنامه نمونه

  3. اگر روی گوشه بالا سمت راست کلیک کنید، عبارت Waiting to attach to MatterAddDeviceExtension را در آیفون مشاهده خواهید کرد.

    نمونه وضعیت انتظار برنامه

  4. روی تب کلیک کنید و MatterAddExtension را انتخاب کنید.

    برنامه نمونه با قابلیت افزودن افزونه Matter

  5. کنسول، گزارش افزونه را ثبت خواهد کرد.

شرلاگ: ردیابی رویداد بین پشته‌ای

شرلاگ یک سرویس ردیابی بلادرنگ است که نمایی از تعاملات بین زیرساخت گوگل و سرویس‌های ابری شریک را به صورت سرتاسری ارائه می‌دهد.

پیش‌نیاز : ردیابی نیاز به استفاده از یک حساب مشترک و هماهنگ‌شده با گوگل (مثلاً یک حساب کاربری ثبت‌شده در GReg یا آزمایشی) دارد.

هدف اصلی : اشکال‌زدایی نقص‌های عملکردی و مشکلات ادغام ابر به ابر (C2C) (مثلاً، خرابی‌های اتصال حساب یا وضعیت‌های نادرست دستگاه) بدون نیاز به تغییر کد عملیاتی.

قابلیت‌ها : نمودارهای کامل فراخوانی RPC، بارهای درخواست/پاسخ و فراداده‌های مربوط به اهداف SYNC، EXECUTE، QUERY و Account Linking را ارائه می‌دهد.

گزارش‌های دستگاه هاب فوشیا

با استفاده از این روش می‌توانید گزارش‌ها را از هاب‌های فوشیا زیر جمع‌آوری کنید: * گوگل نست هاب (نسل دوم) * گوگل نست هاب مکس

برای فعال کردن یک هاب برای بازیابی لاگ‌های محلی:

  1. ایمیلی حاوی شماره سریال و مدل دستگاه‌های خود به مدیر حساب فنی گوگل (TAM) خود ارسال کنید. می‌توانید آن‌ها را با حروف کوچک زیر دستگاه پیدا کنید.
  2. پس از قرار گرفتن در لیست مجاز، باید این ویژگی را با دنبال کردن مراحل زیر فعال کنید:
    • از هاب:
      1. از بالای صفحه به پایین بکشید
      2. روی تنظیمات ضربه بزنید.
      3. نسخه Fuchsia را پیدا کنید: در Nest Hub (نسل دوم)، به اطلاعات دستگاه > اطلاعات فنی > نسخه Fuchsia بروید
      4. ۷ بار روی «نسخه فوشیا» ضربه بزنید. این کار گزینه‌های توسعه‌دهنده را فعال می‌کند.
      5. بازگشت به منوی سطح بالا
      6. روی «گزینه‌های توسعه‌دهنده» ضربه بزنید
      7. روی «ثبت اطلاعات شریک» ضربه بزنید
    • این ویژگی به مدت ۲۴ ساعت فعال خواهد بود. پس از آن، ویژگی ثبت وقایع را از مرحله ۵ به بعد دوباره فعال کنید.
  3. آدرس IP هاب خود را دریافت کنید:
    • از هاب، اگر صفحه نمایش داشته باشد:
      1. از بالای صفحه به پایین بکشید
      2. روی تنظیمات ضربه بزنید.
      3. پیدا کردن آدرس IP دستگاه: در Nest Hub (نسل دوم)، به اطلاعات دستگاه > اطلاعات فنی > آدرس IP بروید
    • از برنامه Google Home (GHA) در تلفن شما:
    • برای نمایش صفحه جزئیات دستگاه، روی دستگاه ضربه بزنید
    • برای نمایش صفحه تنظیمات، روی تنظیمات ضربه بزنید.
    • آدرس IP دستگاه را پیدا کنید: به اطلاعات دستگاه > اطلاعات فنی > آدرس IP بروید
  4. برای بازیابی گزارش‌ها از هاب، یک درخواست GET HTTP از رایانه‌ای که در همان شبکه Wi-Fi قرار دارد، به هاب ارسال خواهید کرد.
    • به پورت و مسیر نقطه پایانی توجه کنید:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • اتصال فقط می‌تواند برای یک دقیقه باز نگه داشته شود، اما داده‌های بازیابی شده از بافر معمولاً حاوی ۲۰ تا ۳۰ دقیقه از رویدادهای گذشته هستند.
      • در حالت ایده‌آل، لاگ‌ها بلافاصله پس از تکمیل یک روال تست با استفاده از این روش استخراج می‌شوند تا اطمینان حاصل شود که بافر حاوی محتوای مرتبط با تست است (مشابه گزارش‌های باگ اندروید).

اتوماسیون‌ها

تشخیص لبه

اتوماسیون‌های موجود در اکوسیستم گوگل هوم دارای قابلیت تشخیص لبه هستند، که منطقی است که تأیید می‌کند یک استارتر فقط زمانی فعال می‌شود که یک تغییر وضعیت واقعی رخ دهد، برخلاف به‌روزرسانی وضعیت که صرفاً وضعیت قبلی دستگاه را تکرار می‌کند.

برای مثال، اگر روشن کردن یک چراغ با استارت زدن باشد، تشخیص لبه تأیید می‌کند که استارت فقط در صورتی فعال می‌شود که آن دستگاه چراغ از حالت خاموش به روشن تغییر کند، نه اینکه از حالت روشن به روشن تغییر کند (بدون تغییر).

اتوماسیون آنطور که انتظار می‌رود رفتار نمی‌کند

پس از در نظر گرفتن تشخیص لبه، اگر اتوماسیون مطابق انتظار رفتار نکند:

  1. هر دستگاه را بررسی کنید تا مطمئن شوید که مستقل از اتوماسیون شما به درستی کار می‌کند.

  2. به نمودار اتوماسیون برای اتوماسیون خود نگاهی بیندازید و آن را با DSL اتوماسیون خود مقایسه کنید تا هرگونه فرض نادرست احتمالی از جانب شما آشکار شود.

  3. در طول اجرای اتوماسیون، وضعیت دستگاه را در برنامه Google Home مشاهده کنید.

  4. بررسی کنید تا مطمئن شوید که تمام دستگاه‌هایی که اتوماسیون به آنها ارجاع می‌دهد، در ساختاری که انتظار دارید، وجود دارند. حذف دستگاهی که اتوماسیون به آن وابسته است، می‌تواند عواقب ناخواسته‌ای داشته باشد. به تأثیر حذف دستگاه بر اتوماسیون‌ها مراجعه کنید.

اتوماسیون زمانی اجرا می‌شود که نباید

اگر اتوماسیون شما زمانی که نباید اجرا می‌شود، معیارهای شروع را بررسی کنید. ممکن است لازم باشد منطق اضافی اضافه کنید تا مطمئن شوید که تغییر در وضعیت فقط یک بار ثبت می‌شود و فقط یک بار اتوماسیون را فعال می‌کند.

اتوماسیون کامپایل نمی‌شود

مطمئن شوید که برنامه شما شامل تمام ایمپورت‌های لازم، از جمله هر کلاس مربوط به انواع مختلف گره و همچنین ویژگی‌هایی که به آنها ارجاع می‌دهید، می‌شود.

اعتبارسنجی ایجاد خودکار با شکست مواجه می‌شود

اگر فرآیند ایجاد خودکارسازی از اعتبارسنجی عبور نکند، یک پیام هشدار یا خطا اطلاعاتی در مورد مشکل ارائه می‌دهد. برای اطلاعات بیشتر، به مرجع ValidationIssueType مراجعه کنید.

اواوت

اگر یک کلاینت OAuth موجود دارید

اگر از قبل یک کلاینت OAuth تأیید شده برای یک برنامه منتشر شده دارید، می‌توانید از کلاینت OAuth موجود خود برای آزمایش APIهای Home استفاده کنید.

برای آزمایش و استفاده از APIهای Home، ثبت نام Google Home Developer Console الزامی نیست. با این حال، برای انتشار برنامه خود، حتی اگر یک کلاینت OAuth تأیید شده از یک ادغام دیگر داشته باشید، همچنان به یک ثبت نام تأیید شده Developer Console نیاز خواهید داشت.

ملاحظات زیر اعمال می‌شود:

  • هنگام استفاده از یک کلاینت OAuth موجود، محدودیت ۱۰۰ کاربر وجود دارد. برای اطلاعات بیشتر در مورد افزودن کاربران آزمایشی، بهشناسه کلاینت OAuth را ایجاد کنید .مستقل از تأیید OAuth، محدودیت ۱۰۰ کاربر از طرف Home APIs وجود دارد که می‌توانند به برنامه شما مجوز اعطا کنند. این محدودیت پس از تکمیل ثبت نام در Developer Console برداشته می‌شود.

  • ثبت نام Developer Console باید زمانی که آماده محدود کردن اعطای مجوز به نوع دستگاه از طریق OAuth برای به‌روزرسانی برنامه خود با رابط‌های برنامه‌نویسی کاربردی خانگی هستید، برای تأیید ارسال شود.

برای برنامه‌های Google Cloud که هنوز در انتظار تأیید OAuth هستند، کاربران نمی‌توانند جریان OAuth را تا زمان تکمیل تأیید تکمیل کنند. تلاش برای اعطای مجوز با خطای زیر شکست خواهد خورد:

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