{ "protocol": "jarvis.skill.v1", "id": "unifi.network", "name": "UniFi Network", "version": "1.0.0", "description": "Lokale UniFi-Network-Integration über die offizielle Integration API.", "runtime": { "type": "process", "command": "python3", "args": [ "main.py" ], "timeout_ms": 10000, "env_from": [ "UNIFI_NETWORK_URL", "UNIFI_API_KEY", "UNIFI_VERIFY_TLS" ] }, "permissions": { "network": true, "system_exec": true }, "actions": [ { "name": "info", "description": "Prüft die UniFi-Network-API und liefert Versionsinformationen.", "input_schema": { "type": "object", "properties": {}, "additionalProperties": false }, "output_schema": { "type": "object" } }, { "name": "list_sites", "description": "Listet lokale UniFi-Network-Sites.", "input_schema": { "type": "object", "properties": {}, "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "sites": { "type": "array", "items": { "type": "object" } }, "count": { "type": "integer" } }, "required": [ "sites", "count" ], "additionalProperties": false } }, { "name": "list_devices", "description": "Listet adoptierte UniFi-Geräte einer Site.", "input_schema": { "type": "object", "properties": { "site_id": { "type": "string" }, "filter": { "type": "string" }, "limit": { "type": "integer" } }, "required": [ "site_id" ], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object" } }, "count": { "type": "integer" } }, "required": [ "devices", "count" ], "additionalProperties": false } }, { "name": "list_clients", "description": "Listet verbundene Clients einer UniFi-Site; kann zur Anwesenheitserkennung genutzt werden.", "input_schema": { "type": "object", "properties": { "site_id": { "type": "string" }, "filter": { "type": "string" }, "limit": { "type": "integer" } }, "required": [ "site_id" ], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "clients": { "type": "array", "items": { "type": "object" } }, "count": { "type": "integer" } }, "required": [ "clients", "count" ], "additionalProperties": false } }, { "name": "restart_device", "description": "Startet ein adoptiertes UniFi-Gerät neu.", "mutates": true, "requires_confirmation": true, "input_schema": { "type": "object", "properties": { "site_id": { "type": "string" }, "device_id": { "type": "string" } }, "required": [ "site_id", "device_id" ], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "accepted": { "type": "boolean" } }, "required": [ "accepted" ], "additionalProperties": false } }, { "name": "power_cycle_port", "description": "Führt einen PoE Power-Cycle auf einem Switch-Port aus.", "mutates": true, "requires_confirmation": true, "input_schema": { "type": "object", "properties": { "site_id": { "type": "string" }, "device_id": { "type": "string" }, "port_idx": { "type": "integer" } }, "required": [ "site_id", "device_id", "port_idx" ], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "accepted": { "type": "boolean" } }, "required": [ "accepted" ], "additionalProperties": false } }, { "name": "authorize_guest", "description": "Autorisiert einen UniFi-Gastclient optional zeitlich begrenzt.", "mutates": true, "requires_confirmation": true, "input_schema": { "type": "object", "properties": { "site_id": { "type": "string" }, "client_id": { "type": "string" }, "time_limit_minutes": { "type": "integer" } }, "required": [ "site_id", "client_id" ], "additionalProperties": false }, "output_schema": { "type": "object" } }, { "name": "unauthorize_guest", "description": "Entzieht einem UniFi-Gastclient den Netzwerkzugang.", "mutates": true, "requires_confirmation": true, "input_schema": { "type": "object", "properties": { "site_id": { "type": "string" }, "client_id": { "type": "string" } }, "required": [ "site_id", "client_id" ], "additionalProperties": false }, "output_schema": { "type": "object" } } ] }