Sari la conținut

Descărcați datele istorice

Datele istorice ale fiecărui dispozitiv sunt în fișiere text (datalogs) pe serverul lui de dispozitive. Fiecare fișier acoperă o zi, o lună sau întregul istoric. Aveți nevoie de permisiune de citire pe dispozitiv.

Pentru un export fără cod, folosiți rapoartele din aplicație. Consultați datele dumneavoastră.

  1. Găsiți serverul dispozitivului. Apelați get_device_info.php și citiți câmpul device_server. Consultați API REST.
  2. Găsiți ordinea coloanelor. Apelați get_device_definitions.php?family_id=<family> și citiți readings și output_names.
  3. Calculați nivelul și numărul fișierului (bin) pentru perioada dorită.
  4. Descărcați fiecare fișier de pe serverul dispozitivului.
  5. Îmbinați rândurile, sortați-le după timestamp și completați câmpurile goale.
Terminal window
curl --compressed \
-H "Authorization: Bearer-API YOUR_API_KEY" \
"https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"

Înlocuiți DEVICE_SERVER cu valoarea câmpului device_server al dispozitivului.

Parametru Valoare
serialno Numărul de serie al dispozitivului
id <level>.<bin>, de exemplu 0.20740
ver 2

Pentru autentificare, trimiteți antetul Authorization: Bearer-API YOUR_API_KEY sau Authorization: Bearer YOUR_ACCESS_TOKEN.

Serverul poate trimite fișierul comprimat (gzip sau br). Opțiunea curl --compressed îl decomprimă.

Cod HTTP Semnificație
200 Fișierul, ca text/plain
400 serialno sau id greșit
403 Nu aveți permisiune de citire pe dispozitiv
404 Nu există date pentru acest fișier

Toate calculele folosesc UTC.

Nivel Un fișier pentru Calculul bin Exemplu
0 Zi floor(unix_seconds / 86400) 14 octombrie 2026 = 0.20740
1 Lună (year - 1970) * 12 + (month - 1) octombrie 2026 = 1.681
2 Întregul istoric Întotdeauna m 2.m

Nivelul 0 are toate rândurile zilei. Nivelul 1 are aproximativ un rând pe zi. Nivelul 2 are aproximativ un rând pe lună.

Aplicația folosește nivelul 0 pentru perioade de până la 7 zile și nivelul 1 pentru perioade de până la 5 luni. Pentru perioade mai lungi folosește 2.m.

Fiecare rând este o măsurătoare. Câmpurile sunt separate prin ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • timestamp este în secunde unix (UTC). Poate avea zecimale.
  • Apoi urmează măsurătorile, în ordinea readings a familiei.
  • Apoi urmează ieșirile, în ordinea output_names.
  • Un câmp gol înseamnă că valoarea nu s-a schimbat. Folosiți ultima valoare dintr-un rând anterior.
  • Valoarea 2147483648 înseamnă că măsurătoarea lipsește.
  • Rândurile nu sunt întotdeauna sortate. Sortați-le după timestamp.

Un dispozitiv din familia e11 are readings = ["T", "GI", "GIC", "GI2", "GI2C"] și nu are ieșiri.

1791936198.977;2120;1;0;1;0
Câmp Valoare Semnificație
timestamp 1791936198.977 Momentul măsurătorii
T 2120 21.20 °C, deoarece conversia lui T este divide_by_100
GI 1 Starea primei intrări
GIC 0 Contorul primei intrări
GI2 1 Starea celei de-a doua intrări
GI2C 0 Contorul celei de-a doua intrări

Conversiile și unitățile se află în dicționarul readings al definițiilor. Consultați API REST.

Acest exemplu descarcă ultimele 3 zile ale unui dispozitiv.

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

Serverul MCP are instrumentul get_device_history. Acesta acceptă aceleași niveluri și bin-uri.

Chat cu suportul