Siirry sisältöön

Lataa historiatiedot

Kunkin laitteen historiatiedot ovat tekstitiedostoissa (datalogeissa) sen laitepalvelimella. Jokainen tiedosto kattaa yhden päivän, yhden kuukauden tai koko historian. Tarvitset laitteen lukuoikeuden.

Jos haluat viedä tiedot ilman koodia, käytä sovelluksen raportteja. Katso tietosi.

  1. Etsi laitteen palvelin. Kutsu get_device_info.php ja lue kenttä device_server. Katso REST API.
  2. Etsi sarakkeiden järjestys. Kutsu get_device_definitions.php?family_id=<family> ja lue readings ja output_names.
  3. Laske haluamasi ajanjakson taso ja tiedostonumero (bin).
  4. Lataa jokainen tiedosto laitteen palvelimelta.
  5. Yhdistä rivit, lajittele ne aikaleiman mukaan ja täytä tyhjät kentät.
Terminal window
curl --compressed \
-H "Authorization: Bearer-API YOUR_API_KEY" \
"https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"

Korvaa DEVICE_SERVER laitteen kentän device_server arvolla.

Parametri Arvo
serialno Laitteen sarjanumero
id <level>.<bin>, esimerkiksi 0.20740
ver 2

Todennusta varten lähetä otsake Authorization: Bearer-API YOUR_API_KEY tai Authorization: Bearer YOUR_ACCESS_TOKEN.

Palvelin voi lähettää tiedoston pakattuna (gzip tai br). curl-valitsin --compressed purkaa sen.

HTTP-koodi Merkitys
200 Tiedosto muodossa text/plain
400 Väärä serialno tai id
403 Sinulla ei ole laitteen lukuoikeutta
404 Tälle tiedostolle ei ole tietoja

Kaikki laskelmat käyttävät UTC-aikaa.

Taso Yksi tiedosto per Binin laskenta Esimerkki
0 Päivä floor(unix_seconds / 86400) 14. lokakuuta 2026 = 0.20740
1 Kuukausi (year - 1970) * 12 + (month - 1) Lokakuu 2026 = 1.681
2 Koko historia Aina m 2.m

Tasolla 0 ovat kaikki päivän rivit. Tasolla 1 on noin yksi rivi päivää kohti. Tasolla 2 on noin yksi rivi kuukautta kohti.

Sovellus käyttää tasoa 0 enintään 7 päivän jaksoille ja tasoa 1 enintään 5 kuukauden jaksoille. Pidemmille jaksoille se käyttää 2.m.

Jokainen rivi on yksi mittaus. Kentät on erotettu merkillä ;.

timestamp;reading1;reading2;...;readingN;output1;...;outputM
  • timestamp on unix-sekunteja (UTC). Siinä voi olla desimaaleja.
  • Sitten tulevat mittaukset perheen readings-järjestyksessä.
  • Sitten tulevat lähdöt output_names-järjestyksessä.
  • Tyhjä kenttä tarkoittaa, että arvo ei muuttunut. Käytä aiemman rivin viimeistä arvoa.
  • Arvo 2147483648 tarkoittaa, että mittaus puuttuu.
  • Rivit eivät ole aina lajiteltuja. Lajittele ne kentän timestamp mukaan.

Perheen e11 laitteella on readings = ["T", "GI", "GIC", "GI2", "GI2C"], eikä sillä ole lähtöjä.

1791936198.977;2120;1;0;1;0
Kenttä Arvo Merkitys
timestamp 1791936198.977 Mittauksen aika
T 2120 21.20 °C, koska mittauksen T muunnos on divide_by_100
GI 1 Ensimmäisen tulon tila
GIC 0 Ensimmäisen tulon laskuri
GI2 1 Toisen tulon tila
GI2C 0 Toisen tulon laskuri

Muunnokset ja yksiköt löydät määritysten readings-sanakirjasta. Katso REST API.

Tämä esimerkki lataa laitteen viimeiset 3 päivää.

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-palvelimella on työkalu get_device_history. Se hyväksyy samat tasot ja binit.

Chat tuen kanssa