Mulai dari satu sinyal.
Hubungkan hardware yang Anda punya, terima telemetry, dan buat dashboard yang sesuai proyek Anda.
Getting started
- Daftar akun, lalu buat workspace.
- Buka Devices → Tambah perangkat. Salin Device ID dan token yang ditampilkan.
- Buat datastream
temperaturebertipenumber, unit°C. Anda dapat memilih datastream awal saat membuat perangkat. - Kirim payload melalui HTTP atau MQTT. Status perangkat berubah online setelah worker menyimpan telemetry.
- Buat dashboard, masuk ke mode edit, tambahkan Value, lalu pilih perangkat dan datastream.
- Klik Simpan dan Preview untuk menerima pembaruan realtime.
Anda tidak perlu membeli hardware dari AhrarTech. ESP32, ESP8266, Arduino, Raspberry Pi, gateway, atau software Anda dapat menggunakan protokol yang sama.
HTTP API
Token perangkat menentukan identitas perangkat dan workspace. Jangan mengirim workspace_id dalam payload.
curl -X POST https://HOST/api/v1/device/telemetry \
-H 'Authorization: Bearer DEVICE_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"temperature":28.4,"humidity":71}'Respons sukses menandakan pesan diterima antrean. Nilai tampil setelah diproses worker.
{"data":{"success":true},"meta":{"request_id":"..."}}URL di atas otomatis memakai host tempat Anda membuka aplikasi. Gunakan HTTPS ketika perangkat mengakses melalui internet.
MQTT
| Pengaturan | Nilai |
|---|---|
| Host / port | HOST : 1883 |
| Username | Device ID |
| Password | Device token |
| Publish telemetry / state | QoS 1, retain false |
| Subscribe command | QoS 1 |
ahrartech/{workspace_id}/{device_id}/telemetry
ahrartech/{workspace_id}/{device_id}/command
ahrartech/{workspace_id}/{device_id}/stateACL broker membatasi setiap perangkat ke topic miliknya. Token lama berhenti mendapatkan izin setelah dicabut atau diganti. Gunakan MQTT melalui TLS pada production.
Connect ESP32
Paket source menyertakan examples/esp32/ahrartech_iot.ino. Isi Wi-Fi, broker, workspace, Device ID, dan token; unggah melalui Arduino IDE dengan library PubSubClient serta ArduinoJson.
Contoh mengirim temperature dan menerima command relay. Nilai suhu contoh berasal dari simulator; ganti fungsi pembacaan dengan sensor yang Anda gunakan. Konfirmasi command dikirim melalui topic state setelah output diperbarui.
// Payload telemetry
{"temperature":28.4,"relay":false}
// Report setelah menjalankan command
{"command_id":"COMMAND_UUID","values":{"relay":true}}Telemetry & historical data
Definisikan key terlebih dahulu. Tipe yang didukung: number, integer, boolean, string. Payload yang memakai key tak dikenal, tipe salah, atau nilai di luar min/max ditolak.
Data terbaru diperbarui lewat WebSocket. Grafik mengambil rentang waktu dan interval agregasi; maksimal 2.000 titik per respons. Data mentah mendukung cursor untuk halaman berikutnya.
GET /api/v1/workspaces/{workspace_id}/devices/{device_id}/telemetry
?datastream=temperature
&from=2026-09-08T00:00:00Z
&to=2026-09-08T06:00:00Z
&resolution=1mInterval: raw, 1m, 5m, 1h, 1d. Rentang query maksimal 31 hari; retensi bawaan 30 hari. Perangkat dianggap online selama pembacaan terakhir belum lebih dari 45 detik.
Commands & reported state
Tambahkan datastream boolean bernama relay, aktifkan writable, lalu hubungkan Switch pada dashboard. Browser mengirim command ke backend menggunakan sesi pengguna.
// Command yang diterima perangkat
{
"id":"COMMAND_UUID",
"datastream":"relay",
"value":true,
"expires_at":"2026-09-08T10:00:30Z"
}Perangkat memeriksa expiry dan menyimpan command ID terakhir untuk mencegah aksi berulang. Setelah mengatur output, publish reported state berisi ID dan nilai aktual. Backend mengakui command jika identitas, datastream, nilai, dan waktu valid.
Status: PENDING → SENT → ACKNOWLEDGED, atau FAILED / TIMEOUT. ACKNOWLEDGED mencatat laporan perangkat; pembuktian kondisi fisik tetap memerlukan sensor umpan balik yang sesuai.
Dashboard & widgets
Tambahkan widget dari palet kiri, tarik pegangan untuk memindahkan, dan gunakan sudut untuk mengubah ukuran. Panel properties memilih data, unit, presisi, serta nilai command. Posisi dan ukuran juga bisa diketik menggunakan keyboard.
| Widget | Datastream |
|---|---|
| Value | Semua tipe |
| Gauge / Line chart | Number atau integer |
| LED | Boolean |
| Switch | Writable boolean |
| Slider | Writable number / integer |
| Button | Datastream writable sesuai tipe nilai command |
| Text | Tanpa binding data |
Dashboard private mengikuti akses workspace. Dashboard public memberikan akses baca kepada siapa pun yang memiliki tautan. Fitur kontrol tetap memerlukan login dan role yang sesuai. Simpan perubahan sebelum berbagi.