คู่มือนักพัฒนา & API

1. เริ่มต้นใช้งาน

1.1 การเตรียมตัว

ขั้นตอนที่ 1 โปรดตรวจสอบว่าเกตเวย์เปิดเครื่องและทำงานตามปกติ

ขั้นตอนที่ 2 ตรวจสอบให้แน่ใจว่าเกตเวย์และพีซีเชื่อมต่อกับ LAN เดียวกัน จากนั้นป้อน URL ของ CUBE ในเบราว์เซอร์ของคุณ

หมายเหตุ: หากคุณมีเกตเวย์หลายเครื่อง คุณสามารถรับที่อยู่ IP ที่เกี่ยวข้องเพื่อเข้าถึงเกตเวย์ที่ระบุได้ด้วยสองวิธีด้านล่าง

  1. เข้าสู่ระบบเราเตอร์ไร้สายของคุณและตรวจสอบที่อยู่ IP ของเกตเวย์ใน DHCP

  2. CUBE รองรับการค้นหาแบบท้องถิ่นผ่าน mDNS

1.2 การเริ่มต้น

  • เรียกอินเทอร์เฟซ [Access Token] แล้วได้รับการตอบกลับข้อผิดพลาด แจ้งให้คลิก <เสร็จสิ้น> โปรดทราบว่าหลังจากกดแล้ว การเข้าถึงอินเทอร์เฟซจะมีผลไม่เกิน 5 นาที

// คำขอ
curl --location --request GET 'http://<ip address>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'

// การตอบกลับ
{
  "error": 401,
  "data": {},
  "message": "link button not pressed" 
}
  • คลิก <เสร็จสิ้น> และเรียกอินเทอร์เฟซ [Access Token] อีกครั้ง การตอบกลับสำเร็จและได้รับโทเค็น

  • ยืนยันโทเค็น เรียกอินเทอร์เฟซ [Get Device List] การตอบกลับสำเร็จและได้รับรายการอุปกรณ์

  • วิธีรับโทเค็นการเข้าถึง CUBE: หลังจากเรียกอินเทอร์เฟซ [Access Token] หน้าคอนโซลเว็บของ CUBE จะมีป๊อปอัพแจ้งให้ผู้ใช้ยืนยันการรับข้อมูลรับรองการเรียกอินเทอร์เฟซ

  • หมายเหตุ: หากคุณเปิดหน้าคอนโซลเว็บ CUBE มากกว่าหนึ่งหน้า ป๊อปอัพยืนยันจะปรากฏบนหลายหน้าคอนโซลพร้อมกัน และป๊อปอัพของหน้าคอนโซลเว็บอื่นจะถูกปิดหลังจากคลิกยืนยันบนหนึ่งในหน้าคอนโซลเว็บ

2. แนวคิดหลัก

2.1 ที่อยู่ของอินเทอร์เฟซสำหรับการพัฒนา

อินเทอร์เฟซ Web API ของเกตเวย์มีสองวิธีการเข้าถึง (ตาม IP หรือชื่อโดเมน) โดยปกติรากทางคือ /open-api/V2/rest/< specific function module >

// การเข้าถึงทาง IP http:///open-api/V2/rest/bridge

// การเข้าถึงทางชื่อโดเมน http:///open-api/V2/rest/bridge

2.2 หมวดหมู่การแสดงผลอุปกรณ์ & ความสามารถ

  • **หมวดหมู่การแสดงผลของอุปกรณ์ (DisplayCategory). **หมวดหมู่การแสดงผลของอุปกรณ์ใช้ระบุหมวดหมู่เฉพาะของอุปกรณ์ เช่น สวิตช์ ปลั๊ก หลอดไฟ เป็นต้น ข้อมูลนี้จะกำหนดผลการแสดง UI ของอุปกรณ์ในเกตเวย์.

  • **ความสามารถของอุปกรณ์. **ความสามารถของอุปกรณ์ใช้เพื่ออธิบายฟังก์ชันย่อยเฉพาะของอุปกรณ์ เช่น การควบคุมพลังงาน การควบคุมความสว่าง การควบคุมอุณหภูมิสี เป็นต้น อุปกรณ์หนึ่งเครื่องสามารถรองรับความสามารถได้ 1 หรือหลายรายการ.

    • capability: อธิบายชื่อความสามารถ ซึ่งต้องไม่ซ้ำกันทั่วโลกและเป็นประเภทสตริง คำภาษาอังกฤษหลายคำควรคั่นด้วยยัติภังค์ ("-") ตัวอย่างเช่น: "thermostat-target-setpoint".

    • name: อธิบายหมวดหมู่ภายใต้ความสามารถ ซึ่งเป็นประเภทสตริงเช่นกัน คำภาษาอังกฤษหลายคำควรคั่นด้วยยัติภังค์ ("-") ตัวอย่างเช่น: "auto-mode", "manual-mode".

    • permission: อธิบายสิทธิ์ที่เกี่ยวข้องกับความสามารถ ประเภทเป็นสตริง จัดรูปแบบเป็นรหัสเลขฐานสอง 8421 ตัวอย่างได้แก่:

      • สามารถควบคุมอุปกรณ์ได้: "1000"

      • สามารถปรับแต่งอุปกรณ์ได้: "0010"

      • สามารถควบคุมและปรับแต่งอุปกรณ์ได้: "1010"

      • สามารถควบคุมและรายงานอุปกรณ์ได้: "1100"

ความหมายของแต่ละบิต จากขวาไปซ้าย มีดังนี้: ⅰ. บิต 0: อนุญาตให้สอบถามอุปกรณ์ ⅱ. บิต 1: อนุญาตให้ปรับแต่งอุปกรณ์ ⅲ. บิต 2: อนุญาตให้อุปกรณ์รายงานข้อมูล ⅳ. บิต 3: อนุญาตให้ควบคุมอุปกรณ์

settings: อธิบายรายการการตั้งค่าสำหรับความสามารถ ซึ่งเป็นประเภทออบเจ็กต์และรวมคำอธิบายของแต่ละรายการการตั้งค่า ⅰ. key: อธิบายชื่อรายการการตั้งค่า ซึ่งเป็นประเภทสตริง คำภาษาอังกฤษหลายคำควรเขียนแบบ camelCase ตัวอย่างเช่น: "temperatureUnit". ⅱ. value: อธิบายเนื้อหาของรายการการตั้งค่า ข้อกำหนดเฉพาะระบุไว้ในตารางด้านล่าง

แอตทริบิวต์
ประเภท
ตัวเลือก
คำอธิบาย

permission

string

N

อธิบายสิทธิ์สำหรับรายการการตั้งค่า

ค่าที่เป็นไปได้ (ตัวเลือก):

  • อนุญาตให้แก้ไขรายการการตั้งค่านี้: "10"

  • อนุญาตให้ดูรายการการตั้งค่านี้: "01"

  • อนุญาตทั้งการแก้ไขและการดูรายการการตั้งค่านี้: "11"

คำอธิบายบิต:

  1. บิต 0: อนุญาตให้ดูรายการการตั้งค่านี้

  2. บิต 1: อนุญาตให้แก้ไขรายการการตั้งค่า | | type | string | N | อธิบายประเภทข้อมูลของค่ารายการการตั้งค่า ค่าที่เป็นไปได้ (ตัวเลือก):

  • "enum"

  • "numeric"

  • "object"

  • "boolean"

  • "string"

คำแนะนำเฉพาะตามประเภท:

  1. เมื่อ **type = enum**:

    • จะส่งเสียงทันที (ถ้ารองรับ) value ฟิลด์ (อธิบายค่ารายการการตั้งค่า) จำเป็นถ้า permission อนุญาตให้แก้ไข ("10" หรือ "11").

    • จะส่งเสียงทันที (ถ้ารองรับ) default (อธิบายค่ามาตรฐานของรายการการตั้งค่า) และ values (อธิบายค่าที่เลือกได้สำหรับรายการการตั้งค่า) ฟิลด์เป็นแบบไม่บังคับ

  2. เมื่อ **type = numeric**:

    • จะส่งเสียงทันที (ถ้ารองรับ) value ฟิลด์จำเป็นถ้า permission อนุญาตให้แก้ไข ("10" หรือ "11").

    • ฟิลด์ต่อไปนี้เป็นแบบไม่บังคับ:

      • min (อธิบายค่าต่ำสุดของรายการการตั้งค่า)

      • max (อธิบายค่าสูงสุดของรายการการตั้งค่า)

      • step (อธิบายค่าก้าวสำหรับรายการการตั้งค่า)

      • precision (อธิบายความละเอียด)

      • unit (อธิบายหน่วยของรายการการตั้งค่า)

      • default (อธิบายค่าเริ่มต้น)

  3. เมื่อ **type = object**:

    • จะส่งเสียงทันที (ถ้ารองรับ) value ฟิลด์จำเป็นถ้า permission อนุญาตให้แก้ไข ("10" หรือ "11").

    • จะส่งเสียงทันที (ถ้ารองรับ) default ฟิลด์เป็นแบบไม่บังคับ

  4. เมื่อ **type = boolean**:

    • จะส่งเสียงทันที (ถ้ารองรับ) value ฟิลด์จำเป็นถ้า permission อนุญาตให้แก้ไข ("10" หรือ "11").

    • จะส่งเสียงทันที (ถ้ารองรับ) default ฟิลด์เป็นแบบไม่บังคับ

  5. เมื่อ **type = string**:

    • จะส่งเสียงทันที (ถ้ารองรับ) value ฟิลด์จำเป็นถ้า permission อนุญาตให้แก้ไข ("10" หรือ "11").

    • จะส่งเสียงทันที (ถ้ารองรับ) default ฟิลด์เป็นแบบไม่บังคับ. |

3. Web API

ประเภทของข้อมูล

ประเภท
คำอธิบาย

string

ประเภทข้อมูลสตริง เข้ารหัสเป็น UTF8

int

ประเภทข้อมูลจำนวนเต็ม

object

ประเภทข้อมูลออบเจ็กต์ ออบเจ็กต์ที่เป็นไปตาม JSON

string[]

อาร์เรย์ของสตริง

int[]

อาร์เรย์ของจำนวนเต็ม

object[]

อาร์เรย์ของออบเจ็กต์

bool

บูลีน

date

สตริงเวลา รูปแบบสตริงเป็น ISO (รูปแบบขยาย ISO 8601): YYYY-MM-DDTHH:mm:ss.sssZ เขตเวลาเป็น UTC เสมอ และระบุด้วยคำต่อท้าย "Z"

ผลลัพธ์การตอบกลับทั่วไป

แอตทริบิวต์
ประเภท
ตัวเลือก
คำอธิบาย

error

int

N

รหัสข้อผิดพลาด:

0: สำเร็จ

400: พารามิเตอร์ผิดพลาด

401: การตรวจสอบสิทธิ์ล้มเหลว

500: ข้อยกเว้นเซิร์ฟเวอร์

data

object

N

ตัวเนื้อหาข้อมูลการตอบกลับ

message

string

N

คำอธิบายการตอบกลับ:

เมื่อ error เท่ากับ 0 เนื้อหาคือ success

เมื่อ error ไม่เท่ากับ 0 จะเป็นสตริงที่ไม่ว่าง และเนื้อหาคือคำอธิบายข้อผิดพลาด

ตัวอย่างการตอบกลับ:

รายการทรัพยากร

ประเภท
คำอธิบาย

เสียงที่รองรับ

- alert1 (เสียงเตือน 1)

  • alert2 (เสียงเตือน 2)

  • alert3 (เสียงเตือน 3)

  • alert4 (เสียงเตือน 4)

  • alert5 (เสียงเตือน 5)

  • doorbell1 (เสียงกริ่ง 1)

  • doorbell2 (เสียงกริ่ง 2)

  • doorbell3 (เสียงกริ่ง 3)

  • doorbell4 (เสียงกริ่ง 4)

  • doorbell5 (เสียงกริ่ง 5)

  • alarm1 (เสียงสัญญาณเตือน 1)

  • alarm2 (เสียงสัญญาณเตือน 2)

  • alarm3 (เสียงสัญญาณเตือน 3)

  • alarm4 (เสียงสัญญาณเตือน 4)

  • alarm5 (เสียงสัญญาณเตือน 5) | | รองรับ deep | - bootComplete (การเริ่มระบบเสร็จสิ้น)

  • networkConnected (เชื่อมต่อเครือข่ายแล้ว)

  • networkDisconnected (การเชื่อมต่อเครือข่ายขาด)

  • systemShutdown (ปิดระบบ) -deviceDiscovered (ค้นพบอุปกรณ์)

  • system Armed (ระบบตั้งสถานะติดอาวุธเปิดใช้งาน)

  • system Disarmed (ระบบตั้งสถานะติดอาวุธปิดใช้งาน)

  • factoryReset (รีเซ็ตอุปกรณ์) |

3.1 ฟังก์ชันของเกตเวย์

a. Access Token

อนุญาตให้ผู้ใช้ขอโทเค็นการเข้าถึง

  • หมายเหตุ: โทเค็นจะถูกล้างหลังจากรีเซ็ตอุปกรณ์

  • หมายเหตุ: หลังจากได้รับโทเค็น คุณต้องกดปุ่มอีกครั้งเพื่อรับโทเค็นใหม่สำเร็จ

:::tips

  • URL/open-api/V2/rest/bridge/access_token

  • วิธีการGET

  • ส่วนหัว

    • Content-Type: application/json ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

app_name

string

Y

คำอธิบายชื่อแอปพลิเคชัน

การตอบกลับข้อมูลสำเร็จ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

token

string

N

โทเค็นการเข้าถึงอินเทอร์เฟซ ใช้งานได้นาน โปรดบันทึกไว้

app_name

string

Y

คำอธิบายชื่อแอปพลิเคชัน

:::tips เงื่อนไข: ผู้ใช้กด < command key > และเข้าถึงอินเทอร์เฟซนี้ภายในเวลาที่มีผล **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

การตอบกลับข้อมูลล้มเหลว: ออบเจ็กต์ว่างเปล่า :::tips เงื่อนไข:ผู้ใช้ยังไม่ได้กด < command key > หรือเวลาที่มีผลหมดอายุ **รหัสสถานะ: ** 200 OK ::: ตัวอย่างการตอบกลับ:

b. ดึงสถานะของเกตเวย์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตได้รับสถานะของเกตเวย์ผ่านอินเทอร์เฟซนี้ :::tips

  • URL/open-api/V2/rest/bridge/runtime

  • วิธีการGET

  • ส่วนหัว

    • Content-Type: application/json

    • Autorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี การตอบกลับข้อมูลสำเร็จ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

ram_used

int

N

เปอร์เซ็นต์การใช้แรม [0-100]

cpu_used

int

N

เปอร์เซ็นต์การใช้ CPU [0-100]

power_up_time

date

N

เวลาที่เปิดเครื่องล่าสุด

cpu_temp

int

N

อุณหภูมิ CPU:

หน่วย: เซลเซียส

cpu_temp_unit

string

N

หน่วยอุณหภูมิ CPU:

ตัวเลือก

ค่าที่เป็นไปได้:'c', 'f'

sd_card_used

int

Y

การใช้งานการ์ด SD (เปอร์เซ็นต์):

ช่วง:[0-100] มีความละเอียดทศนิยมหนึ่งตำแหน่ง

*หมายเหตุ: หากไม่ได้ใส่การ์ด SD หรือไม่ได้ฟอร์แมต ค่าจะเป็นค่าว่าง

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

c. การตั้งค่าเกตเวย์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตตั้งค่าเกตเวย์ผ่านอินเทอร์เฟซนี้ :::tips

  • URL/open-api/V2/rest/bridge/config

  • วิธีการPUT

  • ส่วนหัว

    • Content-Type: application/json

    • Autorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

volume

int

Y

ระดับเสียงระบบ [0-100]

การตอบกลับข้อมูลสำเร็จ: ออบเจ็กต์ว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

d. ดึงข้อมูลเกตเวย์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตดึงข้อมูลเกตเวย์ผ่านอินเทอร์เฟซนี้ :::tips

  • URL/open-api/V2/rest/bridge

  • วิธีการGET

  • ส่วนหัว

    • Content-Type: application/json ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

ip

string

N

ที่อยู่ ip

mac

string

N

ที่อยู่ mac

domain

string

Y

โดเมนบริการของเกตเวย์

fw_version

string

N

เวอร์ชันเฟิร์มแวร์

name

string

N

ชื่ออุปกรณ์

การตอบกลับข้อมูลสำเร็จ: ออบเจ็กต์ว่าง {} :::tips เงื่อนไข: ไม่มี **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

e. ปิดเสียงเกตเวย์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตปิดเสียงเกตเวย์ผ่านอินเทอร์เฟซนี้ :::tips

  • URL/open-api/v2/rest/bridge/mute

  • วิธีการPUT

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี การตอบกลับข้อมูลสำเร็จ: ออบเจ็กต์ว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

f. ยกเลิกการปิดเสียงเกตเวย์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตยกเลิกการปิดเสียงเกตเวย์ผ่านอินเทอร์เฟซนี้ :::tips

  • URL/open-api/v2/rest/bridge/unmute

  • วิธีการPUT

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี การตอบกลับข้อมูลสำเร็จ: ออบเจ็กต์ว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

g. ยกเลิกสัญญาณเตือนของเกตเวย์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตปิดสถานะเสียงเตือนบนเกตเวย์ผ่านอินเทอร์เฟซนี้ :::tips

  • URL/open-api/v2/rest/bridge/cancel_alarm

  • วิธีการPUT

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี การตอบกลับข้อมูลสำเร็จ: ออบเจ็กต์ว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

3.2 ฟังก์ชันฮาร์ดแวร์

a. รีสตาร์ทเกตเวย์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตรีสตาร์ทเกตเวย์ผ่านอินเทอร์เฟซนี้ :::tips

  • URL/open-api/V2/rest/hardware/reboot

  • วิธีการPOST

  • ส่วนหัว

    • Content-Type: application/json

    • Autorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี การตอบกลับข้อมูลสำเร็จ: ออบเจ็กต์ว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK :::

b. ควบคุมลำโพง

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตควบคุมลำโพงผ่านอินเทอร์เฟซนี้ :::tips

  • URL/open-api/V2/rest/hardware/speaker

  • วิธีการPOST

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

type

string

N

พารามิเตอร์ทางเลือก: 1.play_sound (เล่นเสียง) 2.play_beep (เล่นเสียงบี๊ป)

sound

SoundObject

Y (N หาก type เป็น play_sound.)

เสียง

beep

BeepObject

Y (N หาก type เป็น play_beep.)

เสียงบี๊ป

SoundObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อเสียง ค่าที่รองรับสามารถตรวจสอบได้ใน [Resource List - Supported sound]

volume

int

N

ระดับเสียงของเสียง [0-100]

countdown

int

N

ระยะเวลาที่ลำโพงเล่นเสียง และจะหยุดเล่นโดยอัตโนมัติเมื่อครบเวลา หน่วย: วินาที [0,1799]

BeepObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อ deep ค่าที่รองรับสามารถตรวจสอบได้ใน [Resource List - Supported deep]

volume

int

N

ระดับเสียง deep [0-100]

การตอบกลับข้อมูลสำเร็จ: ออบเจ็กต์ว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: ** 200 OK ::: ตัวอย่างการตอบกลับ:

3.3 ฟังก์ชันการจัดการอุปกรณ์

a. ประเภทอุปกรณ์ที่รองรับ

ประเภทอุปกรณ์

ค่า

รุ่น iHost

ปลั๊ก

plug

≥ 2.1.0

สวิตช์

switch

≥ 2.1.0

หลอดไฟ

light

≥ 2.1.0

ผ้าม่าน

curtain

≥ 2.1.0

เซ็นเซอร์ประตู/หน้าต่าง

contactSensor

≥ 2.1.0

เซ็นเซอร์การเคลื่อนไหว

motionSensor

≥ 2.1.0

เซ็นเซอร์อุณหภูมิ

temperatureSensor

≥ 2.1.0

เซ็นเซอร์ความชื้น

humiditySensor

≥ 2.1.0

เซ็นเซอร์อุณหภูมิและความชื้น

temperatureAndHumiditySensor

≥ 2.1.0

เครื่องตรวจจับการรั่วของน้ำ

waterLeakDetector

≥ 2.1.0

เครื่องตรวจจับควัน

smokeDetector

≥ 2.1.0

ปุ่มไร้สาย

button

≥ 2.1.0

กล้อง

camera

≥ 2.1.0

เซ็นเซอร์ทั่วไป

sensor

≥ 2.1.0

เซ็นเซอร์ทั่วไป

sensor

≥ 2.1.0

โคมพัดลม

fanLight

≥ 2.1.0

เครื่องปรับอากาศ

airConditioner

≥ 2.1.0

พัดลม

fan

≥ 2.1.0

เทอร์โมสตัท

thermostat

≥ 2.1.0

b. ความสามารถของอุปกรณ์ที่รองรับ

สวิตช์พลังงาน (power):

ตัวอย่างการประกาศความสามารถ:

แอตทริบิวสถานะ:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

เปิด:

ปิด:

สวิตช์ช่อง (สลับ):

ตัวอย่างการประกาศความสามารถ:

ตัวอย่างส่วนประกอบเดี่ยว:

ตัวอย่างหลายส่วนประกอบ:

แอตทริบิวสถานะ:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

รูปแบบการสลับ:

การนับนิ้วช่อง (toggle-inching):

ตัวอย่างการประกาศความสามารถ:

แอตทริบิวสถานะ

ไม่มี

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม)

ไม่มี

การปรับความสว่าง (brightness):

ตัวอย่างการประกาศความสามารถ:

แอตทริบิวสถานะ:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ตั้งความสว่างเป็น 80% (0 มืดสุด และ 100 สว่างสุด)

การปรับอุณหภูมิสี (color-temperature):

ตัวอย่างการประกาศความสามารถ:

แอตทริบิวสถานะ:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ปรับอุณหภูมิสีเป็น 50%:

การปรับสี (color-rgb):

ตัวอย่างการประกาศความสามารถ:

แอตทริบิวสถานะ:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ตั้งค่าสีเป็นสีม่วง:

การปรับเปอร์เซ็นต์ (percentage):

ตัวอย่างการประกาศความสามารถ:

แอตทริบิวสถานะ:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ปรับเป็น 40%:

การควบคุมมอเตอร์ (motor-control):

ตัวอย่างการประกาศความสามารถ:

แอตทริบิวสถานะ:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

เปิดมอเตอร์:

การกลับทิศทางมอเตอร์ (motor-reverse):

ตัวอย่างการประกาศความสามารถ:

แอตทริบิวสถานะ:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ตั้งมอเตอร์เป็นเดินหน้า:

การปรับเทียบมอเตอร์ (motor-clb)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การรายงานสถานะ):

รายงานสถานะมอเตอร์กำลังปรับเทียบ:

สถานะการเปิดเครื่อง (startup)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ตั้งค่าสถานะพลังงานให้เป็น เปิดเสมอ:


การเปิดใช้งานตื่นตัว (identify)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การรายงานสถานะ & คำสั่งควบคุม):

ตั้งเวลาการเปิดใช้งานตื่นตัว:

รายงานสถานะการเปิดใช้งาน:

สวิตช์สถิติกำลังไฟแบบเรียลไทม์ (power-consumption)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

เริ่ม/หยุดสถิติเสียเวลาเรียลไทม์:

สอบถามการใช้พลังงานตามช่วงเวลา:

ตอบด้วยผลสถิติเภ within ช่วงเวลา:

โปรโตคอล (การรายงานสถานะ & คำสั่งควบคุม):

เริ่มสถิติเกี่ยวกับเรียลไทม์:

หยุดสถิติเกี่ยวกับเรียลไทม์:

รับการใช้พลังงานในอดีต:

รับการใช้พลังงานแบบเรียลไทม์:

การตรวจจับโหมดอุณหภูมิและความชื้น (thermostat-mode-detect)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

รูปแบบ:

ตัวอย่าง:

โหมดเทอร์โมสตัท (thermostat-mode)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สถานะการฟื้นฟูแบบปรับตัวของเทอร์โมสตัท (thermostat/adaptive-recovery-status)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตั้งค่าอุณหภูมิสู่เป้าหมายของโหมดเทอร์โมสตัท (thermostat-target-setpoint)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับเซนเซอร์ (detect)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับอุณหภูมิ (temperature)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับความชื้น (humidity)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับแบตเตอรี่ (battery)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับปุ่มเดี่ยว (press)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับปุ่มหลายปุ่ม (multi-press)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับความแรงสัญญาณ (rssi)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับการงัดแงะ (tamper-alert)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับระดับแสง (illumination-level)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับแรงดันไฟฟ้า (voltage)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับกระแสไฟฟ้า (electric-current)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับกำลังไฟฟ้า (electric-power)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับความผิดปกติ (fault)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

เครื่องตัดเกณฑ์ (threshold-breaker)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ)

  • ไม่มี

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม)

  • ไม่มี

ฟังก์ชันนิ้ว (inching)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

  • ไม่มี

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

  • ไม่มี

สตรีมกล้อง (camera-stream)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

  • ไม่มี

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

  • ไม่มี

การควบคุมโหมด (mode)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับก๊าซคาร์บอนไดออกไซด์ (co2)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับแสง (illumination)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับควัน (smoke)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับการเปิด/ปิดแม่เหล็กประตู (contact)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ตรวจจับการเคลื่อนไหว (motion)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ตรวจจับการรั่วไหลของน้ำ (water-leak)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สวิตช์ตรวจจับหน้าต่าง (window-detection)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สวิตช์ล็อกเด็ก (child-lock)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สวิตช์ป้องกันแรงลมตรง (anti-direct-blow)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สวิตช์สวิงแนวนอน (horizontal-swing)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สวิตช์สวิงแนวตั้ง (vertical-swing)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สวิตช์โหมดประหยัดพลังงาน (eco)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สลับการกำหนดค่าเริ่มต้น (toggle-startup)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ตรวจจับการถือค้าง (detect-hold)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สลับการระบุ/การเปิดใช้งาน (toggle-identify)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สวิตช์ตรวจจับแรงดันไฟฟ้า (toggle-voltage)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับกระแสไฟฟ้าย่อย (toggle-electric-current)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับกำลังไฟฟ้าย่อย (toggle-electric-power)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สถิติการใช้พลังงานย่อย (toggle-power-consumption)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

เริ่ม/หยุดสถิติเสียเวลาเรียลไทม์:

สอบถามการใช้พลังงานตามช่วงเวลา:

การตอบกลับสำหรับการใช้พลังงานภายในช่วงเวลา:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

เริ่มสถิติเกี่ยวกับเรียลไทม์:

หยุดสถิติเกี่ยวกับเรียลไทม์:

รับการใช้พลังงานในอดีต:

รับการใช้พลังงานแบบเรียลไทม์:

ตัวบ่งชี้คุณภาพลิงก์ (lqi)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตั้งค่าฟังก์ชัน (configuration)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ระบบ (system)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ความชื้น (moisture)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ความกดอากาศ (barometric-pressure)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ความเร็วลม (wind-speed)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ทิศทางลม (wind-direction)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ปริมาณน้ำฝน (rainfall)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ดัชนีรังสียูวี (ultraviolet-index)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ความนำไฟฟ้าไฟฟ้า (electrical-conductivity)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

กำลังส่ง (transmit-power)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับ PM2.5 (pm25)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ดัชนี VOC (voc-index)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตรวจจับก๊าซธรรมชาติ (gas)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

สถานะการทำงานของการชลประทาน (irrigation/work-status)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การรายงานสถานะการทำงาน:

การสืบค้นสถานะการทำงาน:

ผลลัพธ์การสืบค้นสถานะการทำงาน:

โหมดการทำงานการชลประทาน (irrigation/work-mode)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

ตัวควบคุมการชลประทานอัตโนมัติ (irrigation/auto-controller)

ตัวอย่างการประกาศความสามารถ:

แอตทริบิว (สถานะ):

การตั้งเวลาแบบครั้งเดียวหรือแบบซ้ำ:

ปริมาณครั้งเดียวหรือแบบซ้ำ:

โปรโตคอล (การสอบถามสถานะ & คำสั่งควบคุม):

การตั้งเวลาแบบครั้งเดียวหรือแบบซ้ำ:

ปริมาณครั้งเดียวหรือแบบซ้ำ:

โหมดพรีเซ็ตที่รองรับ

**ชื่อโหมด **
**ค่าตัวเลือก **

ระดับพัดลม (fanLevel)

"low"

"medium"

"high"

โหมดเทอร์โมสตัท (thermostatMode)

"auto"

"manual"

โหมดเครื่องปรับอากาศ >= 1.11.0 (airConditionerMode)

"cool"

"heat"

"auto"

"fan"

"dry"

โหมดพัดลม >= 1.11.0 (fanMode)

"normal"

"sleep"

"child"

มุมแนวนอน >= 1.11.0 (horizontalAngle)

"30"

"60"

"90"

"120"

"180"

"360"

มุมแนวตั้ง >= 1.11.0 (verticalAngle)

"30"

"60"

"90"

"120"

"180"

"360"

ค. คำอธิบายแท็ก

  • คีย์พิเศษ toggle ถูกใช้เพื่อกำหนดชื่อของคอมโพเนนต์ย่อยแบบ toggle.

  • คีย์พิเศษ temperature_unit ใช้เพื่อกำหนดหน่วยอุณหภูมิ.

ง. รหัสข้อผิดพลาดพิเศษและคำอธิบาย

รหัสข้อผิดพลาด

คำอธิบาย

รุ่น iHost

110000

ซับอุปกรณ์/กลุ่มที่สอดคล้องกับ id ไม่มีอยู่จริง

≥2.1.0

110001

เกตเวย์อยู่ในสถานะการค้นหาอุปกรณ์ zigbee

≥2.1.0

110002

อุปกรณ์ในกลุ่มไม่มีความสามารถร่วมกัน

≥2.1.0

110003

จำนวนอุปกรณ์ไม่ถูกต้อง

≥2.1.0

110004

จำนวนกลุ่มไม่ถูกต้อง

≥2.1.0

110005

อุปกรณ์ออฟไลน์

≥2.1.0

110006

อัปเดตสถานะอุปกรณ์ล้มเหลว

≥2.1.0

110007

อัปเดตสถานะกลุ่มล้มเหลว

≥2.1.0

110008

ถึงจำนวนกลุ่มสูงสุดที่กำหนด สามารถสร้างได้สูงสุด 50 กลุ่ม

≥2.1.0

110009

ที่อยู่ IP ของอุปกรณ์กล้องไม่ถูกต้อง

≥2.1.0

110010

ข้อผิดพลาดการอนุญาตการเข้าถึงอุปกรณ์กล้อง

≥2.1.0

110011

ที่อยู่สตรีมของอุปกรณ์กล้องผิดพลาด

≥2.1.0

110012

การเข้ารหัสวิดีโอของอุปกรณ์กล้องไม่รองรับ

≥2.1.0

110013

อุปกรณ์มีอยู่แล้ว

≥2.1.0

110014

กล้องไม่รองรับการทำงานแบบออฟไลน์

≥2.1.0

110015

รหัสผ่านบัญชีไม่ตรงกับรหัสผ่านในที่อยู่สตรีม RTSP

≥2.1.0

110016

เกตเวย์อยู่ในสถานะการค้นหากล้อง onvif

≥2.1.0

110017

เกินจำนวนกล้องที่เพิ่มสูงสุด

≥2.1.0

110018

เส้นทางของกล้อง ESP ผิดพลาด

≥2.1.0

110019

การเข้าถึงที่อยู่บริการของอุปกรณ์บุคคลที่สามล้มเหลว

≥2.1.0

จ. ค้นหาซับอุปกรณ์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตเปิดหรือปิดการค้นหาซับอุปกรณ์ของเกตเวย์ผ่านอินเทอร์เฟซนี้

  • 💡หมายเหตุ: ขณะนี้รองรับการค้นหาซับอุปกรณ์ Zigbee เท่านั้น.

  • 💡หมายเหตุ: ซับอุปกรณ์ Zigbee จะถูกเพิ่มโดยอัตโนมัติหลังการค้นหา ไม่จำเป็นต้องใช้หน้าจอ "เพิ่มซับอุปกรณ์ด้วยตนเอง" :::tips

  • URL:/open-api/V2/rest/devices/discovery

  • วิธีการ: PUT

  • ส่วนหัว

    • Content-Type: application/json

    • Autorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

enable

boolean

N

true (เริ่มการจับคู่); false (หยุดการจับคู่)

type

string

N

ประเภทการค้นหา: Zigbee

การตอบกลับข้อมูลสำเร็จ: ออบเจ็กต์ว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: ** 200 OK ::: ตัวอย่างการตอบกลับ:

ค. เพิ่มซับอุปกรณ์ด้วยตนเอง

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตเพิ่ม เดี่ยว ซับอุปกรณ์ผ่านอินเทอร์เฟซนี้.

  • หมายเหตุ: ขณะนี้รองรับเฉพาะกล้อง RTSP และกล้อง ESP32 เท่านั้น :::tips

  • URL:/open-api/V2/rest/devices

  • วิธีการ:POST

  • ส่วนหัว

    • Content-Type: application/json

    • Autorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อซับอุปกรณ์

display_category

string

N

ประเภทอุปกรณ์. รองรับเฉพาะกล้องเท่านั้น。

capabilities

CapabilityObject[]

N

รายการความสามารถ. เมื่อ display_category = camera, capabilities จะรวมเฉพาะความสามารถ camera-stream.

protocal

string

N

โปรโตคอลอุปกรณ์. RTSP; ESP32-CAM

manufacturer

string

N

ผู้ผลิต.

model

string

N

รุ่นอุปกรณ์

firmware_version

string

N

เวอร์ชันเฟิร์มแวร์ของอุปกรณ์

CapabilityObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

capability

string

N

ชื่อความสามารถ. รองรับเฉพาะ "camera-stream" เท่านั้น

permission

string

N

สิทธิ์ของอุปกรณ์. รองรับเฉพาะ read.

configuration

CameraStreamConfigurationObject

Y

การตั้งค่าสตรีมของกล้อง.

SettingsObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

streamSetting

StreamSettingObject

N

การตั้งค่าบริการสตรีม

StreamSettingObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

type

string

N

การตั้งค่าบริการสตรีม

permission

string

N

สิทธิ์ความสามารถ. รองรับเฉพาะ "11" (แก้ไขได้).

value

StreamSettingValueObject

N

ค่าการตั้งค่าเฉพาะ

StreamSettingValueObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

stream_url

string

N

รูปแบบ URL สตรีม

รูปแบบ:<schema>://<hostname>:<port>/<username>:<password>@<service_path>

ตัวอย่าง:rtsp://admin:[email protected]:554/streaming/channel01

ตัวเลือกสคีมา:

rtsp (โปรโตคอลสตรีมแบบเรียลไทม์)

http (Hypertext Transfer Protocol) — สำหรับอุปกรณ์ ESP32-CAM

*หมายเหตุ: กล้องบางรุ่นอาจไม่ต้องการชื่อผู้ใช้หรือรหัสผ่าน ในกรณีดังกล่าวสามารถละเว้น <username> และ <password> ฟิลด์จาก URL.

การตอบกลับข้อมูลสำเร็จ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

การตอบกลับข้อมูลล้มเหลว: วัตถุว่างเปล่า :::tips เงื่อนไข

  1. ข้อผิดพลาดการเข้าถึงที่อยู่สตรีมของกล้อง (รูปแบบผิด, การอนุญาตล้มเหลว, ข้อยกเว้นเครือข่าย เป็นต้น)

  2. อุปกรณ์มีอยู่แล้ว

  3. หากการเพิ่มอุปกรณ์เดี่ยวล้มเหลว จะคืนค่าทั้งหมดว่าเพิ่มอุปกรณ์ไม่สำเร็จ.

รหัสสถานะ: 200 OK รหัสข้อผิดพลาด: ● 110009 ที่อยู่ IP ของกล้องผิดพลาด ● 110010 การอนุญาตการเข้าถึงกล้องล้มเหลว ● 110011 ที่อยู่สตรีมของกล้องผิดพลาด ● 110012 การเข้ารหัสวิดีโอของกล้องไม่รองรับ ● 110013 อุปกรณ์มีอยู่แล้ว ::: ตัวอย่างการตอบกลับ:

ง. ดึงรายการซับอุปกรณ์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตดึงรายการซับอุปกรณ์ของเกตเวย์ผ่านอินเทอร์เฟซนี้. :::tips

  • URL:/open-api/V2/rest/devices

  • วิธีการ: GET

  • ส่วนหัว

    • Content-Type: application/json

    • Autorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี การตอบกลับข้อมูลสำเร็จ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

device_list

ResponseDeviceObject[]

N

รายการอุปกรณ์

ResponseDeviceObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์

third_serial_number

string

"N" เมื่อมีการเชื่อมต่ออุปกรณ์ของบุคคลที่สาม, หากไม่ใช่จะแสดง "Y"

หมายเลขซีเรียลเฉพาะของอุปกรณ์บุคคลที่สาม

service_address

string

"N" เมื่อมีการเชื่อมต่ออุปกรณ์ของบุคคลที่สาม, หากไม่ใช่จะแสดง "Y"

ที่อยู่บริการของบุคคลที่สาม

name

string

N

ชื่ออุปกรณ์ หากไม่ได้เปลี่ยนชื่อ จะถูกแสดงโดยหน้าบริเวณหน้าแรกตามกฎการแสดงผลเริ่มต้น.

manufacturer

string

N

ผู้ผลิต

model

string

N

รุ่นอุปกรณ์

firmware_version

string

N

เวอร์ชันเฟิร์มแวร์. อาจเป็นสตริงว่างได้.

hostname

string

Y

ชื่อโฮสต์ของอุปกรณ์

mac_address

string

Y

ที่อยู่ MAC ของอุปกรณ์

app_name

string

Y

ชื่อของแอปพลิเคชันที่เป็นเจ้าของ หากมีการกรอก app_name เมื่อขอรับใบรับรองอินเทอร์เฟซสาธารณะ ต่อไปอุปกรณ์ทั้งหมดที่เชื่อมต่อผ่านใบรับรองจะถูกบันทึกลงในฟิลด์นี้.

display_category

string

N

หมวดหมู่อุปกรณ์

capabilities

CapabilityObject[]

N

ความสามารถของอุปกรณ์

protocol

string

"N" เมื่อมีการเชื่อมต่ออุปกรณ์ของบุคคลที่สาม, หากไม่ใช่จะแสดง "Y"

โปรโตคอลอุปกรณ์: zigbee, onvif, rtsp, esp32-cam

state

object

Y

วัตถุสถานะของอุปกรณ์. สำหรับตัวอย่างสถานะของความสามารถต่างๆ โปรดตรวจสอบ 【Support Device Capabilities】

tags

object

Y

รูปแบบ JSON คู่คีย์-ค่า ข้อมูลอุปกรณ์ที่กำหนดเอง ฟังก์ชันมีดังนี้:- ใช้เพื่อเก็บช่องของอุปกรณ์- ใช้เพื่อเก็บหน่วยอุณหภูมิ- ข้อมูลที่กำหนดเองสำหรับอุปกรณ์บุคคลที่สามอื่นๆ

ออนไลน์

boolean

N

สถานะออนไลน์: True หมายถึงออนไลน์ False หมายถึงออฟไลน์

ซับเน็ต

boolean

Y

ระบุว่าอยู่ในซับเน็ตเดียวกับเกตเวย์หรือไม่

CapabilityObject 💡หมายเหตุ: โปรดตรวจสอบตัวอย่างของความสามารถอุปกรณ์ที่รองรับ สำหรับ [Supported Device Capabilities].

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

capability

string

N

ชื่อความสามารถ รายละเอียดดูที่ [Supported Device Capabilities]

permission

string

N

สิทธิ์ของความสามารถ ค่าที่เป็นไปได้คือ "read" (อ่านได้), "write" (เขียนได้), "readWrite" (อ่านและเขียนได้).

configuration

object

Y

ข้อมูลการกำหนดค่าความสามารถ ปัจจุบันใช้ camera-stream ดูที่ [Supported Device Capabilities]

name

string

Y

ฟิลด์ name ใน toggle หมายเลขซับช่องที่ใช้ระบุอุปกรณ์หลายช่อง เช่น หาก name เป็น 1 หมายถึงช่องที่ 1

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

h. อัปเดตข้อมูลหรือสถานะของอุปกรณ์ที่ระบุ

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตแก้ไขข้อมูลพื้นฐานของซับอุปกรณ์และออกคำสั่งควบคุมผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL:/open-api/V2/rest/devices/{serial_number}

  • วิธีการ:PUT

  • ส่วนหัว

    • Content-Type: application/json

    • Autorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

Y

ชื่ออุปกรณ์

tags

object

Y

รูปแบบ JSON คู่คีย์-ค่า ข้อมูลอุปกรณ์ที่กำหนดเอง

state

object

Y

วัตถุสถานะของอุปกรณ์ สำหรับตัวอย่างสถานะของความสามารถต่างๆ โปรดดู [Support Device Capabilities]

configuration

object

Y

ข้อมูลการกำหนดค่าความสามารถ ปัจจุบันรองรับการแก้ไขเฉพาะความสามารถ camera_stream เท่านั้น

การตอบกลับข้อมูลสำเร็จ: :::tips เงื่อนไข: พารามิเตอร์การร้องขอถูกต้องตามกฎหมาย และการยืนยันตัวตนของผู้ใช้ผ่านแล้ว **รหัสสถานะ: **200 OK รหัสข้อผิดพลาด:

  • 110000 ซับอุปกรณ์/กลุ่มที่สอดคล้องกับ id ไม่มีอยู่ ::: ตัวอย่างการตอบกลับ:

i. ลบซับอุปกรณ์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตลบซับอุปกรณ์ผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL:/open-api/V2/rest/devices/{serial_number}

  • วิธีการ:DELETE

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์การร้องขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

Y

ชื่ออุปกรณ์

tags

object

Y

คู่คีย์-ค่าในรูปแบบ JSON ใช้เก็บชื่อช่องของอุปกรณ์และข้อมูลอื่นๆ ของซับอุปกรณ์

state

object

Y

เปลี่ยนสถานะอุปกรณ์; สำหรับรายละเอียดโปรโตคอลเฉพาะ ดูที่ "Supported Device Capabilities"

capabilities

CapabilityObject []

Y

ข้อมูลการกำหนดค่าความสามารถ; ทุกความสามารถที่รองรับการตั้งค่าการกำหนดค่าสามารถแก้ไขได้ โปรดทราบว่าไม่สามารถเปลี่ยนแปลงสิทธิ์ได้

การตอบกลับข้อมูลสำเร็จ: :::tips เงื่อนไข: พารามิเตอร์การร้องขอถูกต้องตามกฎหมาย และการยืนยันตัวตนของผู้ใช้ผ่านแล้ว **รหัสสถานะ: **200 OK รหัสข้อผิดพลาด:

  • 110000: ซับอุปกรณ์/กลุ่มที่สอดคล้องกับ ID ไม่มีอยู่

  • 110006: การอัปเดตสถานะอุปกรณ์ล้มเหลว

  • 110019: การเข้าถึงที่อยู่บริการอุปกรณ์บุคคลที่สามล้มเหลว

  • 110024: การอัปเดตการกำหนดค่าอุปกรณ์ล้มเหลว ::: ตัวอย่างการตอบกลับ:

j. ลบซับอุปกรณ์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตลบซับอุปกรณ์ผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL/open-api/v2/rest/devices/{serial_number}

  • วิธีการDELETE

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์การร้องขอ: ไม่มี การตอบข้อมูลสำเร็จ: :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

k. สอบถามสถานะอุปกรณ์

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตสอบถามสถานะอุปกรณ์ผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL/open-api/v2/rest/devices/:serial_number/query-state/{capability}

  • วิธีการ:POST

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

query_state

object

N

สอบถามสถานะอุปกรณ์; สำหรับรายละเอียดโปรโตคอลเฉพาะ ดูที่ "Supported Device Capabilities"

การตอบกลับข้อมูลสำเร็จ: :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

3.4 การจัดการความปลอดภัย

a. ดึงรายการความปลอดภัย

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตแก้ไขการตั้งค่าเกตเวย์ผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL/open-api/v2/rest/security

  • วิธีการGET

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์การร้องขอ: ไม่มี การตอบข้อมูลสำเร็จ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

security_list

ResponseSecurityObject[]

N

รายการอุปกรณ์ตอบสนอง

ResponseDeviceObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

sid

int

N

รหัสความปลอดภัย

name

string

N

ชื่อระบบความปลอดภัย

enable

bool

N

เปิดใช้งานหรือไม่

  • true เปิดใช้งาน

  • false ปิดใช้งาน |

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

b. เปิดใช้งานโหมดความปลอดภัยที่ระบุ

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตเปิดใช้งานโหมดความปลอดภัยที่ระบุผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL/open-api/v2/rest/security/{security_id}/enable

  • วิธีการPUT

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์การร้องขอ: ไม่มี การตอบข้อมูลสำเร็จ: วัตถุว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

c. ปิดใช้งานโหมดความปลอดภัยที่ระบุ

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตปิดใช้งานโหมดความปลอดภัยที่ระบุผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL/open-api/v2/rest/security/{security_id}/disable

  • วิธีการPUT

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์การร้องขอ: ไม่มี การตอบข้อมูลสำเร็จ: วัตถุว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

d. เปิดการตั้งค่าความปลอดภัยแบบคลิกเดียว

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตเปิดใช้งานโหมดการตั้งค่าความปลอดภัยแบบคลิกเดียวผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL/open-api/v2/rest/security/enable

  • วิธีการPUT

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์การร้องขอ: ไม่มี การตอบข้อมูลสำเร็จ: วัตถุว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

e. ปิดใช้งานความปลอดภัย

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตปิดใช้งานความปลอดภัยผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL/open-api/v2/rest/security/disable

  • วิธีการPUT

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์การร้องขอ: ไม่มี การตอบข้อมูลสำเร็จ: วัตถุว่าง {} :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: **200 OK ::: ตัวอย่างการตอบกลับ:

4. การเข้าถึงอุปกรณ์บุคคลที่สาม

4.1 คำแนะนำการเข้าถึง

การเข้าถึงอุปกรณ์

1.0.jpg

การเข้าถึงเกตเวย์บุคคลที่สาม

2.0.jpg

ขั้นตอนการเข้าถึง

  1. กำหนดการจัดหมวดหมู่ของอุปกรณ์ในเกตเวย์ รายละเอียดดูที่ [Supported Device Type]

  2. กำหนดความสามารถที่อุปกรณ์สามารถเข้าถึงได้ รายละเอียดดูที่ [Supported Device Capabilities]

  3. เรียกใช้อินเทอร์เฟซ [Discovery Request] เพื่อเพิ่มอุปกรณ์ไปยังเกตเวย์

    1. ข้อควรระวัง: คุณต้องให้ที่อยู่บริการเพื่อรับคำสั่งที่เกตเวย์ส่งมา ซึ่งใช้รับคำสั่งควบคุมอุปกรณ์ที่เกตเวย์ออก.

  4. หากสถานะของอุปกรณ์บุคคลที่สามเปลี่ยนแปลง คุณต้องเรียกอินเทอร์เฟซ [Device States Change Report] เพื่อส่งสถานะล่าสุดกลับไปยังเกตเวย์

  5. หลังจากเพิ่มแล้ว อุปกรณ์บุคคลที่สามจะปรากฏในรายการอุปกรณ์ โดยฟังก์ชันส่วนใหญ่เทียบเท่ากับอุปกรณ์ของเกตเวย์ (อุปกรณ์ที่ไม่ใช่บุคคลที่สาม) และอินเทอร์เฟซเปิดสาธารณะที่เกี่ยวกับอุปกรณ์สามารถใช้ได้ตามปกติ

  • เลือกประเภทอุปกรณ์ที่เหมาะสม การจัดหมวดหมู่จะส่งผลต่อการแสดงผล UI สุดท้ายเมื่ออุปกรณ์เชื่อมต่อกับเกตเวย์

  • เลือกความสามารถอุปกรณ์ที่ถูกต้อง รายการความสามารถจะกำหนดสถานะของโปรโตคอลสถานะอุปกรณ์

กระบวนการโปรแกรม

a. การเข้าถึงอุปกรณ์

3.0.jpg

b. การเข้าถึงเกตเวย์บุคคลที่สาม

4.0.jpg

4.2 ตัวอย่างการเข้าถึง

สวิตช์ ปลั๊ก

ซิงค์อุปกรณ์บุคคลที่สาม

รายงานสถานะอุปกรณ์

รายงานออฟไลน์/ออนไลน์

รับคำสั่งเกี่ยวกับการควบคุมอุปกรณ์จากเกตเวย์

สอบถามอุปกรณ์

4.3 Web API

อินเทอร์เฟซเกตเวย์สำหรับคำขอบุคคลที่สาม

รูปแบบการร้องขอ

อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตส่งคำขอเหตุการณ์ไปยังเกตเวย์ผ่านอินเทอร์เฟซนี้ได้ :::tips

  • URL:/open-api/V2/rest/thirdparty/event

  • วิธีการ:POST

  • ส่วนหัว

    • Content-Type: application/json

    • Autorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

event

EventObject

N

ข้อมูลโครงสร้างวัตถุเหตุการณ์ที่ร้องขอ

EventObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวที่ร้องขอ

endpoint

EndpointObject

Y

ข้อมูลโครงสร้าง endpoint ที่ร้องขอ หมายเหตุ: ฟิลด์นี้จะว่างเมื่อซิงค์รายการอุปกรณ์ใหม่

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload ที่ร้องขอ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อคำขอ พารามิเตอร์ไม่บังคับ: DiscoveryRequest: ซิงค์อุปกรณ์ใหม่ DeviceStatesChangeReport: รายงานการอัปเดตสถานะอุปกรณ์ DeviceOnlineChangeReport: รายงานสถานะออนไลน์ของอุปกรณ์

message_id

string

N

รหัสข้อความของคำขอ, UUID_V4

version

string

N

หมายเลขเวอร์ชันโปรโตคอลของคำขอ ปัจจุบันกำหนดเป็น 1

EndpointObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์

third_serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์บุคคลที่สาม

tags

object

Y

รูปแบบ JSON คู่คีย์-ค่า ข้อมูลอุปกรณ์ที่กำหนดเอง [ฟังก์ชันการจัดการอุปกรณ์] - [คำอธิบายแท็ก]

PayloadObject โครงสร้างคำขอแตกต่างกันตาม header.name แต่ละค่า

รูปแบบการตอบกลับ

:::tips **รหัสสถานะ: **200 OK พารามิเตอร์การตอบกลับ: :::

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวการตอบกลับ

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload การตอบกลับ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อส่วนหัวการตอบกลับ พารามิเตอร์ไม่บังคับ: Response: ตอบกลับสำเร็จ ErrorResponse: ตอบกลับข้อผิดพลาด

message_id

string

N

รหัสข้อความของส่วนหัวการตอบกลับ, UUID_V4 ให้ส่งค่าจาก request header.message_id ที่นี่ *หากคำขอไม่มี message_id ฟิลด์นี้จะเป็นสตริงว่างเมื่อตอบกลับ

version

string

N

- หมายเลขเวอร์ชันโปรโตคอลของคำขอ ปัจจุบันกำหนดเป็น 1.

การตอบกลับสำเร็จ--PayloadObject :

ขึ้นอยู่กับประเภทคำขอ โครงสร้างการตอบกลับจะแตกต่างกัน สำหรับรายละเอียด โปรดดูเอกสารคำสั่งขอเฉพาะ

การตอบกลับล้มเหลว--PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

type

string

N

ประเภทข้อผิดพลาด:

  • INVALID_PARAMETERS: พารามิเตอร์ผิดพลาด

  • AUTH_FAILURE: ข้อผิดพลาดการยืนยันสิทธิ์

  • INTERNAL_ERROR: ข้อผิดพลาดบริการภายใน | | คำอธิบาย | string | N | คำอธิบายข้อผิดพลาด |

DiscoveryRequest ซิงค์รายการอุปกรณ์ใหม่

  • หมายเหตุ: หลังจากอุปกรณ์ถูกซิงค์เข้ากับเกตเวย์ จะอยู่ในสถานะออนไลน์โดยค่าเริ่มต้น คือ online=true การเปลี่ยนแปลงสถานะออนไลน์ในภายหลังขึ้นอยู่กับการซิงค์กับบุคคลที่สามผ่านอินเทอร์เฟซ DeviceOnlineChangeReport เท่านั้น

พารามิเตอร์การร้องขอ: EndpointObject**:**ไม่มี PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

endpoints

EndpointObject[]

N

รายการอุปกรณ์

EndpointObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

third_serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์บุคคลที่สาม

name

string

N

ชื่ออุปกรณ์

display_category

string

N

หมวดหมู่อุปกรณ์ ดูรายละเอียดที่ [Supported Device Type] *อุปกรณ์บุคคลที่สามยังไม่รองรับการเพิ่มกล้องในขณะนี้

capabilities

CapabilityObject[]

N

รายการความสามารถ

state

object

N

ข้อมูลสถานะเริ่มต้น

manufacturer

string

N

ผู้ผลิต

model

string

N

รุ่นอุปกรณ์

tags

object

Y

รูปแบบ JSON คู่คีย์-ค่า ข้อมูลอุปกรณ์ที่กำหนดเอง: ใช้เก็บช่องของอุปกรณ์ ใช้เก็บหน่วยอุณหภูมิ ข้อมูลที่กำหนดเองอื่นๆ ของบุคคลที่สาม

firmware_version

string

N

เวอร์ชันเฟิร์มแวร์

service_address

string

N

ที่อยู่บริการ เช่น http://192.168.31.14/service_address

ตัวอย่างคำขอ :

พารามิเตอร์การตอบกลับ: PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

endpoints

EndpointObject[]

N

รายการอุปกรณ์

EndpointObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์

third_serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์บุคคลที่สาม

ตัวอย่างการตอบกลับที่ถูกต้อง:

ตัวอย่างการตอบกลับข้อผิดพลาด:

DeviceStatesChangeReport รายงานการเปลี่ยนแปลงสถานะอุปกรณ์

  • หมายเหตุ: การรายงานสถานะซ้ำๆ อาจทำให้ทริกเกอร์ฉากที่เกี่ยวข้องโดยผิดพลาด

พารามิเตอร์การร้องขอ: PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

state

object

N

สถานะอุปกรณ์ ดู [Supported device cabilities] สำหรับรายละเอียด

ตัวอย่างคำขอ :

พารามิเตอร์การตอบกลับ: PayloadObject: วัตถุว่าง ตัวอย่างการตอบกลับที่สำเร็จ:

DeviceOnlineChangeReport รายงานสถานะออนไลน์ของอุปกรณ์

  • หมายเหตุ: การรายงานสถานะซ้ำๆ อาจทำให้ทริกเกอร์ฉากที่เกี่ยวข้องโดยผิดพลาด

พารามิเตอร์การร้องขอ: PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

ออนไลน์

boolean

N

สถานะออนไลน์ของอุปกรณ์ true: ออนไลน์

false: ออฟไลน์

ตัวอย่างคำขอ :

พารามิเตอร์การตอบกลับ: PayloadObject: วัตถุว่าง ตัวอย่างการตอบกลับที่สำเร็จ:

DeviceInformationUpdatedReport รายงานการอัปเดตข้อมูลอุปกรณ์

  • หมายเหตุ: การอัปเดตอาจส่งผลกระทบต่อฉากหรือฟังก์ชันความปลอดภัยที่มีอยู่

พารามิเตอร์การร้องขอ: PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

capabilities

| CapabilityObject[]

| N

| รายการความสามารถ รายละเอียดดูในส่วนความสามารถอุปกรณ์ที่รองรับ **หมายเหตุ: **พารามิเตอร์นี้จะอัปเดตเฉพาะ value ของ การตั้งค่า คีย์ ภายใน CapabilityObject, และอนุญาตให้อัปเดตได้ก็ต่อเมื่อ permission สำหรับ การตั้งค่า คีย์เป็น 11 หรือ 01. สำหรับคำนิยามโครงสร้างเฉพาะของ การตั้งค่า ใน CapabilityObjectโปรดอ้างถึงคำอธิบายรายละเอียดในส่วน 2.3 หมวดหมู่การแสดงผลอุปกรณ์ & ความสามารถของอุปกรณ์. | | tags

| object

| Y

| รูปแบบ JSON คู่คีย์-ค่า ข้อมูลอุปกรณ์ที่กำหนดเอง.

  • สามารถใช้เก็บช่องของอุปกรณ์ได้

  • สามารถใช้เก็บหน่วยอุณหภูมิได้

  • ข้อมูลกำหนดเองอื่นๆ ของบุคคลที่สาม |

ตัวอย่างคำขอ :

พารามิเตอร์การตอบกลับ: PayloadObject: วัตถุว่าง ตัวอย่างการตอบกลับที่สำเร็จ:

เกตเวย์ส่งอินเทอร์เฟซคำสั่งผ่านที่อยู่บริการของอุปกรณ์

  • หมายเหตุ:

  1. ฝ่ายบุคคลที่สามต้องตอบกลับคำขอจากเกตเวย์ภายใน 3 วินาที มิฉะนั้นเกตเวย์จะตัดสินว่าเวลาการประมวลผลคำสั่งหมดเวลา

  2. หากบริการบุคคลที่สามออฟไลน์ เกตเวย์จะตั้งค่าสถานะอุปกรณ์เป็นออฟไลน์ และบริการบุคคลที่สามจะต้องรายงานสถานะอุปกรณ์ (DeviceStatesChangeReport) หรือสถานะออนไลน์ (DeviceOnlineChangeReport) ก่อนจะกลับไปเป็นออนไลน์ได้

รูปแบบคำขอ

เกตเวย์ส่งคำสั่งไปยังบุคคลที่สามผ่านอินเทอร์เฟซที่อยู่บริการของอุปกรณ์ :::tips

  • URL

  • วิธีการ:POST

  • ส่วนหัว

    • Content-Type: application/json ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

directive

DirectiveObject

N

ข้อมูลโครงสร้างวัตถุคำสั่ง

DirectiveObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวที่ร้องขอ

endpoint

EndpointObject

N

ข้อมูลโครงสร้าง endpoint ที่ร้องขอ

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload ที่ร้องขอ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อคำขอ พารามิเตอร์ไม่บังคับ: UpdateDeviceStates: อัปเดตสถานะอุปกรณ์

message_id

string

N

รหัสข้อความของคำขอ, UUID_V4

version

string

N

หมายเลขเวอร์ชันโปรโตคอลของคำขอ ปัจจุบันกำหนดเป็น 1.

EndpointObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์

third_serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์บุคคลที่สาม

tags

object

N

รูปแบบ JSON คู่คีย์-ค่า ข้อมูลอุปกรณ์ที่กำหนดเอง [ฟังก์ชันการจัดการอุปกรณ์] - [คำอธิบายแท็ก]

PayloadObject: ตามค่า header.name, จะมีโครงสร้างคำขอเฉพาะสำหรับแต่ละค่า

ตัวอย่างคำขอ :

รูปแบบการตอบกลับ

:::tips **HTTP Status Code: **200 OK แอตทริบิวต์การตอบ HTTP: :::

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

event

EventObject

N

ข้อมูลโครงสร้างเหตุการณ์การตอบกลับ

EventObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวที่ร้องขอ

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload ที่ร้องขอ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อส่วนหัวการตอบกลับ พารามิเตอร์ไม่บังคับ: UpdateDeviceStatesResponse: การตอบกลับการอัปเดตสถานะอุปกรณ์ ErrorResponse: การตอบกลับข้อผิดพลาด

message_id

string

N

รหัสข้อความของส่วนหัวการตอบกลับ, UUID_V4 ให้ส่งค่าจาก request header.message_id ที่นี่

version

string

N

หมายเลขเวอร์ชันโปรโตคอลของคำขอ ปัจจุบันกำหนดเป็น 1.

การตอบกลับสำเร็จ--PayloadObject:

ขึ้นอยู่กับประเภทคำขอ โครงสร้างการตอบกลับจะแตกต่างกัน สำหรับรายละเอียด โปรดดูเอกสารคำสั่งขอเฉพาะ

การตอบกลับล้มเหลว--PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

type

string

N

ประเภทข้อผิดพลาด:

  • ENDPOINT_UNREACHABLE: อุปกรณ์เข้าถึงไม่ได้หรือออฟไลน์

  • ENDPOINT_LOW_POWER: อุปกรณ์อยู่ในโหมดพลังงานต่ำและไม่สามารถควบคุมได้

  • INVALID_DIRECTIVE: คำสั่งผิดปกติจากเกตเวย์

  • NO_SUCH_ENDPOINT: อุปกรณ์ไม่มีอยู่

  • NOT_SUPPORTED_IN_CURRENT_MODE: โหมดปัจจุบันไม่รองรับการดำเนินการ

  • INTERNAL_ERROR: ข้อผิดพลาดบริการภายใน

  • REMOTE_KEY_CODE_NOT_LEARNED: รหัสปุ่มรีโมทยังไม่ได้เรียนรู้ |

:::tips เงื่อนไข: พารามิเตอร์การร้องขอถูกต้อง **รหัสสถานะ: **200 OK พารามิเตอร์การตอบกลับ: :::

UpdateDeviceStates

พารามิเตอร์การร้องขอ: PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

state

object

N

สถานะอุปกรณ์ ดู [Supported device cabilities] สำหรับรายละเอียด.

ตัวอย่างคำขอ :

พารามิเตอร์การตอบกลับ: PayloadObject:วัตถุว่าง ตัวอย่างการตอบกลับที่สำเร็จ

QueryDeviceStates

พารามิเตอร์การร้องขอ: PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

state

object

N

สถานะอุปกรณ์ ดู [Supported device cabilities] สำหรับรายละเอียด.

ตัวอย่างคำขอ :

พารามิเตอร์การตอบกลับ: PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

state

object

N

สถานะอุปกรณ์ ดู [Supported device cabilities] สำหรับรายละเอียด.

ตัวอย่างการตอบกลับ:

ConfigureDeviceCapabilities

พารามิเตอร์การร้องขอ: PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

capabilities

CapabilityObject[]

N

รายการความสามารถ รายละเอียดดูในส่วนความสามารถอุปกรณ์ที่รองรับ โปรดทราบว่า ฟิลด์ permission ไม่สามารถเปลี่ยนแปลงได้ ให้ส่งค่าที่เหมือนกันเมื่อซิงค์

ตัวอย่างคำขอ :

พารามิเตอร์การตอบกลับ: PayloadObject:วัตถุว่าง ตัวอย่างการตอบกลับที่สำเร็จ

5. เหตุการณ์ที่เซิร์ฟเวอร์ส่ง (Server-sent events)

คำอธิบายอินเทอร์เฟซ MDN EventSource:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events

5.1 คำสั่ง

เกตเวย์รองรับการผลักข้อความไปยังไคลเอนต์โดยใช้ SSE (Server-sent events) ไคลเอนต์สามารถตรวจสอบข้อความ SSE หลังจากได้รับข้อมูลรับรองการเข้าถึง และแยกวิเคราะห์เนื้อหาของข้อความที่ผลักตามโปรโตคอลการแจ้งเหตุการณ์อินเทอร์เฟซการพัฒนาเมื่อได้รับข้อความจากเกตเวย์ ควรสังเกตว่าเกตเวย์ปัจจุบันใช้โปรโตคอล HTTP1.1 ดังนั้น SSE บนฝั่งเบราว์เซอร์จะมีข้อจำกัดสูงสุดไม่เกิน 6 การเชื่อมต่อ (คำอธิบายเฉพาะดูได้ที่อินเทอร์เฟซ MDN EventSource)

5.2 รูปแบบทั่วไป

:::tips

  • URL:/open-api/V2/sse/bridge

  • วิธีการGET ::: พารามิเตอร์การร้องขอ:

ชื่อ
ประเภท
ตัวเลือก
คำอธิบาย

access_token

string

N

Access Token

หมายเหตุ: เมื่อขอการเชื่อมต่อ SSE เกตเวย์จะตรวจสอบ access_token และจะคืนข้อผิดพลาดการยืนยันตัวตนหากไม่ถูกต้อง { "error": 401, "data": {}, "message": "invalid access_token"}

## ตัวอย่าง: ชื่อโมดูล: device เวอร์ชัน: 1,v2,v3 ประเภทข้อความ: addDevice

ตัวอย่าง:

5.3 โมดูลอุปกรณ์

a. เหตุการณ์เพิ่มอุปกรณ์

:::tips ชื่อโมดูล:device เวอร์ชัน:v2 ประเภทข้อความ:addDevice event.data พารามิเตอร์: :::

ชื่อ
ประเภท
ตัวเลือก
คำอธิบาย

payload

ResponseDeviceObjectObject - อินเทอร์เฟซเหมือนกับการดึงรายการอุปกรณ์

N

ข้อมูลอุปกรณ์

ตัวอย่าง:

b. เหตุการณ์อัปเดตสถานะอุปกรณ์

:::tips ชื่อโมดูล:device เวอร์ชัน:v2 ประเภทข้อความ:updateDeviceState event.data พารามิเตอร์: :::

ชื่อ
ประเภท
ตัวเลือก
คำอธิบาย

endpoint

EndpointObject

N

ข้อมูลอุปกรณ์

payload

object。 โครงสร้างเหมือนกับสถานะอุปกรณ์

N

ข้อมูลสถานะอุปกรณ์

EndpointObject:

พารามิเตอร์
ประเภท
ตัวเลือก
คำอธิบาย

serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์

third_serial_number

string

Y

หมายเลขซีเรียลเฉพาะของอุปกรณ์บุคคลที่สาม สำหรับอุปกรณ์ที่เชื่อมต่อผ่านอินเทอร์เฟซเปิด ฟิลด์นี้จำเป็นต้องมี

ตัวอย่าง:

c. เหตุการณ์อัปเดตข้อมูลอุปกรณ์

:::tips ชื่อโมดูล:device เวอร์ชัน:v2 ประเภทข้อความ:updateDeviceInfo event.data พารามิเตอร์: :::

ชื่อ
ประเภท
ตัวเลือก
คำอธิบาย

endpoint

EndpointObject

N

ข้อมูลอุปกรณ์

payload

DeviceChangeObject

N

ข้อมูลการเปลี่ยนแปลงของอุปกรณ์

EndpointObject:

แอตทริบิวต์
ประเภท
ตัวเลือก
คำอธิบาย

serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์

third_serial_number

string

Y

หมายเลขซีเรียลเฉพาะของอุปกรณ์บุคคลที่สาม สำหรับอุปกรณ์ที่เชื่อมต่อผ่านอินเทอร์เฟซเปิด ฟิลด์นี้จำเป็นต้องมี

DeviceChangeObject

ชื่อ
ประเภท
ตัวเลือก
คำอธิบาย

name

string

N

ชื่ออุปกรณ์

capabilities

CapabilityObject []

Y

รายการความสามารถของอุปกรณ์

tags

object

Y

tagsobject | Nullable | คู่คีย์-ค่าในรูปแบบ JSON สำหรับข้อมูลอุปกรณ์ที่กำหนดเอง.

  • สามารถใช้เก็บข้อมูลช่องของอุปกรณ์ได้

  • สามารถใช้เก็บหน่วยอุณหภูมิได้

  • สำหรับข้อมูลกำหนดเองอื่นๆ ของบุคคลที่สาม. |

ตัวอย่าง:

d. เหตุการณ์ลบอุปกรณ์

:::tips ชื่อโมดูล:device เวอร์ชัน:v2 ประเภทข้อความ:deleteDevice event.data พารามิเตอร์: :::

** ชื่อ **
** ประเภท **
** ไม่บังคับ**
** คำอธิบาย **

endpoint

EndpointObject

N

ข้อมูลอุปกรณ์

EndpointObject:

แอตทริบิวต์
ประเภท
ตัวเลือก
คำอธิบาย

serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์

third_serial_number

string

Y

หมายเลขซีเรียลเฉพาะของอุปกรณ์บุคคลที่สาม สำหรับอุปกรณ์ที่เชื่อมต่อผ่านอินเทอร์เฟซเปิด ฟิลด์นี้จำเป็นต้องมี

ตัวอย่าง:

e. เหตุการณ์อัปเดตสถานะออนไลน์ของอุปกรณ์

:::tips ชื่อโมดูล:device เวอร์ชัน:v2 ประเภทข้อความ:updateDeviceOnline event.data พารามิเตอร์: :::

ชื่อ
ประเภท
ตัวเลือก
คำอธิบาย

endpoint

EndpointObject

N

ข้อมูลอุปกรณ์

payload

DeviceChangeObject

N

ข้อมูลการเปลี่ยนแปลงของอุปกรณ์

EndpointObject:

แอตทริบิวต์
ประเภท
ตัวเลือก
คำอธิบาย

serial_number

string

N

หมายเลขซีเรียลเฉพาะของอุปกรณ์

third_serial_number

string

Y

หมายเลขซีเรียลเฉพาะของอุปกรณ์บุคคลที่สาม สำหรับอุปกรณ์ที่เชื่อมต่อผ่านอินเทอร์เฟซเปิด ฟิลด์นี้จำเป็นต้องมี

DeviceChangeObject

ชื่อ
ประเภท
ตัวเลือก
คำอธิบาย

ออนไลน์

boolean

N

สถานะออนไลน์ของอุปกรณ์

ตัวอย่าง:

5.4 โมดูลเกตเวย์

a. เหตุการณ์อัปเดตสถานะความปลอดภัย

:::tips ชื่อโมดูล:device เวอร์ชัน:v2 ประเภทข้อความ:updateDeviceOnline event.data พารามิเตอร์: :::

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

payload

SecurityStateObject

N

ข้อมูลอุปกรณ์

SecurityStateObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

alarm_state

string

N

  • arming | ถูกติดอาวุธ (Armed)

  • disarming | ถูกปลดอาวุธ (Disarmed) |

ตัวอย่าง:

5.5 โมดูลความปลอดภัย

a. เหตุการณ์อัปเดตสถานะการติดอาวุธ

:::tips ชื่อโมดูล:device เวอร์ชัน:v2 ประเภทข้อความ:updateDeviceOnline event.data พารามิเตอร์: :::

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

payload

ArmStateObject

N

ข้อมูลการติดอาวุธและการปลดอาวุธ

ArmStateObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

arm_state

string

N

  • arming | ถูกติดอาวุธ (Armed)

  • disarming | ปลดอาวุธ | | detail | DetailObject | N | รายละเอียดการติด/ปลดอาวุธ |

DetailObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

sid

int

N

รหัสโหมดความปลอดภัย

name

string

N

ชื่อระบบความปลอดภัย

ตัวอย่าง

6. TTS (ฟังก์ชันเครื่องยนต์แปลงข้อความเป็นเสียง (Text-to-Speech)

6.1 คำแนะนำ

บทบาทหลัก

  • ผู้ให้บริการบริการ TTS: ผู้ให้บริการเครื่องยนต์บริการ TTS รับผิดชอบในการลงทะเบียนเครื่องยนต์ TTS บนเกตเวย์และให้บริการ TTS

  • เซิร์ฟเวอร์เกตเวย์:iHost

  • ลูกค้า Gateway Open API

6.1.1 การลงทะเบียนบริการเครื่องยนต์ TTS

  1. 【ผู้ให้บริการบริการ TTS】เรียกอินเทอร์เฟซเพื่อลงทะเบียนเครื่องยนต์ TTS บนเกตเวย์

  2. 【เซิร์ฟเวอร์เกตเวย์】หลังจากลงทะเบียนสำเร็จ เกตเวย์จะเก็บข้อมูลพื้นฐานของเครื่องยนต์ TTS (รวมถึงที่อยู่บริการ server_address และการสื่อสารระหว่างเกตเวย์กับผู้ให้บริการ TTS จะดำเนินการผ่านที่อยู่ server_address) และจัดสรร ID บริการเครื่องยนต์ TTS ภายในเกตเวย์

image.png

6.1.2 ดึงรายการเสียงที่สังเคราะห์แล้ว

  1. 【ลูกค้า Gateway Open API】เรียกอินเทอร์เฟซเพื่อขอรับรายการของบริการเครื่องยนต์ TTS ที่ลงทะเบียน คุณจะได้รับรายการเครื่องยนต์ TTS ที่ลงทะเบียนในปัจจุบัน (รวมถึง ID ของเครื่องยนต์ TTS ที่เกตเวย์จัดสรร)

  2. 【ลูกค้า Gateway Open API】เรียกอินเทอร์เฟซเพื่อขอรับรายการเสียงของเครื่องยนต์ TTS ที่ระบุ เกตเวย์จะออกคำสั่งรายการเสียงแบบซิงโครนัสไปยังผู้ให้บริการ TTS ที่ระบุและส่งผลลัพธ์กลับมา

image.png

6.1.3 การสังเคราะห์เสียงโดยระบุเครื่องยนต์สังเคราะห์เสียง

  1. 【ลูกค้า Gateway Open API】เรียกอินเทอร์เฟซเพื่อขอรับรายการของบริการเครื่องยนต์ TTS ที่ลงทะเบียน คุณจะได้รับรายการเครื่องยนต์ TTS ที่ลงทะเบียนในปัจจุบัน (รวมถึง ID ของเครื่องยนต์ TTS ที่เกตเวย์จัดสรร)

  2. 【ลูกค้า Gateway Open API】เรียกอินเทอร์เฟซเพื่อขอรับรายการเสียงของเครื่องยนต์ TTS ที่ระบุ เกตเวย์จะออกคำสั่งรายการเสียงแบบซิงโครนัสไปยังผู้ให้บริการ TTS ที่ระบุและส่งผลลัพธ์กลับมา

image.png

6.1.4 สังเคราะห์เสียงและเล่นคำพูด TTS

  1. 【ลูกค้า Gateway Open API】เรียกอินเทอร์เฟซเพื่อขอรับรายการของบริการเครื่องยนต์ TTS ที่ลงทะเบียน คุณจะได้รับรายการเครื่องยนต์ TTS ที่ลงทะเบียนในปัจจุบัน (รวมถึง ID ของเครื่องยนต์ TTS ที่เกตเวย์จัดสรร)

  2. 【ลูกค้า Gateway Open API】เรียกอินเทอร์เฟซเพื่อขอรับรายการเสียงของเครื่องยนต์ TTS ที่ระบุ เกตเวย์จะออกคำสั่งรายการเสียงแบบซิงโครนัสไปยังผู้ให้บริการ TTS ที่ระบุและส่งผลลัพธ์กลับมา (รวมถึงที่อยู่ไฟล์เสียง TTS)

  3. 【ลูกค้า Gateway Open API】จดที่อยู่ไฟล์เสียง TTS จากผลลัพธ์ที่ส่งกลับในขั้นตอนก่อนหน้า เรียกอินเทอร์เฟซเล่นไฟล์เสียง และเล่นผ่านเกตเวย์

6.2 โมดูลเครื่องยนต์ TTS

6.2.1 ความสามารถที่เปิดโดยเกตเวย์

a. ดึงรายการบริการเครื่องยนต์ TTS ที่ลงทะเบียน

:::tips

  • URL/open-api/V2/rest/tts/engines

  • วิธีการGET

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี ข้อมูลการตอบกลับที่ถูกต้อง:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

engines

EngineObject []

N

รายการเครื่องยนต์ TTS ที่ลงทะเบียน

โครงสร้าง EngineObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

id

string

N

รหัสเครื่องยนต์ที่ถูกกำหนดโดยเกตเวย์

name

string

N

ชื่อของบริการเครื่องยนต์ TS

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และผ่านการยืนยันตัวตนของผู้ใช้ **รหัสสถานะ:**200 OK ตัวอย่างการตอบกลับ:: :::

b. ดึงรายการเสียงของเครื่องยนต์ TTS ที่ระบุ

:::tips

  • URL/open-api/V2/rest/tts/engine/{id}/audio-list

  • วิธีการGET

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี ข้อมูลการตอบกลับที่ถูกต้อง:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

audio_list

AudioObject []

N

รายการเสียง

โครงสร้าง AudioObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

url

string

N

URL ไฟล์เสียง ตัวอย่างเช่น:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

ป้ายชื่อไฟล์เสียง

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และผ่านการยืนยันตัวตนของผู้ใช้ **รหัสสถานะ:**200 OK **รหัสข้อผิดพลาด:**

  • 190000 เครื่องยนต์ทำงานผิดปกติ

ตัวอย่างการตอบกลับ:: :::

c. ดำเนินการสังเคราะห์คำพูดโดยใช้เครื่องยนต์ TTS ที่ระบุ

:::tips

  • URL/open-api/V2/rest/tts/engine/{id}/synthesize

  • วิธีการPOST

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

text

string

N

ข้อความที่ใช้สังเคราะห์เสียง

label

string

Y

ป้ายชื่อไฟล์เสียง

language

string

Y

ฟิลด์โปร่งใส ตัวเลือก รหัสภาษาสำหรับคำขอสังเคราะห์เสียง รายการรหัสภาษาที่รองรับโดยเฉพาะจะถูกจัดเตรียมโดยผู้ให้บริการเครื่องยนต์ TTS โปรดทราบว่า บริการเครื่องยนต์ TTS จำเป็นต้องรองรับภาษาตั้งต้นสำหรับการสังเคราะห์เสียง ซึ่งหมายความว่าหากไม่มีการส่งภาษามา จะใช้ภาษาตั้งต้นของเครื่องยนต์ในการสังเคราะห์

options

object

Y

ฟิลด์โปร่งใส ใช้ส่งพารามิเตอร์การกำหนดค่าที่จำเป็นสำหรับการสังเคราะห์ไปยังบริการเครื่องยนต์ TTS

ข้อมูลการตอบกลับที่ถูกต้อง:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

audio

AudioObject

N

รายการเสียง

โครงสร้าง AudioObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

url

string

N

URL ไฟล์เสียง ตัวอย่างเช่น:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

ป้ายชื่อไฟล์เสียง

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และผ่านการยืนยันตัวตนของผู้ใช้ **รหัสสถานะ:**200 OK **รหัสข้อผิดพลาด:**

  • 190000 เครื่องยนต์ทำงานผิดปกติ

ตัวอย่างการตอบกลับ:: :::

6.2.2 การสื่อสารระหว่างเกตเวย์และบริการ TTS

a. การลงทะเบียนบริการเครื่องยนต์ TTS

ผู้ให้บริการ TTS ส่งคำขอไปยังเกตเวย์

:::tips

  • URL/open-api/V2/rest/thirdparty/event

  • วิธีการPOST

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

event

EventObject

N

โครงสร้างข้อมูลของวัตถุเหตุการณ์คำขอ

EventObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวที่ร้องขอ

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload ที่ร้องขอ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อคำขอ พารามิเตอร์ที่เป็นทางเลือก

  • RegisterTTSEngine | | message_id | string | N | รหัสข้อความคำขอ, UUID_V4 | | version | string | N | หมายเลขเวอร์ชันโปรโตคอลคำขอ ปัจจุบันกำหนดเป็น 1 |

PayloadObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

service_address

string

N

ที่อยู่บริการ ตัวอย่างเช่น http:///

name

string

N

ชื่อบริการ

ตัวอย่างคำขอ:

**พารามิเตอร์การตอบกลับที่ถูกต้อง:**

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวที่ร้องขอ

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload ที่ร้องขอ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อส่วนหัวการตอบกลับ พารามิเตอร์ที่เป็นทางเลือก:

  • การตอบกลับ (การตอบกลับที่สำเร็จ)

  • ErrorResponse (การตอบกลับข้อผิดพลาด) | | message_id | string | N | รหัสข้อความส่วนหัวการตอบกลับ, UUID_V4 ข้อความคำขอที่เข้ามาที่นี่: header.message_id | | version | string | N | หมายเลขเวอร์ชันโปรโตคอลคำขอ ปัจจุบันกำหนดเป็น 1 |

PayloadObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

engine_id

string

N

รหัสเครื่องยนต์ที่ถูกกำหนดโดยเกตเวย์

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และผ่านการยืนยันตัวตนของผู้ใช้ **รหัสสถานะ:**200 OK ตัวอย่างการตอบกลับ:: ::: ตัวอย่างการตอบกลับที่ถูกต้อง::

**พารามิเตอร์การตอบกลับผิดปกติ:**

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

type

string

N

ประเภทข้อผิดพลาด

  • INVALID_PARAMETERS (พารามิเตอร์ผิดพลาด)

  • AUTH_FAILURE (การตรวจสอบสิทธิ์ล้มเหลว)

  • INTERNAL_ERROR (ข้อผิดพลาดภายในบริการ) | | description | string | N | คำอธิบายข้อผิดพลาด |

ตัวอย่างการตอบกลับข้อผิดพลาด::

b. คำสั่งซิงโครไนซ์รายการเสียง

เกตเวย์ส่งคำสั่งไปยังผู้ให้บริการ TTS

:::tips

  • URL<service address>

  • วิธีการPOST

  • ส่วนหัว

    • Content-Type: application/json ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

directive

DirectiveObject

N

ข้อมูลโครงสร้างของวัตถุคำสั่ง

DirectiveObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวที่ร้องขอ

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload ที่ร้องขอ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อคำขอ พารามิเตอร์ที่เป็นทางเลือก:

  • SyncTTSAudioList | | message_id | string | N | รหัสข้อความคำขอ, UUID_V4 | | version | string | N | หมายเลขเวอร์ชันโปรโตคอลคำขอ ปัจจุบันกำหนดเป็น 1 |

ตัวอย่างคำขอ:

**พารามิเตอร์การตอบกลับที่ถูกต้อง:**

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวที่ร้องขอ

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload ที่ร้องขอ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อส่วนหัวการตอบกลับ พารามิเตอร์ที่เป็นทางเลือก:

  • การตอบกลับ (การตอบกลับที่สำเร็จ)

  • ErrorResponse (การตอบกลับข้อผิดพลาด) | | message_id | string | N | รหัสข้อความส่วนหัวการตอบกลับ, UUID_V4 ข้อความคำขอที่เข้ามาที่นี่: header.message_id | | version | string | N | หมายเลขเวอร์ชันโปรโตคอลคำขอ ปัจจุบันกำหนดเป็น 1 |

PayloadObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

audio_list

AudioObject []

N

รายการเสียง TTS

โครงสร้าง AudioObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

url

string

N

URL ไฟล์เสียง ตัวอย่างเช่น:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

ป้ายชื่อไฟล์เสียง

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และผ่านการยืนยันตัวตนของผู้ใช้ **รหัสสถานะ:**200 OK ตัวอย่างการตอบกลับ:: ::: ตัวอย่างการตอบกลับที่ถูกต้อง::

**พารามิเตอร์การตอบกลับผิดปกติ:**

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

type

string

N

ประเภทข้อผิดพลาด

  • INVALID_PARAMETERS (พารามิเตอร์ผิดพลาด)

  • AUTH_FAILURE (การตรวจสอบสิทธิ์ล้มเหลว)

  • INTERNAL_ERROR (ข้อผิดพลาดภายในบริการ) | | description | string | N | คำอธิบายข้อผิดพลาด |

ตัวอย่างการตอบกลับข้อผิดพลาด::

c. คำสั่งสังเคราะห์คำพูด

เกตเวย์ส่งคำสั่งไปยังผู้ให้บริการ TTS

:::tips

  • URL<service address>

  • วิธีการPOST

  • ส่วนหัว

    • Content-Type: application/json ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

directive

DirectiveObject

N

ข้อมูลโครงสร้างของวัตถุคำสั่ง

DirectiveObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวที่ร้องขอ

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload ที่ร้องขอ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อคำขอ พารามิเตอร์ที่เป็นทางเลือก:

  • SynthesizeSpeech | | message_id | string | N | รหัสข้อความคำขอ: UUID_V4 | | version | string | N | หมายเลขเวอร์ชันโปรโตคอลคำขอ ปัจจุบันกำหนดเป็น 1 |

PayloadObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

text

string

N

ข้อความที่ใช้สังเคราะห์เสียง

label

string

Y

ป้ายชื่อไฟล์เสียง

language

string

Y

ฟิลด์โปร่งใส ตัวเลือก รหัสภาษาสำหรับคำขอสังเคราะห์เสียง รายการรหัสภาษาที่รองรับโดยเฉพาะจะถูกจัดเตรียมโดยผู้ให้บริการเครื่องยนต์ TTS โปรดทราบว่า บริการเครื่องยนต์ TTS จำเป็นต้องรองรับภาษาตั้งต้นสำหรับการสังเคราะห์เสียง ซึ่งหมายความว่าหากไม่มีการส่งภาษามา จะใช้ภาษาตั้งต้นของเครื่องยนต์ในการสังเคราะห์

options

object

Y

ฟิลด์โปร่งใส ใช้ส่งพารามิเตอร์การกำหนดค่าที่จำเป็นสำหรับการสังเคราะห์ไปยังบริการเครื่องยนต์ TTS

ตัวอย่างคำขอ:

**พารามิเตอร์การตอบกลับที่ถูกต้อง:**

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

header

HeaderObject

N

ข้อมูลโครงสร้างส่วนหัวที่ร้องขอ

payload

PayloadObject

N

ข้อมูลโครงสร้าง payload ที่ร้องขอ

HeaderObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

name

string

N

ชื่อส่วนหัวการตอบกลับ พารามิเตอร์ที่เป็นทางเลือก:

  • การตอบกลับ (การตอบกลับที่สำเร็จ)

  • ErrorResponse (การตอบกลับข้อผิดพลาด) | | message_id | string | N | รหัสข้อความส่วนหัวการตอบกลับ, UUID_V4 ข้อความคำขอที่เข้ามาที่นี่: header.message_id | | version | string | N | หมายเลขเวอร์ชันโปรโตคอลคำขอ ปัจจุบันกำหนดเป็น 1 |

PayloadObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

audio

AudioObject

N

ไฟล์เสียง TTS

โครงสร้าง AudioObject

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

url

string

N

URL ไฟล์เสียง ตัวอย่างเช่น:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

ป้ายชื่อไฟล์เสียง

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และผ่านการยืนยันตัวตนของผู้ใช้ **รหัสสถานะ:**200 OK ตัวอย่างการตอบกลับ:: ::: ตัวอย่างการตอบกลับที่ถูกต้อง::

**พารามิเตอร์การตอบกลับผิดปกติ:**

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

type

string

N

ประเภทข้อผิดพลาด

  • INVALID_PARAMETERS (พารามิเตอร์ผิดพลาด)

  • AUTH_FAILURE (การตรวจสอบสิทธิ์ล้มเหลว)

  • INTERNAL_ERROR (ข้อผิดพลาดภายในบริการ) | | description | string | N | คำอธิบายข้อผิดพลาด |

ตัวอย่างการตอบกลับข้อผิดพลาด::

7. โมดูลมัลติมีเดีย

7.1 เล่นไฟล์เสียง

:::tips

  • URL/open-api/V2/rest/media/audio-player

  • วิธีการPOST

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

audio_url

string

N

ที่อยู่ URL ของไฟล์เสียง

ข้อมูลการตอบกลับที่ถูกต้อง: :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และผ่านการยืนยันตัวตนของผู้ใช้ **รหัสสถานะ:**200 OK ตัวอย่างการตอบกลับ:: :::

8. การ์ด UI แบบกำหนดเอง

การ์ด UI แบบกำหนดเองช่วยให้คุณแสดงเนื้อหาที่ต้องการภายในการ์ดได้ เนื้อหานี้อาจเป็นเว็บเพจ รูปภาพ หรือบริการใดๆ ที่มี UI คุณเพียงแค่ให้ URL ของเนื้อหาที่ต้องการแสดง การ์ด UI จะปรับความกว้างและความสูงโดยอัตโนมัติ และเนื้อหาจะถูกแสดงโดยใช้ iFrame

8.1 คำแนะนำ

บทบาทหลัก

  • ผู้ให้บริการ UI: ผู้ให้บริการที่รับผิดชอบในการสร้างการ์ด UI แบบกำหนดเองบนเกตเวย์

  • เซิร์ฟเวอร์เกตเวย์: เซิร์ฟเวอร์เกตเวย์ (iHost)

  • ลูกค้า Gateway Open API: ลูกค้า Open API สำหรับเกตเวย์

8.1.1 การสร้างการ์ด UI แบบกำหนดเอง

  • [ผู้ให้บริการ UI]: เรียก API เพื่อสร้างการ์ด UI แบบกำหนดเองบนเกตเวย์

  • [เซิร์ฟเวอร์เกตเวย์]: เมื่อการลงทะเบียนสำเร็จ เกตเวย์จะเก็บข้อมูลพื้นฐานของการ์ด UI (รวมถึงการกำหนดขนาดและ URL ของทรัพยากรการ์ด) และกำหนด ID การ์ด UI ภายในเกตเวย์

image.png

8.1.2 การดึงรายการการ์ด UI

  • [ผู้ให้บริการ UI]: เรียก API เพื่อดึงรายการการ์ด UI

  • [เซิร์ฟเวอร์เกตเวย์]: ส่งคืนรายการการ์ด UI ที่เก็บไว้บนเกตเวย์ รวมถึงการ์ด UI แบบกำหนดเองที่ไม่ได้สร้างโดยผู้เรียก

image.png

8.1.3 การแก้ไขการกำหนดค่าของการ์ด UI ที่ระบุ

  • [ผู้ให้บริการ UI]: เรียก API เพื่อแก้ไขการกำหนดค่าของการ์ด UI ที่ระบุ เช่น การกำหนดขนาดและ URL ของทรัพยากร

  • [เซิร์ฟเวอร์เกตเวย์]: เมื่อแก้ไขสำเร็จ เกตเวย์จะเก็บข้อมูลการ์ด UI ที่อัปเดต รวมถึงการกำหนดขนาดและ URL ของทรัพยากรใหม่

image.png

8.1.4 การลบการ์ด UI แบบกำหนดเอง

  1. [ผู้ให้บริการ UI]: เรียก API เพื่อลบการ์ด UI แบบกำหนดเองที่ระบุ

  2. [เซิร์ฟเวอร์เกตเวย์]: เกตเวย์จะลบข้อมูลทั้งหมดที่เกี่ยวข้องกับการ์ด UI ที่ระบุ

image.png

8.2 โมดูลการ์ด UI แบบกำหนดเอง

8.2.1 การสร้างการ์ด UI แบบกำหนดเอง

ผู้ให้บริการ UI ส่งคำขอไปยังเกตเวย์เพื่อสร้างการ์ด UI แบบกำหนดเอง

:::tips

  • URL/open-api/v2/rest/ui/cards

  • วิธีการPOST

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

label

string

Y

ป้ายการ์ด: ใช้เพื่ออธิบายการ์ด เป็นนามแฝงของการ์ด

cast_settings

CastSettingsObject

Y

การตั้งค่าการ์ด Cast: การกำหนดค่าการตั้งค่าสำหรับการ์ดแบบ Cast

web_settings

WebSettingsObject

N

การตั้งค่าการ์ดเว็บ: การกำหนดค่าการตั้งค่าสำหรับการ์ดเว็บ

CastSettingsObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

dimensions

DimensionObject []

N

การกำหนดขนาด: ต้องรวมการกำหนดค่าอย่างน้อยหนึ่งรายการ

default

string

N

สเปคเริ่มต้น: ใช้สเปคขนาดเริ่มต้น พารามิเตอร์เป็นทางเลือก: 2x2

WebSettingsObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

dimensions

DimensionObject []

N

การกำหนดขนาด: ต้องรวมการกำหนดค่าอย่างน้อยหนึ่งรายการ

drawer_component

DrawerObject

Y

การตั้งค่าการแสดงผลส่วนประกอบลิ้นชัก

default

string

N

สเปคเริ่มต้น:

  • 1x1

  • 2x1 |

DimensionObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

src

string

N

URL ทรัพยากร: ตัวอย่าง: http://example.html

size

string

N

สเปคขนาด:

พารามิเตอร์เป็นทางเลือกของ CastSettingsObject:

  • 2×2

พารามิเตอร์เป็นทางเลือกของ WebSettingsObject:

  • 1x1

  • 2x1 |

DrawerObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

src

string

N

URL ทรัพยากร: ตัวอย่าง: http://example.html

การตอบกลับข้อมูลสำเร็จ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

id

string

N

ID เอกลักษณ์ของการ์ด UI

:::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และการตรวจสอบตัวตนของผู้ใช้ผ่าน **รหัสสถานะ: ** 200 OK ::: 请求示例:

ตัวอย่างการตอบกลับ:

8.2.2 ดึงรายการการ์ด UI

:::tips

  • URL/open-api/v2/rest/ui/cards

  • วิธีการGET

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี พารามิเตอร์การตอบกลับ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

data

CardObject[]

N

รายการการ์ด UI

CardObjec Object:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

id

string

N

รหัสการ์ด: ตัวระบุเอกลักษณ์ของการ์ด

label

string

Y

ป้ายการ์ด: ใช้เพื่ออธิบายการ์ด ทำหน้าที่เป็นนามแฝงหรือชื่อของการ์ด

cast_settings

CastSettingsObject

Y

ป้ายการ์ด: ใช้เพื่ออธิบายการ์ด เป็นนามแฝงของการ์ด

web_settings

WebSettingsObject

N

การตั้งค่าการ์ด Cast: การกำหนดค่าการตั้งค่าสำหรับการ์ดแบบ Cast

app_name

string

Y

การตั้งค่าการ์ดเว็บ: การกำหนดค่าการตั้งค่าสำหรับการ์ดเว็บ

CastSettingsObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

dimensions

DimensionObject []

N

การกำหนดขนาด: ต้องรวมการกำหนดค่าอย่างน้อยหนึ่งรายการ

default

string

N

สเปคเริ่มต้น:

พารามิเตอร์ที่เป็นทางเลือก: 2x2

used

string

N

สเปคปัจจุบัน:

พารามิเตอร์ที่เป็นทางเลือก: 2x2

WebSettingsObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

dimensions

DimensionObject []

N

การกำหนดขนาด: ต้องรวมการกำหนดค่าอย่างน้อยหนึ่งรายการ

drawer_component

DrawerObject

Y

การตั้งค่าการแสดงผลส่วนประกอบลิ้นชัก

default

string

N

สเปคเริ่มต้น:

พารามิเตอร์ที่เป็นทางเลือก:

  • 1x1

  • 2x1 | | used | string | N | สเปคปัจจุบัน: พารามิเตอร์ที่เป็นทางเลือก:

  • 1x1

  • 2x1 |

DimensionObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

src

string

N

URL ทรัพยากร: ตัวอย่าง: http://example.html

size

string

N

สเปคขนาด:

พารามิเตอร์ที่เป็นทางเลือก:

  • 1x1

  • 2x1

หมายเหตุ: ปัจจุบัน การ์ดแบบ cast รองรับเฉพาะสเปค 2x2 เท่านั้น สเปค 2x2 จะไม่มีผล |

DrawerObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

src

string

N

URL ทรัพยากร: ตัวอย่าง: http://example.html

ตัวอย่างการตอบกลับ:

8.2.3 แก้ไขการกำหนดค่าของการ์ด UI ที่ระบุ

ผู้ใช้ที่ได้รับอนุญาตสามารถแก้ไขการกำหนดค่าของการ์ด UI ที่มีอยู่ผ่านอินเทอร์เฟซนี้ได้ ผู้ให้บริการการ์ดแบบกำหนดเองสามารถแก้ไขการ์ด UI ที่พวกเขาสร้างขึ้นเท่านั้น

:::tips

  • URL/open-api/v2/rest/ui/cards/{id}

  • วิธีการPUT

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

label

string

Y

ใช้เพื่ออธิบายการ์ด เป็นนามแฝงของการ์ด

cast_settings

CastSettingsObject

Y

การตั้งค่าการ์ด Cast

web_settings

WebSettingsObject

Y

การตั้งค่าการ์ดเว็บ

CastSettingsObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

used

string

Y, Either used หรือ src ต้องระบุ แต่ต้องมีอย่างน้อยหนึ่งในพารามิเตอร์เหล่านี้

สเปคปัจจุบัน:

พารามิเตอร์ที่เป็นทางเลือก:

  • 2x2

| | src | string | Y, Either used หรือ src ต้องระบุ แต่ต้องมีอย่างน้อยหนึ่งในพารามิเตอร์เหล่านี้ | URL ทรัพยากร: http://example.html |

WebSettingsObject:

แอตทริบิวต์

ประเภท

ตัวเลือก

คำอธิบาย

used

string

Y, Either used หรือ src ต้องระบุ แต่ต้องมีอย่างน้อยหนึ่งในพารามิเตอร์เหล่านี้

สเปคปัจจุบัน:

พารามิเตอร์ที่เป็นทางเลือก:

  • 1x1

  • 2x1 | | src | string | Y, Either used หรือ src ต้องระบุ แต่ต้องมีอย่างน้อยหนึ่งในพารามิเตอร์เหล่านี้ | URL ทรัพยากร: http://example.html |

การตอบกลับข้อมูลสำเร็จ: :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และผ่านการยืนยันตัวตนของผู้ใช้ การ์ด UI ที่กำลังแก้ไขต้องถูกสร้างโดยผู้ให้บริการการ์ด UI แบบกำหนดเองที่เรียกอินเทอร์เฟซนี้ **รหัสสถานะ:** 200 OK รหัสข้อผิดพลาด:

  • 406: ไม่มีสิทธิ์เข้าถึงทรัพยากรนี้ ::: **ตัวอย่างการตอบกลับ:**

**ตัวอย่างคำขอ:**

8.2.4 ลบการ์ด UI แบบกำหนดเอง

ผู้ใช้ที่ได้รับอนุญาตสามารถลบการ์ด UI ที่มีอยู่โดยใช้อินเทอร์เฟซนี้ได้ ผู้ให้บริการการ์ดแบบกำหนดเองสามารถลบการ์ด UI ที่พวกเขาสร้างขึ้นเท่านั้น

:::tips

  • URL/open-api/v2/rest/ui/cards/{id}

  • วิธีการDELETE

  • ส่วนหัว

    • Content-Type: application/json

    • Authorization: Bearer ::: พารามิเตอร์คำขอ: ไม่มี ข้อมูลการตอบกลับที่สำเร็จ: :::tips เงื่อนไข: พารามิเตอร์คำขอถูกต้อง และผ่านการยืนยันตัวตนของผู้ใช้ การ์ด UI ที่กำลังแก้ไขต้องถูกสร้างโดยผู้ให้บริการการ์ด UI แบบกำหนดเองที่เรียกอินเทอร์เฟซนี้ **รหัสสถานะ:** 200 OK รหัสข้อผิดพลาด:

  • 406: ไม่มีสิทธิ์เข้าถึงทรัพยากรนี้. ::: **ตัวอย่างการตอบกลับ:**

Last updated