UNPKG

homebridge-gira-client

Version:

Homebridge Plugin für Gira Homeserver 4 mit automatischer Geräteerkennung über IoT REST API

278 lines 8.86 kB
{ "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" ] } ] }