PD-Guard
Live dual-model · partial_discharge/+/pd_signal*

Catch partial discharge
before it becomes a fault.

Ultrasonic 300-sample signals flow from bay probes over MQTT into Laravel, run dual CNN + XGBoost inference, and stream to a live Filament dashboard. Collect training data without inference — detect live with alerting.

300 samples / reading TLS MQTT:8883 throttle 120/min
LIVE SIGNAL — TR-001 detecting
0150300 samples
MODEL A · CNN
normal 0.93
MODEL B · XGB
normal 0.91
AGREEMENT
agree

HOW IT WORKS

Laravel 12 · Filament 3 · php-mqtt/client · FastAPI
01
Ultrasonic probe
Bay sensor captures 300 integers per reading.
02
MQTT
partial_discharge/+/pd_signal* over TLS.
03
Laravel ingest
Route collect vs detect.
04
Dual inference
CNN + XGBoost, agreement check.
05
Filament live
Realtime chart, status, alerts.

MQTT topics

One channel for training, one for live detection. Listener subscribes to both.

COLLECT — no inference
partial_discharge/+/pd_signal
collect
DETECT — dual-model
partial_discharge/+/pd_signal_detect
is_alert

Everything built in

Live monitoring
300-point chart & device health.
Dual model
CNN 1D + XGBoost agreement.
Data labeling
Filament table with filters.
Role access
super_admin / user, per-device.
curl -X POST https://pdeds.icminovasi.my.id/api/sensor/collect -d '{"device_id":"TR-001","data":[...300]}'
Ready to stream transformer health?
Sign in to assign devices and label training data.

Seed: admin@pdguard.local / password — change on first login.