Open API
Support Mertani
Frequently Asked Questions
Find answers to common questions about Mertani dashboard app.1. API — Spesifikasi Teknis
Autentikasi & Keamanan
Metode autentikasi apa yang didukung?
Metode autentikasi apa yang didukung?
api_keyberfungsi sebagai usernamesecret_keyberfungsi sebagai password- Authentication bersifat stateless (tidak menggunakan session atau token)
- Gunakan HTTPS di semua request
- Jangan expose API key di frontend
- Simpan credential di environment variables
Apa yang harus dilakukan jika kredensial bocor atau tidak aman?
Apa yang harus dilakukan jika kredensial bocor atau tidak aman?
- API key tersimpan di frontend
- Repository tidak diamankan
- Segera rotasi API key
- Pindahkan kredensial ke server-side
- Gunakan secret manager jika tersedia
Error 401 Unauthorized
Error 401 Unauthorized
Error 403 Forbidden
Error 403 Forbidden
- API key tidak memiliki akses ke resource
- API key telah dicabut
- Periksa permission API key
- Hubungi pihak Mertani jika diperlukan
Endpoint & Format Data
Endpoint API apa saja yang tersedia?
Endpoint API apa saja yang tersedia?
- Mendapatkan daftar device
- Informasi detail device
- Data sensor terbaru
- Data historis berdasarkan timestamp
GET /devicesGET /devices/{id}
Format data apa yang didukung?
Format data apa yang didukung?
- Header: JSON / HTTP standard
- Authentication: Basic Auth
- Format utama: JSON
- Encoding: UTF-8
- Timestamp: ISO 8601 / Unix timestamp (tergantung endpoint)
Apakah API ini bersifat real-time?
Apakah API ini bersifat real-time?
- Interval umum: 1 jam sekali
- API hanya menyajikan data yang sudah tersimpan di database
- Gunakan Webhook API (push-based)
- Atau lakukan polling dengan interval yang disesuaikan
Apakah saya bisa mengakses perangkat secara langsung?
Apakah saya bisa mengakses perangkat secara langsung?
- Client tidak pernah berkomunikasi langsung dengan device
- Semua akses harus melalui API
- Data diambil dari database, bukan dari perangkat secara live
Bagaimana konsistensi data dijamin?
Bagaimana konsistensi data dijamin?
- Validasi device
- Validasi format data
- Normalisasi
- Penyimpanan ke database
timestamp dari device sebagai referensi utama.Catatan:- Delay dapat terjadi jika jaringan tidak stabil
- Data duplikat bisa terjadi jika device melakukan retry
Rate Limit & Best Practice
Bagaimana rate limit dihitung?
Bagaimana rate limit dihitung?
- Request berulang dalam waktu singkat dapat dibatasi
- Polling berlebihan dapat menyebabkan throttling
- Beban tinggi dari satu API key dapat memicu pembatasan sementara
- Gunakan interval request sesuai interval device (misalnya 1 jam)
- Hindari polling setiap detik
- Gunakan caching di sisi client
Kapan sebaiknya menggunakan REST API vs Webhook?
Kapan sebaiknya menggunakan REST API vs Webhook?
| Situasi | Rekomendasi |
|---|---|
| Butuh data historis | REST API |
| Membangun dashboard | REST API |
| Kontrol penuh terhadap request | REST API |
| Butuh data real-time | Webhook |
| Sistem event-driven | Webhook |
| Ingin menghindari polling | Webhook |
Apa yang terjadi jika request gagal?
Apa yang terjadi jika request gagal?
| Kode | Arti |
|---|---|
| 200 | Success |
| 400 | Bad request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 500 | Server error |
- Implementasikan retry mechanism
- Logging error response
- Validasi request sebelum dikirim
2. API — Troubleshooting
Data Tidak Muncul atau Terlambat
Data tidak muncul di API
Data tidak muncul di API
- Perangkat belum mengirim data
- Interval pengiriman belum tercapai
- Periksa status device
- Tunggu hingga siklus pengiriman berikutnya
Data terlambat muncul
Data terlambat muncul
- Jaringan perangkat tidak stabil
- Delay pada proses ingestion
- Periksa konektivitas device
- Validasi timestamp data
API tidak mengembalikan data terbaru (REST)
API tidak mengembalikan data terbaru (REST)
- Polling terlalu cepat sebelum data tersedia
- Parameter waktu tidak sesuai
- Cache pada client
- Sesuaikan interval polling dengan device
- Gunakan filter timestamp terbaru
- Disable cache jika diperlukan
Request berhasil tapi data kosong
Request berhasil tapi data kosong
- API key tidak memiliki akses ke data tertentu
- Parameter request tidak sesuai
- Validasi endpoint dan parameter
- Periksa scope akses API key
Data tidak konsisten
Data tidak konsisten
- Sensor error atau tidak terkalibrasi
- Data duplikat atau missing
- Lakukan kalibrasi sensor
- Validasi data di level aplikasi
Masalah Webhook
Data tidak masuk ke sistem external (Webhook)
Data tidak masuk ke sistem external (Webhook)
- Endpoint tidak dapat diakses (down / timeout)
- URL webhook salah
- Periksa endpoint server Anda
- Validasi URL dan pastikan response status mengembalikan
200 OK
Webhook mengirim data duplikat
Webhook mengirim data duplikat
- Retry dari server karena response gagal
- Tidak ada deduplication di client
- Implementasikan idempotency di sisi client
- Simpan unique identifier data
Server client overload karena webhook
Server client overload karena webhook
- Volume data tinggi
- Endpoint tidak scalable
- Gunakan queue system (Kafka, RabbitMQ, dll.)
- Tambahkan rate limiting atau buffering
3. App Dashboard — Manajemen Pengguna
Undangan & Login
Undangan tidak diterima
Undangan tidak diterima
- Email salah atau tidak aktif
- Email masuk ke folder spam
- Periksa kembali alamat email
- Minta pengguna cek folder spam atau promotion
- Kirim ulang undangan jika tersedia
User tidak bisa login setelah invite
User tidak bisa login setelah invite
- Proses aktivasi belum selesai
- Password belum diterima melalui email
- Pastikan pengguna telah membuka link undangan
- Minta pengguna terima undangan
User tidak muncul di daftar pengguna
User tidak muncul di daftar pengguna
- Invite belum diproses sepenuhnya
- Halaman belum diperbarui
- Refresh halaman
- Periksa kembali status undangan
Edit & Akses Pengguna
Tidak bisa mengedit pengguna
Tidak bisa mengedit pengguna
- Tidak memiliki permission yang cukup
- Akun dibatasi oleh sistem
- Gunakan akun dengan akses lebih tinggi
- Periksa kebijakan sistem terkait akses edit
Nomor HP tidak valid saat edit profil
Nomor HP tidak valid saat edit profil
- Format nomor tidak sesuai
- Mengandung karakter yang tidak diperbolehkan
- Gunakan format nomor yang benar (angka saja, sesuai standar sistem)
- Hindari spasi atau simbol tambahan
Perubahan tidak tersimpan atau tidak terlihat
Perubahan tidak tersimpan atau tidak terlihat
- Form belum diisi dengan benar / validasi sistem gagal
- Cache browser belum diperbarui
- Pastikan semua field wajib sudah diisi dan format data benar
- Refresh halaman atau logout dan login kembali
User tidak melihat device apapun
User tidak melihat device apapun
- Tidak ada device yang dipilih saat konfigurasi
- Edit kembali akses device
- Pastikan minimal satu device dipilih
Device tidak muncul di daftar pilihan
Device tidak muncul di daftar pilihan
- Device belum terdaftar dalam sistem
- Device berada di instansi berbeda
- Pastikan device sudah dibuat dan aktif
- Periksa kembali scope instansi
User masih bisa akses device yang seharusnya dibatasi
User masih bisa akses device yang seharusnya dibatasi
- Pembatasan belum tersimpan dengan benar
- Ada konflik dengan konfigurasi lain
- Ulangi proses dan pastikan klik simpan
- Validasi kembali konfigurasi akses user
4. App Dashboard — Manajemen Role
Membuat & Mengedit Role
Gagal membuat role
Gagal membuat role
- Nama role duplikat
- Input tidak valid atau koneksi bermasalah
- Pastikan nama role tidak duplikat
- Periksa koneksi dan validasi input
Tidak bisa mengubah nama role
Tidak bisa mengubah nama role
- Role merupakan role default atau dilindungi sistem
- Tidak memiliki permission yang cukup
- Gunakan akun dengan akses lebih tinggi
- Periksa apakah role termasuk protected role
Nama role tidak bisa disimpan
Nama role tidak bisa disimpan
- Nama role sudah digunakan (duplikat)
- Input kosong atau mengandung karakter yang tidak diperbolehkan
- Gunakan nama yang unik
- Pastikan format nama sesuai aturan sistem
User bingung dengan perubahan nama role
User bingung dengan perubahan nama role
- Tidak ada komunikasi perubahan ke pengguna
- Informasikan perubahan kepada pengguna terkait
- Gunakan nama yang lebih deskriptif dan familiar
Assign Role & Permission
Role salah setelah user login
Role salah setelah user login
- Salah memilih role saat invite
- Perubahan belum tersimpan
- Gunakan fitur Assign Role untuk memperbaiki
- Pastikan konfigurasi role benar saat invite
Role tidak muncul saat assign user
Role tidak muncul saat assign user
- Pastikan role sudah berhasil disimpan
- Refresh halaman atau reload sistem
Tidak bisa mengubah role user
Tidak bisa mengubah role user
- Periksa apakah Anda memiliki permission yang cukup
- Pastikan role tujuan tidak dibatasi oleh sistem
User tidak bisa mengakses fitur tertentu
User tidak bisa mengakses fitur tertentu
- Permission belum diberikan pada role
- Role yang digunakan tidak sesuai
- Periksa dan tambahkan permission yang diperlukan
- Validasi role pengguna
Role tidak memiliki akses meski sudah dikonfigurasi
Role tidak memiliki akses meski sudah dikonfigurasi
- Pastikan permission sudah dikonfigurasi dan tersimpan
- Periksa apakah ada override dari konfigurasi lain
Aksi ditolak meskipun tombol tersedia
Aksi ditolak meskipun tombol tersedia
- Periksa konfigurasi permission di sistem
- Pastikan aksi yang dipilih sudah diaktifkan
Perubahan permission tidak terlihat setelah disimpan
Perubahan permission tidak terlihat setelah disimpan
- Cache browser belum diperbarui
- Sinkronisasi session belum terjadi
- Refresh halaman
- Logout dan login kembali
Semua user dalam role terkena dampak perubahan permission
Semua user dalam role terkena dampak perubahan permission
- Buat role baru jika membutuhkan variasi akses
- Hindari perubahan langsung pada role yang digunakan banyak user
Menghapus Role
Tidak bisa menghapus role
Tidak bisa menghapus role
- Role masih digunakan oleh satu atau lebih pengguna
- Role termasuk role default sistem
- Pindahkan semua pengguna ke role lain melalui fitur Assign Role
- Pastikan role bukan bagian dari role bawaan sistem
Aksi hapus tidak tersedia
Aksi hapus tidak tersedia
- Tidak memiliki permission untuk menghapus role
- Role dilindungi oleh sistem (protected role)
- Gunakan akun dengan akses lebih tinggi (misalnya Admin)
- Periksa kebijakan sistem terkait role yang tidak bisa dimodifikasi
Role tidak muncul dalam daftar
Role tidak muncul dalam daftar
- Data belum ter-refresh
- Role sudah dihapus sebelumnya
- Refresh halaman
- Periksa kembali dengan filter atau pencarian
Terjadi kesalahan saat konfirmasi hapus
Terjadi kesalahan saat konfirmasi hapus
- Gangguan koneksi
- Validasi sistem gagal
- Coba ulangi proses beberapa saat kemudian
- Pastikan koneksi stabil
5. App Dashboard — Kalibrasi Sensor
Konfigurasi Rumus Kalibrasi
Hasil kalibrasi tidak berubah setelah disimpan
Hasil kalibrasi tidak berubah setelah disimpan
- Kalibrasi hanya berlaku untuk data baru, bukan data historis
- Tidak ada data baru yang masuk setelah kalibrasi disimpan
- Rumus tidak valid sehingga tidak dieksekusi
- Pastikan device mengirim data terbaru
- Cek timestamp data terakhir
- Periksa kembali rumus (hindari typo atau format salah)
Nilai hasil kalibrasi menjadi 0 atau null
Nilai hasil kalibrasi menjadi 0 atau null
- Rumus menghasilkan nilai tidak valid (misalnya pembagian dengan 0)
- Referensi parameter
[parameter]tidak ditemukan - Dataset tidak mengembalikan nilai (lookup gagal)
- Validasi rumus secara manual
- Pastikan ID sensor atau parameter benar
- Pastikan dataset memiliki range nilai yang sesuai dengan input
Muncul error saat input rumus kalibrasi
Muncul error saat input rumus kalibrasi
- Salah syntax (contoh:
x +tanpa nilai lanjutan) - Salah operator (misalnya
^seharusnya**) - Fungsi tidak didukung atau salah format
- Gunakan operator yang didukung:
+ - * / ** - Pastikan semua tanda kurung seimbang
- Gunakan fungsi sesuai dokumentasi (contoh:
sqrt(x))
Parameter lain tidak bisa dipanggil dengan [parameter]
Parameter lain tidak bisa dipanggil dengan [parameter]
- ID sensor salah atau tidak ada di device yang sama
- Penulisan tidak sesuai format (
[id_sensor]) - Sensor belum memiliki data
- Pastikan ID sensor benar (case-sensitive)
- Gunakan fitur
=untuk memilih parameter secara otomatis - Pastikan sensor referensi aktif dan mengirim data
Hasil kalibrasi terlihat tidak masuk akal (terlalu besar/kecil)
Hasil kalibrasi terlihat tidak masuk akal (terlalu besar/kecil)
- Salah konversi unit (misalnya cm ke m)
- Kesalahan urutan operasi dalam rumus
- Referensi parameter yang tidak sesuai
- Validasi dengan perhitungan manual
- Cek kembali unit sebelum dan sesudah kalibrasi
- Gunakan nilai sample untuk testing
Kenapa perubahan units tidak berpengaruh pada nilai?
Kenapa perubahan units tidak berpengaruh pada nilai?
- Ubah rumus kalibrasi sesuai unit baru
- Contoh: cm → m harus menggunakan
x/100, lalu update unit menjadi meter
Bagaimana cara memastikan rumus kalibrasi sudah benar?
Bagaimana cara memastikan rumus kalibrasi sudah benar?
- Uji dengan sample data manual
- Gunakan nilai sederhana terlebih dahulu (misal
x/100) - Bandingkan hasil dengan perhitungan di luar sistem
- Bangun rumus secara bertahap, hindari langsung menggunakan rumus kompleks
Virtual Parameter (Sensor Turunan)
Sensor turunan (virtual parameter) tidak muncul di sistem
Sensor turunan (virtual parameter) tidak muncul di sistem
- Kalibrasi belum disimpan
- Parameter tidak digunakan di dashboard
- Tidak ada data masuk
- Klik Simpan setelah input rumus
- Pastikan parameter digunakan di tampilan
- Tunggu data baru masuk
Apakah virtual sensor dapat digunakan sebagai faktor kalibrasi?
Apakah virtual sensor dapat digunakan sebagai faktor kalibrasi?
- Hindari menggunakan parameter turunan sebagai faktor kalibrasi
- Lakukan kalibrasi yang sama untuk mendapat nilai dari parameter turunan, kemudian kalibrasikan perhitungan tersebut
Grafik dan dashboard tidak sesuai dengan raw data
Grafik dan dashboard tidak sesuai dengan raw data
- Bandingkan raw vs sintetik melalui fitur unduh data untuk validasi
- Pastikan rumus kalibrasi sudah benar
6. App Dashboard — Dataset
Format & Struktur File
Apakah format file dataset harus CSV?
Apakah format file dataset harus CSV?
- Pastikan file berekstensi
.csv - Jika dari Excel, gunakan Export → CSV
Apakah baris pertama harus header?
Apakah baris pertama harus header?
DATASET().Contoh yang benar:Apakah kolom pertama wajib sebagai referensi?
Apakah kolom pertama wajib sebagai referensi?
Apakah nilai pada kolom referensi harus berurutan?
Apakah nilai pada kolom referensi harus berurutan?
- Urutkan data secara konsisten (ascending atau descending)
Apakah boleh ada nilai duplikat pada kolom referensi?
Apakah boleh ada nilai duplikat pada kolom referensi?
- Pastikan setiap nilai referensi unik
Apakah satu dataset bisa memiliki banyak kolom output?
Apakah satu dataset bisa memiliki banyak kolom output?
DATASET("slug", x, "area")DATASET("slug", x, "volume")
Apakah dataset mendukung interpolasi otomatis?
Apakah dataset mendukung interpolasi otomatis?
- Gunakan interval data yang lebih rapat
- Tambahkan nilai di antara (intermediate values) jika diperlukan
Apakah perubahan dataset mempengaruhi data lama?
Apakah perubahan dataset mempengaruhi data lama?
Troubleshooting Dataset
Dataset tidak terbaca setelah upload
Dataset tidak terbaca setelah upload
- Format file bukan CSV
- Tidak ada header di baris pertama
- Struktur kolom tidak sesuai
- File corrupt atau encoding tidak valid
- Pastikan format CSV valid dengan delimiter koma (
,) - Gunakan encoding UTF-8
- Pastikan file dapat dibuka di editor teks
Upload dataset gagal atau error
Upload dataset gagal atau error
- File terlalu besar
- Header kosong atau duplikat
- Encoding tidak standar (bukan UTF-8)
- Gunakan CSV dengan encoding UTF-8
- Pastikan header unik dan tidak kosong
- Periksa batas ukuran file yang diizinkan
Hasil DATASET() kosong atau null
Hasil DATASET() kosong atau null
- Nilai input tidak ditemukan dalam kolom referensi
- Slug dataset salah
- Nama kolom output tidak sesuai header
- Pastikan nilai input berada dalam range dataset
- Periksa slug dataset
- Gunakan nama kolom output sesuai header (case-sensitive)
Checklist sebelum menggunakan dataset
Checklist sebelum menggunakan dataset
- Kolom pertama = referensi (input)
- Baris pertama = header
- Tidak ada nilai kosong di kolom referensi
- Range data mencakup nilai sensor
- Tidak ada duplikasi nilai referensi
- Uji dengan beberapa nilai sample dan bandingkan hasil manual dengan hasil sistem
7. Status Perangkat (Device Status)
🔴 Device Offline
🔴 Device Offline
Kemungkinan Penyebab
- Device mati atau kehabisan daya
- Gangguan jaringan
- SIM card tidak aktif
- Modem bermasalah
Langkah Pengecekan
- Pastikan device dalam kondisi menyala
- Periksa sumber daya / baterai
- Verifikasi koneksi internet
- Cek kualitas sinyal modem
- Restart device apabila diperlukan
Jika device tetap offline lebih dari 24 jam, lakukan pengecekan lapangan.
🟡 Device Delay
🟡 Device Delay
⚪ Device Maintenance
⚪ Device Maintenance
Rekomendasi
- Dokumentasikan aktivitas maintenance
- Nonaktifkan alarm sementara jika diperlukan
- Pastikan status dikembalikan setelah maintenance selesai