Get comprehensive system status
()
| 16479 | 'ap_mode': True, |
| 16480 | 'interface': effective_interface |
| 16481 | }) |
| 16482 | else: |
| 16483 | return jsonify({ |
| 16484 | 'networks': networks, |
| 16485 | 'known': known_networks, |
| 16486 | 'success': True, |
| 16487 | 'ap_mode': True, |
| 16488 | 'interface': effective_interface |
| 16489 | }) |
| 16490 | else: |
| 16491 | # Regular scanning when not in AP mode |
| 16492 | networks = manager.scan_networks(interface=requested_interface) |
| 16493 | return jsonify({ |
| 16494 | 'networks': networks, |
| 16495 | 'known': known_networks, |
| 16496 | 'success': True, |
| 16497 | 'ap_mode': False, |
| 16498 | 'interface': effective_interface |
| 16499 | }) |
| 16500 | else: |
| 16501 | return jsonify({ |
| 16502 | 'error': 'Wi-Fi manager not available', |
| 16503 | 'manual_entry_available': True |
| 16504 | }), 503 |
| 16505 | except Exception as e: |
| 16506 | logger.error(f"Error scanning Wi-Fi networks: {e}") |
| 16507 | # Fallback to cached networks if scanning fails |
| 16508 | try: |
| 16509 | wifi_manager = getattr(shared_data, 'ragnar_instance', None) |
| 16510 | if wifi_manager and hasattr(wifi_manager, 'wifi_manager'): |
| 16511 | known_networks = wifi_manager.wifi_manager.get_known_networks() |
| 16512 | return jsonify({ |
| 16513 | 'networks': known_networks, |
| 16514 | 'known': known_networks, |
| 16515 | 'warning': 'Live scan failed, showing known networks only', |
| 16516 | 'manual_entry_available': True |
| 16517 | }) |
| 16518 | except: |
| 16519 | pass |
| 16520 | |
| 16521 | return jsonify({ |
| 16522 | 'networks': [], |
| 16523 | 'known': [], |
| 16524 | 'error': 'Scanning failed', |
| 16525 | 'manual_entry_available': True |
| 16526 | }), 500 |
| 16527 | |
| 16528 | @app.route('/api/wifi/networks') |
| 16529 | def get_wifi_networks(): |
| 16530 | """Get available and known Wi-Fi networks - optimized for Pi Zero W2 AP mode""" |
| 16531 | try: |
| 16532 | try: |
| 16533 | requested_interface = _parse_wifi_interface_arg(request.args.get('interface')) |
| 16534 | except ValueError as invalid_iface: |
| 16535 | return jsonify({'success': False, 'error': str(invalid_iface)}), 400 |
| 16536 | wifi_manager = getattr(shared_data, 'ragnar_instance', None) |
| 16537 | if wifi_manager and hasattr(wifi_manager, 'wifi_manager'): |
| 16538 | manager = wifi_manager.wifi_manager |
nothing calls this directly
no test coverage detected