Geçmiş verileri indirme
Her cihazın geçmiş verileri, cihaz sunucusundaki metin dosyalarındadır (datalog’lar). Her dosya bir günü, bir ayı veya tüm geçmişi kapsar. Cihaz üzerinde okuma iznine ihtiyacınız vardır.
Kod olmadan dışa aktarma için uygulamanın raporlarını kullanın. Bkz. verileriniz.
Prosedür
Bölüm başlığı “Prosedür”- Cihazın sunucusunu bulun.
get_device_info.phpçağrısını yapın vedevice_serveralanını okuyun. Bkz. REST API. - Sütun sırasını bulun.
get_device_definitions.php?family_id=<family>çağrısını yapın vereadingsileoutput_namesalanlarını okuyun. - İstediğiniz dönem için seviyeyi ve dosya numarasını (bin) hesaplayın.
- Her dosyayı cihazın sunucusundan indirin.
- Satırları birleştirin, zaman damgasına göre sıralayın ve boş alanları doldurun.
curl --compressed \ -H "Authorization: Bearer-API YOUR_API_KEY" \ "https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"DEVICE_SERVER değerini cihazın device_server alanının değeriyle değiştirin.
| Parametre | Değer |
|---|---|
serialno |
Cihazın seri numarası |
id |
<level>.<bin>, örneğin 0.20740 |
ver |
2 |
Kimlik doğrulama için Authorization: Bearer-API YOUR_API_KEY veya Authorization: Bearer YOUR_ACCESS_TOKEN başlığını gönderin.
Sunucu dosyayı sıkıştırılmış (gzip veya br) olarak gönderebilir. curl’ün --compressed seçeneği onu açar.
| HTTP kodu | Anlamı |
|---|---|
| 200 | text/plain olarak dosya |
| 400 | Yanlış serialno veya id |
| 403 | Cihaz üzerinde okuma izniniz yok |
| 404 | Bu dosya için veri yok |
Seviyeler ve dosya numaraları
Bölüm başlığı “Seviyeler ve dosya numaraları”Tüm hesaplamalar UTC kullanır.
| Seviye | Her dosya için | Bin hesaplaması | Örnek |
|---|---|---|---|
0 |
Gün | floor(unix_seconds / 86400) |
14 Ekim 2026 = 0.20740 |
1 |
Ay | (year - 1970) * 12 + (month - 1) |
Ekim 2026 = 1.681 |
2 |
Tüm geçmiş | Her zaman m |
2.m |
0 seviyesi günün tüm satırlarını içerir. 1 seviyesi gün başına yaklaşık bir satır içerir. 2 seviyesi ay başına yaklaşık bir satır içerir.
Uygulama 7 güne kadar olan dönemler için 0 seviyesini ve 5 aya kadar olan dönemler için 1 seviyesini kullanır. Daha uzun dönemler için 2.m kullanır.
Satır biçimi
Bölüm başlığı “Satır biçimi”Her satır bir ölçümdür. Alanlar ; ile ayrılır.
timestamp;reading1;reading2;...;readingN;output1;...;outputMtimestampunix saniyesidir (UTC). Ondalık basamakları olabilir.- Sonra ailenin
readingssırasına göre ölçümler gelir. - Sonra
output_namessırasına göre çıkışlar gelir. - Boş bir alan değerin değişmediği anlamına gelir. Daha önceki bir satırdaki son değeri kullanın.
2147483648değeri ölçümün eksik olduğu anlamına gelir.- Satırlar her zaman sıralı değildir. Onları
timestampdeğerine göre sıralayın.
e11 ailesinden bir cihazda readings = ["T", "GI", "GIC", "GI2", "GI2C"] vardır ve çıkış yoktur.
1791936198.977;2120;1;0;1;0| Alan | Değer | Anlamı |
|---|---|---|
| timestamp | 1791936198.977 |
Ölçüm zamanı |
T |
2120 |
21.20 °C, çünkü T dönüşümü divide_by_100 şeklindedir |
GI |
1 |
Birinci girişin durumu |
GIC |
0 |
Birinci girişin sayacı |
GI2 |
1 |
İkinci girişin durumu |
GI2C |
0 |
İkinci girişin sayacı |
Dönüşümleri ve birimleri tanımların readings sözlüğünde bulursunuz. Bkz. REST API.
Shell örneği
Bölüm başlığı “Shell örneği”Bu örnek bir cihazın son 3 gününü indirir.
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,1nDiğer yöntem
Bölüm başlığı “Diğer yöntem”MCP sunucusunda get_device_history aracı vardır. Aynı seviyeleri ve bin’leri kabul eder.

