Files
2025-12-02 16:27:21 +00:00

90 lines
3.4 KiB
Python

#!/usr/bin/env python3
import json
with open('/home/mdares/.node-red/flows.json', 'r') as f:
flows = json.load(f)
print("ADDING DEBUG LOGGING TO TRACE MESSAGE FLOW")
print("="*60)
# Add logging to Refresh Trigger
for node in flows:
if node.get('name') == 'Refresh Trigger':
func = node.get('func', '')
# Add logging at the start
if 'node.warn(`[REFRESH] Received _mode: ${msg._mode}`)' not in func:
# Insert after first line
lines = func.split('\n')
lines.insert(0, 'node.warn(`[REFRESH] Received _mode: ${msg._mode}`);')
node['func'] = '\n'.join(lines)
print("✅ Added logging to Refresh Trigger")
else:
print("✅ Refresh Trigger already has logging")
break
# Add logging to Back to UI
for node in flows:
if node.get('name') == 'Back to UI':
func = node.get('func', '')
# Add logging at the start
if 'node.warn(`[BACK TO UI] mode: ${mode}, started:' not in func:
# Find where mode and started are extracted
insert_pos = func.find('const mode = msg._mode')
if insert_pos > 0:
# Find end of started line
insert_pos = func.find('\n', func.find('const started = msg.startOrder'))
# Insert logging after extraction
log_line = '\nnode.warn(`[BACK TO UI] mode: ${mode}, started: ${JSON.stringify(started)}`);\n'
func = func[:insert_pos + 1] + log_line + func[insert_pos + 1:]
node['func'] = func
print("✅ Added logging to Back to UI")
else:
print("✅ Back to UI already has logging")
break
# Add logging to Home Template message handler
for node in flows:
if node.get('id') == '1821c4842945ecd8': # Home Template
template = node.get('format', '')
# Add console.log at start of activeWorkOrder handler
if "console.log('[HOME] Received activeWorkOrder'" not in template:
# Find the activeWorkOrder handler
handler_pos = template.find("if (msg.topic === 'activeWorkOrder') {")
if handler_pos > 0:
# Insert logging after the opening brace
insert_pos = template.find('\n', handler_pos)
log_line = "\n console.log('[HOME] Received activeWorkOrder:', msg.payload);"
template = template[:insert_pos] + log_line + template[insert_pos:]
node['format'] = template
print("✅ Added logging to Home Template activeWorkOrder handler")
else:
print("✅ Home Template already has logging")
break
# Write updated flows
with open('/home/mdares/.node-red/flows.json', 'w') as f:
json.dump(flows, f, indent=4)
print("\n" + "="*60)
print("✅ DEBUG LOGGING ADDED")
print("="*60)
print("\nAdded logging to:")
print(" 1. Refresh Trigger - shows _mode received")
print(" 2. Back to UI - shows mode and startOrder data")
print(" 3. Home Template - shows activeWorkOrder received")
print("\nNEXT STEPS:")
print(" 1. Restart Node-RED: sudo systemctl restart nodered")
print(" 2. Go to WO tab, select work order, click Start")
print(" 3. Check debug console for:")
print(" - [REFRESH] Received _mode: start")
print(" - [BACK TO UI] mode: start, started: {...}")
print(" - [HOME] Received activeWorkOrder: {...} (in browser console)")
print("\nThis will show exactly where the message flow breaks!")