Hướng Dẫn Kết Nối Và Sử Dụng Các Dịch Vụ API Server

MN-API-VN

18/03/2020

 

 

globiots_api_en.png

 

 

1. Bảng ghi nhận thay đổi tài liệu

Ngày Phiên bản Mô tả Người thay đổi
30/06/2015
1.0
Khởi tạo tài liệu

thanhthi.tran@daviteq.com

14/07/2015

1.1

Chỉnh sửa một vài field trong chuỗi json cho đúng với conversion.

Chỉnh sửa response của alarm configure.

Điều chỉnh các mã lỗi.

Thay đổi url của service api-data-log-001

Bổ sung response code cho các service

thanhthi.tran@daviteq.com

21/07/2015 1.2

Bổ sung service lấy giá trị gần nhất của tất cả các địa chỉ trong cùng hostname

thanhthi.tran@daviteq.com

05/08/2015 1.3

Chỉnh sửa các response của các service liên quan đến alarm, event.

Loại bổ một số service không sử dụng: api-event-log-001, api-event-log-002, api-event-log-003.

Chỉnh sửa tên của một vài field trong response json.

thanhthi.tran@daviteq.com

07/08/2015 1.4

Bổ sung service: api-data-log-002 (Lấy dữ liệu log nhiều địa chỉ)

thanhthi.tran@daviteq.com

24/20/2016 1.5

Bổ sung chỉnh sửa các service cho phù hợp với naming convension trong RESTful.

thanhthi.tran@daviteq.com

02/08/2019 1.6

Bổ sung phương thức Basic Authentication

Chỉnh sửa các api lấy dữ liệu log

Thêm api lấy dữ liệu cuối cùng trong ngày

thanhthi.tran@daviteq.com

28/11/2019 1.7

Thêm một số lưu ý để thuận tiện trong việc gọi API

trungtin.nguyen@daviteq.com

2. Giới thiệu

2.1 Mục đích tài liệu

Mô tả chi tiết về các chức năng của API Server phục vụ cho dự án Viettel của CTY TNHH THIẾT BỊ ĐO LƯỜNG & ĐIỀU KHIỂN ĐẠI VIỆT và có thể xem như tài liệu tham khảo khi tiếp cận dự án Viettel phần API Server.

2.2 Phạm vi tài liệu

Tài liệu cung cấp các thông tin chi tiết cần thiết để khách hàng có thể kết nối và trao đổi dữ liệu với API Server.

2.3 Đối tượng sử dụng tài liệu

Đối tượng sử dụng tài liệu là các cán bộ kỹ thuật của CTY TNHH THIẾT BỊ ĐO LƯỜNG & ĐIỀU KHIỂN ĐẠI VIỆT và các đối tác được sự cho phép của CTY TNHH THIẾT BỊ ĐO LƯỜNG & ĐIỀU KHIỂN ĐẠI VIỆT .

2.4 Định nghĩa thuật ngữ và các từ viết tắt
Thuật ngữ Định nghĩa
API Application Programming Interface
RSA Rivest-Shamir-Adleman – data encryption algorithm
GLOBIOTS Global Internet Of Things
IP

Internet Protocol

3. Khởi tạo và kết nối

Có 2 cách để khởi tạo kết nối đến Globiots Public API: Basic Authentication Header hoặc Authentication header (designed by Daviteq)

3.1 Basic Authentication Header

  Người dùng sẽ được cung cấp username và password bởi Daviteq.

    • Username: khóa duy nhất có trên API SERVER, giống như ID cho từng Account.
    • Password:
    • khóa bí mật trên API SERVER, tương ứng với username cho từng Account.

Ngoài ra, user có thể tự lấy các giá trị này bằng cách sử dụng API số 1 (Chứng thực đăng nhập)

    • Username: trường appKey trong phần account
    • Password: trường serectKey trong phần account

image-1584502803992.png

3.2 Authentication header (designed by Daviteq)

Người dùng sẽ được cung cấp API_KEY, SECRET_KEY, PUBLIC.key bởi Daviteq.

    • API_KEY: khóa duy nhất có trên API SERVER, giống như ID cho từng Account.
    • SERECT_KEY: khóa bí mật trên API SERVER, tương ứng với API-KEY cho từng Account.
    • PUBLIC.key: khóa public trong thuật toán RSA

Dùng thuật toán RSA để mã hóa SECRET_KEY với PUBLIC. key 

Encode Base64 cho SECRET_KEY đã được mã hóa

Thêm các thược tính api-key, serect-key vào header trước khi gửi request đến server:

    • api-key: giá trị là API_KEY
    • secret-key: giá trị là SECRET_KEY đã được mã hóa

Kiểm tra authentication header với Advanced REST client (chrome plugin) 

Bước 1: Thiết lập các tham số (URL, request method)

image-1584503570782.png

Bước 2: Thiết lập header với api-key và serect-key

image-1584503739410.png

Bước 3: Kiểm tra request headers

image-1584504595568.png

Bước 4: Kết quả

image-1584505107541.png

3.3 Code mẫu (JAVA)

AuthenticationHeader.java

public class AuthenticationHeader {




    public static final String RSA_PUBLIC_KEY_PATH = "path/to/PUBLIC.key";

   

    public static void main(String[] args) {

                try {

            String apiKey = "your_api_key";

            String secretKey = "your_secret_key";

           

            RestTemplateUtilWithAuthentication restTemplate = new RestTemplateUtilWithAuthentication(

                    apiKey, secretKey, RSA_PUBLIC_KEY_PATH);

            String url = "http://[hostname]:[port]/rest/api/v1/devices";

            String value = restTemplate.doGetWithAuthentication(url);

            System.out.println("Response: " + value);

        } catch(Exception ex) {

            ex.printStackTrace();

        }

    }

}

RestTemplateUtilWithAuthentication.java

import java.nio.charset.Charset;

import java.util.HashMap;

import java.util.Map;

import org.springframework.http.HttpEntity;

import org.springframework.http.HttpHeaders;

import org.springframework.http.HttpMethod;

import org.springframework.http.MediaType;

import org.springframework.http.ResponseEntity;

import org.springframework.web.client.RestTemplate;

import com.daviteq.secure.Base64;

import com.daviteq.secure.RSA;


public class RestTemplateUtilWithAuthentication {

 private String apiKey;

 private String secretKey;

 private String publicKeyPath;
  

 public RestTemplateUtilWithAuthentication(

  String apiKey,

  String secretKey,

  String publicKeyPath) {

  this.apiKey = apiKey;

  this.secretKey = secretKey;

  this.publicKeyPath = publicKeyPath;

 }

 public String doGetWithAuthentication(

  String url) {

  RestTemplate restTemplate = new RestTemplate();

  Map < String, String > signature = this.getSignature();

  HttpHeaders headers = this.getHeadersForAuthentication(signature);

  HttpEntity httpEntity = new HttpEntity(headers);

  ResponseEntity < String > out = restTemplate.exchange(

   url, HttpMethod.GET, httpEntity, String.class);

  return out.getBody();

 }

 private HttpHeaders getHeadersForAuthentication(

  Map < String, String > signature) {

  HttpHeaders headers = new HttpHeaders();

  MediaType mediaType = new MediaType(

   "text", "plain", Charset.forName("UTF-8"));

  headers.setContentType(mediaType);

  for (Map.Entry < String, String > entry: signature.entrySet()) {

   String key = entry.getKey();

   String value = entry.getValue();

   headers.add(key, value);

  }

  return headers;

 }

 private Map < String, String > getSignature() {

  Map < String, String > signature = new HashMap < String, String > ();

  try {

   String encodedSecretKey = Base64.encode(

    RSA.encrypt(secretKey, publicKeyPath).getBytes());

   signature.put("api-key", apiKey);

   signature.put("secret-key", encodedSecretKey);

  } catch (Exception ex) {

   ex.printStackTrace();

  }

  return signature;

 }

 public String getApiKey() {

  return apiKey;

 }

 public void setApiKey(String apiKey) {

  this.apiKey = apiKey;

 }

 public String getSecretKey() {

  return secretKey;

 }

 public void setSecretKey(String secretKey) {

  this.secretKey = secretKey;

 }

}

4. Mô tả dịch vụ

4.1 Chứng thực đăng nhập & lấy chuỗi ACCESS_TOKEN

4.1.1 Chứng thực đăng nhập

No.

 

Title

 

URL

https://authorization.globiots.com/rest/api/v1/login/usernameOrEmail/{usernameOrEmail}/password/{encryptedPassword}

Method

POST

URL Params

usernameOrEmail: username đăng nhập

encryptedPassword: password theo nguyên tắc

md5hash(usernameOrEmail + password).toUpperCase()

Data Params

{

            "responseMessage": "Success",

            "responseCode": 200,

            "account": {

                        "id": "account-2d4ded58-f099-4989-8ad3-70a223ff23a9",

                        "name": "DEMO OFFICE",

                        "address": "XCVV",

                        "country": "VN",

                        "province": "AN_GIANG",

                        "postalCode": "6666",

                        "faxNumber": "",

                        "emailAddress": "sales.pm.41@daviteq.com",

                        "createdDate": 1473925903589,

                        "lastUpdated": 1488794486739,

                        "expiredDate": null,

                        "status": "ACT",

                        "timeZone": "GMT+07:00",

                        "timeZoneName": "GMT+07:00",

                        "firstDayOfWeek": "MONDAY",

                        "beginTimeOfDay": "06:00",

                        "dateFormat": "dd/MM/yyyy",

                        "timeFormat": "HH:mm:ss",

                        "keepAliveTime": 300,

                        "realtimeRefreshTime": 1,

                        "deviceUsed": 6,

                        "userUsed": 10,

                        "parentId": "account-e4f64944-e638-4251-bf30-e85a1b5fef22",

                        "packageId": "package-a49d499f-8bf9-4aa4-baae-0ba653c2ca6f",

                        "nextHostname": "0.0.0.60",

                        "isActivedEmailAddress": false,

                        "appKey": "app-key-420ec00f-fd0b-41f0-ab6d-45ab8df45e2f",

                        "secretKey": "secret-key-5df9c18a-76b9-4214-b454-c49db4274b1c"

            },

            "user": {

                        "id": "user-7266966c-77b3-4e22-bb63-39e6232d26f0",

                        "fullName": "DEMO OFFICE",

                        "dateOfBirth": 884649600000,

                        "gender": "male",

                        "contactNumber": "+846502270",

                        "language": "en",

                        "username": "demooffice",

                        "password": "7BFCE32BE0CD842AA06E16DAB94C6D0B",

                        "failSignInAttempt": 0,

                        "emailAddress": "sales.pm.41@gmail.com",

                        "lastUpdated": 1513837330925,

                        "lastSignedIn": 1522054238414,

                        "createdDate": 1473925903610,

                        "isPasswordExpired": null,

                        "isActivedEmailAddress": true,

                        "lastChangedPassword": 1489029201446,

                        "isChangePassword": false,

                        "isActivedContactNumber": false,

                        "isAdministrator": true,

                        "status": "ACT",

                        "accountId": "account-2d4ded58-f099-4989-8ad3-70a223ff23a9"

            }

}

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

  user: dữ liệu của tham số, nếu response_code là 200 (Success)

    + fullname: tên dashboard

    + dateOfBirth: ngày sinh

    + gender: giới tính

    + contactNumber: số điện thoại

    + countryCode: mã quốc gia

     + language: chính account id mà user tạo dashboard thuộc về.

     + username:

     + password:.

     + failSignInAttempt: số lần đăng nhập thất bại.

     + recoverPasswordAttempt: .

     + emailAddress: địa chỉ amail.

     + lastUpdated lần cập nhật gần nhất.

     + lastSignedIn:lần đăng nhập gần nhất.

     + createdDate: ngày tạo account.

     + isActivedEmailAddress: email có tồn tại hay không.

     + lastChangedPassword: thời gian thay đổi password gần nhất.

     + isChangePassword:true or false nếu true khi user mới tạo đăng nhập lần đầu.

     + isActivedContactNumber: true or false số điện thoại có tồn tại hay không.

     + isAdministrator: true or false có phải user admin hay không

     + status: ACT là active LOC là locked

     + accountId: id account mà user thuộc về

  account: dữ liệu của tài khoản, nếu response_code là 200 (Success)

    + id:

    + name: tên

    + address: địa chỉ

    + country: mã quốc gia

    + province: mã tỉnh.

     + postalCode:.

     + faxNumber:

     + emailAddress: địa chỉ email.

     + createdDate: ngày tạo.

     + lastUpdated: ngày cập nhật gần nhất.

     + expiredDate:.

     + status: ACT là active LOC là locked

     + timeZone: .

     + timeZoneName:.

     + firstDayOfWeek: ngày bắt đầu của tuần(dùng cho report)

     + beginTimeOfDay: thời gian bắt đầu của ngày(dùng cho report)

     + dateFormat: định dạng ngày.

     + timeFormat: định dạng giờ.

     + keepAliveTime:

     + realtimeRefreshTime:

     + deviceUsed: số thiết bị đã sử dụng.

     + userUsed: số user đã sử dụng

     + emailUsedInMonth:

 

Response code

200 : Success

500 : error

409  :  data not found

408  :  time out

Sample call

https://authorization.globiots.com/rest/api/v1/login/usernameOrEmail/demooffice/password/7BFCE32BE0CD842AA06E16DAB94C6D0B

Notes

Các trang lấy chuỗi md5hash online:

http://www.md5online.org/md5-encrypt.html

http://www.md5.cz/

 

Các kiểu dữ liệu về ngày tháng định dạng theo Epoch time, tham khảo ở địa chỉ: http://www.epochconverter.com/epoch/clock.php

4.1.2 Lấy chuỗi access token

No.

 

Title

 

URL

https://authorization.globiots.com/oauth/token?grant_type={grant_type}&username={username}&password={password}&client_id={client_id}&client_secret={client_secret}&scope={scope}

Method

POST

URL Params

username: chính là user đăng nhập

password: md5hash(usernameOrEmail + password).toUpperCase()

client_id: trong acount thấy thuộc tính appKey 

client_seret: trong acount thấy thuộc tính setretKey

grant_type: password

scope: read

Data Params

{

            "access_token": "a9b457ca-555e-4317-8ab7-618829b6bca4",

            "token_type": "bearer",

            "refresh_token": "1a9c0025-ad18-4b73-94e8-e3b610a6600f",

            "expires_in": 1208122,

            "scope": "read"

}

 

Notes :

   + access_token: Chuỗi chứng thực resources API

   + token_type:

   + refresh_token: chuỗi dùng để refresh access token

   + expires_in: thời gian hết hạn chuỗi access token tính bằng milisecond

   + scope:

Response code

{

   "error": "unauthorized",

   "error_description": "Bad credentials"

}

Sample call

https://authorization.globiots.com/oauth/token?grant_type=password&username=demooffice&password=7BFCE32BE0CD842AA06E16DAB94C6D0B&client_id=app-key-420ec00f-fd0b-41f0-ab6d-45ab8df45e2f&client_secret=secret-key-5df9c18a-76b9-4214-b454-c49db4274b1c&scope=read

Notes

 

4.1.3 Làm mới access token

No.

 

Title

 

URL

https://authorization.globiots.com/oauth/token?grant_type={grant_type}client_id={client_id}&client_secret={client_secret}&scope={scope}&refresh_token={refresh_token}

Method

POST

URL Params

client_id: trong acount thấy thuộc tính appKey

client_seret:trong acount thấy thuộc tính setretKey

grant_type: refresh_token (đặt cứng)

scope: read (đặt cứng)

refresh_token: chuỗi refresh token trả về khi lấy access token

Data Params

{

            "access_token": "f6bf1b14-7c9c-41e6-a51e-9d2b37a5e5ad",

            "token_type": "bearer",

            "refresh_token": "1a9c0025-ad18-4b73-94e8-e3b610a6600f",

            "expires_in": 1209599,

            "scope": "read"

}

 

Notes :

   + access_token: Chuỗi chứng thực resources API

   + token_type:

   + refresh_token: chuỗi dùng để refresh access token

   + expires_in: thời gian hết hạn chuỗi access token tính bằng milisecond

   + scope:

Response code

{

   "error": "unauthorized",

   "error_description": "Bad credentials"

}

Sample call

https://authorization.globiots.com/oauth/token?grant_type=refresh_token&client_id=app-key-420ec00f-fd0b-41f0-ab6d-45ab8df45e2f&client_secret=secret-key-5df9c18a-76b9-4214-b454-c49db4274b1c&scope=read&refresh_token=1a9c0025-ad18-4b73-94e8-e3b610a6600f

Notes

 

4.2 Quản lý tài khoản

4.2.1 Lấy thông tin tài khoản bằng account id

No.

 

Title

 

URL

https://resources.globiots.com/rest/api/authenticated/vizou/mobile/v1/accounts/account-id/{accountId}?access_token={accessToken}

Method

GET

URL Params

accountId: id của tài khoản

accessToken: chuỗi chứng thực để gọi tới API server

Data Params

{

            "responseMessage": "Success",

            "responseCode": 200,

            "account": {

                        "id": "account-b48dc757-802a-4074-b109-cbbd4fd191f9",

                        "name": "Test",

                        "address": "10",

                        "country": "VN",

                        "province": "HCM",

                        "postalCode": "",

                        "faxNumber": "",

                        "emailAddress": "asjsh@gmail.com",

                        "createdDate": 1502940270714,

                        "lastUpdated": 1502940270714,

                        "expiredDate": null,

                        "status": "ACT",

                        "timeZone": "GMT+07:00",

                        "timeZoneName": "GMT+07:00",

                        "firstDayOfWeek": "SUNDAY",

                        "beginTimeOfDay": "00:00",

                        "dateFormat": "dd/MM/yyyy",

                        "timeFormat": "HH:mm:ss",

                        "keepAliveTime": 300,

                        "realtimeRefreshTime": 1,

                        "deviceUsed": 4,

                        "userUsed": 1,

                        "emailUsedInMonth": 0,

                        "smsUsedInMonth": 0,

                        "accountUsed": 0,

                        "parentId": "account-c5557011-2f6a-4327-80a1-732287d1ca7e",

                        "packageId": "package-2a3a9fca-e9fc-471d-9fc1-c906d6f93b25",

                        "nextHostname": "0.0.1.5",

                        "isActivedEmailAddress": false,

                        "appKey": "app-key-91a6cac2-7c1a-46ce-aba5-c5bc6e67e02b",

                        "secretKey": "secret-key-bdb04f28-ab71-4509-918b-96bd133dc140"

            }

}

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

  account: dữ liệu của tài khoản, nếu response_code là 200 (Success)

    + id:

    + name: tên

    + address: địa chỉ

    + country: mã quốc gia

    + province: mã tỉnh.

     + postalCode:.

     + faxNumber:

     + emailAddress: địa chỉ email.

     + createdDate: ngày tạo.

     + lastUpdated: ngày cập nhật gần nhất.

     + expiredDate:.

     + status: ACT là active LOC là locked

     + timeZone: .

     + timeZoneName:.

     + firstDayOfWeek: ngày bắt đầu của tuần(dùng cho report)

     + beginTimeOfDay: thời gian bắt đầu của ngày(dùng cho report)

     + dateFormat: định dạng ngày.

     + timeFormat: định dạng giờ.

     + keepAliveTime:

     + realtimeRefreshTime:

     + deviceUsed: số thiết bị đã sử dụng.

     + userUsed: số user đã sử dụng

     + emailUsedInMonth:

Response code

200 : Success

500 : error

409  :  data not found

408  :  time out

 

Invalid access token :

{

                "error": "invalid_token",

                "error_description": "Invalid access token: eb85cd6f-9975-457f-b3f9-067cc52958ef"

}

Sample call

 

Notes

Các kiểu dữ liệu về ngày tháng định dạng theo Epoch time, tham khảo ở địa chỉ: http://www.epochconverter.com/epoch/clock.php

4.2.2 Lấy thông tin tài khoản bằng email

No.

 

Title

 

URL

https://resources.globiots.com/rest/api/authenticated/vizou/mobile/v1/accounts/email/{email}/?access_token={accessToken}

Method

GET

URL Params

email:

accessToken: chuỗi chứng thực để gọi tới API server

Data Params

{

            "responseMessage": "Success",

            "responseCode": 200,

            "account": {

                        "id": "account-b48dc757-802a-4074-b109-cbbd4fd191f9",

                        "name": "Test",

                        "address": "10",

                        "country": "VN",

                        "province": "HCM",

                        "postalCode": "",

                        "faxNumber": "",

                        "emailAddress": "asjsh@gmail.com",

                        "createdDate": 1502940270714,

                        "lastUpdated": 1502940270714,

                        "expiredDate": null,

                        "status": "ACT",

                        "timeZone": "GMT+07:00",

                        "timeZoneName": "GMT+07:00",

                        "firstDayOfWeek": "SUNDAY",

                        "beginTimeOfDay": "00:00",

                        "dateFormat": "dd/MM/yyyy",

                        "timeFormat": "HH:mm:ss",

                        "keepAliveTime": 300,

                        "realtimeRefreshTime": 1,

                        "deviceUsed": 4,

                        "userUsed": 1,

                        "emailUsedInMonth": 0,

                        "smsUsedInMonth": 0,

                        "accountUsed": 0,

                        "parentId": "account-c5557011-2f6a-4327-80a1-732287d1ca7e",

                        "packageId": "package-2a3a9fca-e9fc-471d-9fc1-c906d6f93b25",

                        "nextHostname": "0.0.1.5",

                        "isActivedEmailAddress": false,

                        "appKey": "app-key-91a6cac2-7c1a-46ce-aba5-c5bc6e67e02b",

                        "secretKey": "secret-key-bdb04f28-ab71-4509-918b-96bd133dc140"

            }

}

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

  account: dữ liệu của tài khoản, nếu response_code là 200 (Success)

    + id:

    + name: tên

    + address: địa chỉ

    + country: mã quốc gia

    + province: mã tỉnh.

     + postalCode:.

     + faxNumber:

     + emailAddress: địa chỉ email.

     + createdDate: ngày tạo.

     + lastUpdated: ngày cập nhật gần nhất.

     + expiredDate:.

     + status: ACT là active LOC là locked

     + timeZone: .

     + timeZoneName:.

     + firstDayOfWeek: ngày bắt đầu của tuần(dùng cho report)

     + beginTimeOfDay: thời gian bắt đầu của ngày(dùng cho report)

     + dateFormat: định dạng ngày.

     + timeFormat: định dạng giờ.

     + keepAliveTime:

     + realtimeRefreshTime:

     + deviceUsed: số thiết bị đã sử dụng.

     + userUsed: số user đã sử dụng

     + emailUsedInMonth:

 

Response code

200 : Success

500 : error

409  :  data not found

408  :  time out

 

Invalid access token :

{

                "error": "invalid_token",

                "error_description": "Invalid access token: eb85cd6f-9975-457f-b3f9-067cc52958ef"

}

 

Sample call

 

Notes

Các kiểu dữ liệu về ngày tháng định dạng theo Epoch time, tham khảo ở địa chỉ:

http://www.epochconverter.com/epoch/clock.php

4.2.3 Cập nhật tài khoản

No.

 

Title

 

URL

https://resources.globiots.com/rest/api/authenticated/vizou/mobile/v1/accounts/{accountId}?access_token={accessToken}

Method

PUT

URL Params

accountId: id field in user

accessToken: authentication string to call to the API server

Request body(

seach key: restful post request body)

{

          "address": "So 11 Duong 2G, Binh Tan TPHCM",

          "last_updated": "1522047777981",

          "postal_code": "1234565431",

          "keep_alive_time": "1800",

          "province": "AN_GIANG",

          "timezone_name": "Asia/Ho_Chi_Minh",

          "first_day_of_week": "MONDAY",

          "fax_number": "2345617676",

          "realtime_refresh_time": "15",

          "time_format": "HH:mm:ss:SSS",

          "country": "VN",

          "time_zone": "GMT+07:00",

          "begin_time_of_day": "00:00",

          "email_address": "support@daviteq.com",

          "name": "Super Admin Daviteq",

          "date_format": "dd/MM/yyyy"

}

Notes:

Kiểu json các thuộc tính account không phải dạng object của account

mà là kiểu <Key, value> JAVA code Example:

account => The object account needs updating;Map<String, Object> cols = new HashMap<>();
cols.put("address", account.getAddress());
cols.put("last_updated", account.getLastUpdate ());
cols.put("postal_code", account.getPostalCode ());
cols.put("keep_alive_time", account.getKeepAliveTime());
cols.put("province", account.getProvince()));cols.put("timezone_name", account.getTimeZonename()));cols.put("first_day_of_week", account.getFirstDayOfWeek ()));cols.put("fax_number", account.getFaxNumber()));cols.put("realtime_refresh_time", account.getRealtimeRefreshTime()));cols.put("time_format", account.getTimeFormat()));cols.put("country", account.getCountry ()));cols.put("time_zone", account.getTimeZone()));cols.put("begin_time_of_day", account.getBeginTimeOfDay()));cols.put("email_address", account.getEmailAddress()));cols.put("first_day_of_week", account.getFirstDayOfWeek()));cols.put("name", account.getName()));cols.put("date_format", account.getDateFormat()));

 

DATA REQUEST => toJson(cols)

Data Params

{

            "responseMessage": "Success",

            "responseCode": 200

}

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

Response code

200 : Success

500 : error

409  :  data not found

408  :  time out

Invalid access token :

{

                "error": "invalid_token",

                "error_description": "Invalid access token: eb85cd6f-9975-457f-b3f9-067cc52958ef"

}

 

Sample call

 

Notes

 

4.3 Quản lý các thiết bị

4.3.1 Lấy thông tin tất cả các thiết bị

No.

 

Title

 

URL

/rest/api/public/v2/devices

Method

GET

URL Params

{

    "responseMessage": "",

    "responseCode": ,

    "count": ,

    "devices": [

        {

            "id": "",

            "deviceName": "",

            "serialNumber": "",

            "hostName": "",

            "ncc": "",

            "fcc": "",

            "latitude": "",

            "longitude": "",

            "phoneNumber": "",

            "loggingSendFrequency": ,

            "healthSendFrequency": ,

            "isLoggingChanged": ,

            "isModbusConfigChanged": ,

            "isAlarmConfigChanged": ,

            "isEventConfigChanged": ,

            "createdDate": ,

            "lastUpdated": ,

            "attachedDate": ,

            "lastSignedIn": ,

            "status": "",

            "nodeId": "",

            "memmapId": "",

            "model": "",

            "manufactureDate": "",

            "hardwareVersion": "",

            "firmwareVersion": "",

            "memmapVersion": "",

            "imei": "",

            "cellularNetwork": "",

            "iccid": ""

        }

    ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng thiết bị.

devices: dữ liệu của thiết bị, nếu response_code là 200 (Success) thì devices sẽ là mảng thông tin các thiết bị.

    + id: mã thiết bị (do iConfig phát sinh)

    + deviceName: tên thiết bị

    + serialNumber: số serial của thiết bị

    + hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

    + ncc: địa chỉ IP của thiết bị trong hệ thống Globiots

    + fcc: địa chỉ IP của thiết bị trong hệ thống Globiots

    + latitude: giá trị vĩ độ của thiết bị GPS trên thiết bị

    + longitude: giá trị kinh độ của thiết bị GPS trên thiết bị

    + phoneNumber: số điện thoại của thiết bị

    + loggingSendFrequency: tần suất gửi log từ thiết bị lên server.

    + healthSendFrequency: tần suất gửi thông tin về sức khỏe lên cho server.

    + isLoggingChanged: trạng thái đồng bộ của các tham số ghi log.

    + isModbusConfigChanged: trạng thái đồng bộ của cấu hình modbus.

    + isAlarmConfigChanged: trạng thái đồng bộ của cấu hình alarm.

    + isEventConfigChanged: trạng thái đồng bộ của cấu hình event.

    + createdDate: ngày tạo thiết bị (trên iConfig)

    + attachedDate: ngày thiết bị attach vào Globiots

    + lastUpdated: lần cập nhật thông tin thiết bị gần nhất trên iConfig

    + lastSignedIn: lần cuối thiết bị gửi gói PING về Globiots

    + status: trạng thái của thiết bị (registered, attached, locked, deattached)

    + nodeId: ID của node cha của thiết bị.

    + memmapId: id của memmap mà thiết bị đang sử dụng

    + model: model của thiết bị

    + manufactureDate: ngày sản xuất thiết bị.

    + firmwareVersion: phiên bản của firmware.

    + memmapVersion: phiên bản của Memmory Map

    + imei: số imei của thiết bị.

    + cellularNetwork: Mạng viễn thông mà thiết bị đang kết nối.

    + iccid:  số iccid của SIM trong thiết bị.

Data Params

 

Response code

200: Success

401: Unauthorized

409: Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/devices
Method: GET

URL Params:

 

Response data:

 

{

    "responseMessage": "Success",

    "responseCode": 200,

    "count": 3,

    "devices": [

        {

            "id": "device-22e207c7-b9c8-4edf-966e-175e84cbacce",

            "deviceName": "DAVITEQ_0003",

            "serialNumber": "313231363031323130333439",

            "hostName": "00000003",

            "ncc": "30383678",

            "fcc": "34323230",

            "latitude": "10.726629",

            "longitude": "106.617905",

            "phoneNumber": "0101010101",

            "loggingSendFrequency": 600,

            "healthSendFrequency": 600,

            "isLoggingChanged": false,

            "isModbusConfigChanged": false,

            "isAlarmConfigChanged": false,

            "isEventConfigChanged": false,

            "createdDate": 1456394740010,

            "lastUpdated": 1475570349490,

            "attachedDate": 1474359756741,

            "lastSignedIn": 1456394740010,

            "status": "attached",

            "nodeId": "superadmin",

            "memmapId": "memmap-2881aa59-00af-4a96-8bb0-7e9d189c0498",

            "model": "",

            "manufactureDate": "",

            "hardwareVersion": "3.0",

            "firmwareVersion": "2.5.7",

            "memmapVersion": "2.6",

            "imei": "358945044492043",

            "cellularNetwork": "452019151822261",

            "iccid": "8984011602516415947F"

        },

        {

            "id": "device-0ab506f4-b545-4bbc-b2bb-d0a9f55c45b4",

            "deviceName": "Thuc_0000002",

            "serialNumber": "313233343536373938373938",

            "hostName": "00000048",

            "fcc": "32313335",

            "phoneNumber": "25874136985545645646",

            "loggingSendFrequency": 180,

            "healthSendFrequency": 300,

            "isLoggingChanged": true,

            "isModbusConfigChanged": true,

            "isAlarmConfigChanged": true,

            "isEventConfigChanged": true,

            "createdDate": 1477303645565,

            "lastUpdated": 1477303645565,

            "attachedDate": 1477303645565,

            "lastSignedIn": 1477303645565,

            "status": "registered",

            "nodeId": "node-8bc2de8b-ba52-47db-b45f-b4ca0cc66ef1",

            "memmapId": "memmap-6edc7332-4a30-45f1-9f75-f31c6c4632aa",

            "realParameterUsed": 2,

            "virtualParameterUsed": 2,

            "eventUsed": 1,

            "alarmUsed": 0

        },

        {

            "id": "device-7a4e49de-39e0-46e9-844f-e890628873e2",

            "deviceName": "Device_00001",

            "serialNumber": "313233313233313233313233",

            "hostName": "00000045",

            "fcc": "31323331",

            "phoneNumber": "2345234523",

            "loggingSendFrequency": 1800,

            "healthSendFrequency": 1800,

            "isLoggingChanged": true,

            "isModbusConfigChanged": true,

            "isAlarmConfigChanged": true,

            "isEventConfigChanged": true,

            "createdDate": 1475114053374,

            "lastUpdated": 1475114053374,

            "attachedDate": 1475114053374,

            "lastSignedIn": 1475114053374,

            "status": "registered",

            "nodeId": "node-e3fdaf2c-28ff-4f80-a9ef-d2bad97b542a",

            "memmapId": "memmap-7e030dd1-f706-4523-b707-458d007987e6"

        }

    ]

}

Notes

Các kiểu dữ liệu về ngày tháng định dạng theo Epoch time, tham khảo ở địa chỉ: http://www.epochconverter.com/epoch/clock.php

4.3.2 Lấy thông tin của một thiết bị bởi hostname

No.   

 

Title

 

URL

/rest/api/public/v2/devices/host-name/<host-name>

Method

GET

URL Params

<host-name>: địa chỉ IP của thiết bị trong hệ thống Globiots

Data Params

{

    "responseMessage": "",

    "responseCode": ,

    "count": ,

    "devices": [

        {

            "id": "",

            "deviceName": "",

            "serialNumber": "",

            "hostName": "",

            "ncc": "",

            "fcc": "",

            "latitude": "",

            "longitude": "",

            "phoneNumber": "",

            "loggingSendFrequency": ,

            "healthSendFrequency": ,

            "isLoggingChanged": ,

            "isModbusConfigChanged": ,

            "isAlarmConfigChanged": ,

            "isEventConfigChanged": ,

            "createdDate": ,

            "lastUpdated": ,

            "attachedDate": ,

            "lastSignedIn": ,

            "status": "",

            "nodeId": "",

            "memmapId": "",

            "model": "",

            "manufactureDate": "",

            "hardwareVersion": "",

            "firmwareVersion": "",

            "memmapVersion": "",

            "imei": "",

            "cellularNetwork": "",

            "iccid": ""

        }

    ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng thiết bị.

devices: dữ liệu của thiết bị, nếu response_code là 200 (Success) thì devices sẽ là mảng thông tin các thiết bị.

    + id: mã thiết bị (do iConfig phát sinh)

    + deviceName: tên thiết bị

    + serialNumber: số serial của thiết bị

    + hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

    + ncc: địa chỉ IP của thiết bị trong hệ thống Globiots

    + fcc: địa chỉ IP của thiết bị trong hệ thống Globiots

    + latitude: giá trị vĩ độ của thiết bị GPS trên thiết bị

    + longitude: giá trị kinh độ của thiết bị GPS trên thiết bị

    + phoneNumber: số điện thoại của thiết bị

    + loggingSendFrequency: tần suất gửi log từ thiết bị lên server.

    + healthSendFrequency: tần suất gửi thông tin về sức khỏe lên cho server.

    + isLoggingChanged: trạng thái đồng bộ của các tham số ghi log.

    + isModbusConfigChanged: trạng thái đồng bộ của cấu hình modbus.

    + isAlarmConfigChanged: trạng thái đồng bộ của cấu hình alarm.

    + isEventConfigChanged: trạng thái đồng bộ của cấu hình event.

    + createdDate: ngày tạo thiết bị (trên iConfig)

    + attachedDate: ngày thiết bị attach vào Globiots

    + lastUpdated: lần cập nhật thông tin thiết bị gần nhất trên iConfig

    + lastSignedIn: lần cuối thiết bị gửi gói PING về Globiots

    + status: trạng thái của thiết bị (registered, attached, locked, deattached)

    + nodeId: ID của node cha của thiết bị.

    + memmapId: id của memmap mà thiết bị đang sử dụng

    + model: model của thiết bị

    + manufactureDate: ngày sản xuất thiết bị.

    + firmwareVersion: phiên bản của firmware.

    + memmapVersion: phiên bản của Memmory Map

    + imei: số imei của thiết bị.

    + cellularNetwork: Mạng viễn thông mà thiết bị đang kết nối.

    + iccid:  số iccid của SIM trong thiết bị.

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/devices/host-name/00000001
Method: GET

URL Params:

      <host-name>:  00000001

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "device": {

    "id": "device-22e207c7-b9c8-4edf-966e-175e84cbacce",

    "deviceName": "DAVITEQ_0003",

    "serialNumber": "313231363031323130333439",

    "hostName": "00000003",

    "ncc": "30383678",

    "fcc": "34323230",

    "latitude": "10.726629",

    "longitude": "106.617905",

    "phoneNumber": "0101010101",

    "loggingSendFrequency": 600,

    "healthSendFrequency": 600,

    "isLoggingChanged": false,

    "isModbusConfigChanged": false,

    "isAlarmConfigChanged": false,

    "isEventConfigChanged": false,

    "createdDate": 1456394740010,

    "lastUpdated": 1475570349490,

    "attachedDate": 1474359756741,

    "lastSignedIn": 1456394740010,

    "status": "attached",

    "nodeId": "superadmin",

    "memmapId": "memmap-2881aa59-00af-4a96-8bb0-7e9d189c0498",

    "model": "",

    "manufactureDate": "",

    "hardwareVersion": "3.0",

    "firmwareVersion": "2.5.7",

    "memmapVersion": "2.6",

    "imei": "358945044492043",

    "cellularNetwork": "452019151822261",

    "iccid": "8984011602516415947F"

  }

}

Notes

 

4.3.3 Lấy danh sách các thiết bị với trạng thái chỉ định

No.

 

Title

 

URL

/rest/api/public/v2/devices/status/<status>

Method

GET

URL Params

status: trạng thái thiêt bị

Data Params

{

    "responseMessage": "",

    "responseCode": ,

    "count": ,

    "devices": [

        {

            "id": "",

            "deviceName": "",

            "serialNumber": "",

            "hostName": "",

            "ncc": "",

            "fcc": "",

            "latitude": "",

            "longitude": "",

            "phoneNumber": "",

            "loggingSendFrequency": ,

            "healthSendFrequency": ,

            "isLoggingChanged": ,

            "isModbusConfigChanged": ,

            "isAlarmConfigChanged": ,

            "isEventConfigChanged": ,

            "createdDate": ,

            "lastUpdated": ,

            "attachedDate": ,

            "lastSignedIn": ,

            "status": "",

            "nodeId": "",

            "memmapId": "",

            "model": "",

            "manufactureDate": "",

            "hardwareVersion": "",

            "firmwareVersion": "",

            "memmapVersion": "",

            "imei": "",

            "cellularNetwork": "",

            "iccid": ""

        }

    ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng thiết bị.

devices: dữ liệu của thiết bị, nếu response_code là 200 (Success) thì devices sẽ là mảng thông tin các thiết bị.

    + id: mã thiết bị (do iConfig phát sinh)

    + deviceName: tên thiết bị

    + serialNumber: số serial của thiết bị

    + hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

    + ncc: địa chỉ IP của thiết bị trong hệ thống Globiots

    + fcc: địa chỉ IP của thiết bị trong hệ thống Globiots

    + latitude: giá trị vĩ độ của thiết bị GPS trên thiết bị

    + longitude: giá trị kinh độ của thiết bị GPS trên thiết bị

    + phoneNumber: số điện thoại của thiết bị

    + loggingSendFrequency: tần suất gửi log từ thiết bị lên server.

    + healthSendFrequency: tần suất gửi thông tin về sức khỏe lên cho server.

    + isLoggingChanged: trạng thái đồng bộ của các tham số ghi log.

    + isModbusConfigChanged: trạng thái đồng bộ của cấu hình modbus.

    + isAlarmConfigChanged: trạng thái đồng bộ của cấu hình alarm.

    + isEventConfigChanged: trạng thái đồng bộ của cấu hình event.

    + createdDate: ngày tạo thiết bị (trên iConfig)

    + attachedDate: ngày thiết bị attach vào Globiots

    + lastUpdated: lần cập nhật thông tin thiết bị gần nhất trên iConfig

    + lastSignedIn: lần cuối thiết bị gửi gói PING về Globiots

    + status: trạng thái của thiết bị (registered, attached, locked, deattached)

    + nodeId: ID của node cha của thiết bị.

    + memmapId: id của memmap mà thiết bị đang sử dụng

    + model: model của thiết bị

    + manufactureDate: ngày sản xuất thiết bị.

    + firmwareVersion: phiên bản của firmware.

    + memmapVersion: phiên bản của Memmory Map

    + imei: số imei của thiết bị.

    + cellularNetwork: Mạng viễn thông mà thiết bị đang kết nối.

    + iccid:  số iccid của SIM trong thiết bị.

Response code

200 : Success

401 : Unauthorized

404 : Status is not available

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/devices/status/locked
Method: GET

URL Params:

      <status>:  locked

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "count": 1,

  "devices": [

    {

      "id": "device-9fbf9800-dcb5-4ea4-81d6-d3ff39c61f78",

      "deviceName": "111111111120",

      "serialNumber": "313131313131313131313230",

      "hostName": "00000021",

      "fcc": "32333333",

      "phoneNumber": "1",

      "loggingSendFrequency": 300,

      "healthSendFrequency": 900,

      "isLoggingChanged": true,

      "isModbusConfigChanged": true,

      "isAlarmConfigChanged": true,

      "isEventConfigChanged": true,

      "createdDate": 1465739971068,

      "lastUpdated": 1465739971068,

      "attachedDate": 1465739971068,

      "lastSignedIn": 1465739971068,

      "status": "locked",

      "nodeId": "node-0f0c71bd-c3b1-431a-b58c-5d366d72b751",

      "memmapId": "memmap-6edc7332-4a30-45f1-9f75-f31c6c4632aa"

    }

  ]

}

Notes

 

4.3.4 Lấy thông tin thiết bị bởi serial number

No.

 

Title

 

URL

/rest/api/public/v2/devices/serial-number/<serial-number>

Method

GET

URL Params

serialNumber: số serial number của thiết bị

Data Params

{

    "responseMessage": "",

    "responseCode": ,

    "count": ,

    "devices": [

        {

            "id": "",

            "deviceName": "",

            "serialNumber": "",

            "hostName": "",

            "ncc": "",

            "fcc": "",

            "latitude": "",

            "longitude": "",

            "phoneNumber": "",

            "loggingSendFrequency": ,

            "healthSendFrequency": ,

            "isLoggingChanged": ,

            "isModbusConfigChanged": ,

            "isAlarmConfigChanged": ,

            "isEventConfigChanged": ,

            "createdDate": ,

            "lastUpdated": ,

            "attachedDate": ,

            "lastSignedIn": ,

            "status": "",

            "nodeId": "",

            "memmapId": "",

            "model": "",

            "manufactureDate": "",

            "hardwareVersion": "",

            "firmwareVersion": "",

            "memmapVersion": "",

            "imei": "",

            "cellularNetwork": "",

            "iccid": ""

        }

    ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng thiết bị.

devices: dữ liệu của thiết bị, nếu response_code là 200 (Success) thì devices sẽ là mảng thông tin các thiết bị.

    + id: mã thiết bị (do iConfig phát sinh)

    + deviceName: tên thiết bị

    + serialNumber: số serial của thiết bị

    + hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

    + ncc: địa chỉ IP của thiết bị trong hệ thống Globiots

    + fcc: địa chỉ IP của thiết bị trong hệ thống Globiots

    + latitude: giá trị vĩ độ của thiết bị GPS trên thiết bị

    + longitude: giá trị kinh độ của thiết bị GPS trên thiết bị

    + phoneNumber: số điện thoại của thiết bị

    + loggingSendFrequency: tần suất gửi log từ thiết bị lên server.

    + healthSendFrequency: tần suất gửi thông tin về sức khỏe lên cho server.

    + isLoggingChanged: trạng thái đồng bộ của các tham số ghi log.

    + isModbusConfigChanged: trạng thái đồng bộ của cấu hình modbus.

    + isAlarmConfigChanged: trạng thái đồng bộ của cấu hình alarm.

    + isEventConfigChanged: trạng thái đồng bộ của cấu hình event.

    + createdDate: ngày tạo thiết bị (trên iConfig)

    + attachedDate: ngày thiết bị attach vào Globiots

    + lastUpdated: lần cập nhật thông tin thiết bị gần nhất trên iConfig

    + lastSignedIn: lần cuối thiết bị gửi gói PING về Globiots

    + status: trạng thái của thiết bị (registered, attached, locked, deattached)

    + nodeId: ID của node cha của thiết bị.

    + memmapId: id của memmap mà thiết bị đang sử dụng

    + model: model của thiết bị

    + manufactureDate: ngày sản xuất thiết bị.

    + firmwareVersion: phiên bản của firmware.

    + memmapVersion: phiên bản của Memmory Map

    + imei: số imei của thiết bị.

    + cellularNetwork: Mạng viễn thông mà thiết bị đang kết nối.

    + iccid:  số iccid của SIM trong thiết bị.

Response code

200 : Success

401 : Unauthorized

403 :  Serial number not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/devices/serial-number/313231363031323130333439
Method: GET

URL Params:

      <serial-number>:  313231363031323130333439

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "device": {

    "id": "device-22e207c7-b9c8-4edf-966e-175e84cbacce",

    "deviceName": "DAVITEQ_0003",

    "serialNumber": "313231363031323130333439",

    "hostName": "00000003",

    "ncc": "30383678",

    "fcc": "34323230",

    "latitude": "10.726629",

    "longitude": "106.617905",

    "phoneNumber": "0101010101",

    "loggingSendFrequency": 600,

    "healthSendFrequency": 600,

    "isLoggingChanged": false,

    "isModbusConfigChanged": false,

    "isAlarmConfigChanged": false,

    "isEventConfigChanged": false,

    "createdDate": 1456394740010,

    "lastUpdated": 1475570349490,

    "attachedDate": 1474359756741,

    "lastSignedIn": 1456394740010,

    "status": "attached",

    "nodeId": "superadmin",

    "memmapId": "memmap-2881aa59-00af-4a96-8bb0-7e9d189c0498",

    "model": "",

    "manufactureDate": "",

    "hardwareVersion": "3.0",

    "firmwareVersion": "2.5.7",

    "memmapVersion": "2.6",

    "imei": "358945044492043",

    "cellularNetwork": "452019151822261",

    "iccid": "8984011602516415947F"

  }

}

Notes

 

4.4 Quản lý tham số

4.4.1 Lấy thông tin tất cả các tham số

No.

 

Title

 

URL

/rest/api/public/v2/parameters/host-name/<host-name>

Method

GET

URL Params

<host-name>: địa chỉ IP của thiết bị trong hệ thống Globiots

Data Params

{

  "responseMessage": "",

  "responseCode": ,

  "count": ,

  "parameters": [

    {

      "id": "",

      "name": "",

      "type": "",

      "address": "",

      "unit": ''",

      "decimalPlaces": ,

      "dataType": "",

      "dataLength": ,

      "isLogged": ,

      "loggingPriority": ,

      "loggingFrequency": ,

      "loggingTTL": ,

      "createdDate": ,

      "lastUpdated": ,

      "deviceId": ""

    }

  ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng tham số.

parameters: dữ liệu của tham số, nếu response_code là 200 (Success) thì parameters sẽ là mảng thông tin các tham số.

    + id: mã tham số (do iConfig phát sinh)

    + name: tên tham số

    + type: loại tham số

    + address: địa chỉ tham số trên bản đồ bộ nhớ (memory map)

    + unit: đơn vị của tham số do người dùng chọn

    + decimalPlaces: chiều dài của phần thập phân trong giá trị

    + dataType: loại dữ liệu

    + dataLength: chiều dài dữ liệu

  + expression: chuỗi biểu thức do người dùng định nghĩa (chỉ có giá trị cho virtual parameter)

    + isLogged: đánh dấu tham số được ghi log hay không

    + loggingPriority: độ ưu tiên

    + loggingFrequency: tần suất ghi log

    + loggingTTL: thời gian tồn tại của data

    + createdDate: ngày tạo tham số trên iConfig

    + lastUpdated: lần cập nhật thông tin tham số gần nhất trên iConfig

    + deviceId: mã thiết bị

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

409 : Data not found

Sample call

URL:

http://restest.globiots.com//rest/api/public/v2/parameters/host-name/00000003

Method: GET

URL Params:

      <host-name>:  00000003

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "count": 3,

  "parameters": [

    {

      "id": "parameter-cbd80f6e-d9f4-41ae-b2cb-01824fc07049",

      "name": "3000",

      "type": "real_parameter",

      "address": "3000",

      "unit": "%/min",

      "decimalPlaces": 4,

      "dataType": "float",

      "dataLength": 4,

      "isLogged": true,

      "loggingPriority": 123,

      "loggingFrequency": 1,

      "loggingTTL": 1036800,

      "createdDate": 1474276465221,

      "lastUpdated": 1474363305602,

      "deviceId": "device-22e207c7-b9c8-4edf-966e-175e84cbacce"

    },

    {

      "id": "parameter-19ced2d2-409c-42ee-9c34-0e1a1f56779f",

      "name": "Pin",

      "type": "real_parameter",

      "address": "2304",

      "unit": "none",

      "decimalPlaces": 2,

      "dataType": "float",

      "dataLength": 4,

      "isLogged": true,

      "loggingPriority": 1,

      "loggingFrequency": 5,

      "loggingTTL": 1036800,

      "createdDate": 1474362121104,

      "lastUpdated": 1474362121104,

      "deviceId": "device-22e207c7-b9c8-4edf-966e-175e84cbacce"

    },

    {

      "id": "parameter-5e0f3f59-03e8-4486-b548-44cbb728f063",

      "name": "Power",

      "type": "real_parameter",

      "address": "2300",

      "unit": "none",

      "decimalPlaces": 2,

      "dataType": "float",

      "dataLength": 4,

      "isLogged": true,

      "loggingPriority": 1,

      "loggingFrequency": 5,

      "loggingTTL": 1036800,

      "createdDate": 1474362019531,

      "lastUpdated": 1474362019531,

      "deviceId": "device-22e207c7-b9c8-4edf-966e-175e84cbacce"

    }

  ]

}

Notes

 

4.4.2 Lấy thông tin tham số với địa chỉ chỉ định

No.

 

Title

 

URL

/rest/api/public/v2/parameters/host-name/<hostname>/address/<address>

Method

GET

URL Params

<host-name>: địa chỉ IP của thiết bị trong hệ thống Globiots

<address>: trạng thái cấu hình log của tham số (true: ghi log, false: không ghi log)

Data Params

{

  "responseMessage": "",

  "responseCode": ,

  "count": ,

  "parameters": [

    {

      "id": "",

      "name": "",

      "type": "",

      "address": "",

      "unit": ''",

      "decimalPlaces": ,

      "dataType": "",

      "dataLength": ,

      "isLogged": ,

      "loggingPriority": ,

      "loggingFrequency": ,

      "loggingTTL": ,

      "createdDate": ,

      "lastUpdated": ,

      "deviceId": ""

    }

  ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng tham số.

parameters: dữ liệu của tham số, nếu response_code là 200 (Success) thì parameters sẽ là mảng thông tin các tham số.

    + id: mã tham số (do iConfig phát sinh)

    + name: tên tham số

    + type: loại tham số

    + address: địa chỉ tham số trên bản đồ bộ nhớ (memory map)

    + unit: đơn vị của tham số do người dùng chọn

    + decimalPlaces: chiều dài của phần thập phân trong giá trị

    + dataType: loại dữ liệu

    + dataLength: chiều dài dữ liệu

  + expression: chuỗi biểu thức do người dùng định nghĩa (chỉ có giá trị cho virtual parameter)

    + isLogged: đánh dấu tham số được ghi log hay không

    + loggingPriority: độ ưu tiên

    + loggingFrequency: tần suất ghi log

    + loggingTTL: thời gian tồn tại của data

    + createdDate: ngày tạo tham số trên iConfig

    + lastUpdated: lần cập nhật thông tin tham số gần nhất trên iConfig

    + deviceId: mã thiết bị

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

406 : Status not support

409 : Data not found

Sample call

URL:

http://restest.globiots.com//rest/api/public/v2/parameters/host-name/00000003/address/3000

Method: GET

URL Params:

      <host-name>:  00000003

      <address>: 3000

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "parameter": {

    "id": "parameter-cbd80f6e-d9f4-41ae-b2cb-01824fc07049",

    "name": "3000",

    "type": "real_parameter",

    "address": "3000",

    "unit": "%/min",

    "decimalPlaces": 4,

    "dataType": "float",

    "dataLength": 4,

    "isLogged": true,

    "loggingPriority": 123,

    "loggingFrequency": 1,

    "loggingTTL": 1036800,

    "createdDate": 1474276465221,

    "lastUpdated": 1474363305602,

    "deviceId": "device-22e207c7-b9c8-4edf-966e-175e84cbacce"

  }

}

Notes

 

4.4.3 Lấy thông tin các thiết bị theo trạng thái logged

No.

 

Title

 

URL

/rest/api/public/v2/parameters/host-name/<host-name>/logged/<status>

Method

GET

URL Params

<host-name>: địa chỉ IP của thiết bị trong hệ thống Globiots

<status>: trạng thái cấu hình log của tham số (true: ghi log, false: không ghi log)

Data Params

{

  "responseMessage": "",

  "responseCode": ,

  "count": ,

  "parameters": [

    {

      "id": "",

      "name": "",

      "type": "",

      "address": "",

      "unit": ''",

      "decimalPlaces": ,

      "dataType": "",

      "dataLength": ,

      "isLogged": ,

      "loggingPriority": ,

      "loggingFrequency": ,

      "loggingTTL": ,

      "createdDate": ,

      "lastUpdated": ,

      "deviceId": ""

    }

  ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng tham số.

parameters: dữ liệu của tham số, nếu response_code là 200 (Success) thì parameters sẽ là mảng thông tin các tham số.

    + id: mã tham số (do iConfig phát sinh)

    + name: tên tham số

    + type: loại tham số

    + address: địa chỉ tham số trên bản đồ bộ nhớ (memory map)

    + unit: đơn vị của tham số do người dùng chọn

    + decimalPlaces: chiều dài của phần thập phân trong giá trị

    + dataType: loại dữ liệu

    + dataLength: chiều dài dữ liệu

  + expression: chuỗi biểu thức do người dùng định nghĩa (chỉ có giá trị cho virtual parameter)

    + isLogged: đánh dấu tham số được ghi log hay không

    + loggingPriority: độ ưu tiên

    + loggingFrequency: tần suất ghi log

    + loggingTTL: thời gian tồn tại của data

    + createdDate: ngày tạo tham số trên iConfig

    + lastUpdated: lần cập nhật thông tin tham số gần nhất trên iConfig

    + deviceId: mã thiết bị

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

406 : Status not support

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/parameters/host-name/00000001/logged/true

Method: GET

URL Params:

      <host-name>:  00000001

      <logged>: false

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "count": 3,

  "parameters": [

    {

      "id": "parameter-df6fdcf8-d1c1-4692-8b32-cd793cf8b659",

      "name": "Power Factor 1-PM128 + 5",

      "type": "virtual_parameter",

      "address": "4084",

      "value": "",

      "unit": "kg/l",

      "decimalPlaces": 4,

      "dataType": "float",

      "dataLength": 4,

      "expression": "[2030] + 5",

      "isLogged": false,

      "loggingPriority": 1,

      "loggingFrequency": 5,

      "loggingTTL": 5184000,

      "createdDate": 1455510675036,

      "lastUpdated": 1455510675036,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "parameter-57f742e1-6067-4f09-8e2d-263152b2c48f",

      "name": "[iConnector Power Supply] + [iConnector Battery]",

      "type": "virtual_parameter",

      "address": "4088",

      "value": "",

      "unit": "A",

      "decimalPlaces": 6,

      "dataType": "float",

      "dataLength": 4,

      "expression": "[2300] + [2304]",

      "isLogged": false,

      "loggingPriority": 1,

      "loggingFrequency": 5,

      "loggingTTL": 5184000,

      "createdDate": 1455596199590,

      "lastUpdated": 1455596199590,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "parameter-aab8bc36-1321-428e-b427-b3715712e503",

      "name": "[Voltage 1N-PM128] + [Active Energy-PM128] - 10",

      "type": "virtual_parameter",

      "address": "4080",

      "value": "",

      "unit": "A",

      "decimalPlaces": 5,

      "dataType": "float",

      "dataLength": 4,

      "expression": "([2000] + [2040]) - 10",

      "isLogged": false,

      "loggingPriority": 1,

      "loggingFrequency": 5,

      "loggingTTL": 5184000,

      "createdDate": 1455510575550,

      "lastUpdated": 1455510575550,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    }

  ]

}

Notes

 

4.5 Quản lý cảnh báo

4.5.1 Lấy thông tin tất cả các cấu hình alarm

No.

 

Title

 

URL

/rest/api/public/v2/alarms/parameter-id/<parameter-id>

Method

GET

URL Params

<parameter-id>: mã tham số

Data Params

{

    "responseCode": "",

    "responseMessage": "",

    "alarm-config": {

        "name": "",

        "h": "",

        "hihi": "",

        "hOfHihi": "",

        "hihiCmt": "",

        "hi": "",

        "hOfHi": "",

        "hiCmt": 0,

        "lo": 0,

        "hOfLo": 0,

        "loCmt": 0,

        "lolo": 0,

        "hOfLolo": 0,

        "loloCmt": 0,

        "createdDate": 1435740094,

        "lastUpdated": 1435740094,

        "parameterId": ""

    }

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code).

alarms: dữ liệu của alarm, nếu response_code là 200 (Success) thì alarms sẽ là mảng thông tin các alarm.

    + id: mã alarm (do iConfig phát sinh)

    + name: tên tham số

    + h: giá trị của hysteresis

    + hihi: giá trị hihi

    + hOfHihi: giá trị của hysteresis của hihi

    + hihiCmt: Lời chú thích của hihi do người dùng định nghĩa

    + hi: giá trị của hi

    + hOfHi: giá trị của hysteresis của hi

    + hiCmt: Lời chú thích của hi do người dùng định nghĩa

    + lo: giá trị của lo

    + hOfLo: giá trị của hysteresis của lo

    + loCmt: Lời chú thích của lo do người dùng định nghĩa

    + lolo: giá trị lolo

    + hOfLolo: giá trị của hysteresis của lolo

    + loloCmt: Lời chú thích của lolo do người dùng định nghĩa

    + createdDate: ngày tạo alarm trên iConfig

    + lastUpdated: lần cập nhật thông tin alarm gần nhất trên iConfig

    + parameterId: mã tham số

Response code

200 : Success

401 : Unauthorized

407 : Parameter id not found

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/alarms/parameter-id/parameter-cbd80f6e-d9f4-41ae-b2cb-01824fc07049

Method: GET

URL Params:

      <parameter-id>:  parameter-cbd80f6e-d9f4-41ae-b2cb-01824fc07049

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "alarm-config": {

    "id": "alarm-config-c90915c0-09cb-4aea-931d-030b2595868d",

    "priority": 255,

    "name": "Alarm 3000",

    "hihi": 1000,

    "hyOfHihi": 1,

    "hihiCmt": "HiHi",

    "hi": 500,

    "hyOfHi": 1,

    "hiCmt": "Hi",

    "lo": 200,

    "hyOfLo": 1,

    "loCmt": "Lo",

    "lolo": 100,

    "hyOfLolo": 1,

    "loloCmt": "LoLo",

    "parameterId": "parameter-cbd80f6e-d9f4-41ae-b2cb-01824fc07049"

  }

}

Notes

 

4.6 Quản lý sự kiện

4.6.1 Lấy thông tin tất cả các event

No.

 

Title

 

URL

/rest/api/public/v2/events/host-name/<hostname>

Method

GET

URL Params

<host-name>: địa chỉ IP của thiết bị trong hệ thống Globiots

Data Params

{

    "responseCode": "",

    "responseMessage": "",

    "count": 2,

    "event-configs": [

        {

            "id":"",

            "name": "",

            "comment": "",

            "isNotificationServer": "",

            "timeoutTrue": "",

            "timeoutFalse": "",

            "logicalOperator": "",

            "deviceId": "",

            "conditionCount": 2,

            "actionCount": 2,

            "conditions": [

                {

                    "id": "",

                    "name": "",

                    "type": "",

                    "comparisionOperator": "",

                    "parameterIdPrimary": "",

                    "parameterIdSecondary": "",

                    "constant": "",

                    "eventConfigId": ""

                },

                {

                    "id": "",

                    "name": "",

                    "type": "",

                    "comparisionOperator": "",

                    "parameterIdPrimary": "",

                    "parameterIdSecondary": "",

                    "constant": "",

                    "eventConfigId": ""

                }

            ],

            "actions": [

                {

                    "id": "",

                    "name": "",

                    "type": "",

                    "parameterId": "",

                    "valueTrue": "",

                    "valueFalse": "",

                    "eventConfigId": ""

                },

                {

                    "id": "",

                    "name": "",

                    "type": "",

                    "parameterId": "",

                    "valueTrue": "",

                    "valueFalse": "",

                    "eventConfigId": ""

                }

            ]

        },

        {

            "id":"",

            "name": "",

            "comment": "",

            "isNotificationServer": "",

            "timeoutTrue": "",

            "timeoutFalse": "",

            "logicalOperator": "",

            "deviceId": "",

            "conditionCount": 2,

            "actionCount": 2,

            "conditions": [

                {

                    "id": "",

                    "name": "",

                    "type": "",

                    "comparisionOperator": "",

                    "parameterIdPrimary": "",

                    "parameterIdSecondary": "",

                    "constant": "",

                    "eventConfigId": ""

                },

                {

                    "id": "",

                    "name": "",

                    "type": "",

                    "comparisionOperator": "",

                    "parameterIdPrimary": "",

                    "parameterIdSecondary": "",

                    "constant": "",

                    "eventConfigId": ""

                }

            ],

            "actions": [

                {

                    "id": "",

                    "name": "",

                    "type": "",

                    "parameterId": "",

                    "valueTrue": "",

                    "valueFalse": "",

                    "eventConfigId": ""

                },

                {

                    "id": "",

                    "name": "",

                    "type": "",

                    "parameterId": "",

                    "valueTrue": "",

                    "valueFalse": "",

                    "eventConfigId": ""

                }

            ]

        }

    ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng alarm.

events: dữ liệu của event, nếu response_code là 200 (Success) thì events sẽ là mảng thông tin các event.

    + id: mã event (do iConfig phát sinh)

    + name: tên event

    + comment: Lời chú thích của event do người dùng định nghĩa

    + isNotificationServer: true: gửi event về cho server, false: không gửi về server

    + timeoutTrue: thời gian giữ giá trị đúng của event

    + timeoutFalse: thời gian giữ giá trị sai của event

    + logicalOperator: toán tử giữa các điều kiện (AND, OR)

    + deviceId: mã thiết bị

    + conditionCount: số lượng điều kiện

    + actionCount: số lượng hành động

    + conditions:

         - id: mã điều kiện

         - name: tên điều kiện

         - type: loại điều kiện

         - comparisionOperator: toán tử so sánh

         - parameterIdPrimary: mã tham số thứ nhất

         - parameterIdSecondary: mã tham số thứ hai

         - constant: hằng số

         - eventConfigId: mã sự kiện

    + actions: Lời chú thích của lo do người dùng định nghĩa

         - id: mã hành động

         - name: tên hành động

         - type: loại hành động

         - parameterId: mã tham số

         - valueTrue: giá trị thứ nhất

         - valueFalse: giá trị thứ hai

         - eventConfigId: mã điều kiện

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/events/host-name/00000003

Method: GET

URL Params:

      <host-name>:  00000003

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "event-configs": [

    {

      "id": "event-config-d0ffcb25-b9e2-40ab-b1e4-dcd75a48e3a3",

      "uniqueId": 1,

      "parameterId": "parameter-cbd80f6e-d9f4-41ae-b2cb-01824fc07049",

      "name": "Event 3000 > 100",

      "priority": 255,

      "comment": "Comment",

      "isNotificationServer": true,

      "timeoutTrue": 1,

      "timeoutFalse": 1,

      "logicalOperator": "AND",

      "deviceId": "device-22e207c7-b9c8-4edf-966e-175e84cbacce",

      "status": true,

      "conditions": [

        {

          "id": "condition-61b2f2e4-fbd4-450a-9ce6-0bcc555bb298",

          "name": "Condition",

          "type": "01",

          "comparisionOperator": "greater_than_or_equal_to",

          "parameterIdPrimary": "parameter-cbd80f6e-d9f4-41ae-b2cb-01824fc07049",

          "constant": "100",

          "eventConfigId": "event-config-d0ffcb25-b9e2-40ab-b1e4-dcd75a48e3a3",

          "status": true

        }

      ],

      "actions": []

    }

  ],

  "count": 1

}

Notes

 

4.7 Quản lý Memory Map 

4.7.1 Lấy thông tin tất cả các địa chỉ trên memory map

No.

 

Title

 

URL

/rest/api/public/v2/memmap/host-name/<host-name>

Method

GET

URL Params

<host-name>: địa chỉ IP của thiết bị trong hệ thống Globiots

Data Params

{

    "responseCode": "",

    "responseMessage": "",

    "count": 2,

    "addresses": [

        {

            "id": "",

            "address": "",

            "value": "",

            "dataType": "",

            "dataLength": "",

            "canRead": "",

            "canWrite": "",

            "isChanged": true,

            "createdDate": 1435740094,

            "lastUpdated": 1435740094,

            "deviceId": ""

        }

    ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng address.

addresses: dữ liệu của memory map, nếu response_code là 200 (Success) thì addresses sẽ là mảng thông tin các addresses.

    + id: mã alarm (do iConfig phát sinh)

    + address: địa chỉ trên memory map

    + value: giá trị của địa chỉ (not real-time)

    + dataType: loại dữ liệu

    + dataLength: chiều dài dữ liệu

    + canRead: địa chỉ có thể đọc (true: có thể đọc, false: không thể đọc)

    + canWrite: địa chỉ có thể ghi (true: có thể ghi, false: không thể ghi)

    + isChanged: đánh dấu một địa chỉ có thay đổi hoặc không so với iConnector

    + createdDate: ngày tạo địa chỉ trên iConfig

    + lastUpdated: lần cập nhật thông tin address gần nhất trên iConfig

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/memmap/host-name/00000001

Method: GET

URL Params:

      <host-name>:  00000001

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "count": 12,

  "addresses": [

    {

      "id": "memmap-config-233e17af-8106-416f-ba8d-48dd7aab30e0",

      "label": "mbCycle",

      "address": "0807",

      "value": "1",

      "dataType": "unsigned_integer_32",

      "dataLength": 4,

      "canRead": true,

      "canWrite": true,

      "isChanged": false,

      "createdDate": 1452501573968,

      "lastUpdated": 1452501573969,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-01b805e6-e942-4660-918a-98e032a1c8f0",

      "label": "Port",

      "address": "01C0",

      "value": "",

      "dataType": "unsigned_integer_32",

      "dataLength": 4,

      "canRead": true,

      "canWrite": false,

      "isChanged": false,

      "createdDate": 1456391222115,

      "lastUpdated": 1464840747256,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-7539c9f0-585a-413e-95bf-f5adc1770650",

      "label": "mbCommMode",

      "address": "0801",

      "value": "0",

      "dataType": "byte",

      "dataLength": 1,

      "canRead": true,

      "canWrite": true,

      "isChanged": false,

      "createdDate": 1452501574220,

      "lastUpdated": 1452501574220,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-99da961b-1bb8-48d5-be67-d24d2d729e33",

      "label": "Timezone",

      "address": "01de",

      "value": "0",

      "dataType": "unsigned_integer_16",

      "dataLength": 2,

      "canRead": true,

      "canWrite": true,

      "isChanged": false,

      "createdDate": 1463996750442,

      "lastUpdated": 1463996833685,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-e6f2ae7a-d9c9-4c86-8b60-54799b6c0b3f",

      "label": "mbTimeOut",

      "address": "0805",

      "value": "1000",

      "dataType": "unsigned_integer_16",

      "dataLength": 2,

      "canRead": true,

      "canWrite": true,

      "isChanged": false,

      "createdDate": 1452501574057,

      "lastUpdated": 1452501574057,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-47c5e7b5-d80c-4607-9ff8-53cec564e189",

      "label": "Time",

      "address": "2420",

      "value": "",

      "dataType": "string",

      "dataLength": 6,

      "canRead": true,

      "canWrite": false,

      "isChanged": false,

      "createdDate": 1463999092834,

      "lastUpdated": 1467342149434,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-bf014b70-6f80-4008-aa36-6aa321374b4a",

      "label": "mbParity",

      "address": "0803",

      "value": "0",

      "dataType": "byte",

      "dataLength": 1,

      "canRead": true,

      "canWrite": true,

      "isChanged": false,

      "createdDate": 1452501574130,

      "lastUpdated": 1452501574130,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-7584ee1f-3383-420f-8191-f97716d3ba9a",

      "label": "Hostname",

      "address": "0180",

      "value": "",

      "dataType": "string",

      "dataLength": 64,

      "canRead": true,

      "canWrite": false,

      "isChanged": false,

      "createdDate": 1456391168888,

      "lastUpdated": 1464840733717,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-9e2efb6c-5e87-46f5-b7c9-eb627aa9158e",

      "label": "Date",

      "address": "2426",

      "value": "",

      "dataType": "string",

      "dataLength": 6,

      "canRead": true,

      "canWrite": false,

      "isChanged": false,

      "createdDate": 1463999078766,

      "lastUpdated": 1463999176756,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-ecc75326-f6db-4728-9ec5-ad6e0bd1e55f",

      "label": "mbBaudRate",

      "address": "0802",

      "value": "2",

      "dataType": "byte",

      "dataLength": 1,

      "canRead": true,

      "canWrite": true,

      "isChanged": false,

      "createdDate": 1452501574092,

      "lastUpdated": 1465009184434,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-c09c2b87-a7b4-4c93-ac28-128fb7389b43",

      "label": "mbStopBits",

      "address": "0804",

      "value": "1",

      "dataType": "byte",

      "dataLength": 1,

      "canRead": true,

      "canWrite": true,

      "isChanged": false,

      "createdDate": 1452501574011,

      "lastUpdated": 1452501574011,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    },

    {

      "id": "memmap-config-deea8825-6214-49ec-bb5f-cdc32f0b7930",

      "label": "mbPortNumber",

      "address": "0800",

      "value": "1",

      "dataType": "byte",

      "dataLength": 1,

      "canRead": true,

      "canWrite": true,

      "isChanged": false,

      "createdDate": 1452501574175,

      "lastUpdated": 1452501574175,

      "deviceId": "device-fa48cc49-2856-4365-90ca-db02f27cc3eb"

    }

  ]

}

Notes

 

4.8 Dữ liệu Log

4.8.1 Lấy dữ liệu cuối cùng trong ngày

No.

 

Title

 

URL

rest/api/public/v2/data-log/last-value?hostname={hostname}&address={addresses}

Method

GET

URL Params

hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

address: mảng địa chỉ trên memmory map

Data Params

{
  "data": [
    {
      "hostName": "",
      "address": "",
      "timestamp": "",
      "rawValue": ""
    }
  ],
  "responseMessage": "Success",
  "responseCode": 200
}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

hostName: địa chỉ IP của thiết bị trong hệ thống Globiots

address: địa chỉ trên memmory map

rawValue: giá trị cuối cùng trong ngày

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

408 : Value of 'fromDate' field is greater than  value of 'toDate' field

409 : Data not found

Sample call

URL:

http://localhost:8080/globiots-resources/rest/api/public/v2/data-log/last-value?hostname=00000012&address=2000

Method: GET

URL Params:

      <host-name>:  00000012,

      <addresses>: 2000

 

Response data:

{
  "data": [
    {
      "hostName": "00000012",
      "address": "2000",
      "timestamp": "1564821007000",
      "rawValue": "1"
    }
  ],
  "responseMessage": "Success",
  "responseCode": 200
}

Notes

Chỉ nhận được giá trị cuối cùng trong ngày. Nếu iConnector ngoại tuyến thì sẽ không nhận được giá trị cuối cùng.

4.8.2 Lấy dữ liệu cuối cùng trong ngày với nhiều địa chỉ

No.

 

Title

 

URL

rest/api/public/v2/data-log/last-value?hostname={ hostname }

Method

POST

URL Params

hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

addresses: mảng địa chỉ trên memmory map

fromDate: điểm bắt đầu lấy dữ liệu, định dạng yyyyMMddHHmmss (GMT + 0).

toDate: điểm kết thúc lấy dữ liệu, định dạng yyyyMMddHHmmss (GMT + 0).

Request Body

{
  "hostnameA": ["addressA1","addressA2"],
   "hostnameB": ["addressB1","addressB2"],
}

Data Params

{
  "data": [
    {
      "hostName": "",
      "address": "",
      "timestamp": "",
      "rawValue": ""
    }
  ],
  "responseMessage": "Success",
  "responseCode": 200
}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

hostName: địa chỉ IP của thiết bị trong hệ thống Globiots

address: địa chỉ trên memmory map

rawValue: giá trị cuối cùng trong ngày

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

408 : Value of 'fromDate' field is greater than  value of 'toDate' field

409 : Data not found

Sample call

URL:

http://localhost:8080/globiots-resources/rest/api/public/v2/data-log/last-value?hostname=00000012

Method: POST

URL Params:

      <host-name>:  00000003

Request Body:

{
  "00000012": [
    "2000",
    "2004"
  ],
  "00000010": [
    "2008",
    "200C"
  ]
}

Response data:

{
  "responseMessage": "Success",
  "responseCode": 200,
  "data": [
    {
      "hostName": "00000012",
      "address": "2000",
      "timestamp": "1564821307000",
      "rawValue": "1"
    },
    {
      "hostName": "00000012",
      "address": "2004",
      "timestamp": "1564821307000",
      "rawValue": "1"
    },
    {
      "hostName": "00000010",
      "address": "2008"
    },
    {
      "hostName": "00000010",
      "address": "200C"
    }
  ]
}

Notes

 

4.8.3 Lấy dữ liệu Log

No.

 

Title

 

URL

/rest/api/public/v2/data-log?

hostname={hostname}&address={address}&fromDate={fromDate}&toDate={toDate}

Method

GET

URL Params

<host-name>: địa chỉ IP của thiết bị trong hệ thống Globiots

<address>: địa chỉ trên memmory map

fromDate: điểm bắt đầu lấy dữ liệu

toDate: điểm kết thúc lấy dữ liệu

Data Params

{

    "responseCode": "",

    "responseMessage": "",

    "count": ,

    "hostname":"",

    "address":"",

    "fromDate": ,

    "toDate": ,

    "data": [

                [timestamp, value]

            ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng dữ liệu trả về

hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

address: địa chỉ trên memmory map

fromDate: điểm bắt đầu lấy dữ liệu, định dạng yyyyMMddHHmmss (GMT + 0).

toDate: điểm kết thúc lấy dữ liệu,  định dạng yyyyMMddHHmmss (GMT + 0).

data: dữ liệu log, nếu response_code là 200 (Success) thì datas sẽ là mảng thông tin các  log.

    + [1435820730000,0]: mảng dữ liệu gồm 2 phần tử, phần tử đầu tiên là timestamp, phần tử tiếp theo là value

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

405 : Address not found

408 : Value of 'fromDate' field is greater than  value of 'toDate' field

409 : Data not found

Sample call

URL:   http://localhost:8080/globiots-resources/rest/api/public/v2/data-log?hostname=00000010&address=2000&fromDate=20190630070000&toDate=20190701070100

Method: GET

URL Params:

      <host-name>:  00000010,

      <address>:  2000

      fromDate: 20190630070000

      toDate:  20190630070100

 

Response data:

{
  "hostname": "00000010",
  "address":  "2000",
  "fromDate": "20190630070000",
  "toDate":   "20190630070100",
  "count": 12,
  "responseMessage": "Success",
  "responseCode": 200,
  "data": [
    [
      1561878051000,
      "1"
    ],
    [
      1561878056000,
      "1"
    ]
  ]
}

 Notes

Phạm vi ngày không quá 1 giờ.

4.8.4 Lấy dữ liệu log của nhiều địa chỉ

No.

 

Title

 

URL

/rest/api/public/v2/data-log?

hostname={hostname}&fromDate={fromDate}&toDate={toDate}

Method

POST

URL Params

hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

addresses: mảng địa chỉ trên memmory map

fromDate: điểm bắt đầu lấy dữ liệu

toDate: điểm kết thúc lấy dữ liệu

Data Params

{

    "responseCode": "",

    "responseMessage": "",

    "count": ,

    "hostname":"",

    "address":"",

    "fromDate": ,

    "toDate": ,

    "data": [

                [timestamp, value]

            ]

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

count: số lượng dữ liệu trả về

hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

address: địa chỉ trên memmory map

fromDate: điểm bắt đầu lấy dữ liệu, định dạng yyyyMMddHHmmss (GMT + 0).

toDate: điểm kết thúc lấy dữ liệu, định dạng yyyyMMddHHmmss (GMT + 0).

data: dữ liệu log, nếu response_code là 200 (Success) thì datas sẽ là mảng thông tin các  log.

    + [1435820730000,0]: mảng dữ liệu gồm 2 phần tử, phần tử đầu tiên là timestamp, phần tử tiếp theo là value

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

408 : Value of 'fromDate' field is greater than  value of 'toDate' field

409 : Data not found

Sample call

URL:

http://localhost:8080/globiots-resources/rest/api/public/v2/data-log?hostname=00000010&fromDate=20190630070000&toDate=20190630070100

Method: POST

URL Params:

      <host-name>:  00000010,

      fromDate: 20190630070000

      toDate:  20190630070100

 

Request Body:

      <addresses>: ['2000', '2004']

 

Response data:

{
  "hostname": "00000010",
  "fromDate": "20190630070000",
  "toDate": "20190630070100",
  "responseMessage": "Success",
  "responseCode": 200,
  "datas": [
    {
      "address": "2000",
      "data": [
        [
          1561878001000,
          "1"
        ],
        [
          1561878006000,
          "1"
        ]
      ],
      "count": 2
    },
    {
      "address": "2004",
      "data": [
        [
          1561878001000,
          "1"
        ],
        [
          1561878006000,
          "1"
        ]
      ],
      "count": 2
    }
  ]
}

Notes

  • Phạm vi ngày không quá 1 giờ.
  • Chỉ cho phép tối đa 10 địa chỉ cho mỗi lần gọi API.

4.9 Dữ liệu cảnh báo

4.9.1 Lấy tất cả dữ liệu về alarm summary

No.

 

Title

 

URL

/rest/api/public/v2/alarm-log/summary

Method

GET

URL Params

 

Data Params

{

    "responseCode": "",

    "responseMessage": "",

    "hostname":"",

    "fromDate": ,

    "toDate": ,

    "datas": [

        {

            "address": "",

            "count": ,

            "data": [

                 [timestamp, value]

            ]

        },

        {

            "address": "",

            "count": ,

            "data": [

                [timestamp, value]

            ]

        }

    ]  

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

fromDate: điểm bắt đầu lấy dữ liệu

toDate: điểm kết thúc lấy dữ liệu

datas: dữ liệu log, nếu response_code là 200 (Success) thì datas sẽ là mảng thông tin các data log.

      + count: số lượng dữ liệu trả về

      + address: địa chỉ trên memmory map

     + data: dữ liệu log, nếu response_code là 200 (Success) thì datas sẽ là mảng thông tin các  log.

          - [timestamp, value]: mảng dữ liệu gồm 2 phần tử, phần tử đầu tiên là timestamp, phần tử tiếp theo là value

Response code

200 : Success

401 : Unauthorized

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/alarm-log/summary

Method: GET

URL Params:

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "data": {

    "count": 7,

    "alarm-logs": [

      {

        "hostname": "00000001",

        "address": "3004",

        "timestamp": "1465842108000",

        "comment": "lolo",

        "state": "0",

        "value": "0",

        "status": "ack"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1477471176000",

        "comment": "LoLo",

        "state": "0",

        "value": "0.0"

      },

      {

        "hostname": "00000003",

        "address": "3004",

        "timestamp": "1473410738000",

        "comment": "lolo",

        "state": "0",

        "value": "0"

      },

      {

        "hostname": "00000013",

        "address": "2118",

        "timestamp": "1465545240000",

        "comment": "Dòng quá thấp",

        "state": "0",

        "value": "0.0",

        "status": "ack"

      },

      {

        "hostname": "00000014",

        "address": "2000",

        "timestamp": "1465869463000",

        "comment": "LoLo",

        "state": "0",

        "value": "0",

        "status": "ack"

      },

      {

        "hostname": "00000016",

        "address": "3003",

        "timestamp": "1465654546000",

        "comment": "hihi",

        "state": "4",

        "value": "110",

        "status": "ack"

      },

      {

        "hostname": "00000016",

        "address": "3005",

        "timestamp": "1465878896000",

        "comment": "lolo",

        "state": "0",

        "value": "0.0",

        "status": "ack"

      }

    ]

  }

}

Notes

 

4.9.2 Lấy dữ liệu alarm summary theo từng device

No.

 

Title

 

URL

/rest/api/public/v2/alarm-log/detail/host-name/<host-name>

Method

GET

URL Params

<host-name>: địa chỉ IP của thiết bị trong hệ thống Globiots

Data Params

{

    "responseCode": "",

    "responseMessage": "",

    "hostname":"",

    "fromDate": ,

    "toDate": ,

    "datas

": [

        {

            "address": "",

            "count": ,

            "data": [

                 [timestamp, value]

            ]

        },

        {

            "address": "",

            "count": ,

            "data": [

                [timestamp, value]

            ]

        }

    ]  

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

fromDate: điểm bắt đầu lấy dữ liệu

toDate: điểm kết thúc lấy dữ liệu

datas: dữ liệu log, nếu response_code là 200 (Success) thì datas sẽ là mảng thông tin các data log.

      + count: số lượng dữ liệu trả về

      + address: địa chỉ trên memmory map

     + data: dữ liệu log, nếu response_code là 200 (Success) thì datas sẽ là mảng thông tin các  log.

          - [timestamp, value]: mảng dữ liệu gồm 2 phần tử, phần tử đầu tiên là timestamp, phần tử tiếp theo là value

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/alarm-log/summary/host-name/00000003

Method: GET

URL Params:

      <host-name>: 00000003

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "data": {

    "count": 2,

    "alarm-logs": [

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1477471176000",

        "comment": "LoLo",

        "state": "0",

        "value": "0.0"

      },

      {

        "hostname": "00000003",

        "address": "3004",

        "timestamp": "1473410738000",

        "comment": "lolo",

        "state": "0",

        "value": "0"

      }

    ]

  }

}

Notes

 

4.9.3 Lấy dữ liệu alarm detail theo từng device

No.

 

Title

 

URL

/rest/api/public/v2/alarm-log/detail/host-name/<hostname>

Method

GET

URL Params

<host-name>: địa chỉ IP của thiết bị trong hệ thống Globiots

fromDate: điểm bắt đầu lấy dữ liệu

toDate: điểm kết thúc lấy dữ liệu

Data Params

{

    "responseCode": 200,

    "responseMessage": "",

    "data": {

        ''count'': 2,

        "alarms": [

            {

                "hostname": "",

                "address": "",

                "timestamp": 1435820730000,

                "comment": "",

                "state": "hi",

                "value": 0,

                "status": "",

                "solution": "",

                "user": ""

            },

            {

                "hostname": "",

                "address": "",

                "timestamp": 1435820730000,

                "comment": "",

                "state": "hi",

                "value": 0,

                "status": "",

                "solution": "",

                "user": ""

            }

        ]

    }

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

data: dữ liệu log, nếu response_code là 200 (Success) thì data sẽ là thông tin các alarm.

    + count: số lượng alarm trả về

    + alarms:

        - hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

        - address: địa chỉ trên memmory map

        - timestamp: thời gian xảy ra alarm

        - comment: Lời chú thích của alarm do người dùng định nghĩa

        - state: trạng thái alarm (hihi, hi, lo, lolo)

        - value: giá trị của địa chỉ khi xảy ra alarm

        - status: trạng thái acknowledge  của alarm ("ack")

        - solution: comment của user khi acknowledge trên alarm

        - user: tên user đã acknowledge

 

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

408 : Value of 'fromDate' field is greater than value of 'toDate' field

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/alarm-log/detail/host-name/00000003?fromDate=1475254800000&toDate=1477846800000

Method: GET

URL Params:

      <host-name>: 00000003

      fromDate: 1475254800000

      toDate: 1477846800000

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "data": {

    "count": 4,

    "alarm-logs": [

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1475565383000",

        "comment": "",

        "state": "0",

        "value": "0.0"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1475565392000",

        "comment": "",

        "state": "0",

        "value": "0.0"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1475571304000",

        "comment": "",

        "state": "1",

        "value": "123.0"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1476714184000",

        "comment": "LoLo",

        "state": "0",

        "value": "0.0"

      }

    ]

  }

}

Notes

 

4.9.4 Lấy dữ liệu alarm history

No.

 

Title

 

URL

/rest/api/public/v2/alarm-log/history/host-name/<hostname>

Method

GET

URL Params

hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

fromDate: điểm bắt đầu lấy dữ liệu

toDate: điểm kết thúc lấy dữ liệu

Data Params

{

    "responseCode": 200,

    "responseMessage": "",

    "data": {

        "count": 2,

        "alarms": [

            {

                "hostname": "",

                "address": "",

                "timestamp": 1435820730000,

                "comment": "",

                "state": "hi",

                "value": 0,

                "status": "",

                "solution": "",

                "user": ""

            },

            {

                "hostname": "",

                "address": "",

                "timestamp": 1435820730000,

                "comment": "",

                "state": "hi",

                "value": 0,

                "status": "",

                "solution": "",

                "user": ""

            }

        ]

    }

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

data: dữ liệu log, nếu response_code là 200 (Success) thì data sẽ là thông tin các alarm.

    + count: số lượng alarm trả về

    + alarms:

        - hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

        - address: địa chỉ trên memmory map

        - timestamp: thời gian xảy ra alarm

        - comment: Lời chú thích của alarm do người dùng định nghĩa

        - state: trạng thái alarm (hihi, hi, lo, lolo)

        - value: giá trị của địa chỉ khi xảy ra alarm

        - status: trạng thái acknowledge  của alarm ("ack")

        - solution: comment của user khi acknowledge trên alarm

        - user: tên user đã acknowledge

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

408 : Value of 'fromDate' field is greater than value of 'toDate' field

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/alarm-log/history/host-name/00000003?fromDate=1475254800000&toDate=1477846800000

Method: GET

URL Params:

      <host-name>: 00000003

      fromDate: 1475254800000

      toDate: 1477846800000

 

Response data:

{

  "responseMessage": "Success",

  "responseCode": 200,

  "data": {

    "count": 9,

    "alarm-logs": [

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1475565383000",

        "comment": "",

        "state": "0",

        "value": "0.0"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1475565392000",

        "comment": "",

        "state": "0",

        "value": "0.0"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1475571304000",

        "comment": "",

        "state": "1",

        "value": "123.0"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1475571440000",

        "comment": "HiHi ",

        "state": "4",

        "value": "2221.0"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1475571634000",

        "comment": "LoLo",

        "state": "0",

        "value": "12.0"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1475572053000",

        "comment": "",

        "state": "2",

        "value": "345.0"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1476181914972",

        "comment": "LoLo",

        "state": "0",

        "value": "12.0",

        "status": "ack",

        "solution": "ggfhggh",

        "user": "superadmin"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1476181931394",

        "comment": "HiHi ",

        "state": "4",

        "value": "2221.0",

        "status": "ack",

        "solution": "hjgghghgh",

        "user": "superadmin"

      },

      {

        "hostname": "00000003",

        "address": "3000",

        "timestamp": "1476714184000",

        "comment": "LoLo",

        "state": "0",

        "value": "0.0"

      }

    ]

  }

}

 

Notes

 

4.10 Dữ liệu về sự kiện

4.10.1 Lấy dữ liệu event history

No.

 

Title

 

URL

/rest/api/public/v2/event-log/history/host-name/<hostname>

Method

GET

URL Params

hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

fromDate: điểm bắt đầu lấy dữ liệu

toDate: điểm kết thúc lấy dữ liệu

Data Params

{

    "responseCode": 200,

    "responseMessage": "",

    "data": {

        ''count'': 2,

        "events": [

            {

                "hostname": "",

                "address": "",

                "timestamp": 1435820730000,

                "comment": "",

                "state": "hi",

                "value": 0,

                "status": ""

            },

            {

                "hostname": "",

                "address": "",

                "timestamp": 1435820730000,

                "comment": "",

                "state": "hi",

                "value": 0,

                "status": ""

            }

        ]

    }

}

 

responseCode: mã trả về của giao dịch

responseMessage: thông điệp trả về (giải thích cho response_code)

data: dữ liệu log, nếu response_code là 200 (Success) thì data sẽ là thông tin các alarm.

    + count: số lượng event trả về

    + events:

        - hostname: địa chỉ IP của thiết bị trong hệ thống Globiots

        - address: địa chỉ trên memmory map

        - timestamp: thời gian xảy ra alarm

        - comment: Lời chú thích của alarm do người dùng định nghĩa

        - state: trạng thái alarm (hihi, hi, lo, lolo)

        - value: giá trị của địa chỉ khi xảy ra alarm

        - status: trạng thái acknowledge  của alarm ("ack")

Response code

200 : Success

401 : Unauthorized

402 : Hostname not found

408 : Value of 'fromDate' field is greater than value of 'toDate' field

409 : Data not found

Sample call

URL:

http://restest.globiots.com/rest/api/public/v2/event-log/history/host-name/00000003?fromDate=1475254800000&toDate=1477846800000

Method: GET

URL Params:

      <host-name>: 00000003

      fromDate: 1475254800000

      toDate: 1477846800000

 

Response data:

{

    "responseMessage": "Success",

    "responseCode": 200,

    "count": 3,

    "event-logs": [

        {

            "address": "3000",

            "timestamp": "1475571304000",

            "comment": "Comment",

            "state": "1",

            "value": "123.0",

            "priority": "255",

            "uniqueId": "1",

            "eventName": "Event 3000 > 100",

            "hostname": "00000003"

        },

        {

            "address": "3000",

            "timestamp": "1475571634000",

            "comment": "Comment",

            "state": "0",

            "value": "12.0",

            "priority": "255",

            "uniqueId": "1",

            "eventName": "Event 3000 > 100",

            "hostname": "00000003"

        },

        {

            "address": "3000",

            "timestamp": "1475572054000",

            "comment": "Comment",

            "state": "1",

            "value": "345.0",

            "priority": "255",

            "uniqueId": "1",

            "eventName": "Event 3000 > 100",

            "hostname": "00000003"

        }

    ]

}

Notes

 

5. Liên hệ hỗ trợ

Distributor in Malaysia

AVO.png

AVO Technology Sdn. Bhd.

Official Website: www.avo.com.my

No. 17, Jalan 3/23A, Taman Danau Kota, 53300 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur, Malaysia

General : +603-4143 2288

Mobile : +012-376 7181
Fax : +603-4143 3388

Distributor in Australia and New Zealand

temploggerlogo.png

Templogger Pty Ltd

Tel: 1800 LOGGER

Email: contact@templogger.net

Manufacturer

logo.jpg

Dai Viet Controls & Instrumentation Company Ltd.
No.11 Street 2G, Nam Hung Vuong Res., An Lac Ward, Binh Tan Dist., Ho Chi Minh City, Vietnam.
Tel: +84-28-6268.2523/4 (ext.122)

Email: info@daviteq.com | www.daviteq.com