API для IoT устройств
В данном разделе сайта описан механизм получения данных от «открытых устройств».
Если вас интересует как подключить устройство к нашему серверу, то перейдите в
раздел документации «
Протоколы».
Удаленный доступ к данным для сторонних сервисов доступен только для устройств с открытым
доступом и реализовать в виде URL запроса на сервер. Тип запроса GET или POST неважен.
Параметры для получения данных за определённый период времени:
- URL: 'https://viziot.com:48654';
- action: 'getDataOpenDeviceByPeriod';
- keyPublicDevice: ключ открытого доступа к устройству (44 символа);
- timeStampStart: начальная дата периоды выборки данных в формате Unix Time Stamp, например: 1613825023;
- timeStampEnd: конечная дата периоды выборки данных в формате Unix Time Stamp, например: 1613835023;
Результатом выполнения запроса будет JSON строка с параметрами:
- type (текстовый параметр) – может принимать два значения «ok» или «error»
- points (массив) – содержит массив элементов типа «point»
- description (текстовый параметр) – описание ошибки
Запрос: https://viziot.com:48654/?action=getDataOpenDeviceByPeriod&ampampampampampampampampamp;keyPublicDevice=8UNT6XZY9Y6VC48Q5S6HP9JHDK4XVII7UWHJSYU3MLPG&timeStampStart=1613825023&timeStampEnd=1613835023
Ответ: {"type":"ok","points":[{"date":"1543838492","param":{"f1":"-57","f2":"0.00","f3":"0.00","f4":"0.00","f5":"0.00"}},{"date":"1543838507","param":{"f1":"-56","f2":"0.00","f3":"0.00","f4":"0.00","f5":"0.00"}}]}
Параметры для получения последних данных от IoT устройства:
- URL: 'https://viziot.com:48654';
- action: ' getLastDataOpenDevice';
- keyPublicDevice: ключ открытого доступа к устройству (44 символа);
Результатом выполнения запроса будет JSON строка с параметрами:
- type (текстовый параметр) – может принимать два значения «ok» или «error»
- point (объект) – тип данных «point»
- description (текстовый параметр) – описание ошибки
Запрос: https://viziot.com:48654?action=getLastDataOpenDevice&keyPublicDevice=8UNT6XZY9Y6VC48Q5S6HP9JHDK4XVII7UWHJSYU3MLPG
Ответ: {"type":"ok","point":{"date":"1543839005","param":{"f1":"-56","f2":"0.00","f3":"0.00","f4":"0.00","f5":"0.00"}}}
Тип данных «point»
Тип данных «point» состоит из двух параметров:
- date (число) – дата в формате Unix Time Stamp
- point (объект) – объект с данными от датчиков
Пример JavaScript кода с библиотекой jQuery:
function getDataOpenDeviceByPeriod() {
$.ajax({
type:"POST",
dataType:'json',
url:'https://viziot.com:48654',
timeout: 10000,
data:{
'action':'getDataOpenDeviceByPeriod',
"keyPublicDevice" : "XPHQM555HIB8P7USMGZM7YFLLRMAP7YIFJZQJY0CTSCV",
"timeStampStart" : parseInt(new Date().getTime()/1000) - (60*60*24),
"timeStampEnd" : parseInt(new Date().getTime()/1000),
},
success: function(json){
var data = eval(json);
switch(data.type) {
case 'ok':
console.log('ok', data);
break;
case 'error':
console.log("error", data);
break;
default :
console.log(json);
}
}
});
}
function getLastDataOpenDevice() {
$.ajax({
type:"POST",
dataType:'json',
url:'https://viziot.com:48654',
timeout: 10000,
data:{
'action':'getLastDataOpenDevice',
"keyPublicDevice" : "XPHQM555HIB8P7USMGZM7YFLLRMAP7YIFJZQJY0CTSCV",
},
success: function(json){
var data = eval(json);
switch(data.type) {
case 'ok':
console.log('ok', data);
break;
case 'error':
console.log("error", data);
break;
default :
console.log(json);
}
}
});
}
$(function(){
getDataOpenDeviceByPeriod();
getLastDataOpenDevice();
})