Ga naar inhoud

Historische gegevens downloaden

De historische gegevens van elk apparaat staan in tekstbestanden (datalogs) op de apparaatserver. Elk bestand beslaat één dag, één maand of de volledige geschiedenis. U hebt leesrechten op het apparaat nodig.

Gebruik voor een export zonder code de rapporten van de app. Zie uw gegevens.

  1. Zoek de server van het apparaat. Roep get_device_info.php aan en lees het veld device_server. Zie de REST API.
  2. Zoek de kolomvolgorde. Roep get_device_definitions.php?family_id=<family> aan en lees readings en output_names.
  3. Bereken het niveau en het bestandsnummer (bin) voor de periode die u wilt.
  4. Download elk bestand van de server van het apparaat.
  5. Voeg de rijen samen, sorteer ze op tijdstempel en vul de lege velden in.
Terminal window
curl --compressed \
-H "Authorization: Bearer-API YOUR_API_KEY" \
"https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"

Vervang DEVICE_SERVER door de waarde van het veld device_server van het apparaat.

Parameter Waarde
serialno Het serienummer van het apparaat
id <level>.<bin>, bijvoorbeeld 0.20740
ver 2

Stuur voor de authenticatie de header Authorization: Bearer-API YOUR_API_KEY of Authorization: Bearer YOUR_ACCESS_TOKEN.

De server kan het bestand gecomprimeerd sturen (gzip of br). De curl-optie --compressed decomprimeert het.

HTTP-code Betekenis
200 Het bestand, als text/plain
400 Onjuiste serialno of id
403 U hebt geen leesrechten op het apparaat
404 Er zijn geen gegevens voor dit bestand

Alle berekeningen gebruiken UTC.

Niveau Eén bestand per Berekening van de bin Voorbeeld
0 Dag floor(unix_seconds / 86400) 14 oktober 2026 = 0.20740
1 Maand (year - 1970) * 12 + (month - 1) Oktober 2026 = 1.681
2 Volledige geschiedenis Altijd m 2.m

Niveau 0 heeft alle rijen van de dag. Niveau 1 heeft ongeveer één rij per dag. Niveau 2 heeft ongeveer één rij per maand.

De app gebruikt niveau 0 voor periodes tot 7 dagen en niveau 1 voor periodes tot 5 maanden. Voor langere periodes gebruikt hij 2.m.

Elke rij is één meting. De velden zijn gescheiden door ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • De timestamp is in unix-seconden (UTC). Hij kan decimalen hebben.
  • Daarna komen de metingen, in de volgorde van de familie readings.
  • Daarna komen de uitgangen, in de volgorde van output_names.
  • Een leeg veld betekent dat de waarde niet is veranderd. Gebruik de laatste waarde uit een eerdere rij.
  • De waarde 2147483648 betekent dat de meting ontbreekt.
  • De rijen zijn niet altijd gesorteerd. Sorteer ze op timestamp.

Een apparaat van familie e11 heeft readings = ["T", "GI", "GIC", "GI2", "GI2C"] en geen uitgangen.

1791936198.977;2120;1;0;1;0
Veld Waarde Betekenis
timestamp 1791936198.977 Tijd van de meting
T 2120 21,20 °C, omdat de omzetting van T divide_by_100 is
GI 1 Status van de eerste ingang
GIC 0 Teller van de eerste ingang
GI2 1 Status van de tweede ingang
GI2C 0 Teller van de tweede ingang

U vindt de omzettingen en de eenheden in het woordenboek readings van de definities. Zie de REST API.

Dit voorbeeld downloadt de laatste 3 dagen van een apparaat.

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

De MCP-server heeft de tool get_device_history. Hij accepteert dezelfde niveaus en bins.

Chat met support