QUERIES

จะเป็น Function ที่ใช้ในการดึงข้อมูลเพียงอย่างเดียว ประกอบด้วย

BillingAccount

สำหรับเข้าถึงข้อมูล Billing Account ซึ่งเป็นข้อมูล Account ที่จะรับผิดชอบค่าใช้จ่ายที่เกิดขึ้นจากการใช้งาน Platform รายละเอียดดังนี้

BillingAccount ( billingaccountid )

Arguments

  • billingaccountid: String คือ รหัสของ Billing Account (ต้องระบุค่า)

Query Variables

Authorization: JWT Token

Response Type : [BillingAccount]

ตอบกลับเป็น Array ของ Object Type BillingAccount ประกอบด้วย

  • billingaccountid: String คือ รหัสของ Billing Account

  • billingaccountname: String คือ ชื่อของ Billing Account

  • balance: Int คือ ยอดเงินคงเหลือจากการเติมเงินเพื่อใช้บริการ (Prepaid)

  • quota: JSON คือ โควต้าการใช้งานที่ยังสามารถใช้บริการต่าง ๆ ใน Platform ได้ ประกอบด้วย

    apicall: Int คือ โควต้าคงเหลือของการใช้บริการที่เกี่ยวกับ API

    message: Int คือ โควต้าคงเหลือที่นับเป็น message ของการใช้บริการ Platform

    shadowops: Int คือ โควต้าคงเหลือของการใช้บริการเกี่ยวกับ Shadow

    store: Int คือ โควต้าคงเหลือเกี่ยวกับการเก็บข้อมูล (Feed)

    trigger: Int คือ โควต้าคงเหลือของการใช้บริการเกี่ยวกับ Trigger

    (รายละเอียดการคิดโควต้าการใช้งานสามารถดูได้ที่หัวข้อ Billing)

  • available: Boolean คือ สถานะการอนุญาตให้ใช้งาน Platform (true อนุญาตให้ใช้งาน, false ไม่อนุญาตให้ใช้งาน)

  • createdtime: Timestamp คือ วันเวลาที่สร้าง Billing Account

  • updatedtime: Timestamp คือ วันเวลาที่มีการอัพเดทข้อมูลล่าสุด

ตัวอย่างการเข้าถึงข้อมูล Billing Account ดังรูปด้านล่าง

_images/gql_billingaccount.png

CountDeviceNumber

สำหรับขอข้อมูลจำนวน Device ภายใต้แต่ละ Project รายละเอียดดังนี้

countDeviceNumber ( projectid )

Arguments

  • projectid: String คือ รหัสของ Project ที่ต้องการทราบจำนวน Device ที่อยู่ภายใต้ (ต้องระบุค่า)

Query Variables

Authorization: JWT Token

Response Type : Count

ตอบกลับเป็น Object Type Count ประกอบด้วย

  • length: Int คือ จำนวน Device ทั้งหมดที่อยู่ภายใต้ Project

ตัวอย่างการขอข้อมูลจำนวน Device ภายใต้แต่ละ Project ดังรูปด้านล่าง

_images/gql_countdevicenumber.png

CountGroupNumber

สำหรับขอข้อมูลจำนวน Group ภายใต้แต่ละ Project รายละเอียดดังนี้

countGroupNumber ( projectid )

Arguments

  • projectid: String คือ รหัสของ Project ที่ต้องการทราบจำนวน Group ที่อยู่ภายใต้ (ต้องระบุค่า)

Query Variables

Authorization: JWT Token

Response Type : Count

ตอบกลับเป็น Object Type Count ประกอบด้วย

  • length: Int คือ จำนวน Group ทั้งหมดที่อยู่ภายใต้ Project

ตัวอย่างการขอข้อมูลจำนวน Group ภายใต้แต่ละ Project ดังรูปด้านล่าง

_images/gql_countgroupnumber.png

CountProjectNumber

สำหรับขอข้อมูลจำนวน Project ที่มีสิทธิ์เข้าถึงได้ รายละเอียดดังนี้

countProjectNumber

Arguments

  • ไม่มี

Query Variables

Authorization: JWT Token

Response Type : Count

ตอบกลับเป็น Object Type Count ประกอบด้วย

  • length: Int คือ จำนวน Project ที่มีสิทธิ์เข้าถึงได้

ตัวอย่างการขอข้อมูลจำนวน Project ที่มีสิทธิ์เข้าถึงได้ ดังรูปด้านล่าง

_images/gql_countprojectnumber.png

Hook

สำหรับเข้าถึงข้อมูลการตั้งค่า Event Hook รายละเอียดดังนี้

hook ( projectid, hookid )

Arguments

  • projectid: String คือ รหัสของ Project (ต้องระบุ)

  • hookid: String คือ รหัสของ Hook

Query Variables

Authorization: JWT Token

Response Type : [Hook]

ตอบกลับเป็น Array ของ Object Type Hook ประกอบด้วย

  • projectid: String คือ รหัสของ Project

  • name: String คือ ชื่อของ Event Hook

  • hookid: String คือ รหัสของ Event Hook

  • description: String คือ คำอธิบายของ Event Hook

  • type: String คือ ประเภทของ Event Hook

  • enabled: Boolean คือ สถานะการทำงานของ Event Hook (true เปิดให้ทำงาน, false ปิดการทำงาน)

  • param: JSON คือ Parameter ต่างๆ ที่ตั้งค่าไว้ใน Event Hook

ตัวอย่างการเข้าถึงข้อมูล Event Hook ดังรูปด้านล่าง

_images/gql_hook.png

Device

สำหรับเข้าถึงข้อมูล Device รายละเอียดดังนี้

device ( deviceid, projectid, groupid, tag, sort, limit )

Arguments (ต้องระบุอย่างน้อย 1 ค่า ที่ไม่ใช่ตัวแปร Option)

  • deviceid: String คือ รหัสของ Device

  • projectid: String คือ รหัสของ Project

  • groupid: String คือ รหัสของ Group

  • tag: String คือ แท็กของ Device

  • sort: OptionSort คือ การเรียงลำดับข้อมูล Object Type OptionSort ประกอบด้วย

    createdtime: Boolean คือ เรียงตามวันเวลาที่สร้าง Device ใช่หรอไม่ (true ใช่ ค่า default, false ไม่ใช่)

    desc: Boolean คือ ประเภทการเรียงลำดับจากวันเวลาที่สร้าง Device (true จากใหม่ไปเก่า, false จากเก่าไปใหม่)

    (ณ ปัจจุบัน ฟิลด์ที่ใช้เรียงลำดับได้มีเพียง createdtime เท่านั้น)

  • limit: OptionLimit คือ การจำกัดจำนวนข้อมูล Object Type OptionLimit ประกอบด้วย

    start: Int คือ เริ่มต้นดึงข้อมูลที่ชุดข้อมูลลำดับเท่าไหร่ (เริ่มต้นที่ศูนย์)

    count: Int คือ จำนวนชุดข้อมูลที่ต้องการ

Query Variables

Authorization: JWT Token

Response Type : [Device]

ตอบกลับเป็น Array ของ Object Type Device ประกอบด้วย

  • alias: String คือ ชื่อของ Device

  • billing: String คือ รหัสผู้ใช้ที่รับผิดชอบค่าใช้จ่าย

  • createdtime: Timestamp คือ วันเวลาที่สร้าง Device

  • credential: credential คือ ข้อมูลสำหรับยืนยันตัวตน Object Type credential ประกอบด้วย

    secret: String คือ รหัสลับของ Device สำหรับใช้ Authentication

  • description: String คือ คำอธิบาย Device

  • deviceid: String คือ รหัสของ Device

  • groupid: String คือ รหัสของ Group ที่ Device อยู่ภายใต้

  • groupname: String คือ ชื่อของ Group ที่ Device อยู่ภายใต้

  • projectid: String คือ รหัสของ Project ที่ Device อยู่ภายใต้

  • status: Int คือ สถานะการเชื่อมต่อ Platform ของ Device (0 offline, 1 online)

  • tag: String คือ แท็กของ Device

  • user: String คือ รหัสผู้ใช้ที่สร้าง Device

  • id: String คือ Primary Key ของ Device

ตัวอย่างการเข้าถึงข้อมูล Device ดังรูปด้านล่าง

_images/gql_device.png

DeviceToken

สำหรับเข้าถึงข้อมูล Token ของ Device รายละเอียดดังนี้

devicetoken ( deviceid )

Arguments

  • deviceid: String คือ รหัสของ Device (ต้องระบุค่า)

Query Variables

Authorization: JWT Token

Response Type : DeviceToken

ตอบกลับเป็น Object Type DeviceToken ประกอบด้วย

  • deviceid: String คือ รหัสของ Device

  • tokencode: String คือ รหัสของ Token

  • iat: String คือ วันเวลาที่ออก Token (issued at)

  • nbf: String คือ วันเวลาที่ Token จะเริ่มใช้งานได้ (not before)

  • exp: String คือ วันเวลาหมดอายุของ Token (expiration time)

  • expireIn: String คือ อายุของ Token

ตัวอย่างการเข้าถึงข้อมูล Token ของ Device ดังรูปด้านล่าง

_images/gql_devicetoken.png

Group

สำหรับเข้าถึงข้อมูล Group ซึ่งใช้ในการจัดกลุ่ม Device โดย Device ที่อยู่กลุ่มเดียวกันถึงจะสามารถสื่อสารกันได้ รายละเอียดดังนี้

group ( groupid, projectid, tag )

Arguments (ต้องระบุอย่างน้อย 1 ค่า)

  • groupid: String คือ รหัสของ Group

  • projectid: String คือ รหัสของ Project

  • tag: String คือ แท็กของ Group

Query Variables

Authorization: JWT Token

Response Type : [Group]

ตอบกลับเป็น Array ของ Object Type Group ประกอบด้วย

  • groupid: String คือ รหัสของ Group

  • groupname: String คือ ชื่อของ Group

  • projectid: String คือ รหัสของ Project ที่ Group อยู่ภายใต้

  • createdtime: Timestamp คือ วันเวลาที่สร้าง Group

  • description: String คือ คำอธิบาย Group

  • tag: String คือ แท็กของ Group

ตัวอย่างการเข้าถึงข้อมูล Group ดังรูปด้านล่าง

_images/gql_group.png

Membership

สำหรับเข้าถึงข้อมูล Membership ใช้ในการให้สิทธิ์ผู้ใช้คนอื่นสามารถเข้าถึงข้อมูลในแต่ละ Project ที่ตนเองไม่ได้เป็นเจ้าของได้ รายละเอียดดังนี้

membership ( projectid )

Arguments

  • projectid: String คือ รหัสของ Project (ต้องระบุค่า)

Query Variables

Authorization: JWT Token

Response Type : [Membership]

ตอบกลับเป็น Array ของ Object Type Membership ประกอบด้วย

  • createdtime: Timestamp คือ วันเวลาที่สร้าง Membership

  • level: String คือ ระดับชั้นของการเป็นสมาชิก

  • projectid: String คือ รหัสของ Project ที่ Membership อยู่ภายใต้

  • email: String คือ email ของผู้ใช้ที่เป็นสมาชิก

ตัวอย่างการเข้าถึงข้อมูล Membership ดังรูปด้านล่าง

_images/gql_membership.png

Project

สำหรับเข้าถึงข้อมูล Project รายละเอียดดังนี้

project ( projectid, tag )

Arguments (ต้องระบุอย่างน้อย 1 ค่า)

  • projectid: String คือ รหัสของ Project

  • tag: String คือ แท็กของ Project

Query Variables

Authorization : JWT Token

Response Type : [Project]

ตอบกลับเป็น Array ของ Object Type Project ประกอบด้วย

  • projectname: String คือ ชื่อของ Project

  • projectid: String คือ รหัสของ Project

  • createdtime: Timestamp คือ วันเวลาที่สร้าง Project

  • description: String คือ คำอธิบาย Project

  • tag: String คือ แท็กของ Project

  • numberdevice: Int คือ จำนวน Device ภายใต้ Project

  • numbergroup: Int คือ จำนวน Group ภายใต้ Project

  • numberdeviceonline: Int คือ จำนวน Device ที่เชื่อมต่อ Platform อยู่ ณ ขณะนั้นภายใต้ Project

  • numberdeviceoffline: Int คือ จำนวน Device ที่ไม่ได้เชื่อมต่อ Platform อยู่ ณ ขณะนั้นภายใต้ Project

ตัวอย่างการเข้าถึงข้อมูล Project ดังรูปด้านล่าง

_images/gql_project.png

ProjectBilling

สำหรับเข้าถึงข้อมูลการใช้บริการทั้งหมดของแต่ละ Project รายละเอียดดังนี้

ProjectBilling ( projectid )

Arguments

  • projectid: String คือ รหัสของ Project (ต้องระบุ)

Query Variables

Authorization : JWT Token

Response Type : ProjectBilling

ตอบกลับเป็น Object Type ProjectBilling ประกอบด้วย

  • billingaccountid: String คือ รหัสของ Billing Account

  • createdtime: Timestamp คือ วันเวลาที่สร้าง Project Billing

  • updatedtime: Timestamp คือ วันเวลาที่อัพเดทข้อมูลล่าสุด

  • usage: JSON คือ ข้อมูลการใช้บริการ

ตัวอย่างการเข้าถึงข้อมูล Project Billing ดังรูปด้านล่าง

_images/gql_projectbilling.png

Schema

สำหรับเข้าถึงข้อมูล Shadow Schema ของ Device รายละเอียดดังนี้

schema ( deviceid )

Arguments

  • deviceid: String คือ รหัสของ Device (ต้องระบุค่า)

Query Variables

Authorization: JWT Token

Response Type : Schema

ตอบกลับเป็น Object Type Schema ประกอบด้วย

  • deviceid: String คือ รหัสของ Device

  • value: JSON คือ Shadow Schema ที่กำหนดไว้ ซึ่งจะอยู่ในรูปแบบ JSON

ตัวอย่างการเข้าถึงข้อมูล Shadow Schema ของ Device ดังรูปด้านล่าง

_images/gql_schema.png

Shadow

สำหรับเข้าถึงข้อมูล Shadow ของ Device รายละเอียดดังนี้

shadow ( deviceid )

Arguments

  • deviceid: String คือ รหัสของ Device (ต้องระบุค่า)

  • command: String คือ ระบุ JSON Path โครงสร้าง Shadow ที่ต้องการเข้าถึงค่า (กรณีที่ต้องการข้อมูลบางส่วนใน Shadow)

Query Variables

Authorization: JWT Token

Response Type : Shadow

ตอบกลับเป็น Object Type Shadow ประกอบด้วย

  • deviceid: String คือ รหัสของ Device

  • data: JSON คือ Shadow ที่กำหนดไว้ ซึ่งจะอยู่ในรูปแบบ JSON

  • rev: Int คือ เลขที่ Revision

  • modified: Timestamp คือ วันเวลาที่มีการแก้ไขข้อมูลล่าสุด

ตัวอย่างการเข้าถึงข้อมูล Shadow ของ Device แบบไม่ระบุ command จะได้ Shadow มาทั้งหมด ดังรูปด้านล่าง

_images/gql_shadow.png

ตัวอย่างการเข้าถึงข้อมูล Shadow ของ Device แบบไม่ระบุ command จะได้ Shadow มาทั้งหมด ดังรูปด้านล่าง

_images/gql_shadowpath.png

Note

การส่งค่า command Parameter ในการ Query Shadow


ตัวอย่างโครงสร้างข้อมูล Shadow เป็นดังนี้

{ "bedroom": { "humit": 60.3, "temp": 25.4 }, "humit": 67.9, "temp": 29 }


สามารถกำหนด command ได้ 2 แบบ คือ


แบบที่ 1 value:[Shadow Path ของ Attribute ที่ต้องการค่า] เช่น

command: "value:bedroom.temp" ได้ผลลัพธ์เป็น 25.4

command: "value:temp" ได้ผลลัพธ์เป็น 29


แบบที่ 2 กำหนดในรูปแบบ JSON String เช่น

command: "{'value':'bedroom.temp'}" ได้ผลลัพธ์เป็น 25.4

command: "{'value':'temp'}" ได้ผลลัพธ์เป็น 29


Trigger

สำหรับเข้าถึงข้อมูล Trigger ของ Device รายละเอียดดังนี้

trigger ( deviceid )

Arguments

  • deviceid: String คือ รหัสของ Device (ต้องระบุค่า)

Query Variables

Authorization: JWT Token

Response Type : Trigger

ตอบกลับเป็น Object Type Trigger ประกอบด้วย

  • id: String คือ Primary Key ของ Device

  • deviceid: String คือ รหัสของ Device

  • value: JSON คือ การตั้งค่า Trigger ที่กำหนดไว้ ซึ่งจะอยู่ในรูปแบบ JSON

ตัวอย่างการเข้าถึงข้อมูล Trigger ของ Device ดังรูปด้านล่าง

_images/gql_trigger.png