Commit Graph

13 Commits

Author SHA1 Message Date
sebingel
5839853f69 Add Fritz!Box device scanner plugin via TR-064 protocol
NetAlertX had no native support for discovering devices connected to
Fritz!Box routers. Users relying on Fritz!Box as their primary home
router had to use generic network scanning (ARP/ICMP), missing
Fritz!Box-specific details like interface type (WiFi/LAN) and
connection status per device.

Changes:
- Add plugin implementation (front/plugins/fritzbox/fritzbox.py)
  Queries all hosts via FritzHosts TR-064 service, normalizes MACs,
  maps interface types (802.11→WiFi, Ethernet→LAN), and writes results
  to CurrentScan via Plugin_Objects. Supports filtering to active-only
  devices and optional guest WiFi monitoring via a synthetic AP device
  with a deterministic locally-administered MAC (02:xx derived from
  Fritz!Box MAC via MD5).

- Add plugin configuration (front/plugins/fritzbox/config.json)
  Defines plugin_type "device_scanner" with settings for host, port,
  credentials, guest WiFi reporting, and active-only filtering.
  Maps scan columns to CurrentScan fields (scanMac, scanLastIP, scanName,
  scanType). Default schedule: every 5 minutes.

- Add plugin documentation (front/plugins/fritzbox/README.md)
  Covers TR-064 protocol basics, quick setup guide, all settings with
  defaults, troubleshooting for common issues (connection refused, auth
  failures, no devices found), and technical details.

- Add fritzconnection>=1.15.1 dependency (requirements.txt)
  Required Python library for TR-064 communication with Fritz!Box.

- Add test suite (test/plugins/test_fritzbox.py:1-298)
  298 lines covering get_connected_devices (active filtering, MAC
  normalization, interface mapping, error resilience), check_guest_wifi_status
  (service detection, SSID-based guest detection, fallback behavior), and
  create_guest_wifi_device (deterministic MAC generation, locally-administered
  bit, fallback MAC, regression anchor with precomputed hash).

Users can now scan Fritz!Box-connected devices natively, seeing per-device
connection status and interface type directly in NetAlertX. Guest WiFi
monitoring provides visibility into guest network state. The plugin
defaults to HTTPS on port 49443 with active-only filtering enabled.
2026-04-06 07:34:14 +00:00
Alvise Bruniera
21f6a53830 freebox plugin version 2 2026-03-26 16:03:45 +01:00
jokob-sk
50f341e84f BE: force upgrade of unifi-sm-api>=0.2.3 #1524
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-20 07:44:49 +11:00
jokob-sk
05c332867b BE: force upgrade of unifi-sm-api>=0.2.2 #1524
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-19 14:22:23 +11:00
jokob-sk
876cd4bbe1 BE: psutils missing
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-18 13:08:34 +11:00
jokob-sk
7075091569 BE: psutil missing
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-18 11:35:18 +11:00
jokob-sk
774c123804 BE: psutil missing
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-18 11:17:25 +11:00
Adam Outler
ecea1d1fbd feat(api): MCP, OpenAPI & Dynamic Introspection
New Features:
- API endpoints now support comprehensive input validation with detailed error responses via Pydantic models.
- OpenAPI specification endpoint (/openapi.json) and interactive Swagger UI documentation (/docs) now available for API discovery.
- Enhanced MCP session lifecycle management with create, retrieve, and delete operations.
- Network diagnostic tools: traceroute, nslookup, NMAP scanning, and network topology viewing exposed via API.
- Device search, filtering by status (including 'offline'), and bulk operations (copy, delete, update).
- Wake-on-LAN functionality for remote device management.
- Added dynamic tool disablement and status reporting.

Bug Fixes:
- Fixed get_tools_status in registry to correctly return boolean values instead of None for enabled tools.
- Improved error handling for invalid API inputs with standardized validation responses.
- Fixed OPTIONS request handling for cross-origin requests.

Refactoring:
- Significant refactoring of api_server_start.py to use decorator-based validation (@validate_request).
2026-01-18 18:16:18 +00:00
Jokob @NetAlertX
5c44fd8fea cryptography build prevention
Signed-off-by: GitHub <noreply@github.com>
2025-12-07 11:09:18 +00:00
Adam Outler
541b932b6d Add MCP to existing OpenAPI 2025-11-28 14:12:06 -05:00
jokob-sk
6a20128960 BE: install refactor work
Some checks failed
Code checks / check-url-paths (push) Has been cancelled
docker / docker_dev (push) Has been cancelled
Deploy MkDocs / deploy (push) Has been cancelled
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2025-10-22 07:48:50 +11:00
Adam Outler
a58b3e35b9 Coderabbit suggestions 2025-10-19 14:18:07 +00:00
Adam Outler
1be91559d2 Set container parameters 2025-10-12 15:05:20 -04:00