Mertani menyimpan setiap data sensor dalam format terstruktur dan konsisten. Setiap entri selalu dilengkapi timestamp untuk akurasi waktu dan kemudahan analisis historis. Struktur ini dirancang agar:
  • Konsisten untuk berbagai jenis sensor
  • Mudah diproses oleh sistem integrasi
  • Fleksibel untuk penambahan sensor baru

Struktur Data Sensor

Diagram struktur data sensor MertaniDiagram struktur data sensor Mertani
Setiap payload data terdiri dari dua level:
  • Root level — konteks pengiriman data: siapa yang mengirim dan kapan
  • Sensor level — detail pembacaan dari masing-masing sensor pada perangkat tersebut

Field Reference

Root Level

FieldTipeDeskripsi
device_idstringIdentitas unik perangkat pengirim data
timestampstring (ISO 8601)Waktu saat data dikirim dari perangkat

Sensor Level (sensors[])

FieldTipeDeskripsi
idstringIdentitas unik sensor dalam perangkat
valuenumberNilai hasil pembacaan sensor (tanpa satuan)
unitstringSatuan pengukuran dari nilai sensor

Penjelasan Field

Mengidentifikasi perangkat (data logger) yang mengirimkan data. Satu perangkat dapat memiliki banyak sensor.
MTI-Y789XXIEQ
device_id digunakan sebagai kunci relasi — semua sensor dalam satu payload berasal dari perangkat yang sama.
Waktu saat data dikirim dari perangkat, dalam format ISO 8601 dengan informasi zona waktu.
2025-11-20T00:00:00+07:00
BagianNilaiKeterangan
2025-11-20TanggalFormat YYYY-MM-DD
TPemisahMemisahkan tanggal dan waktu
00:00:00WaktuFormat HH:mm:ss
+07:00Timezone offsetWIB (UTC+7)
timestamp mencerminkan waktu pengiriman dari perangkat, bukan waktu penerimaan oleh server. Perbedaan keduanya bisa terjadi jika ada delay jaringan.
Identitas unik sensor di dalam satu perangkat. Format umumnya menggabungkan kode device dan kode jenis sensor.
Y789-flLev
BagianNilaiKeterangan
Y789Kode deviceMengacu pada perangkat induk
flLevKode sensorSingkatan jenis sensor (flLev = flow level / water level)
id digunakan untuk mengidentifikasi dan membedakan antar sensor dalam satu perangkat.
Nilai numerik hasil pembacaan sensor — berupa integer atau float, tergantung jenis sensor.
25.5
  • Tidak mengandung satuan (satuan ditentukan oleh field unit)
  • Merepresentasikan nilai mentah (raw) atau nilai hasil kalibrasi, tergantung konfigurasi perangkat
Satuan pengukuran yang berkaitan dengan value. Bersifat informatif — tidak mengubah nilai secara otomatis.
SatuanKeterangan
cmCentimeter — umumnya untuk water level
%Persen — umumnya untuk kelembaban (humidity)
°CDerajat Celsius — untuk suhu (temperature)
mmMilimeter — umumnya untuk curah hujan
m/sMeter per detik — untuk kecepatan angin
Satuan yang tampil ditentukan oleh konfigurasi sensor di dashboard Mertani.

Contoh Payload

Berikut contoh lengkap payload data yang dikirim dalam satu request, mencakup tiga sensor dari satu perangkat:
{
  "device_id": "Y789",
  "timestamp": "2025-11-20T00:00:00+07:00",
  "sensors": [
    {
      "id": "Y789-flLev",
      "value": 25.5,
      "unit": "cm"
    },
    {
      "id": "Y789-arHum",
      "value": 80,
      "unit": "%"
    },
    {
      "id": "Y789-arTemp",
      "value": 32,
      "unit": "°C"
    }
  ]
}
Satu payload dapat memuat banyak sensor sekaligus. Semua sensor dalam satu payload dijamin memiliki timestamp yang sama karena dikirim dalam satu transmisi dari perangkat yang sama.

Relasi Antar Field

Untuk memahami bagaimana field-field di atas saling berhubungan:
device_id  ──→  mengidentifikasi perangkat pengirim
timestamp  ──→  waktu transmisi data dari perangkat
sensors[]  ──→  daftar pembacaan sensor dalam transmisi tersebut
  └── id      ──→  sensor mana yang membaca
  └── value   ──→  hasil pembacaan (angka)
  └── unit    ──→  satuan dari hasil pembacaan