homebridge-gira-client
Version:
Homebridge Plugin für Gira Homeserver 4 mit automatischer Geräteerkennung über IoT REST API
278 lines • 8.86 kB
JSON
{
"pluginAlias": "GiraHomeserver",
"pluginType": "platform",
"singular": true,
"schema": {
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string",
"default": "Gira Homeserver",
"required": true,
"description": "Name of the platform as it appears in HomeKit"
},
"host": {
"title": "Homeserver IP Address",
"type": "string",
"required": true,
"format": "hostname",
"description": "IP address or hostname of the Gira Homeserver 4"
},
"port": {
"title": "Port",
"type": "integer",
"default": 80,
"minimum": 1,
"maximum": 65535,
"description": "Port number for the Gira Homeserver (default: 80)"
},
"username": {
"title": "Username",
"type": "string",
"required": true,
"description": "Username for Gira Homeserver authentication"
},
"password": {
"title": "Password",
"type": "string",
"required": true,
"description": "Password for Gira Homeserver authentication"
},
"pollingInterval": {
"title": "Polling Interval (ms)",
"type": "integer",
"default": 30000,
"minimum": 5000,
"maximum": 300000,
"description": "Interval in milliseconds for polling device states (default: 30000)"
},
"debugMode": {
"title": "Debug Mode",
"type": "boolean",
"default": false,
"description": "Enable debug logging for troubleshooting"
},
"adminMode": {
"title": "Admin Mode",
"type": "boolean",
"default": false,
"description": "Use admin client registration for potentially broader access"
},
"forceCompleteAccess": {
"title": "Force Complete Access",
"type": "boolean",
"default": false,
"description": "Try multiple registration strategies to access all devices (experimental)"
},
"alternativeClientId": {
"title": "Alternative Client ID",
"type": "string",
"description": "Custom client identifier for API registration (advanced users only)"
},
"buildingStructure": {
"title": "Building Structure Settings",
"type": "object",
"properties": {
"useLocationHierarchy": {
"title": "Use Location Hierarchy",
"type": "boolean",
"default": false,
"description": "Include room names in device names for better organization"
},
"groupByFloor": {
"title": "Group by Floor",
"type": "boolean",
"default": false,
"description": "Include floor information in device names"
},
"groupByBuilding": {
"title": "Group by Building",
"type": "boolean",
"default": false,
"description": "Include building information in device names"
},
"customRoomMappings": {
"title": "Custom Room Name Mappings",
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map original room names to custom names (JSON object)"
}
}
},
"deviceFilters": {
"title": "Device Filters",
"type": "object",
"properties": {
"includeRooms": {
"title": "Include Rooms",
"type": "array",
"items": {
"type": "string"
},
"description": "Only include devices from these rooms (leave empty to include all)"
},
"excludeRooms": {
"title": "Exclude Rooms",
"type": "array",
"items": {
"type": "string"
},
"description": "Exclude devices from these rooms"
},
"includeTypes": {
"title": "Include Device Types",
"type": "array",
"items": {
"type": "string",
"enum": [
"switching", "dimming", "colored_light", "tunable_white",
"blinds", "trigger", "press_and_hold", "scene",
"heating", "cooling", "fan_coil", "sauna",
"audio", "sonos", "camera", "link",
"binary_status", "unsigned_status", "signed_status", "float_status", "text_status",
"unsigned_value", "signed_value", "percent_value", "temperature_value", "decimal_value",
"temperature", "humidity", "sensor", "weather", "energy"
]
},
"description": "Only include these device types (leave empty to include all supported types)"
},
"excludeTypes": {
"title": "Exclude Device Types",
"type": "array",
"items": {
"type": "string",
"enum": [
"switching", "dimming", "colored_light", "tunable_white",
"blinds", "trigger", "press_and_hold", "scene",
"heating", "cooling", "fan_coil", "sauna",
"audio", "sonos", "camera", "link",
"binary_status", "unsigned_status", "signed_status", "float_status", "text_status",
"unsigned_value", "signed_value", "percent_value", "temperature_value", "decimal_value",
"temperature", "humidity", "sensor", "weather", "energy"
]
},
"description": "Exclude these device types"
},
"includeTrades": {
"title": "Include Trades",
"type": "array",
"items": {
"type": "string"
},
"description": "Only include devices from these trades/functions (leave empty to include all)"
},
"excludeTrades": {
"title": "Exclude Trades",
"type": "array",
"items": {
"type": "string"
},
"description": "Exclude devices from these trades/functions"
}
}
},
"advanced": {
"title": "Advanced API Settings",
"type": "object",
"properties": {
"requestTimeout": {
"title": "Request Timeout (ms)",
"type": "integer",
"default": 30000,
"minimum": 5000,
"maximum": 120000,
"description": "Timeout for HTTP requests to the Gira API"
},
"maxRetries": {
"title": "Maximum Retries",
"type": "integer",
"default": 3,
"minimum": 0,
"maximum": 10,
"description": "Maximum number of retry attempts for failed API requests"
},
"enableDetailedLogging": {
"title": "Enable Detailed API Logging",
"type": "boolean",
"default": false,
"description": "Log detailed API request/response information (for debugging)"
}
}
}
}
},
"layout": [
{
"type": "fieldset",
"title": "Connection Settings",
"expandable": false,
"items": [
"name",
"host",
"port",
"username",
"password"
]
},
{
"type": "fieldset",
"title": "General Settings",
"expandable": true,
"items": [
"pollingInterval",
"debugMode"
]
},
{
"type": "fieldset",
"title": "Device Access Control",
"expandable": true,
"items": [
{
"type": "help",
"helpvalue": "<h5>Use these options if you're only seeing alarm devices instead of all your lights, blinds, etc.</h5>"
},
"adminMode",
"forceCompleteAccess",
"alternativeClientId"
]
},
{
"type": "fieldset",
"title": "Building Structure",
"expandable": true,
"items": [
"buildingStructure.useLocationHierarchy",
"buildingStructure.groupByFloor",
"buildingStructure.groupByBuilding",
"buildingStructure.customRoomMappings"
]
},
{
"type": "fieldset",
"title": "Device Filters",
"expandable": true,
"items": [
"deviceFilters.includeRooms",
"deviceFilters.excludeRooms",
"deviceFilters.includeTypes",
"deviceFilters.excludeTypes",
"deviceFilters.includeTrades",
"deviceFilters.excludeTrades"
]
},
{
"type": "fieldset",
"title": "Advanced API Settings",
"expandable": true,
"items": [
"advanced.requestTimeout",
"advanced.maxRetries",
"advanced.enableDetailedLogging"
]
}
]
}