Přeskočit na obsah

Stažení historických dat

Historická data každého zařízení jsou v textových souborech (datalozích) na jeho serveru zařízení. Každý soubor pokrývá jeden den, jeden měsíc nebo celou historii. Potřebujete oprávnění ke čtení zařízení.

Pro export bez kódu použijte reporty v aplikaci. Viz vaše data.

  1. Najděte server zařízení. Zavolejte get_device_info.php a přečtěte pole device_server. Viz REST API.
  2. Najděte pořadí sloupců. Zavolejte get_device_definitions.php?family_id=<rodina> a přečtěte readings a output_names.
  3. Vypočtěte úroveň a číslo souboru (bin) pro požadované období.
  4. Stáhněte každý soubor ze serveru zařízení.
  5. Spojte řádky, seřaďte je podle časové značky a doplňte prázdná pole.
Terminál
curl --compressed \
-H "Authorization: Bearer-API YOUR_API_KEY" \
"https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"

Nahraďte DEVICE_SERVER hodnotou pole device_server zařízení.

Parametr Hodnota
serialno Sériové číslo zařízení
id <úroveň>.<bin>, například 0.20740
ver 2

Pro ověření pošlete hlavičku Authorization: Bearer-API YOUR_API_KEY nebo Authorization: Bearer YOUR_ACCESS_TOKEN.

Server může poslat soubor komprimovaný (gzip nebo br). Volba curl --compressed ho rozbalí.

Kód HTTP Význam
200 Soubor jako text/plain
400 Chybné serialno nebo id
403 Nemáte oprávnění ke čtení zařízení
404 Pro tento soubor nejsou data

Úrovně a čísla souborů

Sekce “Úrovně a čísla souborů”

Všechny výpočty používají UTC.

Úroveň Jeden soubor na Výpočet binu Příklad
0 Den floor(unix_seconds / 86400) 14. října 2026 = 0.20740
1 Měsíc (year - 1970) * 12 + (month - 1) Říjen 2026 = 1.681
2 Celá historie Vždy m 2.m

Úroveň 0 obsahuje všechny řádky dne. Úroveň 1 obsahuje asi jeden řádek za den. Úroveň 2 obsahuje asi jeden řádek za měsíc.

Aplikace používá úroveň 0 pro období do 7 dnů a úroveň 1 pro období do 5 měsíců. Pro delší období používá 2.m.

Každý řádek je jedno měření. Pole jsou oddělena znakem ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • timestamp je unixový čas v sekundách (UTC). Může mít desetinná místa.
  • Pak následují měření v pořadí readings rodiny.
  • Pak následují výstupy v pořadí output_names.
  • Prázdné pole znamená, že se hodnota nezměnila. Použijte poslední hodnotu z dřívějšího řádku.
  • Hodnota 2147483648 znamená, že měření chybí.
  • Řádky nejsou vždy seřazeny. Seřaďte je podle timestamp.

Zařízení rodiny e11 má readings = ["T", "GI", "GIC", "GI2", "GI2C"] a žádné výstupy.

1791936198.977;2120;1;0;1;0
Pole Hodnota Význam
timestamp 1791936198.977 Čas měření
T 2120 21.20 °C, protože převod T je divide_by_100
GI 1 Stav prvního vstupu
GIC 0 Počítadlo prvního vstupu
GI2 1 Stav druhého vstupu
GI2C 0 Počítadlo druhého vstupu

Převody a jednotky najdete ve slovníku readings v definicích. Viz REST API.

Tento příklad stáhne poslední 3 dny zařízení.

Terminál
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

Server MCP má nástroj get_device_history. Přijímá stejné úrovně a biny.

Chat s podporou