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

Prenos zgodovinskih podatkov

Zgodovinski podatki vsake naprave so v besedilnih datotekah (datalogs) na njenem strežniku naprav. Vsaka datoteka zajema en dan, en mesec ali celotno zgodovino. Potrebujete dovoljenje za branje naprave.

Za izvoz brez kode uporabite poročila v aplikaciji. Glejte Vaši podatki.

  1. Poiščite strežnik naprave. Pokličite get_device_info.php in preberite polje device_server. Glejte REST API.
  2. Poiščite vrstni red stolpcev. Pokličite get_device_definitions.php?family_id=<family> in preberite readings in output_names.
  3. Izračunajte raven in številko datoteke (bin) za želeno obdobje.
  4. Prenesite vsako datoteko s strežnika naprave.
  5. Združite vrstice, razvrstite jih po časovnem žigu in izpolnite 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"

DEVICE_SERVER zamenjajte z vrednostjo polja device_server naprave.

Parameter Vrednost
serialno Serijska številka naprave
id <level>.<bin>, na primer 0.20740
ver 2

Za overitev pošljite glavo Authorization: Bearer-API YOUR_API_KEY ali Authorization: Bearer YOUR_ACCESS_TOKEN.

Strežnik lahko pošlje datoteko stisnjeno (gzip ali br). Možnost curl --compressed jo razširi.

Koda HTTP Pomen
200 Datoteka, kot text/plain
400 Napačen serialno ali id
403 Nimate dovoljenja za branje naprave
404 Za to datoteko ni podatkov

Vsi izračuni uporabljajo UTC.

Raven Ena datoteka na Izračun bin Primer
0 Dan floor(unix_seconds / 86400) 14. oktober 2026 = 0.20740
1 Mesec (year - 1970) * 12 + (month - 1) oktober 2026 = 1.681
2 Celotna zgodovina Vedno m 2.m

Raven 0 vsebuje vse vrstice dneva. Raven 1 vsebuje približno eno vrstico na dan. Raven 2 vsebuje približno eno vrstico na mesec.

Aplikacija uporablja raven 0 za obdobja do 7 dni in raven 1 za obdobja do 5 mesecev. Za daljša obdobja uporablja 2.m.

Vsaka vrstica je ena meritev. Polja so ločena z ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • timestamp je unix sekunde (UTC). Ima lahko decimalke.
  • Nato sledijo odčitki, v vrstnem redu readings družine.
  • Nato sledijo izhodi, v vrstnem redu output_names.
  • Prazno polje pomeni, da se vrednost ni spremenila. Uporabite zadnjo vrednost iz prejšnje vrstice.
  • Vrednost 2147483648 pomeni, da odčitek manjka.
  • Vrstice niso vedno razvrščene. Razvrstite jih po timestamp.

Naprava družine e11 ima readings = ["T", "GI", "GIC", "GI2", "GI2C"] in nima izhodov.

1791936198.977;2120;1;0;1;0
Polje Vrednost Pomen
timestamp 1791936198.977 Čas meritve
T 2120 21.20 °C, ker je pretvorba T enaka divide_by_100
GI 1 Stanje prvega vhoda
GIC 0 Števec prvega vhoda
GI2 1 Stanje drugega vhoda
GI2C 0 Števec drugega vhoda

Pretvorbe in enote najdete v slovarju readings definicij. Glejte REST API.

Ta primer prenese zadnje 3 dni naprave.

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

Strežnik MCP ima orodje get_device_history. Sprejme iste ravni in številke datotek.

Klepet s podporo