Istorinių duomenų atsisiuntimas
Kiekvieno įrenginio istoriniai duomenys yra tekstiniuose failuose (datalogs) jo įrenginio serveryje. Kiekvienas failas apima vieną dieną, vieną mėnesį arba visą istoriją. Jums reikia įrenginio skaitymo teisės.
Eksportui be kodo naudokite programėlės ataskaitas. Žr. Jūsų duomenys.
Procedūra
Skyrius „Procedūra“- Raskite įrenginio serverį. Iškvieskite
get_device_info.phpir perskaitykite laukądevice_server. Žr. REST API. - Raskite stulpelių tvarką. Iškvieskite
get_device_definitions.php?family_id=<family>ir perskaitykitereadingsiroutput_names. - Apskaičiuokite lygį ir failo numerį (bin) norimam laikotarpiui.
- Atsisiųskite kiekvieną failą iš įrenginio serverio.
- Sujunkite eilutes, surūšiuokite jas pagal laiko žymą ir užpildykite tuščius laukus.
Užklausa
Skyrius „Užklausa“curl --compressed \ -H "Authorization: Bearer-API YOUR_API_KEY" \ "https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"Pakeiskite DEVICE_SERVER įrenginio lauko device_server reikšme.
| Parametras | Reikšmė |
|---|---|
serialno |
Įrenginio serijos numeris |
id |
<level>.<bin>, pavyzdžiui, 0.20740 |
ver |
2 |
Autentifikavimui siųskite antraštę Authorization: Bearer-API YOUR_API_KEY arba Authorization: Bearer YOUR_ACCESS_TOKEN.
Serveris gali siųsti suspaustą failą (gzip arba br). curl parinktis --compressed jį išskleidžia.
| HTTP kodas | Reikšmė |
|---|---|
| 200 | Failas kaip text/plain |
| 400 | Neteisingas serialno arba id |
| 403 | Neturite įrenginio skaitymo teisės |
| 404 | Šiam failui duomenų nėra |
Lygiai ir failų numeriai
Skyrius „Lygiai ir failų numeriai“Visi skaičiavimai naudoja UTC.
| Lygis | Vienas failas | Bin skaičiavimas | Pavyzdys |
|---|---|---|---|
0 |
Dienai | floor(unix_seconds / 86400) |
2026 m. spalio 14 d. = 0.20740 |
1 |
Mėnesiui | (year - 1970) * 12 + (month - 1) |
2026 m. spalis = 1.681 |
2 |
Visai istorijai | Visada m |
2.m |
Lygis 0 turi visas dienos eilutes. Lygis 1 turi maždaug vieną eilutę per dieną. Lygis 2 turi maždaug vieną eilutę per mėnesį.
Programėlė naudoja lygį 0 laikotarpiams iki 7 dienų ir lygį 1 laikotarpiams iki 5 mėnesių. Ilgesniems laikotarpiams ji naudoja 2.m.
Eilutės formatas
Skyrius „Eilutės formatas“Kiekviena eilutė yra vienas matavimas. Laukai atskirti ;.
timestamp;reading1;reading2;...;readingN;output1;...;outputMtimestampyra unix sekundės (UTC). Jis gali turėti dešimtainių skaitmenų.- Toliau eina rodmenys šeimos
readingstvarka. - Toliau eina išvestys
output_namestvarka. - Tuščias laukas reiškia, kad reikšmė nepasikeitė. Naudokite paskutinę reikšmę iš ankstesnės eilutės.
- Reikšmė
2147483648reiškia, kad rodmens nėra. - Eilutės ne visada surūšiuotos. Surūšiuokite jas pagal
timestamp.
Pavyzdys
Skyrius „Pavyzdys“Šeimos e11 įrenginys turi readings = ["T", "GI", "GIC", "GI2", "GI2C"] ir neturi išvesčių.
1791936198.977;2120;1;0;1;0| Laukas | Reikšmė | Prasmė |
|---|---|---|
| timestamp | 1791936198.977 |
Matavimo laikas |
T |
2120 |
21.20 °C, nes T konvertavimas yra divide_by_100 |
GI |
1 |
Pirmosios įvesties būsena |
GIC |
0 |
Pirmosios įvesties skaitiklis |
GI2 |
1 |
Antrosios įvesties būsena |
GI2C |
0 |
Antrosios įvesties skaitiklis |
Konvertavimus ir vienetus rasite apibrėžčių žodyne readings. Žr. REST API.
Shell pavyzdys
Skyrius „Shell pavyzdys“Šis pavyzdys atsisiunčia paskutines 3 įrenginio dienas.
SERVER=DEVICE_SERVERSN=e11:123TODAY=$(( $(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,1nKitas būdas
Skyrius „Kitas būdas“MCP serveris turi įrankį get_device_history. Jis priima tuos pačius lygius ir bin.

