Skip to main content
Glama

Home Assistant MCP Server

blueprint-automation.json220 kB
{ "type": "object", "properties": { "blueprint": { "$ref": "#/definitions/Blueprint", "description": "The blueprint schema.\nhttps://www.home-assistant.io/docs/blueprint/schema/#the-blueprint-schema" }, "trigger": { "description": "Triggers describe events that should trigger the automation rule.\nhttps://www.home-assistant.io/docs/automation/basics/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "$ref": "#/definitions/CalendarTrigger" }, { "$ref": "#/definitions/ConversationTrigger" }, { "$ref": "#/definitions/DeviceTrigger" }, { "$ref": "#/definitions/EventTrigger" }, { "$ref": "#/definitions/GeolocationTrigger" }, { "$ref": "#/definitions/HomeAssistantTrigger" }, { "$ref": "#/definitions/MqttTrigger" }, { "$ref": "#/definitions/NumericStateTrigger" }, { "$ref": "#/definitions/PersistentNotificationTrigger" }, { "$ref": "#/definitions/StateTrigger" }, { "$ref": "#/definitions/SunTrigger" }, { "$ref": "#/definitions/TagTrigger" }, { "$ref": "#/definitions/TemplateTrigger" }, { "$ref": "#/definitions/TimeTrigger" }, { "$ref": "#/definitions/TimePatternTrigger" }, { "$ref": "#/definitions/WebhookTrigger" }, { "$ref": "#/definitions/ZoneTrigger" }, { "type": "array", "items": { "$ref": "#/definitions/Trigger" } } ] }, "triggers": { "description": "Triggers describe events that should trigger the automation rule.\nhttps://www.home-assistant.io/docs/automation/basics/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "$ref": "#/definitions/CalendarTrigger" }, { "$ref": "#/definitions/ConversationTrigger" }, { "$ref": "#/definitions/DeviceTrigger" }, { "$ref": "#/definitions/EventTrigger" }, { "$ref": "#/definitions/GeolocationTrigger" }, { "$ref": "#/definitions/HomeAssistantTrigger" }, { "$ref": "#/definitions/MqttTrigger" }, { "$ref": "#/definitions/NumericStateTrigger" }, { "$ref": "#/definitions/PersistentNotificationTrigger" }, { "$ref": "#/definitions/StateTrigger" }, { "$ref": "#/definitions/SunTrigger" }, { "$ref": "#/definitions/TagTrigger" }, { "$ref": "#/definitions/TemplateTrigger" }, { "$ref": "#/definitions/TimeTrigger" }, { "$ref": "#/definitions/TimePatternTrigger" }, { "$ref": "#/definitions/WebhookTrigger" }, { "$ref": "#/definitions/ZoneTrigger" }, { "type": "array", "items": { "$ref": "#/definitions/Trigger" } } ] }, "trigger_variables": { "description": "Available in trigger templates with the difference that only limited templates can be used to pass a value to the trigger variable.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} }, "action": { "description": "The action(s) which will be performed when a rule is triggered and all conditions are met. For example, it can turn a light on, set the temperature on your thermostat or activate a scene.\nhttps://www.home-assistant.io/docs/automation/basics/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "actions": { "description": "The action(s) which will be performed when a rule is triggered and all conditions are met. For example, it can turn a light on, set the temperature on your thermostat or activate a scene.\nhttps://www.home-assistant.io/docs/automation/basics/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "id": { "description": "A unique identifier for this automation.\nDo not use the same twice, ever!\nhttps://www.home-assistant.io/docs/automation/", "type": "string" }, "alias": { "description": "Alias will be used to generate an entity_id from.\nhttps://www.home-assistant.io/docs/automation/", "type": "string" }, "description": { "description": "Description of the automation.\nThis is helpful to know what the automation does.\nhttps://www.home-assistant.io/docs/automation/", "type": "string" }, "initial_state": { "description": "When you create a new automation, it will be enabled unless you explicitly add initial_state: false to it or turn it off manually via UI/another automation/developer tools.\nIn case automations need to be always enabled or disabled when Home Assistant starts, then you can set the initial_state in your automations. Otherwise, the previous state will be restored.\nhttps://www.home-assistant.io/docs/automation/yaml/#initial_state", "type": "boolean" }, "max": { "description": "For both queued and parallel modes, configuration option max controls the maximum number of runs that can be executing and/or queued up at a time. The default is 10.\nhttps://www.home-assistant.io/docs/automation/modes/", "minimum": 2, "type": "number" }, "mode": { "description": "The automation's mode configuration option controls what happens when the automation is triggered while the actions are still running from a previous trigger.\nhttps://www.home-assistant.io/docs/automation/modes/", "enum": ["parallel", "queued", "restart", "single"], "type": "string" }, "max_exceeded": { "description": "When `max` is exceeded (which is effectively 1 for `single` mode) a log message will be emitted to indicate this has happened. This controls the severity level of that log message\nhttps://www.home-assistant.io/docs/automation/modes/", "enum": [ "critical", "debug", "error", "fatal", "info", "notset", "silent", "warn", "warning" ], "type": "string" }, "trace": { "description": "Controls tracing settings of this automation.\nhttps://www.home-assistant.io/docs/automation/troubleshooting", "type": "object", "properties": { "stored_traces": { "type": "integer", "minimum": 0, "description": "The number of automation traces tha are stored for this automation.\nhttps://www.home-assistant.io/docs/automation/yaml/#number-of-debug-traces-stored" } }, "additionalProperties": false }, "variables": { "description": "Variables that will be available inside your templates and conditions.\nhttps://www.home-assistant.io/docs/automation/basics/", "type": "object", "additionalProperties": {} }, "condition": { "description": "Conditions are optional tests that can limit an automation rule to only work in your specific use cases. A condition will test against the current state of the system. This includes the current time, devices, people and other things like the sun.\nhttps://www.home-assistant.io/docs/automation/basics/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] }, "conditions": { "description": "Conditions are optional tests that can limit an automation rule to only work in your specific use cases. A condition will test against the current state of the system. This includes the current time, devices, people and other things like the sun.\nhttps://www.home-assistant.io/docs/automation/basics/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] } }, "additionalProperties": false, "required": ["blueprint"], "definitions": { "Blueprint": { "type": "object", "properties": { "author": { "description": "Defines the name of the author of this Blueprint\nhttps://www.home-assistant.io/docs/blueprint/schema/#author", "type": "string" }, "description": { "description": "The description of the blueprint. While optional, this field is highly recommended. The description can include Markdown.\nhttps://www.home-assistant.io/docs/blueprint/schema/#description", "type": "string" }, "domain": { "description": "The domain name this blueprint provides a blueprint for.\nhttps://www.home-assistant.io/docs/blueprint/schema/#domain", "type": "string" }, "homeassistant": { "description": "Home Assistant requirements for this Blueprint.", "type": "object", "properties": { "min_version": { "description": "The minimal version number of Home Assistant Core that is needed for this Blueprint.", "type": "string" } }, "additionalProperties": false }, "input": { "description": "These are the input fields that the consumer of your blueprint can provide using YAML definition, or via a configuration form in the UI.\nhttps://www.home-assistant.io/docs/blueprint/schema/#input", "type": "object", "additionalProperties": { "anyOf": [ { "$ref": "#/definitions/BlueprintInputSchema" }, { "$ref": "#/definitions/BlueprintInputSectionSchema" } ] } }, "name": { "description": "The name of the blueprint. Keep this short and descriptive.\nhttps://www.home-assistant.io/docs/blueprint/schema/#name", "type": "string" }, "source_url": { "description": "The URL to the online location where this Blueprint was imported from. Generally there is no need to add this, in the future this might be used for updating Blueprints.", "type": "string" } }, "additionalProperties": false, "required": ["domain", "name"] }, "BlueprintInputSchema": { "type": "object", "properties": { "name": { "description": "The name of the input field.\nhttps://www.home-assistant.io/docs/blueprint/schema/#name", "type": "string" }, "description": { "description": "A short description of the input field. Keep this short and descriptive.\nhttps://www.home-assistant.io/docs/blueprint/schema/#description", "type": "string" }, "default": { "description": "The default value of this input, in case the input is not provided by the user of this blueprint.\nhttps://www.home-assistant.io/docs/blueprint/schema/#default" }, "selector": { "description": "The default value of this input, in case the input is not provided by the user of this blueprint.\nhttps://www.home-assistant.io/docs/blueprint/schema/#default", "anyOf": [ { "$ref": "#/definitions/ActionSelector" }, { "$ref": "#/definitions/AddonSelector" }, { "$ref": "#/definitions/AreaSelector" }, { "$ref": "#/definitions/AssistPipelineSelector" }, { "$ref": "#/definitions/AttributeSelector" }, { "$ref": "#/definitions/BackupLocationSelector" }, { "$ref": "#/definitions/BooleanSelector" }, { "$ref": "#/definitions/ColorRGBSelector" }, { "$ref": "#/definitions/ColorTempSelector" }, { "$ref": "#/definitions/ConditionSelector" }, { "$ref": "#/definitions/ConfigEntrySelector" }, { "$ref": "#/definitions/ConstantSelector" }, { "$ref": "#/definitions/ConversationAgentSelector" }, { "$ref": "#/definitions/CountrySelector" }, { "$ref": "#/definitions/DateSelector" }, { "$ref": "#/definitions/DateTimeSelector" }, { "$ref": "#/definitions/DeviceSelector" }, { "$ref": "#/definitions/DurationSelector" }, { "$ref": "#/definitions/EntitySelector" }, { "$ref": "#/definitions/FloorSelector" }, { "$ref": "#/definitions/IconSelector" }, { "$ref": "#/definitions/LabelSelector" }, { "$ref": "#/definitions/LanguageSelector" }, { "$ref": "#/definitions/LocationSelector" }, { "$ref": "#/definitions/MediaSelector" }, { "$ref": "#/definitions/NumberSelector" }, { "$ref": "#/definitions/ObjectSelector" }, { "$ref": "#/definitions/QRCodeSelector" }, { "$ref": "#/definitions/SelectSelector" }, { "$ref": "#/definitions/TargetSelector" }, { "$ref": "#/definitions/TemplateSelector" }, { "$ref": "#/definitions/TextSelector" }, { "$ref": "#/definitions/ThemeSelector" }, { "$ref": "#/definitions/TimeSelector" }, { "$ref": "#/definitions/TriggerSelector" } ] } }, "additionalProperties": false }, "ActionSelector": { "type": "object", "properties": { "action": { "description": "The action selector allows the user to input one or more sequences of actions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#action-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["action"] }, "Record<string,never>": { "type": "object", "additionalProperties": false }, "AddonSelector": { "type": "object", "properties": { "addon": { "description": "The add-on selector allows the user to input an add-on slug. On the user interface, it will list all installed add-ons and use the slug of the selected add-on.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#add-on-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["addon"] }, "AreaSelector": { "type": "object", "properties": { "area": { "description": "The area selector shows an area finder that can pick a single area. The value of the input will be the area ID of the user-selected area.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#area-selector", "anyOf": [ { "type": "object", "properties": { "device": { "description": "When device options are provided, the list of areas is filtered by areas that at least provide one device that matches the given conditions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#area-selector", "anyOf": [ { "$ref": "#/definitions/DeviceSelectorFilter" }, { "type": "array", "items": { "$ref": "#/definitions/DeviceSelectorFilter" } } ] }, "entity": { "description": "When entity options are provided, the list of areas is filtered by areas that at least provide one entity that matches the given conditions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#area-selector", "anyOf": [ { "$ref": "#/definitions/EntitySelectorFilter" }, { "type": "array", "items": { "$ref": "#/definitions/EntitySelectorFilter" } } ] }, "multiple": { "description": "Allows selecting multiple areas. If set to `true`, the resulting value of this selector will be a list instead of a single string value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#area-selector", "type": "boolean" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["area"] }, "DeviceSelectorFilter": { "type": "object", "properties": { "integration": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$", "description": "Can be set to an integration domain. Limits the list of devices to devices provided by the set integration domain.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#device-selector", "type": "string" }, "manufacturer": { "description": "When set, it limits the list of devices to devices provided by the set manufacturer name.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#device-selector", "type": "string" }, "model": { "description": "When set, it limits the list of devices to devices that have the set model.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#device-selector", "type": "string" } }, "additionalProperties": false }, "EntitySelectorFilter": { "type": "object", "properties": { "integration": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$", "description": "Can be set to an integration domain. Limits the list of devices that provide entities by the set integration domain.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#entity-selector", "type": "string" }, "domain": { "description": "Limits the list of devices that provide entities of a certain domain.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#entity-selector", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "device_class": { "description": "Limits the list of entities to entities that have a certain device class.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#entity-selector", "anyOf": [ { "type": "array", "items": { "$ref": "#/definitions/DeviceClasses" } }, { "enum": [ "apparent_power", "aqi", "area", "atmospheric_pressure", "awning", "battery", "battery_charging", "blind", "blood_glucose_concentration", "carbon_dioxide", "carbon_monoxide", "cold", "conductivity", "connectivity", "current", "curtain", "damper", "data_rate", "data_size", "date", "distance", "door", "duration", "energy", "energy_distance", "energy_storage", "enum", "frequency", "garage", "garage_door", "gas", "gate", "heat", "humidity", "illuminance", "irradiance", "light", "lock", "moisture", "monetary", "motion", "moving", "nitrogen_dioxide", "nitrogen_monoxide", "nitrous_oxide", "occupancy", "opening", "outlet", "ozone", "ph", "plug", "pm1", "pm10", "pm25", "power", "power_factor", "precipitation", "precipitation_intensity", "presence", "pressure", "problem", "reactive_power", "receiver", "running", "safety", "shade", "shutter", "signal_strength", "smoke", "sound", "sound_pressure", "speaker", "speed", "sulphur_dioxide", "switch", "tamper", "temperature", "timestamp", "tv", "update", "vibration", "volatile_organic_compounds", "volatile_organic_compounds_parts", "voltage", "volume", "volume_flow_rate", "volume_storage", "water", "weight", "wind_speed", "window" ], "type": "string" } ] }, "supported_features": { "description": "Limits the list of entities to entities that have a certain supported feature.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#entity-selector", "anyOf": [ { "type": "array", "items": { "$ref": "#/definitions/SupportedFeature" } }, { "enum": [ "camera.AlarmControlPanelEntityFeature.ARM_AWAY", "camera.AlarmControlPanelEntityFeature.ARM_CUSTOM_BYPASS", "camera.AlarmControlPanelEntityFeature.ARM_HOME", "camera.AlarmControlPanelEntityFeature.ARM_NIGHT", "camera.AlarmControlPanelEntityFeature.ARM_VACATION", "camera.AlarmControlPanelEntityFeature.TRIGGER", "camera.CameraEntityFeature.ON_OFF", "camera.CameraEntityFeature.STREAM", "climate.ClimateEntityFeature.AUX_HEAT", "climate.ClimateEntityFeature.FAN_MODE", "climate.ClimateEntityFeature.PRESET_MODE", "climate.ClimateEntityFeature.SWING_HORIZONTAL_MODE", "climate.ClimateEntityFeature.SWING_MODE", "climate.ClimateEntityFeature.TARGET_HUMIDITY", "climate.ClimateEntityFeature.TARGET_TEMPERATURE", "climate.ClimateEntityFeature.TARGET_TEMPERATURE_RANGE", "climate.ClimateEntityFeature.TURN_OFF", "climate.ClimateEntityFeature.TURN_ON", "cover.CoverEntityFeature.CLOSE", "cover.CoverEntityFeature.CLOSE_TILT", "cover.CoverEntityFeature.OPEN", "cover.CoverEntityFeature.OPEN_TILT", "cover.CoverEntityFeature.SET_POSITION", "cover.CoverEntityFeature.SET_TILT_POSITION", "cover.CoverEntityFeature.STOP", "cover.CoverEntityFeature.STOP_TILT", "fan.FanEntityFeature.DIRECTION", "fan.FanEntityFeature.OSCILLATE", "fan.FanEntityFeature.PRESET_MODE", "fan.FanEntityFeature.SET_SPEED", "fan.FanEntityFeature.TURN_OFF", "fan.FanEntityFeature.TURN_ON", "light.LightEntityFeature.EFFECT", "light.LightEntityFeature.FLASH", "light.LightEntityFeature.TRANSITION", "lock.LockEntityFeature.OPEN", "update.UpdateEntityFeature.BACKUP", "update.UpdateEntityFeature.INSTALL", "update.UpdateEntityFeature.PROGRESS", "update.UpdateEntityFeature.RELEASE_NOTES", "update.UpdateEntityFeature.SPECIFIC_VERSION", "vacuum.VacuumEntityFeature.BATTERY", "vacuum.VacuumEntityFeature.CLEAN_SPOT", "vacuum.VacuumEntityFeature.FAN_SPEED", "vacuum.VacuumEntityFeature.LOCATE", "vacuum.VacuumEntityFeature.MAP", "vacuum.VacuumEntityFeature.PAUSE", "vacuum.VacuumEntityFeature.RETURN_HOME", "vacuum.VacuumEntityFeature.SEND_COMMAND", "vacuum.VacuumEntityFeature.START", "vacuum.VacuumEntityFeature.STATE", "vacuum.VacuumEntityFeature.STATUS", "vacuum.VacuumEntityFeature.STOP", "vacuum.VacuumEntityFeature.TURN_OFF", "vacuum.VacuumEntityFeature.TURN_ON", "weather.WeatherEntityFeature.FORECAST_DAILY", "weather.WeatherEntityFeature.FORECAST_HOURLY", "weather.WeatherEntityFeature.FORECAST_TWICE_DAILY" ], "type": "string" } ] } }, "additionalProperties": false }, "DeviceClasses": { "enum": [ "apparent_power", "aqi", "area", "atmospheric_pressure", "awning", "battery", "battery_charging", "blind", "blood_glucose_concentration", "carbon_dioxide", "carbon_monoxide", "cold", "conductivity", "connectivity", "current", "curtain", "damper", "data_rate", "data_size", "date", "distance", "door", "duration", "energy", "energy_distance", "energy_storage", "enum", "frequency", "garage", "garage_door", "gas", "gate", "heat", "humidity", "illuminance", "irradiance", "light", "lock", "moisture", "monetary", "motion", "moving", "nitrogen_dioxide", "nitrogen_monoxide", "nitrous_oxide", "occupancy", "opening", "outlet", "ozone", "ph", "plug", "pm1", "pm10", "pm25", "power", "power_factor", "precipitation", "precipitation_intensity", "presence", "pressure", "problem", "reactive_power", "receiver", "running", "safety", "shade", "shutter", "signal_strength", "smoke", "sound", "sound_pressure", "speaker", "speed", "sulphur_dioxide", "switch", "tamper", "temperature", "timestamp", "tv", "update", "vibration", "volatile_organic_compounds", "volatile_organic_compounds_parts", "voltage", "volume", "volume_flow_rate", "volume_storage", "water", "weight", "wind_speed", "window" ], "type": "string" }, "SupportedFeature": { "enum": [ "camera.AlarmControlPanelEntityFeature.ARM_AWAY", "camera.AlarmControlPanelEntityFeature.ARM_CUSTOM_BYPASS", "camera.AlarmControlPanelEntityFeature.ARM_HOME", "camera.AlarmControlPanelEntityFeature.ARM_NIGHT", "camera.AlarmControlPanelEntityFeature.ARM_VACATION", "camera.AlarmControlPanelEntityFeature.TRIGGER", "camera.CameraEntityFeature.ON_OFF", "camera.CameraEntityFeature.STREAM", "climate.ClimateEntityFeature.AUX_HEAT", "climate.ClimateEntityFeature.FAN_MODE", "climate.ClimateEntityFeature.PRESET_MODE", "climate.ClimateEntityFeature.SWING_HORIZONTAL_MODE", "climate.ClimateEntityFeature.SWING_MODE", "climate.ClimateEntityFeature.TARGET_HUMIDITY", "climate.ClimateEntityFeature.TARGET_TEMPERATURE", "climate.ClimateEntityFeature.TARGET_TEMPERATURE_RANGE", "climate.ClimateEntityFeature.TURN_OFF", "climate.ClimateEntityFeature.TURN_ON", "cover.CoverEntityFeature.CLOSE", "cover.CoverEntityFeature.CLOSE_TILT", "cover.CoverEntityFeature.OPEN", "cover.CoverEntityFeature.OPEN_TILT", "cover.CoverEntityFeature.SET_POSITION", "cover.CoverEntityFeature.SET_TILT_POSITION", "cover.CoverEntityFeature.STOP", "cover.CoverEntityFeature.STOP_TILT", "fan.FanEntityFeature.DIRECTION", "fan.FanEntityFeature.OSCILLATE", "fan.FanEntityFeature.PRESET_MODE", "fan.FanEntityFeature.SET_SPEED", "fan.FanEntityFeature.TURN_OFF", "fan.FanEntityFeature.TURN_ON", "light.LightEntityFeature.EFFECT", "light.LightEntityFeature.FLASH", "light.LightEntityFeature.TRANSITION", "lock.LockEntityFeature.OPEN", "update.UpdateEntityFeature.BACKUP", "update.UpdateEntityFeature.INSTALL", "update.UpdateEntityFeature.PROGRESS", "update.UpdateEntityFeature.RELEASE_NOTES", "update.UpdateEntityFeature.SPECIFIC_VERSION", "vacuum.VacuumEntityFeature.BATTERY", "vacuum.VacuumEntityFeature.CLEAN_SPOT", "vacuum.VacuumEntityFeature.FAN_SPEED", "vacuum.VacuumEntityFeature.LOCATE", "vacuum.VacuumEntityFeature.MAP", "vacuum.VacuumEntityFeature.PAUSE", "vacuum.VacuumEntityFeature.RETURN_HOME", "vacuum.VacuumEntityFeature.SEND_COMMAND", "vacuum.VacuumEntityFeature.START", "vacuum.VacuumEntityFeature.STATE", "vacuum.VacuumEntityFeature.STATUS", "vacuum.VacuumEntityFeature.STOP", "vacuum.VacuumEntityFeature.TURN_OFF", "vacuum.VacuumEntityFeature.TURN_ON", "weather.WeatherEntityFeature.FORECAST_DAILY", "weather.WeatherEntityFeature.FORECAST_HOURLY", "weather.WeatherEntityFeature.FORECAST_TWICE_DAILY" ], "type": "string" }, "AssistPipelineSelector": { "type": "object", "properties": { "assist_pipeline": { "description": "The assist pipeline selector shows all available assist pipelines (assistants) of which one can be selected.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#assist-pipeline-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["assist_pipeline"] }, "AttributeSelector": { "type": "object", "properties": { "attribute": { "description": "The attributes selector shows a list of state attribites from a provided entity of which one can be selected.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#attribute-selector", "type": "object", "properties": { "entity_id": { "pattern": "^.*..*$", "description": "The entity ID of which an state attribute can be selected from.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#attribute-selector", "type": "string" } }, "additionalProperties": false, "required": ["entity_id"] } }, "additionalProperties": false, "required": ["attribute"] }, "BackupLocationSelector": { "type": "object", "properties": { "backup_location": { "description": "The backup location selector shows a list of places a backup could go, depending on what you have configured in storage.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#backup-location-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["backup_location"] }, "BooleanSelector": { "type": "object", "properties": { "boolean": { "description": "The boolean selector shows a toggle that allows the user to turn on or off the selected option.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#boolean-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["boolean"] }, "ColorRGBSelector": { "type": "object", "properties": { "color_rgb": { "description": "The date selector shows a date input that allows the user to specify a date.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#date-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["color_rgb"] }, "ColorTempSelector": { "type": "object", "properties": { "color_temp": { "description": "https://www.home-assistant.io/docs/blueprint/selectors/#color-temperature-selector", "anyOf": [ { "type": "object", "properties": { "min_mireds": { "type": "integer", "minimum": 0, "description": "The minimum color temperature in mireds.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#color-temperature-selector" }, "max_mireds": { "type": "integer", "minimum": 0, "description": "The maximum color temperature in mireds.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#color-temperature-selector" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["color_temp"] }, "ConditionSelector": { "type": "object", "properties": { "condition": { "description": "The condition selector allows the user to input one or more conditions..\nhttps://www.home-assistant.io/docs/blueprint/selectors/#condition-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["condition"] }, "ConfigEntrySelector": { "type": "object", "properties": { "config_entry": { "description": "The config entry selector allows the user to select an integration configuration entry. The selector returns the entry ID of the selected integration configuration entry.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#config-entry-selector", "anyOf": [ { "type": "object", "properties": { "integration": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$", "description": "Can be set to an integration domain. Limits the list of config entries provided by the set integration domain.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#config-entry-selector", "type": "string" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["config_entry"] }, "ConstantSelector": { "type": "object", "properties": { "constant": { "description": "The constant selector shows a toggle that allows the user to enable the selected option. This is similar to the boolean selector, the difference is that the constant selector has no value when it's not enabled.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#constant-selector", "description": "The constant selector shows a toggle that allows the user to enable the selected option. This is similar to the boolean selector, the difference is that the constant selector has no value when it’s not enabled.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#constant-selector", "type": "object", "properties": { "label": { "description": "The label that is show in the UI for this constant.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#constant-selector", "type": "string" }, "value": { "description": "Value that is returned when this constant is enabled by the user\nhttps://www.home-assistant.io/docs/blueprint/selectors/#constant-selector", "type": "string" } }, "additionalProperties": false, "required": ["label", "value"] } }, "additionalProperties": false, "required": ["constant"] }, "ConversationAgentSelector": { "type": "object", "properties": { "conversation_agent": { "description": "The conversation agent selector allows picking a conversation agent.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#conversation-agent-selector", "anyOf": [ { "type": "object", "properties": { "language": { "description": "Limits the list of conversation agents to those supporting the specified language.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#conversation-agent-selector", "type": "string" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["conversation_agent"] }, "CountrySelector": { "type": "object", "properties": { "country": { "description": "The country selector allows a user to pick a country from a list of countries.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#country-selector", "anyOf": [ { "type": "object", "properties": { "countries": { "description": "A list of countries to pick from, this should be ISO 3166 country codes.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#country-selector", "type": "array", "items": { "type": "string" } }, "no_sort": { "description": "Should the options be sorted by name, if set to true, the order of the provided countries is kept.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#country-selector", "type": "boolean" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["country"] }, "DateSelector": { "type": "object", "properties": { "date": { "description": "The date selector shows a date input that allows the user to specify a date.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#date-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["date"] }, "DateTimeSelector": { "type": "object", "properties": { "datetime": { "description": "The date selector shows a date and time input that allows the user to specify a date with a specific time.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#date--time-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["datetime"] }, "DeviceSelector": { "type": "object", "properties": { "device": { "description": "The device selector shows a device finder that can pick a single device.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#device-selector", "anyOf": [ { "type": "object", "properties": { "entity": { "description": "When entity options are provided, the list of devices is filtered by devices that at least provide one entity that matches the given conditions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#device-selector", "anyOf": [ { "$ref": "#/definitions/EntitySelectorFilter" }, { "type": "array", "items": { "$ref": "#/definitions/EntitySelectorFilter" } } ] }, "filter": { "description": "When filter options are provided, the list of devices is filtered by devices that at least provide one entity that matches the given conditions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#device-selector", "anyOf": [ { "$ref": "#/definitions/DeviceSelectorFilter" }, { "type": "array", "items": { "$ref": "#/definitions/DeviceSelectorFilter" } } ] }, "integration": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "You can use filter parameter to filter devices\"." }, "manufacturer": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "You can use filter parameter to filter devices\"." }, "model": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "You can use filter parameter to filter devices\"." }, "multiple": { "description": "Allows selecting multiple devices. If set to `true`, the resulting value of this selector will be a list instead of a single string value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#device-selector", "type": "boolean" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["device"] }, "DurationSelector": { "type": "object", "properties": { "duration": { "description": "The duration select allow the user to select a time duration. This can be helpful for, e.g., delays or offsets.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#duration-selector", "anyOf": [ { "type": "object", "properties": { "enable_day": { "description": "Set to true to display the input as a multi-line text box on the user interface.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#duration-selector", "type": "boolean" }, "enable_millisecond": { "description": "When true, the duration selector will allow selecting milliseconds.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#duration-selector", "type": "boolean" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["duration"] }, "EntitySelector": { "type": "object", "properties": { "entity": { "description": "The entity selector shows an entity finder that can pick a single entity.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#entity-selector", "anyOf": [ { "type": "object", "properties": { "exclude_entities": { "description": "List of entity IDs to exclude from the selectable list.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#entity-selector", "type": "array", "items": { "type": "string", "pattern": "^.*..*$" } }, "include_entities": { "description": "List of entity IDs to limit the selectable list to.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#entity-selector", "type": "array", "items": { "type": "string", "pattern": "^.*..*$" } }, "integration": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "You can use filter parameter to filter entities\"." }, "domain": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "You can use filter parameter to filter entities\"." }, "device_class": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "You can use filter parameter to filter entities\"." }, "filter": { "description": "When filter options are provided, the entities are limited by entities that at least match the given conditions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#entity-selector", "anyOf": [ { "$ref": "#/definitions/EntitySelectorFilter" }, { "type": "array", "items": { "$ref": "#/definitions/EntitySelectorFilter" } } ] }, "multiple": { "description": "Allows selecting multiple devices. If set to `true`, the resulting value of this selector will be a list instead of a single string value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#entity-selector", "type": "boolean" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["entity"] }, "FloorSelector": { "type": "object", "properties": { "floor": { "description": "The icon selector shows an icon picker that allows the user to select an icon.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#floor-selector", "anyOf": [ { "type": "object", "properties": { "device": { "description": "When device options are provided, the list of floors is filtered by floors that have at least one device matching the given conditions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#floor-selector", "anyOf": [ { "$ref": "#/definitions/DeviceSelectorFilter" }, { "type": "array", "items": { "$ref": "#/definitions/DeviceSelectorFilter" } } ] }, "entity": { "description": "When entity options are provided, the list only includes floors that at least have one entity that matches the given conditions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#floor-selector", "anyOf": [ { "$ref": "#/definitions/EntitySelectorFilter" }, { "type": "array", "items": { "$ref": "#/definitions/EntitySelectorFilter" } } ] }, "multiple": { "description": "Allows selecting multiple floors. If set to true, the resulting value of this selector will be a list instead of a single string value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#floor-selector", "type": "boolean" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["floor"] }, "IconSelector": { "type": "object", "properties": { "icon": { "description": "The icon selector shows an icon picker that allows the user to select an icon.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#icon-selector", "anyOf": [ { "type": "object", "properties": { "placeholder": { "description": "Placeholder icon to show, when no icon is selected.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#icon-selector", "type": "string" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["icon"] }, "LabelSelector": { "type": "object", "properties": { "label": { "description": "The label selector shows a label finder that can pick labels.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#label-selector", "anyOf": [ { "type": "object", "properties": { "multiple": { "description": "Allows selecting multiple labels. If set to true, the resulting value of this selector will be a list instead of a single string value\nhttps://www.home-assistant.io/docs/blueprint/selectors/#label-selector", "type": "boolean" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["label"] }, "LanguageSelector": { "type": "object", "properties": { "language": { "description": "The language selector allows a user to pick a language from a list of languages.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#language-selector", "anyOf": [ { "type": "object", "properties": { "languages": { "description": "A list of languages to pick from, this should be RFC 5646 languages codes.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#language-selector", "type": "array", "items": { "type": "string" } }, "native_name": { "description": "Should the name of the languages be shown in the language of the user, or in the language itself.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#language-selector", "type": "boolean" }, "no_sort": { "description": "Should the options be sorted by name, if set to true, the order of the provided languages is kept.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#language-selector", "type": "boolean" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["language"] }, "LocationSelector": { "type": "object", "properties": { "location": { "description": "The icon selector shows an icon picker that allows the user to select an icon.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#location-selector", "anyOf": [ { "type": "object", "properties": { "icon": { "description": "An optional icon to show on the map.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#location-selector", "type": "string" }, "radius": { "description": "Allow selecting the radius of the location. If enabled, the radius will be returned in meters.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#location-selector", "type": "boolean" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["location"] }, "MediaSelector": { "type": "object", "properties": { "media": { "description": "The media selector is a powerful selector that allows a user to easily select media to play on a media device.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#media-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["media"] }, "NumberSelector": { "type": "object", "properties": { "number": { "description": "The number selector shows either a number input or a slider input, that allows the user to specify a numeric value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#number-selector", "type": "object", "properties": { "max": { "description": "The maximum user-settable number value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#number-selector", "type": "number" }, "min": { "description": "The minimal user-settable number value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#number-selector", "type": "number" }, "mode": { "description": "This can be either box or slider mode.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#number-selector", "enum": ["box", "slider"], "type": "string" }, "step": { "description": "The step value of the number value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#number-selector", "type": "number" }, "unit_of_measurement": { "description": "Unit of measurement in which the number value is expressed in.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#number-selector", "type": "string" } }, "additionalProperties": false, "required": ["max", "min"] } }, "additionalProperties": false, "required": ["number"] }, "ObjectSelector": { "type": "object", "properties": { "object": { "description": "The object selector can be used to input arbitrary data in YAML form. This is useful for e.g. lists and dictionaries like service data.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#object-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["object"] }, "QRCodeSelector": { "type": "object", "properties": { "qr_code": { "description": "The QR code selector shows a QR code.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#qr-code-selector", "type": "object", "properties": { "data": { "description": "The data that should be represented in the QR code.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#qr-code-selector" }, "scale": { "type": "integer", "minimum": 0, "description": "The scale factor to use, this will make the QR code bigger or smaller.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#qr-code-selector" }, "error_correction_level": { "description": "The error correction level of the QR code, with a higher error correction level the QR code can be scanned even when some pieces are missing.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#qr-code-selector", "enum": ["high", "low", "medium", "quartile"], "type": "string" } }, "additionalProperties": false, "required": ["data"] } }, "additionalProperties": false, "required": ["qr_code"] }, "SelectSelector": { "type": "object", "properties": { "select": { "description": "The select selector shows a list of available options from which the user can choose.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#select-selector", "type": "object", "properties": { "custom_value": { "description": "Allows the user to enter and select a custom value (or multiple custom values in addition to the listed options if `multiple` is set to true).\nhttps://www.home-assistant.io/docs/blueprint/selectors/#select-selector", "type": "boolean" }, "mode": { "description": "This can be either `list` or `dropdown` mode. when not specificied, small lists (5 items or less), are displayed as radio buttons. When more items are added, a dropdown list is used.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#select-selector", "enum": ["dropdown", "list"], "type": "string" }, "multiple": { "description": "Allows selecting multiple options. If set to `true`, the resulting value of this selector will be a list instead of a single string value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#select-selector", "type": "boolean" }, "options": { "description": "List of options that the user can choose from.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#select-selector", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "array", "items": { "type": "object", "properties": { "label": { "description": "The description to show in the UI for this item.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#select-selector", "type": "string" }, "value": { "description": "The value to return when this label is selected.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#select-selector", "type": "string" } }, "additionalProperties": false, "required": ["label", "value"] } } ] } }, "additionalProperties": false, "required": ["options"] } }, "additionalProperties": false, "required": ["select"] }, "TargetSelector": { "type": "object", "properties": { "target": { "description": "The target selector is a rather special selector, allowing the user to select targeted entities, devices or areas for service calls.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#target-selector", "anyOf": [ { "type": "object", "properties": { "device": { "description": "When device options are provided, the targets are limited by devices that at least match the given conditions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#target-selector", "anyOf": [ { "$ref": "#/definitions/DeviceSelectorFilter" }, { "type": "array", "items": { "$ref": "#/definitions/DeviceSelectorFilter" } } ] }, "entity": { "description": "When entity options are provided, the targets are limited by entities that at least match the given conditions.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#target-selector", "anyOf": [ { "$ref": "#/definitions/EntitySelectorFilter" }, { "type": "array", "items": { "$ref": "#/definitions/EntitySelectorFilter" } } ] } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["target"] }, "TemplateSelector": { "type": "object", "properties": { "template": { "description": "The template can be used for allowing the user to input a Jinja2 template.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#template-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["template"] }, "TextSelector": { "type": "object", "properties": { "text": { "description": "The text selector can be used to input a text string.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#text-selector", "anyOf": [ { "type": "object", "properties": { "multiline": { "description": "Set to true to display the input as a multi-line text box on the user interface.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#text-selector", "type": "boolean" }, "multiple": { "description": "llows adding list of text strings. If set to true, the resulting value of this selector will be a list instead of a single string value.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#text-selector", "type": "boolean" }, "prefix": { "description": "Allows adding a prefix to the input field.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#text-selector", "type": "string" }, "suffix": { "description": "Allows adding a suffix to the input field.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#text-selector", "type": "string" }, "type": { "description": "The type of input. This is a browser hint, which can improve the client side validation of the input. The value isn't validated by the backend.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#text-selector", "enum": [ "color", "date", "datetime-local", "email", "month", "number", "password", "search", "tel", "text", "time", "url", "week" ], "type": "string" } }, "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["text"] }, "ThemeSelector": { "type": "object", "properties": { "theme": { "description": "The theme selector allows for selecting a theme from the available themes installed in Home Assistant.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#theme-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["theme"] }, "TimeSelector": { "type": "object", "properties": { "time": { "description": "The time selector shows a time input that allows the user to specify a time of the day.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#time-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["time"] }, "TriggerSelector": { "type": "object", "properties": { "trigger": { "description": "The triggers selector allows the user to input one or more triggers. On the user interface, the trigger part of the automation editor is shown.\nhttps://www.home-assistant.io/docs/blueprint/selectors/#trigger-selector", "anyOf": [ { "$ref": "#/definitions/Record<string,never>" }, { "type": "null" } ] } }, "additionalProperties": false, "required": ["trigger"] }, "BlueprintInputSectionSchema": { "type": "object", "properties": { "name": { "description": "A name for the section. If omitted the key of the section is used.\nhttps://www.home-assistant.io/docs/blueprint/schema/#name", "type": "string" }, "description": { "description": "An optional description of this section, which will be displayed at the top of the section. The description can include Markdown.\nhttps://www.home-assistant.io/docs/blueprint/schema/#description", "type": "string" }, "icon": { "description": "An icon to display next to the name of the section.\nhttps://www.home-assistant.io/docs/blueprint/schema/#icon", "type": "string" }, "collapsed": { "description": "If true, the section will be collapsed by default. Useful for optional or less important inputs. All collapsed inputs must also have a defined default before they can be hidden.\nhttps://www.home-assistant.io/docs/blueprint/schema/#collapsed", "type": "boolean" }, "input": { "description": "A dictionary of defined user inputs within this section.\nhttps://www.home-assistant.io/docs/blueprint/schema/#input", "type": "object", "additionalProperties": { "$ref": "#/definitions/BlueprintInputSchema" } } }, "additionalProperties": false, "required": ["input"] }, "CalendarTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the calendar trigger.", "type": "string" }, "trigger": { "description": "Calendar trigger fires when a Calendar event starts or ends.\nhttps://www.home-assistant.io/docs/automation/trigger/#calendar-trigger", "const": "calendar", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: calendar\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "event": { "description": "Trigger on start or end of the calendar event.\nhttps://www.home-assistant.io/docs/automation/trigger/#calendar-trigger", "enum": ["end", "start"], "type": "string" }, "entity_id": { "pattern": "^calendar..*$", "description": "The entity ID to monitor the calendar events for.\nhttps://www.home-assistant.io/docs/automation/trigger/#calendar-trigger", "type": "string" }, "offset": { "description": "Optional time offset to fire a set time before or after event start/end.\nhttps://www.home-assistant.io/docs/automation/trigger/#calendar-trigger", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#calendar-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["entity_id"] }, "TimePeriodMap": { "type": "object", "properties": { "days": { "description": "Number of days. This must be a number.", "type": ["string", "number"] }, "hours": { "description": "Number of hours. This must be a number.", "type": ["string", "number"] }, "milliseconds": { "description": "Number of milliseconds. This must be a number.", "type": ["string", "number"] }, "minutes": { "description": "Number of minutes. This must be a number.", "type": ["string", "number"] }, "seconds": { "description": "Number of seconds. This must be a number.", "type": ["string", "number"] } }, "additionalProperties": false }, "ConversationTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the conversation pattern trigger.", "type": "string" }, "trigger": { "description": "With the sentence trigger, you can match a sentence from a voice assistant.\nhttps://www.home-assistant.io/docs/automation/trigger/#sentence-trigger", "const": "conversation", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: conversation\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "command": { "description": "A sentence or a list of sentences for this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#sentence-trigger", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#sentence-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["command"] }, "DeviceTrigger": { "additionalProperties": true, "type": "object", "properties": { "alias": { "description": "Alias for the device trigger.", "type": "string" }, "trigger": { "description": "Device triggers encompass a set of events that are defined by an integration.\nIn contrast to state triggers, device triggers are tied to a device and not necessarily an entity. To use a device trigger, set up an automation through the browser frontend.\nhttps://www.home-assistant.io/docs/automation/trigger/#device-triggers", "const": "device", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: device\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "device_id": { "description": "The internal ID of the device to trigger on\nhttps://www.home-assistant.io/docs/automation/trigger/#device-triggers", "type": "string" }, "domain": { "description": "The integration domain this device trigger is provided by.\nhttps://www.home-assistant.io/docs/automation/trigger/#device-triggers", "type": "string" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#device-triggers", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "required": ["device_id", "domain"] }, "EventTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the event trigger.", "type": "string" }, "trigger": { "description": "Fires when an event is being received. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data to be present.\nhttps://www.home-assistant.io/docs/automation/trigger/#event-trigger", "const": "event", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: event\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "context": { "description": "Additional event context that has to match before triggering.\nhttps://www.home-assistant.io/docs/automation/trigger/#event-trigger", "type": "object", "additionalProperties": {} }, "event_data": { "description": "Additional event data that has to match before triggering.\nhttps://www.home-assistant.io/docs/automation/trigger/#event-trigger", "type": "object", "additionalProperties": {} }, "event_type": { "description": "The name of the event to listen for.\nhttps://www.home-assistant.io/docs/automation/trigger/#event-trigger", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "array", "items": { "$ref": "#/definitions/EventType" } }, { "type": "string" } ] }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#event-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["event_type"] }, "EventType": { "enum": [ "automation_reloaded", "automation_triggered", "call_service", "component_loaded", "deconz_event", "homeassistant_started", "homeassistant_stop", "logbook_entry", "platform_discovered", "scene_reloaded", "service_executed", "service_registered", "service_removed", "state_changed", "tag_scanned", "themes_updates", "time_changed", "user_added", "user_removed", "zha_event" ], "type": "string" }, "GeolocationTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the geolocation trigger.", "type": "string" }, "trigger": { "description": "Geolocation trigger fires when an entity is appearing in or disappearing from a zone.\nhttps://www.home-assistant.io/docs/automation/trigger/#geolocation-trigger", "const": "geo_location", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: geo_location\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "event": { "description": "Trigger when the entity leaves or enters the zone defined.\nhttps://www.home-assistant.io/docs/automation/trigger/#geolocation-trigger", "enum": ["enter", "leave"], "type": "string" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#geolocation-trigger", "type": "string" }, "source": { "description": "The source is directly linked to one of the Geolocation platforms.\nhttps://www.home-assistant.io/docs/automation/trigger/#geolocation-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} }, "zone": { "pattern": "^zone..*$", "description": "The zone to trigger on when a entity is appearing in or disappearing from.\nhttps://www.home-assistant.io/docs/automation/trigger/#geolocation-trigger", "type": "string" } }, "additionalProperties": false, "required": ["event", "source", "zone"] }, "HomeAssistantTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the home assistant trigger.", "type": "string" }, "trigger": { "description": "This trigger fires when Home Assistant has started up or going to shut down.\nhttps://www.home-assistant.io/docs/automation/trigger/#home-assistant-trigger", "const": "homeassistant", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: homeassistant\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "event": { "description": "Specified the event to listen to: Either the Home Assistant start or shutdown event.\nhttps://www.home-assistant.io/docs/automation/trigger/#home-assistant-trigger", "enum": ["shutdown", "start"], "type": "string" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#home-assistant-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["event"] }, "MqttTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the mqtt trigger.", "type": "string" }, "trigger": { "description": "Fires when a specific message is received on given MQTT topic\nhttps://www.home-assistant.io/docs/automation/trigger/#mqtt-trigger", "const": "mqtt", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: mqtt\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "encoding": { "description": "The default payload encoding is ‘utf-8’.\nFor images and other byte payloads use encoding: '' to disable payload decoding completely.\nhttps://www.home-assistant.io/docs/automation/trigger/#mqtt-trigger", "type": "string" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#mqtt-trigger", "type": "string" }, "payload": { "description": "The payload to match on before triggering.\nhttps://www.home-assistant.io/docs/automation/trigger/#mqtt-trigger", "type": "string" }, "qos": { "description": "The matching QoS level of the state topic. Default is 0.\nhttps://www.home-assistant.io/docs/automation/trigger/#mqtt-trigger", "type": "integer", "minimum": 0, "maximum": 2 }, "topic": { "description": "The MQTT topic to subscribe and listen to.\nhttps://www.home-assistant.io/docs/automation/trigger/#mqtt-trigger", "type": "string" }, "value_template": { "description": "Value template allows, for example, picking out a JSON key from the incoming MQTT message.\nhttps://www.home-assistant.io/docs/automation/trigger/#mqtt-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["topic"] }, "NumericStateTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the numeric state trigger.", "type": "string" }, "trigger": { "description": "Fires when numeric value of an entity’s state crosses a given threshold.\nhttps://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger", "const": "numeric_state", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: numeric_state\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "entity_id": { "$ref": "#/definitions/Entities", "description": "The entity ID or list of entity IDs to monitor the numeric state for.\nhttps://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger" }, "below": { "description": "Fire this trigger if the numeric state of the monitored entity (or entities) is changing from above to below the given threshold.\nhttps://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger", "anyOf": [ { "type": "string", "pattern": "^input_number..*$" }, { "type": "string", "pattern": "^number..*$" }, { "type": "string", "pattern": "^sensor..*$" }, { "type": "number" } ] }, "above": { "description": "Fire this trigger if the numeric state of the monitored entity (or entities) is changing from below to above the given threshold.\nhttps://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger", "anyOf": [ { "type": "string", "pattern": "^input_number..*$" }, { "type": "string", "pattern": "^number..*$" }, { "type": "string", "pattern": "^sensor..*$" }, { "type": "number" } ] }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger", "type": "string" }, "value_template": { "description": "An optional value template to use as the numeric state value.\nhttps://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger", "type": "string" }, "for": { "description": "The amount of time this threshold must be held until this trigger fires.\nhttps://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "attribute": { "description": "Use the value of a specific entity attribute to trigger on, instead of the entity state.\nhttps://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["entity_id"] }, "Entities": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)\\s?(?:,\\s?(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_))*$", "items": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)$" }, "anyOf": [ { "type": "string", "pattern": "^.*..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^.*..*$" } } ] }, "PersistentNotificationTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the persistent notification trigger.", "type": "string" }, "trigger": { "description": "Persistent notification triggers are fired when a persistent_notification is added or removed that matches the configuration options.\nhttps://www.home-assistant.io/docs/automation/trigger/#persistent-notification-trigger", "const": "persistent_notification", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: persistent_notification\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#persistent-notification-trigger", "type": "string" }, "update_type": { "description": "Define the type of persistent notification to trigger on.\nhttps://www.home-assistant.io/docs/automation/trigger/#persistent-notification-trigger", "type": "array", "items": { "$ref": "#/definitions/PersistentNotificationUpdateType" } }, "notification_id": { "description": "The notification ID to trigger on.\nhttps://www.home-assistant.io/docs/automation/trigger/#persistent-notification-trigger", "type": "string" } }, "additionalProperties": false }, "PersistentNotificationUpdateType": { "enum": ["added", "removed", "updated"], "type": "string" }, "StateTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the state trigger.", "type": "string" }, "trigger": { "description": "This trigger fires when the state of any of given entities changes.\nhttps://www.home-assistant.io/docs/automation/trigger/#state-trigger", "const": "state", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: state\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "entity_id": { "$ref": "#/definitions/Entities", "description": "The entity ID or list of entity IDs to monitor the state for.\nhttps://www.home-assistant.io/docs/automation/trigger/#state-trigger" }, "for": { "description": "The amount of time the entity or entities state must be held until this trigger fires.\nhttps://www.home-assistant.io/docs/automation/trigger/#state-trigger", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "from": { "description": "The state the entity or entities had before changing to its new state.\nhttps://www.home-assistant.io/docs/automation/trigger/#state-trigger" }, "not_from": { "description": "The state the entity or entities NOT had before changing to its new state.\nhttps://www.home-assistant.io/docs/automation/trigger/#state-trigger" }, "to": { "description": "The state the entity or entities have changed to.\nhttps://www.home-assistant.io/docs/automation/trigger/#state-trigger" }, "not_to": { "description": "The state the entity or entities did NOT changed to.\nhttps://www.home-assistant.io/docs/automation/trigger/#state-trigger" }, "attribute": { "description": "Use the value of a specific entity attribute to trigger on, instead of the entity state.\nhttps://www.home-assistant.io/docs/automation/trigger/#state-trigger", "type": "string" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#state-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["entity_id"] }, "SunTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the sun trigger.", "type": "string" }, "trigger": { "description": "This trigger fires when the sun is setting or rising.\nhttps://www.home-assistant.io/docs/automation/trigger/#sun-trigger", "const": "sun", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: device\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "event": { "description": "The event to fire on, either on sunset or sunrise.\nhttps://www.home-assistant.io/docs/automation/trigger/#sun-trigger", "enum": ["sunrise", "sunset"], "type": "string" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#sun-trigger", "type": "string" }, "offset": { "description": "Optional offset from the sunrise or sunset. For example \"-00:45:00\" will trigger 45 minutes before sunrise or sunset.\nhttps://www.home-assistant.io/docs/automation/trigger/#sun-trigger", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["event"] }, "TagTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the tag trigger.", "type": "string" }, "trigger": { "description": "This trigger fired when a tag is scanned.\nhttps://www.home-assistant.io/docs/automation/trigger#tag-trigger", "const": "tag", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: tag\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger#tag-trigger", "type": "string" }, "tag_id": { "description": "Identifier of the tag. Use this to decide what to do.\nhttps://www.home-assistant.io/docs/automation/trigger#tag-trigger", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "device_id": { "description": "Device registry identifier of the device that scanned the tag. Use this to decide where to do it.\nhttps://www.home-assistant.io/docs/automation/trigger#tag-trigger", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["tag_id"] }, "TemplateTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the template trigger.", "type": "string" }, "trigger": { "description": "Template triggers work by evaluating a template on every state change for all of the recognized entities. The trigger will fire if the state change caused the template to render ‘true’.\nhttps://www.home-assistant.io/docs/automation/trigger/#template-trigger", "const": "template", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: template\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#template-trigger", "type": "string" }, "value_template": { "description": "The template to render for this trigger. The event will fire is the result is true.\nhttps://www.home-assistant.io/docs/automation/trigger/#template-trigger", "type": "string" }, "for": { "description": "The amount of time the template must be resulting in true until this trigger fires.\nhttps://www.home-assistant.io/docs/automation/trigger/#template-trigger", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["value_template"] }, "TimeTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the time trigger.", "type": "string" }, "trigger": { "description": "The time trigger is configured to fire once at a specific point in time each day.\nhttps://www.home-assistant.io/docs/automation/trigger/#time-trigger", "const": "time", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: time\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "at": { "description": "Time of day to trigger on, in HH:MM:SS, 24 hours clock format. For example: \"13:30:00\"\nAlso accepts input_datetime entities (e.g., input_datetime.start_of_day)", "pattern": "^((input_datetime|sensor)\\.(?!_)[\\da-z_]+(?<!_)\\s?(?:,\\s?(input_datetime|sensor)\\.(?!_)[\\da-z_]+(?<!_))*|(?:[01]\\d|2[0123]):(?:[012345]\\d)(:(?:[012345]\\d))?)$", "items": { "pattern": "^((input_datetime|sensor)\\.(?!_)[\\da-z_]+(?<!_)|(?:[01]\\d|2[0123]):(?:[012345]\\d)(:(?:[012345]\\d))?)$" }, "anyOf": [ { "type": "string", "pattern": "^input_datetime..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^input_datetime..*$" } }, { "type": "string", "pattern": "^sensor..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^sensor..*$" } }, { "type": "string", "pattern": "^[0-9]*:[0-9]*:[0-9]*$" }, { "type": "array", "items": { "type": "string", "pattern": "^[0-9]*:[0-9]*:[0-9]*$" } } ] }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#time-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["at"] }, "TimePatternTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the time pattern trigger.", "type": "string" }, "trigger": { "description": "With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value.\nhttps://www.home-assistant.io/docs/automation/trigger/#time-pattern-trigger", "const": "time_pattern", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: time_pattern\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#time-pattern-trigger", "type": "string" }, "hours": { "description": "The hour or hours to trigger on.\nYou can prefix the value with a / to match whenever the value is divisible by that number. You can specify * to match any value.\nhttps://www.home-assistant.io/docs/automation/trigger/#time-pattern-trigger", "type": "string" }, "minutes": { "description": "The minute or minutes to trigger on.\nYou can prefix the value with a / to match whenever the value is divisible by that number. You can specify * to match any value.\nhttps://www.home-assistant.io/docs/automation/trigger/#time-pattern-trigger", "type": ["string", "number"] }, "seconds": { "description": "The second or seconds to trigger on.\nYou can prefix the value with a / to match whenever the value is divisible by that number. You can specify * to match any value.\nhttps://www.home-assistant.io/docs/automation/trigger/#time-pattern-trigger", "type": ["string", "number"] }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false }, "WebhookTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the webhook trigger.", "type": "string" }, "trigger": { "description": "Webhook trigger fires when a web request is made to the webhook endpoint.\nhttps://www.home-assistant.io/docs/automation/trigger/#webhook-trigger", "const": "webhook", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: webhook\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#webhook-trigger", "type": "string" }, "webhook_id": { "description": "The webhook ID to use, defines the endpoint: /api/webhook/<webhook_id>\nhttps://www.home-assistant.io/docs/automation/trigger/#webhook-trigger", "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} }, "local_only": { "description": "Controls to only allow local requests to trigger the webhook.\nhttps://www.home-assistant.io/docs/automation/trigger/#webhook-trigger", "type": "boolean" }, "allowed_methods": { "description": "Controls to only allow requests with a valid API password to trigger the webhook.\nhttps://www.home-assistant.io/docs/automation/trigger/#webhook-trigger", "type": "array", "items": { "$ref": "#/definitions/AllowedMethods" } } }, "additionalProperties": false, "required": ["allowed_methods", "webhook_id"] }, "AllowedMethods": { "enum": ["GET", "HEAD", "POST", "PUT"], "type": "string" }, "ZoneTrigger": { "type": "object", "properties": { "alias": { "description": "Alias for the zone trigger.", "type": "string" }, "trigger": { "description": "Zone trigger fires when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates.\nhttps://www.home-assistant.io/docs/automation/trigger/#zone-trigger", "const": "zone", "type": "string" }, "platform": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"trigger: zone\" instead." }, "enabled": { "description": "Every individual trigger in an automation can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/automation/trigger/#disabling-a-trigger", "type": "boolean" }, "id": { "description": "An personal identifier for this trigger, that is passed into the trigger\nvariables when the automation triggers using this trigger.\nhttps://www.home-assistant.io/docs/automation/trigger/#zone-trigger", "type": "string" }, "entity_id": { "description": "The entity ID(s) of the device tracker(s) to monitor on a given zone.\nhttps://www.home-assistant.io/docs/automation/trigger/#zone-trigger", "pattern": "^(device_tracker|person)\\.(?!_)[\\da-z_]+(?<!_)\\s?(?:,\\s?(device_tracker|person)\\.(?!_)[\\da-z_]+(?<!_))*$", "items": { "pattern": "^(device_tracker|person)\\.(?!_)[\\da-z_]+(?<!_)$" }, "anyOf": [ { "type": "string", "pattern": "^device_tracker..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^device_tracker..*$" } }, { "type": "string", "pattern": "^person..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^person..*$" } } ] }, "zone": { "$ref": "#/definitions/ZoneEntities", "description": "The zone(s) to monitor for the given device tracker(s).\nhttps://www.home-assistant.io/docs/automation/trigger/#zone-trigger" }, "event": { "description": "Trigger when the entity leaves or enters the zone(s) defined.\nhttps://www.home-assistant.io/docs/automation/trigger/#zone-trigger", "enum": ["enter", "leave"], "type": "string" }, "variables": { "description": "This allows you to define variables that will be set when the trigger fires.\nThese can be used in the automation actions or conditions. Templates\ncan be used in these variables.\nhttps://www.home-assistant.io/docs/automation/trigger#trigger-variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["entity_id", "event", "zone"] }, "ZoneEntities": { "pattern": "^zone\\.(?!_)[\\da-z_]+(?<!_)\\s?(?:,\\s?zone\\.(?!_)[\\da-z_]+(?<!_))*$", "items": { "pattern": "^zone\\.(?!_)[\\da-z_]+(?<!_)$" }, "anyOf": [ { "type": "string", "pattern": "^zone..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^zone..*$" } } ] }, "Trigger": { "anyOf": [ { "$ref": "#/definitions/CalendarTrigger" }, { "$ref": "#/definitions/ConversationTrigger" }, { "$ref": "#/definitions/DeviceTrigger" }, { "$ref": "#/definitions/EventTrigger" }, { "$ref": "#/definitions/GeolocationTrigger" }, { "$ref": "#/definitions/HomeAssistantTrigger" }, { "$ref": "#/definitions/MqttTrigger" }, { "$ref": "#/definitions/NumericStateTrigger" }, { "$ref": "#/definitions/PersistentNotificationTrigger" }, { "$ref": "#/definitions/StateTrigger" }, { "$ref": "#/definitions/SunTrigger" }, { "$ref": "#/definitions/TagTrigger" }, { "$ref": "#/definitions/TemplateTrigger" }, { "$ref": "#/definitions/TimeTrigger" }, { "$ref": "#/definitions/TimePatternTrigger" }, { "$ref": "#/definitions/WebhookTrigger" }, { "$ref": "#/definitions/ZoneTrigger" } ] }, "AndCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the and condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "Test multiple conditions in one condition statement. Passes if all embedded conditions are valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#and-condition", "type": "string", "const": "and" }, "conditions": { "description": "Test multiple conditions in one condition statement. Passes if all embedded conditions are valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#and-condition", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] } }, "additionalProperties": false, "required": ["condition", "conditions"] }, "AndShorthandCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the and condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "and": { "description": "Test multiple conditions in one condition statement. Passes if all embedded conditions are valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#and-condition", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] } }, "additionalProperties": false, "required": ["and"] }, "DeviceCondition": { "additionalProperties": true, "type": "object", "properties": { "alias": { "description": "Alias for the device condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "Device conditions encompass a set of properties that are defined by an integration.\nIn contrast to state conditions, device conditions are tied to a device and not necessarily an entity. To use a device trigger, set up an automation through the browser frontend.", "const": "device", "type": "string" }, "device_id": { "description": "The internal ID of the device to preform a conditional test on.", "type": "string" }, "domain": { "description": "The integration domain this device condition is provided by.", "type": "string" } }, "required": ["device_id", "domain"] }, "NotCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the not condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "Test multiple conditions in one condition statement. Passes if all embedded conditions are not valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#not-condition", "type": "string", "const": "not" }, "conditions": { "description": "Test multiple conditions in one condition statement. Passes if all embedded conditions are not valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#not-condition", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] } }, "additionalProperties": false, "required": ["condition", "conditions"] }, "NotShorthandCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the not condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "not": { "description": "Test multiple conditions in one condition statement. Passes if all embedded conditions are not valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#not-condition", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] } }, "additionalProperties": false, "required": ["not"] }, "NumericStateCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the numeric state condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "This type of condition attempts to parse the state of the specified entity as a number, and triggers if the value matches the thresholds.\nhttps://www.home-assistant.io/docs/scripts/conditions/#numeric-state-condition", "type": "string", "const": "numeric_state" }, "above": { "description": "Passes if the numeric state of the given entity (or entities) is above the given threshold.\nhttps://www.home-assistant.io/docs/scripts/conditions/#numeric-state-condition", "anyOf": [ { "type": "string", "pattern": "^input_number..*$" }, { "type": "string", "pattern": "^number..*$" }, { "type": "string", "pattern": "^sensor..*$" }, { "type": "number" } ] }, "below": { "description": "Passes if the numeric state of the given entity (or entities) is below the given threshold.\nhttps://www.home-assistant.io/docs/scripts/conditions/#numeric-state-condition", "anyOf": [ { "type": "string", "pattern": "^input_number..*$" }, { "type": "string", "pattern": "^number..*$" }, { "type": "string", "pattern": "^sensor..*$" }, { "type": "number" } ] }, "entity_id": { "$ref": "#/definitions/Entities", "description": "The entity ID or list of entity IDs to test the numeric state against.\nhttps://www.home-assistant.io/docs/scripts/conditions/#numeric-state-condition" }, "value_template": { "description": "An optional value template to use as the numeric state value.\nhttps://www.home-assistant.io/docs/scripts/conditions/#numeric-state-condition", "type": "string" }, "attribute": { "description": "Use the value of a specific entity attribute to test against, instead of the entity state.\nhttps://www.home-assistant.io/docs/scripts/conditions/#numeric-state-condition", "type": "string" } }, "additionalProperties": false, "required": ["condition", "entity_id"] }, "OrCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the or condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "Test multiple conditions in one condition statement. Passes if any embedded condition is valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#or-condition", "type": "string", "const": "or" }, "conditions": { "description": "Test multiple conditions in one condition statement. Passes if any embedded condition is valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#or-condition", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] } }, "additionalProperties": false, "required": ["condition", "conditions"] }, "OrShorthandCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the or condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "or": { "description": "Test multiple conditions in one condition statement. Passes if any embedded condition is valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#or-condition", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] } }, "additionalProperties": false, "required": ["or"] }, "ShorthandCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the and condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "The template condition has a shorthand notation that can be used to make your scripts and automations shorter.\nhttps://www.home-assistant.io/docs/scripts/conditions/#template-condition-shorthand-notation", "pattern": "\\{(?:[%\\{#])", "anyOf": [ { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" } ] } }, "additionalProperties": false, "required": ["condition"] }, "StateCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the state condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "Tests if an entity (or entities) is in a specified state.\nhttps://www.home-assistant.io/docs/scripts/conditions/#state-condition", "type": "string", "const": "state" }, "entity_id": { "$ref": "#/definitions/Entities", "description": "The entity ID or list of entity IDs to test the state against.\nhttps://www.home-assistant.io/docs/scripts/conditions/#state-condition" }, "state": { "description": "The state the entity (or entities) must have for this condition to pass.\nhttps://www.home-assistant.io/docs/scripts/conditions/#state-condition", "anyOf": [ { "type": "array", "items": { "$ref": "#/definitions/State" } }, { "type": ["string", "number", "boolean"] } ] }, "for": { "description": "The amount of time the entity (or entities) state must be held until this condition passes.\nhttps://www.home-assistant.io/docs/scripts/conditions/#state-condition", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "attribute": { "description": "Use the value of a specific entity attribute to test against, instead of the entity state.\nhttps://www.home-assistant.io/docs/scripts/conditions/#state-condition", "type": "string" }, "match": { "description": "How to match in case this condition has multiple entity listed: \"all\" all entities have to match the state, \"any\" if any of the entities match the state.\nhttps://www.home-assistant.io/docs/scripts/conditions/#state-condition", "enum": ["all", "any"], "type": "string" } }, "additionalProperties": false, "required": ["condition", "entity_id", "state"] }, "State": { "type": ["string", "number", "boolean"] }, "SunCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the sun condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "The sun state can be used to test if the sun has set or risen.\nhttps://www.home-assistant.io/docs/scripts/conditions/#sun-condition", "type": "string", "const": "sun" }, "before": { "description": "Conditionally test if is currently is before sunrise or sunset.\nNote that if only before key is used, the condition will be true from midnight until sunrise/sunset.\nhttps://www.home-assistant.io/docs/scripts/conditions/#sun-condition", "enum": ["sunrise", "sunset"], "type": "string" }, "before_offset": { "description": "Optional offset from the sunrise or sunset. For example \"-00:45:00\" will conditionally test 45 minutes before sunrise or sunset.\nhttps://www.home-assistant.io/docs/scripts/conditions/#sun-condition", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "after": { "description": "Conditionally test if is currently is after sunrise or sunset.\nNote that if only after key is used, the condition will be true from sunset/sunrise until midnight.\nhttps://www.home-assistant.io/docs/scripts/conditions/#sun-condition", "enum": ["sunrise", "sunset"], "type": "string" }, "after_offset": { "description": "Optional offset from the sunrise or sunset. For example \"-00:45:00\" will conditionally test 45 minutes before sunrise or sunset.\nhttps://www.home-assistant.io/docs/scripts/conditions/#sun-condition", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["condition"] }, "TemplateCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the template condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "The template condition tests if the given template renders a value equal to true. This is achieved by having the template result in a true boolean expression or by having the template render ‘true’.\nhttps://www.home-assistant.io/docs/scripts/conditions/#template-condition", "type": "string", "const": "template" }, "value_template": { "description": "The template to render for this condition. The condition will pass if the result is true.\nhttps://www.home-assistant.io/docs/scripts/conditions/#template-condition", "type": "string" } }, "additionalProperties": false, "required": ["condition"] }, "TimeCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the time condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "The time condition can test if it is after a specified time, before a specified time or if it is a certain day of the week.\nhttps://www.home-assistant.io/docs/scripts/conditions/#time-condition", "type": "string", "const": "time" }, "before": { "description": "Conditionally check if it is currently before a certain time of day.\nNote that if only before key is used, the condition will be true from midnight until the specified time.\nhttps://www.home-assistant.io/docs/scripts/conditions/#time-condition", "pattern": "^((input_datetime|sensor)\\.(?!_)[\\da-z_]+(?<!_)|(?:[01]\\d|2[0123]):(?:[012345]\\d)(:(?:[012345]\\d))?)$", "anyOf": [ { "type": "string", "pattern": "^input_datetime..*$" }, { "type": "string", "pattern": "^sensor..*$" }, { "type": "string", "pattern": "^[0-9]*:[0-9]*:[0-9]*$" } ] }, "after": { "description": "Conditionally check if it is currently after a certain time of day.\nNote that if only after key is used, the condition will be true from the specified time until midnight.\nhttps://www.home-assistant.io/docs/scripts/conditions/#time-condition", "pattern": "^((input_datetime|sensor)\\.(?!_)[\\da-z_]+(?<!_)|(?:[01]\\d|2[0123]):(?:[012345]\\d)(:(?:[012345]\\d))?)$", "anyOf": [ { "type": "string", "pattern": "^input_datetime..*$" }, { "type": "string", "pattern": "^sensor..*$" }, { "type": "string", "pattern": "^[0-9]*:[0-9]*:[0-9]*$" } ] }, "weekday": { "description": "Days of the week this condition can be valid.\nhttps://www.home-assistant.io/docs/scripts/conditions/#time-condition", "anyOf": [ { "type": "array", "items": { "$ref": "#/definitions/Weekday" } }, { "enum": ["fri", "mon", "sat", "sun", "thu", "tue", "wed"], "type": "string" } ] } }, "additionalProperties": false, "required": ["condition"] }, "Weekday": { "enum": ["fri", "mon", "sat", "sun", "thu", "tue", "wed"], "type": "string" }, "TriggerCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the trigger condition.", "type": "string" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "condition": { "description": "The trigger condition can test if this automation was triggered by a specific trigger.\nhttps://www.home-assistant.io/docs/scripts/conditions/#trigger-condition", "type": "string", "const": "trigger" }, "id": { "description": "The ID (or IDs) of the triggers to test against if they have triggered this automation.\nhttps://www.home-assistant.io/docs/scripts/conditions/#trigger-condition", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "array", "items": { "type": "number" } }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["condition", "id"] }, "ZoneCondition": { "type": "object", "properties": { "alias": { "description": "Alias for the zone condition.", "type": "string" }, "condition": { "type": "string", "const": "zone" }, "enabled": { "description": "Every individual condition can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/conditions/#disabling-a-condition", "type": "boolean" }, "entity_id": { "description": "The entity ID(s) of the device tracker(s).\nhttps://www.home-assistant.io/docs/scripts/conditions/#zone-condition", "pattern": "^(device_tracker|person)\\.(?!_)[\\da-z_]+(?<!_)\\s?(?:,\\s?(device_tracker|person)\\.(?!_)[\\da-z_]+(?<!_))*$", "items": { "pattern": "^(device_tracker|person)\\.(?!_)[\\da-z_]+(?<!_)$" }, "anyOf": [ { "type": "string", "pattern": "^device_tracker..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^device_tracker..*$" } }, { "type": "string", "pattern": "^person..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^person..*$" } } ] }, "zone": { "$ref": "#/definitions/ZoneEntities", "description": "The zone(s) conditionally check against for the given device tracker(s).\nhttps://www.home-assistant.io/docs/scripts/conditions/#zone-condition" } }, "additionalProperties": false, "required": ["condition", "entity_id", "zone"] }, "Condition": { "anyOf": [ { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" } ] }, "ChooseAction": { "type": "object", "properties": { "alias": { "description": "Alias for the choose action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "choose": { "description": "This action allows you to select a sequence of other actions from a list of sequences.\nhttps://www.home-assistant.io/docs/scripts/#choose-a-group-of-actions", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "$ref": "#/definitions/ChooseActionItem" }, { "type": "array", "items": { "$ref": "#/definitions/ChooseActionItem" } } ] }, "default": { "description": "An optional default sequence can be included which will be run if none of the sequences from the list are run.\nhttps://www.home-assistant.io/docs/scripts/#choose-a-group-of-actions", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] } }, "additionalProperties": false, "required": ["choose"] }, "ChooseActionItem": { "type": "object", "properties": { "alias": { "description": "Alias for this choose item.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "conditions": { "description": "Only preform the sequence of actions if this condition/these conditions match.\nhttps://www.home-assistant.io/docs/scripts/#choose-a-group-of-actions", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] }, "sequence": { "description": "The sequence of actions to be performed if the condition(s) match.\nhttps://www.home-assistant.io/docs/scripts/#choose-a-group-of-actions", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] } }, "additionalProperties": false, "required": ["conditions", "sequence"] }, "DelayAction": { "type": "object", "properties": { "alias": { "description": "Alias for the delay action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "delay": { "$ref": "#/definitions/TimePeriod", "description": "Delays are useful for temporarily suspending your script and start it at a later moment.\nThe time period to delay the executing of the current action sequence for.\nhttps://www.home-assistant.io/docs/scripts/#delay" } }, "additionalProperties": false, "required": ["delay"] }, "TimePeriod": { "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "DeviceAction": { "additionalProperties": true, "type": "object", "properties": { "alias": { "description": "Alias for the device action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "device_id": { "description": "The internal ID of the device to execute an action on.\nDevice actions encompass a set of events that are defined by an integration.\nIn contrast to service calls, device actions are tied to a device and not necessarily an entity. To use a device action, set up an automation through the browser frontend.", "type": "string" }, "domain": { "description": "The integration domain this device trigger is provided by.", "type": "string" } }, "required": ["device_id", "domain"] }, "EventAction": { "type": "object", "properties": { "alias": { "description": "Alias for the Event action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "event": { "description": "The event name to fire.\nThis action allows you to fire an event. Events can be used for many things. It could trigger an automation or indicate to another integration that something is happening.\nhttps://www.home-assistant.io/docs/scripts/#fire-an-event", "type": "string" }, "event_data": { "description": "The event data to pass along.\nhttps://www.home-assistant.io/docs/scripts/#fire-an-event", "type": "object", "additionalProperties": {} }, "event_data_template": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "You can use templates directly in the event_data parameter, replace \"event_data_template\" with just \"event_data\".\nhttps://www.home-assistant.io/docs/scripts/#fire-an-event" } }, "additionalProperties": false, "required": ["event"] }, "IfAction": { "type": "object", "properties": { "alias": { "description": "Alias for the if action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "if": { "description": "This action allows you to select a sequence of other actions from a list of sequences.\nhttps://www.home-assistant.io/docs/scripts/#if-then", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] }, "then": { "description": "An optional default sequence can be included which will be run if none of the sequences from the list are run.\nhttps://www.home-assistant.io/docs/scripts/#if-then", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "else": { "description": "An optional default sequence can be included which will be run if none of the sequences from the list are run.\nhttps://www.home-assistant.io/docs/scripts/#if-then", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] } }, "additionalProperties": false, "required": ["if", "then"] }, "ParallelAction": { "type": "object", "properties": { "alias": { "description": "Alias for the parallel action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "parallel": { "description": "The sequence of actions to run in parallel.\nhttps://www.home-assistant.io/docs/scripts/#parallelizing-actions", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "array", "items": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] } } ] } }, "additionalProperties": false, "required": ["parallel"] }, "RepeatAction": { "type": "object", "properties": { "alias": { "description": "Alias for the repeat action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "repeat": { "description": "This action allows you to repeat a sequence of other actions.\nhttps://www.home-assistant.io/docs/scripts/#repeat-a-group-of-actions", "type": "object", "properties": { "count": { "description": "This form accepts a count value. The value may be specified by a template, in which case the template is rendered when the repeat step is reached.\nhttps://www.home-assistant.io/docs/scripts/#counted-repeat", "type": ["string", "number"] }, "for_each": { "description": "This repeat form accepts a list of items to iterate over. The list of items can be a pre-defined list, or a list created by a template.\nhttps://www.home-assistant.io/docs/scripts/#for-each", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "object", "additionalProperties": {} }, { "type": "string" } ] }, "sequence": { "description": "The sequence of actions to be repeatedly performed in the script.\nhttps://www.home-assistant.io/integrations/script/#sequence", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "until": { "description": "This form accepts a list of conditions that are evaluated after each time the sequence is run. Therefore the sequence will always run at least once. The sequence will be executed until the condition(s) evaluate to true.\nhttps://www.home-assistant.io/docs/scripts/#repeat-until", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] }, "while": { "description": "This form accepts a list of conditions that are evaluated before each time the sequence is run. The sequence will be repeated as long as the condition(s) evaluate to true.\nhttps://www.home-assistant.io/docs/scripts/#while-loop", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "type": "array", "items": { "$ref": "#/definitions/Condition" } } ] } }, "additionalProperties": false, "required": ["sequence"] } }, "additionalProperties": false, "required": ["repeat"] }, "SceneAction": { "type": "object", "properties": { "alias": { "description": "Alias for the scene action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "scene": { "pattern": "^scene..*$", "description": "Activate a scene.\nhttps://www.home-assistant.io/docs/scripts/#activate-a-scene", "type": "string" }, "metadata": { "description": "Additional data for merely for use with the frontend. Has no functional effect." } }, "additionalProperties": false, "required": ["scene"] }, "ServiceAction": { "type": "object", "properties": { "alias": { "description": "Service call alias.\nhttps://www.home-assistant.io/docs/scripts/service-calls/", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "service": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "Legacy syntax, use \"action\" instead." }, "action": { "description": "The most important action is to call an action.\nhttps://www.home-assistant.io/docs/scripts/service-calls/", "type": "string" }, "service_template": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "You can use templates directly in the service parameter, replace \"service_template\" with just \"service\".\nhttps://www.home-assistant.io/docs/scripts/service-calls/#use-templates-to-decide-which-service-to-call" }, "data": { "description": "Specify other parameters beside the entity to target. For example, the light turn on service allows specifying the brightness.\nhttps://www.home-assistant.io/docs/scripts/service-calls/#passing-data-to-the-service-call", "anyOf": [ { "type": "object", "additionalProperties": {} }, { "type": "string" } ] }, "data_template": { "pattern": "LEGACY_SYNTAX^", "items": { "pattern": "LEGACY_SYNTAX^" }, "description": "You can use templates directly in the data parameter, replace \"data_template\" with just \"data\".\nhttps://www.home-assistant.io/docs/scripts/service-calls/#use-templates-to-determine-the-attributes" }, "entity_id": { "description": "The entity (or entities) to execute this service call on.\nhttps://www.home-assistant.io/docs/scripts/service-calls", "anyOf": [ { "type": "array", "items": { "type": "string", "pattern": "^.*..*$" } }, { "type": ["null", "string"] } ] }, "target": { "description": "Defines the target (area(s), device(s) and entitie(s)) to execute this service call on.\nhttps://www.home-assistant.io/docs/scripts/service-calls", "anyOf": [ { "type": "object", "properties": { "entity_id": { "description": "The entity (or entities) to execute this service call on.\nhttps://www.home-assistant.io/docs/scripts/service-calls", "anyOf": [ { "type": "array", "items": { "type": "string", "pattern": "^.*..*$" } }, { "type": ["null", "string"] } ] }, "device_id": { "description": "The device (or devices) to execute this service call on.\nhttps://www.home-assistant.io/docs/scripts/service-calls", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "area_id": { "description": "The area (or areas) to execute this service call on.\nhttps://www.home-assistant.io/docs/scripts/service-calls", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "floor_id": { "description": "The floor (or floors) to execute this service call on.\nhttps://www.home-assistant.io/docs/scripts/service-calls", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "label_id": { "description": "The labels (or labels) to execute this service call on.\nhttps://www.home-assistant.io/docs/scripts/service-calls", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] } }, "additionalProperties": false }, { "type": "string" } ] }, "metadata": { "description": "Additional data for merely for use with the frontend. Has no functional effect." }, "response_variable": { "description": "Add a response_variable to pass a variable of key/value pairs back to an automation or script.\nhttps://www.home-assistant.io/docs/scripts/service-calls/#use-templates-to-handle-response-data", "type": "string" } }, "additionalProperties": false }, "SequenceAction": { "type": "object", "properties": { "alias": { "description": "Alias for the sequence action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "sequence": { "description": "The sequence of actions to run in serial\nhttps://www.home-assistant.io/docs/scripts/#grouping-actions", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] } }, "additionalProperties": false, "required": ["sequence"] }, "StopAction": { "type": "object", "properties": { "alias": { "description": "Stop call alias.\nhttps://www.home-assistant.io/docs/scripts/#stopping-a-script-sequence", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "stop": { "description": "Stop a automation or script sequence. Provide a text with a reason for stopping.\nhttps://www.home-assistant.io/docs/scripts/#stopping-a-script-sequence", "type": ["null", "string"] }, "error": { "description": "Set to true, if we are stopping with an error / because of unexpected behavior\nhttps://www.home-assistant.io/docs/scripts/#stopping-a-script-sequence", "type": "boolean" }, "response_variable": { "description": "Add a response_variable to pass a variable of key/value pairs back to an automation or script\nhttps://www.home-assistant.io/docs/scripts/#stopping-a-script-sequence", "type": "string" } }, "additionalProperties": false, "required": ["stop"] }, "WaitForTriggerAction": { "type": "object", "properties": { "alias": { "description": "Alias for the wait for trigger action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "wait_for_trigger": { "description": "The trigger to wait for, before continuing execution of the script.\nhttps://www.home-assistant.io/docs/scripts/#wait-for-trigger", "anyOf": [ { "type": "string", "pattern": "^!include_dir_list .*$" }, { "type": "string", "pattern": "^!include_dir_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_list\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list .*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_list\u000b.*$" }, { "$ref": "#/definitions/CalendarTrigger" }, { "$ref": "#/definitions/ConversationTrigger" }, { "$ref": "#/definitions/DeviceTrigger" }, { "$ref": "#/definitions/EventTrigger" }, { "$ref": "#/definitions/GeolocationTrigger" }, { "$ref": "#/definitions/HomeAssistantTrigger" }, { "$ref": "#/definitions/MqttTrigger" }, { "$ref": "#/definitions/NumericStateTrigger" }, { "$ref": "#/definitions/PersistentNotificationTrigger" }, { "$ref": "#/definitions/StateTrigger" }, { "$ref": "#/definitions/SunTrigger" }, { "$ref": "#/definitions/TagTrigger" }, { "$ref": "#/definitions/TemplateTrigger" }, { "$ref": "#/definitions/TimeTrigger" }, { "$ref": "#/definitions/TimePatternTrigger" }, { "$ref": "#/definitions/WebhookTrigger" }, { "$ref": "#/definitions/ZoneTrigger" }, { "type": "array", "items": { "$ref": "#/definitions/Trigger" } } ] }, "timeout": { "description": "Set a timeout after which the script will continue its execution if the trigger has not occurred.\nhttps://www.home-assistant.io/docs/scripts/#wait-for-trigger", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "continue_on_timeout": { "description": "Continue the execute of the action sequence on time out or not.\nhttps://www.home-assistant.io/docs/scripts/#wait-for-trigger", "type": "boolean" } }, "additionalProperties": false }, "WaitTemplateAction": { "type": "object", "properties": { "alias": { "description": "Alias for the wait action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "wait_template": { "description": "Wait until some things are complete.\nhttps://www.home-assistant.io/docs/scripts/#wait", "type": "string" }, "timeout": { "description": "Set a timeout after which the script will continue its execution if the condition is not satisfied.\nhttps://www.home-assistant.io/docs/scripts/#wait", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "continue_on_timeout": { "description": "Continue the execute of the action sequence on time out or not.\nhttps://www.home-assistant.io/docs/scripts/#wait", "type": "boolean" } }, "additionalProperties": false, "required": ["wait_template"] }, "VariablesAction": { "type": "object", "properties": { "alias": { "description": "Alias for the variables action.", "type": "string" }, "enabled": { "description": "Every individual action can be disabled, without removing it.\nhttps://www.home-assistant.io/docs/scripts/#disabling-an-action", "type": "boolean" }, "continue_on_error": { "description": "Set it to true if you’d like to continue the action sequence, regardless of whether that action encounters an error.\nhttps://www.home-assistant.io/docs/scripts/#continuing-on-error", "type": "boolean" }, "variables": { "description": "The variable command allows you to set/override variables that will be accessible by templates in actions after it.\nhttps://www.home-assistant.io/docs/scripts/#variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["variables"] }, "Action": { "anyOf": [ { "type": "string", "pattern": "^{{.*$" }, { "type": "string", "pattern": "^{%.*$" }, { "type": "string", "pattern": "^{#.*$" }, { "$ref": "#/definitions/AndCondition" }, { "$ref": "#/definitions/AndShorthandCondition" }, { "$ref": "#/definitions/DeviceCondition" }, { "$ref": "#/definitions/NotCondition" }, { "$ref": "#/definitions/NotShorthandCondition" }, { "$ref": "#/definitions/NumericStateCondition" }, { "$ref": "#/definitions/OrCondition" }, { "$ref": "#/definitions/OrShorthandCondition" }, { "$ref": "#/definitions/ShorthandCondition" }, { "$ref": "#/definitions/StateCondition" }, { "$ref": "#/definitions/SunCondition" }, { "$ref": "#/definitions/TemplateCondition" }, { "$ref": "#/definitions/TimeCondition" }, { "$ref": "#/definitions/TriggerCondition" }, { "$ref": "#/definitions/ZoneCondition" }, { "$ref": "#/definitions/ChooseAction" }, { "$ref": "#/definitions/DelayAction" }, { "$ref": "#/definitions/DeviceAction" }, { "$ref": "#/definitions/EventAction" }, { "$ref": "#/definitions/IfAction" }, { "$ref": "#/definitions/ParallelAction" }, { "$ref": "#/definitions/RepeatAction" }, { "$ref": "#/definitions/SceneAction" }, { "$ref": "#/definitions/ServiceAction" }, { "$ref": "#/definitions/SequenceAction" }, { "$ref": "#/definitions/StopAction" }, { "$ref": "#/definitions/WaitForTriggerAction" }, { "$ref": "#/definitions/WaitTemplateAction" }, { "$ref": "#/definitions/VariablesAction" } ] } }, "$schema": "http://json-schema.org/draft-07/schema#" }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oleander/home-assistant-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server