Μετάβαση στο περιεχόμενο

Preuzimanje povijesnih podataka

Povijesni podaci svakog uređaja nalaze se u tekstnim datotekama (datalogovima) na njegovu poslužitelju uređaja. Svaka datoteka pokriva jedan dan, jedan mjesec ili cijelu povijest. Trebate dopuštenje čitanja na uređaju.

Za izvoz bez koda koristite izvješća aplikacije. Pogledajte vaše podatke.

  1. Pronađite poslužitelj uređaja. Pozovite get_device_info.php i pročitajte polje device_server. Pogledajte REST API.
  2. Pronađite redoslijed stupaca. Pozovite get_device_definitions.php?family_id=<family> i pročitajte readings i output_names.
  3. Izračunajte razinu i broj datoteke (bin) za željeno razdoblje.
  4. Preuzmite svaku datoteku s poslužitelja uređaja.
  5. Spojite retke, sortirajte ih po vremenskoj oznaci i popunite prazna polja.
Terminal window
curl --compressed \
-H "Authorization: Bearer-API YOUR_API_KEY" \
"https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"

Zamijenite DEVICE_SERVER vrijednošću polja device_server uređaja.

Parametar Vrijednost
serialno Serijski broj uređaja
id <level>.<bin>, na primjer 0.20740
ver 2

Za autentikaciju pošaljite zaglavlje Authorization: Bearer-API YOUR_API_KEY ili Authorization: Bearer YOUR_ACCESS_TOKEN.

Poslužitelj može poslati datoteku komprimiranu (gzip ili br). Opcija --compressed u curlu je dekomprimira.

HTTP kôd Značenje
200 Datoteka, kao text/plain
400 Pogrešan serialno ili id
403 Nemate dopuštenje čitanja na uređaju
404 Nema podataka za ovu datoteku

Svi izračuni koriste UTC.

Razina Jedna datoteka po Izračun bina Primjer
0 Danu floor(unix_seconds / 86400) 14. listopada 2026. = 0.20740
1 Mjesecu (year - 1970) * 12 + (month - 1) listopad 2026. = 1.681
2 Cijeloj povijesti Uvijek m 2.m

Razina 0 ima sve retke dana. Razina 1 ima oko jedan redak po danu. Razina 2 ima oko jedan redak po mjesecu.

Aplikacija koristi razinu 0 za razdoblja do 7 dana i razinu 1 za razdoblja do 5 mjeseci. Za dulja razdoblja koristi 2.m.

Svaki redak je jedno mjerenje. Polja su odvojena znakom ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • timestamp je unix sekunde (UTC). Može imati decimale.
  • Zatim dolaze mjerenja, redoslijedom readings obitelji.
  • Zatim dolaze izlazi, redoslijedom output_names.
  • Prazno polje znači da se vrijednost nije promijenila. Koristite zadnju vrijednost iz ranijeg retka.
  • Vrijednost 2147483648 znači da mjerenje nedostaje.
  • Retci nisu uvijek sortirani. Sortirajte ih po timestamp.

Uređaj obitelji e11 ima readings = ["T", "GI", "GIC", "GI2", "GI2C"] i nema izlaza.

1791936198.977;2120;1;0;1;0
Polje Vrijednost Značenje
timestamp 1791936198.977 Vrijeme mjerenja
T 2120 21.20 °C, jer je pretvorba za T divide_by_100
GI 1 Stanje prvog ulaza
GIC 0 Brojač prvog ulaza
GI2 1 Stanje drugog ulaza
GI2C 0 Brojač drugog ulaza

Pretvorbe i jedinice nalaze se u rječniku readings definicija. Pogledajte REST API.

Ovaj primjer preuzima zadnja 3 dana uređaja.

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 poslužitelj ima alat get_device_history. Prihvaća iste razine i binove.

Chat s podrškom