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

267 lines
5.8 KiB
JSON

{
"protocol": "jarvis.skill.v1",
"id": "unifi.protect",
"name": "UniFi Protect",
"version": "1.0.0",
"description": "Lokale UniFi-Protect-Integration über die offizielle Integration API.",
"runtime": {
"type": "process",
"command": "python3",
"args": [
"main.py"
],
"timeout_ms": 10000,
"env_from": [
"UNIFI_PROTECT_URL",
"UNIFI_API_KEY",
"UNIFI_VERIFY_TLS"
]
},
"permissions": {
"network": true,
"system_exec": true
},
"actions": [
{
"name": "info",
"description": "Prüft die Protect-API und liefert Versionsinformationen.",
"input_schema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"output_schema": {
"type": "object"
}
},
{
"name": "list_cameras",
"description": "Listet Protect-Kameras mit Status und Fähigkeiten.",
"input_schema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"output_schema": {
"type": "object",
"properties": {
"cameras": {
"type": "array",
"items": {
"type": "object"
}
},
"count": {
"type": "integer"
}
},
"required": [
"cameras",
"count"
],
"additionalProperties": false
}
},
{
"name": "get_camera",
"description": "Liest Details einer Protect-Kamera.",
"input_schema": {
"type": "object",
"properties": {
"camera_id": {
"type": "string"
}
},
"required": [
"camera_id"
],
"additionalProperties": false
},
"output_schema": {
"type": "object"
}
},
{
"name": "list_sensors",
"description": "Listet Protect-Sensoren.",
"input_schema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"output_schema": {
"type": "object",
"properties": {
"sensors": {
"type": "array",
"items": {
"type": "object"
}
},
"count": {
"type": "integer"
}
},
"required": [
"sensors",
"count"
],
"additionalProperties": false
}
},
{
"name": "list_lights",
"description": "Listet Protect-Lights/Floodlights.",
"input_schema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"output_schema": {
"type": "object",
"properties": {
"lights": {
"type": "array",
"items": {
"type": "object"
}
},
"count": {
"type": "integer"
}
},
"required": [
"lights",
"count"
],
"additionalProperties": false
}
},
{
"name": "ptz_goto",
"description": "Fährt eine PTZ-Kamera auf ein vorhandenes Preset.",
"mutates": true,
"input_schema": {
"type": "object",
"properties": {
"camera_id": {
"type": "string"
},
"slot": {
"type": "integer"
}
},
"required": [
"camera_id",
"slot"
],
"additionalProperties": false
},
"output_schema": {
"type": "object",
"properties": {
"accepted": {
"type": "boolean"
}
},
"required": [
"accepted"
],
"additionalProperties": false
}
},
{
"name": "ptz_patrol_start",
"description": "Startet eine konfigurierte PTZ-Patrouille.",
"mutates": true,
"input_schema": {
"type": "object",
"properties": {
"camera_id": {
"type": "string"
},
"slot": {
"type": "integer"
}
},
"required": [
"camera_id",
"slot"
],
"additionalProperties": false
},
"output_schema": {
"type": "object",
"properties": {
"accepted": {
"type": "boolean"
}
},
"required": [
"accepted"
],
"additionalProperties": false
}
},
{
"name": "ptz_patrol_stop",
"description": "Stoppt die aktive PTZ-Patrouille.",
"mutates": true,
"input_schema": {
"type": "object",
"properties": {
"camera_id": {
"type": "string"
}
},
"required": [
"camera_id"
],
"additionalProperties": false
},
"output_schema": {
"type": "object",
"properties": {
"accepted": {
"type": "boolean"
}
},
"required": [
"accepted"
],
"additionalProperties": false
}
},
{
"name": "trigger_alarm_webhook",
"description": "Triggert einen in Protect konfigurierten Alarm-Manager-Webhook.",
"mutates": true,
"requires_confirmation": true,
"input_schema": {
"type": "object",
"properties": {
"trigger_id": {
"type": "string"
}
},
"required": [
"trigger_id"
],
"additionalProperties": false
},
"output_schema": {
"type": "object",
"properties": {
"accepted": {
"type": "boolean"
}
},
"required": [
"accepted"
],
"additionalProperties": false
}
}
]
}