Завантаження історичних даних
Історичні дані кожного пристрою зберігаються в текстових файлах (datalogs) на його сервері пристроїв. Кожен файл охоплює один день, один місяць або всю історію. Вам потрібен дозвіл читання на пристрій.
Для експорту без коду використовуйте звіти застосунку. Див. ваші дані.
Процедура
Section titled “Процедура”- Знайдіть сервер пристрою. Викличте
get_device_info.phpі прочитайте полеdevice_server. Див. REST API. - Знайдіть порядок стовпців. Викличте
get_device_definitions.php?family_id=<family>і прочитайтеreadingsіoutput_names. - Обчисліть рівень і номер файлу (bin) для потрібного періоду.
- Завантажте кожен файл із сервера пристрою.
- Об’єднайте рядки, сортуйте їх за timestamp і заповніть порожні поля.
curl --compressed \ -H "Authorization: Bearer-API YOUR_API_KEY" \ "https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"Замініть DEVICE_SERVER значенням поля device_server пристрою.
| Параметр | Значення |
|---|---|
serialno |
Серійний номер пристрою |
id |
<level>.<bin>, наприклад 0.20740 |
ver |
2 |
Для автентифікації надішліть заголовок Authorization: Bearer-API YOUR_API_KEY або Authorization: Bearer YOUR_ACCESS_TOKEN.
Сервер може надіслати файл стиснутим (gzip або br). Параметр curl --compressed розпаковує його.
| Код HTTP | Значення |
|---|---|
| 200 | Файл як text/plain |
| 400 | Неправильний serialno або id |
| 403 | Ви не маєте дозволу читання на пристрій |
| 404 | Для цього файлу немає даних |
Рівні і номери файлів
Section titled “Рівні і номери файлів”Усі обчислення використовують UTC.
| Рівень | Один файл на | Обчислення bin | Приклад |
|---|---|---|---|
0 |
День | floor(unix_seconds / 86400) |
14 жовтня 2026 = 0.20740 |
1 |
Місяць | (year - 1970) * 12 + (month - 1) |
Жовтень 2026 = 1.681 |
2 |
Уся історія | Завжди m |
2.m |
Рівень 0 має всі рядки дня. Рівень 1 має приблизно один рядок на день. Рівень 2 має приблизно один рядок на місяць.
Застосунок використовує рівень 0 для періодів до 7 днів і рівень 1 для періодів до 5 місяців. Для довших періодів він використовує 2.m.
Формат рядка
Section titled “Формат рядка”Кожен рядок є одним вимірюванням. Поля розділені ;.
timestamp;reading1;reading2;...;readingN;output1;...;outputMtimestampє unix-секундами (UTC). Він може мати десяткові знаки.- Потім ідуть показники в порядку
readingsсімейства. - Потім ідуть виходи в порядку
output_names. - Порожнє поле означає, що значення не змінилося. Використовуйте останнє значення з попереднього рядка.
- Значення
2147483648означає, що показник відсутній. - Рядки не завжди відсортовані. Сортуйте їх за
timestamp.
Приклад
Section titled “Приклад”Пристрій сімейства e11 має readings = ["T", "GI", "GIC", "GI2", "GI2C"] і не має виходів.
1791936198.977;2120;1;0;1;0| Поле | Значення | Що це означає |
|---|---|---|
| timestamp | 1791936198.977 |
Час вимірювання |
T |
2120 |
21.20 °C, тому що перетворення T є divide_by_100 |
GI |
1 |
Стан першого входу |
GIC |
0 |
Лічильник першого входу |
GI2 |
1 |
Стан другого входу |
GI2C |
0 |
Лічильник другого входу |
Перетворення і одиниці є в словнику readings визначень. Див. REST API.
Приклад для shell
Section titled “Приклад для shell”Цей приклад завантажує останні 3 дні пристрою.
SERVER=DEVICE_SERVERSN=e11:123TODAY=$(( $(date -u +%s) / 86400 ))for BIN in $(seq $((TODAY - 2)) $TODAY); do curl -s --compressed \ -H "Authorization: Bearer-API YOUR_API_KEY" \ "https://$SERVER/datalogs.php?serialno=$SN&id=0.$BIN&ver=2"done | sort -t';' -k1,1nІнший метод
Section titled “Інший метод”Сервер MCP має інструмент get_device_history. Він приймає ті самі рівні і bin.

