Files
html/api/opus5-blade-wakeup.php

67 lines
2.8 KiB
PHP

<?php
// OPUS5 BLADE WAKEUP - diagnostic + notif Telegram + commande PS
header('Content-Type: application/json');
$R = ['ts'=>date('c'), 'actions'=>[]];
// Read blade-status
$status = @json_decode(@file_get_contents('/var/www/html/api/blade-status.json'), true) ?: [];
$last_seen = $status['last_seen'] ?? null;
$last_age_sec = $last_seen ? (time() - strtotime($last_seen)) : 99999;
$last_age_hours = round($last_age_sec / 3600, 1);
$R['actions'][] = [
'id' => 'diag',
'last_seen' => $last_seen,
'age_hours' => $last_age_hours,
'hostname' => $status['hostname'] ?? '?',
'ip' => $status['ip'] ?? '?',
'user' => $status['user'] ?? '?',
'cpu' => $status['cpu'] ?? '?',
'ram' => $status['ram'] ?? '?',
'status' => $last_age_hours < 1 ? 'HEALTHY' : ($last_age_hours < 24 ? 'STALE' : 'DEAD'),
'root_cause_hypothesis' => $last_age_hours > 24 ? 'PS1 Sentinel Agent task stopped or PAT expired' : 'OK'
];
// Check blade queue
$queue = @json_decode(@file_get_contents('/var/www/html/api/blade-queue.json'), true) ?: [];
$R['actions'][] = ['id'=>'queue', 'pending'=>count($queue)];
// Notif Telegram (bot 8544624912, chat 7605775322 from memory)
$TG_BOT = '8544624912';
$TG_CHAT = '7605775322';
// Token depuis secrets.env
$secrets_raw = @file_get_contents('/etc/weval/secrets.env');
preg_match('/TG_TOKEN=([^\n\r]+)/', $secrets_raw, $tg_match);
$TG_TOKEN = $tg_match[1] ?? '';
if ($TG_TOKEN) {
$msg = "🔴 BLADE IA STALE ({$last_age_hours}h)\nHostname: " . ($status['hostname'] ?? '?') . "\nQueue: " . count($queue) . " tasks pending\n\nWakeup PS on Razer:\nStart-Service -Name \"WevalSentinel\" -ErrorAction SilentlyContinue; & \"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1\"";
$url = "https://api.telegram.org/bot{$TG_TOKEN}/sendMessage";
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => ['chat_id'=>$TG_CHAT, 'text'=>$msg],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5
]);
$resp = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$R['actions'][] = ['id'=>'telegram_notif', 'http'=>$http, 'sent'=>$http === 200];
} else {
$R['actions'][] = ['id'=>'telegram_notif', 'skipped'=>'TG_TOKEN missing in secrets.env'];
}
// Commande PowerShell ready-to-paste
$R['blade_wakeup_ps'] = implode("\n", [
'# Copy-paste this in PowerShell (admin) on Razer Blade:',
'Start-Service -Name "WevalSentinel" -ErrorAction SilentlyContinue',
'& "C:\ProgramData\WEVAL\sentinel-agent.ps1"',
'# OR if task scheduler:',
'Start-ScheduledTask -TaskName "WEVAL-Sentinel"'
]);
// Telegram link alternatif (click-to-send)
$R['telegram_link'] = "https://t.me/wevia_bot?start=blade_wakeup";
echo json_encode($R, JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE);