Pāriet uz saturu

Vēsturisko datu lejupielāde

Katras ierīces vēsturiskie dati ir teksta failos (datalogs) tās ierīces serverī. Katrs fails aptver vienu dienu, vienu mēnesi vai visu vēsturi. Jums vajag lasīšanas atļauju ierīcei.

Eksportam bez koda izmantojiet lietotnes atskaites. Skatiet Jūsu dati (glabāšana, eksports, dzēšana).

  1. Atrodiet ierīces serveri. Izsauciet get_device_info.php un nolasiet lauku device_server. Skatiet REST API.
  2. Atrodiet kolonnu secību. Izsauciet get_device_definitions.php?family_id=<family> un nolasiet readings un output_names.
  3. Aprēķiniet līmeni un faila numuru (bin) periodam, ko vēlaties.
  4. Lejupielādējiet katru failu no ierīces servera.
  5. Apvienojiet rindas, sakārtojiet tās pēc laika zīmoga un aizpildiet tukšos laukus.
Terminal window
curl --compressed \
-H "Authorization: Bearer-API YOUR_API_KEY" \
"https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"

Aizstājiet DEVICE_SERVER ar ierīces lauka device_server vērtību.

Parametrs Vērtība
serialno Ierīces sērijas numurs
id <level>.<bin>, piemēram, 0.20740
ver 2

Autentifikācijai sūtiet galveni Authorization: Bearer-API YOUR_API_KEY vai Authorization: Bearer YOUR_ACCESS_TOKEN.

Serveris var sūtīt failu saspiestu (gzip vai br). curl opcija --compressed to atspiež.

HTTP kods Nozīme
200 Fails kā text/plain
400 Nepareizs serialno vai id
403 Jums nav lasīšanas atļaujas ierīcei
404 Šim failam nav datu

Visi aprēķini izmanto UTC.

Līmenis Viens fails uz Bin aprēķins Piemērs
0 Dienu floor(unix_seconds / 86400) 2026. gada 14. oktobris = 0.20740
1 Mēnesi (year - 1970) * 12 + (month - 1) 2026. gada oktobris = 1.681
2 Visu vēsturi Vienmēr m 2.m

Līmenī 0 ir visas dienas rindas. Līmenī 1 ir apmēram viena rinda dienā. Līmenī 2 ir apmēram viena rinda mēnesī.

Lietotne izmanto līmeni 0 periodiem līdz 7 dienām un līmeni 1 periodiem līdz 5 mēnešiem. Garākiem periodiem tā izmanto 2.m.

Katra rinda ir viens mērījums. Lauki ir atdalīti ar ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • timestamp ir unix sekundes (UTC). Tam var būt decimāldaļas.
  • Tad seko mērījumi saimes readings secībā.
  • Tad seko izejas output_names secībā.
  • Tukšs lauks nozīmē, ka vērtība nemainījās. Izmantojiet pēdējo vērtību no iepriekšējās rindas.
  • Vērtība 2147483648 nozīmē, ka mērījuma nav.
  • Rindas ne vienmēr ir sakārtotas. Sakārtojiet tās pēc timestamp.

Saimes e11 ierīcei ir readings = ["T", "GI", "GIC", "GI2", "GI2C"] un nav izeju.

1791936198.977;2120;1;0;1;0
Lauks Vērtība Nozīme
timestamp 1791936198.977 Mērījuma laiks
T 2120 21.20 °C, jo T pārveidošana ir divide_by_100
GI 1 Pirmās ieejas stāvoklis
GIC 0 Pirmās ieejas skaitītājs
GI2 1 Otrās ieejas stāvoklis
GI2C 0 Otrās ieejas skaitītājs

Pārveidošanas un mērvienības jūs atrodat definīciju vārdnīcā readings. Skatiet REST API.

Šis piemērs lejupielādē ierīces pēdējās 3 dienas.

Terminal window
SERVER=DEVICE_SERVER
SN=e11:123
TODAY=$(( $(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 serverim ir rīks get_device_history. Tas pieņem tos pašus līmeņus un bin.

Tērzēt ar atbalstu