getConnection();
$login_url = "http://10.255.254.21/login";
$cookie = __DIR__ . "/cookie.txt";
/*
|--------------------------------------------------------------------------
| LOGIN
|--------------------------------------------------------------------------
*/
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $login_url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query([
"username" => "root",
"password" => "@lokal234"
]),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_COOKIEJAR => $cookie,
CURLOPT_COOKIEFILE => $cookie,
]);
$login = curl_exec($ch);
echo "
LOGIN
";
echo htmlspecialchars($login);
curl_close($ch);
/*
|--------------------------------------------------------------------------
| PREPARE INSERT
|--------------------------------------------------------------------------
*/
$stmt = $conn->prepare("
INSERT INTO onu_daily_history
(
sn,
ont_name,
rx_power,
voltage,
min_rx,
max_rx,
min_voltage,
max_voltage,
sample_count,
log_date
)
VALUES
(
:sn,
:ont_name,
:rx_power,
:voltage,
:min_rx,
:max_rx,
:min_voltage,
:max_voltage,
1,
CURDATE()
)
ON DUPLICATE KEY UPDATE
ont_name = VALUES(ont_name),
rx_power = VALUES(rx_power),
voltage = VALUES(voltage),
min_rx = LEAST(min_rx, VALUES(rx_power)),
max_rx = GREATEST(max_rx, VALUES(rx_power)),
min_voltage = LEAST(min_voltage, VALUES(voltage)),
max_voltage = GREATEST(max_voltage, VALUES(voltage)),
sample_count = sample_count + 1,
updated_at = NOW()
");
/*
|--------------------------------------------------------------------------
| PORT GPON
|--------------------------------------------------------------------------
*/
$ports = [1, 2];
foreach ($ports as $port_id) {
$url = "http://10.255.254.21/gponmgmt?form=optical_onu&port_id=" . $port_id;
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
//ini token akan selalu berubah kalo beda web
"x-token: eb5d9d8f66242c63dc353342d3896a95"
]
]);
$response = curl_exec($ch);
curl_close($ch);
$json = json_decode($response, true);
echo "PON {$port_id}
";
if (!isset($json['data']) || empty($json['data'])) {
echo "Tidak ada ONU ditemukan
";
continue;
}
foreach ($json['data'] as $onu) {
$sn = trim($onu['ont_sn'] ?? '');
if (empty($sn)) {
continue;
}
$name = trim($onu['ont_name'] ?? '');
$rx = (float) preg_replace(
'/[^0-9\.\-]/',
'',
$onu['receive_power'] ?? '0'
);
$voltage = (float) preg_replace(
'/[^0-9\.]/',
'',
$onu['work_voltage'] ?? '0'
);
try {
$stmt->execute([
':sn' => $sn,
':ont_name' => $name,
':rx_power' => $rx,
':voltage' => $voltage,
':min_rx' => $rx,
':max_rx' => $rx,
':min_voltage' => $voltage,
':max_voltage' => $voltage
]);
echo "SAVE : {$sn} | RX={$rx} | V={$voltage}
";
} catch (PDOException $e) {
echo "ERROR {$sn} : " . $e->getMessage() . "
";
}
}
}
echo "
";
echo "SELESAI";