{"running":false,"mqtt_connected":true,"total_published":12215,"rate":0.0,"scenario":"normal","uptime":3367,"ws_clients":2,"dpp_history":[],"current_batch":"BATCH-20260417-001","current_product":"BAT-CASE-AL-001","unit_seq":188,"shift":"B","ai_hint":"No anomalies. Plant OEE ~79%. Energy consumption nominal.","streams":[{"id":"pr01_telem","label":"PR01 Process Telemetry","topic":"aurora/line_01_assembly/cell_01/press_PR01/telemetry","area":"Line 01","source":"PLC","unit":"multi","interval":5,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"—","last_ts":1776426512.3114402,"pub_count":280},{"id":"pr01_power","label":"PR01 3-Phase Power","topic":"aurora/line_01_assembly/cell_01/press_PR01/power","area":"Line 01","source":"PLC","unit":"kW","interval":5,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"16.9","last_ts":1776426514.323696,"pub_count":281},{"id":"pr01_energy","label":"PR01 Energy Rollup","topic":"aurora/line_01_assembly/cell_01/press_PR01/energy","area":"Line 01","source":"MES","unit":"kWh","interval":30,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"—","last_ts":1776426518.3509614,"pub_count":60},{"id":"pr01_perf","label":"PR01 Performance KPIs","topic":"aurora/line_01_assembly/cell_01/press_PR01/performance","area":"Line 01","source":"MES","unit":"multi","interval":30,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"—","last_ts":1776426519.0154037,"pub_count":60},{"id":"pr01_spc","label":"PR01 SPC Control Chart","topic":"aurora/line_01_assembly/cell_01/press_PR01/spc","area":"Line 01","source":"QMS","unit":"sigma","interval":15,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"49.973","last_ts":1776426521.1697044,"pub_count":105},{"id":"pr01_lube","label":"PR01 Lubrication System","topic":"aurora/line_01_assembly/cell_01/press_PR01/lube","area":"Line 01","source":"PLC","unit":"multi","interval":30,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"—","last_ts":1776426521.1876614,"pub_count":60},{"id":"pr01_health","label":"PR01 Health Monitoring","topic":"aurora/line_01_assembly/cell_01/press_PR01/health","area":"Line 01","source":"SCADA","unit":"score","interval":30,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"—","last_ts":1776426523.8984234,"pub_count":60},{"id":"pr01_alarms","label":"PR01 Alarms","topic":"aurora/line_01_assembly/cell_01/press_PR01/alarms","area":"Line 01","source":"PLC","unit":"","interval":60,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"—","last_ts":1776426524.1859126,"pub_count":34},{"id":"pr01_anomaly","label":"PR01 Anomaly Score","topic":"aurora/line_01_assembly/analytics/anomaly/press_PR01","area":"Line 01","source":"AI","unit":"score","interval":30,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"—","last_ts":1776426526.7778773,"pub_count":60},{"id":"pr01_pdm","label":"PR01 Predictive Maintenance","topic":"aurora/line_01_assembly/analytics/pdm/press_PR01","area":"Line 01","source":"AI","unit":"days","interval":60,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"—","last_ts":1776426526.8366847,"pub_count":34},{"id":"pr01_process","label":"PR01 MES Process Params","topic":"aurora/line_01_assembly/cell_01/press_PR01/process_params","area":"Line 01","source":"MES","unit":"multi","interval":30,"asset_id":"press_PR01","asset_type":"press","running":true,"value":"—","last_ts":1776426530.8505073,"pub_count":60},{"id":"pr02_telem","label":"PR02 Process Telemetry","topic":"aurora/line_01_assembly/cell_02/press_PR02/telemetry","area":"Line 01","source":"PLC","unit":"multi","interval":5,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"—","last_ts":1776426532.862551,"pub_count":280},{"id":"pr02_power","label":"PR02 3-Phase Power","topic":"aurora/line_01_assembly/cell_02/press_PR02/power","area":"Line 01","source":"PLC","unit":"kW","interval":5,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"17.04","last_ts":1776426536.8746128,"pub_count":283},{"id":"pr02_energy","label":"PR02 Energy Rollup","topic":"aurora/line_01_assembly/cell_02/press_PR02/energy","area":"Line 01","source":"MES","unit":"kWh","interval":30,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"—","last_ts":1776426538.886774,"pub_count":60},{"id":"pr02_perf","label":"PR02 Performance KPIs","topic":"aurora/line_01_assembly/cell_02/press_PR02/performance","area":"Line 01","source":"MES","unit":"multi","interval":30,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"—","last_ts":1776426542.8975544,"pub_count":60},{"id":"pr02_spc","label":"PR02 SPC Control Chart","topic":"aurora/line_01_assembly/cell_02/press_PR02/spc","area":"Line 01","source":"QMS","unit":"sigma","interval":15,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"49.736","last_ts":1776426544.9097922,"pub_count":105},{"id":"pr02_lube","label":"PR02 Lubrication System","topic":"aurora/line_01_assembly/cell_02/press_PR02/lube","area":"Line 01","source":"PLC","unit":"multi","interval":30,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"—","last_ts":1776426548.9263806,"pub_count":60},{"id":"pr02_health","label":"PR02 Health Monitoring","topic":"aurora/line_01_assembly/cell_02/press_PR02/health","area":"Line 01","source":"SCADA","unit":"score","interval":30,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"—","last_ts":1776426550.9384432,"pub_count":60},{"id":"pr02_alarms","label":"PR02 Alarms","topic":"aurora/line_01_assembly/cell_02/press_PR02/alarms","area":"Line 01","source":"PLC","unit":"","interval":60,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"—","last_ts":1776426552.9441776,"pub_count":34},{"id":"pr02_anomaly","label":"PR02 Anomaly Score","topic":"aurora/line_01_assembly/analytics/anomaly/press_PR02","area":"Line 01","source":"AI","unit":"score","interval":30,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"—","last_ts":1776426554.9550695,"pub_count":60},{"id":"pr02_process","label":"PR02 MES Process Params","topic":"aurora/line_01_assembly/cell_02/press_PR02/process_params","area":"Line 01","source":"MES","unit":"multi","interval":30,"asset_id":"press_PR02","asset_type":"press","running":true,"value":"—","last_ts":1776426556.9598668,"pub_count":60},{"id":"cvcv01_telem","label":"Conveyor Cv01 Telemetry","topic":"aurora/line_01_assembly/cell_01/conveyor_CV01/telemetry","area":"line_01_assembly","source":"PLC","unit":"multi","interval":5,"asset_id":"conveyor_CV01","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426558.9712887,"pub_count":281},{"id":"cvcv01_power","label":"Conveyor Cv01 3-Phase Power","topic":"aurora/line_01_assembly/cell_01/conveyor_CV01/power","area":"line_01_assembly","source":"PLC","unit":"kW","interval":5,"asset_id":"conveyor_CV01","asset_type":"conveyor","running":true,"value":"3.62","last_ts":1776426560.9785137,"pub_count":280},{"id":"cvcv01_energy","label":"Conveyor Cv01 Energy","topic":"aurora/line_01_assembly/cell_01/conveyor_CV01/energy","area":"line_01_assembly","source":"MES","unit":"kWh","interval":30,"asset_id":"conveyor_CV01","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426562.9895227,"pub_count":60},{"id":"cvcv01_health","label":"Conveyor Cv01 Health","topic":"aurora/line_01_assembly/cell_01/conveyor_CV01/health","area":"line_01_assembly","source":"SCADA","unit":"score","interval":60,"asset_id":"conveyor_CV01","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426564.9965653,"pub_count":34},{"id":"cvcv01_alarms","label":"Conveyor Cv01 Alarms","topic":"aurora/line_01_assembly/cell_01/conveyor_CV01/alarms","area":"line_01_assembly","source":"PLC","unit":"","interval":60,"asset_id":"conveyor_CV01","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426567.008815,"pub_count":34},{"id":"cvcv02_telem","label":"Conveyor Cv02 Telemetry","topic":"aurora/line_01_assembly/cell_02/conveyor_CV02/telemetry","area":"line_01_assembly","source":"PLC","unit":"multi","interval":5,"asset_id":"conveyor_CV02","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426569.013636,"pub_count":282},{"id":"cvcv02_power","label":"Conveyor Cv02 3-Phase Power","topic":"aurora/line_01_assembly/cell_02/conveyor_CV02/power","area":"line_01_assembly","source":"PLC","unit":"kW","interval":5,"asset_id":"conveyor_CV02","asset_type":"conveyor","running":true,"value":"3.59","last_ts":1776426571.0280008,"pub_count":280},{"id":"cvcv02_energy","label":"Conveyor Cv02 Energy","topic":"aurora/line_01_assembly/cell_02/conveyor_CV02/energy","area":"line_01_assembly","source":"MES","unit":"kWh","interval":30,"asset_id":"conveyor_CV02","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426573.034113,"pub_count":60},{"id":"cvcv02_health","label":"Conveyor Cv02 Health","topic":"aurora/line_01_assembly/cell_02/conveyor_CV02/health","area":"line_01_assembly","source":"SCADA","unit":"score","interval":60,"asset_id":"conveyor_CV02","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426575.0460446,"pub_count":34},{"id":"cvcv02_alarms","label":"Conveyor Cv02 Alarms","topic":"aurora/line_01_assembly/cell_02/conveyor_CV02/alarms","area":"line_01_assembly","source":"PLC","unit":"","interval":60,"asset_id":"conveyor_CV02","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426577.0520213,"pub_count":34},{"id":"cvcv03_telem","label":"Conveyor Cv03 Telemetry","topic":"aurora/line_02_painting/cell_01/conveyor_CV03/telemetry","area":"line_02_painting","source":"PLC","unit":"multi","interval":5,"asset_id":"conveyor_CV03","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426579.0632546,"pub_count":281},{"id":"cvcv03_power","label":"Conveyor Cv03 3-Phase Power","topic":"aurora/line_02_painting/cell_01/conveyor_CV03/power","area":"line_02_painting","source":"PLC","unit":"kW","interval":5,"asset_id":"conveyor_CV03","asset_type":"conveyor","running":true,"value":"2.06","last_ts":1776426581.0769765,"pub_count":281},{"id":"cvcv03_energy","label":"Conveyor Cv03 Energy","topic":"aurora/line_02_painting/cell_01/conveyor_CV03/energy","area":"line_02_painting","source":"MES","unit":"kWh","interval":30,"asset_id":"conveyor_CV03","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426583.089108,"pub_count":60},{"id":"cvcv03_health","label":"Conveyor Cv03 Health","topic":"aurora/line_02_painting/cell_01/conveyor_CV03/health","area":"line_02_painting","source":"SCADA","unit":"score","interval":60,"asset_id":"conveyor_CV03","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426587.1017642,"pub_count":34},{"id":"cvcv03_alarms","label":"Conveyor Cv03 Alarms","topic":"aurora/line_02_painting/cell_01/conveyor_CV03/alarms","area":"line_02_painting","source":"PLC","unit":"","interval":60,"asset_id":"conveyor_CV03","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426589.112923,"pub_count":34},{"id":"cvcv04_telem","label":"Conveyor Cv04 Telemetry","topic":"aurora/line_03_curing/cell_01/conveyor_CV04/telemetry","area":"line_03_curing","source":"PLC","unit":"multi","interval":5,"asset_id":"conveyor_CV04","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426593.1276927,"pub_count":280},{"id":"cvcv04_power","label":"Conveyor Cv04 3-Phase Power","topic":"aurora/line_03_curing/cell_01/conveyor_CV04/power","area":"line_03_curing","source":"PLC","unit":"kW","interval":5,"asset_id":"conveyor_CV04","asset_type":"conveyor","running":true,"value":"1.83","last_ts":1776426595.1397414,"pub_count":279},{"id":"cvcv04_energy","label":"Conveyor Cv04 Energy","topic":"aurora/line_03_curing/cell_01/conveyor_CV04/energy","area":"line_03_curing","source":"MES","unit":"kWh","interval":30,"asset_id":"conveyor_CV04","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426599.151576,"pub_count":59},{"id":"cvcv04_health","label":"Conveyor Cv04 Health","topic":"aurora/line_03_curing/cell_01/conveyor_CV04/health","area":"line_03_curing","source":"SCADA","unit":"score","interval":60,"asset_id":"conveyor_CV04","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426601.1635292,"pub_count":34},{"id":"cvcv04_alarms","label":"Conveyor Cv04 Alarms","topic":"aurora/line_03_curing/cell_01/conveyor_CV04/alarms","area":"line_03_curing","source":"PLC","unit":"","interval":60,"asset_id":"conveyor_CV04","asset_type":"conveyor","running":true,"value":"—","last_ts":1776426605.1864161,"pub_count":34},{"id":"robotr1_telem","label":"robot_R1 Telemetry","topic":"aurora/line_01_assembly/cell_01/robot_R1/telemetry","area":"line_01_assembly","source":"PLC","unit":"multi","interval":5,"asset_id":"robot_R1","asset_type":"robot","running":true,"value":"—","last_ts":1776426607.1973372,"pub_count":279},{"id":"robotr1_power","label":"robot_R1 3-Phase Power","topic":"aurora/line_01_assembly/cell_01/robot_R1/power","area":"line_01_assembly","source":"PLC","unit":"kW","interval":5,"asset_id":"robot_R1","asset_type":"robot","running":true,"value":"5.46","last_ts":1776426611.212338,"pub_count":278},{"id":"robotr1_health","label":"robot_R1 Health","topic":"aurora/line_01_assembly/cell_01/robot_R1/health","area":"line_01_assembly","source":"SCADA","unit":"score","interval":60,"asset_id":"robot_R1","asset_type":"robot","running":true,"value":"—","last_ts":1776426613.223992,"pub_count":34},{"id":"robotr1_alarms","label":"robot_R1 Alarms","topic":"aurora/line_01_assembly/cell_01/robot_R1/alarms","area":"line_01_assembly","source":"PLC","unit":"","interval":60,"asset_id":"robot_R1","asset_type":"robot","running":true,"value":"—","last_ts":1776426615.247668,"pub_count":34},{"id":"robotr1_pdm","label":"robot_R1 Predictive Maintenance","topic":"aurora/line_01_assembly/analytics/pdm/robot_R1","area":"line_01_assembly","source":"AI","unit":"days","interval":60,"asset_id":"robot_R1","asset_type":"robot","running":true,"value":"—","last_ts":1776426615.2882957,"pub_count":34},{"id":"robotr2_telem","label":"robot_R2 Telemetry","topic":"aurora/line_01_assembly/cell_02/robot_R2/telemetry","area":"line_01_assembly","source":"PLC","unit":"multi","interval":5,"asset_id":"robot_R2","asset_type":"robot","running":true,"value":"—","last_ts":1776426617.3050928,"pub_count":279},{"id":"robotr2_power","label":"robot_R2 3-Phase Power","topic":"aurora/line_01_assembly/cell_02/robot_R2/power","area":"line_01_assembly","source":"PLC","unit":"kW","interval":5,"asset_id":"robot_R2","asset_type":"robot","running":true,"value":"5.47","last_ts":1776426617.3184884,"pub_count":278},{"id":"robotr2_health","label":"robot_R2 Health","topic":"aurora/line_01_assembly/cell_02/robot_R2/health","area":"line_01_assembly","source":"SCADA","unit":"score","interval":60,"asset_id":"robot_R2","asset_type":"robot","running":true,"value":"—","last_ts":1776426619.5136752,"pub_count":34},{"id":"robotr2_alarms","label":"robot_R2 Alarms","topic":"aurora/line_01_assembly/cell_02/robot_R2/alarms","area":"line_01_assembly","source":"PLC","unit":"","interval":60,"asset_id":"robot_R2","asset_type":"robot","running":true,"value":"—","last_ts":1776426619.5636344,"pub_count":34},{"id":"robotr2_pdm","label":"robot_R2 Predictive Maintenance","topic":"aurora/line_01_assembly/analytics/pdm/robot_R2","area":"line_01_assembly","source":"AI","unit":"days","interval":60,"asset_id":"robot_R2","asset_type":"robot","running":true,"value":"—","last_ts":1776426621.611086,"pub_count":34},{"id":"robotr3_telem","label":"robot_R3 Telemetry","topic":"aurora/line_02_painting/cell_01/robot_R3/telemetry","area":"line_02_painting","source":"PLC","unit":"multi","interval":5,"asset_id":"robot_R3","asset_type":"robot","running":true,"value":"—","last_ts":1776426621.715707,"pub_count":280},{"id":"robotr3_power","label":"robot_R3 3-Phase Power","topic":"aurora/line_02_painting/cell_01/robot_R3/power","area":"line_02_painting","source":"PLC","unit":"kW","interval":5,"asset_id":"robot_R3","asset_type":"robot","running":true,"value":"4.15","last_ts":1776426623.733088,"pub_count":280},{"id":"robotr3_health","label":"robot_R3 Health","topic":"aurora/line_02_painting/cell_01/robot_R3/health","area":"line_02_painting","source":"SCADA","unit":"score","interval":60,"asset_id":"robot_R3","asset_type":"robot","running":true,"value":"—","last_ts":1776426623.7517624,"pub_count":34},{"id":"robotr3_alarms","label":"robot_R3 Alarms","topic":"aurora/line_02_painting/cell_01/robot_R3/alarms","area":"line_02_painting","source":"PLC","unit":"","interval":60,"asset_id":"robot_R3","asset_type":"robot","running":true,"value":"—","last_ts":1776426625.7737103,"pub_count":34},{"id":"robotr3_pdm","label":"robot_R3 Predictive Maintenance","topic":"aurora/line_02_painting/analytics/pdm/robot_R3","area":"line_02_painting","source":"AI","unit":"days","interval":60,"asset_id":"robot_R3","asset_type":"robot","running":true,"value":"—","last_ts":1776426625.8011286,"pub_count":34},{"id":"sprayersp01_telem","label":"sprayer_SP01 Telemetry","topic":"aurora/line_02_painting/cell_01/sprayer_SP01/telemetry","area":"line_02_painting","source":"PLC","unit":"multi","interval":5,"asset_id":"sprayer_SP01","asset_type":"sprayer","running":true,"value":"—","last_ts":1776426627.8224235,"pub_count":280},{"id":"sprayersp01_power","label":"sprayer_SP01 3-Phase Power","topic":"aurora/line_02_painting/cell_01/sprayer_SP01/power","area":"line_02_painting","source":"PLC","unit":"kW","interval":5,"asset_id":"sprayer_SP01","asset_type":"sprayer","running":true,"value":"2.91","last_ts":1776426627.841915,"pub_count":278},{"id":"sprayersp01_energy","label":"sprayer_SP01 Energy","topic":"aurora/line_02_painting/cell_01/sprayer_SP01/energy","area":"line_02_painting","source":"MES","unit":"kWh","interval":30,"asset_id":"sprayer_SP01","asset_type":"sprayer","running":true,"value":"—","last_ts":1776426629.8728147,"pub_count":59},{"id":"sprayersp01_health","label":"sprayer_SP01 Health","topic":"aurora/line_02_painting/cell_01/sprayer_SP01/health","area":"line_02_painting","source":"SCADA","unit":"score","interval":60,"asset_id":"sprayer_SP01","asset_type":"sprayer","running":true,"value":"—","last_ts":1776426629.8885028,"pub_count":34},{"id":"sprayersp01_alarms","label":"sprayer_SP01 Alarms","topic":"aurora/line_02_painting/cell_01/sprayer_SP01/alarms","area":"line_02_painting","source":"PLC","unit":"","interval":60,"asset_id":"sprayer_SP01","asset_type":"sprayer","running":true,"value":"—","last_ts":1776426629.9056642,"pub_count":34},{"id":"sprayersp02_telem","label":"sprayer_SP02 Telemetry","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/telemetry","area":"line_02_painting","source":"PLC","unit":"multi","interval":5,"asset_id":"sprayer_SP02","asset_type":"sprayer","running":true,"value":"—","last_ts":1776426629.922773,"pub_count":280},{"id":"sprayersp02_power","label":"sprayer_SP02 3-Phase Power","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/power","area":"line_02_painting","source":"PLC","unit":"kW","interval":5,"asset_id":"sprayer_SP02","asset_type":"sprayer","running":true,"value":"2.8","last_ts":1776426629.9389172,"pub_count":280},{"id":"sprayersp02_energy","label":"sprayer_SP02 Energy","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/energy","area":"line_02_painting","source":"MES","unit":"kWh","interval":30,"asset_id":"sprayer_SP02","asset_type":"sprayer","running":true,"value":"—","last_ts":1776426629.955557,"pub_count":59},{"id":"sprayersp02_health","label":"sprayer_SP02 Health","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/health","area":"line_02_painting","source":"SCADA","unit":"score","interval":60,"asset_id":"sprayer_SP02","asset_type":"sprayer","running":true,"value":"—","last_ts":1776426629.9721687,"pub_count":34},{"id":"sprayersp02_alarms","label":"sprayer_SP02 Alarms","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/alarms","area":"line_02_painting","source":"PLC","unit":"","interval":60,"asset_id":"sprayer_SP02","asset_type":"sprayer","running":true,"value":"—","last_ts":1776426630.0126705,"pub_count":34},{"id":"ov01_telem","label":"OV01 Oven Telemetry","topic":"aurora/line_03_curing/cell_01/oven_OV01/telemetry","area":"line_03_curing","source":"PLC","unit":"multi","interval":5,"asset_id":"oven_OV01","asset_type":"oven","running":true,"value":"—","last_ts":1776426630.0292156,"pub_count":279},{"id":"ov01_power","label":"OV01 3-Phase Power","topic":"aurora/line_03_curing/cell_01/oven_OV01/power","area":"line_03_curing","source":"PLC","unit":"kW","interval":5,"asset_id":"oven_OV01","asset_type":"oven","running":true,"value":"43.81","last_ts":1776426630.0470357,"pub_count":279},{"id":"ov01_energy","label":"OV01 Energy Rollup","topic":"aurora/line_03_curing/cell_01/oven_OV01/energy","area":"line_03_curing","source":"MES","unit":"kWh","interval":30,"asset_id":"oven_OV01","asset_type":"oven","running":true,"value":"—","last_ts":1776426630.0648766,"pub_count":59},{"id":"ov01_health","label":"OV01 Health Monitoring","topic":"aurora/line_03_curing/cell_01/oven_OV01/health","area":"line_03_curing","source":"SCADA","unit":"score","interval":30,"asset_id":"oven_OV01","asset_type":"oven","running":true,"value":"—","last_ts":1776426630.092457,"pub_count":59},{"id":"ov01_perf","label":"OV01 Performance KPIs","topic":"aurora/line_03_curing/cell_01/oven_OV01/performance","area":"line_03_curing","source":"MES","unit":"multi","interval":30,"asset_id":"oven_OV01","asset_type":"oven","running":true,"value":"—","last_ts":1776426630.1060023,"pub_count":59},{"id":"ov01_alarms","label":"OV01 Alarms","topic":"aurora/line_03_curing/cell_01/oven_OV01/alarms","area":"line_03_curing","source":"PLC","unit":"","interval":60,"asset_id":"oven_OV01","asset_type":"oven","running":true,"value":"—","last_ts":1776426630.1230047,"pub_count":34},{"id":"ov01_anomaly","label":"OV01 Anomaly Score","topic":"aurora/line_03_curing/analytics/anomaly/oven_OV01","area":"line_03_curing","source":"AI","unit":"score","interval":30,"asset_id":"oven_OV01","asset_type":"oven","running":true,"value":"—","last_ts":1776426630.1387408,"pub_count":59},{"id":"ov01_pdm","label":"OV01 Predictive Maintenance","topic":"aurora/line_03_curing/analytics/pdm/oven_OV01","area":"line_03_curing","source":"AI","unit":"days","interval":60,"asset_id":"oven_OV01","asset_type":"oven","running":true,"value":"—","last_ts":1776426630.1519904,"pub_count":34},{"id":"cp01_telem","label":"CP01 Compressor Telemetry","topic":"aurora/utilities/compressor_CP01/telemetry","area":"utilities","source":"PLC","unit":"multi","interval":10,"asset_id":"compressor_CP01","asset_type":"compressor","running":true,"value":"—","last_ts":1776426630.1740503,"pub_count":150},{"id":"cp01_power","label":"CP01 3-Phase Power","topic":"aurora/utilities/compressor_CP01/power","area":"utilities","source":"PLC","unit":"kW","interval":5,"asset_id":"compressor_CP01","asset_type":"compressor","running":true,"value":"22.01","last_ts":1776426630.2045424,"pub_count":281},{"id":"cp01_energy","label":"CP01 Energy Rollup","topic":"aurora/utilities/compressor_CP01/energy","area":"utilities","source":"MES","unit":"kWh","interval":30,"asset_id":"compressor_CP01","asset_type":"compressor","running":true,"value":"—","last_ts":1776426630.2337537,"pub_count":59},{"id":"cp01_health","label":"CP01 Health","topic":"aurora/utilities/compressor_CP01/health","area":"utilities","source":"SCADA","unit":"score","interval":60,"asset_id":"compressor_CP01","asset_type":"compressor","running":true,"value":"—","last_ts":1776426630.2527676,"pub_count":34},{"id":"cp01_alarms","label":"CP01 Alarms","topic":"aurora/utilities/compressor_CP01/alarms","area":"utilities","source":"PLC","unit":"","interval":60,"asset_id":"compressor_CP01","asset_type":"compressor","running":true,"value":"—","last_ts":1776426630.2659748,"pub_count":34},{"id":"cp01_anomaly","label":"CP01 Energy Anomaly","topic":"aurora/utilities/analytics/anomaly/compressor_CP01","area":"utilities","source":"AI","unit":"score","interval":30,"asset_id":"compressor_CP01","asset_type":"compressor","running":true,"value":"—","last_ts":1776426630.2826693,"pub_count":59},{"id":"cp01_pdm","label":"CP01 Predictive Maintenance","topic":"aurora/utilities/analytics/pdm/compressor_CP01","area":"utilities","source":"AI","unit":"days","interval":60,"asset_id":"compressor_CP01","asset_type":"compressor","running":true,"value":"—","last_ts":1776426630.2963364,"pub_count":34},{"id":"air_network","label":"Air Network Monitoring","topic":"aurora/utilities/air_network/pressure","area":"utilities","source":"PLC","unit":"bar","interval":10,"asset_id":"compressor_CP01","asset_type":"compressor","running":true,"value":"—","last_ts":1776426630.3167458,"pub_count":150},{"id":"cmm01_result","label":"CMM01 Inspection Result","topic":"aurora/line_04_inspection/cell_01/vision_CMM01/result","area":"line_04_inspection","source":"PLC","unit":"","interval":15,"asset_id":"vision_CMM01","asset_type":"inspection","running":true,"value":"PASS","last_ts":1776426630.3295567,"pub_count":105},{"id":"cmm01_dims","label":"CMM01 Dimensional Measurements","topic":"aurora/line_04_inspection/cell_01/vision_CMM01/dimensions","area":"line_04_inspection","source":"QMS","unit":"mm","interval":15,"asset_id":"vision_CMM01","asset_type":"inspection","running":true,"value":"—","last_ts":1776426630.3455412,"pub_count":105},{"id":"cmm01_power","label":"CMM01 Power","topic":"aurora/line_04_inspection/cell_01/vision_CMM01/power","area":"line_04_inspection","source":"PLC","unit":"kW","interval":30,"asset_id":"vision_CMM01","asset_type":"inspection","running":true,"value":"1.15","last_ts":1776426630.3588655,"pub_count":59},{"id":"cmm01_health","label":"CMM01 Health","topic":"aurora/line_04_inspection/cell_01/vision_CMM01/health","area":"line_04_inspection","source":"SCADA","unit":"score","interval":60,"asset_id":"vision_CMM01","asset_type":"inspection","running":true,"value":"—","last_ts":1776426630.3740067,"pub_count":34},{"id":"lt01_result","label":"LT01 Leak Test Result","topic":"aurora/line_04_inspection/cell_02/leak_test_LT01/result","area":"line_04_inspection","source":"PLC","unit":"","interval":20,"asset_id":"leak_test_LT01","asset_type":"inspection","running":true,"value":"PASS","last_ts":1776426630.389542,"pub_count":82},{"id":"lt01_power","label":"LT01 Power","topic":"aurora/line_04_inspection/cell_02/leak_test_LT01/power","area":"line_04_inspection","source":"PLC","unit":"kW","interval":30,"asset_id":"leak_test_LT01","asset_type":"inspection","running":true,"value":"0.78","last_ts":1776426630.4029815,"pub_count":59},{"id":"lt01_health","label":"LT01 Health","topic":"aurora/line_04_inspection/cell_02/leak_test_LT01/health","area":"line_04_inspection","source":"SCADA","unit":"score","interval":60,"asset_id":"leak_test_LT01","asset_type":"inspection","running":true,"value":"—","last_ts":1776426630.4202316,"pub_count":34},{"id":"spc_wall_th","label":"SPC — Wall Thickness","topic":"aurora/quality/spc/wall_thickness","area":"quality","source":"QMS","unit":"mm","interval":20,"asset_id":"vision_CMM01","asset_type":"quality","running":true,"value":"2.0","last_ts":1776426630.4367456,"pub_count":82},{"id":"spc_coat_th","label":"SPC — Coat Thickness","topic":"aurora/quality/spc/coat_thickness","area":"quality","source":"QMS","unit":"um","interval":20,"asset_id":"sprayer_SP01","asset_type":"quality","running":true,"value":"79.812","last_ts":1776426630.458708,"pub_count":82},{"id":"spc_pr01_force","label":"SPC — PR01 Press Force","topic":"aurora/quality/spc/press_force_pr01","area":"quality","source":"QMS","unit":"kN","interval":10,"asset_id":"press_PR01","asset_type":"quality","running":true,"value":"751.66","last_ts":1776426630.4950476,"pub_count":149},{"id":"spc_draw_depth","label":"SPC — Draw Depth","topic":"aurora/quality/spc/draw_depth","area":"quality","source":"QMS","unit":"mm","interval":10,"asset_id":"press_PR01","asset_type":"quality","running":true,"value":"85.454","last_ts":1776426630.522966,"pub_count":149},{"id":"rfid_line01_in","label":"RFID Line 01 Entry","topic":"aurora/line_01_assembly/rfid/entry","area":"Line 01","source":"PLC","unit":"","interval":10,"asset_id":"rfid_reader_01","asset_type":"rfid","running":true,"value":"—","last_ts":1776426630.542385,"pub_count":149},{"id":"rfid_line01_out","label":"RFID Line 01 Exit","topic":"aurora/line_01_assembly/rfid/exit","area":"Line 01","source":"PLC","unit":"","interval":10,"asset_id":"rfid_reader_01","asset_type":"rfid","running":true,"value":"—","last_ts":1776426630.567181,"pub_count":150},{"id":"rfid_line04_in","label":"RFID Inspection Entry","topic":"aurora/line_04_inspection/rfid/entry","area":"line_04_inspection","source":"PLC","unit":"","interval":15,"asset_id":"rfid_reader_02","asset_type":"rfid","running":true,"value":"—","last_ts":1776426630.580346,"pub_count":104},{"id":"env_floor","label":"Factory Floor Environment","topic":"aurora/plant/environment/floor","area":"plant","source":"SCADA","unit":"multi","interval":60,"asset_id":"plant","asset_type":"environmental","running":true,"value":"—","last_ts":1776426630.5925417,"pub_count":34},{"id":"erp_order","label":"ERP Production Order","topic":"aurora/erp/production_orders/current","area":"ERP","source":"ERP","unit":"","interval":30,"asset_id":"plant","asset_type":"ERP","running":true,"value":"—","last_ts":1776426630.6051288,"pub_count":59},{"id":"erp_materials","label":"ERP Material Consumption","topic":"aurora/erp/materials/consumption","area":"ERP","source":"ERP","unit":"kg","interval":60,"asset_id":"plant","asset_type":"ERP","running":true,"value":"—","last_ts":1776426630.6173053,"pub_count":34},{"id":"erp_holds","label":"ERP Quality Holds","topic":"aurora/erp/quality/holds","area":"ERP","source":"ERP","unit":"","interval":30,"asset_id":"plant","asset_type":"ERP","running":true,"value":"—","last_ts":1776426630.6295006,"pub_count":59},{"id":"mes_batch","label":"MES Batch Tracking","topic":"aurora/mes/batch_tracking","area":"MES","source":"MES","unit":"","interval":20,"asset_id":"plant","asset_type":"MES","running":true,"value":"—","last_ts":1776426630.6415489,"pub_count":82},{"id":"mes_wo","label":"MES Work Order","topic":"aurora/mes/work_orders/active","area":"MES","source":"MES","unit":"","interval":30,"asset_id":"plant","asset_type":"MES","running":true,"value":"—","last_ts":1776426630.6559174,"pub_count":59},{"id":"mes_shift","label":"MES Shift Summary","topic":"aurora/mes/shift/summary","area":"MES","source":"MES","unit":"","interval":60,"asset_id":"plant","asset_type":"MES","running":true,"value":"80.1","last_ts":1776426630.6721644,"pub_count":34},{"id":"dpp_unit","label":"DPP Unit Event","topic":"aurora/line_04_inspection/cell_02/process/step_status","area":"line_04_inspection","source":"MES","unit":"","interval":20,"asset_id":"plant","asset_type":"DPP","running":true,"value":"—","last_ts":1776426630.6888187,"pub_count":82},{"id":"plant_energy","label":"Plant Total Energy","topic":"aurora/plant/energy/total","area":"plant","source":"SCADA","unit":"kWh","interval":30,"asset_id":"plant","asset_type":"plant","running":true,"value":"—","last_ts":1776426630.7022965,"pub_count":59},{"id":"plant_oee","label":"Plant OEE","topic":"aurora/plant/kpi/oee","area":"plant","source":"MES","unit":"pct","interval":30,"asset_id":"plant","asset_type":"plant","running":true,"value":"81.5","last_ts":1776426630.714713,"pub_count":59},{"id":"plant_process","label":"Plant Process Status","topic":"aurora/process/unit_id","area":"plant","source":"MES","unit":"","interval":10,"asset_id":"plant","asset_type":"plant","running":true,"value":"—","last_ts":1776426630.7306924,"pub_count":149},{"id":"line_01_assembly_energy","label":"line_01_assembly Line Energy Rollup","topic":"aurora/line_01_assembly/energy/total","area":"line_01_assembly","source":"SCADA","unit":"kWh","interval":30,"asset_id":"line_01_assembly","asset_type":"line","running":true,"value":"48.6","last_ts":1776426630.7459126,"pub_count":59},{"id":"line_02_painting_energy","label":"line_02_painting Line Energy Rollup","topic":"aurora/line_02_painting/energy/total","area":"line_02_painting","source":"SCADA","unit":"kWh","interval":30,"asset_id":"line_02_painting","asset_type":"line","running":true,"value":"12.3","last_ts":1776426630.7632844,"pub_count":59},{"id":"line_03_curing_energy","label":"line_03_curing Line Energy Rollup","topic":"aurora/line_03_curing/energy/total","area":"line_03_curing","source":"SCADA","unit":"kWh","interval":30,"asset_id":"line_03_curing","asset_type":"line","running":true,"value":"47.0","last_ts":1776426630.7835193,"pub_count":59},{"id":"line_04_inspection_energy","label":"line_04_inspection Line Energy Rollup","topic":"aurora/line_04_inspection/energy/total","area":"line_04_inspection","source":"SCADA","unit":"kWh","interval":30,"asset_id":"line_04_inspection","asset_type":"line","running":true,"value":"1.8","last_ts":1776426630.7958813,"pub_count":59}],"scenarios":[{"id":"normal","label":"Normal Operation","description":"All assets operating within normal parameters. Baseline for comparison.","affected":[],"ai_hint":"No anomalies. Plant OEE ~79%. Energy consumption nominal.","data_sources":["PLC","MES","ERP","AI"],"kpi_impact":{"oee":79,"energy":"nominal","quality":98},"what_it_shows":"Healthy baseline: all 111 UNS streams within expected ranges, OEE 79%, energy at nominal, zero active alarms. Every asset health score ≥ 90%. This is the reference state against which AI detects every other scenario.","how_to_demo":"1. Start here before showing any fault. 2. Open Streams tab — filter to any asset (e.g. PR01) and show all readings in green/nominal. 3. Open Energy tab — plant kW matches expected shift load, 3-phase currents balanced, THD < 3%. 4. Open Health tab — all bars above 90%. 5. Show the AI hint at top: 'No anomalies'. 6. Say: 'This is what the AI sees as normal. Every scenario after this deviates from this baseline.'","steps":["Open Streams tab","Filter by label 'press_PR01' — show hydraulic_pressure_bar = 210, cycle_time_s = 4.2","Switch to Energy tab — show CP01 total_kw = 22, PF = 0.91","Switch to Health tab — all assets green","Point to AI Hint: 'No anomalies'"],"visual_indicators":"All stream values green. Health bars > 90%. AI hint shows 'No anomalies'. OEE 79% in header. Plant Power reading matches expected shift load.","root_cause":"No fault. All systems nominal.","ai_answer":"Normal plant state: PR01 hydraulic_pressure 210 bar, cycle_time 4.2 s, OEE 79.3%. OV01 all zone temps within ±2°C of setpoint. CP01 power 22 kW, PF 0.91, THD 2.1%. All robot position errors < 0.2mm. No health scores below 85%. Rolling 24h FPY: 98.2%. AI anomaly scores all LOW (< 0.1). Energy cost rate: €18.4/hr.","affected_streams":["aurora/plant/L01/press_PR01/telemetry","aurora/plant/L03/oven_OV01/telemetry","aurora/plant/energy/CP01/power","aurora/plant/health/*/pdm"]},{"id":"press_PR01_hydraulic_degradation","label":"PR01 — Hydraulic Pump Wear (Early Stage)","description":"PR01 hydraulic pressure slowly declining. Oil temp rising. Pump efficiency dropping. Classic early-stage hydraulic pump wear — catches before alarm threshold.","affected":["press_PR01"],"ai_hint":"Pressure trending down -0.8 bar/day over 3 days. Oil temp +3°C. Pump efficiency -12%. Recommend hydraulic pump inspection within 5 days.","data_sources":["PLC","SCADA","AI"],"kpi_impact":{"oee":76,"energy":"nominal","quality":97},"what_it_shows":"Sub-threshold degradation that rules-based SCADA alarms completely miss. The SCADA alarm limit is 192 bar — pressure is at 196 bar so no alarm fires. But the AI detects a 3-day downward trend of -0.8 bar/day. Without AI, this pump fails unplanned in ~5 days. With AI, maintenance is scheduled proactively during next planned stop.","how_to_demo":"1. Switch to this scenario. 2. Open Streams tab, filter 'press_PR01'. 3. Point to hydraulic_pressure_bar = 196 (alarm limit 192 — no alarm). 4. Point to oil_temperature_c = 53 (nominal 50°C). 5. Point to pump_efficiency_pct = 74 (nominal 85%). 6. Switch to Health tab — HydraulicPump bar at 78%. 7. Show PdM stream — RUL 5 days, urgency SOON. 8. Ask the AI the question below and show the answer.","steps":["Switch scenario → 'PR01 Hydraulic Pump Wear'","Streams tab → filter 'press_PR01' → show hydraulic_pressure_bar, oil_temperature_c, pump_efficiency_pct","Health tab → HydraulicPump = 78% (yellow)","PdM row: RUL 5d, SOON badge","Ask AI the question → show answer with €-impact"],"visual_indicators":"Streams tab: hydraulic_pressure_bar just above alarm threshold (196 vs 192 limit). Health tab: HydraulicPump component bar yellow at ~78%. PdM tab: RUL = 5 days, urgency = SOON. No active alarms — this is the point.","root_cause":"Hydraulic pump piston seal wear causing internal leakage. Oil temp rise confirms energy lost to heat rather than hydraulic work.","ai_answer":"Root cause: Progressive internal wear of the hydraulic pump piston seals. Evidence: pressure 196 bar (nominal 210, alarm 192) trending -0.8 bar/day for 3 days; oil temp +3°C above baseline (heat generated by internal leakage); pump efficiency -12% (measuring output flow vs motor input power). SCADA alarm will not fire until 192 bar — estimated 5 days at current trend. Recommended action: Schedule pump inspection at next planned stop (within 48h). Check suction strainer, measure volumetric efficiency, replace if < 88%. If ignored: pump failure causes unplanned downtime of ~4h + €2,800 repair cost + 180 units lost production. Preventive action cost: €420 (2h labour + filter).","affected_streams":["aurora/plant/L01/press_PR01/telemetry → hydraulic_pressure_bar, oil_temperature_c, pump_efficiency_pct","aurora/plant/health/press_PR01/pdm → HydraulicPump RUL","aurora/plant/L01/press_PR01/performance → cycle_time_s (slightly elevated)"]},{"id":"oven_zone2_heater_failure","label":"OV01 — Zone 2 Heater Element Failure","description":"Zone 2 temperature dropped 110°C below setpoint. Parts curing in zone 2 will be undercured. Downstream quality risk. MES triggers batch hold.","affected":["oven_OV01"],"ai_hint":"Zone 2 temp = 90°C vs 200°C setpoint. Zones 1/3/4 normal. Heater element failure. All parts in current batch should be placed on quality hold. Estimated cure deficiency: 55% of required dwell time at temperature.","data_sources":["PLC","MES","ERP","AI"],"kpi_impact":{"oee":71,"energy":"reduced_zone2","quality":72},"what_it_shows":"Multi-system correlation across four data layers: OV01 PLC telemetry (zone temp drop), MES batch system (automatic batch hold triggered), ERP SAP (quality hold document created), DPP (every unit that passed through zone 2 flagged). No human action required — the integration does it automatically. AI calculates cure deficiency and quantifies how many units are at risk.","how_to_demo":"1. Switch to this scenario. 2. Streams tab → filter 'oven_OV01' → show zone_1_temp=182°C, zone_2_temp=90°C (setpoint 200), zone_3_temp=171°C, zone_4_temp=201°C. 3. ERP/MES tab → show batch_status = ON_HOLD, quality_hold_active = true. 4. DPP tab / Feed → show units flagged. 5. Ask AI the question → it calculates cure deficiency and recommends disposition.","steps":["Switch scenario → 'OV01 Zone 2 Heater Failure'","Streams tab → filter 'oven_OV01' → zone_2_temp_c = 90 (red)","ERP/MES tab → batch status = ON_HOLD","Quality tab → FPY dropped to 72%","Ask AI → cure deficiency + disposition logic"],"visual_indicators":"Streams tab: zone_2_temp_c = 90 (red, setpoint 200). ERP/MES tab: batch_status = ON_HOLD, quality_hold_active = true. Product flow bar: Curing node turns red. AI hint: cure deficiency warning.","root_cause":"Zone 2 heating element open-circuit failure. Element fatigue at 90% of rated life. Power SSR shows no current draw on zone 2 circuit.","ai_answer":"Zone 2 heater element has failed (resistance open-circuit, confirmed by zero current draw on zone 2 SSR). Zone 2 temp 90°C vs 200°C setpoint — a 110°C shortfall. Cure specification: 200°C for minimum 6.4 min per zone. At 90°C, curing reaction rate (Arrhenius) is ~8% of nominal — effectively no cure in zone 2. Impact on current batch BATCH-20260417-001: 234 units produced since fault onset, all have ~55% cure deficiency. Recommendation: (1) STOP line immediately, (2) Place full batch on quality hold, (3) Destructive test 5 units — measure cross-link density, (4) If < 60% of spec: scrap batch (cost ~€14,000), (5) If 60-80%: re-cure at 210°C for 8 min in secondary oven. Heater repair: replace element (30 min, €85 part). Root cause: Element fatigue — check replacement schedule (expected life 8,000h, current age 7,200h).","affected_streams":["aurora/plant/L03/oven_OV01/telemetry → zone_2_temp_c (90 vs 200°C)","aurora/mes/batch/BATCH-20260417-001 → batch_status=ON_HOLD","aurora/erp/quality/holds → hold_id, batch_ref, units_affected","aurora/plant/L04/inspection_CMM01/dpp → units flagged in window"]},{"id":"paint_filter_blockage","label":"SP02 — Paint Filter Progressive Blockage","description":"SP02 paint filter differential pressure rising over 2 hours. Atomisation pressure dropping. Coat thickness falling below 60µm minimum. AI correlates filter DP → coat thickness.","affected":["sprayer_SP02"],"ai_hint":"Filter DP: 0.68 bar (limit 0.5 bar). Coat thickness: 45µm (min 60µm). Atomisation pressure: 1.9 bar (setpoint 3.0 bar). Replace filter immediately, quality hold on last 45 min of production.","data_sources":["PLC","QMS","MES","AI"],"kpi_impact":{"oee":77,"energy":"nominal","quality":81},"what_it_shows":"Gradual drift detected by correlating two separate streams that neither individually would alarm on fast enough. The filter_dp stream shows slow rise (0.12 → 0.68 bar over 2 hours). The coat_thickness stream shows slow fall (80 → 45µm over same window). AI computes correlation coefficient (r = -0.94) and issues diagnosis. A traditional threshold alarm on coat_thickness would only fire after 30 min of out-of-spec production.","how_to_demo":"1. Switch scenario. 2. Streams tab → filter 'sprayer_SP02' → show filter_dp_bar = 0.68 (rising), coat_thickness_um = 45 (minimum 60). 3. Health tab → FilterUnit at 32% (red). 4. Quality tab → FPY falling, coat_uniformity_pct declining. 5. Ask AI the question → shows correlated root cause and affected time window.","steps":["Switch scenario → 'SP02 Filter Blockage'","Streams tab → filter 'sprayer_SP02' → filter_dp_bar high, coat_thickness_um low","Health tab → FilterUnit = 32% (red)","Quality tab → SPC out of control on coat_thickness","Ask AI → correlation r=-0.94, 338 parts affected, rework cost"],"visual_indicators":"Streams tab: filter_dp_bar = 0.68 (orange/red), coat_thickness_um = 45 (below 60 min, red). Health tab: FilterUnit bar red at 32%. Quality tab: FPY dipping, coat thickness SPC out of control. AI hint: filter blockage + quality hold.","root_cause":"Paint filter clogged with pigment solids. Root cause of rapid blocking: filter replacement interval too long for current paint throughput rate.","ai_answer":"Root cause: SP02 paint filter blocked by accumulated paint solids and pigment agglomeration. Evidence: Filter DP rose from 0.12 bar (clean) to 0.68 bar (blocked limit 0.5 bar) over 127 minutes — a 467% increase. This restricted atomisation air pressure from 3.0 bar setpoint to 1.9 bar, reducing paint atomisation quality (larger droplet size → thinner, uneven coat). Coat thickness correlation: r = -0.94 between filter_dp and coat_thickness — highly causal. Affected production window: last 45 minutes (approx 338 parts). Parts in window have coat_thickness 45-58µm vs minimum 60µm spec — 100% of window is non-conforming. Rework cost estimate: €2.4k (re-spray + cure cycle). Action: (1) Replace SP02 filter now (5 min, €12 part), (2) Quality hold on last 45-min batch window, (3) Visual inspection + re-spray at thickness gauge. Filter replacement interval: every 8h at current paint throughput (current interval was 14h — halve it).","affected_streams":["aurora/plant/L02/sprayer_SP02/telemetry → filter_dp_bar (0.68), coat_thickness_um (45), atomisation_pressure_bar (1.9)","aurora/plant/health/sprayer_SP02/pdm → FilterUnit health 32%","aurora/plant/qms/spc → coat_thickness SPC chart out of control"]},{"id":"conveyor_cv01_jam","label":"CV01 — Belt Jam (Line 1 Cell 1 Blocked)","description":"CV01 belt stopped. Press PR01 starved of parts. Line 1 Cell 1 production halted. Shows cascading throughput impact and AI recovery sequencing.","affected":["conveyor_CV01","press_PR01"],"ai_hint":"CV01 speed = 0 m/s. Press PR01 cycle count frozen. Estimated production loss: 7.5 units/min. Recovery: check belt tension, clear jam, restart in sequence CV01 → PR01. ETA to recovery: 15-20 min.","data_sources":["PLC","MES","ERP","AI"],"kpi_impact":{"oee":58,"energy":"reduced_line1","quality":99},"what_it_shows":"Hard fault with immediate cascading throughput impact across two assets. CV01 jam stops part flow → PR01 enters 'Starved' state → cycle count stops → MES work order accumulates downtime minutes → ERP production order completion % freezes. Shows AI-driven recovery planning that gives the operator a prioritised LOTO + restart sequence rather than leaving them to figure it out.","how_to_demo":"1. Switch scenario. 2. Streams tab → filter 'conveyor_CV01' → speed_m_s = 0, jam_detected = true, belt_tension_n = 200. 3. Filter 'press_PR01' → operational_status = 'Starved', cycle_count frozen. 4. ERP/MES tab → downtime_min increasing, work order status = DOWNTIME. 5. Ask AI the question → get full LOTO + restart sequence with time estimate.","steps":["Switch scenario → 'CV01 Belt Jam'","Streams tab → CV01: speed=0, jam_detected=true, belt_tension=200N","Streams tab → PR01: operational_status=Starved","ERP/MES tab → WO downtime_min counting up","Ask AI → LOTO sequence + recovery time + €/min impact"],"visual_indicators":"Streams tab: CV01 speed_m_s = 0 (red), jam_detected = true. PR01 operational_status = Starved. ERP/MES tab: downtime_min increasing. OEE in header dropped to 58%. Product flow bar: Pressing node red.","root_cause":"Foreign object or part misalignment in CV01 belt return section. Belt tension at 200N (normal 120N) confirms lodged object pulling belt tight.","ai_answer":"CV01 belt jam confirmed: speed = 0 m/s, jam_detected = true, belt_tension_n = 200N (normal 120N — part wedged in return section). Cascade: PR01 parts buffer emptied in ~90 sec after jam → PR01 operational_status = Starved → PR01 OEE contribution = 0. Current production loss rate: 7.5 units/min × €28/unit = €210/min or €12,600/hr. Recovery sequence: (1) LOTO CV01 isolator (Panel A, Switch 3) — 2 min. (2) Inspect belt at return roller zone (most common jam point) — 3 min. (3) Remove jammed part manually — 2 min. (4) Check belt alignment (re-tension if > 180N after clearing). (5) Release LOTO, start CV01 at 20% speed for 30 sec (test run) — 3 min. (6) Resume normal speed, confirm PR01 restarts auto from Starved → Running. (7) Log downtime in MES WO. Total estimated recovery: 15-18 min = €2,625-€3,150 production loss. Remaining batch (156 units): achievable if recovered within 21 min — shift OEE recoverable to ~71%.","affected_streams":["aurora/plant/L01/conveyor_CV01/telemetry → speed_m_s=0, jam_detected=true, belt_tension_n=200","aurora/plant/L01/press_PR01/performance → operational_status=Starved, cycle_count frozen","aurora/mes/workorder/WO-2026-0417 → downtime_min incrementing","aurora/erp/production/order_completion_pct → frozen"]},{"id":"energy_anomaly_night_shift","label":"Energy Anomaly — Compressor Off-Hours Overconsumption","description":"Compressor CP01 drawing 35% more power than baseline during night shift. Phase C current imbalance. THD elevated. Annual cost impact quantified.","affected":["compressor_CP01"],"ai_hint":"CP01 consuming 29.7 kW vs 22 kW baseline (+35%). Phase C current 18A vs 12A nominal (50% imbalance). THD: 8.5% (limit 5%). Power factor: 0.73 (expected 0.91). Likely: valve wear or intercooler fouling. Annual excess cost: ~€8,400.","data_sources":["PLC","SCADA","AI"],"kpi_impact":{"oee":79,"energy":"+35%_compressor","quality":99},"what_it_shows":"Energy intelligence that goes far beyond basic kWh monitoring. The 3-phase current imbalance (Phase C at 150% of A and B) combined with elevated THD points specifically to a valve or intercooler fault — not a motor or VFD issue. This distinction saves hours of diagnostic time. The AI then calculates the annual €-impact, making the business case for immediate repair obvious.","how_to_demo":"1. Switch scenario. 2. Energy tab → CP01 row: total_kw = 29.7 (vs 22 baseline), Phase C current = 18A vs 12A for A and B. 3. Show THD = 8.5% (limit 5%), PF = 0.73 (expected 0.91). 4. Health tab → Valve = 68%, Intercooler = 72%. 5. Energy tab → show cost_eur_hr trending up. 6. Ask AI → it quantifies the fault and annual impact.","steps":["Switch scenario → 'Energy Anomaly'","Energy tab → CP01: total_kw=29.7, phase_a=12A, phase_b=12A, phase_c=18A (imbalance)","Show THD=8.5% (red), PF=0.73","Health tab → Valve=68%, Intercooler=72%","Ask AI → valve/intercooler diagnosis + €8,400/year impact + 7-week payback"],"visual_indicators":"Energy tab: CP01 row shows total_kw elevated (29.7 vs 22), Phase C current higher than A and B, THD 8.5% (red), PF 0.73. Health tab: Valve and Intercooler bars yellow. AI hint: energy anomaly with € impact.","root_cause":"CP01 discharge valve wear + intercooler fouling. Valve wear creates load asymmetry (Phase C imbalance) and flutter (THD elevation). Intercooler fouling reduces cooling efficiency, increasing compression work.","ai_answer":"Root cause: CP01 discharge valve wear causing inefficient compression cycle, compounded by partial intercooler fouling. Evidence: Phase C current 18A vs 12A (50% imbalance) — this rules out motor winding issue (which would affect all phases equally) and points to mechanical load asymmetry in the compressor cylinder. THD 8.5% (limit 5%) indicates non-sinusoidal current draw — consistent with valve flutter causing intermittent loading. PF 0.73 vs expected 0.91: reactive power waste. Power excess: 7.7 kW × €0.14/kWh × 8,760 hrs = €9,440/year. However compressor runs ~70% of time so actual excess: ~€6,600/year. Additional cost: accelerated bearing wear from vibration (estimated €1,800 bearing replacement in 6 months if not fixed). Total annual impact: ~€8,400. Repair: (1) Replace discharge valve set (4h, €380 parts), (2) Clean intercooler (2h, €120 chemical clean). ROI: repair cost €1,200 vs annual saving €8,400 = 7-week payback.","affected_streams":["aurora/plant/energy/CP01/power → total_kw=29.7, phase_c_current=18A, thd_pct=8.5, power_factor=0.73","aurora/plant/health/compressor_CP01/pdm → Valve=68%, Intercooler=72%","aurora/plant/energy/plant/rollup → cost_eur_hr elevated"]},{"id":"multi_asset_cascade","label":"Cascade Failure — Hydraulic Leak → Quality Escape","description":"PR01 hydraulic seal leak → reduced press force → underdimensioned casings → CMM vision catching 18% failure rate. AI traces the full causal chain across 4 systems.","affected":["press_PR01","vision_CMM01"],"ai_hint":"Causal chain: PR01 seal leak (-15 bar) → press force deviation (+80 kN) → case wall thickness out of tolerance (+0.3mm) → CMM fail rate 18% (vs 3% baseline). Root cause: PR01 MainSeal (health: 42). Fix seal → quality returns to baseline.","data_sources":["PLC","QMS","MES","ERP","AI"],"kpi_impact":{"oee":72,"energy":"nominal","quality":82},"what_it_shows":"The most powerful scenario for demonstrating AI root cause analysis across system boundaries. Quality team sees CMM failures and doesn't know why. Maintenance team sees PR01 health declining but no alarm. AI connects the dots: mechanical fault in a press → dimensional quality failure at inspection 50m down the line, 8 minutes later. Neither team would find this without cross-system AI analysis.","how_to_demo":"1. Switch scenario. 2. Quality tab → CMM fail rate = 18% (baseline 3%). 3. Streams tab → filter 'press_PR01' → hydraulic_pressure_bar = 195, oil_leak_detected = true, press_force_deviation_kn = +82. 4. Health tab → MainSeal = 42% (red), HydraulicPump = 74%. 5. ERP/MES tab → quality hold active, batch hold triggered. 6. Ask AI → it traces the full causal chain from seal → force → dimension → CMM.","steps":["Switch scenario → 'Cascade Failure'","Quality tab → CMM fail_rate = 18%","Streams tab → PR01: hydraulic_pressure=195, oil_leak=true, force_deviation=+82kN","Health tab → MainSeal = 42% (red)","ERP/MES tab → quality hold + batch hold","Ask AI → full causal chain + €12,641 cost + fix procedure"],"visual_indicators":"Quality tab: CMM fail_rate = 18% (red). Streams: PR01 hydraulic_pressure = 195, oil_leak_detected = true. Health: MainSeal red at 42%. ERP/MES: quality hold active. AI hint shows full causal chain.","root_cause":"PR01 MainSeal internal leakage causing insufficient press force → dimensional non-conformance propagating through production to CMM inspection.","ai_answer":"Full causal chain: (1) PR01 MainSeal degraded to 42% health → internal hydraulic leak rate ~2.1 L/min → hydraulic pressure drops from 210 to 195 bar (-15 bar = -7.1%). (2) Reduced hydraulic pressure → actuator force falls proportionally → press force at lower punch = 820 kN vs nominal 900 kN (-80 kN = -8.9% deviation). (3) Insufficient press force → incomplete material deformation → case wall thickness = 2.3mm vs nominal 2.0mm spec (+0.3mm = +15%) and corner radii out of tolerance. (4) CMM inspection catches dimensional failures: fail rate 18% vs 3% baseline. Batches affected: all units produced in last 94 minutes (approx 705 units). Affected batches: BATCH-20260417-001 units 156-861. Cost: 705 units × 15% scrap rate × €42/unit = €4,441 scrap + €8,200 rework. Total: €12,641. Fix: Replace PR01 MainSeal (4h planned stop, €280 seal kit). After fix, CMM fail rate will return to baseline within 15 min.","affected_streams":["aurora/plant/L01/press_PR01/telemetry → hydraulic_pressure_bar=195, oil_leak_detected=true, press_force_deviation_kn=+82","aurora/plant/health/press_PR01/pdm → MainSeal=42% (red)","aurora/plant/L04/inspection_CMM01/results → fail_rate_pct=18, wall_thickness_mm=2.3","aurora/erp/quality/holds → batch hold, 705 units affected"]},{"id":"oven_thermal_runaway","label":"OV01 — Thermal Runaway (All Zones Overshoot)","description":"OV01 temperature controller fault — all zones overshooting by 20-25°C. Paint on casings will be scorched. AI recommends immediate STOP and full quality assessment.","affected":["oven_OV01"],"ai_hint":"All zones 20-25°C above setpoint. Exhaust temp: 98°C (normal: 85°C). STOP line immediately — paint scorch threshold exceeded. Hold all parts from last 20 min. Inspect PID controller.","data_sources":["PLC","MES","ERP","AI"],"kpi_impact":{"oee":68,"energy":"+18%_oven","quality":71},"what_it_shows":"Safety-critical scenario demonstrating AI as a decision-support system for STOP vs CONTINUE decisions. Shows how AI can give a definitive recommendation with material science rationale — not just an alarm. MES auto-triggers batch hold, ERP fires quality hold, DPP flags every unit. AI calculates the time window of affected parts and estimates scorch damage using temperature-time exposure.","how_to_demo":"1. Switch scenario. 2. Streams tab → filter 'oven_OV01' → zone_1_temp=202°C (setpoint 180), zone_2_temp=224°C (setpoint 200), zone_3_temp=193°C (setpoint 170), zone_4_temp=227°C (setpoint 200). 3. ERP/MES tab → batch_status = ON_HOLD. 4. Ask AI → immediate STOP recommendation with scorch damage calculation and PID diagnosis.","steps":["Switch scenario → 'OV01 Thermal Runaway'","Streams tab → OV01: all 4 zones above setpoint (202, 224, 193, 227°C)","ERP/MES tab → batch ON_HOLD","Ask AI → STOP + PID windup diagnosis + scorch damage calc + 135 units at risk"],"visual_indicators":"Streams tab: all OV01 zone temps above setpoint (red). Product flow: Curing node red. ERP/MES tab: batch ON_HOLD. AI hint: STOP recommendation with scorch threshold. OEE dropped to 68%.","root_cause":"PID controller integral windup on all zones simultaneously — indicates a common controller module issue, not individual heater faults. Check controller firmware or shared I/O module.","ai_answer":"STOP LINE IMMEDIATELY. All four oven zones are overshooting setpoint by 20-25°C. Explanation: PID controller integral windup — likely caused by a setpoint step-change followed by sensor lag, causing I-term to accumulate. Current temps: Zone 1: 202°C (set 180, +22°C), Zone 2: 224°C (set 200, +24°C), Zone 3: 193°C (set 170, +23°C), Zone 4: 227°C (set 200, +27°C). Material impact (BAT-CASE-AL-001 with primer coat): Epoxy primer scorches at 210°C. Zone 2 and 4 are above 210°C — surface scorching confirmed. At 224°C for 6.4 min, adhesion strength of primer coat drops ~35% from baseline. Parts produced in last 18 minutes are at risk. Affected units: approx 135 units. Recommended action: (1) STOP line now, (2) Reduce all zone setpoints by 30°C immediately, (3) Wait for temp to stabilise (8 min), (4) Re-tune PID (reduce I-gain by 40%), (5) Quality hold on last 135 units, (6) Adhesion test 5 units from window. If adhesion > 85% of spec: pass. If < 85%: scrap. Estimated scrap cost: €5,670 (135 units × €42). PID fix: 20 min, no parts cost.","affected_streams":["aurora/plant/L03/oven_OV01/telemetry → zone_1_temp=202, zone_2_temp=224, zone_3_temp=193, zone_4_temp=227 (all above setpoint)","aurora/mes/batch → batch_status=ON_HOLD","aurora/erp/quality/holds → quality hold fired","aurora/plant/L04/inspection/dpp → 135 units flagged"]},{"id":"robot_R1_weld_drift","label":"R1 — Weld Robot Teach-Point Drift","description":"Robot R1 weld positions drifting 0.8mm from teach points. JointA1 and WristUnit degrading. AI detects pattern before weld failures cause scrap.","affected":["robot_R1"],"ai_hint":"R1 position error: 0.85mm (limit 0.5mm). JointA1 health: 71% (degrading 0.6%/day). WristUnit health: 68%. Teach-point drift increasing over 72h. Recommend: recalibrate, check joint backlash, schedule bearing inspection.","data_sources":["PLC","SCADA","AI"],"kpi_impact":{"oee":78,"energy":"nominal","quality":94},"what_it_shows":"Slow geometric drift from mechanical wear that accumulates over days — invisible to any snapshot-based check but clearly visible in trend data. Shows predictive maintenance (PdM) in action: RUL calculated from degradation rate, specific joints identified, maintenance scheduled before weld quality degrades to causing visible defects. At 0.85mm offset, weld quality is marginal. At 1.2mm (projected 5 days), 100% of welds will be out-of-position.","how_to_demo":"1. Switch scenario. 2. Streams tab → filter 'robot_R1' → position_error_mm = 0.85 (limit 0.5), joint_a1_temp elevated, path_accuracy_mm = 0.91. 3. Health tab → JointA1 = 71%, WristUnit = 68% — both declining. 4. PdM rows → R1 RUL 35 days, urgency SOON. 5. Ask AI the question → get projected failure date + quality threshold.","steps":["Switch scenario → 'R1 Weld Robot Drift'","Streams tab → R1: position_error_mm=0.85, path_accuracy=0.91","Health tab → JointA1=71%, WristUnit=68%","PdM table → R1 RUL 35d, SOON","Ask AI → bearing backlash + harmonic drive diagnosis + 19-day quality failure window + 4:1 ROI"],"visual_indicators":"Streams tab: R1 position_error_mm = 0.85 (above 0.5 limit, orange). Health tab: JointA1 and WristUnit bars yellow/declining. PdM table: R1 RUL = 35 days, urgency = SOON. Quality tab: weld pass rate trending down.","root_cause":"JointA1 bearing backlash + WristUnit harmonic drive wear causing cumulative TCP offset. 72-hour trend confirms progressive mechanical degradation, not electrical/calibration issue.","ai_answer":"R1 teach-point drift root cause: JointA1 bearing backlash increasing due to wear (health 71%, degrading 0.6%/day) combined with WristUnit harmonic drive wear (health 68%, degrading 0.7%/day). Geometric error model: JointA1 backlash contributes ~60% of observed 0.85mm TCP error; WristUnit contributes ~40%. Current trajectory: position error increasing 0.018mm/day. Quality thresholds: (1) Weld quality marginal above 0.5mm (already exceeded — currently 70% of welds within spec). (2) Weld failures visible/scrapped above 1.2mm (projected to reach in 19 days). (3) Structural weld failure risk above 1.8mm (projected 47 days). Recommended maintenance window: within 14 days (before next planned stop). Actions: (1) Recalibrate R1 to teach points (1h, immediate improvement to 0.3mm). (2) Replace JointA1 bearings (4h, €320). (3) Replace WristUnit harmonic drive (8h, €1,850). Total: 12h + €2,170. If ignored until failure: unplanned stop 16h + scrap from 19 days of marginal welds (~€8,400). Preventive ROI: 4:1.","affected_streams":["aurora/plant/L01/robot_R1/telemetry → position_error_mm=0.85, path_accuracy_mm=0.91, joint_a1_temp elevated","aurora/plant/health/robot_R1/pdm → JointA1=71%, WristUnit=68%, RUL=35days","aurora/plant/qms/weld_inspection → pass_rate declining"]},{"id":"compressed_air_leak","label":"Compressed Air Leak — Network Pressure Drop","description":"Air network pressure drop 15% detected. Compressor running at 95% load continuously to compensate. Estimated leak 4.2 m³/h. Energy waste and quality risk to pneumatic tools.","affected":["compressor_CP01"],"ai_hint":"Header pressure: 6.38 bar vs 7.5 nominal (-15%). Compressor loaded 95% (normal 72%). Leak estimated 4.2 m³/h. Annual energy cost: ~€3,200. Compressor RUL reduced 40% from continuous operation. Locate with ultrasonic detector in Zone A.","data_sources":["PLC","SCADA","AI"],"kpi_impact":{"oee":79,"energy":"+22%_compressor","quality":99},"what_it_shows":"Invisible utility waste that standard monitoring completely misses. Compressed air leaks are the #1 energy waste in manufacturing — typically 20-30% of compressed air is lost to leaks. AI correlates: CP01 load% increase + Zone A pressure differential + flow imbalance to pinpoint the leak location and quantify the financial and equipment impact. The compressor running at 95% vs 72% is silently destroying bearing life.","how_to_demo":"1. Switch scenario. 2. Streams tab → filter 'compressor_CP01' → loaded_pct = 95 (normal 72), outlet_pressure_bar = 6.38 (normal 7.5). 3. Filter 'air_network' → zone_a_press = 6.1 bar vs zone_b_press = 7.1, zone_c_press = 7.2, leak_detected = true. 4. Energy tab → CP01 excess kW visible. 5. Health tab → CP01 AirFilter at 48%. 6. Ask AI → leak location + annual cost + compressor life impact.","steps":["Switch scenario → 'Compressed Air Leak'","Streams tab → CP01: loaded_pct=95, outlet_pressure=6.38","Air network streams: zone_a=6.1 vs zone_b=7.1 (pressure differential)","Energy tab → CP01 excess kW visible","Ask AI → Zone A leak, 4.2 m³/h, €3,200/year, ultrasonic detection procedure"],"visual_indicators":"Streams tab: CP01 loaded_pct = 95 (orange), outlet_pressure = 6.38 (below 7.5 nominal). Air network: zone_a_press lower than B and C (red differential). Energy tab: CP01 excess kW. AI hint: leak location Zone A + annual cost.","root_cause":"Compressed air leak in Zone A distribution network — most likely push-fit connector or solenoid valve exhaust port failure. Compressor overloading to compensate.","ai_answer":"Compressed air leak confirmed in Zone A. Evidence: Zone A pressure 6.1 bar vs Zone B 7.1 bar and Zone C 7.2 bar — 1.0 bar differential pointing to a downstream Zone A leak. Compressor CP01 loaded 95% vs baseline 72% to compensate, consuming 4.2 kW excess power. Leak flow rate estimate: using compressor excess capacity vs pressure drop model → 4.2 m³/h leak. Annual energy cost: 4.2 kW × 8,760h × €0.14/kWh = €5,148 but applying compressor efficiency factor (75%): actual = 4.2 m³/h ÷ 4.8 m³/kWh = 0.875 kW compressor extra × 8,760 × €0.14 = €1,073 electricity + compressor maintenance uplift (95% load vs 72% reduces MTBF by ~40%: if next bearing service was 18 months away, now 11 months: cost brings forward ~€2,100). Total annual impact: ~€3,200. Leak location: Zone A, most likely at a push-fit connector or valve bank (highest frequency in pneumatic distribution). Detection: walk Zone A piping with ultrasonic detector (Fluke ii910) — leak signature 40 kHz. Typical repair: replace Ø8mm push-fit connector, 15 min, €2.80. ROI: immediate.","affected_streams":["aurora/plant/energy/CP01/power → loaded_pct=95, outlet_pressure_bar=6.38","aurora/plant/air_network → zone_a_press=6.1 (low vs B=7.1, C=7.2), leak_detected=true, total_flow_m3h=37 (vs 28.5 nominal)","aurora/plant/health/compressor_CP01/pdm → AirFilter=48%, CP01 RUL reduced"]},{"id":"tooling_die_wear","label":"PR01 Die Wear — Dimensional Drift from Tooling","description":"PR01 die at 420,000 cycles (70% of 600,000 limit). Die temp rising, press force deviation increasing. SPC Cpk falling. AI predicts quality escape intersection point.","affected":["press_PR01","vision_CMM01"],"ai_hint":"PR01 die at 70% life (420K/600K cycles). Die temp: 63°C vs 38°C nominal (+66%). Press force deviation: +3.2%. Wall thickness SPC Cpk 0.82 (limit 1.33). Schedule die change within 24h to prevent quality escape.","data_sources":["PLC","QMS","MES","AI"],"kpi_impact":{"oee":77,"energy":"nominal","quality":95},"what_it_shows":"Planned maintenance vs reactive repair — and the AI's ability to predict exactly when preventive action is needed before quality goes out of spec. Classic predictive tooling lifecycle management: cycle count, temperature, force deviation, and SPC Cpk all feeding an AI model that calculates the remaining useful life in hours, not vague percentages. The insight: Cpk = 1.33 is the quality escape boundary — AI finds exactly when the die wear curve intersects it.","how_to_demo":"1. Switch scenario. 2. Streams tab → filter 'press_PR01' → die_wear_pct = 70%, die_temp_c = 63 (nominal 38), press_force_deviation_pct = +3.2. 3. Quality tab → SPC chart for wall_thickness — Cpk = 0.82 (limit 1.33), trending upward. 4. Health tab → Die component bar at 30% (red). 5. Ask AI → intersection point and recommended die change window.","steps":["Switch scenario → 'PR01 Die Wear'","Streams tab → PR01: die_wear_pct=70, die_temp=63°C, force_deviation=+3.2%","Quality tab → wall_thickness SPC: Cpk=0.82 (red, below 1.33)","Health tab → Die = 30% (red)","Ask AI → quality escape at 470K cycles = 111 hours, schedule die change within 2 shifts"],"visual_indicators":"Streams tab: PR01 die_wear_pct = 70%, die_temp = 63°C (orange). Quality tab: wall_thickness SPC Cpk = 0.82 (below 1.33 limit, red). Health tab: Die bar red at 30%. AI hint: die change within 24h.","root_cause":"Normal die wear at 70% of service life. Elevated temperature indicates surface oxidation accelerating wear. SPC Cpk declining confirms dimensional drift toward tolerance limit.","ai_answer":"PR01 die wear analysis: Current state: 420,000 cycles completed (70% of 600,000 limit). Die temperature 63°C vs 38°C nominal (+66%) — elevated temp indicates reduced clearance from thermal expansion due to die surface oxidation and micro-cracking. Press force deviation +3.2%: as die wears, more force required to achieve same deformation. SPC trajectory: wall_thickness Cpk = 0.82 currently, decreasing at -0.028 Cpk per 10,000 cycles over last 60,000 cycles. Quality escape threshold: Cpk < 1.33 means process is marginally capable; Cpk < 1.0 means defects are likely. Current Cpk 0.82 means ~2.3% of parts are already outside ±3σ (but within tolerance). Quality escape (Cpk < 0.67, 4.5% defect rate) projected at: ~470,000 cycles (50,000 cycles away at 7.5 cycles/min = 111 hours = 4.6 production shifts). Recommended die change window: within next 2 shifts (before 460,000 cycles). Die change: 2h planned stop, €4,200 die set. Cost of reactive failure (CMM catching 4.5%+ defects, scrap/rework, unplanned stop): €18,000+. Preventive ROI: >4:1.","affected_streams":["aurora/plant/L01/press_PR01/telemetry → die_wear_pct=70, die_temp_c=63, press_force_deviation_pct=+3.2, cycle_count=420000","aurora/plant/qms/spc → wall_thickness Cpk=0.82 (trending down)","aurora/plant/health/press_PR01/pdm → Die=30% (red), RUL=111h"]},{"id":"robot_R3_spray_drift","label":"R3 — Spray Robot TCP Drift (Paint Quality Impact)","description":"Paint robot R3 tool-centre-point drifting 0.72mm. Coat thickness falling from 80µm to 52µm. Coat uniformity 72% (min 90%). MES catching yield drop.","affected":["robot_R3","sprayer_SP01","sprayer_SP02"],"ai_hint":"R3 TCP offset: 0.72mm (limit 0.3mm). Coat thickness: 52µm (min 60µm). Uniformity: 72% (min 90%). Spray overlap incorrect. Recalibrate R3 TCP, verify gun-to-part distance. Quality hold on last 35 min.","data_sources":["PLC","QMS","MES","AI"],"kpi_impact":{"oee":76,"energy":"nominal","quality":83},"what_it_shows":"Process quality monitoring beyond threshold alarms — AI correlating robot kinematics with coating quality outcomes. The TCP drift is invisible unless you measure position accuracy. The coat thickness drop is measurable but its cause isn't obvious from the coating data alone. AI connects: R3 JointA2 wear → TCP drift → spray pattern offset → coat thickness thin zones → uniformity failure. Quantifies the affected production window and gives a step-by-step recalibration procedure.","how_to_demo":"1. Switch scenario. 2. Streams tab → filter 'robot_R3' → position_error_mm = 0.72 (limit 0.3), path_accuracy = 0.65, joint_a2_temp elevated. 3. Filter 'sprayer' → coat_thickness_um = 52 (minimum 60), coat_uniformity_pct = 72 (minimum 90). 4. Health tab → R3 TCP_Calibration = 45% (red), JointA2 = 78%. 5. Ask AI → root cause + affected parts count + recalibration steps.","steps":["Switch scenario → 'R3 Spray Robot TCP Drift'","Streams tab → R3: position_error=0.72, path_accuracy=0.65","Sprayer streams: coat_thickness=52µm (min 60), uniformity=72% (min 90%)","Health tab → TCP_Calibration=45% (red)","Ask AI → JointA2 backlash diagnosis + 263 parts affected + TCP recal steps + €2,104 rework vs €11,046 scrap"],"visual_indicators":"Streams tab: R3 position_error_mm = 0.72 (red, above 0.3 limit). Sprayer streams: coat_thickness_um = 52 (below 60 min, red), coat_uniformity = 72% (below 90%, red). Health tab: TCP_Calibration bar red at 45%.","root_cause":"R3 JointA2 harmonic drive backlash causing TCP drift. TCP offset of 0.72mm shifts spray pattern 3.2mm at part surface, creating thin-coat zones.","ai_answer":"Root cause: R3 JointA2 harmonic drive backlash (health 78%) causing TCP offset of 0.72mm (limit 0.3mm). With TCP offset, the spray gun is not maintaining constant gun-to-part distance. At 0.72mm offset and typical gun-to-part distance 250mm, the offset represents a 0.29% angle change — which shifts the spray centre by 3.2mm at the part surface. This moves ~20% of spray pattern off the target zone, creating thin coating areas. Effect: coat thickness drops from 80µm nominal to 52µm average in offset zones. Coat uniformity 72% (min 90%) because half the surface receives correct thickness but offset zones are thin. Affected production window: last 35 minutes (R3 TCP drift gradual, reached limit 35 min ago). Affected parts: 263 units. All have thin-coat zones on the battery casing lid panel — this area is exposed to humidity cycling, so thin coat = corrosion risk. Quality hold recommendation: last 35 min of output. Disposition: re-spray at 30µm build coat + cure (30 min). Cost: 263 units × €8 rework = €2,104 vs €11,046 scrap. Recalibration procedure: (1) Run R3 TCP calibration routine from teach pendant (menu: Utilities → TCP Calibration → Auto), 8 min. (2) Verify with calibration sphere measurement — target < 0.15mm. (3) If > 0.15mm after auto-cal, replace JointA2 harmonic drive (6h, €1,420). Current TCP cal procedure will reduce to 0.18mm — borderline, schedule JointA2 replacement within 5 days.","affected_streams":["aurora/plant/L02/robot_R3/telemetry → position_error_mm=0.72, path_accuracy=0.65, joint_a2_temp elevated","aurora/plant/L02/sprayer_SP01/telemetry → coat_thickness_um=52, coat_uniformity_pct=72","aurora/plant/health/robot_R3/pdm → TCP_Calibration=45% (red), JointA2=78%"]},{"id":"erp_material_shortage","label":"ERP Alert — ALU Sheet Material Shortage","description":"SAP ERP signals ALU_SHEET_2MM below safety stock (500 kg). MES halts new work orders. Press lines will be starved in ~47 min. Shows ERP-to-MES-to-OT integration.","affected":["press_PR01","press_PR02"],"ai_hint":"ALU_SHEET_2MM: 387 kg (safety stock 500 kg). Consumption: 8.25 kg/min. Starvation in 47 min. Options: (1) Expedite PO — 4h lead time. (2) Reduce line rate to 3.7 units/min — extends window to 95 min. (3) Switch to PR02 only — doubles window.","data_sources":["ERP","MES","PLC","AI"],"kpi_impact":{"oee":62,"energy":"reduced_presses","quality":99},"what_it_shows":"ISA-95 integration from L4 (ERP/SAP) down through L3 (MES) to L2 (PLC production rates) — visible in real-time in the UNS. Shows that a business planning event (stock below safety level) immediately ripples into shopfloor visibility: MES halts new work orders, press lines see their operational_status change, and the AI calculates exactly how many minutes remain before physical starvation. Most factories don't have this integration — showing it live is impactful.","how_to_demo":"1. Switch scenario. 2. ERP/MES tab → ERP: ALU_SHEET_2MM = 387 kg (safety stock 500 kg), alert_active = true. 3. MES work orders → status = WAITING_MATERIAL for next WO. 4. Streams tab → filter 'press_PR01' → operational_status = 'Running' (currently OK), show consumption rate. 5. Ask AI → starvation time + 3 options with time/cost impact.","steps":["Switch scenario → 'ERP Material Shortage'","ERP/MES tab → ALU_SHEET_2MM: 387 kg, alert active, safety stock 500 kg","MES WO status = WAITING_MATERIAL","Streams tab → PR01/PR02 operational_status (still Running, countdown active)","Ask AI → 47-min window + 4 options with costs + recommend ALU_SHEET_2.2MM substitution"],"visual_indicators":"ERP/MES tab: ALU_SHEET_2MM = 387 kg (below safety 500 kg, orange alert). MES work order: status = WAITING_MATERIAL. OEE header: dropping as lines slow. AI hint: 47 min to starvation + 4 options.","root_cause":"Material stock fell below safety level due to consumption spike from BMW-GROUP-DE order (150% of normal volume) combined with supplier delivery delay (expected yesterday, now 4h late).","ai_answer":"Material shortage analysis: ALU_SHEET_2MM current stock = 387 kg vs safety stock level 500 kg (ERP trigger at 500 kg, physical starvation at 0 kg). Consumption rate: 1.1 kg/unit × 7.5 units/min = 8.25 kg/min total (both press lines). Time to physical starvation: 387 kg ÷ 8.25 kg/min = 46.9 minutes from now. MES has already blocked new work order creation — current WO will complete before starvation, but no subsequent WO can start. Option analysis: (1) EXPEDITE PO: Supplier Franz Metals lead time 4 hours. Gap = 4h × 8.25 kg/min × 60 = 1,980 kg gap. Not viable without alternative source. (2) REDUCE LINE RATE to 3.7 units/min (50% production rate): consumption drops to 4.07 kg/min, extends window to 95 min. Lost production: 217 units × €42 = €9,114 (opportunity cost). (3) RUN PR02 ONLY (shut down PR01): consumption 4.07 kg/min (one press), extends to 95 min, PR02 can produce 3.7 units/min. PR01 downtime cost: €210/min for 48 min = €10,080. (4) CHECK ALTERNATIVE MATERIAL: ALU_SHEET_2.2MM in stock (680 kg) — compatible with 94% of order items, requires PR01 tooling adjustment (25 min). Recommended: Option 4 — switch to ALU_SHEET_2.2MM immediately, schedule express delivery for ALU_SHEET_2MM. Call supplier contact: Franz Metals logistics +49 89 4521-0, ref PO-2026-0312.","affected_streams":["aurora/erp/materials/ALU_SHEET_2MM → stock_kg=387, safety_stock=500, alert_active=true","aurora/mes/workorder → status=WAITING_MATERIAL, next WO blocked","aurora/erp/production/production_order → material_alert=true, completion_pct frozen","aurora/plant/L01/press_PR01/performance → operational_status=Running (countdown active)"]},{"id":"quality_escape","label":"Quality Escape — CMM Defect Rate 18% (Multi-Variate Root Cause)","description":"CMM inspection defect rate jumped from 3% to 18%. No single alarm fired. AI correlates press force, die wear, and oven data to find the multi-variate root cause. MES triggers batch hold.","affected":["press_PR01","vision_CMM01"],"ai_hint":"CMM fail rate 18% (baseline 3%). No single alarm fired. PR01 force deviation +4.1%, oven zone 3 +8°C, die wear 72%. Combined effect exceeds tolerance. Hold batch, adjust PR01 force and oven zone 3 setpoint.","data_sources":["PLC","QMS","MES","ERP","AI"],"kpi_impact":{"oee":71,"energy":"nominal","quality":82},"what_it_shows":"The best scenario for demonstrating AI reasoning value vs SCADA alarm rules. No single sensor is alarming. Quality team sees 18% CMM failures and has no explanation from the SCADA system. AI analyses 111 streams and finds three contributing factors that individually are within limits but collectively push quality out of spec. This is exactly where AI delivers value that no rule-based system can replicate.","how_to_demo":"1. Switch scenario. 2. Quality tab → CMM fail_rate = 18% (baseline 3%). 3. Streams tab → PR01: press_force_deviation = +4.1% (alarm limit 8% — no alarm). 4. Oven streams → zone_3_temp = +8°C above setpoint (alarm limit 15°C — no alarm). 5. Health tab → PR01 Die = 28% (red), CMM01 CalibTarget = 72%. 6. Ask AI → multi-variate root cause analysis. This is the key scenario for showing AI > SCADA.","steps":["Switch scenario → 'Quality Escape'","Quality tab → CMM fail_rate = 18% (nobody knows why)","Streams tab → PR01 force deviation = +4.1% (no alarm), oven zone 3 = +8°C (no alarm)","Health tab → PR01 Die = 28% (red)","Ask AI → 3-factor root cause + Cpk calculation + fix: -2% force + -6°C oven + die change"],"visual_indicators":"Quality tab: CMM fail_rate = 18% (red). Streams: PR01 force +4.1% (below alarm, no red!). OV01 zone 3 +8°C (below alarm, no red!). Health: Die=28% (red). ERP/MES: batch ON_HOLD. This is the key visual: nothing individual is alarming, but quality is failing.","root_cause":"Three sub-threshold factors combining: PR01 die wear (+0.15mm bias) + force deviation (+4.1%, adds variability) + oven zone 3 overshoot (+8°C, increases ejection variation). No single factor would cause quality escape alone.","ai_answer":"Multi-variate root cause analysis: Three sub-threshold factors combining to cause quality escape. Factor 1 — PR01 die wear (72% life, health 28%): Die dimensional increase of +0.15mm from wear = wall thickness bias of +0.15mm. Individually within tolerance band (±0.3mm). Factor 2 — PR01 press force deviation +4.1%: Force deviation adds compressive variability. At +4.1% force, spring-back variation increases by ±0.08mm. Adds to die wear effect. Factor 3 — OV01 zone 3 +8°C overshoot: Elevated cure temperature reduces material hardness slightly (+0.4% elongation), increasing dimensional variability during ejection by ±0.07mm. Combined effect: +0.15mm (die) + ±0.08mm (force) + ±0.07mm (oven) = worst case +0.30mm bias plus ±0.15mm variability. Nominal tolerance ±0.25mm, so cumulative effect = Cpk 0.79, defect rate 18%. Each factor alone: Cpk 1.35, 1.42, 1.45 (all acceptable). Combined: Cpk 0.79 (unacceptable). Fix: (1) Adjust PR01 force -2% (corrects spring-back), (2) Reduce OV01 zone 3 setpoint by 6°C, (3) Schedule die change within 2 shifts (as per tooling scenario). After adjustments 1 and 2: Cpk returns to ~1.1 (defect rate ~0.8%). Die change restores to 1.33 baseline. Hold current batch (BATCH-20260417-001). Recommend CMM 100% inspection of last 4 hours production (~1,800 units) — expect ~324 failures for rework.","affected_streams":["aurora/plant/L04/inspection_CMM01/results → fail_rate_pct=18 (baseline 3%)","aurora/plant/L01/press_PR01/telemetry → press_force_deviation_pct=+4.1 (below 8% alarm)","aurora/plant/L03/oven_OV01/telemetry → zone_3_temp = +8°C above setpoint (below 15°C alarm)","aurora/plant/health/press_PR01/pdm → Die=28%","aurora/mes/batch → batch_status=ON_HOLD"]},{"id":"batch_quality_hold","label":"Batch Quality Hold — Automated MES + ERP + DPP Integration","description":"MES automatically places batch on hold due to oven zone 2 deviation. ERP updates production order. DPP flags all 156 units. Shows full integration stack working automatically.","affected":["oven_OV01"],"ai_hint":"Batch BATCH-20260417-001 on hold. 156 units in affected window. Zone 2 deviated -45°C for 22 min. Cure deficiency 23%. Recommend: destructive test 3 units, then decide scrap vs re-cure.","data_sources":["PLC","MES","ERP","AI"],"kpi_impact":{"oee":74,"energy":"nominal","quality":68},"what_it_shows":"The integration story: a single OT sensor event (zone 2 temp deviation) automatically cascades through MES → ERP → DPP with zero human intervention. Every system is updated. Every affected unit is digitally flagged. The AI then provides the disposition recommendation that would normally take a quality engineer 2 hours to compute. Shows the full value of a connected, integrated manufacturing stack.","how_to_demo":"1. Switch scenario. 2. Streams tab → OV01 → zone_2_temp_c = 155°C (setpoint 200, deviation -45°C). 3. ERP/MES tab → batch_status = ON_HOLD, quality_hold_active = true, hold_units = 156. 4. Feed tab (Messages) → show automatic events: MES batch hold, ERP quality document, DPP unit flags all firing in sequence. 5. Ask AI → cure deficiency calculation + disposition recommendation.","steps":["Switch scenario → 'Batch Quality Hold'","Streams tab → OV01: zone_2_temp=155°C (deviation -45°C from 200°C setpoint)","ERP/MES tab → batch ON_HOLD, 156 units affected","Feed tab → watch automatic MES→ERP→DPP event cascade","Ask AI → Arrhenius cure calc → parts are technically cured → re-cure at 210°C for €546 vs scrap €6,552"],"visual_indicators":"Streams: OV01 zone_2_temp = 155°C (below 200 setpoint, yellow-red). ERP/MES tab: batch ON_HOLD, 156 units. Feed tab: automatic integration events firing in sequence. DPP / Product Flow: Curing node shows hold status. AI hint: cure analysis + re-cure recommendation.","root_cause":"OV01 Zone 2 heater element at end of life (health 48%). Partial failure causing temperature to drop to 155°C from 200°C setpoint. Element approaching open-circuit failure.","ai_answer":"Batch disposition analysis for BATCH-20260417-001: Zone 2 temperature deviation: -45°C from setpoint (200°C → 155°C) for estimated 22 minutes. Cure chemistry analysis (epoxy-based primer, BAT-CASE-AL-001): Minimum cure temperature 180°C. Zone 2 was at 155°C — 25°C below minimum. Using Arrhenius kinetics with activation energy Ea = 75 kJ/mol, cure rate at 155°C is 42% of rate at 200°C. Effective cure time at 155°C: 22 min × 42% = 9.2 equivalent minutes vs required 6.4 min per zone. Wait — 9.2 > 6.4: parts actually PASSED the minimum cure requirement, but with only 44% margin vs normal 100% margin. Revised assessment: parts are cured but with reduced margin. Actual risk: reduced adhesion strength (estimated -15% vs spec). Recommendation: (1) Destructive test 3 units from affected window: peel adhesion test (EN ISO 2409) — accept if result ≥ Grade 1. (2) If pass: release batch with notation in DPP. (3) If fail: re-cure at 210°C for 4 min in secondary oven. Cost of re-cure: 156 units × €3.50/unit = €546. Cost of scrap: 156 × €42 = €6,552. Recommendation: re-cure is cost-effective. Complete repair and update DPP unit records to show secondary cure operation.","affected_streams":["aurora/plant/L03/oven_OV01/telemetry → zone_2_temp_c=155 (setpoint 200, deviation -45°C)","aurora/mes/batch/BATCH-20260417-001 → batch_status=ON_HOLD, units_held=156","aurora/erp/quality/holds → hold_id active, production_order updated","aurora/plant/L04/inspection/dpp → 156 units flagged with hold_reason"]}],"recent_messages":[{"ts":"11:50:29","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/telemetry","label":"sprayer_SP02 Telemetry","source":"PLC","asset_id":"sprayer_SP02","asset_type":"sprayer","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:29.905Z\", \"asset_id\": \"sprayer_SP02\", \"supply_pressure_bar\": 3.37, \"atomisation_pressure_bar\": 2.86, \"fluid_flow_lpm\": 1.692, \"paint_temp_c\": 22.8, \"filter_dp_bar\": 0.1"},{"ts":"11:50:29","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/power","label":"sprayer_SP02 3-Phase Power","source":"PLC","asset_id":"sprayer_SP02","asset_type":"sprayer","value":"2.8","payload":"{\"timestamp\": \"2026-04-17T11:50:29.922Z\", \"total_kw\": 2.8, \"total_kva\": 3.03, \"power_factor\": 0.924, \"phases\": {\"A\": {\"voltage_v\": 400.0, \"current_a\": 2.5, \"kw\": 0.92, \"pf\": 0.924}, \"B\": {\"voltage_v\":"},{"ts":"11:50:29","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/energy","label":"sprayer_SP02 Energy","source":"MES","asset_id":"sprayer_SP02","asset_type":"sprayer","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:29.939Z\", \"asset_id\": \"sprayer_SP02\", \"current_kw\": 2.73, \"total_kwh\": 53733.58, \"energy_per_cycle_wh\": 98.2, \"co2_kg_per_kwh\": 0.233, \"co2_total_kg\": 12519.9, \"peak_de"},{"ts":"11:50:29","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/health","label":"sprayer_SP02 Health","source":"SCADA","asset_id":"sprayer_SP02","asset_type":"sprayer","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:29.955Z\", \"asset_id\": \"sprayer_SP02\", \"overall_score\": 80.3, \"components\": {\"Nozzle\": {\"score\": 74.6, \"rul_days\": 560, \"degradation_rate_pct_per_day\": 0.238}, \"FluidPum"},{"ts":"11:50:30","topic":"aurora/line_02_painting/cell_01/sprayer_SP02/alarms","label":"sprayer_SP02 Alarms","source":"PLC","asset_id":"sprayer_SP02","asset_type":"sprayer","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:29.972Z\", \"asset_id\": \"sprayer_SP02\", \"active_alarms\": [], \"alarm_count\": 0}"},{"ts":"11:50:30","topic":"aurora/line_03_curing/cell_01/oven_OV01/telemetry","label":"OV01 Oven Telemetry","source":"PLC","asset_id":"oven_OV01","asset_type":"oven","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.012Z\", \"asset_id\": \"oven_OV01\", \"zone1_temp_c\": 180.5, \"zone2_temp_c\": 198.9, \"zone3_temp_c\": 199.5, \"zone4_temp_c\": 171.0, \"zone_setpoints_c\": [180, 200, 200, 170],"},{"ts":"11:50:30","topic":"aurora/line_03_curing/cell_01/oven_OV01/power","label":"OV01 3-Phase Power","source":"PLC","asset_id":"oven_OV01","asset_type":"oven","value":"43.81","payload":"{\"timestamp\": \"2026-04-17T11:50:30.029Z\", \"total_kw\": 43.81, \"total_kva\": 48.25, \"power_factor\": 0.908, \"phases\": {\"A\": {\"voltage_v\": 400.0, \"current_a\": 40.1, \"kw\": 14.56, \"pf\": 0.908}, \"B\": {\"voltag"},{"ts":"11:50:30","topic":"aurora/line_03_curing/cell_01/oven_OV01/energy","label":"OV01 Energy Rollup","source":"MES","asset_id":"oven_OV01","asset_type":"oven","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.047Z\", \"asset_id\": \"oven_OV01\", \"current_kw\": 45.97, \"total_kwh\": 79790.31, \"energy_per_cycle_wh\": 55167.6, \"co2_kg_per_kwh\": 0.233, \"co2_total_kg\": 18591.1, \"peak_d"},{"ts":"11:50:30","topic":"aurora/line_03_curing/cell_01/oven_OV01/health","label":"OV01 Health Monitoring","source":"SCADA","asset_id":"oven_OV01","asset_type":"oven","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.065Z\", \"asset_id\": \"oven_OV01\", \"overall_score\": 85.4, \"components\": {\"Zone1Heater\": {\"score\": 87.1, \"rul_days\": 653, \"degradation_rate_pct_per_day\": 0.789}, \"Zone2H"},{"ts":"11:50:30","topic":"aurora/line_03_curing/cell_01/oven_OV01/performance","label":"OV01 Performance KPIs","source":"MES","asset_id":"oven_OV01","asset_type":"oven","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.092Z\", \"asset_id\": \"oven_OV01\", \"oee\": 83.5, \"zone_temps\": [178.7, 199.4, 200.6, 169.2], \"status\": \"normal\", \"dwell_time_min\": 6.3}"},{"ts":"11:50:30","topic":"aurora/line_03_curing/cell_01/oven_OV01/alarms","label":"OV01 Alarms","source":"PLC","asset_id":"oven_OV01","asset_type":"oven","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.106Z\", \"asset_id\": \"oven_OV01\", \"active_alarms\": [], \"alarm_count\": 0}"},{"ts":"11:50:30","topic":"aurora/line_03_curing/analytics/anomaly/oven_OV01","label":"OV01 Anomaly Score","source":"AI","asset_id":"oven_OV01","asset_type":"oven","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.123Z\", \"asset_id\": \"oven_OV01\", \"anomaly_score\": 0.109, \"anomaly_level\": \"LOW\", \"contributing_signals\": [], \"recommended_action\": \"No action required\", \"model_versio"},{"ts":"11:50:30","topic":"aurora/line_03_curing/analytics/pdm/oven_OV01","label":"OV01 Predictive Maintenance","source":"AI","asset_id":"oven_OV01","asset_type":"oven","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.138Z\", \"asset_id\": \"oven_OV01\", \"min_health_score\": 70.2, \"min_rul_days\": 526, \"maintenance_urgency\": \"OK\", \"next_recommended_date\": \"2027-09-25\", \"estimated_downtim"},{"ts":"11:50:30","topic":"aurora/utilities/compressor_CP01/telemetry","label":"CP01 Compressor Telemetry","source":"PLC","asset_id":"compressor_CP01","asset_type":"compressor","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.152Z\", \"asset_id\": \"compressor_CP01\", \"outlet_pressure_bar\": 7.49, \"inlet_temp_c\": 21.9, \"outlet_temp_c\": 80.2, \"flow_rate_m3h\": 15.91, \"vibration_mm_s\": 2.06, \"oil_"},{"ts":"11:50:30","topic":"aurora/utilities/compressor_CP01/power","label":"CP01 3-Phase Power","source":"PLC","asset_id":"compressor_CP01","asset_type":"compressor","value":"22.01","payload":"{\"timestamp\": \"2026-04-17T11:50:30.174Z\", \"total_kw\": 22.01, \"total_kva\": 24.08, \"power_factor\": 0.914, \"phases\": {\"A\": {\"voltage_v\": 400.0, \"current_a\": 20.58, \"kw\": 7.52, \"pf\": 0.914}, \"B\": {\"voltag"},{"ts":"11:50:30","topic":"aurora/utilities/compressor_CP01/energy","label":"CP01 Energy Rollup","source":"MES","asset_id":"compressor_CP01","asset_type":"compressor","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.204Z\", \"asset_id\": \"compressor_CP01\", \"current_kw\": 22.45, \"total_kwh\": 30802.95, \"energy_per_cycle_wh\": 808.1, \"co2_kg_per_kwh\": 0.233, \"co2_total_kg\": 7177.1, \"pea"},{"ts":"11:50:30","topic":"aurora/utilities/compressor_CP01/health","label":"CP01 Health","source":"SCADA","asset_id":"compressor_CP01","asset_type":"compressor","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.233Z\", \"asset_id\": \"compressor_CP01\", \"overall_score\": 78.2, \"components\": {\"HydraulicPump\": {\"score\": 58.8, \"rul_days\": 441, \"degradation_rate_pct_per_day\": 0.332},"},{"ts":"11:50:30","topic":"aurora/utilities/compressor_CP01/alarms","label":"CP01 Alarms","source":"PLC","asset_id":"compressor_CP01","asset_type":"compressor","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.252Z\", \"asset_id\": \"compressor_CP01\", \"active_alarms\": [], \"alarm_count\": 0}"},{"ts":"11:50:30","topic":"aurora/utilities/analytics/anomaly/compressor_CP01","label":"CP01 Energy Anomaly","source":"AI","asset_id":"compressor_CP01","asset_type":"compressor","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.266Z\", \"asset_id\": \"compressor_CP01\", \"anomaly_score\": 0.024, \"anomaly_level\": \"LOW\", \"contributing_signals\": [], \"recommended_action\": \"No action required\", \"model_"},{"ts":"11:50:30","topic":"aurora/utilities/analytics/pdm/compressor_CP01","label":"CP01 Predictive Maintenance","source":"AI","asset_id":"compressor_CP01","asset_type":"compressor","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.282Z\", \"asset_id\": \"compressor_CP01\", \"min_health_score\": 58.8, \"min_rul_days\": 441, \"maintenance_urgency\": \"OK\", \"next_recommended_date\": \"2027-07-02\", \"estimated_d"},{"ts":"11:50:30","topic":"aurora/utilities/air_network/pressure","label":"Air Network Monitoring","source":"PLC","asset_id":"compressor_CP01","asset_type":"compressor","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.296Z\", \"asset_id\": \"air_network\", \"header_pressure_bar\": 7.12, \"zone_a_press_bar\": 6.9, \"zone_b_press_bar\": 6.92, \"zone_c_press_bar\": 6.77, \"total_flow_m3h\": 28.8, \""},{"ts":"11:50:30","topic":"aurora/line_04_inspection/cell_01/vision_CMM01/result","label":"CMM01 Inspection Result","source":"PLC","asset_id":"vision_CMM01","asset_type":"inspection","value":"PASS","payload":"{\"timestamp\": \"2026-04-17T11:50:30.316Z\", \"asset_id\": \"vision_CMM01\", \"method\": \"dimensional_vision\", \"unit_id\": \"UNIT-000187\", \"batch_id\": \"BATCH-20260417-001\", \"result\": \"PASS\", \"confidence\": 0.968,"},{"ts":"11:50:30","topic":"aurora/line_04_inspection/cell_01/vision_CMM01/dimensions","label":"CMM01 Dimensional Measurements","source":"QMS","asset_id":"vision_CMM01","asset_type":"inspection","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.329Z\", \"asset_id\": \"vision_CMM01\", \"unit_id\": \"UNIT-000187\", \"measurements\": {\"length_mm\": 300.156, \"width_mm\": 149.948, \"wall_th_mm\": 1.999, \"flatness_mm\": 0.051, \""},{"ts":"11:50:30","topic":"aurora/line_04_inspection/cell_01/vision_CMM01/power","label":"CMM01 Power","source":"PLC","asset_id":"vision_CMM01","asset_type":"inspection","value":"1.15","payload":"{\"timestamp\": \"2026-04-17T11:50:30.345Z\", \"total_kw\": 1.15, \"total_kva\": 1.27, \"power_factor\": 0.906, \"phases\": {\"A\": {\"voltage_v\": 400.0, \"current_a\": 1.06, \"kw\": 0.38, \"pf\": 0.906}, \"B\": {\"voltage_v"},{"ts":"11:50:30","topic":"aurora/line_04_inspection/cell_01/vision_CMM01/health","label":"CMM01 Health","source":"SCADA","asset_id":"vision_CMM01","asset_type":"inspection","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.359Z\", \"asset_id\": \"vision_CMM01\", \"overall_score\": 91.6, \"components\": {\"CameraA\": {\"score\": 89.9, \"rul_days\": 674, \"degradation_rate_pct_per_day\": 0.285}, \"CameraB"},{"ts":"11:50:30","topic":"aurora/line_04_inspection/cell_02/leak_test_LT01/result","label":"LT01 Leak Test Result","source":"PLC","asset_id":"leak_test_LT01","asset_type":"inspection","value":"PASS","payload":"{\"timestamp\": \"2026-04-17T11:50:30.374Z\", \"asset_id\": \"leak_test_LT01\", \"method\": \"pressure_leak_test\", \"unit_id\": \"UNIT-000188\", \"batch_id\": \"BATCH-20260417-001\", \"result\": \"PASS\", \"confidence\": 0.93"},{"ts":"11:50:30","topic":"aurora/line_04_inspection/cell_02/leak_test_LT01/power","label":"LT01 Power","source":"PLC","asset_id":"leak_test_LT01","asset_type":"inspection","value":"0.78","payload":"{\"timestamp\": \"2026-04-17T11:50:30.389Z\", \"total_kw\": 0.78, \"total_kva\": 0.86, \"power_factor\": 0.906, \"phases\": {\"A\": {\"voltage_v\": 400.0, \"current_a\": 0.73, \"kw\": 0.26, \"pf\": 0.906}, \"B\": {\"voltage_v"},{"ts":"11:50:30","topic":"aurora/line_04_inspection/cell_02/leak_test_LT01/health","label":"LT01 Health","source":"SCADA","asset_id":"leak_test_LT01","asset_type":"inspection","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.403Z\", \"asset_id\": \"leak_test_LT01\", \"overall_score\": 80.6, \"components\": {\"PressureSensor\": {\"score\": 83.3, \"rul_days\": 625, \"degradation_rate_pct_per_day\": 0.116},"},{"ts":"11:50:30","topic":"aurora/quality/spc/wall_thickness","label":"SPC — Wall Thickness","source":"QMS","asset_id":"vision_CMM01","asset_type":"quality","value":"2.0","payload":"{\"timestamp\": \"2026-04-17T11:50:30.420Z\", \"source\": \"QMS\", \"parameter\": \"wall_thickness_mm\", \"value\": 2.0, \"ucl\": 2.15, \"lcl\": 1.85, \"mean\": 2.0, \"in_control\": true, \"sigma_level\": 0.0, \"sample_size\":"},{"ts":"11:50:30","topic":"aurora/quality/spc/coat_thickness","label":"SPC — Coat Thickness","source":"QMS","asset_id":"sprayer_SP01","asset_type":"quality","value":"79.812","payload":"{\"timestamp\": \"2026-04-17T11:50:30.436Z\", \"source\": \"QMS\", \"parameter\": \"coat_thickness_um\", \"value\": 79.812, \"ucl\": 100.0, \"lcl\": 60.0, \"mean\": 80.0, \"in_control\": true, \"sigma_level\": 0.03, \"sample_"},{"ts":"11:50:30","topic":"aurora/quality/spc/press_force_pr01","label":"SPC — PR01 Press Force","source":"QMS","asset_id":"press_PR01","asset_type":"quality","value":"751.66","payload":"{\"timestamp\": \"2026-04-17T11:50:30.458Z\", \"source\": \"QMS\", \"parameter\": \"press_force_kn\", \"value\": 751.66, \"ucl\": 780.0, \"lcl\": 720.0, \"mean\": 750.0, \"in_control\": true, \"sigma_level\": 0.17, \"sample_s"},{"ts":"11:50:30","topic":"aurora/quality/spc/draw_depth","label":"SPC — Draw Depth","source":"QMS","asset_id":"press_PR01","asset_type":"quality","value":"85.454","payload":"{\"timestamp\": \"2026-04-17T11:50:30.495Z\", \"source\": \"QMS\", \"parameter\": \"draw_depth_mm\", \"value\": 85.454, \"ucl\": 85.5, \"lcl\": 84.5, \"mean\": 85.0, \"in_control\": true, \"sigma_level\": 2.72, \"sample_size\""},{"ts":"11:50:30","topic":"aurora/line_01_assembly/rfid/entry","label":"RFID Line 01 Entry","source":"PLC","asset_id":"rfid_reader_01","asset_type":"rfid","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.523Z\", \"reader_id\": \"RFID-01-ENTRY\", \"area\": \"Line01_Entry\", \"tag_id\": \"TAG-199684\", \"unit_id\": \"UNIT-000188\", \"batch_id\": \"BATCH-20260417-001\", \"product\": \"BAT-CASE"},{"ts":"11:50:30","topic":"aurora/line_01_assembly/rfid/exit","label":"RFID Line 01 Exit","source":"PLC","asset_id":"rfid_reader_01","asset_type":"rfid","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.542Z\", \"reader_id\": \"RFID-01-EXIT\", \"area\": \"Line01_Exit\", \"tag_id\": \"TAG-877512\", \"unit_id\": \"UNIT-000188\", \"batch_id\": \"BATCH-20260417-001\", \"product\": \"BAT-CASE-A"},{"ts":"11:50:30","topic":"aurora/line_04_inspection/rfid/entry","label":"RFID Inspection Entry","source":"PLC","asset_id":"rfid_reader_02","asset_type":"rfid","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.567Z\", \"reader_id\": \"RFID-04-ENTRY\", \"area\": \"Inspection_Entry\", \"tag_id\": \"TAG-123249\", \"unit_id\": \"UNIT-000188\", \"batch_id\": \"BATCH-20260417-001\", \"product\": \"BAT-"},{"ts":"11:50:30","topic":"aurora/plant/environment/floor","label":"Factory Floor Environment","source":"SCADA","asset_id":"plant","asset_type":"environmental","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.580Z\", \"location\": \"factory_floor_main\", \"temperature_c\": 21.4, \"humidity_rh_pct\": 48.3, \"ambient_pressure_hpa\": 1013.9, \"co2_ppm\": 615, \"noise_db\": 73.4, \"lighting_"},{"ts":"11:50:30","topic":"aurora/erp/production_orders/current","label":"ERP Production Order","source":"ERP","asset_id":"plant","asset_type":"ERP","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.592Z\", \"source\": \"SAP_ERP\", \"order_id\": \"PO-015528\", \"material\": \"BAT-CASE-AL-001\", \"quantity_ordered\": 1000, \"quantity_produced\": 188, \"quantity_scrap\": 8, \"status\""},{"ts":"11:50:30","topic":"aurora/erp/materials/consumption","label":"ERP Material Consumption","source":"ERP","asset_id":"plant","asset_type":"ERP","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.605Z\", \"source\": \"SAP_ERP\", \"order_id\": \"PO-015528\", \"plant\": \"DE-LEIPZIG-01\", \"materials\": [{\"material_id\": \"ALU_SHEET_2MM\", \"consumed_kg\": 1765.1, \"uom\": \"KG\", \"st"},{"ts":"11:50:30","topic":"aurora/erp/quality/holds","label":"ERP Quality Holds","source":"ERP","asset_id":"plant","asset_type":"ERP","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.617Z\", \"source\": \"SAP_ERP\", \"active_holds\": [], \"hold_count\": 0, \"total_holds_today\": 0, \"holds_cleared_today\": 3}"},{"ts":"11:50:30","topic":"aurora/mes/batch_tracking","label":"MES Batch Tracking","source":"MES","asset_id":"plant","asset_type":"MES","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.629Z\", \"source\": \"MES\", \"batch_id\": \"BATCH-20260417-001\", \"product\": \"BAT-CASE-AL-001\", \"order_id\": \"PO-015528\", \"work_order_id\": \"WO-056241\", \"shift\": \"B\", \"units_s"},{"ts":"11:50:30","topic":"aurora/mes/work_orders/active","label":"MES Work Order","source":"MES","asset_id":"plant","asset_type":"MES","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.641Z\", \"source\": \"MES\", \"work_order_id\": \"WO-056241\", \"operation\": \"PRESS_STAMP\", \"machine_id\": \"press_PR01\", \"operator_id\": \"OP-106\", \"status\": \"IN_PROGRESS\", \"star"},{"ts":"11:50:30","topic":"aurora/mes/shift/summary","label":"MES Shift Summary","source":"MES","asset_id":"plant","asset_type":"MES","value":"80.1","payload":"{\"timestamp\": \"2026-04-17T11:50:30.656Z\", \"source\": \"MES\", \"shift\": \"B\", \"date\": \"2026-04-17\", \"planned_units\": 500, \"actual_units\": 188, \"oee_pct\": 80.1, \"availability_pct\": 87.9, \"performance_pct\": "},{"ts":"11:50:30","topic":"aurora/line_04_inspection/cell_02/process/step_status","label":"DPP Unit Event","source":"MES","asset_id":"plant","asset_type":"DPP","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.672Z\", \"source\": \"MES\", \"event\": \"unit_completed\", \"unit_id\": \"UNIT-000188\", \"batch_id\": \"BATCH-20260417-001\", \"product\": \"BAT-CASE-AL-001\", \"order_id\": \"PO-015528\","},{"ts":"11:50:30","topic":"aurora/plant/energy/total","label":"Plant Total Energy","source":"SCADA","asset_id":"plant","asset_type":"plant","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.688Z\", \"total_kwh\": 757201.6, \"current_kw\": 124.7, \"energy_intensity_kwh_per_unit\": 0.194, \"co2_kg_today\": 176428.0, \"cost_eur_today\": 90864.19}"},{"ts":"11:50:30","topic":"aurora/plant/kpi/oee","label":"Plant OEE","source":"MES","asset_id":"plant","asset_type":"plant","value":"81.5","payload":"{\"timestamp\": \"2026-04-17T11:50:30.702Z\", \"oee_pct\": 81.5, \"availability_pct\": 88.1, \"performance_pct\": 93.5, \"quality_pct\": 99.2, \"units_produced_shift\": 188, \"scrap_count\": 8, \"rework_count\": 0, \"sh"},{"ts":"11:50:30","topic":"aurora/process/unit_id","label":"Plant Process Status","source":"MES","asset_id":"plant","asset_type":"plant","value":"—","payload":"{\"timestamp\": \"2026-04-17T11:50:30.714Z\", \"current_unit\": \"UNIT-000188\", \"batch_id\": \"BATCH-20260417-001\", \"product\": \"BAT-CASE-AL-001\", \"line_01_status\": \"Running\", \"line_02_status\": \"Running\", \"line"},{"ts":"11:50:30","topic":"aurora/line_01_assembly/energy/total","label":"line_01_assembly Line Energy Rollup","source":"SCADA","asset_id":"line_01_assembly","asset_type":"line","value":"48.6","payload":"{\"timestamp\": \"2026-04-17T11:50:30.730Z\", \"total_kw\": 48.6, \"period_kwh\": 0.418}"},{"ts":"11:50:30","topic":"aurora/line_02_painting/energy/total","label":"line_02_painting Line Energy Rollup","source":"SCADA","asset_id":"line_02_painting","asset_type":"line","value":"12.3","payload":"{\"timestamp\": \"2026-04-17T11:50:30.746Z\", \"total_kw\": 12.3, \"period_kwh\": 0.095}"},{"ts":"11:50:30","topic":"aurora/line_03_curing/energy/total","label":"line_03_curing Line Energy Rollup","source":"SCADA","asset_id":"line_03_curing","asset_type":"line","value":"47.0","payload":"{\"timestamp\": \"2026-04-17T11:50:30.763Z\", \"total_kw\": 47.0, \"period_kwh\": 0.377}"},{"ts":"11:50:30","topic":"aurora/line_04_inspection/energy/total","label":"line_04_inspection Line Energy Rollup","source":"SCADA","asset_id":"line_04_inspection","asset_type":"line","value":"1.8","payload":"{\"timestamp\": \"2026-04-17T11:50:30.783Z\", \"total_kw\": 1.8, \"period_kwh\": 0.016}"}]}