Move trampoline files (boot-hook, watcher, overlay) into trampoline/ subdirectory. Add upstream Luma v2.3.1 source at repo root with our additions: - Page::Ha (4th nav tab) with placeholder empty state - HA tab config schema and default entity mapping (ha-home/) - Nav keys renamed: "home" → "start", new "ha" tab between Apps and Settings - All state.rs/view.rs/main.rs/tests.rs updated for 4-tab navigation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
106 lines
2.9 KiB
JSON
106 lines
2.9 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "Luma Home Tab Configuration",
|
|
"description": "Configuration for the Home Assistant tab in the Luma launcher on webOS TV",
|
|
"type": "object",
|
|
"required": ["version", "ha", "rooms"],
|
|
"properties": {
|
|
"version": {
|
|
"const": 1,
|
|
"description": "Schema version"
|
|
},
|
|
"ha": {
|
|
"type": "object",
|
|
"required": ["url", "token"],
|
|
"properties": {
|
|
"url": {
|
|
"type": "string",
|
|
"description": "Home Assistant WebSocket URL (wss://...)"
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"description": "Long-lived access token"
|
|
}
|
|
}
|
|
},
|
|
"weather": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entity_id": {
|
|
"type": "string",
|
|
"description": "Weather entity to display (e.g. weather.forecast_home)"
|
|
}
|
|
}
|
|
},
|
|
"vacuum": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entity_id": {
|
|
"type": "string",
|
|
"description": "Vacuum entity ID"
|
|
},
|
|
"cleaning_mode_entity": {
|
|
"type": "string",
|
|
"description": "Select entity for cleaning mode (vacuum/mop/vac_and_mop)"
|
|
},
|
|
"rooms": {
|
|
"type": "object",
|
|
"description": "Map of segment ID to display name",
|
|
"additionalProperties": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
"rooms": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["id", "name", "cards"],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "HA area_id or custom slug"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Display name"
|
|
},
|
|
"background": {
|
|
"type": "string",
|
|
"description": "Background image filename (served from config dir)"
|
|
},
|
|
"sensors": {
|
|
"type": "array",
|
|
"description": "Sensor entity IDs shown as badges in room header",
|
|
"items": { "type": "string" }
|
|
},
|
|
"cards": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["type", "entity_id"],
|
|
"properties": {
|
|
"type": {
|
|
"enum": ["toggle", "range", "climate", "action", "vacuum"],
|
|
"description": "Card type"
|
|
},
|
|
"entity_id": {
|
|
"type": "string",
|
|
"description": "HA entity ID"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Override display name (defaults to HA friendly_name)"
|
|
},
|
|
"icon": {
|
|
"type": "string",
|
|
"description": "Override icon name"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|