3.8 KiB
3.8 KiB
TelurKu Firebase Database Configuration
Database Structure (Firebase Realtime Database)
{
"aktuator": {
"motor": true
},
"data": {
"infra1": 1,
"infra2": 20,
"rtc": 1707883200
},
"kontrol": {
"waktu_1": "09:00",
"waktu_2": "15:00",
"durasi_1": "30 menit",
"durasi_2": "30 menit",
"keterangan_1": "Panen Pagi",
"keterangan_2": "Panen Sore"
},
"riwayat": {
"telur_hari_ini": 0,
"total_telur": 0,
"last_reset_date": "2026-02-14"
},
"kandang": {
"kandang_1": {
"nama": "Kandang 1",
"jumlah_ayam": 50,
"dibuat": "2026-02-14"
},
"kandang_2": {
"nama": "Kandang 2",
"jumlah_ayam": 75,
"dibuat": "2026-02-14"
}
},
"panen": {
"panen_1": {
"kandang_id": "kandang_1",
"kandang_nama": "Kandang 1",
"jumlah_telur": 45,
"tanggal": "2026-02-14",
"jam": "09:00",
"catatan": "Kondisi baik"
}
}
}
Field Descriptions
aktuator
- motor (boolean): Status motor/actuator
data
- infra1 (number): Sensor inframerah 1
- infra2 (number): Sensor inframerah 2
- rtc (number): Real-time clock timestamp
kontrol
- waktu_1 (string): Jadwal panen pertama (HH:MM format)
- waktu_2 (string): Jadwal panen kedua (HH:MM format)
- durasi_1 (string): Durasi panen pertama
- durasi_2 (string): Durasi panen kedua
- keterangan_1 (string): Deskripsi jadwal pertama
- keterangan_2 (string): Deskripsi jadwal kedua
riwayat
- telur_hari_ini (number): Total telur yang dihasilkan hari ini (auto-reset ke 0 setiap tengah malam)
- total_telur (number): Total kumulatif seluruh telur
- last_reset_date (string): Tanggal terakhir reset telur_hari_ini (YYYY-MM-DD format)
kandang
Menyimpan data kandang-kandang yang tersedia dengan struktur:
- nama (string): Nama kandang
- jumlah_ayam (number): Jumlah ayam di kandang
- dibuat (string): Tanggal pembuatan kandang
panen
Menyimpan history panen dengan struktur per record:
- kandang_id (string): ID kandang
- kandang_nama (string): Nama kandang
- jumlah_telur (number): Jumlah telur yang dipanen
- tanggal (string): Tanggal panen (YYYY-MM-DD format)
- jam (string): Jam panen (HH:MM format)
- catatan (string): Catatan/keterangan panen
Auto-Reset Feature
Sistem telur_hari_ini akan otomatis mereset ke 0 setiap tengah malam (00:00) dengan:
- Aplikasi mengecek
last_reset_datesaat startup - Jika tanggal berbeda dengan hari ini, akan mereset
telur_hari_inike 0 - Update
last_reset_dateke tanggal hari ini
Firebase Realtime Database Rules (Security)
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"aktuator": {
".write": "auth != null"
},
"data": {
".write": "auth != null"
},
"kontrol": {
".write": "auth != null"
},
"riwayat": {
".write": "auth != null"
},
"kandang": {
".write": "auth != null"
},
"panen": {
".write": "auth != null"
}
}
}
Setup Instructions
-
Pastikan Firebase Realtime Database sudah diaktifkan di Firebase Console
-
Copy struktur JSON di atas ke database
-
Provider
TelurProviderakan otomatis:- Membuat struktur awal jika belum ada
- Mengecek dan mereset
telur_hari_inisetiap hari - Sync data realtime dengan UI
-
Gunakan
TelurProviderdimain.dart:
MultiProvider(
providers: [
// ... other providers
ChangeNotifierProvider(create: (_) => TelurProvider()),
],
child: MyApp(),
)
Methods Available in TelurProvider
addTelurHariIni(int jumlah)- Tambah telur hari inisetTotalTelur(int total)- Set total telur kumulatifresetTelurHariIni()- Manual reset telur hari inimanualReset()- Reset semua data riwayat