getConnection(); $item_id = intval($_GET['id'] ?? 0); if (!$item_id) { echo json_encode([ 'success' => false, 'message' => 'ID tidak valid' ]); exit; } /* |-------------------------------------------------------------------------- | Ambil SN dari ftth_items |-------------------------------------------------------------------------- */ $stmt = $conn->prepare(" SELECT sn_onu FROM ftth_items WHERE id = ? "); $stmt->execute([$item_id]); $item = $stmt->fetch(PDO::FETCH_ASSOC); if (!$item || empty($item['sn_onu'])) { echo json_encode([ 'success' => false, 'message' => 'SN tidak ada' ]); exit; } $sn = trim($item['sn_onu']); /* |-------------------------------------------------------------------------- | Ambil optical terakhir |-------------------------------------------------------------------------- */ $stmt = $conn->prepare(" SELECT sn, ont_name, rx_power, voltage, min_rx, max_rx, min_voltage, max_voltage, updated_at FROM onu_daily_history WHERE sn = ? ORDER BY updated_at DESC LIMIT 1 "); $stmt->execute([$sn]); $data = $stmt->fetch(PDO::FETCH_ASSOC); if (!$data) { echo json_encode([ 'success' => false, 'message' => 'Data optical tidak ditemukan' ]); exit; } /* |-------------------------------------------------------------------------- | Format Data |-------------------------------------------------------------------------- */ $data['rx_power'] = number_format((float)$data['rx_power'], 2) . ' dBm'; $data['voltage'] = number_format((float)$data['voltage'], 2) . ' V'; $data['min_rx'] = number_format((float)$data['min_rx'], 2) . ' dBm'; $data['max_rx'] = number_format((float)$data['max_rx'], 2) . ' dBm'; $data['min_voltage'] = number_format((float)$data['min_voltage'], 2) . ' V'; $data['max_voltage'] = number_format((float)$data['max_voltage'], 2) . ' V'; echo json_encode([ 'success' => true, 'data' => $data ]);