اعلان‌های مربوط به «کنش‌های» خانه هوشمند

اعلان‌ها به ادغام Cloud-to-cloud شما اجازه می‌دهند از Google Assistant برای برقراری ارتباط با کاربران درباره رویدادها یا تغییرات مهم مربوط به دستگاه استفاده کند. می‌توانید اعلان‌هایی را برای هشدار دادن به کاربران درباره رویدادهای به‌موقع دستگاه پیاده‌سازی کنید، مثلاً وقتی کسی پشت در است، یا برای گزارش دادن درباره تغییر وضعیت درخواستی دستگاه، مثلاً وقتی زبانه قفل در با موفقیت درگیر شده است یا گیر کرده است.

ادغام Cloud-to-cloud شما می‌تواند انواع زیر را ارسال کند اعلان‌ها به کاربران:

  • اعلان‌های پیش‌کنشی: به کاربر درباره رویداد دستگاه smart home هشدار می‌دهد بدون اینکه کاربر قبلاً درخواستی به دستگاه‌هایش ارسال کرده باشد، مثل زنگ زدن زنگ در.

  • پاسخ‌های پیگیری: تأیید اینکه درخواست فرمان دستگاه موفقیت‌آمیز بوده یا ناموفق بوده است، برای مثال هنگام قفل کردن در. از این هشدارها برای فرمان‌های دستگاه که تکمیل آن‌ها زمان می‌برد استفاده کنید. پاسخ‌های پیگیری فقط زمانی پشتیبانی می‌شوند که درخواست‌های فرمان دستگاه از بلندگوهای هوشمند و نمایشگرهای هوشمند ارسال شده باشند.

Assistant این اعلان‌ها را به‌صورت اعلامیه در بلندگوهای هوشمند و نمایشگرهای هوشمند به کاربران ارائه می‌دهد. اعلان‌های پیش‌کنشی به‌طور پیش‌فرض خاموش است. کاربران می‌توانند همه اعلان‌های پیش‌کنشی را از Google Home app (GHA) روشن یا خاموش کنند.

رویدادهایی که اعلان‌ها را راه‌اندازی می‌کنند

وقتی رویدادهای دستگاه رخ می‌دهد، اجرای شما درخواست اعلانی به Google ارسال می‌کند. ویژگی‌های دستگاهی که ادغام Cloud-to-cloud شما پشتیبانی می‌کند تعیین می‌کند چه نوع رویدادهای اعلانی دردسترس است و چه داده‌هایی را می‌توانید در آن اعلان‌ها بگنجانید.

ویژگی‌های زیر از اعلان‌های پیش‌کنشی پشتیبانی می‌کنند:

ویژگی رویدادها
ObjectDetection اشیاء شناسایی‌شده توسط دستگاه، مثلاً وقتی چهره‌ای آشنا در در ورودی شناسایی می‌شود. برای مثال: «سارا و علی جلوی در ورودی هستند.»
RunCycle دستگاه چرخه را تکمیل می‌کند. برای مثال: «چرخه ماشین لباس‌شویی تکمیل شده است.»
SensorState دستگاه وضعیت حسگر پشتیبانی‌شده‌ای را تشخیص می‌دهد. برای مثال: «دودیاب دود را تشخیص می‌دهد.»

ویژگی‌های زیر از پاسخ‌های پیگیری پشتیبانی می‌کنند:

ویژگی رویدادها
LockUnlock وضعیت تکمیل و تغییر وضعیت پس‌از اجرای فرمان دستگاه action.devices.commands.LockUnlock. برای مثال: «در جلو قفل شده است» یا «در جلو گیر کرده است».
NetworkControl وضعیت تکمیل و تغییر وضعیت پس‌از اجرای فرمان دستگاه action.devices.commands.TestNetworkSpeed. برای مثال: «آزمایش سرعت شبکه شما به‌پایان رسید. درحال‌حاضر سرعت بارگیری در رهیاب دفتر ۸۰٫۲ کیلوبیت در ثانیه و سرعت بارگذاری ۹٫۳ کیلوبیت در ثانیه است.»
OpenClose وضعیت تکمیل و تغییر وضعیت پس‌از اجرای فرمان دستگاه action.devices.commands.OpenClose. برای مثال: «در جلو باز شده است» یا «در جلو باز نشد.»

همه انواع دستگاه‌ها از اعلان‌های مربوط به ویژگی‌های ذی‌ربط پشتیبانی می‌کنند.

ساختن اعلان‌ها برای ادغام «ابر به ابر»

در این مراحل، اعلان‌ها را به ادغام Cloud-to-cloud خود اضافه کنید:

  1. اگر اعلان‌ها از برنامه دستگاه smart home شما فعال شده است، به Google اطلاع دهید. اگر کاربران اعلان‌ها را در برنامه شما روشن یا خاموش کردند، درخواست SYNC ارسال کنید تا Google از تغییر دستگاه مطلع شود.
  2. وقتی رویداد دستگاه یا تغییر وضعیت مربوطی رخ می‌دهد که باعث راه‌اندازی اعلان می‌شود، با فراخوانی Report State reportStateAndNotification API، درخواست اعلان ارسال کنید. اگر وضعیت دستگاه تغییر کرد، می‌توانید هم بار داده وضعیت و هم بار داده اعلان را باهم در تماس Report State و «اعلان» خود ارسال کنید.

بخش‌های زیر این مراحل را با جزئیات بیشتری پوشش می‌دهند.

مشخص کنید آیا اعلان‌ها در برنامه‌تان فعال است یا نه

کاربران می‌توانند با فعال کردن این ویژگی در GHA، انتخاب کنند که آیا می‌خواهند اعلان‌های پیش‌کنشی را دریافت کنند یا نه. در برنامه دستگاه smart home، می‌توانید به‌صورت اختیاری این قابلیت را اضافه کنید که کاربران بتوانند به‌طور صریح اعلان‌ها را از دستگاه تغییر دهند، برای مثال، از تنظیمات برنامه شما.

با برقراری تماس درخواست همگام‌سازی برای به‌روزرسانی داده‌های دستگاه، به Google نشان دهید که اعلان‌ها برای دستگاهتان فعال شده است. هرگاه کاربران این تنظیم را در برنامه‌تان تغییر می‌دهند، باید درخواست SYNC را به این صورت ارسال کنید.

در پاسخ SYNC، یکی از این به‌روزرسانی‌ها را ارسال کنید:

  • اگر کاربر به‌طور صریح اعلان‌ها را در برنامه دستگاهتان روشن کرده است، یا اگر گزینه روشن/ خاموش ارائه نمی‌دهید، ویژگی devices.notificationSupportedByAgent را روی true تنظیم کنید.
  • اگر کاربر به‌طور صریح اعلان‌ها را در برنامه دستگاهتان خاموش کرده است، ویژگی devices.notificationSupportedByAgent را روی false تنظیم کنید.

تکه‌کد زیر نمونه‌ای از نحوه تنظیم پاسخ SYNC را نشان می‌دهد:

devices: [{
   id: 'device123',
   ...
   notificationSupportedByAgent: true,
}]

ارسال درخواست‌های اعلان به Google

برای راه‌اندازی اعلان‌ها در Assistant، تحقق شما یک محموله اعلان را ازطریق Report State و فراخوانی Notification API به Google Home Graph ارسال می‌کند.

فعال کردن Google HomeGraph API

  1. در Google Cloud Console، به صفحه HomeGraph API بروید.

    رفتن به صفحه HomeGraph API
  2. پروژه‌ای را که با شناسه پروژه smart home شما مطابقت دارد انتخاب کنید.
  3. روی فعال کردن کلیک کنید.

ایجاد کردن کلید حساب سرویس

برای تولید کلید حساب سرویس از Google Cloud Console، این دستورالعمل‌ها را دنبال کنید:

توجه: مطمئن شوید که هنگام انجام این مراحل از پروژه GCP صحیح استفاده می‌کنید. این پروژه‌ای است که با شناسه پروژه smart home شما مطابقت دارد.
  1. در Google Cloud Console، به صفحه حساب‌های سرویس بروید.

    به صفحه «حساب‌های سرویس» بروید.

    شاید لازم باشد پروژه‌ای را انتخاب کنید تا به صفحه «حساب‌های سرویس» هدایت شوید.

  2. روی ایجاد حساب سرویس کلیک کنید.

  3. در فیلد نام حساب سرویس، نامی وارد کنید.

  4. در فیلد شناسه حساب سرویس، شناسه‌ای وارد کنید.

  5. در فیلد شرح حساب سرویس، شرحی وارد کنید.

  6. روی ایجاد و ادامه کلیک کنید.

  7. از منوِ کرکره‌ای نقش، حساب‌های سرویس > ایجادکننده شناسه توکن OpenID Connect حساب سرویس را انتخاب کنید.

  8. روی ادامه کلیک کنید.

  9. روی تمام کلیک کنید.

  10. حساب سرویسی را که به‌تازگی ایجاد کرده‌اید از فهرست حساب‌های سرویس انتخاب کنید و مدیریت کلیدها را از منوِ کنش‌ها انتخاب کنید.

  11. افزودن کلید > ایجاد کلید جدید را انتخاب کنید.

  12. برای نوع کلید، گزینه JSON را انتخاب کنید.

  13. روی ایجاد کردن کلیک کنید. فایل JSON حاوی کلیدتان در رایانه بارگیری می‌شود.

برای دستورالعمل‌های دقیق و اطلاعات درباره ایجاد کلیدهای حساب سرویس، به ایجاد و حذف کلیدهای حساب سرویس در سایت راهنمای کنسول Google Cloud مراجعه کنید.

ارسال اعلان

بااستفاده از میانای برنامه‌سازی کاربردی devices.reportStateAndNotification، تماس درخواست اعلان را برقرار کنید. درخواست JSON شما باید شامل eventId باشد که شناسه یکتایی است که پلاتفرم شما برای رویداد راه‌انداز اعلان تولید کرده است. eventId باید شناسه‌ای تصادفی باشد که هربار درخواست اعلان ارسال می‌کنید متفاوت باشد.

در شیء notifications که در فراخوانی API خود ارسال می‌کنید، یک مقدار priority اضافه کنید که نحوه نمایش اعلان را تعریف می‌کند. شیء notifications شما ممکن است بسته به ویژگی دستگاه، فیلدهای متفاوتی داشته باشد.

یکی از این مسیرها را برای تنظیم بار و فراخوانی میانای برنامه‌سازی کاربردی دنبال کنید:

ارسال محموله اعلان پیش‌کنشی

برای فراخوانی API، گزینه‌ای را از یکی از این برگه‌ها انتخاب کنید:

HTTP

Home Graph API یک نقطه پایانی HTTP ارائه می‌دهد

  1. از فایل JSON حساب سرویس بارگیری‌شده برای ایجاد «نشان وب JSON» (JWT) استفاده کنید. برای اطلاعات بیشتر، به اصالت‌سنجی بااستفاده از حساب سرویس مراجعه کنید.
  2. بااستفاده از oauth2l، کد دسترسی OAuth 2.0 را با دامنه https://www.googleapis.com/auth/homegraph دریافت کنید:
  3. oauth2l fetch --credentials service-account.json \
      --scope https://www.googleapis.com/auth/homegraph
    
  4. درخواست JSON را با agentUserId ایجاد کنید. در اینجا نمونه درخواست JSON برای Report State و «اعلان» آورده شده است:
  5. {
      "agentUserId": "PLACEHOLDER-USER-ID",
      "eventId": "PLACEHOLDER-EVENT-ID",
      "requestId": "PLACEHOLDER-REQUEST-ID",
      "payload": {
        "devices": {
          "notifications": {
            "PLACEHOLDER-DEVICE-ID": {
              "ObjectDetection": {
                "priority": 0,
                "detectionTimestamp": 1534875126750,
                "objects": {
                  "named": [
                    "Alice"
                  ],
                  "unclassified": 2
                }
              }
            }
          }
        }
      }
    }
  6. Report State و JSON اعلان و کد را در درخواست HTTP POST خود به نقطه پایانی Google Home Graph ترکیب کنید. در اینجا مثالی از نحوه ارسال درخواست در خط فرمان بااستفاده از curl، به‌عنوان آزمایش آورده شده است:
  7. curl -X POST -H "Authorization: Bearer ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      -d @request-body.json \
      "https://homegraph.googleapis.com/v1/devices:reportStateAndNotification"
    

gRPC

Home Graph API یک نقطه پایانی gRPC ارائه می‌دهد

  1. تعریف سرویس میان‌گیرهای پروتکل را برای Home Graph API دریافت کنید.
  2. برای تولید کدهای آماده کارخواه برای یکی از زبان‌های پشتیبانی‌شده ، اسناد توسعه‌دهنده gRPC را دنبال کنید.
  3. روش ReportStateAndNotification را فراخوانی کنید.

Node.js

Google APIs Node.js Client برای Home Graph API اتصال ارائه می‌دهد.

  1. سرویس google.homegraph را بااستفاده از اعتبارنامه پیش‌فرض برنامه مقداردهی اولیه کنید.
  2. روش reportStateAndNotification را با ReportStateAndNotificationRequest فراخوانی کنید. یک Promise با ReportStateAndNotificationResponse برمی‌گرداند.
const homegraphClient = homegraph({
  version: 'v1',
  auth: new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/homegraph'
  })
});

const res = await homegraphClient.devices.reportStateAndNotification({
  requestBody: {
    agentUserId: 'PLACEHOLDER-USER-ID',
    eventId: 'PLACEHOLDER-EVENT-ID',
    requestId: 'PLACEHOLDER-REQUEST-ID',
    payload: {
      devices: {
        notifications: {
          'PLACEHOLDER-DEVICE-ID': {
            ObjectDetection: {
              priority: 0,
              detectionTimestamp: 1534875126750,
              objects: {
                named: ['Alice'],
                unclassified: 2
              }
            }
          }
        }
      }
    }
  }
});
    

جاوا

کتابخانه کارخواه HomeGraph API برای Java اتصال‌هایی برای Home Graph API ارائه می‌دهد.

  1. HomeGraphApiService را بااستفاده از اعتبارنامه پیش‌فرض برنامه مقداردهی اولیه کنید.
  2. روش reportStateAndNotification را با ReportStateAndNotificationRequest فراخوانی کنید. ReportStateAndNotificationResponse را برمی‌گرداند.
// Get Application Default credentials.
GoogleCredentials credentials =
    GoogleCredentials.getApplicationDefault()
        .createScoped(List.of("https://www.googleapis.com/auth/homegraph"));

// Create Home Graph service client.
HomeGraphService homegraphService =
    new HomeGraphService.Builder(
            GoogleNetHttpTransport.newTrustedTransport(),
            GsonFactory.getDefaultInstance(),
            new HttpCredentialsAdapter(credentials))
        .setApplicationName("HomeGraphExample/1.0")
        .build();

// Build device notification payload.
Map<?, ?> notifications =
    Map.of(
        "ObjectDetection",
        Map.of(
            "priority", 0,
            "detectionTimestamp", 1534875126,
            "objects", Map.of("named", List.of("Alice"), "unclassifed", 2)));

// Send notification.
ReportStateAndNotificationRequest request =
    new ReportStateAndNotificationRequest()
        .setRequestId("PLACEHOLDER-REQUEST-ID")
        .setAgentUserId("PLACEHOLDER-USER-ID")
        .setEventId("PLACEHOLDER-EVENT-ID")
        .setPayload(
            new StateAndNotificationPayload()
                .setDevices(
                    new ReportStateAndNotificationDevice()
                        .setNotifications(Map.of("PLACEHOLDER-DEVICE-ID", notifications))));
homegraphService.devices().reportStateAndNotification(request);
    
ارسال محموله پاسخ پیگیری

بار مفید برای پاسخ پیگیری حاوی وضعیت درخواست، کدهای خطا برای رویدادهای ناموفق (درصورت وجود)، و followUpToken معتبر است که درطول درخواست قصد EXECUTE ارائه شده است. followUpToken باید ظرف پنج دقیقه استفاده شود تا معتبر بماند و پاسخ به‌درستی با درخواست اصلی مرتبط شود.

قطعه کد زیر نمونه‌ای از بار داده درخواست EXECUTE را با فیلد followUpToken نشان می‌دهد.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123",
        }],
        "execution": [{
          "command": "action.devices.commands.TestNetworkSpeed",
          "params": {
            "testDownloadSpeed": true,
            "testUploadSpeed": false,
            "followUpToken": "PLACEHOLDER"
          }
        }]
      }]
    }
  }]
};

Google از followUpToken برای ارسال اعلان فقط به دستگاهی که کاربر در ابتدا با آن تعامل داشته است استفاده می‌کند و آن را به همه دستگاه‌های کاربر ارسال نمی‌کند.

برای فراخوانی API، گزینه‌ای را از یکی از این برگه‌ها انتخاب کنید:

HTTP

Home Graph API یک نقطه پایانی HTTP ارائه می‌دهد

  1. از فایل JSON حساب سرویس بارگیری‌شده برای ایجاد «نشان وب JSON» (JWT) استفاده کنید. برای اطلاعات بیشتر، به اصالت‌سنجی بااستفاده از حساب سرویس مراجعه کنید.
  2. بااستفاده از oauth2l، کد دسترسی OAuth 2.0 را با دامنه https://www.googleapis.com/auth/homegraph دریافت کنید:
  3. oauth2l fetch --credentials service-account.json \
      --scope https://www.googleapis.com/auth/homegraph
    
  4. درخواست JSON را با agentUserId ایجاد کنید. در اینجا نمونه درخواست JSON برای Report State و «اعلان» آورده شده است:
  5. {
      "agentUserId": "PLACEHOLDER-USER-ID",
      "eventId": "PLACEHOLDER-EVENT-ID",
      "requestId": "PLACEHOLDER-REQUEST-ID",
      "payload": {
        "devices": {
          "notifications": {
            "PLACEHOLDER-DEVICE-ID": {
              "NetworkControl": {
                "priority": 0,
                "followUpResponse": {
                  "status": "SUCCESS",
                  "followUpToken": "PLACEHOLDER",
                  "networkDownloadSpeedMbps": 23.3,
                  "networkUploadSpeedMbps": 10.2
                }
              }
            }
          }
        }
      }
    }
  6. Report State و JSON اعلان و کد را در درخواست HTTP POST خود به نقطه پایانی Google Home Graph ترکیب کنید. در اینجا مثالی از نحوه ارسال درخواست در خط فرمان بااستفاده از curl، به‌عنوان آزمایش آورده شده است:
  7. curl -X POST -H "Authorization: Bearer ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      -d @request-body.json \
      "https://homegraph.googleapis.com/v1/devices:reportStateAndNotification"
    

gRPC

Home Graph API یک نقطه پایانی gRPC ارائه می‌دهد

  1. تعریف سرویس میان‌گیرهای پروتکل را برای Home Graph API دریافت کنید.
  2. برای تولید کدهای آماده کارخواه برای یکی از زبان‌های پشتیبانی‌شده، اسناد توسعه‌دهنده gRPC را دنبال کنید.
  3. روش ReportStateAndNotification را فراخوانی کنید.

Node.js

Google APIs Node.js Client برای Home Graph API اتصال فراهم می‌کند.

  1. مقداردهی اولیه سرویس google.homegraph بااستفاده از اعتبارنامه پیش‌فرض برنامه.
  2. روش reportStateAndNotification را با ReportStateAndNotificationRequest فراخوانی کنید. ‫Promise را با ReportStateAndNotificationResponse برمی‌گرداند.
const followUpToken = executionRequest.inputs[0].payload.commands[0].execution[0].params.followUpToken;

const homegraphClient = homegraph({
  version: 'v1',
  auth: new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/homegraph'
  })
});

const res = await homegraphClient.devices.reportStateAndNotification({
  requestBody: {
    agentUserId: 'PLACEHOLDER-USER-ID',
    eventId: 'PLACEHOLDER-EVENT-ID',
    requestId: 'PLACEHOLDER-REQUEST-ID',
    payload: {
      devices: {
        notifications: {
          'PLACEHOLDER-DEVICE-ID': {
            NetworkControl: {
              priority: 0,
              followUpResponse: {
                status: 'SUCCESS',
                followUpToken,
                networkDownloadSpeedMbps: 23.3,
                networkUploadSpeedMbps: 10.2,
              }
            }
          }
        }
      }
    }
  }
});
    

جاوا

کتابخانه کارخواه HomeGraph API برای Java اتصال‌هایی برای Home Graph API ارائه می‌دهد.

  1. مقداردهی اولیه HomeGraphApiService بااستفاده از اعتبارنامه‌های پیش‌فرض برنامه
  2. روش reportStateAndNotification را با ReportStateAndNotificationRequest فراخوانی کنید. این روش ReportStateAndNotificationResponse را برمی‌گرداند
// Get Application Default credentials.
GoogleCredentials credentials =
    GoogleCredentials.getApplicationDefault()
        .createScoped(List.of("https://www.googleapis.com/auth/homegraph"));

// Create Home Graph service client.
HomeGraphService homegraphService =
    new HomeGraphService.Builder(
            GoogleNetHttpTransport.newTrustedTransport(),
            GsonFactory.getDefaultInstance(),
            new HttpCredentialsAdapter(credentials))
        .setApplicationName("HomeGraphExample/1.0")
        .build();

// Extract follow-up token.
ExecuteRequest.Inputs executeInputs = (Inputs) executeRequest.getInputs()[0];
String followUpToken =
    (String)
        executeInputs
            .getPayload()
            .getCommands()[0]
            .getExecution()[0]
            .getParams()
            .get("followUpToken");

// Build device follow-up response payload.
Map<?, ?> followUpResponse =
    Map.of(
        "NetworkControl",
        Map.of(
            "priority",
            0,
            "followUpResponse",
            Map.of(
                "status",
                "SUCCESS",
                "followUpToken",
                followUpToken,
                "networkDownloadSpeedMbps",
                23.3,
                "networkUploadSpeedMbps",
                10.2)));

// Send follow-up response.
ReportStateAndNotificationRequest request =
    new ReportStateAndNotificationRequest()
        .setRequestId("PLACEHOLDER-REQUEST-ID")
        .setAgentUserId("PLACEHOLDER-USER-ID")
        .setEventId("PLACEHOLDER-EVENT-ID")
        .setPayload(
            new StateAndNotificationPayload()
                .setDevices(
                    new ReportStateAndNotificationDevice()
                        .setNotifications(Map.of("PLACEHOLDER-DEVICE-ID", followUpResponse))));
homegraphService.devices().reportStateAndNotification(request);
    

ثبت

اعلان‌ها از ثبت رویداد پشتیبانی می‌کنند، همان‌طور که در ثبت Cloud برای Cloud-to-cloud توضیح داده شده است. این گزارش‌ها برای آزمایش و حفظ کیفیت اعلان‌ها در «کنش» شما مفید هستند.

طرح‌واره ورودی notificationLog به‌صورت زیر است:

دارایی شرح
requestId شناسه درخواست اعلان.
structName نام ساختار اعلان، مثل «ObjectDetection».
status وضعیت اعلان را نشان می‌دهد.

فیلد status شامل وضعیت‌های مختلفی است که ممکن است نشان‌دهنده خطا در بار داده اعلان باشد. برخی‌از این موارد ممکن است فقط در «کنش‌هایی» دردسترس باشند که به مرحله تولید نرسیده‌اند.

نمونه وضعیت‌ها عبارت‌اند از:

وضعیت شرح
EVENT_ID_MISSING نشان می‌دهد که فیلد الزامی eventId وجود ندارد.
PRIORITY_MISSING نشان می‌دهد که فیلد priority وجود ندارد.
NOTIFICATION_SUPPORTED_BY_AGENT_FALSE نشان می‌دهد که ویژگی notificationSupportedByAgent دستگاه اطلاع‌دهنده ارائه‌شده در SYNC نادرست است.
NOTIFICATION_ENABLED_BY_USER_FALSE نشان می‌دهد که کاربر اعلان‌ها را در دستگاه اطلاع‌رسانی در GHA فعال نکرده است. این وضعیت فقط در ادغام‌هایی که برای تولید راه‌اندازی نشده‌اند دردسترس است.
NOTIFYING_DEVICE_NOT_IN_STRUCTURE نشان می‌دهد که کاربر دستگاه اعلان‌کننده را به خانه/ساختاری اختصاص نداده است. این وضعیت فقط در ادغام‌هایی دردسترس است که برای تولید راه‌اندازی نشده‌اند.

علاوه‌بر این وضعیت‌های عمومی که می‌تواند برای همه اعلان‌ها اعمال شود، فیلد status ممکن است شامل وضعیت‌های مختص ویژگی نیز باشد (برای مثال، OBJECT_DETECTION_DETECTION_TIMESTAMP_MISSING).