mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-05-02 21:52:26 +00:00
162 lines
3.8 KiB
JSON
162 lines
3.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"$ref": "#/$defs/items"
|
|
},
|
|
"required": ["title", "items"],
|
|
"additionalProperties": false
|
|
},
|
|
"$defs": {
|
|
"toggle": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entity": {
|
|
"$ref": "#/$defs/entity"
|
|
},
|
|
"name": {
|
|
"title": "Your familiar name",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"title": "Menu item type",
|
|
"description": "One of 'tap', 'template', 'toggle' or 'group'.",
|
|
"const": "toggle"
|
|
}
|
|
},
|
|
"required": ["entity", "name", "type"],
|
|
"additionalProperties": false
|
|
},
|
|
"template": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entity": {
|
|
"$ref": "#/$defs/entity"
|
|
},
|
|
"name": {
|
|
"title": "Your familiar name",
|
|
"type": "string"
|
|
},
|
|
"content": {
|
|
"title": "What to display (template)",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"title": "Menu item type",
|
|
"description": "One of 'tap', 'template', 'toggle' or 'group'.",
|
|
"const": "template"
|
|
},
|
|
"tap_action": {
|
|
"$ref": "#/$defs/action"
|
|
}
|
|
},
|
|
"required": ["name", "entity", "content", "type"],
|
|
"additionalProperties": false
|
|
},
|
|
"tap": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entity": {
|
|
"$ref": "#/$defs/entity"
|
|
},
|
|
"name": {
|
|
"title": "Your familiar name",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"title": "Menu item type",
|
|
"description": "One of 'tap', 'template', 'toggle' or 'group'.",
|
|
"const": "tap"
|
|
},
|
|
"service": {
|
|
"$ref": "#/$defs/entity",
|
|
"deprecated": true,
|
|
"title": "Schema change:",
|
|
"description": "Use 'tap_action' instead to mirror Home Assistant."
|
|
},
|
|
"tap_action": {
|
|
"$ref": "#/$defs/action"
|
|
}
|
|
},
|
|
"oneOf": [
|
|
{
|
|
"required": ["entity", "name", "type", "service"]
|
|
},
|
|
{
|
|
"required": ["entity", "name", "type", "tap_action"]
|
|
}
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"menu": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entity": {
|
|
"$ref": "#/$defs/entity"
|
|
},
|
|
"name": {
|
|
"title": "Your familiar name",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"title": "Menu item type",
|
|
"description": "One of 'tap', 'template', 'toggle' or 'group'.",
|
|
"const": "group"
|
|
},
|
|
"items": {
|
|
"$ref": "#/$defs/items"
|
|
}
|
|
},
|
|
"required": ["entity", "name", "title", "type", "items"],
|
|
"additionalProperties": false
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/$defs/toggle"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/template"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/tap"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/menu"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"entity": {
|
|
"title": "Home Assistant entity name",
|
|
"type": "string",
|
|
"pattern": "^[^.]+\\.[^.]+$"
|
|
},
|
|
"action": {
|
|
"title": "Action",
|
|
"description": "'confirm' field is optional.",
|
|
"type": "object",
|
|
"properties": {
|
|
"service": {
|
|
"$ref": "#/$defs/entity"
|
|
},
|
|
"confirm": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Confirm the action before execution as a precaution."
|
|
}
|
|
},
|
|
"required": ["service"]
|
|
}
|
|
}
|
|
}
|