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

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

การผสานรวม Cloud-to-cloud สามารถส่งการแจ้งเตือนประเภทต่อไปนี้ไปยังผู้ใช้

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

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

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

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

เมื่อเหตุการณ์ในอุปกรณ์เกิดขึ้น ฝ่ายดำเนินการของคุณจะส่งคำขอการแจ้งเตือนไปยัง Google ลักษณะของอุปกรณ์ที่Cloud-to-cloudการผสานรวมรองรับจะกำหนดประเภทเหตุการณ์การแจ้งเตือนที่ใช้ได้และข้อมูลที่คุณรวมไว้ในการแจ้งเตือนเหล่านั้น

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

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

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

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

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

สร้างการแจ้งเตือนสำหรับการผสานรวมระบบคลาวด์กับระบบคลาวด์

เพิ่มการแจ้งเตือนในการผสานรวม Cloud-to-cloud ในระยะต่างๆ ดังนี้

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

ส่วนต่อไปนี้จะอธิบายขั้นตอนเหล่านี้โดยละเอียด

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

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

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

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

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

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

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

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

หากต้องการเรียกให้แสดงการแจ้งเตือนใน Assistant การดำเนินการตามคำสั่งซื้อจะส่งเพย์โหลดการแจ้งเตือนไปยัง Google Home Graph ผ่านการเรียกใช้ Report State และ Notification 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 Web Token (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 และ Notification มีดังนี้
  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 และ Notification JSON รวมถึงโทเค็นในคําขอ HTTP POST ไปยังปลายทาง Graph ของ Google Home ต่อไปนี้เป็นตัวอย่างวิธีส่งคำขอในบรรทัดคำสั่งโดยใช้ 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. รับคําจํากัดความบริการ Protocol Buffers สําหรับ 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 Web Token (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 และ Notification มีดังนี้
  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 และ Notification JSON รวมถึงโทเค็นในคําขอ HTTP POST ไปยังปลายทาง Graph ของ Google Home ต่อไปนี้เป็นตัวอย่างวิธีส่งคำขอในบรรทัดคำสั่งโดยใช้ 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. รับคําจํากัดความบริการ Protocol Buffers สําหรับ 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);
    

การบันทึก

การแจ้งเตือนรองรับการบันทึกเหตุการณ์ตามที่ระบุไว้ในการบันทึกในระบบคลาวด์สําหรับการทํางานแบบระบบคลาวด์ต่อระบบคลาวด์ บันทึกเหล่านี้มีประโยชน์สำหรับการทดสอบและรักษาคุณภาพการแจ้งเตือนภายในการดำเนินการ

สคีมาของรายการ notificationLog มีดังนี้

พร็อพเพอร์ตี้ คำอธิบาย
requestId รหัสคำขอรับการแจ้งเตือน
structName ชื่อของโครงสร้างการแจ้งเตือน เช่น "ObjectDetection"
status ระบุสถานะของการแจ้งเตือน

ฟิลด์ status มีสถานะต่างๆ ที่อาจบ่งชี้ข้อผิดพลาดในเพย์โหลดการแจ้งเตือน การดำเนินการบางอย่างอาจใช้ได้เฉพาะกับ Actions ที่ยังไม่ได้เปิดตัวในเวอร์ชันที่ใช้งานจริง

ตัวอย่างสถานะมีดังนี้

สถานะ คำอธิบาย
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) หากมี