Gå til indhold

Download historiske data

Hver enheds historiske data er i tekstfiler (datalogs) på dens enhedsserver. Hver fil dækker én dag, én måned eller hele historikken. Du skal have læsetilladelse til enheden.

Brug app’ens rapporter til en eksport uden kode. Se dine data.

  1. Find enhedens server. Kald get_device_info.php, og læs feltet device_server. Se REST API.
  2. Find kolonnernes rækkefølge. Kald get_device_definitions.php?family_id=<family>, og læs readings og output_names.
  3. Beregn niveauet og filens nummer (bin) for den periode, du vil have.
  4. Download hver fil fra enhedens server.
  5. Saml rækkerne, sortér dem efter tidsstempel, og udfyld de tomme felter.
Terminal window
curl --compressed \
-H "Authorization: Bearer-API YOUR_API_KEY" \
"https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"

Erstat DEVICE_SERVER med værdien i enhedens felt device_server.

Parameter Værdi
serialno Enhedens serienummer
id <level>.<bin>, for eksempel 0.20740
ver 2

Send headeren Authorization: Bearer-API YOUR_API_KEY eller Authorization: Bearer YOUR_ACCESS_TOKEN til godkendelse.

Serveren kan sende filen komprimeret (gzip eller br). curl-indstillingen --compressed dekomprimerer den.

HTTP-kode Betydning
200 Filen som text/plain
400 Forkert serialno eller id
403 Du har ikke læsetilladelse til enheden
404 Der er ingen data for denne fil

Alle beregninger bruger UTC.

Niveau Én fil for hver Beregning af bin Eksempel
0 Dag floor(unix_seconds / 86400) 14. oktober 2026 = 0.20740
1 Måned (year - 1970) * 12 + (month - 1) Oktober 2026 = 1.681
2 Hele historikken Altid m 2.m

Niveau 0 har alle dagens rækker. Niveau 1 har cirka én række for hver dag. Niveau 2 har cirka én række for hver måned.

App’en bruger niveau 0 til perioder op til 7 dage og niveau 1 til perioder op til 5 måneder. Til længere perioder bruger den 2.m.

Hver række er én måling. Felterne er adskilt med ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • timestamp er unix-sekunder (UTC). Det kan have decimaler.
  • Derefter kommer målingerne i rækkefølgen fra familiens readings.
  • Derefter kommer udgangene i rækkefølgen fra output_names.
  • Et tomt felt betyder, at værdien ikke ændrede sig. Brug den sidste værdi fra en tidligere række.
  • Værdien 2147483648 betyder, at målingen mangler.
  • Rækkerne er ikke altid sorteret. Sortér dem efter timestamp.

En enhed i familien e11 har readings = ["T", "GI", "GIC", "GI2", "GI2C"] og ingen udgange.

1791936198.977;2120;1;0;1;0
Felt Værdi Betydning
timestamp 1791936198.977 Tidspunktet for målingen
T 2120 21.20 °C, fordi omregningen for T er divide_by_100
GI 1 Tilstanden for den første indgang
GIC 0 Tælleren for den første indgang
GI2 1 Tilstanden for den anden indgang
GI2C 0 Tælleren for den anden indgang

Du finder omregningerne og enhederne i ordbogen readings i definitionerne. Se REST API.

Dette eksempel downloader de sidste 3 dage for en enhed.

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-serveren har værktøjet get_device_history. Det accepterer de samme niveauer og bins.

Chat med support