90 lines
3.4 KiB
Python
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!")
|