Files
jarvis-home/skills/python/unifi-network/skill.json
T
2026-08-29 17:02:35 +02:00

274 lines
6.0 KiB
JSON

{
"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"
}
}
]
}