No Janus for standalone Obico webcam streaming?

Hi -

I have obico and octoprint in separate unraid dockers. Webcam streaming is working when I test in in Octoprint and I can stream via my webbrowser.

I've linked the obico plugin to the standalone obico server, and it appears to be mostly working (I can start prints, see temps from obico) but the webstreaming is failing in obico.

In the octoprint log, I see this error: octoprint.plugins.obico - ERROR - Janus not found or not configured correctly. Quiting webcam streaming.

Do I need to manually install Janus on either the octoprint or obico docker?

Same problem, I have reported it also on the discord server.

This is my most recent piece of log on octoprint

2024-12-30 14:11:19,126 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:11:25,127 - pybambu - ERROR - A1MINI: A Chamber Image thread outer exception occurred:
2024-12-30 14:11:25,127 - pybambu - ERROR - A1MINI: Exception. Type: <class 'TimeoutError'> Args: timed out
2024-12-30 14:11:31,564 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:11:39,564 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:11:39,573 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status
2024-12-30 14:11:48,808 - octoprint.plugins.obico - DEBUG - Received: {"remote_status": {"viewing": true}, "type": "printer.message"}
2024-12-30 14:11:49,023 - octoprint.plugins.obico - ERROR - 'NoneType' object has no attribute 'get_metadata'
Traceback (most recent call last):
  File "/octoprint/plugins/lib/python3.10/site-packages/octoprint_obico/print_job_tracker.py", line 136, in get_file_metadata
    return plugin._file_manager._storage_managers.get(origin).get_metadata(path) or {}
AttributeError: 'NoneType' object has no attribute 'get_metadata'
2024-12-30 14:11:49,024 - octoprint.plugins.obico - DEBUG - Sending to server: 
{'status': {'state': {'text': 'Printing from SD', 'flags': {'operational': True, 'printing': True, 'cancelling': False, 'pausing': False, 'resuming': False, 'finishing': False, 'closedOrError': False, 'error': False, 'paused': False, 'ready': False, 'sdReady': True}, 'error': ''}, 'job': {'file': {'name': 'Gridfinity Optimized bed scraper.3mf', 'path': 'Gridfinity Optimized bed scraper.3mf', 'display': 'Gridfinity Optimized bed scraper.3mf', 'origin': 'sdcard', 'size': 1705651, 'date': None}, 'estimatedPrintTime': None, 'averagePrintTime': None, 'lastPrintTime': None, 'filament': None, 'user': None}, 'currentZ': None, 'progress': {'completion': 89.99994723422317, 'filepos': 1535085, 'printTime': 81, 'printTimeLeft': 3, 'printTimeLeftOrigin': 'estimate'}, 'offsets': {}, 'resends': {'count': 0, 'transmitted': 10, 'ratio': 0}, 'temperatures': {'tool0': {'actual': 220.0, 'target': 220.0, 'offset': 0}, 'bed': {'actual': 65.0, 'target': 65.0, 'offset': 0}, 'chamber': {'actual': None, 'target': None, 'offset': 0}}, '_ts': 1735567909, 'currentLayerHeight': None, 'file_metadata': None}, 'current_print_ts': 1735567827}
2024-12-30 14:11:50,760 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:11:50,767 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status
2024-12-30 14:11:55,687 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [200]>
2024-12-30 14:11:56,155 - pybambu - ERROR - A1MINI: A Chamber Image thread outer exception occurred:
2024-12-30 14:11:56,155 - pybambu - ERROR - A1MINI: Exception. Type: <class 'TimeoutError'> Args: timed out
2024-12-30 14:11:57,043 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [200]>
2024-12-30 14:11:57,891 - octoprint.plugins.obico - DEBUG - Received: {"remote_status": {"viewing": false}, "type": "printer.message"}
2024-12-30 14:11:58,694 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [200]>
2024-12-30 14:11:59,031 - octoprint.plugins.obico - ERROR - 'NoneType' object has no attribute 'get_metadata'
Traceback (most recent call last):
  File "/octoprint/plugins/lib/python3.10/site-packages/octoprint_obico/print_job_tracker.py", line 136, in get_file_metadata
    return plugin._file_manager._storage_managers.get(origin).get_metadata(path) or {}
AttributeError: 'NoneType' object has no attribute 'get_metadata'
2024-12-30 14:11:59,032 - octoprint.plugins.obico - DEBUG - Sending to server: 
{'status': {'state': {'text': 'Printing from SD', 'flags': {'operational': True, 'printing': True, 'cancelling': False, 'pausing': False, 'resuming': False, 'finishing': False, 'closedOrError': False, 'error': False, 'paused': False, 'ready': False, 'sdReady': True}, 'error': ''}, 'job': {'file': {'name': 'Gridfinity Optimized bed scraper.3mf', 'path': 'Gridfinity Optimized bed scraper.3mf', 'display': 'Gridfinity Optimized bed scraper.3mf', 'origin': 'sdcard', 'size': 1705651, 'date': None}, 'estimatedPrintTime': None, 'averagePrintTime': None, 'lastPrintTime': None, 'filament': None, 'user': None}, 'currentZ': None, 'progress': {'completion': 90.99997596225722, 'filepos': 1552142, 'printTime': 91, 'printTimeLeft': 4, 'printTimeLeftOrigin': 'estimate'}, 'offsets': {}, 'resends': {'count': 0, 'transmitted': 10, 'ratio': 0}, 'temperatures': {'tool0': {'actual': 220.0, 'target': 220.0, 'offset': 0}, 'bed': {'actual': 65.0, 'target': 65.0, 'offset': 0}, 'chamber': {'actual': None, 'target': None, 'offset': 0}}, '_ts': 1735567919, 'currentLayerHeight': None, 'file_metadata': None}, 'current_print_ts': 1735567827}
2024-12-30 14:12:02,692 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:12:02,699 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status
2024-12-30 14:12:09,039 - octoprint.plugins.obico - ERROR - 'NoneType' object has no attribute 'get_metadata'
Traceback (most recent call last):
  File "/octoprint/plugins/lib/python3.10/site-packages/octoprint_obico/print_job_tracker.py", line 136, in get_file_metadata
    return plugin._file_manager._storage_managers.get(origin).get_metadata(path) or {}
AttributeError: 'NoneType' object has no attribute 'get_metadata'
2024-12-30 14:12:09,040 - octoprint.plugins.obico - DEBUG - Sending to server: 
{'status': {'state': {'text': 'Printing from SD', 'flags': {'operational': True, 'printing': True, 'cancelling': False, 'pausing': False, 'resuming': False, 'finishing': False, 'closedOrError': False, 'error': False, 'paused': False, 'ready': False, 'sdReady': True}, 'error': ''}, 'job': {'file': {'name': 'Gridfinity Optimized bed scraper.3mf', 'path': 'Gridfinity Optimized bed scraper.3mf', 'display': 'Gridfinity Optimized bed scraper.3mf', 'origin': 'sdcard', 'size': 1705651, 'date': None}, 'estimatedPrintTime': None, 'averagePrintTime': None, 'lastPrintTime': None, 'filament': None, 'user': None}, 'currentZ': None, 'progress': {'completion': 90.99997596225722, 'filepos': 1552142, 'printTime': 101, 'printTimeLeft': 4, 'printTimeLeftOrigin': 'estimate'}, 'offsets': {}, 'resends': {'count': 0, 'transmitted': 10, 'ratio': 0}, 'temperatures': {'tool0': {'actual': 220.0, 'target': 220.0, 'offset': 0}, 'bed': {'actual': 65.0, 'target': 65.0, 'offset': 0}, 'chamber': {'actual': None, 'target': None, 'offset': 0}}, '_ts': 1735567929, 'currentLayerHeight': None, 'file_metadata': None}, 'current_print_ts': 1735567827}
2024-12-30 14:12:10,786 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:12:10,792 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status
2024-12-30 14:12:22,704 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:12:22,711 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status
2024-12-30 14:12:27,183 - pybambu - ERROR - A1MINI: A Chamber Image thread outer exception occurred:
2024-12-30 14:12:27,183 - pybambu - ERROR - A1MINI: Exception. Type: <class 'TimeoutError'> Args: timed out
2024-12-30 14:12:34,742 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:12:34,749 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status
2024-12-30 14:12:41,443 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:12:41,452 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status
2024-12-30 14:12:42,414 - octoprint.plugins.obico - DEBUG - Received: {"remote_status": {"viewing": true}, "type": "printer.message"}
2024-12-30 14:12:43,071 - octoprint.plugins.obico - ERROR - 'NoneType' object has no attribute 'get_metadata'
Traceback (most recent call last):
  File "/octoprint/plugins/lib/python3.10/site-packages/octoprint_obico/print_job_tracker.py", line 136, in get_file_metadata
    return plugin._file_manager._storage_managers.get(origin).get_metadata(path) or {}
AttributeError: 'NoneType' object has no attribute 'get_metadata'
2024-12-30 14:12:43,072 - octoprint.plugins.obico - DEBUG - Sending to server: 
{'status': {'state': {'text': 'Printing from SD', 'flags': {'operational': True, 'printing': True, 'cancelling': False, 'pausing': False, 'resuming': False, 'finishing': False, 'closedOrError': False, 'error': False, 'paused': False, 'ready': False, 'sdReady': True}, 'error': ''}, 'job': {'file': {'name': 'Gridfinity Optimized bed scraper.3mf', 'path': 'Gridfinity Optimized bed scraper.3mf', 'display': 'Gridfinity Optimized bed scraper.3mf', 'origin': 'sdcard', 'size': 1705651, 'date': None}, 'estimatedPrintTime': None, 'averagePrintTime': None, 'lastPrintTime': None, 'filament': None, 'user': None}, 'currentZ': None, 'progress': {'completion': 90.99997596225722, 'filepos': 1552142, 'printTime': 135, 'printTimeLeft': 7, 'printTimeLeftOrigin': 'estimate'}, 'offsets': {}, 'resends': {'count': 0, 'transmitted': 10, 'ratio': 0}, 'temperatures': {'tool0': {'actual': 220.0, 'target': 220.0, 'offset': 0}, 'bed': {'actual': 65.0, 'target': 65.0, 'offset': 0}, 'chamber': {'actual': None, 'target': None, 'offset': 0}}, '_ts': 1735567963, 'currentLayerHeight': None, 'file_metadata': None}, 'current_print_ts': 1735567827}
2024-12-30 14:12:43,182 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [200]>
2024-12-30 14:12:43,350 - octoprint.plugins.obico - DEBUG - Received: {"remote_status": {"viewing": false}, "type": "printer.message"}
2024-12-30 14:12:44,765 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [200]>
2024-12-30 14:12:48,700 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [200]>
2024-12-30 14:12:52,760 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:12:52,767 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status
2024-12-30 14:12:53,081 - octoprint.plugins.obico - ERROR - 'NoneType' object has no attribute 'get_metadata'
Traceback (most recent call last):
  File "/octoprint/plugins/lib/python3.10/site-packages/octoprint_obico/print_job_tracker.py", line 136, in get_file_metadata
    return plugin._file_manager._storage_managers.get(origin).get_metadata(path) or {}
AttributeError: 'NoneType' object has no attribute 'get_metadata'
2024-12-30 14:12:53,082 - octoprint.plugins.obico - DEBUG - Sending to server: 
{'status': {'state': {'text': 'Printing from SD', 'flags': {'operational': True, 'printing': True, 'cancelling': False, 'pausing': False, 'resuming': False, 'finishing': False, 'closedOrError': False, 'error': False, 'paused': False, 'ready': False, 'sdReady': True}, 'error': ''}, 'job': {'file': {'name': 'Gridfinity Optimized bed scraper.3mf', 'path': 'Gridfinity Optimized bed scraper.3mf', 'display': 'Gridfinity Optimized bed scraper.3mf', 'origin': 'sdcard', 'size': 1705651, 'date': None}, 'estimatedPrintTime': None, 'averagePrintTime': None, 'lastPrintTime': None, 'filament': None, 'user': None}, 'currentZ': None, 'progress': {'completion': 90.99997596225722, 'filepos': 1552142, 'printTime': 145, 'printTimeLeft': 8, 'printTimeLeftOrigin': 'estimate'}, 'offsets': {}, 'resends': {'count': 0, 'transmitted': 10, 'ratio': 0}, 'temperatures': {'tool0': {'actual': 220.0, 'target': 220.0, 'offset': 0}, 'bed': {'actual': 65.0, 'target': 65.0, 'offset': 0}, 'chamber': {'actual': None, 'target': None, 'offset': 0}}, '_ts': 1735567973, 'currentLayerHeight': None, 'file_metadata': None}, 'current_print_ts': 1735567827}
2024-12-30 14:12:58,211 - pybambu - ERROR - A1MINI: A Chamber Image thread outer exception occurred:
2024-12-30 14:12:58,211 - pybambu - ERROR - A1MINI: Exception. Type: <class 'TimeoutError'> Args: timed out
2024-12-30 14:13:06,026 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:13:06,033 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status
2024-12-30 14:13:14,024 - octoprint.plugins.obico - DEBUG - Jpeg posted to server - <Response [500]>
2024-12-30 14:13:14,031 - octoprint.plugins.obico - DEBUG - API called: get_plugin_status