Публичный доступ предоставляется только для устройств, у которых включён режим открытого доступа. Данные можно получать через HTTP GET запросы к API. Теперь используется id устройства, единый как для внутреннего, так и для внешнего использования.
Пример запроса:
https://app.viziot.com/api/v1/public/devices/0df8cb24-3e2b-4046-8464-dac756e70922/points/10
Ответ: JSON:
{"status":200,"type":"OK","data":[{"dt":1742457275000,","num":{"f1":34,"f2":235.5,"f3":2.89,"f4":630,"f5":6759300,"f6":30.13,},"str":{}}, ...]}
Пример запроса:
https://app.viziot.com/api/v1/public/devices/0df8cb24-3e2b-4046-8464-dac756e70922/points/1742456275000/1742457275000
Ответ: JSON:
{"status":200,"type":"OK","data":[{"num":{"f1":34,"f2":234,"f3":2.88,"f4":624,"f5":6759096,"f6":30.92,},"dt":1742456285000,"str":{}}, ... ]}
async function getLastPoints(id, count) {
const url = \`https://app.viziot.com/api/v1/public/devices/\${id}/points/\${count}\`;
try {
const response = await fetch(url);
const data = await response.json();
switch (data.type) {
case 'OK':
console.log('Последние точки:', data.data);
break;
case 'ERROR':
console.error('Ошибка:', data.description);
break;
default:
console.warn('Неизвестный формат ответа:', data);
}
} catch (err) {
console.error('Ошибка запроса:', err);
}
}
async function getPointsByPeriod(id, ts, te) {
const url = \`https://app.viziot.com/api/v1/public/devices/\${id}/points/\${ts}/\${te}\`;
try {
const response = await fetch(url);
const data = await response.json();
switch (data.type) {
case 'OK':
console.log('Точки за период:', data.data);
break;
case 'ERROR':
console.error('Ошибка:', data.description);
break;
default:
console.warn('Неизвестный формат ответа:', data);
}
} catch (err) {
console.error('Ошибка запроса:', err);
}
}
// Пример использования:
const deviceId = "0df8cb24-3e2b-4046-8464-dac756e70922";
getLastPoints(deviceId, 10);
const ts = Math.floor(Date.now()/1000) - 24*60*60;
const te = Math.floor(Date.now()/1000);
getPointsByPeriod(deviceId, ts, te);