SUBSCRIPTIONS ================== | จะเป็น Function ที่ทำงานแบบ WebSockets คือ เป็นการ On Event รอรับการส่งข้อมูล (Push) จาก Platform คล้าย ๆ กับการ Subscribe ใน MQTT ซึ่งจะทำให้ได้รับข้อมูลแบบ Real Time เมื่อมีการเปลี่ยนของข้อมูลตามละเหตุการรณ์ที่ผู้ใช้งานสนใจและมีการเรียก Subscription Function รอไว้ ประกอบด้วย | DeviceStatusChanged ------------------------- สำหรับรอรับข้อมูลการเปลี่ยนแปลงสถานะการเชื่อมต่อ Platform (Online/Offline) ของ Device ด้วย Device ID รายละเอียดดังนี้ :deviceStatusChanged ( deviceid ): Arguments - ``deviceid``: *String* คือ รหัสของ Device (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : DeviceStatus เมื่อสถานะการเชื่อมต่อ Platform ของ Device มีการเปลี่ยน จาก Online เป็น Offline หรือ Offline เป็น Online จะมีกาารตอบกลับเป็น Object Type DeviceStatus ประกอบด้วย - ``deviceid``: *String* คือ รหัสของ Device - ``groupid``: *String* คือ รหัสของ Group ที่ Device อยู่ภายใต้ - ``projectid``: *String* คือ รหัสของ Project ที่ Device อยู่ภายใต้ - ``status``: *Int* คือ สถานะการเชื่อมต่อ Platform ของ Device (``1`` Online, ``0`` Offilne) - ``enabled``: *Boolean* คือ สถานะการเปิดใช้งาน Device (``true`` เปิดการใช้งาน, ``false`` ปิดการใช้งาน) ตัวอย่างการใช้งานฟังก์ชัน ดังรูปด้านล่าง .. image:: _static/gql2_sub_devicestatuschanged.png DeviceStatusChangedByGroup ----------------------------- สำหรับรอรับข้อมูลการเปลี่ยนแปลงสถานะการเชื่อมต่อ Platform (Online/Offline) ของทุก Devices ที่อยู่ภายใต้ Group ID รายละเอียดดังนี้ :deviceStatusChangedByGroup ( groupid ): Arguments - ``groupid``: *String* คือ รหัสของ Group ที่สนใจ (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : Device เมื่อสถานะการเชื่อมต่อ Platform ของ Devices ที่อยู่ภายในใต้ Group มีการเปลี่ยน จาก Online เป็น Offline หรือ Offline เป็น Online จะมีกาารตอบกลับเป็น 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`` เปิดการใช้งาน, ``false`` ปิดการใช้งาน) - ``banned``: *Boolean* คือ สถานะถูกระงับใช้งานจากระบบ (``true`` ถูกรระงับใช้งาน, ``false`` ไม่ถูกรระงับใช้งาน) ตัวอย่างการใช้งานฟังก์ชัน ดังรูปด้านล่าง .. image:: _static/gql2_sub_devicestatuschangedbygroup.png DeviceStatusChangedByProject ----------------------------- สำหรับรอรับข้อมูลการเปลี่ยนแปลงสถานะการเชื่อมต่อ Platform (Online/Offline) ของทุก Devices ที่อยู่ภายใต้ Project ID รายละเอียดดังนี้ :deviceStatusChangedByGroup ( projectid ): Arguments - ``projectid``: *String* คือ รหัสของ Project ที่สนใจ (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : Device เมื่อสถานะการเชื่อมต่อ Platform ของ Devices ที่อยู่ภายในใต้ Project มีการเปลี่ยน จาก Online เป็น Offline หรือ Offline เป็น Online จะมีกาารตอบกลับเป็น 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`` เปิดการใช้งาน, ``false`` ปิดการใช้งาน) - ``banned``: *Boolean* คือ สถานะถูกระงับใช้งานจากระบบ (``true`` ถูกรระงับใช้งาน, ``false`` ไม่ถูกรระงับใช้งาน) ตัวอย่างการใช้งานฟังก์ชัน ดังรูปด้านล่าง .. image:: _static/gql2_sub_devicestatuschangedbyproject.png FeedUpdated ----------------------------- สำหรับรอรับข้อมูลการเปลี่ยนแปลง Shadow ของ Device ด้วย Device ID รายละเอียดดังนี้ :feedUpdated ( deviceid ): Arguments - ``feedid``: *String* คือ รหัสของ Feed ซึ่งใช้ค่าเดียวกับ ``deviceid`` (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : Shadow เมื่อ Shadow ของ Device มีการเปลี่ยนแปลง จะมีกาารตอบกลับเป็น Object Type Shadow ประกอบด้วย - ``feedid``: *String* คือ รหัสของ Feed - ``data``: *JSON* คือ ข้อมูลในแต่ละฟิลด์ - ``timestamp``: *Timestamp* คือ วันเวลาที่เกิดข้อมูลข้อมูลล่าสุด ตัวอย่างการใช้งานฟังก์ชัน ดังรูปด้านล่าง .. image:: _static/gql2_feedupdated.png ShadowUpdated ----------------------------- สำหรับรอรับข้อมูลการเปลี่ยนแปลง Shadow ของ Device ด้วย Device ID รายละเอียดดังนี้ :shadowUpdated ( deviceid ): Arguments - ``deviceid``: *String* คือ รหัสของ Device (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : Shadow เมื่อ Shadow ของ Device มีการเปลี่ยนแปลง จะมีกาารตอบกลับเป็น Object Type Shadow ประกอบด้วย - ``deviceid``: *String* คือ รหัสของ Device - ``data``: *JSON* คือ Shadow ที่กำหนดไว้ ซึ่งจะอยู่ในรูปแบบ JSON - ``rev``: *Int* คือ เลขที่ Revision - ``modified``: *Timestamp* คือ วันเวลาที่มีการแก้ไขข้อมูลล่าสุด ตัวอย่างการใช้งานฟังก์ชัน ดังรูปด้านล่าง .. image:: _static/gql2_sub_shadowUpdated.png