Gå til innholdet

Last ned historiske data

De historiske dataene for hver enhet er i tekstfiler (datalogger) på enhetsserveren. Hver fil dekker én dag, én måned eller hele historikken. Du trenger lesetilgang til enheten.

For en eksport uten kode, bruk rapportene i appen. Se dataene dine.

  1. Finn serveren for enheten. Kall get_device_info.php og les feltet device_server. Se REST API.
  2. Finn rekkefølgen på kolonnene. Kall get_device_definitions.php?family_id=<family> og les readings og output_names.
  3. Beregn nivået og filnummeret (bin) for perioden som du vil ha.
  4. Last ned hver fil fra serveren for enheten.
  5. Slå sammen radene, sorter dem etter tidsstempel og fyll ut de tomme feltene.
Terminal window
curl --compressed \
-H "Authorization: Bearer-API YOUR_API_KEY" \
"https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"

Bytt ut DEVICE_SERVER med verdien i feltet device_server for enheten.

Parameter Verdi
serialno Serienummeret til enheten
id <level>.<bin>, for eksempel 0.20740
ver 2

For autentisering, send headeren Authorization: Bearer-API YOUR_API_KEY eller Authorization: Bearer YOUR_ACCESS_TOKEN.

Serveren kan sende filen komprimert (gzip eller br). Valget --compressed i curl pakker den ut.

HTTP-kode Betydning
200 Filen, som text/plain
400 Feil serialno eller id
403 Du har ikke lesetilgang til enheten
404 Det finnes ingen data for denne filen

Alle beregninger bruker UTC.

Nivå Én fil per Beregning av 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 Alltid m 2.m

Nivå 0 har alle radene for dagen. Nivå 1 har omtrent én rad per dag. Nivå 2 har omtrent én rad per måned.

Appen bruker nivå 0 for perioder opptil 7 dager og nivå 1 for perioder opptil 5 måneder. For lengre perioder bruker den 2.m.

Hver rad er én måling. Feltene er skilt med ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • timestamp er unix-sekunder (UTC). Den kan ha desimaler.
  • Så kommer avlesningene, i rekkefølgen til readings for familien.
  • Så kommer utgangene, i rekkefølgen til output_names.
  • Et tomt felt betyr at verdien ikke ble endret. Bruk den siste verdien fra en tidligere rad.
  • Verdien 2147483648 betyr at avlesningen mangler.
  • Radene er ikke alltid sortert. Sorter dem etter timestamp.

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

1791936198.977;2120;1;0;1;0
Felt Verdi Betydning
timestamp 1791936198.977 Tiden for målingen
T 2120 21,20 °C, fordi konverteringen for T er divide_by_100
GI 1 Tilstanden til den første inngangen
GIC 0 Telleren for den første inngangen
GI2 1 Tilstanden til den andre inngangen
GI2C 0 Telleren for den andre inngangen

Du finner konverteringene og måleenhetene i ordboken readings i definisjonene. Se REST API.

Dette eksempelet laster ned de siste 3 dagene for en enhet.

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 verktøyet get_device_history. Det godtar de samme nivåene og bin-verdiene.

Chat med support