@extends('layouts.app') @section('title', 'Dashboard - Monitoring Hidroponik') @section('page-title', 'Dashboard') @section('content') {{-- ═══ STATISTIK ATAS ═══ --}}
{{-- Total Sensor --}}
Total Sensor
{{ $total_sensor }}
{{-- Sensor Terpakai --}}
Sensor Terpakai
{{ $total_terpakai }}
{{-- Sensor Normal --}}
Sensor Normal
{{ $total_normal }}
{{-- Sensor Waspada (Early Warning) --}}
Sensor Waspada
{{ $total_waspada ?? 0 }}
{{-- Sensor Bahaya --}}
Sensor Bahaya
{{ $total_bahaya }}
{{-- ═══ STATUS SENSOR TERKINI ═══ --}}
Status Sensor Terkini
@foreach($monitoring_terbaru as $index => $m) @php $status = $m->batasPeringatan->status_ket ?? 'normal'; $isWaspada = $m->is_waspada ?? false; $nilai = $m->nilai; $sensor = $m->jenisSensor->nama_sensor; $ranges = [ 'ph_level' => ['min' => 0, 'max' => 14, 'unit' => 'pH'], 'TDS' => ['min' => 1500, 'max' => 2000, 'unit' => 'ppm'], 'turbidity' => ['min' => 0, 'max' => 1000, 'unit' => 'NTU'], 'suhu_air' => ['min' => 25, 'max' => 35, 'unit' => '°C'], ]; $range = $ranges[$sensor] ?? ['min' => 0, 'max' => 100, 'unit' => '']; // Warna per sensor (warna bersih) $warnaSensor = [ 'ph_level' => ['accent' => '#1a9eb5', 'bg' => '#e8f6f9', 'bar' => '#67e8f9'], 'TDS' => ['accent' => '#10b981', 'bg' => '#ecfdf5', 'bar' => '#6ee7b7'], 'turbidity' => ['accent' => '#f59e0b', 'bg' => '#fffbeb', 'bar' => '#fcd34d'], 'suhu_air' => ['accent' => '#ef4444', 'bg' => '#fff5f5', 'bar' => '#fca5a5'], ]; $w = $warnaSensor[$sensor] ?? ['accent' => '#1a9eb5', 'bg' => '#e8f6f9', 'bar' => '#67e8f9']; // Cek apakah sensor punya data (nilai null = sensor baru tanpa data) $tidakAdaData = is_null($nilai); // Tentukan badge class & label if ($tidakAdaData) { $badgeClass = 'normal'; $labelStatus = 'Normal'; } elseif (in_array($status, ['bahayakurang', 'bahayalebih'])) { $badgeClass = $status; $labelStatus = $status === 'bahayakurang' ? 'Bahaya Kurang' : 'Bahaya Lebih'; } elseif ($isWaspada) { $badgeClass = 'waspada'; $labelStatus = 'Waspada'; } else { $badgeClass = 'normal'; $labelStatus = 'Normal'; } $sensorLabel = [ 'ph_level' => 'pH Level', 'TDS' => 'TDS', 'turbidity' => 'Turbidity', 'suhu_air' => 'Suhu Air', ][$sensor] ?? strtoupper($sensor); @endphp
{{-- Header warna sensor --}}
{{ $sensorLabel }}
{{ $labelStatus }}
@if(!$tidakAdaData) {{-- Gauge canvas --}}
{{-- Nilai besar --}}
{{ $nilai }} {{ $range['unit'] }}
{{-- Keterangan --}}
{{ $m->batasPeringatan->keterangan ?? 'Dalam batas normal' }}
{{-- Waktu --}}
{{ $m->create_at }}
@else {{-- Belum ada data --}}
Belum ada data monitoring
@endif {{-- Garis warna bawah --}}
@endforeach
{{-- ═══ GRAFIK TREN ═══ --}}
Grafik Tren Sensor
@foreach($grafik_data as $index => $grafik)
{{ $grafik['nama'] }}
@endforeach
{{-- ═══ RIWAYAT PERINGATAN ═══ --}}
Riwayat Peringatan
Data Peringatan Terbaru @if($monitoring_bahaya->count() > 0) {{ $monitoring_bahaya->count() }} Peringatan @endif
@forelse($monitoring_bahaya as $m) @php $status = $m->batasPeringatan->status_ket ?? ''; $rowClass = match($status) { 'bahayakurang' => 'row-bahayakurang', 'bahayalebih' => 'row-bahayalebih', default => '' }; @endphp @empty @endforelse
Sensor Nilai Status Keterangan Waktu
{{ strtoupper($m->jenisSensor->nama_sensor) }} {{ $m->nilai }} {{ $status === 'bahayakurang' ? 'Kurang' : 'Lebih' }} {{ $m->batasPeringatan->keterangan ?? '-' }} {{ $m->create_at }}
Tidak ada peringatan saat ini
{{-- ═══ EARLY WARNING — SENSOR DALAM PEMANTAUAN ═══ --}} @if(isset($monitoring_waspada) && $monitoring_waspada->count() > 0)
Early Warning — Sensor Dalam Pemantauan
Tren Mendekati Batas (Belum Bahaya) {{ $monitoring_waspada->count() }} Sensor
@foreach($monitoring_waspada as $m) @endforeach
Sensor Nilai Terbaru Status Waktu
{{ strtoupper($m->jenisSensor->nama_sensor) }} {{ $m->nilai }} Waspada {{ $m->create_at }}
@endif @endsection @section('scripts') @endsection