การแจ้งเตือนสำหรับการดำเนินการในบ้านอัจฉริยะ

การแจ้งเตือนอนุญาตให้การดำเนินการ smart home ใช้ Google Assistantเพื่อสื่อสารกับผู้ใช้เกี่ยวกับ เหตุการณ์หรือการเปลี่ยนแปลงที่เกี่ยวข้องกับอุปกรณ์ คุณสามารถใช้การแจ้งเตือนเพื่อแจ้งเตือน เหตุการณ์ในอุปกรณ์อย่างทันท่วงที เช่น เมื่อมีคนอยู่ที่หน้าประตู หรือ รายงานการเปลี่ยนแปลงสถานะของอุปกรณ์ที่ขอ เช่น เมื่อกลอนประตู มีส่วนร่วมได้สำเร็จหรือติดแฮชแท็ก

การดำเนินการ smart home สามารถส่งประเภทของ การแจ้งเตือนไปยังผู้ใช้:

  • การแจ้งเตือนเชิงรุก: แจ้งเตือนผู้ใช้ smart home เหตุการณ์ในอุปกรณ์ที่ไม่มีคำขอจากผู้ใช้ก่อนหน้าไปยังอุปกรณ์ เช่น เสียงกริ่งประตู

  • การตอบกลับสำหรับการติดตามผล: การยืนยันคำขอคำสั่งของอุปกรณ์ สำเร็จหรือล้มเหลว เช่น เมื่อล็อกประตู ใช้การแจ้งเตือนเหล่านี้เพื่อ คำสั่งของอุปกรณ์ที่ต้องใช้เวลาในการดำเนินการ คำตอบเพื่อติดตามผลเท่านั้น รองรับเมื่อมีการส่งคำขอคำสั่งของอุปกรณ์จากลำโพงอัจฉริยะและ Smart จอแสดงผล

Assistant จะแสดงการแจ้งเตือนเหล่านี้แก่ผู้ใช้เป็น ประกาศเกี่ยวกับลำโพงอัจฉริยะและจออัจฉริยะ การแจ้งเตือนเชิงรุก จะปิดอยู่โดยค่าเริ่มต้น ผู้ใช้สามารถเปิดหรือปิดการแจ้งเตือนเชิงรุกทั้งหมดจาก Google Home app (GHA)

เหตุการณ์ที่ทำให้เกิดการแจ้งเตือน

เมื่อเกิดเหตุการณ์ในอุปกรณ์ การดำเนินการที่คุณจะดำเนินการตามเป้าหมายจะส่งคำขอการแจ้งเตือน Google โดยอัตโนมัติ ลักษณะของอุปกรณ์ที่ดำเนินการsmart home จะกําหนดประเภทเหตุการณ์การแจ้งเตือนที่มีอยู่ และ ที่คุณสามารถรวมไว้ในการแจ้งเตือนเหล่านั้นได้

ลักษณะต่อไปนี้รองรับการแจ้งเตือนเชิงรุก

ลักษณะเฉพาะ กิจกรรม
ObjectDetection วัตถุที่อุปกรณ์ตรวจจับ เช่น เมื่อใบหน้าที่รู้จัก ตรวจพบที่ประตู ตัวอย่างเช่น "Alice and Bob รออยู่ที่ประตูหน้า"
RunCycle อุปกรณ์เสร็จสมบูรณ์ 1 รอบ ตัวอย่างเช่น "วงจรของเครื่องซักผ้า เสร็จสมบูรณ์แล้ว"
SensorState อุปกรณ์ตรวจหาสถานะเซ็นเซอร์ที่รองรับ ดังตัวอย่างต่อไปนี้ "ตัวตรวจจับควันตรวจพบควัน"

ลักษณะต่อไปนี้รองรับการตอบกลับการติดตามผล

ลักษณะเฉพาะ กิจกรรม
LockUnlock การเปลี่ยนแปลงสถานะเสร็จสมบูรณ์และสถานะหลังการดำเนินการของ คำสั่งของอุปกรณ์ action.devices.commands.LockUnlock สำหรับ เช่น "ประตูหน้าล็อกอยู่" หรือ "ประตูหน้าติดอยู่"
NetworkControl การเปลี่ยนแปลงสถานะเสร็จสมบูรณ์และสถานะหลังการดำเนินการของ คำสั่งของอุปกรณ์ action.devices.commands.TestNetworkSpeed สำหรับ ตัวอย่าง: "การทดสอบความเร็วเครือข่ายของคุณเสร็จแล้ว ความเร็วในการดาวน์โหลดอยู่ที่ เราเตอร์ออฟฟิศตอนนี้อยู่ที่ 80.2 Kbps และความเร็วในการอัปโหลดอยู่ที่ 9.3 Kbps"
OpenClose การเปลี่ยนแปลงสถานะเสร็จสมบูรณ์และสถานะหลังการดำเนินการของ คำสั่งของอุปกรณ์ action.devices.commands.OpenClose สำหรับ เช่น "ประตูหน้าเปิดอยู่" หรือ "ประตูหน้าเปิดไม่ได้"

อุปกรณ์ทุกประเภทรองรับการแจ้งเตือนสำหรับลักษณะที่เกี่ยวข้อง

สร้างการแจ้งเตือนสำหรับการดำเนินการในสมาร์ทโฮม

เพิ่มการแจ้งเตือนลงในการดำเนินการ smart home ในระยะต่อไปนี้

  1. แจ้งให้ Google ทราบหากเปิดใช้การแจ้งเตือนจาก แอปจัดการอุปกรณ์ smart home หากผู้ใช้เปิดหรือปิดการแจ้งเตือน ในแอป ให้ส่งคำขอ SYNC เพื่อแจ้ง Google เกี่ยวกับการเปลี่ยนแปลงอุปกรณ์
  2. เมื่อเกิดการเปลี่ยนแปลงสถานะหรือเหตุการณ์ที่เกี่ยวข้องในอุปกรณ์ซึ่งทริกเกอร์ ให้ส่งคำขอการแจ้งเตือนโดยโทรไปที่ API reportStateAndNotification Report State รายการ หาก มีการเปลี่ยนแปลงสถานะอุปกรณ์ คุณสามารถส่งทั้งสถานะและเพย์โหลดการแจ้งเตือนได้ ร่วมกันใน Report State และการโทรเพื่อแจ้งเตือน

ส่วนต่อไปนี้จะกล่าวถึงขั้นตอนเหล่านี้อย่างละเอียด

ระบุว่ามีการเปิดใช้การแจ้งเตือนในแอปหรือไม่

ผู้ใช้สามารถเลือกได้ว่าต้องการรับการแจ้งเตือนเชิงรุกโดย การเปิดใช้ฟีเจอร์นี้ใน GHA ในแอปสำหรับ smart home คุณยังเพิ่มความสามารถ ผู้ใช้สลับการแจ้งเตือนจากอุปกรณ์ได้อย่างชัดเจน เช่น จาก การตั้งค่าแอปของคุณ

บอก Google ว่ามีการเปิดใช้การแจ้งเตือนสำหรับอุปกรณ์โดย การขอซิงค์ เพื่ออัปเดตข้อมูลอุปกรณ์ คุณควรส่งคำขอ SYNC เช่นนี้ทุกครั้ง ผู้ใช้เปลี่ยนการตั้งค่านี้ในแอปของคุณ

ในการตอบกลับ SYNC ให้ส่งอัปเดตอย่างใดอย่างหนึ่งต่อไปนี้

  • ผู้ใช้เปิด/ปิดการแจ้งเตือนในแอปของอุปกรณ์อย่างชัดแจ้ง หรือหากคุณ ไม่มีตัวเลือกการเปิด/ปิด ให้ตั้งค่า devices.notificationSupportedByAgentพร็อพเพอร์ตี้ไปยัง true
  • หากผู้ใช้ปิดการแจ้งเตือนอย่างชัดแจ้งในแอปของอุปกรณ์ ให้ตั้งค่า devices.notificationSupportedByAgentพร็อพเพอร์ตี้ไปยัง false

ข้อมูลโค้ดต่อไปนี้จะแสดงตัวอย่างวิธีตั้งค่าการตอบสนองการซิงค์

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

ส่งคำขอการแจ้งเตือนไปยัง Google

หากต้องการทริกเกอร์การแจ้งเตือนใน Assistant Fulfillment จะส่งเพย์โหลดการแจ้งเตือนไปยัง Google Home Graph ผ่านReport State และการเรียก API การแจ้งเตือน

เปิดใช้ 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. สำหรับประเภทคีย์ ให้เลือกตัวเลือก JSON

  7. คลิกสร้าง ไฟล์ JSON ที่มีคีย์ของคุณ ไปยังคอมพิวเตอร์ของคุณ

ส่งการแจ้งเตือน

เรียกใช้คำขอการแจ้งเตือนโดยใช้ devices.reportStateAndNotification API คำขอ JSON ของคุณต้องมี eventId ซึ่งเป็นรหัสที่ไม่ซ้ำกันที่สร้างขึ้นโดย แพลตฟอร์มของคุณสําหรับเหตุการณ์ที่ทริกเกอร์การแจ้งเตือน eventId ควร เป็นรหัสแบบสุ่มที่แตกต่างกันทุกครั้งที่คุณส่งคำขอการแจ้งเตือน

ในออบเจ็กต์ notifications ที่คุณส่งในการเรียก API ให้ใส่ priority ซึ่งกำหนดวิธีแสดงการแจ้งเตือน บัญชี ออบเจ็กต์ notifications รายการอาจมีช่องข้อมูลที่แตกต่างกันโดยขึ้นอยู่กับอุปกรณ์ ลักษณะ

ใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อตั้งค่าเพย์โหลดและเรียกใช้ API

ส่งเปย์โหลดการแจ้งเตือนเชิงรุก

หากต้องการเรียก API ให้เลือกตัวเลือกจากแท็บใดแท็บหนึ่งต่อไปนี้

HTTP

Home Graph API มีปลายทาง HTTP

  1. ใช้ไฟล์ JSON ของบัญชีบริการที่ดาวน์โหลดมาเพื่อสร้างเว็บ JSON โทเค็น (JWT) สำหรับข้อมูลเพิ่มเติม โปรดดู การตรวจสอบสิทธิ์โดยใช้บัญชีบริการ
  2. รับโทเค็นเพื่อการเข้าถึง OAuth 2.0 พร้อม กำลังใช้ https://www.googleapis.com/auth/homegraph ขอบเขต oauth2l:
  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

ไคลเอ็นต์ Node.js ของ Google APIs ให้การเชื่อมโยงสำหรับ 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
              }
            }
          }
        }
      }
    }
  }
});
    

Java

ไลบรารีของไคลเอ็นต์ 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 ที่ถูกต้อง ที่ระบุระหว่างคำขอ Intent EXECUTE ต้องใช้ followUpToken ภายใน 5 นาทีเพื่อการใช้งานที่ถูกต้องและเพื่อเชื่อมโยงคำตอบอย่างเหมาะสม ด้วยคำขอเดิม

ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่างเพย์โหลดคำขอ 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. รับโทเค็นเพื่อการเข้าถึง OAuth 2.0 พร้อม กำลังใช้ https://www.googleapis.com/auth/homegraph ขอบเขต oauth2l:
  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

ไคลเอ็นต์ Node.js ของ Google APIs ให้การเชื่อมโยงสำหรับ 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,
              }
            }
          }
        }
      }
    }
  }
});
    

Java

ไลบรารีของไคลเอ็นต์ 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 Logging บันทึกเหล่านี้มีประโยชน์สำหรับการทดสอบและการรักษาคุณภาพการแจ้งเตือนภายใน การดำเนินการของคุณ

สคีมาของรายการ 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)