Hoppa till innehåll

Ladda ner historiska data

De historiska data för varje enhet finns i textfiler (datalogs) på enhetens enhetsserver. Varje fil gäller en dag, en månad eller hela historiken. Du behöver läsbehörighet på enheten.

För en export utan kod, använd appens rapporter. Se dina data.

  1. Hitta enhetens server. Anropa get_device_info.php och läs fältet device_server. Se REST API.
  2. Hitta kolumnernas ordning. Anropa get_device_definitions.php?family_id=<family> och läs readings och output_names.
  3. Beräkna nivån och filnumret (bin) för den period som du vill ha.
  4. Ladda ner varje fil från enhetens server.
  5. Slå ihop raderna, sortera dem efter tidsstämpel och fyll i de tomma fälten.
Terminal window
curl --compressed \
-H "Authorization: Bearer-API YOUR_API_KEY" \
"https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"

Ersätt DEVICE_SERVER med värdet i enhetens fält device_server.

Parameter Värde
serialno Enhetens serienummer
id <level>.<bin>, till exempel 0.20740
ver 2

För autentisering, skicka huvudet Authorization: Bearer-API YOUR_API_KEY eller Authorization: Bearer YOUR_ACCESS_TOKEN.

Servern kan skicka filen komprimerad (gzip eller br). Alternativet --compressed i curl packar upp den.

HTTP-kod Betydelse
200 Filen, som text/plain
400 Fel serialno eller id
403 Du har inte läsbehörighet på enheten
404 Det finns inga data för den här filen

Alla beräkningar använder UTC.

Nivå En fil per Beräkning av bin Exempel
0 Dag floor(unix_seconds / 86400) 14 oktober 2026 = 0.20740
1 Månad (year - 1970) * 12 + (month - 1) Oktober 2026 = 1.681
2 Hela historiken Alltid m 2.m

Nivå 0 har alla rader för dagen. Nivå 1 har ungefär en rad per dag. Nivå 2 har ungefär en rad per månad.

Appen använder nivå 0 för perioder upp till 7 dagar och nivå 1 för perioder upp till 5 månader. För längre perioder använder den 2.m.

Varje rad är en mätning. Fälten är åtskilda med ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • timestamp är unix-sekunder (UTC). Den kan ha decimaler.
  • Sedan kommer avläsningarna, i ordningen i familjens readings.
  • Sedan kommer utgångarna, i ordningen i output_names.
  • Ett tomt fält betyder att värdet inte ändrades. Använd det senaste värdet från en tidigare rad.
  • Värdet 2147483648 betyder att avläsningen saknas.
  • Raderna är inte alltid sorterade. Sortera dem efter timestamp.

En enhet i familjen e11 har readings = ["T", "GI", "GIC", "GI2", "GI2C"] och inga utgångar.

1791936198.977;2120;1;0;1;0
Fält Värde Betydelse
timestamp 1791936198.977 Mätningens tid
T 2120 21.20 °C, eftersom konverteringen för T är divide_by_100
GI 1 Den första ingångens tillstånd
GIC 0 Den första ingångens räknare
GI2 1 Den andra ingångens tillstånd
GI2C 0 Den andra ingångens räknare

Du hittar konverteringarna och enheterna i ordlistan readings i definitionerna. Se REST API.

Det här exemplet laddar ner de senaste 3 dagarna för 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-servern har verktyget get_device_history. Det accepterar samma nivåer och bins.

Chatta med supporten