Daftar Lengkap Endpoint API ChiliVision
Seluruh endpoint didefinisikan di routes/api.php (dengan prefix /api) serta kompatibilitas root di routes/web.php, ditangani oleh ChiliVisionApiController bersama service layer modular (LeafInferenceService, PesticideScheduleService, GeminiChatService). Klik โก Uji Endpoint pada baris mana pun untuk mengetes request secara langsung.
/apiLeafInferenceService, PesticideScheduleService, GeminiChatService0. Info, Health & Ringkasan Dashboard
7 EndpointEndpoint utilitas untuk memeriksa status server, ketersediaan model AI ONNX, daftar kamera, serta ringkasan real-time seluruh state sistem.
| Method | Endpoint & Alias | Handler | Deskripsi & Parameter / Body | Aksi |
|---|---|---|---|---|
| GET |
/api
Alias:
/api?format=json |
ChiliVisionApiController@apiInfo |
Menampilkan halaman dokumentasi interaktif REST API (di browser) atau spesifikasi JSON lengkap (?format=json).
Query opsional: format=json (untuk paksa output raw JSON).
|
|
| GET |
/api/health
Alias:
/health |
ChiliVisionApiController@health |
Status server Laravel, koneksi database TiDB Cloud, daftar model AI aktif, dan ringkasan system_services (FastAPI warm worker / CLI fallback, Gemini AI, Telegram Bot, Scheduler).
Tidak ada parameter.
|
|
| GET |
/api/models
Alias:
/models |
ChiliVisionApiController@models (via LeafInferenceService) |
Daftar model AI Computer Vision (yolov8n-chili, yolov10n-chili, yolov11n-chili, cnn-6ch-chili) beserta status file model.
Tidak ada parameter.
|
|
| GET |
/api/telegram/model
|
ChiliVisionApiController@getTelegramModel |
Mengambil model AI Computer Vision yang sedang dipilih secara persisten untuk Telegram Bot & Web.
Tidak ada parameter.
|
|
| POST |
/api/telegram/model
|
ChiliVisionApiController@setTelegramModel |
Mengubah model AI aktif untuk deteksi foto daun (yolov8n-chili, yolov10n-chili, yolov11n-chili, atau cnn-6ch-chili).
JSON / Form:
โข model_id (wajib): ID model dari /api/models
|
|
| GET |
/api/cameras
Alias:
/cameras |
ChiliVisionApiController@cameras |
Daftar sumber kamera default yang terdaftar.
Tidak ada parameter.
|
|
| GET |
/api/dashboard/state
|
ChiliVisionApiController@dashboardState |
Mengambil seluruh state real-time sekaligus (deteksi daun, soil moisture, DHT11, histori semprot, jadwal pestisida, status ESP32, system_services, dan pesan chatbot).
Tidak ada parameter.
|
1. API Gambar Daun & Deteksi Penyakit (Computer Vision)
2 EndpointInferensi berjalan melalui LeafInferenceService (FastAPI warm worker port 8001 dengan circuit breaker + fallback otomatis ke CLI Python). Jika visual daun tidak berubah, gambar tidak diduplikasi ke TiDB Cloud kecuali force_save=true.
| Method | Endpoint & Alias | Handler | Deskripsi & Parameter / Body | Aksi |
|---|---|---|---|---|
| GET |
/api/leaf-image
Alias:
/api/gambar-daun |
ChiliVisionApiController@getLatestLeafImage |
Mengambil deteksi daun terakhir beserta 10 riwayat deteksi terbaru dari tabel leaf_detections.
Tidak ada parameter.
|
|
| POST |
/api/leaf-image
Alias:
/api/gambar-daun, /api/predict, /predict |
ChiliVisionApiController@predictAndStoreLeaf -> LeafInferenceService |
Menjalankan inferensi AI (mengembalikan field inference_backend: fastapi|cli) pada foto daun cabai & menyimpan ke database jika kondisi daun berubah.
multipart/form-data:
โข file atau image (wajib, file gambar JPG/PNG/WEBP)
โข model_id (opsional, default: model terpilih / 'yolov8n-chili')
โข threshold (opsional, 0.10โ0.95; default: 0.45 untuk YOLO, 0.50 untuk CNN 6-Channel)
โข force_save (opsional, boolean)
|
|
2. API Sensor Soil Moisture (Kelembapan Tanah)
2 EndpointAlur: web > chatbot > database. Jika kelembapan tanah < 30% (Kering), sistem otomatis menjadwalkan penyemprotan air selama 5 detik.
| Method | Endpoint & Alias | Handler | Deskripsi & Parameter / Body | Aksi |
|---|---|---|---|---|
| GET |
/api/sensor/soil-moisture
Alias:
/api/soil-moisture |
ChiliVisionApiController@getLatestSoilMoisture |
Mengambil pembacaan kelembapan tanah terakhir & 15 riwayat terbaru dari tabel soil_moisture_readings.
Tidak ada parameter.
|
|
| POST |
/api/sensor/soil-moisture
Alias:
/api/soil-moisture |
ChiliVisionApiController@storeSoilMoisture |
Mengirim pembacaan kelembapan tanah baru ke Web, meneruskan notifikasi ke Chatbot/Telegram, dan menyimpan ke TiDB Cloud.
JSON / Form:
โข moisture_percent (atau moisture / value): 0โ100 (wajib)
โข adc_value (opsional, integer)
โข source (opsional, default: 'api'; isi 'esp32' untuk mencatat heartbeat hardware)
|
|
3. API Sensor DHT11 (Suhu & Kelembapan Udara)
2 EndpointAlur: web > chatbot > database. Menghitung heat index otomatis dan memberikan rekomendasi kondisi mikroklimat cabai.
| Method | Endpoint & Alias | Handler | Deskripsi & Parameter / Body | Aksi |
|---|---|---|---|---|
| GET |
/api/sensor/dht11
Alias:
/api/dht11 |
ChiliVisionApiController@getLatestDht11 |
Mengambil pembacaan suhu & kelembapan udara terakhir beserta 15 riwayat terbaru dari tabel dht11_readings.
Tidak ada parameter.
|
|
| POST |
/api/sensor/dht11
Alias:
/api/dht11 |
ChiliVisionApiController@storeDht11 |
Mengirim pembacaan suhu & kelembapan udara baru ke Web, meneruskan notifikasi ke Chatbot/Telegram, dan menyimpan ke TiDB Cloud.
JSON / Form:
โข temperature (atau suhu): -10 s/d 80 (wajib)
โข humidity (atau kelembapan_udara): 0โ100 (wajib)
โข source (opsional, default: 'api'; isi 'esp32' untuk mencatat heartbeat hardware)
|
|
4. API Histori & Jadwal Penyemprotan Pestisida
2 EndpointDikelola oleh PesticideScheduleService: menyimpan histori semprot serta mengevaluasi interval fleksibel dan jadwal target tanggal/jam spesifik (dipicu otomatis oleh scheduler background).
| Method | Endpoint & Alias | Handler | Deskripsi & Parameter / Body | Aksi |
|---|---|---|---|---|
| GET |
/api/spray/pesticide/history
Alias:
/api/histori-pestisida |
ChiliVisionApiController@getPesticideSprayHistory -> PesticideScheduleService |
Mengambil waktu terakhir pestisida disemprot, info interval/jadwal target tanggal spesifik, dan 20 riwayat terakhir.
Tidak ada parameter.
|
|
| POST |
/api/spray/pesticide/history
Alias:
/api/histori-pestisida |
ChiliVisionApiController@storePesticideSprayHistory |
Mencatat log histori waktu penyemprotan pestisida ke tabel spray_histories.
JSON / Form (opsional semua):
โข trigger_mode, triggered_by, duration_seconds, leaf_condition, notes, sprayed_at
|
|
5. API Histori Penyemprotan Air
2 EndpointMenyimpan dan menampilkan waktu terakhir penyemprotan air dari tabel spray_histories.
| Method | Endpoint & Alias | Handler | Deskripsi & Parameter / Body | Aksi |
|---|---|---|---|---|
| GET |
/api/spray/water/history
Alias:
/api/histori-air |
ChiliVisionApiController@getWaterSprayHistory |
Mengambil waktu terakhir air disemprot dan 20 riwayat penyemprotan air terakhir.
Tidak ada parameter.
|
|
| POST |
/api/spray/water/history
Alias:
/api/histori-air |
ChiliVisionApiController@storeWaterSprayHistory |
Mencatat log histori waktu penyemprotan air ke tabel spray_histories.
JSON / Form (opsional semua):
โข trigger_mode, triggered_by, duration_seconds, soil_moisture, notes, sprayed_at
|
|
6. API Penyemprotan Manual (Air & Pestisida)
1 EndpointDigunakan oleh tombol di Web Dashboard maupun perintah manual untuk menyalakan pompa air/pestisida dan memasukkannya ke antrean ESP32.
| Method | Endpoint & Alias | Handler | Deskripsi & Parameter / Body | Aksi |
|---|---|---|---|---|
| POST |
/api/spray/manual
Alias:
/api/penyemprotan-manual |
ChiliVisionApiController@triggerManualSpray |
Memicu penyemprotan manual air atau pestisida, mencatat ke histori, dan memberi tahu Chatbot/Telegram.
JSON / Form:
โข type (atau jenis): 'water' / 'air' atau 'pesticide' / 'pestisida'
โข duration_seconds (opsional, 1โ60 detik, default: 5)
โข triggered_by / source (opsional, default: 'web')
โข notes (opsional)
|
|
7. API Chatbot AI (Gemini), Telegram Bot & Hardware ESP32
5 EndpointSinkronisasi 2 arah antara Chatbot Website (GeminiChatService + fast-path command), Bot Telegram, monitoring heartbeat ESP32, dan antrean polling perintah pompa.
| Method | Endpoint & Alias | Handler | Deskripsi & Parameter / Body | Aksi |
|---|---|---|---|---|
| GET |
/api/chatbot/messages
|
ChiliVisionApiController@getChatbotMessages |
Mengambil 40 pesan percakapan chatbot terakhir dari tabel chatbot_messages.
Tidak ada parameter.
|
|
| POST |
/api/chatbot/message
|
ChiliVisionApiController@sendChatbotMessage -> GeminiChatService |
Mengirim pesan atau perintah ke chatbot. Mendukung /status, /semprot_air, /semprot_pestisida, ubah jadwal interval atau tanggal/jam spesifik, ganti model AI, serta tanya jawab bebas via Gemini AI.
JSON / Form:
โข message (wajib, string maks 1000 karakter)
โข source (opsional, 'web' atau 'telegram')
|
|
| GET |
/api/esp32/poll
Alias:
/api/spray/pending |
ChiliVisionApiController@esp32PollCommands |
Di-polling oleh mikrokontroler ESP32 untuk mencatat heartbeat online, mengecek antrean perintah nyala pompa (spray_water, spray_pesticide beserta durasinya), dan menandainya completed.
Tidak ada parameter.
|
|
| GET |
/api/hardware/esp32-status
|
ChiliVisionApiController@getHardwareStatus |
Memeriksa status koneksi heartbeat ESP32 terbaru (never_connected, online, offline beserta selisih detik terakhir aktif).
Tidak ada parameter.
|
|
| POST |
/api/telegram/webhook
|
ChiliVisionApiController@telegramWebhook |
Endpoint webhook untuk menerima pesan masuk dari Bot Telegram dan membalasnya secara otomatis.
Payload JSON standar Telegram Update:
โข message.chat.id
โข message.text
|
|
8. API Laporan & Ekspor Data CSV
1 EndpointMenyediakan unduhan laporan data historis siap buka di Excel/Spreadsheet (UTF-8 BOM CSV).
| Method | Endpoint & Alias | Handler | Deskripsi & Parameter / Body | Aksi |
|---|---|---|---|---|
| GET |
/api/reports/export/{type}
|
ChiliVisionApiController@exportCsvReport |
Mengekspor data historis ke format CSV berdasarkan tipe laporan.
Path parameter {type} wajib salah satu dari:
โข soil (kelembapan tanah)
โข dht11 (suhu & kelembapan udara)
โข leaf (riwayat deteksi daun)
โข spray (riwayat penyemprotan air & pestisida)
|