MUTATIONS


จะเป็น Function ที่ใช้ในการเขียนข้อมูลหรือมีการเปลี่ยนแปลงข้อมูลใน Database และสามารถตอบกลับผลลัพธ์ได้เช่นเดียวกับ Queries ประกอบด้วย


ClearFeed

สำหรับลบข้อมูลทั้งหมดใน Time Series Data Store ของ Device ตัวนั้น ๆ ใช้ในกรณีที่ต้องการลบข้อมูลในช่วงการทดสอบระบบ หรือเป็นข้อมูลที่ไม่ได้ใช้งานจริง รายละเอียดดังนี้

clearFeed ( feedid ):

Arguments

  • feedid: String คือ รหัสของ Feed ซึ่งใช้ค่าเดียวกับ deviceid (ต้องระบุค่า)

Query Variables

Authorization: User Token

Response Type : FeedData

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

  • feedid: String คือ รหัสของ Feed

  • data: JSON คือ ข้อมูลในแต่ละฟิลด์

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

_images/gql2_clearfeed.png

CreateAPIToken

สำหรับสร้างและขอ API Token เป็น Authentication เพื่อใช้งาน API ต่างๆ ใน Platform รายละเอียดดังนี้

createAPIToken ( payload, nbf, expireIn ):

Arguments

  • payload: payload คือ ระบุสิ่งที่อนุญาตให้เข้าถึงในรูปแบบ Object Type แยกเป็น 3 ฟิล์ด คือ

    • device: [device_permission] คือ สิทธิ์ในการเข้าถึง Device อยู่ในรูปแบบ Array ของ Object ประกอบด้วย

      • deviceid: String คือ รหัสของ Device ที่อนุญาตให้เข้าถึง

      • scope: [scope] คือ ขอบเขตสิทธิ์การเข้าถึง ประกอบด้วย

        • read_shadow (อนุญาตอ่าน Shadow ของ Device)

        • write_shadow (อนุญาตเขียน Shadow ของ Device)

        • read_feed (อนุญาตอ่านข้อมูลใน Timeseries Data ของ Device)

        • read_devicestatus (อนุญาตอ่านสถานะการเชื่อมต่อ Platform ของ Device)

    • project: [project_permission] คือ สิทธิ์ในการเข้าถึง Project อยู่ในรูปแบบ Array ของ Object ประกอบด้วย

      • projectid: String คือ รหัสของ Project ที่อนุญาตให้เข้าถึง

      • scope: [scope] คือ ขอบเขตสิทธิ์การเข้าถึง ประกอบด้วย

        • read_shadow (อนุญาตอ่าน Shadow ของทุก Device ภายใต้ Project)

        • write_shadow (อนุญาตเขียน Shadow ของทุก Device ภายใต้ Project)

        • read_feed (อนุญาตอ่านข้อมูลใน Timeseries Data ของทุก Device ภายใต้ Project)

        • read_devicestatus (อนุญาตอ่านสถานะการเชื่อมต่อ Platform ของทุก Device ภายใต้ Project)

    • group: [group_permission] คือ สิทธิ์ในการเข้าถึง Group อยู่ในรูปแบบ Array ของ Object ประกอบด้วย

      • groupid: String คือ รหัสของ Group ที่อนุญาตให้เข้าถึง

      • scope: [scope] คือ ขอบเขตสิทธิ์การเข้าถึง ประกอบด้วย

        • read_shadow (อนุญาตอ่าน Shadow ของทุก Device ภายใต้ Group)

        • write_shadow (อนุญาตเขียน Shadow ของทุก Device ภายใต้ Group)

        • read_feed (อนุญาตอ่านข้อมูลใน Timeseries Data ของทุก Device ภายใต้ Group)

        • read_devicestatus (อนุญาตอ่านสถานะการเชื่อมต่อ Platform ของทุก Device ภายใต้ Group)

  • nbf: nbf_format คือ เวลาที่ Token จะเริ่มใช้งานได้ อยู่ในรูปแบบ Object Type { unit: value } ระบุค่าได้ 3 หน่วย คือ

    • minutes: Int คือ ระยะเวลาเป็นหน่วย นาที

    • hours: Int คือ ระยะเวลาเป็นหน่วย ชั่วโมง

    • days: Int คือ ระยะเวลาเป็นหน่วย วัน

  • expireIn: expireIn_format คือ อายุของ Token อยู่ในรูปแบบ Object Type { unit: value } ระบุค่าได้ 3 หน่วย คือ

    • minutes: Int คือ ระยะเวลาเป็นหน่วย นาที

    • hours: Int คือ ระยะเวลาเป็นหน่วย ชั่วโมง

    • days: Int คือ ระยะเวลาเป็นหน่วย วัน

Query Variables

Authorization: User Token

Response Type : ApiToken

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

  • access_token: String คือ Token สำหรับเข้าใช้บริการ API ต่างๆ ตามสิทธิ์ที่ได้รับ

  • refresh_token: String คือ Token สำหรับใช้ขอ Access Token ใหม่เมื่อหมดอายุ

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

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

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

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

  • userid:String คือ รหัสของ User ที่เป็นผู้ให้สิทธิ์

  • _key:String คือ รหัสอ้างอิง

ตัวอย่างการสร้างและขอ API Token ดังรูปด้านล่าง

_images/gql2_createapitoken.png

CreateDevice

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

createDevice ( projectid, deviceid, deviceinfo ):

Arguments

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

  • deviceid: String คือ รหัสของ Device (ถ้าไม่ระบุ ระบบจะทำการสร้างให้อัตโนมัติ)

  • deviceinfo: DeviceInfo คือ Object Type ที่เป็นรายละเอียดของ Device ประกอบด้วย

    • alias: String คือ ชื่อของ Device (ถ้าไม่ระบุจะถูกกำหนดเป็นค่าเดียวกับ deviceid ใช้สำหรับอ้างอิงถึง Device)

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

    • tag: String คือ แท็กของ Device ในรูปแบบค่าเดียว

    • hashtag: [String] คือ แท็กของ Device ในรูปแบบหลายค่า

    • tags: JSON คือ แท็กของ Device ในรูปแบบ Key Value

Query Variables

Authorization: User Token

Response Type : DeviceWithToken

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

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

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

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

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

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

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

  • devicetoken: [String] คือ รายการ Token ทั้งหมดของ Device

  • devicesecret: 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 ในรูปแบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Device ในรูปแบบหลายค่า

  • tags: JSON คือ แท็กของ Device ในรูปแบบ Key Value

  • enabled: Boolean คือ สถานะการเปิดใช้งาน Device (true เปิดการใช้งาน [default], false ปิดการใช้งาน)

  • banned: Boolean คือ สถานะถูกระงับใช้งานจากระบบ (true ถูกรระงับใช้งาน, false ไม่ถูกรระงับใช้งาน [default])

  • token: Token คือ Object Type ของข้อมูล Token ประกอบด้วย

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

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

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

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

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

ตัวอย่างการสร้าง Device ใหม่ ดังรูปด้านล่าง

_images/gql2_createdevice.png

CreateDeviceToken

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

createDeviceToken ( deviceid, expireIn, nbf, scope, verify ):

Arguments

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

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

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

  • scope: [String] คือ ขอบเขตสิทธิ์ของ Token ที่สามารถดำเนินการได้ จะอยู่ในรูปแบบ Array ของ String

  • verify: Boolean คือ ต้องมีการตรวจสอบข้อมูลที่ส่งมาว่าถูกต้องหรือไม่

Query Variables

Authorization: User 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

ตัวอย่างการสร้าง Device Token ใหม่ ดังรูปด้านล่าง

_images/gql2_createdevicetoken.png

CreateGroup

สำหรับขอสร้าง Group ใหม่ รายละเอียดดังนี้

createGroup ( projectid, groupname, description, tag, hashtag, tags ):

Arguments

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

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

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

  • tag: String คือ แท็กของ Group แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Group แบบหลายค่า

  • tags: JSON คือ แท็กของ Group ในรูปแบบ Key Value

Query Variables

Authorization: User Token

Response Type : Group

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

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

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

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

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

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

  • tag: String คือ แท็กของ Group แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Group แบบหลายค่า

  • tags: Json คือ แท็กของ Group ในรูปแบบ Key Value

ตัวอย่างการสร้าง Group ใหม่ ดังรูปด้านล่าง

_images/gql2_creategroup.png

CreateHook

สำหรับสร้าง Event Hook ใหม่ รายละเอียดดังนี้

createHook ( projectid, name, description, type, enabled, param ):

Arguments

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

  • name: String คือ ชื่อของ Hook (ต้องระบุ)

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

  • type: String คือ ประเภทของ Hook (ปัจจุบันมีประเภทเดียว คือ WEBHOOK)

  • enabled: Boolean คือ สถานะการเปิดใช้งาน Hook (true เปิดการใช้งาน, false ปิดการใช้งาน [default])

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

Query Variables

Authorization: User Token

Response Type : Hook

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

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

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

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

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

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

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

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

ตัวอย่างการสร้าง Hook ดังรูปด้านล่าง

_images/gql2_createhook.png

CreateMembership

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

createMembership ( projectid, username, level ):

Arguments

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

  • username: String คือ username ของผู้ใช้ที่เป็นสมาชิก (ต้องระบุค่า)

  • level: UserLevel คือ ระดับชั้นของการเป็นสมาชิก ได้แก่ (ดูรายละเอียดสิทธิ์ได้ที่ Member)

    • Guest (default)

    • Viewer

    • Editor

    • Master

    • Owner

Query Variables

Authorization: User Token

Response Type : Membership

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

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

  • level: UserLevel คือ ระดับสิทธิ์ของการเป็นสมาชิก มีทั้งหมด 5 ระดับ (ดูรายละเอียดสิทธิ์ได้ที่ Member)

    • 5 (Owner)

    • 4 (Master)

    • 3 (Editor)

    • 2 (Viewer)

    • 1 (Guest)

  • projectid: String คือ รหัสของ Project ที่ได้รับสิทธิ์

  • userid: String คือ รหัสของผู้ใช้ที่ได้รับสิทธิ์

  • username: String คือ username ของผู้ใช้ที่ได้รับสิทธิ์

ตัวอย่างการสร้าง Membership ใหม่ ดังรูปด้านล่าง

_images/gql2_createmembership.png

CreateProject

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

createProject ( projectname, billingaccountid, description, tag, hashtag, tags ):

Arguments

  • projectname: String คือ ชื่อของ Project (ต้องระบุค่า)

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

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

  • tag: String คือ แท็กของ Project แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Project แบบหลายค่า

  • tags: TagsInput คือ แท็กของ Project ในรูปแบบ Key Value

Query Variables

Authorization : User Token

Response Type : Project

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

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

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

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

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

  • userlevel: String คือ ระดับสิทธิ์การเข้าถึงข้อมูลใน Project ของ User

  • tags: Json คือ แท็กของ Project ในรูปแบบ Key Value

  • tag: String คือ แท็กของ Project แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Project แบบหลายค่า

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

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

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

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

  • quota: Quota คือ สถานะของ Service แต่ละรายการที่มีโควต้าพร้อมใช้งาน ซึ่งประกอบด้วย

    • apicall: Boolean คือ บริการ REST API (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • connection: Boolean คือ บริการเชื่อมต่อ Platform ของ Device (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • message: Boolean คือ บริการ Real Time Message ผ่าน MQTT Protocol (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • shadowops: Boolean คือ บริการอ่าน/เขียน Shadow (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • store: Boolean คือ บริการเก็บข้อมูลใน Time Series Data (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • trigger: Boolean คือ บริการ Trigger & Action (Notification) (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • datasource: Boolean คือ ผลรวมขนาด Byte ของข้อมูลที่มีการใช้บริการผ่าน apicall (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

ตัวอย่างการสร้าง Project ใหม่ ดังรูปด้านล่าง

_images/gql2_createproject.png

CreateTrigger

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

createTrigger ( deviceid, triggerid, triggername, type, event, condition, action, context, enabled ):

Arguments

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

  • triggerid: String คือ รหัสของ Trigger

  • triggername: String คือ ชื่อของ Trigger

  • type: TriggerType คือ ประเภท Trigger (DEVICE, SHADOW) (ต้องระบุค่า)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW) (ต้องระบุค่า)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook ประกอบด้วย

    • key: String คือ ชื่อของตัวแปร

    • value: String คือ ค่าของตัวแปร

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

Query Variables

Authorization: User Token

Response Type : [Trigger]

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

  • triggerid: String คือ รหัสของ Trigger

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

ตัวอย่างการใช้งาน ดังรูปด้านล่าง

_images/gql2_createtrigger.png

DeleteAllTriggers

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

deleteAllTriggers ( deviceid ):

Arguments

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

Query Variables

Authorization: User Token

Response Type : [Trigger]

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

  • triggerid: String คือ รหัสของ Trigger

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

ตัวอย่างการใช้งาน ดังรูปด้านล่าง

_images/gql2_deletealltriggers.png

DeleteDevice

สำหรับลบ Device ด้วย ID รายละเอียดดังนี้

deleteDevice ( deviceid ):

Arguments

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

Query Variables

Authorization: User Token

Response Type : Device

ตอบกลับเป็น Object Type Device ที่ถูกลบ ประกอบด้วย

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

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

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

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

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

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

  • devicesecret: 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 ในรูปแบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Device ในรูปแบบหลายค่า

  • tags: Json คือ แท็กของ Device ในรูปแบบ Key Value

  • enabled: Boolean คือ สถานะการเปิดใช้งาน Device (true เปิดการใช้งาน [default], false ปิดการใช้งาน)

  • banned: Boolean คือ สถานะถูกระงับใช้งานจากระบบ (true ถูกรระงับใช้งาน, false ไม่ถูกรระงับใช้งาน)

ตัวอย่างการลบ Device ด้วย ID ดังรูปด้านล่าง

_images/gql2_deletedevice.png

DeleteFeedData

สำหรับลบข้อมูลบางส่วน Time Series Data Store ของ Device ตัวนั้น ๆ เช่น ข้อมูลช่วงที่ไม่ถูกต้อง รายละเอียดดังนี้

deleteFeedData ( feedid, attributes, starttime, endtime ):

Arguments

  • feedid: String คือ รหัสของ Feed ซึ่งใช้ค่าเดียวกับ deviceid (ต้องระบุค่า)

  • attributes: [String] คือ ชื่่อฟิลด์ที่ต้องการลบข้อมูล (ถ้าไม่ระบุจะเป็นการลบข้อมูลทุกฟิลด์)

  • starttime: Timestamp คือ ช่วงเวลาเริ่มต้นที่ต้องการลบข้อมูล (ไม่ระบุ คือ ลบทั้งหมด)

  • endtime: Timestamp คือ ช่วงเวลาสิ้นสุดที่ต้องการลบข้อมูล (ไม่ระบุ คือ ลบทั้งหมด)

Query Variables

Authorization: User Token

Response Type : FeedData

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

  • feedid: String คือ รหัสของ Feed

  • data: JSON คือ ข้อมูลในแต่ละฟิลด์

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

_images/gql2_deletefeeddata.png

DeleteGroup

สำหรับลบ Group ด้วย ID รายละเอียดดังนี้

deleteGroup ( groupid ):

Arguments

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

Query Variables

Authorization: User Token

Response Type : Group

ตอบกลับเป็น Object Type Group ที่ถูกลบ ประกอบด้วย

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

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

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

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

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

  • tag: String คือ แท็กของ Group แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Group แบบหลายค่า

  • tags: Json คือ แท็กของ Group ในรูปแบบ Key Value

ตัวอย่างการลบ Group ด้วย ID ดังรูปด้านล่าง

_images/gql2_deletegroup.png

DeleteHook

สำหรับลบ Hook ด้วย ID รายละเอียดดังนี้

deleteHook ( projectid, hookid ):

Arguments

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

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

Query Variables

Authorization: User Token

Response Type : Hook

ตอบกลับเป็น Object Type Hook ที่ถูกลบ ประกอบด้วย

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

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

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

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

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

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

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

ตัวอย่างการลบ Hook ดังรูปด้านล่าง

_images/gql2_deletehook.png

DeleteMembership

สำหรับลบ Membership ในแต้ละ Project รายละเอียดดังนี้

deleteMembership ( projectid, username ):

Arguments

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

  • username: String คือ username ของผู้ใช้ที่เป็นสมาชิกและต้องการลบ (ต้องระบุค่า)

Query Variables

Authorization: User Token

Response Type : Membership

ตอบกลับเป็น Object Type Membership ที่ถูกลบ ประกอบด้วย

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

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

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

  • userid: Striing คือ รหัสของ User

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

ตัวอย่างการลบ Membership ดังรูปด้านล่าง

_images/gql2_deletemembership.png

DeleteProject

สำหรับลบ Project ด้วย ID รายละเอียดดังนี้

deleteProject ( projectid ):

Arguments

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

Query Variables

Authorization: User Token

Response Type : Project

ตอบกลับเป็น Object Type Project ที่ถูกลบ ประกอบด้วย

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

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

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

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

  • userlevel: String คือ ระดับสิทธิ์การเข้าถึงข้อมูลใน Project ของ User

  • tags: Json คือ แท็กของ Project ในรูปแบบ Key Value

  • tag: String คือ แท็กของ Project แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Project แบบหลายค่า

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

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

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

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

  • quota: Quota คือ สถานะของ Service แต่ละรายการที่มีโควต้าพร้อมใช้งาน ซึ่งประกอบด้วย

    • apicall: Boolean คือ บริการ REST API (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • connection: Boolean คือ บริการเชื่อมต่อ Platform ของ Device (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • message: Boolean คือ บริการ Real Time Message ผ่าน MQTT Protocol (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • shadowops: Boolean คือ บริการอ่าน/เขียน Shadow (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • store: Boolean คือ บริการเก็บข้อมูลใน Time Series Data (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • trigger: Boolean คือ บริการ Trigger & Action (Notification) (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • datasource: Boolean คือ ผลรวมขนาด Byte ของข้อมูลที่มีการใช้บริการผ่าน apicall (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

ตัวอย่างการลบ Project ด้วย ID ดังรูปด้านล่าง

_images/gql2_deleteproject.png

DeleteTrigger

สำหรับลบ Trigger รายตัว รายละเอียดดังนี้

deleteTrigger ( deviceid, triggerid ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่เซ็ต Trigger ไว้ (ต้องระบุค่า)

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

Query Variables

Authorization: User Token

Response Type : Trigger

ตอบกลับเป็น Object Type Trigger ที่ถูกลบ ประกอบด้วย

  • triggerid: String คือ รหัสของ Trigger

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

ตัวอย่างการใช้งาน ดังรูปด้านล่าง

_images/gql2_deletetrigger.png

DisableAllTriggers

สำหรับปิดการใช้งาน Trigger ทั้งหมดที่อยู่ภายใต้ Device นั้น ๆ รายละเอียดดังนี้

disableAllTriggers ( deviceid ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่เซ็ต Trigger ไว้ (ต้องระบุค่า)

Query Variables

Authorization: User Token

Response Type : [Trigger]

ตอบกลับเป็น Array ของ Object Type Trigger ที่ปิดการใช้งาน ประกอบด้วย

  • triggerid: String คือ รหัสของ Trigger

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

ตัวอย่างการใช้งาน ดังรูปด้านล่าง

_images/gql2_disablealltriggers.png

DisableDevice

สำหรับเซ็ตปิดการใช้งาน Device แต่ละตัวด้วย DeviceID (เซ็ต enabled ให้เป็น false) รายละเอียดดังนี้

disableDevice ( deviceid ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่ต้องการปิดการใช้งาน (ต้องระบุค่า)

Query Variables

Authorization: User Token

Response Type : Trigger

ตอบกลับเป็น Object Type Device ที่ถูกลบ ประกอบด้วย

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

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

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

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

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

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

  • devicesecret: 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 แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Device แบบหลายค่า

  • tags: JSON คือ แท็กของ Device ในรูปแบบ Key Value

  • enabled: Boolean คือ สถานะการเปิดใช้งาน Device (true เปิดการใช้งาน [default], false ปิดการใช้งาน)

  • banned: Boolean คือ สถานะถูกระงับใช้งานจากระบบ (true ถูกรระงับใช้งาน, false ไม่ถูกรระงับใช้งาน)

ตัวอย่างการเซ็ตปิดการใช้งาน Device ดังรูปด้านล่าง

_images/gql2_disabledevice.png

DisableTrigger

สำหรับปิดการใช้งาน Trigger รายตัว รายละเอียดดังนี้

disableTrigger ( deviceid, triggerid ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่เซ็ต Trigger ไว้ (ต้องระบุค่า)

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

Query Variables

Authorization: User Token

Response Type : Trigger

ตอบกลับเป็น Object Type Trigger ที่ปิดการใช้งาน ประกอบด้วย

  • triggerid: String คือ รหัสของ Trigger

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

ตัวอย่างการใช้งาน ดังรูปด้านล่าง

_images/gql2_disabletrigger.png

EnableAllTriggers

สำหรับเปิดการใช้งาน Trigger ทั้งหมดที่อยู่ภายใต้ Device นั้น ๆ รายละเอียดดังนี้

disableAllTriggers ( deviceid ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่เซ็ต Trigger ไว้ (ต้องระบุค่า)

Query Variables

Authorization: User Token

Response Type : [Trigger]

ตอบกลับเป็น Array ของ Object Type Trigger ที่เปิดการใช้งาน ประกอบด้วย

  • triggerid: String คือ รหัสของ Trigger

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

ตัวอย่างการใช้งาน ดังรูปด้านล่าง

_images/gql2_enablealltriggers.png

EnableDevice

สำหรับเซ็ตเปิดการใช้งาน Device แต่ละตัวด้วย DeviceID (เซ็ต enabled ให้เป็น true) รายละเอียดดังนี้

enableDevice ( deviceid ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่ต้องการเปิดการใช้งาน (ต้องระบุค่า)

Query Variables

Authorization: User Token

Response Type : Trigger

ตอบกลับเป็น Object Type Device ที่ถูกลบ ประกอบด้วย

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

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

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

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

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

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

  • devicesecret: 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 แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Device แบบหลายค่า

  • tags: JSON คือ แท็กของ Device ในรูปแบบ Key Value

  • enabled: Boolean คือ สถานะการเปิดใช้งาน Device (true เปิดการใช้งาน [default], false ปิดการใช้งาน)

  • banned: Boolean คือ สถานะถูกระงับใช้งานจากระบบ (true ถูกรระงับใช้งาน, false ไม่ถูกรระงับใช้งาน)

ตัวอย่างการเซ็ตเปิดการใช้งาน Device ดังรูปด้านล่าง

_images/gql2_enabledevice.png

EnableTrigger

สำหรับเปิดการใช้งาน Trigger รายตัว รายละเอียดดังนี้

enableTrigger ( deviceid, triggerid ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่เซ็ต Trigger ไว้ (ต้องระบุค่า)

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

Query Variables

Authorization: User Token

Response Type : Trigger

ตอบกลับเป็น Object Type Trigger ที่เปิดการใช้งาน ประกอบด้วย

  • triggerid: String คือ รหัสของ Trigger

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

ตัวอย่างการใช้งาน ดังรูปด้านล่าง

_images/gql2_enabletrigger.png

GroupDevice

สำหรับกำหนด Group ให้ Devices รายละเอียดดังนี้

groupDevice ( deviceid, groupid ):

Arguments

  • deviceid: [String] คือ Array ของรหัส Device ที่ต้องการกำหนดกลุ่ม (ต้องระบุค่าอย่างน้อย 1 Device)

  • groupid: String คือ รหัสของ Group ที่จะกำหนดให้กับ Devices (ต้องระบุค่า)

Query Variables

Authorization: User Token

Response Type : [Device]

ตอบกลับเป็น Array ของ Object Type Device ที่ถูกกำหนด Group ประกอบด้วย

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

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

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

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

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

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

  • devicesecret: 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 แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Device แบบหลายค่า

  • tags: Json คือ แท็กของ Device ในรูปแบบ Key Value

  • enabled: Boolean คือ สถานะการเปิดใช้งาน Device (true เปิดการใช้งาน [default], false ปิดการใช้งาน)

  • banned: Boolean คือ สถานะถูกระงับใช้งานจากระบบ (true ถูกรระงับใช้งาน, false ไม่ถูกรระงับใช้งาน)

ตัวอย่างการกำหนด Group ให้ Devices ดังรูปด้านล่าง

_images/gql2_groupdevice.png

LeaveProject

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

leaveProject ( projectid ):

Arguments

  • projectid: String คือ รหัสของ Project ที่ต้องการออกจากการเป็นสมาชิก (ต้องระบุค่า)

Query Variables

Authorization: User Token

Response Type : Membership

ตอบกลับเป็น Object Type Membership ที่ถูกลบ ประกอบด้วย

  • createdtime: Timestamp คือ วันเวลาที่ได้เป็นสมาชิก

  • level: UserLevel คือ ระดับสิทธิ์ของการเป็นสมาชิก มีทั้งหมด 5 ระดับ (ดูรายละเอียดสิทธิ์ได้ที่ Member)

    • 5 (Owner)

    • 4 (Master)

    • 3 (Editor)

    • 2 (Viewer)

    • 1 (Guest)

  • projectid: String คือ รหัสของ Project ที่ออกจากการเป็นสมาชิก

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

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

ตัวอย่างการลบ Membership ดังรูปด้านล่าง

_images/gql2_leaveproject.png

MoveDeviceToProject

สำหรับย้าย Device ไปยัง Project ที่ต้องการ รายละเอียดดังนี้

moveDeviceToProject ( deviceid, devicesecret, projectid ):

Arguments

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

  • devicesecret: String คือ รหัสลับของ Device ที่ต้องการย้าย Project

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

Query Variables

Authorization: User Token

Response Type : DeviceWithToken

ตอบกลับเป็น Object Type DeviceWithToken ที่ถูกลบ ประกอบด้วย

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

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

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

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

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

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

  • devicetoken: [String] คือ รายการ Token ของ Device

  • devicesecret: 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 แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Device แบบหลายค่า

  • tags: JSON คือ แท็กของ Device ในรูปแบบ Key Value

  • enabled: Boolean คือ สถานะการเปิดใช้งาน Device (true เปิดการใช้งาน [default], false ปิดการใช้งาน)

  • banned: Boolean คือ สถานะถูกระงับใช้งานจากระบบ (true ถูกรระงับใช้งาน, false ไม่ถูกรระงับใช้งาน)

  • token: Token คือ Object Type ของข้อมูล Token ประกอบด้วย

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

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

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

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

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

ตัวอย่างการย้าย Device ไปยัง Project ดังรูปด้านล่าง

_images/gql2_movedevicetoproject.png

PublishMessageToDevice

สำหรับ Publish ข้อมูลแบบเจาะจงไปยังแต่ละ Device เหมาะสำหรับใช้กับ Application ที่พัฒนาขึ้นมาเพื่อใช้สื่อสารกับ Device โดย User Token ที่ใช้ Authorization จะต้องเป็นของผู้ที่เป็นเจ้าของ Device นั้นๆ รายละเอียดดังนี้

publishMessageToDevice ( deviceid, topic, payload ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่ต้องการส่งข้อมูลไปถึง (ต้องระบุค่า)

  • topic: String คือ Topic ที่ต้องการ Publish ข้อมูลไปถึง โดยที่ไม่ต้องระบุ @msg (ต้องระบุค่า)

  • payload: String คือ ข้อมูลหรือข้อความที่ต้องการส่ง

Query Variables

Authorization: User Token

Response Type : Result

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

  • code: Int คือ รหัสตอบกลับ (Response Code) ถ้าเป็น 200 คือ ดำเนินการสำเร็จ

  • text: String คือ ข้อความตอบกลับ (Response Text)

ตัวอย่างการ Publish ข้อมูลไปยัง Device แบบเจาะจง ดังรูปด้านล่าง

_images/gql2_pubdevice.png

Note

PublishMessageToDevice

การ Publish ข้อมูลในฟังก์ชันนี้ การเซ็ต Topic ไม่ต้องใส่ @msg นำหน้า


การ Subscribe ข้อมูลที่มาจากฟังก์ชัน PublishMessageToDevice จะมี Prefix Topic เป็น @private เช่น


publishMessageToDevice (deviceid: "c55941ce-0f4a-4e57-xxxx-4759af4f872c", topic: "home/door", payload: "open" )


การเซ็ต Topic ตอน Subscribe จะเป็นดังนี้ @private/home/door

PublishMessageToGroup

สำหรับ Publish ข้อมูลไปยัง Devices ที่อยู่ภายใต้ Group นั้นๆ เหมาะสำหรับใช้กับ Application ที่พัฒนาขึ้นมาเพื่อใช้สื่อสารกับ Devices โดย User Token ที่ใช้ Authorization จะต้องเป็นของผู้ที่เป็นเจ้าของ Device นั้นๆ รายละเอียดดังนี้

publishMessageToGroup ( groupid, topic, payload ):

Arguments

  • groupid: String คือ รหัสของ Group ที่ต้องการส่งข้อมูลไปถึง (ต้องระบุค่า)

  • topic: String คือ Topic ที่ต้องการ Publish ข้อมูลไปถึง โดยที่ไม่ต้องระบุ @msg (ต้องระบุค่า)

  • payload: String คือ ข้อมูลหรือข้อความที่ต้องการส่ง

Query Variables

Authorization: User Token

Response Type : Result

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

  • code: Int คือ รหัสตอบกลับ (Response Code) ถ้าเป็น 200 คือ ดำเนินการสำเร็จ

  • text: String คือ ข้อความตอบกลับ (Response Text)

ตัวอย่างการ Publish ข้อมูลไปยัง Devices ที่อยู่ภายใต้ Group ดังรูปด้านล่าง

_images/gql2_pubgroup.png

Note

PublishMessageToGroup

การ Publish ข้อมูลในฟังก์ชันนี้ การเซ็ต Topic ไม่ต้องใส่ @msg นำหน้า


การ Subscribe ข้อมูลที่มาจากฟังก์ชัน PublishMessageToGroup จะมี Prefix Topic เป็น @msg เช่น


publishMessageToGroup (groupid: "G272489159405", topic: "home/rooms", payload: "open" )


การเซ็ต Topic ตอน Subscribe จะเป็นดังนี้ @msg/home/rooms

ResyncDeviceStatus

สำหรับซิงค์ข้อมูลสถานะการเชื่อมต่อ Platform ของ Device ใช้ในกรณีที่มีการนำสถานะของ Device ไปแสดงบน UI แล้วสถานะไม่อัพเดทอัตโนมัติ ให้เรียกฟังก์ชันนี้เพื่อซิงค์ข้อมูล รายละเอียดดังนี้

resyncDeviceStatus ( deviceid ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่ต้องการซิงค์ข้อมูล (ต้องระบุค่า)

Query Variables

Authorization: User Token

Response Type : Result

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

  • code: Int คือ รหัสตอบกลับ (Response Code) ถ้าเป็น 200 คือ ดำเนินการสำเร็จ

  • text: String คือ ข้อความตอบกลับ (Response Text)

ตัวอย่างการซิงค์ข้อมูลสถานะการเชื่อมต่อ Platform ของ Device ดังรูปด้านล่าง

_images/gql2_resyncdevicestatus.png

RevokeDeviceToken

สำหรับยกเลิกสิทธิ์ Token ของ Device รายละเอียดดังนี้

revokeDeviceToken ( tokencode ):

Arguments

  • tokencode: String คือ รหัสของ Token ที่ต้องการยกเลิกสิทธิ์ (ต้องระบุค่า)

Query Variables

Authorization: User 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/gql2_revokedevicetoken.png

SaveTrigger

สำหรับอัพเดทข้อมูล Trigger ครั้งละหลาย ๆ ตัว รายละเอียดดังนี้

saveTrigger ( deviceid, triggers ):

Arguments

  • deviceid: String คือ รหัสของ Device ที่เซ็ต Trigger ไว้ (ต้องระบุค่า)

  • trigger: [TriggerInput] คือ Array ของ Object Type Trigger ทั้งหมด (ต้องระบุให้ครบทุกค่า) ประกอบด้วย

    • triggerid: String คือ รหัสของ Trigger

    • triggername: String คือ ชื่อของ Trigger

    • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

    • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

    • condition: String คือ เงื่อนไขการเกิด Trigger

    • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

    • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

    • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

Query Variables

Authorization: User Token

Response Type : [Trigger]

ตอบกลับเป็น Array ของ Object Type Trigger ที่เปิดการใช้งาน ประกอบด้วย

  • triggerid: String คือ รหัสของ Trigger

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

ตัวอย่างการใช้งาน ดังรูปด้านล่าง

_images/gql2_savetrigger.png

UnGroupDevice

สำหรับถอด Devices ออกจาก Group รายละเอียดดังนี้

ungroupDevice ( deviceid ):

Arguments

  • deviceid: [String] คือ Array ของรหัส Device ที่ต้องการถอดออกจากกลุ่ม (ต้องระบุค่าอย่างน้อย 1 Device)

Query Variables

Authorization: User Token

Response Type : [Device]

ตอบกลับเป็น Array ของ Object Type Device ที่ถูกถอดออกจาก Group ประกอบด้วย

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

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

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

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

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

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

  • devicesecret: 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 แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Device แบบหลายค่า

  • tags: Json คือ แท็กของ Device ในรูปแบบ Key Value

  • enabled: Boolean คือ สถานะการเปิดใช้งาน Device (true เปิดการใช้งาน [default], false ปิดการใช้งาน)

  • banned: Boolean คือ สถานะถูกระงับใช้งานจากระบบ (true ถูกรระงับใช้งาน, false ไม่ถูกรระงับใช้งาน)

ตัวอย่างการถอด Devices ออกจาก Group ดังรูปด้านล่าง

_images/gql2_ungroupdevice.png

UpdateDevice

สำหรับแก้ไขข้อมูลทั่วไปของ Device รายละเอียดดังนี้

updateDevice ( deviceid, projectid, groupid, tag, hashtag, tags ):

Arguments

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

  • deviceinfo: DeviiceInfo คือ Object Type ที่เป็นรายละเอียดของ Device ประกอบด้วย

    • alias: String คือ ชื่อของ Device (ถ้าไม่ระบุจะถูกกำหนดเป็นค่าเดียวกับ deviceid ใช้สำหรับอ้างอิงถึง Device)

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

    • tag: String คือ แท็กของ Device แบบค่าเดียว

    • hashtag: [String] คือ แท็กของ Device แบบหลายค่า

    • tags: JSON คือ แท็กของ Device ในรูปแบบ Key Value

Query Variables

Authorization: User Token

Response Type : Device

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

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

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

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

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

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

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

  • devicesecret: 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 แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Device แบบหลายค่า

  • tags: JSON คือ แท็กของ Device ในรูปแบบ Key Value

  • enabled: Boolean คือ สถานะการเปิดใช้งาน Device (true เปิดการใช้งาน [default], false ปิดการใช้งาน)

  • banned: Boolean คือ สถานะถูกระงับใช้งานจากระบบ (true ถูกรระงับใช้งาน, false ไม่ถูกรระงับใช้งาน)

ตัวอย่างการแก้ไขข้อมูลทั่วไปของ Device ดังรูปด้านล่าง

_images/gql2_updatedevice.png

UpdateGroup

สำหรับแก้ไขข้อมูลทั่วไปของ Group รายละเอียดดังนี้

updateGroup ( groupid, groupname, description, tag, hashtag, tags ):

Arguments

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

  • groupname: String คือ ชื่อของ Group ที่ต้องการแก้ไข

  • description: String คือ คำอธิบาย Group ที่ต้องการแก้ไข

  • tag: String คือ แท็กของ Group แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Group แบบหลายค่า

  • tags: JSON คือ แท็กของ Group ในรูปแบบ Key Value

Query Variables

Authorization: User Token

Response Type : Group

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

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

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

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

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

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

  • tag: String คือ แท็กของ Group แบบค่าเดียว

  • devicecount: Int คือ จำนวน Device ใน Group

  • hashtag: [String] คือ แท็กของ Group แบบหลายค่า

  • tags: Json คือ แท็กของ Group ในรูปแบบ Key Value

ตัวอย่างการแก้ไขข้อมูลทั่วไปของ Group ดังรูปด้านล่าง

_images/gql2_updategroup.png

UpdateHook

สำหรับแก้ไขข้อมูลของ Event Hook รายละเอียดดังนี้

updateHook ( projectid, hookid, name, description, type, enabled, param ):

Arguments

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

  • hookid: String คือ รหัสของ Event Hook (ต้องระบุ)

  • name: String คือ ชื่อของ Event Hook (ต้องระบุ)

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

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

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

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

Query Variables

Authorization: User Token

Response Type : Hook

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

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

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

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

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

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

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

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

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

_images/gql2_updatehook.png

UpdateMembership

สำหรับแก้ไขข้อมูลของ Membership รายละเอียดดังนี้

updateMembership ( projectid, username, level ):

Arguments

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

  • username: String คือ username ของผู้ใช้ที่เป็นสมาชิก (ต้องระบุค่า)

  • level: UserLevel คือ ระดับชั้นของการเป็นสมาชิก ได้แก่ (ต้องระบุค่า) (ดูรายละเอียดสิทธิ์ได้ที่ Member)

    • Guest

    • Viewer

    • Editor

    • Master

    • Owner

Query Variables

Authorization: User Token

Response Type : Membership

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

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

  • level: UserLevel คือ ระดับสิทธิ์ของการเป็นสมาชิก มีทั้งหมด 5 ระดับ (ดูรายละเอียดสิทธิ์ได้ที่ Member)

    • 5 (Owner)

    • 4 (Master)

    • 3 (Editor)

    • 2 (Viewer)

    • 1 (Guest)

  • projectid: String คือ รหัสของ Project ที่ได้รับสิทธิ์

  • userid: String คือ รหัสของผู้ใช้ที่ได้รับสิทธิ์

  • username: String คือ username ของผู้ใช้ที่ได้รับสิทธิ์

ตัวอย่างการแก้ไขข้อมูลของ Membership ดังรูปด้านล่าง

_images/gql2_updatemembership.png

UpdateProject

สำหรับแก้ไขข้อมูลทั่วไปของ Project รายละเอียดดังนี้

updateProject ( projectid, projectname, description, tag, hashtag, tags ):

Arguments

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

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

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

  • tag: String คือ แท็กของ Project แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Project แบบหลายค่า

  • tags: TagsInput คือ แท็กของ Project ในรูปแบบ Key Value

Query Variables

Authorization : User Token

Response Type : Project

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

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

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

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

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

  • tags: Json คือ แท็กของ Project ในรูปแบบ Key Value

  • tag: String คือ แท็กของ Project แบบค่าเดียว

  • hashtag: [String] คือ แท็กของ Project แบบหลายค่า

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

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

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

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

  • quota: Quota คือ สถานะของ Service แต่ละรายการที่มีโควต้าพร้อมใช้งาน ซึ่งประกอบด้วย

    • apicall: Boolean คือ บริการ REST API (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • connection: Boolean คือ บริการเชื่อมต่อ Platform ของ Device (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • message: Boolean คือ บริการ Real Time Message ผ่าน MQTT Protocol (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • shadowops: Boolean คือ บริการอ่าน/เขียน Shadow (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • store: Boolean คือ บริการเก็บข้อมูลใน Time Series Data (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • trigger: Boolean คือ บริการ Trigger & Action (Notification) (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

    • datasource: Boolean คือ ผลรวมขนาด Byte ของข้อมูลที่มีการใช้บริการผ่าน apicall (true มีโควต้าพร้อมใช้งาน, false ใช้งานไม่ได้หรือไม่มีโควต้า)

ตัวอย่างการแก้ไขข้อมูลทั่วไปของ Project ดังรูปด้านล่าง

_images/gql2_updateproject.png

UpdateSchema

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

updateSchema ( deviceid, value ):

Arguments

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

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

Query Variables

Authorization: User Token

Response Type : Schema

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

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

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

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

_images/gql2_updateschema.png

UpdateTrigger

สำหรับแก้ไขข้อมูล Trigger รายตัว รายละเอียดดังนี้

updateTrigger ( deviceid, triggerid, triggername, type, event, condition, action, context, enabled ):

Arguments

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

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

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

Query Variables

Authorization: User Token

Response Type : Trigger

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

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

  • triggername: String คือ ชื่อของ Trigger

  • type: String คือ ประเภท Trigger (DEVICE, SHADOW)

  • event: String คือ ประของเหตุการณ์ที่เกิด Trigger (STATUSCHANGED คู่กับ Trigger ประเภท DEVICE, UPDATED คู่กับ Trigger ประเภท SHADOW)

  • condition: String คือ เงื่อนไขการเกิด Trigger

  • action: String คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger

  • context: [ActionVarType] คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook

  • enabled: Boolean คือ สถานะการเปิดใช้งาน (true เปิดใช้งาน, false ปิดใช้งาน)

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

_images/gql2_updatetrigger.png

UpdateUserProfile

สำหรับแก้ไขข้อมูลทั่วไปของ User รายละเอียดดังนี้

updateUserProfile ( fullname ):

Arguments

  • fullname: String คือ ชื่อ-นามสกุล ผู้ใช้

Query Variables

Authorization: User Token

Response Type : User

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

  • username: String คือ ชื่อผู้ใช้

  • enail: String คือ อีเมลผู้ใช้

  • profile: Profile คือ Object Type Profile ประกอบด้วย

    • fullname: String คือ ชื่อ-นามสกุล

    • phonenumber: String คือ หมายเลขโทรศัพท์

    • organization: String คือ ชื่อหน่วยงาน/องค์กร/บริษัท ที่สังกัด

  • created: String คือ วันเวลาที่ลงทะเบียน

  • userid: String คือ รหัสของ User

ตัวอย่างการแก้ไขข้อมูลทั่วไปของ User ดังรูปด้านล่าง

_images/gql2_updateuserprofile.png

WriteShadow

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

writeShadow ( deviceid, data, timestamp, mode ):

Arguments

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

  • data: JSON คือ Shadow ที่ต้องการเขียน ซึ่งจะอยู่ในรูปแบบ JSON

  • timestamp: Timestamp คือ วันเวลาที่ข้อมูลมีการเปลี่ยนแปลง (ถ้าไม่ระบุจะเป็นเวลาปัจจุบันที่เขียน)

  • mode: WriteMode คือ โหมดการเขียน Shadow มี 2 โหมด คือ

    MERGE คือ การเขียน Shadow แบบผสาน (Merge)

    REPLACE คือ การเขียน Shadow แบบเขียนทับ (Overwrite)

Query Variables

Authorization: User Token

Response Type : Shadow

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

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

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

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

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

ตัวอย่างการแก้ไขข้อมูล Shadow ของ Device ดังรูปด้านล่าง

_images/gql2_writeshadow.png

Note

การส่งค่า Parameter ที่เป็น JSON

ค่าที่ส่งจะอยู่ในรูปแบบ String ของ JSON ตัวอย่างเช่น ค่าที่จะส่ง คือ


json = { "body": "message={{msg}}", "method": "POST", "uri": "https://notify-api.line.me/api/notify" }


แปลงให้อยู่ในรูปแบบ String ของ JSON จะได้เป็น


string = "{ \"body\": \"message={{msg}}\", \"method\": \"POST\", \"uri\": \"https://notify-api.line.me/api/notify\" }"