Devices API

API используется для работы с устройствами


Одобрение устройства

POST /devices/approve  HTTP/1.1

Запрос позволяет одобрить устройству взаимодействия с сервером

В теле передается серийные номера устройств с разделителем \n.

Пример:

xxxxxxxxxxxxxxx
yyyyyyyyyyyyyyy
zzzzzzzzzzzzzzz

Ответ OK 200


Отзыв устройства

POST /devices/disapprove?deviceId:int  HTTP/1.1

Запрос позволяет отозвать у устройства разрешение на взаимодействие с сервером

Параметры запросы:

Ответ OK 200


Список одобренных устройств

GET /devices/get-approved  HTTP/1.1

Возвращает список всех одобренных устройств сети.

Ответ json

[serial: string] // набор серийных номеров

Список активных устройств

GET /devices/get-alived  HTTP/1.1

Возвращает список устройств сети с которыми установлено соединения.

Ответ json

[serial:string] // набор серийных номеров

Список активных устройств ожидающих одобрение

GET /devices/list-not-approved  HTTP/1.1

Возвращает список устройств сети с которыми установлено соединения, но которые не получили аккредитацию и ожидают одобрения.

Ответ json

[{
  ip:string, // входящий ip запроса,
  seviceSerial: string, // серийный номер
  machineName: string // DNS имя машины, со слов самого устройства 
}] // набор серийных номеров

Получение дерева состояния устройства

GET /devices/get-state?deviceId:number  HTTP/1.1

Возвращает дерево последнего состояния устройства.

Параметры запросы:

Ответ json

[{
  path:string, // адрес/идентифиактор состояния,
  val:{
   val:number?, // численное значение соответствующее состоянию
   sval:string? // строковое значение соответствующее состоянию
  }
}]

Выборка по дереву состояний устройств

GET /devices/query-state?path:string?&deviceId:number?  HTTP/1.1

Возвращает выборку из дерево последних состояния устройств.

Параметры запросы:

Ответ json

{
  deviceSerial:{ // для каждого серийного номера устройства 
    path:string, // адрес/идентифиактор состояния,
    val:{
      val:number?, // численное значение соответствующее состоянию
      sval:string? // строковое значение соответствующее состоянию
    }
  }
}

Информация об устройстве

GET /devices/get-device-info?deviceId:number?  HTTP/1.1

Возвращает детальную информацию об устройстве.

Параметры запросы:

Ответ json

{
  isAlived: bool, // установленно ли с устройством соединение
  approveDate:string, // дата аккредитации ISO8601
  deviceId: number, // порядковый номер
  deviceSerial: string, // серийный номер устройства
  friendlyName: string, // дружественное имя устройства
  lastOnline: string, // дата последнего выхода на связь
  machineName: string, // DNS имя машины
  ip: string, // последний входящий ip адрес
  tags: string[], // список ярлыков
  userGroup: string, // пользовательская группа
  requestIpAvailable: bool, // дотсупен ли входящий IP со стороны сервера
  requestIpAvailableLastCheck: string // дата последней проверки доступности IP, ISO8601
}

Список устройств

GET /devices/list  HTTP/1.1

Получение списка всех устройств.

Ответ json

[{
  isAlived:bool, // установленно ли с устройством соединение
  approveDate:string, // дата аккредитации ISO8601
  deviceId:number, // порядковый номер
  deviceSerial:string, // серийный номер устройства
  friendlyName:string, // дружественное имя устройства
  lastOnline:string, // дата последнего выхода на связь
  machineName:string, // DNS имя машины
  ip:string, // последний входящий ip адрес
  tags:string[], // список ярлыков
  userGroup:string, // пользовательская группа
  requestIpAvailable:bool, // дотсупен ли входящий IP со стороны сервера
  requestIpAvailableLastCheck:string // дата последней проверки доступности IP, ISO8601
}]

Обновление пользовательской информации

POST /devices/update-info?deviceId:number?  HTTP/1.1

Запрос позволяет поменять:

Тело запросы: json:

{
  friendlyName:string?, // новое пользовательское имя 
  tags:string[]?, // новый список ярлыков
  userGroup:string? // пользовательская группа
}

При выполнение запроса, будут изменены все поля имеющие отличное от null значения.

Ответ OK 200


Список поддерживаемых команд

GET /devices/commands-list?deviceId:number?  HTTP/1.1

Запросить список поддерживаем команд напрямую с устройства.

Ответ json

[{
  path:string, // идентфиикатор команды
  settings:any, // параметры, для исполнения команды
  meta:{} // дополнительные мета данные
}]

Запросить устройство выполнить команду

POST /devices/command-exec?deviceId:number&cmd:string  HTTP/1.1

Запрос позволят послать устройству команду на выполнение и получить результат.

Параметры запросы:

Тело запрос json, которые описывает параметры команды. Обычно это settings полученные из списка команд.

Ответ: зависит от комманды, может быть любой ответ, в соответствии с командой.