Изтегляне на исторически данни
Историческите данни на всяко устройство са в текстови файлове (datalogs) на неговия сървър. Всеки файл покрива един ден, един месец или цялата история. Трябва Ви право за четене на устройството.
За експорт без код използвайте отчетите на приложението. Вижте Вашите данни (съхранение, експорт, изтриване).
Процедура
Раздел „Процедура“- Намерете сървъра на устройството. Извикайте
get_device_info.phpи прочетете полетоdevice_server. Вижте REST API. - Намерете реда на колоните. Извикайте
get_device_definitions.php?family_id=<family>и прочететеreadingsиoutput_names. - Изчислете нивото и номера на файла (bin) за периода, който искате.
- Изтеглете всеки файл от сървъра на устройството.
- Обединете редовете, сортирайте ги по време и попълнете празните полета.
Заявката
Раздел „Заявката“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). Опцията --compressed на curl го разкомпресира.
| HTTP код | Значение |
|---|---|
| 200 | Файлът, като text/plain |
| 400 | Грешен serialno или id |
| 403 | Нямате право за четене на устройството |
| 404 | Няма данни за този файл |
Нива и номера на файлове
Раздел „Нива и номера на файлове“Всички изчисления използват 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.
Формат на реда
Раздел „Формат на реда“Всеки ред е едно измерване. Полетата са разделени с ;.
timestamp;reading1;reading2;...;readingN;output1;...;outputMtimestampе в unix секунди (UTC). Може да има десетични знаци.- След това идват измерванията, в реда на
readingsна фамилията. - След това идват изходите, в реда на
output_names. - Празно поле означава, че стойността не се е променила. Използвайте последната стойност от по-ранен ред.
- Стойността
2147483648означава, че измерването липсва. - Редовете не винаги са сортирани. Сортирайте ги по
timestamp.
Пример
Раздел „Пример“Устройство от фамилия 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
Раздел „Пример за 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Друг метод
Раздел „Друг метод“MCP сървърът има инструмента get_device_history. Той приема същите нива и bins.

